From b2a9a0090a8a17833c12bcc4a5aa8abdd85ad582 Mon Sep 17 00:00:00 2001 From: yxt_djz Date: Sat, 7 Jan 2023 15:02:16 +0800 Subject: [PATCH] 2 --- .../biz/productnum/ProductNumService.java | 8 +- .../PurchaseRequisitionMapper.java | 2 + .../PurchaseRequisitionRest.java | 6 +- .../PurchaseRequisitionService.java | 63 +++++----- .../PurchaseRequisitionTobaccoService.java | 6 +- ...chaseRequisitionTobaccoDetailsService.java | 83 +++++++++++++- .../biz/salesdata/SalesDataService.java | 108 +++++++++++++++++- 7 files changed, 231 insertions(+), 45 deletions(-) diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/productnum/ProductNumService.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/productnum/ProductNumService.java index b212210e..f29fd73f 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/productnum/ProductNumService.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/productnum/ProductNumService.java @@ -510,6 +510,8 @@ public class ProductNumService extends MybatisBaseService map=new HashMap<>(); + map.put("pd",pd); //创建内容 for(int i=0;i map=new HashMap<>(); map.put("wb",wb); - map.put("pd",pd); + return map; } diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionMapper.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionMapper.java index 14eb7f76..b3b1f9aa 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionMapper.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionMapper.java @@ -62,4 +62,6 @@ public interface PurchaseRequisitionMapper extends BaseMapper selectByPc(@Param("pc")String pc); @Delete(" DELETE FROM hz_ztspglhzb") void deleteAll(); + @Select("select * from hz_ztspglhzb where codeUnified =#{codeUnified} AND wdhjz=0 ") + List> suplierZtyz( @Param("codeUnified") String supplierCode); } diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionRest.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionRest.java index a4f559fe..918a37f2 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionRest.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionRest.java @@ -65,7 +65,11 @@ public class PurchaseRequisitionRest implements PurchaseRequisitionFeign { } catch (IOException e) { e.printStackTrace(); } - String code = purchaseRequisitionService.readBrandPeriodSorXls1(in, ""); + ResultBean r= purchaseRequisitionService.readBrandPeriodSorXls1(in); + if(!r.getSuccess()){ + return r; + } + String code= r.getData(); PurchaseRequisition purchaseRequisition = purchaseRequisitionService.selectByCode(code); String sid = purchaseRequisition.getSid(); ResultBean objectResultBean = fetchDetailsBySid(sid); diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionService.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionService.java index 86a7ee56..7c116ded 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionService.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/purchaserequisition/PurchaseRequisitionService.java @@ -21,6 +21,7 @@ import com.yxt.supervise.portal.api.purchaserequisition.PurchaseRequisitionVo; import com.yxt.supervise.portal.api.purchaserequisitionpro.PurchaseRequisitionPro; import com.yxt.supervise.portal.api.purchaserequisitionpro.PurchaseRequisitionProDto; import com.yxt.supervise.portal.api.restrictedcategory.RestrictedCategory; +import com.yxt.supervise.portal.api.supplierinfo.SupplierInfoVo; import com.yxt.supervise.portal.api.warehouseposition.WarehousePosition; import com.yxt.supervise.portal.api.warehouseposition.WarehousePositionVo; import com.yxt.supervise.portal.biz.dictcommon.DictCommonService; @@ -173,7 +174,7 @@ public class PurchaseRequisitionService extends MybatisBaseService readBrandPeriodSorXls1(InputStream is) { /* int ii=uddatePrice(); if(ii==1){ return; @@ -233,6 +234,7 @@ public class PurchaseRequisitionService extends MybatisBaseService objectResultBean=ResultBean.fireFail(); + SupplierInfoVo supplierInfoVo = supplierInfoService.selectByCode(pr.getSupplierCode()); + if(supplierInfoVo==null){ + return objectResultBean.setMsg("供应商不存在!"); + } + List> suplierZtyz=baseMapper.suplierZtyz(pr.getSupplierCode()); + if(suplierZtyz.size()>0){ + return objectResultBean.setMsg("供应商有在途商品!"); + } purchaseRequisitionService.insert(pr); for (PurchaseRequisitionPro p: prps){ purchaseRequisitionProService.insert(p); @@ -436,11 +434,10 @@ public class PurchaseRequisitionService extends MybatisBaseService fub = fileUploadComponent.uploadFile(file, "PurchaseRequisitionTobaccoDetails"); + /*ResultBean fub = fileUploadComponent.uploadFile(file, "PurchaseRequisitionTobaccoDetails"); String filePath = fub.getData().getFilePath(); String fp = fileUploadComponent.getUploadPath() + filePath; long millis = System.currentTimeMillis(); - ExcelUtil.read07BySax(fp, -1, createRowHandler(sid)); + ExcelUtil.read07BySax(fp, -1, createRowHandler(sid));*/ + CsvReader csvReader = CsvUtil.getReader(); + File f = this.multiToFile(file); + BufferedReader reader = ResourceUtil.getReader(f.getPath(), CharsetUtil.CHARSET_GBK); + List rows = csvReader.read(reader, HashMap.class); + List ls=new ArrayList<>(); + int i = 0; + BigDecimal bigDecimal=new BigDecimal("0"); + for(HashMap hm:rows){ + /*"商品": "钻石(硬迎宾)\t", + "批发价": "61.500000\t", + "卷烟代码": "130690\t", + "订单量": "3.000000\t", + "要货量": "3.000000\t", + "零售指导价": "70.00\t", + "金额": "184.50\t", + "厂家名称": "河北中烟\t"*/ + try{ String sp = hm.get("商品").toString().trim(); + String pfj = hm.get("批发价").toString().trim(); + String jydm = hm.get("卷烟代码").toString().trim(); + String ddl = hm.get("订单量").toString().trim(); + String yhl = hm.get("要货量").toString().trim(); + String lszdj = hm.get("零售指导价").toString().trim(); + String je = hm.get("金额").toString().trim(); + String cjmc = hm.get("厂家名称").toString().trim(); + PurchaseRequisitionTobaccoDetails p=new PurchaseRequisitionTobaccoDetails(); + p.setCjmc(cjmc); + p.setDdl(ddl); + p.setLszdj(lszdj); + p.setPfj(pfj); + BigDecimal price = new BigDecimal(je.trim()); + bigDecimal= bigDecimal.add(price); + p.setPrice(je); + p.setProdName(sp); + p.setYCode(jydm); + p.setYhl(yhl); + p.setMainSid(sid); + ls.add(p); + i++; + }catch(Exception e){ + e.printStackTrace(); + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + baseMapper.insertIntoImportDataInfo(sdf.format(new Date()),"烟草数据明细导入第"+i+"出现异常"+e.getMessage()); + System.err.println("i="+i+",value=null"); + } + } + log.info("rows:{}",JSONObject.toJSONString(rows)); + log.info("ls:{}",JSONObject.toJSONString(ls)); + baseMapper.batchInsert(ls); + purchaseRequisitionStoreService.updateDetailsPrice(sid,bigDecimal.toString()); + } + /** + * MultipartFile转file + * @param multipartFile + * @return + */ + private File multiToFile(MultipartFile multipartFile) { + //选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。 + File file = null; + try { + String originalFilename = multipartFile.getOriginalFilename(); + String[] filename = originalFilename.split("\\."); + file=File.createTempFile(filename[0], filename[1]); + multipartFile.transferTo(file); + file.deleteOnExit(); + } catch (IOException e) { + e.printStackTrace(); + log.error(e.getMessage()); + } + return file; } + private RowHandler createRowHandler(String sid ) { return new RowHandler() { List lisss=new ArrayList<>(); List salesDatas=new ArrayList<>(); int i = 0; - int j = 0; + // int j = 0; BigDecimal bigDecimal=new BigDecimal("0"); @Override public void handle(int sheetIndex, long rowNum, List r) { diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataService.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataService.java index 188756b1..01684cc8 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataService.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/salesdata/SalesDataService.java @@ -26,11 +26,16 @@ package com.yxt.supervise.portal.biz.salesdata; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.text.csv.CsvReader; +import cn.hutool.core.text.csv.CsvUtil; +import cn.hutool.core.util.CharsetUtil; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.sax.handler.RowHandler; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.portal.api.purchaserequisitiontobaccodetails.PurchaseRequisitionTobaccoDetails; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.core.result.FileUploadResult; import com.yxt.supervise.portal.api.brandinfo.BrandInfo; @@ -71,6 +76,9 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @@ -209,10 +217,10 @@ public class SalesDataService extends MybatisBaseService fub = fileUploadComponent.uploadFile(file, "PurchaseRequisitionTobaccoDetails"); + String filePath = fub.getData().getFilePath(); + String fp = fileUploadComponent.getUploadPath() + filePath; + long millis = System.currentTimeMillis(); + ExcelUtil.read07BySax(fp, -1, createRowHandler(sid));*/ + log.info("readBrandPeriodSorXls1:{}",1); + CsvReader csvReader = CsvUtil.getReader(); + log.info("readBrandPeriodSorXls1:{}",2); + File f = this.multiToFile(file); + log.info("readBrandPeriodSorXls1:{}",3); + BufferedReader reader = ResourceUtil.getReader(f.getPath(), CharsetUtil.CHARSET_GBK); + log.info("readBrandPeriodSorXls1:{}",4); + List rows = csvReader.read(reader, HashMap.class); + log.info("readBrandPeriodSorXls1:{}",5); + List ls=new ArrayList<>(); + log.info("readBrandPeriodSorXls1:{}",6); + int i = 0; + log.info("readBrandPeriodSorXls1:{}",7); + for(HashMap hm:rows){ + try{ + /*String sp = hm.get("商品").toString().trim(); + String pfj = hm.get("批发价").toString().trim(); + String jydm = hm.get("卷烟代码").toString().trim(); + String ddl = hm.get("订单量").toString().trim(); + String yhl = hm.get("要货量").toString().trim(); + String lszdj = hm.get("零售指导价").toString().trim(); + String je = hm.get("金额").toString().trim(); + String cjmc = hm.get("厂家名称").toString().trim()` ;*/ + /*SalesData sd=new SalesData(); + sd.setType( hm.get("类型").toString().trim());//类型 + sd.setCode(hm.get("销售订单号").toString().trim());//销售订单号 + sd.setProCode(hm.get("商品编码").toString().trim());//商品代码 + sd.setProBarCode(hm.get("商品条码").toString().trim());//商品条码 + sd.setProName(hm.get("商品名称").toString().trim());//商品名称 + sd.setBrandCode(hm.get("品牌代码").toString().trim());//品牌代码 + String brandName=hm.get("品牌名称").toString().trim(); + sd.setBrandName(brandName);//品牌名称 + String dalei=hm.get("大类").toString().trim();//大类 + sd.setCategoryb(dalei); + String zhonglei=hm.get("中类").toString().trim();//中类 + sd.setCategorym(zhonglei); + String xiaolei=hm.get("小类").toString().trim();//小类 + sd.setCategorys(xiaolei); + sd.setCustomerCode(hm.get("客户代码").toString().trim());//客户代码 + sd.setCustomerName(hm.get("客户名称").toString().trim());//客户名称 + sd.setSaleNum(hm.get("销售数量").toString().trim());//销售数量 + sd.setStoreCode(hm.get("销售渠道").toString().trim());//销售渠道 + sd.setSalePrice(hm.get("销售价格").toString().trim());//销售价格 + sd.setSaleCost(hm.get("销售成本").toString().trim());//销售成本 + sd.setProfit(hm.get("利润").toString().trim());//利润 + sd.setDataDate(hm.get("数据日期").toString().trim());//销售日期 + ls.add(sd);*/ +// log.info("iiiiiiiiiiiiiiiiiiiiiii:{}",i); +// log.info("p:{}",JSONObject.toJSONString(sd)); + //i++; + }catch(Exception e){ + e.printStackTrace(); + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + baseMapper.insertIntoImportDataInfo(sdf.format(new Date()),"烟草数据明细导入第"+i+"出现异常"+e.getMessage()); + System.err.println("i="+i+",value=null"); + } + } + /*log.info("readBrandPeriodSorXls1:{}",8); + log.info("readBrandPeriodSorXls1-rows:{}",rows.size()); + log.info("readBrandPeriodSorXls1-ls:{}",ls.size()); + log.info("rows:{}",JSONObject.toJSONString(rows)); + log.info("ls:{}",JSONObject.toJSONString(ls));*/ + /*baseMapper.batchInsert(ls); + purchaseRequisitionStoreService.updateDetailsPrice(sid,bigDecimal.toString());*/ + } + /** + * MultipartFile转file + * @param multipartFile + * @return + */ + private File multiToFile(MultipartFile multipartFile) { + //选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。 + File file = null; + try { + String originalFilename = multipartFile.getOriginalFilename(); + String[] filename = originalFilename.split("\\."); + file=File.createTempFile(filename[0], filename[1]); + multipartFile.transferTo(file); + file.deleteOnExit(); + } catch (IOException e) { + e.printStackTrace(); + log.error(e.getMessage()); + } + return file; + } public void readBrandPeriodSorXls1(MultipartFile file) { ResultBean fub = fileUploadComponent.uploadFile(file, "salesdata"); @@ -423,7 +523,7 @@ public class SalesDataService extends MybatisBaseService