diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java index 2ecd299e..59e52e87 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java @@ -13,9 +13,7 @@ public class ExportShippingOrderDto { private String materialName; - private String materialNo; - - private String materialDescribe; + private String materialModel; private String materialUnit; @@ -24,4 +22,6 @@ public class ExportShippingOrderDto { private String salesOrderNumber; private String remark; + + private String enterpriseMaterialNo; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java index c21e726b..74b60134 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java @@ -624,6 +624,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor public void exportShippingOrderOne(String outOrderCode, HttpServletResponse response) { String fileName = "销售出货单1.xlsx"; + String shippingOrderCode = redisCache.generateBillNo("shd"); try { String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); @@ -635,6 +636,21 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor SysSalesShippingInform salesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); + String salesOrderCode = salesShippingInform.getSalesOrderCode(); + + List salesOrderCodes = new ArrayList<>(); + + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); + } + + + List sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); + HashMap salesOrderHashMap = new HashMap<>(); + for (SysSalesOrder sysSalesOrder : sysSalesOrders) { + salesOrderHashMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); + } //销售出货单 String shippingInformationType = "2"; @@ -644,33 +660,40 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor List salesShippingInformDetails = shippingInformDetailMapper.selectSysSalesShippingInformDetailByCode(outOrderCode); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - String deliverTime = dateFormat.format(salesShippingInform.getDeliverTime()); + + + String realFileName = salesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx"; // 设置响应头,指定文件名和文件类型 response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); response.setContentType("application/octet-stream"); + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); + + AtomicInteger index = new AtomicInteger(1); //处理物料数据 List exportShippingOrderDtos = new ArrayList<>(); - for (SysSalesShippingInformDetail salesShippingInformDetail : salesShippingInformDetails) { + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { + SysSalesOrder sysSalesOrder = salesOrderHashMap.get(sysSalesOrderChild.getQuoteId()); + ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto(); exportShippingOrderDto.setIndex(index.getAndIncrement()); - exportShippingOrderDto.setMaterialName(salesShippingInformDetail.getMaterialName()); - exportShippingOrderDto.setMaterialNo(salesShippingInformDetail.getMaterialNo()); - exportShippingOrderDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe()); - exportShippingOrderDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit()); - exportShippingOrderDto.setMakeNum(salesShippingInformDetail.getMakeNum()); - exportShippingOrderDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber()); - exportShippingOrderDto.setRemark(salesShippingInform.getRemark()); + exportShippingOrderDto.setMaterialName(sysSalesOrderChild.getMaterialName()); + exportShippingOrderDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); + exportShippingOrderDto.setMaterialUnit(sysSalesOrderChild.getUnit()); + exportShippingOrderDto.setMakeNum(sysSalesOrderChild.getMaterialNum()); + exportShippingOrderDto.setSalesOrderNumber(sysSalesOrder.getSalesOrderNumber()); + exportShippingOrderDto.setRemark(sysSalesOrder.getRemark()); + exportShippingOrderDto.setEnterpriseMaterialNo(sysSalesOrder.getEnterpriseMaterialNo()); exportShippingOrderDtos.add(exportShippingOrderDto); } + //totalMakeNum String totalMakeNum = String.valueOf(salesShippingInformDetails.stream().mapToInt(SysSalesShippingInformDetail::getMakeNum).sum()); @@ -681,11 +704,14 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String shippingDate = dateFormat.format(new Date()); + HashMap map = MapUtils.newHashMap(); map.put("customerId",salesShippingInform.getCustomerId()); - map.put("deliverTime",deliverTime); - map.put("businessMembers",salesShippingInform.getBusinessMembers()); + map.put("shippingDate",shippingDate); map.put("totalMakeNum",totalMakeNum); + map.put("shippingOrderCode",shippingOrderCode); // 写入数据 workBook.fill(map, sheet); @@ -744,8 +770,6 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto(); exportShippingOrderDto.setIndex(index.getAndIncrement()); exportShippingOrderDto.setMaterialName(salesShippingInformDetail.getMaterialName()); - exportShippingOrderDto.setMaterialNo(salesShippingInformDetail.getMaterialNo()); - exportShippingOrderDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe()); exportShippingOrderDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit()); exportShippingOrderDto.setMakeNum(salesShippingInformDetail.getMakeNum()); exportShippingOrderDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber()); diff --git a/ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx b/ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx index 3fbb9f2f..f7f8a848 100644 Binary files a/ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx and b/ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx differ