From 377044e35ffec2fd12b432e54ae4bbdd41b7aadc Mon Sep 17 00:00:00 2001 From: chuang <994001556@qq.com> Date: Wed, 15 Mar 2023 14:27:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95-=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/jnpf/mobilePort/utils/FileCopy.java | 7 +- .../controller/PurchaseorderController.java | 4 +- .../impl/PurchaseorderitemServiceImpl.java | 190 ++++++++++-------- 3 files changed, 112 insertions(+), 89 deletions(-) diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/utils/FileCopy.java b/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/utils/FileCopy.java index 822318aa..ccddd714 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/utils/FileCopy.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/utils/FileCopy.java @@ -114,9 +114,10 @@ public class FileCopy { List objects2 = reader.readColumn(0, 0, 1); // 公司名字 String companyStr = String.valueOf(objects2.get(0)); + companyStr=companyStr.substring(0,companyStr.lastIndexOf("废钢收货")); // 销售合同编码 String infoStr = String.valueOf(objects2.get(1)); - String companyName = companyStr.substring(0, companyStr.lastIndexOf("废钢收货明细表")); + infoStr = infoStr.replaceAll(" ", ""); // 销售合同编码 String str = infoStr.substring(7, infoStr.indexOf("采购合同编码")); @@ -161,8 +162,8 @@ public class FileCopy { Object o1 = fileMap.get(String.valueOf(o)); Object o2 = carFileMap.get(String.valueOf(o)); - cell.setCellValue(String.valueOf(o1).equals("null") ? "" : String.valueOf(o1)); - cell4.setCellValue(String.valueOf(o2).equals("null") ? "" : String.valueOf(o2)); + cell.setCellValue(String.valueOf(o1).equals("null") ? "" : JsonUtil.getListToJsonArray((List)o1).toString()); + cell4.setCellValue(String.valueOf(o2).equals("null") ? "" :JsonUtil.getListToJsonArray((List)o2).toString()); cell1.setCellValue(companyStr); cell2.setCellValue(str); cell3.setCellValue(str3); diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/controller/PurchaseorderController.java b/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/controller/PurchaseorderController.java index ca08f01d..4b723be9 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/controller/PurchaseorderController.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/controller/PurchaseorderController.java @@ -320,6 +320,7 @@ public class PurchaseorderController { MultipartFile file = list.get(0); if (file.getOriginalFilename().endsWith(".zip")) { String filePath = configValueUtil.getTemporaryFilePath() + "unzip\\"; + // String fileName = RandomUtil.uuId() + "." + UpUtil.getFileType(file); // fileName = XSSEscape.escape(fileName); //上传文件 @@ -327,6 +328,7 @@ public class PurchaseorderController { if (!temporaryFile.exists()) { temporaryFile.mkdirs(); } + FileUtil.deleteFileAll(temporaryFile); @Cleanup InputStream inputStream = file.getInputStream(); File gbk = ZipUtil.unzip(inputStream, temporaryFile, Charset.forName("GBK")); HashMap imgMap = new HashMap<>(); @@ -355,7 +357,7 @@ public class PurchaseorderController { File temporary = new File(XSSEscape.escapePath(filePath + fileName)); //得到数据 List purchaseorderList = ExcelUtil.importExcel(temporary, 2, 1, PurchaseorderDTO.class); - log.warn(purchaseorderList.toString()); +// log.warn(purchaseorderList.toString()); //预览数据 Map map = purchaseorderitemService.importPreview(purchaseorderList); return ActionResult.success(map); diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/service/impl/PurchaseorderitemServiceImpl.java b/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/service/impl/PurchaseorderitemServiceImpl.java index c9a462ae..f2c55e0d 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/service/impl/PurchaseorderitemServiceImpl.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/service/impl/PurchaseorderitemServiceImpl.java @@ -23,7 +23,6 @@ import jnpf.base.controller.BillRuleController; import jnpf.base.entity.ProvinceEntity; import jnpf.base.mapper.ProvinceMapper; import jnpf.config.ConfigValueUtil; -import jnpf.customer.entity.CustomerEntity; import jnpf.customer.mapper.CustomerVMapper; import jnpf.exception.DataException; import jnpf.materialvo.entity.MaterialEntity; @@ -48,7 +47,6 @@ import jnpf.receiptin.entity.ReceiptinEntity; import jnpf.receiptin.entity.Receiptin_item0Entity; import jnpf.receiptin.service.ReceiptinService; import jnpf.receiptin.service.Receiptin_item0Service; -import jnpf.saleorder.entity.SaleorderitemEntity; import jnpf.saleorder.mapper.SaleorderitemMapper; import jnpf.supplyProcessAnalysis.entity.ContractMEntity; import jnpf.supplyProcessAnalysis.mapper.ContractMMapper; @@ -674,8 +672,7 @@ public class PurchaseorderitemServiceImpl extends ServiceImpl dataRowMap = new HashMap<>(); PurchaseorderDTO model = purchaseorderList.get(i); - if (model.getPoundDate()==null){ + if (model.getPoundDate() == null) { - }else { + } else { dataRowMap.put("poundDate", model.getPoundDate()); dataRowMap.put("vehicleId", model.getVehicleId()); dataRowMap.put("materialId", model.getMaterialId()); @@ -1432,27 +1429,17 @@ public class PurchaseorderitemServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(CustomerEntity::getSupplierNm, model.getCustomerId()); - List customerEntityList = customerMapper.selectList(wrapper); - if (customerEntityList != null && customerEntityList.size() > 0) { - model.setCustomerId(customerEntityList.get(0).getId()); - } else { - model.setCauseError("客户信息不存在!请添加客户信息后尝试添加!"); - errList.add(model); - ints.add(i); - continue; - } - } -// 采购合同编码 + // 采购合同编码 if (model.getPurchaseId() != null) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(PurchaseorderitemEntity::getDocumentNo, model.getPurchaseId()); - List purchaseorderitemEntityList = purchaseorderitemMapper.selectList(wrapper); - if (purchaseorderitemEntityList != null && purchaseorderitemEntityList.size() > 0) { - model.setPurchaseId(purchaseorderitemEntityList.get(0).getId()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ContractMEntity::getContractCode, model.getPurchaseId()); + wrapper.eq(ContractMEntity::getContractType, "0"); + List contractMEntities = contractMapper.selectList(wrapper); + + if (contractMEntities != null && contractMEntities.size() > 0) { + model.setPurchaseId(contractMEntities.get(0).getId()); +// 客户id + model.setCustomerId(contractMEntities.get(0).getCode()); } else { model.setCauseError("采购合同不存在!请添加采购合同后尝试添加!"); errList.add(model); @@ -1460,13 +1447,31 @@ public class PurchaseorderitemServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); +// wrapper.eq(CustomerEntity::getSupplierNm, model.getCustomerId()); +// List customerEntityList = customerMapper.selectList(wrapper); +// if (customerEntityList != null && customerEntityList.size() > 0) { +// model.setCustomerId(customerEntityList.get(0).getId()); +// } else { +// model.setCauseError("客户信息不存在!请添加客户信息后尝试添加!"); +// errList.add(model); +// ints.add(i); +// continue; +// } +// } + // 销售合同编码 if (model.getSalesId() != null) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(SaleorderitemEntity::getDocumentNo, model.getSalesId()); - List saleorderitemEntityList = saleorderitemMapper.selectList(wrapper); - if (saleorderitemEntityList != null && saleorderitemEntityList.size() > 0) { - model.setSalesId(saleorderitemEntityList.get(0).getId()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ContractMEntity::getContractCode, model.getSalesId()); + wrapper.eq(ContractMEntity::getContractType, "1"); + List contractMEntities = contractMapper.selectList(wrapper); + + + if (contractMEntities != null && contractMEntities.size() > 0) { + model.setSalesId(contractMEntities.get(0).getId()); } else { model.setCauseError("销售合同不存在!请添加销售合同后尝试添加!"); errList.add(model); @@ -1557,98 +1562,102 @@ public class PurchaseorderitemServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ContractMEntity::getContractType, "0"); - wrapper.eq(ContractMEntity::getContractCode, purchaseId); + wrapper.eq(ContractMEntity::getId, purchaseId); List contractMEntities = contractMapper.selectList(wrapper); - if (contractMEntities != null && contractMEntities.size() > 0) { - // 采购合同 - ContractMEntity contractMEntity = contractMEntities.get(0); +// if (contractMEntities != null && contractMEntities.size() > 0) { + // 采购合同 + ContractMEntity contractMEntity = contractMEntities.get(0); //雪花算法获取采购订单id - Long aLong = new DefaultIdentifierGenerator().nextId(PurchaseorderitemEntity.class); + Long aLong = new DefaultIdentifierGenerator().nextId(PurchaseorderitemEntity.class); //采购 - for (int i = 0; i < dataList.size(); i++) { - PurchaseorderDTO model = dataList.get(i); - Purchaseorder_item0Entity item0 = new Purchaseorder_item0Entity(); - Long aLong2 = new DefaultIdentifierGenerator().nextId(Purchaseorder_item0Entity.class); + for (int i = 0; i < dataList.size(); i++) { + PurchaseorderDTO model = dataList.get(i); + Purchaseorder_item0Entity item0 = new Purchaseorder_item0Entity(); + Long aLong2 = new DefaultIdentifierGenerator().nextId(Purchaseorder_item0Entity.class); // 雪花算法获取榜单id - Long aLong1 = new DefaultIdentifierGenerator().nextId(PoundlistEntity.class); - model.setId(aLong1.toString()); + Long aLong1 = new DefaultIdentifierGenerator().nextId(PoundlistEntity.class); + model.setId(aLong1.toString()); // 设置id - item0.setId(aLong2.toString()); + item0.setId(aLong2.toString()); // 主表Id - item0.setPurchaseorderId(aLong.toString()); + item0.setPurchaseorderId(aLong.toString()); //poundlist_id磅单id: - item0.setPoundlistId(aLong1.toString()); + item0.setPoundlistId(aLong1.toString()); //price单价:为execl中的采购单价 - item0.setPrice(new BigDecimal(model.getPurchasePrice())); + BigDecimal pricePur = new BigDecimal(model.getPurchasePrice()); + BigDecimal settlem = new BigDecimal(model.getSettlement()); +// 采购额/结算重量 + item0.setPrice(pricePur.divide(settlem, RoundingMode.CEILING).setScale(6, RoundingMode.HALF_UP)); //settlement结算重量:为execl中的结算重量 - item0.setSettlement(new BigDecimal(model.getSettlement())); + item0.setSettlement(new BigDecimal(model.getSettlement())); //rate税率:默认为0 即13个点 - item0.setRate("0"); + item0.setRate("0"); + //amount金额:price*settlement,保留6位小数 - item0.setAmount(item0.getPrice().multiply(item0.getSettlement()).setScale(6, RoundingMode.HALF_UP)); + item0.setAmount(new BigDecimal(model.getSalesPrice())); //not_amount不含税金额:price*settlement*(1 - 税率) 不含税价格为sum/1.13=price - item0.setNotAmount(item0.getAmount().divide(BigDecimal.valueOf(1 + 0.13))); + item0.setNotAmount(item0.getAmount().divide(BigDecimal.valueOf(1 + 0.13), RoundingMode.CEILING).setScale(6, RoundingMode.HALF_UP)); //vehicle_id车辆id:磅单c表车辆id - item0.setVehicleId(model.getVehicleId()); + item0.setVehicleId(model.getVehicleId()); //material_id物料id:磅单表物料id - item0.setMaterialId(model.getMaterialId()); + item0.setMaterialId(model.getMaterialId()); //supplier_id供应商id:磅单表供应商id - item0.setSupplierId(contractMEntity.getCode()); + item0.setSupplierId(contractMEntity.getCode()); //结算重量汇总到主表 - settlementNum = settlementNum.add(item0.getSettlement()); + settlementNum = settlementNum.add(item0.getSettlement()); //垫资金额 - if (model.getAdvance().equals("是")) { - advanceSum = advanceSum.add(item0.getSettlement()); - } + if (model.getAdvance().equals("是")) { + advanceSum = advanceSum.add(item0.getSettlement()); + } //金额 - amoutSum = amoutSum.add(item0.getAmount()); + amoutSum = amoutSum.add(item0.getAmount()); // 不含税金额 - notAmountSum = notAmountSum.add(item0.getNotAmount()); + notAmountSum = notAmountSum.add(item0.getNotAmount()); - purItemEntities.add(item0); + purItemEntities.add(item0); - if (i == dataList.size() - 1) { - PurchaseorderitemEntity entity = new PurchaseorderitemEntity(); + if (i == dataList.size() - 1) { + PurchaseorderitemEntity entity = new PurchaseorderitemEntity(); // id - entity.setId(aLong.toString()); - // 税额rateSum - rateSum = amoutSum.subtract(notAmountSum); + entity.setId(aLong.toString()); + // 税额rateSum + rateSum = amoutSum.subtract(notAmountSum); // 生成的采购编码 - ActionResult pdBillNumber = bean.getBillNumber(str2); - entity.setDocumentNo(String.valueOf(pdBillNumber.getData())); + ActionResult pdBillNumber = bean.getBillNumber(str2); + entity.setDocumentNo(String.valueOf(pdBillNumber.getData())); // 合同id - entity.setContractCode(contractMEntities.get(0).getId()); + entity.setContractCode(contractMEntities.get(0).getId()); // 对方合同号 - entity.setContractNo(contractMEntities.get(0).getContractNo()); + entity.setContractNo(contractMEntities.get(0).getContractNo()); // 供应商、客户ID - entity.setSupplierId(contractMEntities.get(0).getCode()); + entity.setSupplierId(contractMEntities.get(0).getCode()); // 供应商名称 - entity.setSupplierName(contractMEntities.get(0).getName()); + entity.setSupplierName(contractMEntities.get(0).getName()); // 重量 - entity.setNum(settlementNum); + entity.setNum(settlementNum); // 金额 - entity.setAmount(amoutSum); + entity.setAmount(amoutSum); // 不含税金额 - entity.setNotAmount(notAmountSum); + entity.setNotAmount(notAmountSum); // 税额 - entity.setRate(rateSum); + entity.setRate(rateSum); // 垫资金额 - entity.setAdvanceAmount(advanceSum); - purEntities = entity; - } + entity.setAdvanceAmount(advanceSum); + purEntities = entity; } + } - } else { - log.error("采购合同不存在!请添加后后重新添加!"); - errList.addAll(dataList); - } +// } else { +// log.error("采购合同不存在!请添加后后重新添加!"); +// errList.addAll(dataList); +// } for (int i = 0; i < ints.size(); i++) { Integer integer = ints.get(i); @@ -1657,11 +1666,21 @@ public class PurchaseorderitemServiceImpl extends ServiceImpl entitys = JsonUtil.getJsonToList(dataList, PoundlistEntity.class); String str1 = "poundlist"; - for (PoundlistEntity model : entitys - ) { + int i5 = 0; + for (PoundlistEntity model : entitys) { + PurchaseorderDTO purchaseorderDTO = dataList.get(i5); // 生成的榜单编码 ActionResult pdBillNumber = bean.getBillNumber(str1); model.setPoundlistNo(String.valueOf(pdBillNumber.getData())); +// 车辆信息 + model.setVehiclePictures(purchaseorderDTO.getCarPictures()); + BigDecimal settlement = model.getSettlement(); + BigDecimal purchasePrice = model.getPurchasePrice(); +// 采购单价 + model.setPurchasePrice(purchasePrice.divide(settlement, RoundingMode.CEILING).setScale(6, RoundingMode.HALF_UP)); + BigDecimal salesPrice = model.getSalesPrice(); +// 销售单价 + model.setSalesPrice(salesPrice.divide(settlement, RoundingMode.CEILING).setScale(6, RoundingMode.HALF_UP)); // 是否审核 model.setIsExamine("1"); // 榜单类型 @@ -1670,6 +1689,7 @@ public class PurchaseorderitemServiceImpl extends ServiceImpl