diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java index eed8c878..b075df5e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java @@ -15,12 +15,15 @@ public class ExportShippingInvoiceDto { private String materialName; + private String materialModel; + private String makeNo; private Integer materialNum; - private BigDecimal materialUsd; + private String materialAmount; - private BigDecimal materialUsdSum; + private String materialAmountSum; + private String total; } 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 902d0aab..b45f411b 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 @@ -1075,51 +1075,83 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); - SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); - List sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); + List salesOrderCodes = new ArrayList<>(); - String makeNo = sysMakeOrder.getMakeNo(); - if (!StringUtils.isEmpty(makeNo)){ - List afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo); + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); } - Map map = new HashMap<>(); - map.put("customerContact",sysSalesShippingInform.getCustomerContact()); - map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); - map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); - map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + //生产订主表的数据 + List sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); + + + //销售订单主表的数据 + List sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); + + //获取销售订单的明细 + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); + + + + Map makeOrderMap = new HashMap<>(); + + for (SysMakeOrder sysMakeOrder : sysMakeOrders) { + makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); + } + + Map salesOrderMap = new HashMap<>(); + + for (SysSalesOrder sysSalesOrder : sysSalesOrders) { + salesOrderMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); + } ArrayList exportShippingInvoiceDtos = new ArrayList<>(); + AtomicInteger index = new AtomicInteger(1); for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto(); + SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId()); + SysSalesOrder sysSalesOrder = salesOrderMap.get(sysSalesOrderChild.getQuoteId()); + exportShippingInvoiceDto.setIndex(index.getAndIncrement()); + exportShippingInvoiceDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName()); - exportShippingInvoiceDto.setMaterialNum(1); + exportShippingInvoiceDto.setMaterialNum(sysSalesOrderChild.getMaterialNum()); + exportShippingInvoiceDto.setMakeNo(sysMakeOrder.getMakeNo()); - if (sysSalesOrderChild.getMaterialUsd() != null) { - exportShippingInvoiceDto.setMaterialUsd(new BigDecimal(sysSalesOrderChild.getMaterialUsd())); - } else { - // 如果 materialUsd 为 null,可以设置为默认值或者保持不变 - exportShippingInvoiceDto.setMaterialUsd(BigDecimal.ZERO); // 示例: 设置为0 - } + if ("1".equals(sysSalesOrder.getCommonCurrency())){ + + String materialNoRmb = sysSalesOrderChild.getMaterialNoRmb().toString(); + String materialNoRmbSum = sysSalesOrderChild.getMaterialNoRmbSum().toString(); + exportShippingInvoiceDto.setMaterialAmount(materialNoRmb + "RMB"); + exportShippingInvoiceDto.setMaterialAmountSum(materialNoRmbSum + "RMB"); - if (sysSalesOrderChild.getMaterialUsdSum() != null) { - exportShippingInvoiceDto.setMaterialUsdSum(new BigDecimal(sysSalesOrderChild.getMaterialUsdSum())); } else { - // 如果 materialUsdSum 为 null,可以设置为默认值或者保持不变 - exportShippingInvoiceDto.setMaterialUsdSum(BigDecimal.ZERO); // 示例: 设置为0 + + String materialNoUsd = sysSalesOrderChild.getMaterialNoUsd().toString(); + String materialNoUsdSum = sysSalesOrderChild.getMaterialNoUsdSum().toString(); + exportShippingInvoiceDto.setMaterialAmount(materialNoUsd + "USD"); + exportShippingInvoiceDto.setMaterialAmountSum(materialNoUsdSum + "USD"); } - exportShippingInvoiceDto.setMakeNo(makeNo); - // to do 缺少物料型号 + exportShippingInvoiceDtos.add(exportShippingInvoiceDto); } + + + Map map = new HashMap<>(); + map.put("customerContact",sysSalesShippingInform.getCustomerContact()); + map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); + map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + + ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); WriteSheet sheet = EasyExcel.writerSheet().build(); FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); @@ -1163,50 +1195,79 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); - SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); - List sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); + List salesOrderCodes = new ArrayList<>(); - String makeNo = sysMakeOrder.getMakeNo(); - if (!StringUtils.isEmpty(makeNo)){ - List afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo); + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); } - Map map = new HashMap<>(); - map.put("customerContact",sysSalesShippingInform.getCustomerContact()); - map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); - map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); - map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + //生产订主表的数据 + List sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); + + + //销售订单主表的数据 + List sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); + + //获取销售订单的明细 + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); + + + + Map makeOrderMap = new HashMap<>(); + + for (SysMakeOrder sysMakeOrder : sysMakeOrders) { + makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); + } + + Map salesOrderMap = new HashMap<>(); + + for (SysSalesOrder sysSalesOrder : sysSalesOrders) { + salesOrderMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); + } ArrayList exportShippingInvoiceDtos = new ArrayList<>(); + AtomicInteger index = new AtomicInteger(1); for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto(); + SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId()); + SysSalesOrder sysSalesOrder = salesOrderMap.get(sysSalesOrderChild.getQuoteId()); + exportShippingInvoiceDto.setIndex(index.getAndIncrement()); + exportShippingInvoiceDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName()); - exportShippingInvoiceDto.setMaterialNum(1); + exportShippingInvoiceDto.setMaterialNum(sysSalesOrderChild.getMaterialNum()); + exportShippingInvoiceDto.setMakeNo(sysMakeOrder.getMakeNo()); - if (sysSalesOrderChild.getMaterialUsd() != null) { - exportShippingInvoiceDto.setMaterialUsd(new BigDecimal(sysSalesOrderChild.getMaterialUsd())); - } else { - // 如果 materialUsd 为 null,可以设置为默认值或者保持不变 - exportShippingInvoiceDto.setMaterialUsd(BigDecimal.ZERO); // 示例: 设置为0 - } + if ("1".equals(sysSalesOrder.getCommonCurrency())){ + + String materialNoRmb = sysSalesOrderChild.getMaterialNoRmb().toString(); + String materialNoRmbSum = sysSalesOrderChild.getMaterialNoRmbSum().toString(); + exportShippingInvoiceDto.setMaterialAmount(materialNoRmb + "RMB"); + exportShippingInvoiceDto.setMaterialAmountSum(materialNoRmbSum + "RMB"); - if (sysSalesOrderChild.getMaterialUsdSum() != null) { - exportShippingInvoiceDto.setMaterialUsdSum(new BigDecimal(sysSalesOrderChild.getMaterialUsdSum())); } else { - // 如果 materialUsdSum 为 null,可以设置为默认值或者保持不变 - exportShippingInvoiceDto.setMaterialUsdSum(BigDecimal.ZERO); // 示例: 设置为0 + + String materialNoUsd = sysSalesOrderChild.getMaterialNoUsd().toString(); + String materialNoUsdSum = sysSalesOrderChild.getMaterialNoUsdSum().toString(); + exportShippingInvoiceDto.setMaterialAmount(materialNoUsd + "USD"); + exportShippingInvoiceDto.setMaterialAmountSum(materialNoUsdSum + "USD"); } - exportShippingInvoiceDto.setMakeNo(makeNo); - // to do 缺少物料型号 + exportShippingInvoiceDtos.add(exportShippingInvoiceDto); } + Map map = new HashMap<>(); + map.put("customerContact",sysSalesShippingInform.getCustomerContact()); + map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); + map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); WriteSheet sheet = EasyExcel.writerSheet().build(); diff --git a/ruoyi-admin/src/main/resources/static/attachments/销售出货发票1.xlsx b/ruoyi-admin/src/main/resources/static/attachments/销售出货发票1.xlsx index 5153f88d..d712f516 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 diff --git a/ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx b/ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx index 7cda613a..4f0494a8 100644 Binary files a/ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx and b/ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx differ diff --git a/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html b/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html index 6e6bf075..5c25a2fc 100644 --- a/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html +++ b/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html @@ -524,7 +524,7 @@ const row = selectedRows[0]; // 使用 $.modal.confirm 显示确认对话框 - $.modal.confirm("确定导出这条数据的出货单吗?", function() { + $.modal.confirm("确定导出这条数据的出货发票1吗?", function() { // 如果用户点击确定,继续导出 var outOrderCode = row.outOrderCode; window.location.href = prefix + "/exportShippingInvoiceOne/" + outOrderCode; @@ -546,7 +546,7 @@ const row = selectedRows[0]; // 使用 $.modal.confirm 显示确认对话框 - $.modal.confirm("确定导出这条数据的出货单吗?", function() { + $.modal.confirm("确定导出这条数据的出货发票吗?", function() { // 如果用户点击确定,继续导出 var outOrderCode = row.outOrderCode; window.location.href = prefix + "/exportShippingInvoiceTwo/" + outOrderCode;