Browse Source

Merge remote-tracking branch 'origin/master'

master
yxt_djz 2 years ago
parent
commit
2d3fdacd23
  1. 12
      base-ui/src/api/kucun/ruku.js
  2. 272
      base-ui/src/router/index.js
  3. 20
      base-ui/src/views/kucun/rkmx/index.vue
  4. 2
      base-ui/src/views/kucun/xssjgl/index.vue
  5. 30
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountMapper.java
  6. 17
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountMapper.xml
  7. 144
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountService.java
  8. 9
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageRest.java
  9. 58
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesService.java
  10. 55
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionRest.java
  11. BIN
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/xlsx-tmpl/在途商品汇总统计表.xlsx
  12. BIN
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/xlsx-tmpl/销售汇总日报表.xlsx

12
base-ui/src/api/kucun/ruku.js

@ -74,3 +74,15 @@ export function jmdRkmxListDownload(data) {
}
})
}
// 下采购订单、入库的数据
export function ztsjZhengli() {
return request({
url: '/v1/purchaserequisition/supplierAnalysis',
method: 'post'
})
}
export function buildExcelZaiTu() {
return request({ url: '/ruku/buildExcelZaiTu' })
}

272
base-ui/src/router/index.js

@ -9,48 +9,276 @@ Vue.use(Router)
/* 所有角色可以访问/没有权限要求的基页 */
export const constantRoutes = [{
export const constantRoutes = [
{
path: '/redirect',
component: Layout,
hidden: true,
children: [{
path: '/redirect/:path(.*)',
component: () => import('@/views/redirect/index.vue')
}]
}, {
children: [
{
path: '/redirect/:path(.*)',
component: () => import('@/views/redirect/index.vue')
},
]
},
{
path: '/',
redirect: 'index'
}, {
},
{
path: '/login',
component: () => import('@/views/login/login.vue')
}, {
},
{
path: '/home',
component: () => import('@/views/Home/Home.vue'),
name: 'home'
}, {
},
{
path: '/index',
component: Layout,
redirect: '/index',
meta: {
title: '首页'
},
children: [{
path: '/index',
component: () => import('@/views/index.vue'),
name: 'index',
meta: {
title: '主页',
noCache: true,
affix: true
}
}]
title: '首页',
},
children: [
{
path: '/index',
component: () => import('@/views/index.vue'),
name: 'index',
meta: {
title: '主页',
noCache: true,
affix: true,
}
},
]
},
// 客户中心
{
path: '1',
component: Layout,
meta: { title: '客户中心' },
children: [
{
path: 'cgsq/PurchaseApplicationManagement',
component: () => import('@/views/supervise/purchaseapplicationmanagement/purchaseapplicationmanagement.vue'),
name: 'PurchaseApplicationManagement',
meta: {title: '采购申请管理',noCache: true,}
},
{
path: 'xzgys',
component: () => import('@/views/supervise/supplierbankinfo/supplierbankinfo.vue'),
name: 'supplierManagement',
meta: {title: '供应商管理',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '厂商扣点汇总表',noCache: true}
},
{
path: 'cgsq',
component: Layout,
meta: {title: '数据上报'},
children: [
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '综合数据上报',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '入库上报',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '出库上报',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '库存上报',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '销售上报',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '仓库调拨上报',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '配送批发上报',noCache: true}
}
],
},
{
path: 'cgsq',
component: Layout,
meta: {title: '信息查询'},
children: [
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '库存信息查询',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '订单查询',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '订单商品查询',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '出入库查询',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '供应商查询',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '仓库调拨查询',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'manufacturerPreference',
meta: {title: '配送批发查询',noCache: true}
}
]
}
]
},
// 审批中心
{
path: '',
component: Layout,
meta: { title: '审批中心' },
children: [
{
path: '/404',
component: () => import('@/views/404'),
name: 'readWork',
meta: {title: '已阅工作',noCache: true,}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'waitingWork',
meta: {title: '待阅工作',noCache: true}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'alreadyHandledWork',
meta: {title: '已办工作',noCache: true,}
},
{
path: '/404',
component: () => import('@/views/404'),
name: 'handledWork',
meta: {title: '待办工作',noCache: true}
}
]
},
{
path: '',
component: Layout,
meta: { title: '消息中心' },
children: [
{
path: 'cgsq/PurchaseApplicationManagement',
component: () => import('@/views/404'),
name: 'PurchaseApplicationManagement',
meta: {title: '未读消息',noCache: true,}
},
{
path: 'xzgys',
component: () => import('@/views/404'),
name: 'supplierManagement',
meta: {title: '已读消息',noCache: true}
}
]
},
{
path: '',
component: Layout,
meta: { title: '报表中心' },
children: [
{
path: 'reportCenter/salesReport',
component: () => import('@/views/reportCenter/salesReport.vue'),
name: 'salesReport',
meta: {title: '销售报表',noCache: true,}
},
{
path: 'reportCenter/goodsOnWay',
component: () => import('@/views/reportCenter/goodsOnWay.vue'),
name: 'goodsOnWay',
meta: {title: '在途商品管理表',noCache: true}
}
]
},
{
path: '',
component: Layout,
meta: { title: '风控管理' },
children: [
{
path: 'risk/thresholdAnalysis',
component: () => import('@/views/risk/thresholdAnalysis.vue'),
name: 'thresholdAnalysis',
meta: {title: '阀值分析',noCache: true,}
}
]
},
{
path: '',
component: Layout,
meta: { title: '系统管理' },
children: [
{
path: 'risk/thresholdAnalysis',
component: () => import('@/views/risk/thresholdAnalysis.vue'),
name: 'thresholdAnalysis',
meta: {title: '阀值分析',noCache: true,}
}
]
},
{
path: '/customer',
component: Layout,
meta: {
title: '客户中心'
title: '客户中心(以下为原菜单)'
},
children: [{
path: 'cgsq',

20
base-ui/src/views/kucun/rkmx/index.vue

@ -114,6 +114,7 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>入库单上传</span>
<el-button style="float: right;" type="primary" size="mini" @click="downloadZtsj">下载在途数据</el-button>
<el-button style="float: right; padding: 3px 0" type="text" @click="recountRk">重新统计入库信息</el-button>
</div>
<div>
@ -146,7 +147,7 @@
</template>
<script>
import { recount, countinfo, in112PagerList, inallPagerList, logPagerList, jmdRkmxList, jmdRkmxListDownload } from '@/api/kucun/ruku'
import { recount, countinfo, in112PagerList, inallPagerList, logPagerList, jmdRkmxList, jmdRkmxListDownload, ztsjZhengli, buildExcelZaiTu } from '@/api/kucun/ruku'
import Pagination from '@/components/pagination'
import { parseTime } from '@/utils/index'
export default {
@ -341,6 +342,23 @@ export default {
} else {
this.uploadResultMesssage = resp.msg
}
},
downloadZtsj() {
ztsjZhengli()
.then(res => {
console.log('2222', res)
buildExcelZaiTu()
.then(resp => {
console.log('3333', resp)
window.open(resp.data, '_blank')
})
.catch(ee => {
console.log(ee)
})
})
.catch(e => {
console.log(e)
})
}
}
}

2
base-ui/src/views/kucun/xssjgl/index.vue

@ -81,7 +81,7 @@
<div>共导入数据{{ currentLog.allNum }} 符合监管条件的数据{{ currentLog.validNum }} 用时{{ currentLog.durations }} 毫秒</div>
</el-card>
</div>
<div><el-button :disabled="filecandown" size="small" type="primary" @click="doDownloadHz">下载批发数据文件</el-button></div>
<div><el-button :disabled="filecandown" size="small" type="primary" @click="doDownloadHz">下载销售报表文件</el-button></div>
</el-card>
<span slot="footer" class="dialog-footer"><el-button @click="dialogClose"> </el-button></span>
</el-dialog>

30
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountMapper.java

@ -29,6 +29,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* Project: yxt_supervise <br/>
@ -53,4 +57,30 @@ public interface GdInstorageCountMapper extends BaseMapper<GdInstorageCount> {
"select colh7,coli8,sum(colr17),sum(colq16),cole4,colex,supplierCodeUnified " +
"from gd_instorage group by colh7,coli8,cole4,colex,supplierCodeUnified ")
void insertFromInstorage();
/**
* 供应商到货汇总表
*
* @return
*/
@Select("select name,1 as ee,convert(ifnull(billtotalprice,0),decimal(12,2)) billtotalprice , " +
"CONVERT(IFNULL(prodvalue,0),DECIMAL(12,2)) prodvalue , " +
"CONVERT(IFNULL(wdhjz,0),DECIMAL(12,2)) wdhjz , " +
"CONVERT(IFNULL(cchjz,0),DECIMAL(12,2)) cchjz ,arrivaldate,sfyq from `hz_ztspglhzb`")
List<Map<String, Object>> gysdhhzb();
/**
* 商品到货明细表
*
* @return
*/
List<Map<String, Object>> spdhmxb();
/**
* 订单明细表
*
* @return
*/
@Select("SELECT name,code,CONVERT(billTotalPrice,DECIMAL(12,2)) billTotalPrice,billDate,arrivalDate FROM hz_gysddmxb")
List<Map<String, Object>> ddmxb();
}

