yxt_njy 2 years ago
parent
commit
7d54209f40
  1. 12
      base-ui/src/api/kucun/ruku.js
  2. 20
      base-ui/src/views/kucun/rkmx/index.vue
  3. 2
      base-ui/src/views/kucun/xssjgl/index.vue
  4. 30
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountMapper.java
  5. 17
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountMapper.xml
  6. 144
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountService.java
  7. 9
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageRest.java
  8. 58
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesService.java
  9. 6
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionMapper.java
  10. 55
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionRest.java
  11. 2
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionService.java
  12. 2
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataRest.java
  13. 79
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataService.java
  14. 9
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/supplierinfo/SupplierInfoMapper.java
  15. 4
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/supplierinfo/SupplierInfoMapper.xml
  16. 4
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/supplierinfo/SupplierInfoService.java
  17. BIN
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/xlsx-tmpl/在途商品汇总统计表.xlsx
  18. 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' })
}

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);
}
}

6
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionMapper.java

@ -31,15 +31,15 @@ public interface PurchaseRequisitionMapper extends BaseMapper<PurchaseRequisitio
PurchaseRequisition selectByCode(@Param("code") String pc);
@Select("select * from purchase_requisition ")
List<PurchaseRequisition> selectAll();
@Select(" SELECT sbi.codeUnified, sbi.name ,1,SUM(packageTotalPrice) billTotalPrice, " +
" (SELECT SUM(prodValue) FROM gd_instorage_count gic WHERE gic.supplierCodeUnified=pr.supplierOnlyCode and gic.prodCode in(select prodcode from gd_rescategory_prod) ) prodValue, " +
@Select(" SELECT MAX(sbi.codeUnified) codeUnified, MAX(sbi.name) name ,1,convert(SUM(packageTotalPrice),decimal(12,2)) billTotalPrice, " +
" (SELECT convert(SUM(prodValue),decimal(12,2)) FROM gd_instorage_count gic WHERE gic.supplierCodeUnified=pr.supplierOnlyCode and gic.prodCode in(select prodcode from gd_rescategory_prod) ) prodValue, " +
" MAX(pr.`arrivalDate`) arrivalDate 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 ORDER BY sbi.name;")
List<Map<String, Object>> ztspglhzb();
@Select("SELECT sbi.name,code,SUM(packageTotalPrice) billTotalPrice,purchaseDate billDate,arrivalDate FROM `purchase_requisition` pr " +
@Select("SELECT MAX(sbi.name) name,code,SUM(packageTotalPrice) billTotalPrice,MAX(purchaseDate) billDate,MAX(arrivalDate) arrivalDate FROM `purchase_requisition` pr " +
"LEFT JOIN `purchase_requisition_pro` prp ON pr.sid=prp.mainsid " +
"LEFT JOIN `supplier_bank_info` sbi ON sbi.codeUnified=pr.`supplierOnlyCode` " +
" WHERE pr.purchaseState=1 AND pr.bankState=1 " +

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是指想要下载的文件的路径

2
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionService.java

@ -416,7 +416,7 @@ public class PurchaseRequisitionService extends MybatisBaseService<PurchaseRequi
}
log.info("productInformation:{}", JSONObject.toJSONString(pr));
ResultBean<String> objectResultBean=ResultBean.fireFail();
SupplierInfoVo supplierInfoVo = supplierInfoService.selectByCode(pr.getSupplierCode());
SupplierInfoVo supplierInfoVo = supplierInfoService.selectByCodeForIndex(pr.getSupplierCode());
if(supplierInfoVo==null){
return objectResultBean.setMsg("供应商不存在!");
}

2
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataRest.java

@ -112,7 +112,7 @@ public class SalesDataRest implements SalesDataFeign {
public ResultBean importBrandSort(@RequestParam("filename") MultipartFile file ){
ResultBean rb = ResultBean.fireFail();
salesDataService.readBrandPeriodSorXls1(file);
return rb;
return rb.success().setMsg("成功");
}
@ApiOperation(" ")
@RequestMapping(value = "/analysisSalesData", method = RequestMethod.GET)

79
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataService.java

@ -359,7 +359,7 @@ public class SalesDataService extends MybatisBaseService<SalesDataMapper, SalesD
}catch(Exception e){
e.printStackTrace();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
baseMapper.insertIntoImportDataInfo(sdf.format(new Date()),"烟草数据明细导入第"+i+"出现异常"+e.getMessage());
baseMapper.insertIntoImportDataInfo(sdf.format(new Date()),"销售数据明细导入第"+i+"出现异常"+e.getMessage());
System.err.println("i="+i+",value=null");
}
}
@ -392,69 +392,11 @@ public class SalesDataService extends MybatisBaseService<SalesDataMapper, SalesD
return file;
}
public void readBrandPeriodSorXls1(MultipartFile file) {
ResultBean<FileUploadResult> fub = fileUploadComponent.uploadFile(file, "salesdata");
String filePath = fub.getData().getFilePath();
String fp = fileUploadComponent.getUploadPath() + filePath;
long millis = System.currentTimeMillis();
ExcelUtil.read07BySax(fp, -1, createRowHandler());
/*HSSFWorkbook hssfWorkbook = null;
try {
hssfWorkbook = new HSSFWorkbook(is);
} catch (IOException e) {
e.printStackTrace();
}
List<String> lisss=new ArrayList<>();
List<SalesData> salesDatas=new ArrayList<>();
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);
// 循环行Row
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
SalesData sd=new SalesData();
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
int i = 0;
try{
sd.setType(ExcelTool.readStringFromHSSFRow(hssfRow, 1));//类型
sd.setCode(ExcelTool.readStringFromHSSFRow(hssfRow, 2));//销售订单号
sd.setProCode(ExcelTool.readStringFromHSSFRow(hssfRow, 3));//商品代码
sd.setProBarCode(ExcelTool.readStringFromHSSFRow(hssfRow, 4));//商品条码
sd.setProName(ExcelTool.readStringFromHSSFRow(hssfRow, 5));//商品名称
sd.setBrandCode(ExcelTool.readStringFromHSSFRow(hssfRow, 6));//品牌代码
String brandName=ExcelTool.readStringFromHSSFRow(hssfRow, 7);
sd.setBrandName(brandName);//品牌名称
String dalei=ExcelTool.readStringFromHSSFRow(hssfRow, 8);//大类
sd.setCategoryb(dalei);
String zhonglei=ExcelTool.readStringFromHSSFRow(hssfRow, 9);//中类
sd.setCategorym(zhonglei);
String xiaolei=ExcelTool.readStringFromHSSFRow(hssfRow, 10);//小类
sd.setCategorys(xiaolei);
sd.setCustomerCode(ExcelTool.readStringFromHSSFRow(hssfRow, 11));//客户代码
sd.setCustomerName(ExcelTool.readStringFromHSSFRow(hssfRow, 12));//客户名称
sd.setSaleNum(ExcelTool.readStringFromHSSFRow(hssfRow, 13));//销售数量
sd.setStoreCode(ExcelTool.readStringFromHSSFRow(hssfRow, 14));//销售渠道
sd.setSalePrice(ExcelTool.readStringFromHSSFRow(hssfRow, 15));//销售价格
sd.setSaleCost(ExcelTool.readStringFromHSSFRow(hssfRow, 16));//销售成本
sd.setProfit(ExcelTool.readStringFromHSSFRow(hssfRow, 17));//利润
sd.setDataDate(ExcelTool.readStringFromHSSFRow(hssfRow, 18));//销售日期
salesDatas.add(sd);
}catch(Exception e){
e.printStackTrace();
System.err.println("i="+i+",value=null");
}
lisss.add(rowNum+"");
//inventoryInformationService.reduceStock(sd.getProCode(),sd.getProName(),sd.getStoreCode(),sd.getSaleNum());
log.info("productInformation:{}", JSONObject.toJSONString(sd));
log.info("rowNum:{}", rowNum);
}
String x = JSON.toJSONString(lisss);
System.out.println(x);*/
}
@Resource
private GdInstorageGdService gdInstorageGdService;
@ -479,7 +421,6 @@ public class SalesDataService extends MybatisBaseService<SalesDataMapper, SalesD
//创建HSSFWorkbook
//addProductNum(list);
List<Map<String,String>> listss=new ArrayList<>();
int i=0;
for(SalesData s:list){
String proCode = s.getProCode();
//List<StoreInfo> storeInfos=storeInfoService.selectLimitStores();
@ -503,14 +444,22 @@ public class SalesDataService extends MybatisBaseService<SalesDataMapper, SalesD
map.put("t9",multiply.toString());
map.put("t10",s.getDataDate());
listss.add(map);
log.info("i:{}",i++);
//} else {
log.info("SalesData:{}",JSONObject.toJSONString(s));
// }
}
}
log.info("SalesData:{}",listss.size());
List<List<Map<String,String>>> listArray = new ArrayList<List<Map<String,String>>>();
int listSize = listss.size();
int pageSize=2000;
for (int i = 0; i < listSize; i += pageSize) {
int toIndex = Math.min(i + pageSize, listSize);
listArray.add(listss.subList(i, toIndex));
}
log.info("开始新增salestest");
baseMapper.insertsalestest(listss);
for(List<Map<String,String>> l:listArray){
log.info("Map<String,String>-start:{}",l.size());
baseMapper.insertsalestest(l);
log.info("Map<String,String>-end:{}",l.size());
}
log.info("结束新增salestest");
log.info("开始新增jmdRkmxdOfDay");
List<GdInstorageGd> gdInstorageGds = gdInstorageGdService.jmdRkmxdOfDay(pc);

