diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java index 7339dcf1..7a6bbee6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java @@ -9,9 +9,30 @@ import lombok.Data; public class ExportShippingInformOrderDto { + /** 销售单号*/ + private String salesOrderCode; + + /** 生产订单号*/ + private String makeNo; + + /** 客户订单号*/ + private String customerOrderCode; + + /** 物料名称*/ private String materialName; - private String deviceModelCode; + /** 物料型号*/ + private String materialModel; + + /** 物料数量*/ + private Integer materialNum; + + /** 铭牌logo*/ + private String logo; + /** 备注*/ + private String remark; + /** 追踪码*/ + private String trackingCode; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeOrderMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeOrderMapper.java index 2b1d3136..e464d730 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeOrderMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeOrderMapper.java @@ -130,4 +130,9 @@ public interface SysMakeOrderMapper * */ List selectMakeOrderByMakeNoList(List makeNos); + + /** + * 根据销售单号集合查询生产订单集合 + * */ + List selectMakeOrderListBySalesOrderCodes(List salesOrderCode); } 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 e83ec932..c21e726b 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 @@ -1119,6 +1119,8 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor public void exportShippingInformOrder(String outOrderCode, HttpServletResponse response) { String fileName = "出货通知单.xlsx"; + //出货单号:CTD年月日+001三位数流水号 + String shippingInformOrderCode = redisCache.generateBillNo("CTD"); try { String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); @@ -1135,21 +1137,52 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); - SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); + + List salesOrderCodes = new ArrayList<>(); + + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); + } + //生产订主表的数据 + List sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); + + //获取销售订单的明细 + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); + String realFileName = sysSalesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx"; // 设置响应头,指定文件名和文件类型 response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); response.setContentType("application/octet-stream"); - List salesShippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode); + + Map makeOrderMap = new HashMap<>(); + + for (SysMakeOrder sysMakeOrder : sysMakeOrders) { + makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); + } + ArrayList shippingInformOrderDtos = new ArrayList<>(); - for (AfterSalesShippingDevice afterSalesShippingDevice : salesShippingDeviceList) { + + + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { + ExportShippingInformOrderDto shippingInformOrderDto = new ExportShippingInformOrderDto(); - shippingInformOrderDto.setDeviceModelCode(afterSalesShippingDevice.getDeviceModelCode()); - shippingInformOrderDto.setMaterialName(afterSalesShippingDevice.getMaterialName()); + SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId()); + shippingInformOrderDto.setCustomerOrderCode(sysMakeOrder.getCustomerOderCode()); + shippingInformOrderDto.setMakeNo(sysMakeOrder.getMakeNo()); + shippingInformOrderDto.setSalesOrderCode(sysMakeOrder.getSaleNo()); + + shippingInformOrderDto.setMaterialName(sysSalesOrderChild.getMaterialName()); + shippingInformOrderDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); + shippingInformOrderDto.setMaterialNum(sysSalesOrderChild.getMaterialNum()); + shippingInformOrderDto.setLogo(null); + shippingInformOrderDto.setRemark(null); + shippingInformOrderDto.setTrackingCode(null); + shippingInformOrderDtos.add(shippingInformOrderDto); } @@ -1158,12 +1191,9 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String shippingDate = dateFormat.format(new Date()); - map.put("makeNo",sysMakeOrder.getMakeNo()); - map.put("salesOrderNumber",sysSalesShippingInform.getSalesOrderNumber()); - map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + map.put("shippingInformOrderCode",shippingInformOrderCode); map.put("shippingDate",shippingDate); map.put("customerName",sysSalesShippingInform.getCustomerName()); - map.put("businessMembers",sysSalesShippingInform.getBusinessMembers()); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); WriteSheet sheet = EasyExcel.writerSheet().build(); diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysMakeOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysMakeOrderMapper.xml index bb131c25..f237a36d 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/SysMakeOrderMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/SysMakeOrderMapper.xml @@ -302,4 +302,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE wso.warehouse_storage_code = #{warehouseStorageCode} + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/attachments/出货通知单.xlsx b/ruoyi-admin/src/main/resources/static/attachments/出货通知单.xlsx index 5fa20c7e..078bc212 100644 Binary files a/ruoyi-admin/src/main/resources/static/attachments/出货通知单.xlsx and b/ruoyi-admin/src/main/resources/static/attachments/出货通知单.xlsx differ