17
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountMapper.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.supervise.portal.biz.gdinstorage.GdInstorageCountMapper">
<select id="spdhmxb" resultType="java.util.Map">
SELECT sbi.name ,prp.`proCode`,prp.`proName`,prp.`number`, SUM(CONVERT(packageTotalPrice,DECIMAL(12,2))) as ptotalPrice,
(SELECT IFNULL(SUM(prodNum),0) FROM gd_instorage_count gic WHERE gic.supplierCodeUnified=pr.supplierOnlyCode AND prp.`proCode`=gic.prodcode ) prodNum,
(SELECT CONVERT(IFNULL(SUM(prodValue),0),DECIMAL(12,2)) FROM gd_instorage_count gic WHERE gic.supplierCodeUnified=pr.supplierOnlyCode AND prp.`proCode`=gic.prodcode ) prodValue,
IF(prp.`number`-(SELECT IFNULL(SUM(prodNum),0) FROM gd_instorage_count gic WHERE gic.supplierCodeUnified=pr.supplierOnlyCode AND prp.`proCode`=gic.prodcode ) > 0 , prp.`number`-(SELECT IFNULL(SUM(prodNum),0) FROM gd_instorage_count gic WHERE gic.supplierCodeUnified=pr.supplierOnlyCode AND prp.`proCode`=gic.prodcode ) , 0) ztnumber,
CONVERT(IF(SUM(packageTotalPrice)-(SELECT IFNULL(SUM(prodValue),0) FROM gd_instorage_count gic WHERE gic.supplierCodeUnified=pr.supplierOnlyCode AND prp.`proCode`=gic.prodcode ) > 0 ,SUM(packageTotalPrice)-(SELECT IFNULL(SUM(prodValue),0) FROM gd_instorage_count gic WHERE gic.supplierCodeUnified=pr.supplierOnlyCode AND prp.`proCode`=gic.prodcode ), 0),DECIMAL(12,2)) ztprodValue1,
CONVERT(IF((SELECT IFNULL(SUM(prodValue),0) FROM gd_instorage_count gic WHERE gic.supplierCodeUnified=pr.supplierOnlyCode AND prp.`proCode`=gic.prodcode )-SUM(packageTotalPrice) > 0 ,(SELECT SUM(prodValue) FROM gd_instorage_count gic WHERE gic.supplierCodeUnified=pr.supplierOnlyCode AND prp.`proCode`=gic.prodcode )-SUM(packageTotalPrice), 0),DECIMAL(12,2)) ztprodValue2
FROM `supplier_bank_info` sbi
LEFT JOIN `purchase_requisition` pr ON pr.supplierOnlyCode=sbi.codeUnified
LEFT JOIN `purchase_requisition_pro` prp ON pr.sid=prp.mainsid
WHERE pr.purchaseState=1 AND pr.bankState=1 AND sbi.`purchaseRequisition`=1 AND sbi.`bankState`=1
GROUP BY pr.supplierOnlyCode,prp.`proCode` ORDER BY sbi.name,prp.`proCode`;
</select>
</mapper>

