|
|
@ -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<String> salesOrderCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(salesOrderCode)){ |
|
|
|
String[] splitSalesOrderCode = salesOrderCode.split(","); |
|
|
|
salesOrderCodes = Arrays.asList(splitSalesOrderCode); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); |
|
|
|
HashMap<String, SysSalesOrder> salesOrderHashMap = new HashMap<>(); |
|
|
|
for (SysSalesOrder sysSalesOrder : sysSalesOrders) { |
|
|
|
salesOrderHashMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); |
|
|
|
} |
|
|
|
|
|
|
|
//销售出货单
|
|
|
|
String shippingInformationType = "2"; |
|
|
@ -644,35 +660,42 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
|
|
|
|
|
|
|
|
List<SysSalesShippingInformDetail> 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<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); |
|
|
|
|
|
|
|
|
|
|
|
AtomicInteger index = new AtomicInteger(1); |
|
|
|
|
|
|
|
//处理物料数据
|
|
|
|
List<ExportShippingOrderDto> 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()); |
|
|
|
String totalMakeNum = String.valueOf(sysSalesOrderChildren.stream().mapToInt(SysSalesOrderChild::getMaterialNum).sum()); |
|
|
|
|
|
|
|
|
|
|
|
ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); |
|
|
@ -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<String, Object> 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); |
|
|
@ -706,7 +732,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
public void exportShippingOrderTwo(String outOrderCode, HttpServletResponse response) { |
|
|
|
|
|
|
|
String fileName = "销售出货单2.xlsx"; |
|
|
|
|
|
|
|
String shippingOrderCode = redisCache.generateBillNo("shd"); |
|
|
|
|
|
|
|
try { |
|
|
|
String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); |
|
|
@ -720,6 +746,22 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
SysSalesShippingInform salesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); |
|
|
|
|
|
|
|
|
|
|
|
String salesOrderCode = salesShippingInform.getSalesOrderCode(); |
|
|
|
|
|
|
|
List<String> salesOrderCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(salesOrderCode)){ |
|
|
|
String[] splitSalesOrderCode = salesOrderCode.split(","); |
|
|
|
salesOrderCodes = Arrays.asList(splitSalesOrderCode); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); |
|
|
|
HashMap<String, SysSalesOrder> salesOrderHashMap = new HashMap<>(); |
|
|
|
for (SysSalesOrder sysSalesOrder : sysSalesOrders) { |
|
|
|
salesOrderHashMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); |
|
|
|
} |
|
|
|
|
|
|
|
//销售出货单
|
|
|
|
String shippingInformationType = "2"; |
|
|
|
String shippingTemplateType = "销售出货单2"; |
|
|
@ -727,35 +769,42 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,salesShippingInform); |
|
|
|
|
|
|
|
List<SysSalesShippingInformDetail> 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<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); |
|
|
|
|
|
|
|
|
|
|
|
AtomicInteger index = new AtomicInteger(1); |
|
|
|
|
|
|
|
//处理物料数据
|
|
|
|
List<ExportShippingOrderDto> 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()); |
|
|
|
String totalMakeNum = String.valueOf(sysSalesOrderChildren.stream().mapToInt(SysSalesOrderChild::getMaterialNum).sum()); |
|
|
|
|
|
|
|
|
|
|
|
ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); |
|
|
@ -765,10 +814,14 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); |
|
|
|
|
|
|
|
HashMap<String, Object> map = MapUtils.newHashMap(); |
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
String shippingDate = dateFormat.format(new Date()); |
|
|
|
|
|
|
|
|
|
|
|
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); |
|
|
@ -800,9 +853,11 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
SysSalesShippingInform sysSalesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); |
|
|
|
String shippingInformationType = "0"; |
|
|
|
String shippingTemplateType = "销售出货箱单1"; |
|
|
|
|
|
|
|
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); |
|
|
|
|
|
|
|
//生成出货资料
|
|
|
|
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); |
|
|
|
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); |
|
|
|
|
|
|
|
String realFileName = salesOrderCode + "-" + fileName.substring(0, fileName.lastIndexOf(".")) + ".xlsx"; |
|
|
|
|
|
|
@ -810,35 +865,65 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); |
|
|
|
response.setContentType("application/octet-stream"); |
|
|
|
|
|
|
|
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); |
|
|
|
|
|
|
|
if (sysMakeOrder == null){ |
|
|
|
log.warn("未找到对应的生产订单,请检查:{}", salesOrderCode); |
|
|
|
throw new RuntimeException("未找到对应的生产订单,请检查"); |
|
|
|
|
|
|
|
|
|
|
|
List<String> salesOrderCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(salesOrderCode)){ |
|
|
|
String[] splitSalesOrderCode = salesOrderCode.split(","); |
|
|
|
salesOrderCodes = Arrays.asList(splitSalesOrderCode); |
|
|
|
} |
|
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
|
|
|
|
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); |
|
|
|
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); |
|
|
|
map.put("customerContact",sysSalesShippingInform.getCustomerContact()); |
|
|
|
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); |
|
|
|
//生产订主表的数据
|
|
|
|
List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); |
|
|
|
|
|
|
|
//获取销售订单的明细
|
|
|
|
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>(); |
|
|
|
|
|
|
|
for (SysMakeOrder sysMakeOrder : sysMakeOrders) { |
|
|
|
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<ExportShippingPackingDto> shippingPackingDtos = new ArrayList<>(); |
|
|
|
|
|
|
|
AtomicInteger index = new AtomicInteger(1); |
|
|
|
|
|
|
|
List<AfterSalesShippingDevice> shippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode); |
|
|
|
for (AfterSalesShippingDevice shippingDevice : shippingDeviceList) { |
|
|
|
|
|
|
|
for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { |
|
|
|
SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId()); |
|
|
|
ExportShippingPackingDto exportShippingPackingDto = new ExportShippingPackingDto(); |
|
|
|
exportShippingPackingDto.setIndex(index.getAndIncrement()); |
|
|
|
exportShippingPackingDto.setMaterialDescribe(shippingDevice.getMaterialDescribe()); |
|
|
|
exportShippingPackingDto.setMaterialModel(shippingDevice.getMaterialModelCode()); |
|
|
|
exportShippingPackingDto.setMakeNo(shippingDevice.getMakeNo()); |
|
|
|
exportShippingPackingDto.setMaterialNum(1); |
|
|
|
exportShippingPackingDto.setMaterialDescribe(sysSalesOrderChild.getDescribe()); |
|
|
|
exportShippingPackingDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); |
|
|
|
exportShippingPackingDto.setMakeNo(sysMakeOrder.getMakeNo()); |
|
|
|
exportShippingPackingDto.setMaterialNum(sysSalesOrderChild.getMaterialNum()); |
|
|
|
exportShippingPackingDto.setBox(null); |
|
|
|
exportShippingPackingDto.setOneBox(null); |
|
|
|
exportShippingPackingDto.setMeas(null); |
|
|
|
exportShippingPackingDto.setTwoBox(null); |
|
|
|
exportShippingPackingDto.setTotalGW(null); |
|
|
|
exportShippingPackingDto.setTotalNW(null); |
|
|
|
shippingPackingDtos.add(exportShippingPackingDto); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
|
|
|
|
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); |
|
|
|
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); |
|
|
|
map.put("customerContact",sysSalesShippingInform.getCustomerContact()); |
|
|
|
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); |
|
|
|
|
|
|
|
|
|
|
|
//构建模板
|
|
|
|
ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); |
|
|
|
WriteSheet sheet = EasyExcel.writerSheet().build(); |
|
|
@ -891,35 +976,60 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); |
|
|
|
response.setContentType("application/octet-stream"); |
|
|
|
|
|
|
|
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); |
|
|
|
|
|
|
|
if (sysMakeOrder == null){ |
|
|
|
log.warn("未找到对应的生产订单,请检查:{}", salesOrderCode); |
|
|
|
throw new RuntimeException("未找到对应的生产订单,请检查"); |
|
|
|
List<String> salesOrderCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(salesOrderCode)){ |
|
|
|
String[] splitSalesOrderCode = salesOrderCode.split(","); |
|
|
|
salesOrderCodes = Arrays.asList(splitSalesOrderCode); |
|
|
|
} |
|
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
|
|
|
|
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); |
|
|
|
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); |
|
|
|
map.put("customerContact",sysSalesShippingInform.getCustomerContact()); |
|
|
|
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); |
|
|
|
//生产订主表的数据
|
|
|
|
List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); |
|
|
|
|
|
|
|
//获取销售订单的明细
|
|
|
|
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>(); |
|
|
|
|
|
|
|
for (SysMakeOrder sysMakeOrder : sysMakeOrders) { |
|
|
|
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<ExportShippingPackingDto> shippingPackingDtos = new ArrayList<>(); |
|
|
|
|
|
|
|
AtomicInteger index = new AtomicInteger(1); |
|
|
|
|
|
|
|
List<AfterSalesShippingDevice> shippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode); |
|
|
|
for (AfterSalesShippingDevice shippingDevice : shippingDeviceList) { |
|
|
|
|
|
|
|
for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { |
|
|
|
SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId()); |
|
|
|
ExportShippingPackingDto exportShippingPackingDto = new ExportShippingPackingDto(); |
|
|
|
exportShippingPackingDto.setIndex(index.getAndIncrement()); |
|
|
|
exportShippingPackingDto.setMaterialDescribe(shippingDevice.getMaterialDescribe()); |
|
|
|
exportShippingPackingDto.setMaterialModel(shippingDevice.getMaterialModelCode()); |
|
|
|
exportShippingPackingDto.setMakeNo(shippingDevice.getMakeNo()); |
|
|
|
exportShippingPackingDto.setMaterialNum(1); |
|
|
|
exportShippingPackingDto.setMaterialDescribe(sysSalesOrderChild.getDescribe()); |
|
|
|
exportShippingPackingDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); |
|
|
|
exportShippingPackingDto.setMakeNo(sysMakeOrder.getMakeNo()); |
|
|
|
exportShippingPackingDto.setMaterialNum(sysSalesOrderChild.getMaterialNum()); |
|
|
|
exportShippingPackingDto.setBox(null); |
|
|
|
exportShippingPackingDto.setOneBox(null); |
|
|
|
exportShippingPackingDto.setMeas(null); |
|
|
|
exportShippingPackingDto.setTwoBox(null); |
|
|
|
exportShippingPackingDto.setTotalGW(null); |
|
|
|
exportShippingPackingDto.setTotalNW(null); |
|
|
|
shippingPackingDtos.add(exportShippingPackingDto); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
|
|
|
|
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); |
|
|
|
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); |
|
|
|
map.put("customerContact",sysSalesShippingInform.getCustomerContact()); |
|
|
|
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); |
|
|
|
|
|
|
|
//构建模板
|
|
|
|
ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); |
|
|
|
WriteSheet sheet = EasyExcel.writerSheet().build(); |
|
|
@ -965,51 +1075,83 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); |
|
|
|
|
|
|
|
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); |
|
|
|
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); |
|
|
|
|
|
|
|
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); |
|
|
|
List<String> salesOrderCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
String makeNo = sysMakeOrder.getMakeNo(); |
|
|
|
if (!StringUtils.isEmpty(makeNo)){ |
|
|
|
List<AfterSalesShippingDevice> afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo); |
|
|
|
if (StringUtils.isNotEmpty(salesOrderCode)){ |
|
|
|
String[] splitSalesOrderCode = salesOrderCode.split(","); |
|
|
|
salesOrderCodes = Arrays.asList(splitSalesOrderCode); |
|
|
|
} |
|
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
map.put("customerContact",sysSalesShippingInform.getCustomerContact()); |
|
|
|
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); |
|
|
|
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); |
|
|
|
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); |
|
|
|
//生产订主表的数据
|
|
|
|
List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); |
|
|
|
|
|
|
|
|
|
|
|
//销售订单主表的数据
|
|
|
|
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); |
|
|
|
|
|
|
|
//获取销售订单的明细
|
|
|
|
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>(); |
|
|
|
|
|
|
|
for (SysMakeOrder sysMakeOrder : sysMakeOrders) { |
|
|
|
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); |
|
|
|
} |
|
|
|
|
|
|
|
Map<String, SysSalesOrder> salesOrderMap = new HashMap<>(); |
|
|
|
|
|
|
|
for (SysSalesOrder sysSalesOrder : sysSalesOrders) { |
|
|
|
salesOrderMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ArrayList<ExportShippingInvoiceDto> 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<String, Object> 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(); |
|
|
@ -1053,50 +1195,79 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); |
|
|
|
|
|
|
|
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); |
|
|
|
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); |
|
|
|
|
|
|
|
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); |
|
|
|
List<String> salesOrderCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
String makeNo = sysMakeOrder.getMakeNo(); |
|
|
|
if (!StringUtils.isEmpty(makeNo)){ |
|
|
|
List<AfterSalesShippingDevice> afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo); |
|
|
|
if (StringUtils.isNotEmpty(salesOrderCode)){ |
|
|
|
String[] splitSalesOrderCode = salesOrderCode.split(","); |
|
|
|
salesOrderCodes = Arrays.asList(splitSalesOrderCode); |
|
|
|
} |
|
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
map.put("customerContact",sysSalesShippingInform.getCustomerContact()); |
|
|
|
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); |
|
|
|
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); |
|
|
|
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); |
|
|
|
//生产订主表的数据
|
|
|
|
List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); |
|
|
|
|
|
|
|
|
|
|
|
//销售订单主表的数据
|
|
|
|
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); |
|
|
|
|
|
|
|
//获取销售订单的明细
|
|
|
|
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>(); |
|
|
|
|
|
|
|
for (SysMakeOrder sysMakeOrder : sysMakeOrders) { |
|
|
|
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); |
|
|
|
} |
|
|
|
|
|
|
|
Map<String, SysSalesOrder> salesOrderMap = new HashMap<>(); |
|
|
|
|
|
|
|
for (SysSalesOrder sysSalesOrder : sysSalesOrders) { |
|
|
|
salesOrderMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ArrayList<ExportShippingInvoiceDto> 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<String, Object> 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(); |
|
|
@ -1119,6 +1290,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 +1308,52 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
|
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); |
|
|
|
|
|
|
|
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); |
|
|
|
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); |
|
|
|
|
|
|
|
List<String> salesOrderCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(salesOrderCode)){ |
|
|
|
String[] splitSalesOrderCode = salesOrderCode.split(","); |
|
|
|
salesOrderCodes = Arrays.asList(splitSalesOrderCode); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//生产订主表的数据
|
|
|
|
List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); |
|
|
|
|
|
|
|
//获取销售订单的明细
|
|
|
|
List<SysSalesOrderChild> 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<AfterSalesShippingDevice> salesShippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode); |
|
|
|
|
|
|
|
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>(); |
|
|
|
|
|
|
|
for (SysMakeOrder sysMakeOrder : sysMakeOrders) { |
|
|
|
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ArrayList<ExportShippingInformOrderDto> 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 +1362,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(); |
|
|
|