9
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/supplierinfo/SupplierInfoMapper.java

@ -60,13 +60,14 @@ public interface SupplierInfoMapper extends BaseMapper<SupplierInfo> {
List<SupplierInfoVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SupplierInfo> qw);
@Select("select * from supplier_info ")
@Select("select * from supplier_bank_info ")
List<SupplierInfoVo> selectListVo();
@Select("select * from supplier_info where purchaseRequisition=1 and bankState=1")
@Select("select * from supplier_bank_info where purchaseRequisition=1 and bankState=1")
List<SupplierInfoVo> selectAdoptedListVo();
@Select("select supplierName name from purchase_requisition group by supplierName")
List<SupplierInfoVo> selectPurSupplier();
@Select("select * from supplier_info where code=#{code}")
@Select("select * from supplier_bank_info where code=#{code}")
SupplierInfoVo selectByCode(String code);
@Select("select * from supplier_index where code=#{code}")
SupplierInfoVo selectByCodeForIndex(@Param("code") String supplierCode);
}

4
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/supplierinfo/SupplierInfoMapper.xml

@ -4,10 +4,10 @@
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.supervise.portal.api.supplierinfo.SupplierInfoVo">
SELECT * FROM supplier_info <where> ${ew.sqlSegment} </where>
SELECT * FROM supplier_bank_info <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.supervise.portal.api.supplierinfo.SupplierInfoVo">
SELECT * FROM supplier_info <where> ${ew.sqlSegment} </where>
SELECT * FROM supplier_bank_info <where> ${ew.sqlSegment} </where>
</select>
</mapper>

4
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/supplierinfo/SupplierInfoService.java

@ -114,4 +114,8 @@ public class SupplierInfoService extends MybatisBaseService<SupplierInfoMapper,
public List<SupplierInfoVo> selectAdoptedListVo() {
return baseMapper.selectAdoptedListVo();
}
public SupplierInfoVo selectByCodeForIndex(String supplierCode) {
return baseMapper.selectByCodeForIndex(supplierCode);
}
}

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