144
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountService.java

@ -25,12 +25,22 @@
*********************************************************/
package com.yxt.supervise.portal.biz.gdinstorage;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yxt.common.core.result.ResultBean;
import com.yxt.supervise.portal.extexcel.ExcelTool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* Project: yxt_supervise <br/>
@ -48,6 +58,13 @@ import java.util.List;
@Service
public class GdInstorageCountService extends ServiceImpl<GdInstorageCountMapper, GdInstorageCount> {
@Value("${image.upload.path:static/upload/}")
private String uploadPath;
@Value("${image.url.prefix:http://127.0.0.1:8080/upload/}")
private String urlPrefix;
@Value("${image.xlsxtmpl:static/upload/}")
private String xlsxtmplPath;
@Autowired
private GdInstorageCountLogService gdInstorageCountLogService;
@ -74,4 +91,131 @@ public class GdInstorageCountService extends ServiceImpl<GdInstorageCountMapper,
return rb.success().setData(dto);
}
public ResultBean<String> buildExcelZaiTu() {
ResultBean rb = ResultBean.fireFail();
Date curDate = new Date();
String timestr = DateUtil.format(curDate, "yyyyMMddHHmmssSSS");
String dfmt1 = DateUtil.format(curDate, "yyyyMMdd");
String dfmt2 = DateUtil.format(curDate, "yyyy-MM-dd HH:mm");
String dfmt = DateUtil.format(curDate, "yyyy-MM-dd");
String xlsxpath = xlsxtmplPath + "在途商品汇总统计表.xlsx";
File srcFile = FileUtil.file(xlsxpath);
String tfile = "kchzb/在途商品汇总统计表" + dfmt + ".xlsx";
String url = urlPrefix + tfile;
String toFileName = uploadPath + tfile;
File file = FileUtil.file(toFileName);
FileUtil.copy(srcFile, file, true);
ExcelWriter writer = ExcelUtil.getWriter(file);
// 供应商到货汇总表
writer.setSheet(0);
writer.writeCellValue(0, 1, "编号:gysdhhzb" + dfmt1);
writer.writeCellValue(2, 1, "上报时间:" + dfmt2);
List<Map<String, Object>> list1 = baseMapper.gysdhhzb();
if (list1 == null || list1.isEmpty())
return rb.setMsg("供应商到货汇总表 数据为空!");
int size = list1.size();
int countRow = size + 3;
double cbilltotalprice = 0, cprodvalue = 0, cwdhjz = 0, ccchjz = 0;
for (int y = 3; y < countRow; y++) {
Map<String, Object> map = list1.get(y - 3);
writer.writeCellValue(0, y, map.get("name"));
writer.writeCellValue(1, y, "");
writer.writeCellValue(2, y, map.get("billtotalprice"));
cbilltotalprice = cbilltotalprice + ExcelTool.toDouble(map.get("billtotalprice"));
writer.writeCellValue(3, y, map.get("prodvalue"));
cprodvalue = cprodvalue + ExcelTool.toDouble(map.get("prodvalue"));
writer.writeCellValue(4, y, map.get("wdhjz"));
cwdhjz = cwdhjz + ExcelTool.toDouble(map.get("wdhjz"));
writer.writeCellValue(5, y, map.get("cchjz"));
ccchjz = ccchjz + ExcelTool.toDouble(map.get("cchjz"));
writer.writeCellValue(6, y, map.get("arrivaldate"));
writer.writeCellValue(7, y, map.get("sfyq"));
}
writer.writeCellValue(0, countRow, "合计");
writer.writeCellValue(2, countRow, NumberUtil.decimalFormat("0.00", cbilltotalprice));
writer.writeCellValue(3, countRow, NumberUtil.decimalFormat("0.00", cprodvalue));
writer.writeCellValue(4, countRow, NumberUtil.decimalFormat("0.00", cwdhjz));
writer.writeCellValue(5, countRow, NumberUtil.decimalFormat("0.00", ccchjz));
// 商品到货明细表
writer.setSheet(1);
writer.writeCellValue(0, 1, "编号:spdhmxb" + dfmt1);
writer.writeCellValue(2, 1, "上报时间:" + dfmt2);
List<Map<String, Object>> list2 = baseMapper.spdhmxb();
if (list2 == null || list2.isEmpty())
return rb.setMsg("商品到货明细表 数据为空!");
int size2 = list2.size();
int countRow2 = size2 + 3;
double cnumber = 0, cptotalPrice = 0, cprodNum = 0, cprodValue = 0, cztnumber = 0, cztprodValue1 = 0, cztprodValue2 = 0;
for (int y = 3; y < countRow2; y++) {
Map<String, Object> map = list2.get(y - 3);
writer.writeCellValue(0, y, map.get("name"));
writer.writeCellValue(1, y, map.get("proCode"));
writer.writeCellValue(2, y, map.get("proName"));
writer.writeCellValue(3, y, map.get("number"));
cnumber = cnumber + ExcelTool.toDouble(map.get("number"));
writer.writeCellValue(4, y, map.get("ptotalPrice"));
cptotalPrice = cptotalPrice + ExcelTool.toDouble(map.get("ptotalPrice"));
writer.writeCellValue(5, y, Math.round(ExcelTool.toDouble(map.get("prodNum"))));
cprodNum = cprodNum + ExcelTool.toDouble(map.get("prodNum"));
writer.writeCellValue(6, y, map.get("prodValue"));
cprodValue = cprodValue + ExcelTool.toDouble(map.get("prodValue"));
writer.writeCellValue(7, y, Math.round(ExcelTool.toDouble(map.get("ztnumber"))));
cztnumber = cztnumber + ExcelTool.toDouble(map.get("ztnumber"));
writer.writeCellValue(8, y, map.get("ztprodValue1"));
cztprodValue1 = cztprodValue1 + ExcelTool.toDouble(map.get("ztprodValue1"));
writer.writeCellValue(9, y, map.get("ztprodValue2"));
cztprodValue2 = cztprodValue2 + ExcelTool.toDouble(map.get("ztprodValue2"));
}
writer.writeCellValue(0, countRow2, "合计");
writer.writeCellValue(3, countRow2, Math.round(cnumber));
writer.writeCellValue(4, countRow2, NumberUtil.decimalFormat("0.00", cptotalPrice));
writer.writeCellValue(5, countRow2, Math.round(cprodNum));
writer.writeCellValue(6, countRow2, NumberUtil.decimalFormat("0.00", cprodValue));
writer.writeCellValue(7, countRow2, Math.round(cztnumber));
writer.writeCellValue(8, countRow2, NumberUtil.decimalFormat("0.00", cztprodValue1));
writer.writeCellValue(9, countRow2, NumberUtil.decimalFormat("0.00", cztprodValue2));
// 订单明细表
writer.setSheet(2);
writer.writeCellValue(0, 1, "编号:ddmxb" + dfmt1);
writer.writeCellValue(2, 1, "数据时间:" + dfmt);
List<Map<String, Object>> list3 = baseMapper.ddmxb();
if (list3 == null || list3.isEmpty())
return rb.setMsg("订单明细表 数据为空!");
int size3 = list3.size();
int countRow3 = size3 + 3;
int xh = 0;
double cbillTotalPrice = 0;
for (int y = 3; y < countRow3; y++) {
Map<String, Object> map = list3.get(y - 3);
xh++;
writer.writeCellValue(0, y, xh);
writer.writeCellValue(1, y, map.get("name"));
writer.writeCellValue(2, y, map.get("code"));
writer.writeCellValue(3, y, map.get("billTotalPrice"));
cbillTotalPrice = cbillTotalPrice + ExcelTool.toDouble(map.get("billTotalPrice"));
writer.writeCellValue(4, y, map.get("billDate"));
writer.writeCellValue(5, y, map.get("arrivalDate"));
}
writer.writeCellValue(1, countRow3, "合计金额");
writer.writeCellValue(3, countRow3, NumberUtil.decimalFormat("0.00", cbillTotalPrice));
// 烟草商品到货明细表
// writer.setSheet(3);
// 烟草订单明细表
// writer.setSheet(4);
writer.flush();
writer.close();
return rb.success().setData(url);
}
}

9
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageRest.java

@ -141,4 +141,13 @@ public class GdInstorageRest {
return rb.success().setData(downUrl);
}
/**
* 创建在途商品的Excel
* @return
*/
@GetMapping("/buildExcelZaiTu")
public ResultBean<String> buildExcelZaiTu() {
return gdInstorageCountService.buildExcelZaiTu();
}
}

58
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesService.java

@ -26,8 +26,12 @@
package com.yxt.supervise.portal.biz.gdsales;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import cn.hutool.poi.excel.sax.handler.RowHandler;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yxt.common.base.config.component.FileUploadComponent;
@ -36,13 +40,17 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.supervise.portal.biz.gdinventory.GdRescategoryProdService;
import com.yxt.supervise.portal.biz.storeindex.StoreIndexService;
import com.yxt.supervise.portal.biz.storeinfo.StoreInfoService;
import com.yxt.supervise.portal.extexcel.ExcelTool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* Project: yxt_supervise <br/>
@ -64,6 +72,8 @@ public class GdSalesService extends ServiceImpl<GdSalesMapper, GdSales> {
private String uploadPath;
@Value("${image.url.prefix:http://127.0.0.1:8080/upload/}")
private String urlPrefix;
@Value("${image.xlsxtmpl:static/upload/}")
private String xlsxtmplPath;
@Autowired
private GdSalesGdService gdSalesGdService;
@Autowired
@ -202,6 +212,52 @@ public class GdSalesService extends ServiceImpl<GdSalesMapper, GdSales> {
public ResultBean<GdSalesLog> buildExcel(String logId) {
return null;
ResultBean rb = ResultBean.fireFail();
GdSalesLog gdLog = gdSalesLogService.fetchById(logId);
if (gdLog == null)
return rb.setMsg("上传记录未找到");
String orderDate = gdLog.getOrderDate();
Date curDate = new Date();
String timestr = DateUtil.format(curDate, "yyyyMMddHHmmssSSS");
String dfmt1 = DateUtil.format(curDate, "yyyyMMdd");
String dfmt2 = DateUtil.format(curDate, "yyyy-MM-dd HH:mm");
String dfmt = DateUtil.format(curDate, "yyyy-MM-dd");
String xlsxpath = xlsxtmplPath + "销售汇总日报表.xlsx";
File srcFile = FileUtil.file(xlsxpath);
String tfile = "kchzb/销售汇总日报表" + dfmt + ".xlsx";
String url = urlPrefix + tfile;
String toFileName = uploadPath + tfile;
File file = FileUtil.file(toFileName);
FileUtil.copy(srcFile, file, true);
ExcelWriter writer = ExcelUtil.getWriter(file);
// 销售汇总日报表
writer.setSheet(0);
writer.writeCellValue(0, 1, "编号:xshzrbb" + dfmt1);
writer.writeCellValue(2, 1, "上报时间:" + dfmt2);
// 门店销售明细表
// writer.setSheet(1);
// 门店商品销售明细表
// writer.setSheet(2);
// 烟草门店销售明细表
// writer.setSheet(3);
// 烟草门店商品销售明细表
// writer.setSheet(4);
writer.flush();
writer.close();
gdLog.setFileUrl(url);
gdLog.setOutFilePath(toFileName);
gdSalesLogService.updateById(gdLog);
return rb.success().setData(gdLog);
}
}

55
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionRest.java

@ -46,7 +46,7 @@ public class PurchaseRequisitionRest implements PurchaseRequisitionFeign {
@ApiOperation(" ")
@RequestMapping(value = "/importBrandSort", method = RequestMethod.POST)
public ResultBean importBrandSort(@RequestParam("filename") MultipartFile file,
HttpServletRequest request, HttpServletResponse response){
HttpServletRequest request, HttpServletResponse response) {
ResultBean rb = ResultBean.fireFail();
String temp = request.getSession().getServletContext()
.getRealPath(File.separator)
@ -65,35 +65,37 @@ public class PurchaseRequisitionRest implements PurchaseRequisitionFeign {
} catch (IOException e) {
e.printStackTrace();
}
ResultBean<String> r= purchaseRequisitionService.readBrandPeriodSorXls1(in);
if(!r.getSuccess()){
ResultBean<String> r = purchaseRequisitionService.readBrandPeriodSorXls1(in);
if (!r.getSuccess()) {
return r;
}
String code= r.getData();
String code = r.getData();
PurchaseRequisition purchaseRequisition = purchaseRequisitionService.selectByCode(code);
String sid = purchaseRequisition.getSid();
ResultBean<Object> objectResultBean = fetchDetailsBySid(sid);
return rb.success().setData(objectResultBean.getData());
return rb.success().setData(objectResultBean.getData());
}
@ApiOperation(" ")
@RequestMapping(value = "/supplierAnalysis", method = RequestMethod.POST)
public ResultBean supplierAnalysis(){
public ResultBean supplierAnalysis() {
ResultBean rb = ResultBean.fireFail();
try {
purchaseRequisitionService. supplierAnalysis();
purchaseRequisitionService.supplierAnalysis();
} catch (ParseException e) {
e.printStackTrace();
return rb.setMsg(e.getMessage());
}
return rb;
return rb.success();
}
@ApiOperation("")
@RequestMapping(value = "/resetCache", method = RequestMethod.POST)
public ResultBean resetCache(){
log.info("resetCache:{}","/resetCache");
public ResultBean resetCache() {
log.info("resetCache:{}", "/resetCache");
GdRescategoryProdService.resetCache();
ResultBean rb = ResultBean.fireFail();
return rb;
return rb;
}
@Override
@ -108,14 +110,14 @@ public class PurchaseRequisitionRest implements PurchaseRequisitionFeign {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
PurchaseRequisition purchaseRequisition = purchaseRequisitionService.selectBySid(sid);
BeanUtil.copyProperties(dto,purchaseRequisition);
BeanUtil.copyProperties(dto, purchaseRequisition);
purchaseRequisitionService.updateById(purchaseRequisition);
List<PurchaseRequisitionProDto> pros = dto.getPros();
String [] sidArr={sid};
String[] sidArr = {sid};
purchaseRequisitionProService.delByMainSids(sidArr);
for(PurchaseRequisitionProDto p:pros){
for (PurchaseRequisitionProDto p : pros) {
PurchaseRequisitionPro purchaseRequisitionPro = new PurchaseRequisitionPro();
BeanUtil.copyProperties(p,purchaseRequisitionPro);
BeanUtil.copyProperties(p, purchaseRequisitionPro);
purchaseRequisitionPro.setMainSid(sid);
purchaseRequisitionPro.setSid(UUID.randomUUID().toString());
purchaseRequisitionProService.insert(purchaseRequisitionPro);
@ -125,7 +127,7 @@ public class PurchaseRequisitionRest implements PurchaseRequisitionFeign {
@Override
public ResultBean delBySids(@RequestBody String[] sids) {
ResultBean rb=ResultBean.fireFail();
ResultBean rb = ResultBean.fireFail();
int i = purchaseRequisitionService.delBySids(sids);
return rb.success().setData(i);
}
@ -133,19 +135,20 @@ public class PurchaseRequisitionRest implements PurchaseRequisitionFeign {
@Override
public ResultBean<Object> fetchDetailsBySid(String sid) {
ResultBean<Object> resultBean = ResultBean.fireFail();
PurchaseRequisitionDetailsVo vo=purchaseRequisitionService.fetchDetailsBySid(sid);
PurchaseRequisitionDetailsVo vo = purchaseRequisitionService.fetchDetailsBySid(sid);
List<PurchaseRequisitionProDto> purchaseRequisitionPros = purchaseRequisitionProService.selectByMainSid(sid);
vo.setPros(purchaseRequisitionPros);
return resultBean.success().setData(vo);
}
@ApiOperation(" ")
@RequestMapping(value = "/exportExcel", method = RequestMethod.GET)
public ResultBean exportExcel(HttpServletRequest request, HttpServletResponse response){
String pc=request.getParameter("code");
public ResultBean exportExcel(HttpServletRequest request, HttpServletResponse response) {
String pc = request.getParameter("code");
ResultBean rb = ResultBean.fireFail(); //excel标题
//excel文件名
String fileName = pc+"采购订单商品明细表"+System.currentTimeMillis()+".xls";
HSSFWorkbook wb =null;// purchaseRequisitionService.products( pc);
String fileName = pc + "采购订单商品明细表" + System.currentTimeMillis() + ".xls";
HSSFWorkbook wb = null;// purchaseRequisitionService.products( pc);
//响应到客户端
try {
this.setResponseHeader(response, fileName);
@ -156,27 +159,29 @@ public class PurchaseRequisitionRest implements PurchaseRequisitionFeign {
} catch (Exception e) {
e.printStackTrace();
}
return rb;
return rb;
}
public void setResponseHeader(HttpServletResponse response, String fileName) {
try {
try {
fileName = new String(fileName.getBytes(),"ISO8859-1");
fileName = new String(fileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setContentType("application/octet-stream;charset=ISO8859-1");
response.setHeader("Content-Disposition", "attachment;filename="+ fileName);
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
} catch (Exception ex) {
ex.printStackTrace();
}
}
@ApiOperation(" ")
@RequestMapping(value = "/yb", method = RequestMethod.GET)
public void yb(HttpServletRequest request, HttpServletResponse response){
public void yb(HttpServletRequest request, HttpServletResponse response) {
try {
URL resource = ResourceUtil.getResource("cgdd-tmpl/cgdd.xls");
// path是指想要下载的文件的路径

BIN
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/xlsx-tmpl/在途商品汇总统计表.xlsx

Binary file not shown.

BIN
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/xlsx-tmpl/销售汇总日报表.xlsx

Binary file not shown.
Loading…
Cancel
Save