diff --git a/pom.xml b/pom.xml
index b47b826..f18cbd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -220,6 +220,13 @@
${win.version}
+
+
+ com.alibaba
+ easyexcel
+ 3.3.4
+
+
diff --git a/win-admin/pom.xml b/win-admin/pom.xml
index ba8a1d4..fe3abf4 100644
--- a/win-admin/pom.xml
+++ b/win-admin/pom.xml
@@ -47,6 +47,12 @@
com.win
win-generator
+
+ com.alibaba
+ easyexcel-core
+ 3.3.4
+ compile
+
diff --git a/win-admin/src/main/java/com/win/web/controller/base/ExcelController.java b/win-admin/src/main/java/com/win/web/controller/base/ExcelController.java
new file mode 100644
index 0000000..67b14ce
--- /dev/null
+++ b/win-admin/src/main/java/com/win/web/controller/base/ExcelController.java
@@ -0,0 +1,820 @@
+package com.win.web.controller.base;
+
+import com.alibaba.excel.EasyExcelFactory;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.fill.FillConfig;
+import com.alibaba.excel.write.metadata.fill.FillWrapper;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.win.common.annotation.Log;
+import com.win.common.config.WinConfig;
+import com.win.common.core.domain.AjaxResult;
+import com.win.common.enums.BusinessType;
+import com.win.system.service.LinuxAccessService;
+import com.win.system.service.QadAccessService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TreeMap;
+
+@Slf4j
+@RestController
+@RequestMapping("/excel")
+public class ExcelController {
+
+ private static final Logger logger = LoggerFactory.getLogger("sys-user");
+
+ @Autowired
+ private LinuxAccessService linuxAccessService;
+ @Autowired
+ private QadAccessService qadAccessService;
+
+ /**
+ * 导出长春模板。
+ *
+ * @param body 请求主体
+ * @return 结果
+ */
+ @PostMapping("export")
+ @Log(title = "导出订单",businessType = BusinessType.EXPORT,isManager = false)
+ public AjaxResult export(@RequestBody String body) throws IOException {
+ JSONObject jsonObject = JSONObject.parseObject(body);
+ String orderNo = jsonObject.getString("orderNo");
+ String type = jsonObject.getString("type");
+// String key = "";
+// for(String keyTemp : jsonObject.keySet()) {
+// jsonObject = JSONObject.parseObject(jsonObject.getString(keyTemp));
+// key = keyTemp;
+// }
+// String companyCode = "LEARPROD-CCJV";
+// String interfaceName = "supplierrsexport";
+// String domain = "CCJV";
+// QueryWrapper linuxAccessQueryWrapper = new QueryWrapper<>();
+// linuxAccessQueryWrapper.eq("company_code",companyCode);
+// linuxAccessQueryWrapper.eq("uri",interfaceName);
+// LinuxAccess linuxAccess = linuxAccessService.getOne(linuxAccessQueryWrapper);
+// if(linuxAccess == null) {
+// return AjaxResult.error(HttpStatus.LINUX_ACCESS_ERROR,"linux访问控制不存在");
+// }
+// QueryWrapper qadAccessQueryWrapper = new QueryWrapper<>();
+// qadAccessQueryWrapper.eq("company_code",companyCode);
+// qadAccessQueryWrapper.eq("domain",domain);
+// QadAccess qadAccess = qadAccessService.getOne(qadAccessQueryWrapper);
+// if(qadAccess == null) {
+// return AjaxResult.error(HttpStatus.QAD_ACCESS_ERROR,"QAD_ACCESS_ERROR");
+// }
+// //生成traceid
+// String traceid = jsonObject.getString("traceid");
+// jsonObject.remove("traceid");
+// jsonObject.remove("dataid");
+// jsonObject.remove("company_code");
+// jsonObject.remove("domain");
+// String inJson = "{\"" + key + "\":"+ jsonObject+"}";
+// log.info("inJson: {}",inJson);
+// AjaxResult ajaxResult = linuxAccessService.executeCommand(linuxAccess,qadAccess,traceid,inJson,domain);
+// jsonObject = JSONObject.parseObject(ajaxResult.get("msg").toString());
+ jsonObject = JSONObject.parseObject("{\"dssupplierrs\":{\"ttsupplierrsheader\":[{\"schm_header_site\":\"30G1\",\"schm_header_order\":\"BES0003\",\"schm_header_vend\":\"JVRM0003\",\"schm_header_vendname\":\"Lear Besigheim\",\"schm_header_vendaddr\":\"ferdinand-porsche-strabe 274354 besigheim\",\"schm_header_vendphone\":\"\",\"schm_header_vendfax\":\"\",\"schm_header_vendcontact\":\"Lear Besigheim\",\"schm_header_cust\":\"30G1\",\"schm_header_custname\":\"ChangChun JV\",\"schm_header_custaddr\":\"\",\"schm_header_custphone\":\"\",\"schm_header_custfax\":\"\",\"schm_header_custcontact\":\"\",\"schm_header_lastrec\":\"J02709T*4681694\",\"schm_header_title\":\"SUPPLIER SCHEDULE 订单/ MATERIAL RELEASE 供应商发货日程\",\"schm_header_buyer\":\"P2\",\"schm_header_arrive_ch\":\"\",\"schm_header_arrive_us\":\"\",\"schm_header_shipto\":\"30G1\",\"schm_header_dock\":\"\",\"schm_header_rlse_id\":\"20240511-002\",\"schm_header_cr_date\":\"2024-05-11\",\"schm_header_cr_time\":\"17:34:09\",\"schm_header_eff_start\":\"2024-05-11\",\"schm_header_eff_end\":null,\"schm_header_status\":\"Success\"}],\"ttsupplierrsline\":[{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":1,\"schd_line_part\":\"2100223N\",\"schd_line_part_desc\":\"前座安全带锁扣固定螺钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1972000,\"schd_line_cum_qty\":1972000,\"schd_line_req_qty\":11,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-06-24\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":48000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":1,\"schd_line_part\":\"2100223N\",\"schd_line_part_desc\":\"前座安全带锁扣固定螺钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1972000,\"schd_line_cum_qty\":1972000,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-08-19\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":48000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":1,\"schd_line_part\":\"2100223N\",\"schd_line_part_desc\":\"前座安全带锁扣固定螺钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1972000,\"schd_line_cum_qty\":1972000,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-09-30\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":48000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":1,\"schd_line_part\":\"2100223N\",\"schd_line_part_desc\":\"前座安全带锁扣固定螺钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1972000,\"schd_line_cum_qty\":1972000,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-01-06\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":48000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":1,\"schd_line_part\":\"2100223N\",\"schd_line_part_desc\":\"前座安全带锁扣固定螺钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1972000,\"schd_line_cum_qty\":1972000,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-02-24\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":48000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":2,\"schd_line_part\":\"2100237N\",\"schd_line_part_desc\":\"后靠背安全带总成固定螺母\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":947158,\"schd_line_cum_qty\":947158,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-07-15\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":60000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":2,\"schd_line_part\":\"2100237N\",\"schd_line_part_desc\":\"后靠背安全带总成固定螺母\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":947158,\"schd_line_cum_qty\":947158,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-12-23\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":60000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":3,\"schd_line_part\":\"2200153N\",\"schd_line_part_desc\":\"波纹管D3\\\\/18\",\"schd_line_pcr_date\":null,\"schd_line_pcr_qty\":0,\"schd_line_cum_qty\":0,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":null,\"schd_line_fc_qual\":\"\",\"schd_line_qty\":0,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":5,\"schd_line_part\":\"4H0 972 081\",\"schd_line_part_desc\":\"D18波形管带子卡\",\"schd_line_pcr_date\":null,\"schd_line_pcr_qty\":0,\"schd_line_cum_qty\":0,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":null,\"schd_line_fc_qual\":\"\",\"schd_line_qty\":0,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":11,\"schd_line_part\":\"8T0 972 847 B\",\"schd_line_part_desc\":\"线束管夹D24\",\"schd_line_pcr_date\":null,\"schd_line_pcr_qty\":0,\"schd_line_cum_qty\":0,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":null,\"schd_line_fc_qual\":\"\",\"schd_line_qty\":0,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":14,\"schd_line_part\":\"N 900 880 01\",\"schd_line_part_desc\":\"螺母 M16\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":881140,\"schd_line_cum_qty\":881140,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-05-11\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":60000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-001\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":35,\"schd_line_part\":\"8W0 881 775 F\",\"schd_line_part_desc\":\"通风前靠背发泡左\",\"schd_line_pcr_date\":null,\"schd_line_pcr_qty\":0,\"schd_line_cum_qty\":0,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":null,\"schd_line_fc_qual\":\"\",\"schd_line_qty\":0,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":36,\"schd_line_part\":\"8W0 881 776 F\",\"schd_line_part_desc\":\"通风前靠背发泡右\",\"schd_line_pcr_date\":null,\"schd_line_pcr_qty\":0,\"schd_line_cum_qty\":0,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":null,\"schd_line_fc_qual\":\"\",\"schd_line_qty\":0,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":40,\"schd_line_part\":\"8W0 881 361 D\",\"schd_line_part_desc\":\"通风座椅前座发泡\",\"schd_line_pcr_date\":null,\"schd_line_pcr_qty\":0,\"schd_line_cum_qty\":0,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":null,\"schd_line_fc_qual\":\"\",\"schd_line_qty\":0,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":45,\"schd_line_part\":\"8W0 881 969 T QAU\",\"schd_line_part_desc\":\"前靠背护板带通风\",\"schd_line_pcr_date\":null,\"schd_line_pcr_qty\":0,\"schd_line_cum_qty\":0,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":null,\"schd_line_fc_qual\":\"\",\"schd_line_qty\":0,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-05-13\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-05-20\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-05-27\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-06-03\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-06-10\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-06-17\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-06-24\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-07-01\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-07-15\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":12096,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-07-22\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-07-29\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-08-05\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-08-12\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-08-19\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-08-26\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-09-02\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-09-09\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-09-16\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":5376,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-09-23\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-09-30\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":15456,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-11-18\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":4032,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-11-25\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":5376,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-12-02\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-12-09\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":5376,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-12-16\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-12-23\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-12-30\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":5376,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-01-06\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":5376,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-01-13\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":5376,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-01-20\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":5376,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-01-27\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-02-03\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":4032,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-02-10\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":5376,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-02-17\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-02-24\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-03-03\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-03-17\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-03-24\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-03-31\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-04-07\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-04-14\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":6720,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":54,\"schd_line_part\":\"4M0 881 590 4PK\",\"schd_line_part_desc\":\"靠背上端盖板\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1066478,\"schd_line_cum_qty\":1066478,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-04-21\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":2688,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":59,\"schd_line_part\":\"8W0 881 367\",\"schd_line_part_desc\":\"风扇保护帽\",\"schd_line_pcr_date\":null,\"schd_line_pcr_qty\":0,\"schd_line_cum_qty\":0,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":null,\"schd_line_fc_qual\":\"\",\"schd_line_qty\":0,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":60,\"schd_line_part\":\"4H0 941 117\",\"schd_line_part_desc\":\"胶皮钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":193700,\"schd_line_cum_qty\":193700,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-05-20\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":2000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":60,\"schd_line_part\":\"4H0 941 117\",\"schd_line_part_desc\":\"胶皮钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":193700,\"schd_line_cum_qty\":193700,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-06-03\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":3000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":60,\"schd_line_part\":\"4H0 941 117\",\"schd_line_part_desc\":\"胶皮钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":193700,\"schd_line_cum_qty\":193700,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-07-15\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":3000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":60,\"schd_line_part\":\"4H0 941 117\",\"schd_line_part_desc\":\"胶皮钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":193700,\"schd_line_cum_qty\":193700,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-08-05\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":2000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":60,\"schd_line_part\":\"4H0 941 117\",\"schd_line_part_desc\":\"胶皮钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":193700,\"schd_line_cum_qty\":193700,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-08-26\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":2000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":60,\"schd_line_part\":\"4H0 941 117\",\"schd_line_part_desc\":\"胶皮钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":193700,\"schd_line_cum_qty\":193700,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-09-16\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":3000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":60,\"schd_line_part\":\"4H0 941 117\",\"schd_line_part_desc\":\"胶皮钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":193700,\"schd_line_cum_qty\":193700,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-11-18\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":3000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":60,\"schd_line_part\":\"4H0 941 117\",\"schd_line_part_desc\":\"胶皮钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":193700,\"schd_line_cum_qty\":193700,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-12-30\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":3000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":60,\"schd_line_part\":\"4H0 941 117\",\"schd_line_part_desc\":\"胶皮钉\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":193700,\"schd_line_cum_qty\":193700,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2025-02-24\",\"schd_line_fc_qual\":\"P\",\"schd_line_qty\":3000,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-002\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":62,\"schd_line_part\":\"8W0 881 627\",\"schd_line_part_desc\":\"靠背支撑塑料\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1067400,\"schd_line_cum_qty\":1067400,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-05-13\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-001\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":62,\"schd_line_part\":\"8W0 881 627\",\"schd_line_part_desc\":\"靠背支撑塑料\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1067400,\"schd_line_cum_qty\":1067400,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-05-20\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-001\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":62,\"schd_line_part\":\"8W0 881 627\",\"schd_line_part_desc\":\"靠背支撑塑料\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1067400,\"schd_line_cum_qty\":1067400,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-05-27\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-001\"},{\"schd_line_site\":\"30G1\",\"schd_line_order\":\"BES0003\",\"schd_line_line\":62,\"schd_line_part\":\"8W0 881 627\",\"schd_line_part_desc\":\"靠背支撑塑料\",\"schd_line_pcr_date\":\"2024-05-10\",\"schd_line_pcr_qty\":1067400,\"schd_line_cum_qty\":1067400,\"schd_line_req_qty\":0,\"schd_line_vpart\":\"\",\"schd_line_date\":\"2024-06-03\",\"schd_line_fc_qual\":\"F\",\"schd_line_qty\":8064,\"schd_line_interval\":\"\",\"schd_line_time\":\"\",\"schd_line_reference\":\"\",\"schd_line_um\":\"EA\",\"schd_line_ord_mult\":1,\"schd_line_pkg_code\":\"\",\"schd_line_rlse_id\":\"20240511-001\"}]}}");
+ jsonObject = JSONObject.parseObject(jsonObject.getString("dssupplierrs"));
+ JSONArray headerJsonArray = JSONArray.parse(jsonObject.getString("ttsupplierrsheader"));
+ JSONArray lineJsonArray = JSONArray.parse(jsonObject.getString("ttsupplierrsline"));
+ List fileNames = new ArrayList<>();
+ for(int i = 0; i < headerJsonArray.size(); i++) {
+ JSONObject jsonObjectHeader = headerJsonArray.getJSONObject(i);
+ String schmHeaderSite = jsonObjectHeader.getString("schm_header_site");
+ String schmHeaderOrder = jsonObjectHeader.getString("schm_header_order");
+ TreeMap mainMap = new TreeMap<>();
+ TreeMap firmMap = new TreeMap<>();
+ TreeMap forecastMap = new TreeMap<>();
+ JSONArray orderArray = new JSONArray();
+ JSONArray firmArray = new JSONArray();
+ JSONArray forecastArray = new JSONArray();
+ for(int j = 0; j < lineJsonArray.size(); j++) {
+ JSONObject jsonObjectLine = lineJsonArray.getJSONObject(j);
+ String schdLineOrder = jsonObjectLine.getString("schd_line_order");
+ int schdLineLine = jsonObjectLine.getIntValue("schd_line_line");
+ if(schmHeaderOrder.equals(schdLineOrder)) {
+ JSONObject main = mainMap.get(schdLineLine);
+ if(main == null) {
+ main = new JSONObject();
+ main.put("schd_line_line", schdLineLine);
+ main.put("schd_line_part", jsonObjectLine.getString("schd_line_part"));
+ main.put("schd_line_um", jsonObjectLine.getString("schd_line_um"));
+ main.put("schd_line_part_desc", jsonObjectLine.getString("schd_line_part_desc"));
+ }
+ main.put("schd_line_req_qty", main.getIntValue("schd_line_req_qty") + jsonObjectLine.getIntValue("schd_line_req_qty"));
+ main.put("schd_line_cum_qty", main.getIntValue("schd_line_cum_qty") + jsonObjectLine.getIntValue("schd_line_cum_qty"));
+ main.put("schd_line_pcr_qty", main.getIntValue("schd_line_pcr_qty") + jsonObjectLine.getIntValue("schd_line_pcr_qty"));
+ mainMap.put(schdLineLine, main);
+ String schdLineDate = jsonObjectLine.getString("schd_line_date");
+ if(schdLineDate != null) {
+ String schdLineFcQual = jsonObjectLine.getString("schd_line_fc_qual");
+ if("F".equals(schdLineFcQual)) {
+ JSONObject firm = firmMap.get(schdLineDate);
+ if (firm == null) {
+ firm = new JSONObject();
+ firm.put("schd_line_date", schdLineDate);
+ }
+ JSONObject order = new JSONObject();
+ order.put("schd_line_qty", jsonObjectLine.getString("schd_line_qty"));
+ firm.put(String.valueOf(schdLineLine), order);
+ firmMap.put(schdLineDate, firm);
+ } else {
+ JSONObject forecast = forecastMap.get(schdLineDate);
+ if (forecast == null) {
+ forecast = new JSONObject();
+ forecast.put("schd_line_date", schdLineDate);
+ }
+ JSONObject order = new JSONObject();
+ order.put("schd_line_qty", jsonObjectLine.getString("schd_line_qty"));
+ forecast.put(String.valueOf(schdLineLine), order);
+ forecastMap.put(schdLineDate, forecast);
+ }
+ }
+ }
+ }
+ for(Integer mainKey : mainMap.keySet()) {
+ orderArray.add(mainMap.get(mainKey));
+ }
+ for(String firmKey : firmMap.keySet()) {
+ firmArray.add(firmMap.get(firmKey));
+ }
+ for(String forecastKey : forecastMap.keySet()) {
+ forecastArray.add(forecastMap.get(forecastKey));
+ }
+ if("changchun".equals(type)) {//长春模板
+ fileNames.add(fillChangchun(orderNo, jsonObjectHeader, orderArray, firmArray, forecastArray));
+ } else if("foshan".equals(type)) {
+ fileNames.add(fillFoshanQingdao(orderNo, jsonObjectHeader, orderArray, firmArray, forecastArray));
+ } else if("guowai1".equals(type)) {
+ fileNames.add(fillGuowai1(orderNo, jsonObjectHeader, orderArray, firmArray, forecastArray));
+ } else if("guowai2".equals(type)) {
+ fileNames.add(fillGuowai2(orderNo, jsonObjectHeader, orderArray, firmArray, forecastArray));
+ }
+ }
+ return AjaxResult.success(fileNames);
+ }
+
+ /**
+ * 横财changchun格式excel
+ * @param orderNo 订单号
+ * @param jsonObjectHeader 头部信息
+ * @param orderArray 订单数据
+ * @param firmArray firm数据
+ * @param forecastArray forecast数据
+ * @return 生成文件的路径
+ * @throws IOException io异常
+ */
+ private String fillChangchun(String orderNo, JSONObject jsonObjectHeader, JSONArray orderArray, JSONArray firmArray, JSONArray forecastArray) throws IOException {
+ ClassPathResource templateFile = new ClassPathResource("changchun.xls");
+ String filePath = WinConfig.getUploadPath();
+ String fileName = orderNo + ".xls";
+ File file = new File(filePath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ file = new File(filePath + "/" + fileName);
+ if (file.exists()) {
+ file.delete();
+ }
+ final ExcelWriter excelWriter = EasyExcelFactory.write(filePath + "/" + fileName).excelType(ExcelTypeEnum.XLS).withTemplate(templateFile.getInputStream()).build();
+ try {
+ final WriteSheet writeSheet = EasyExcelFactory.writerSheet().build();
+ //横向添加数据
+ //默认纵向添加数据
+ FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
+ //基础数据
+ excelWriter.fill(jsonObjectHeader, writeSheet);
+ //order数据
+ excelWriter.fill(new FillWrapper("order", orderArray), fillConfig, writeSheet);
+ //final FillConfig fillConfig2 = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).forceNewRow(Boolean.TRUE).build();
+ //firm数据
+ //excelWriter.fill(new FillWrapper("firm", firmArray), fillConfig2, writeSheet);
+ //forecast数据
+ //excelWriter.fill(new FillWrapper("forecast", forecastArray), fillConfig2, writeSheet);
+ } finally {
+ if (excelWriter != null) {
+ excelWriter.finish();
+ }
+ }
+ FileInputStream inputStream = new FileInputStream(filePath + "/" + fileName);
+ Workbook workbook = new HSSFWorkbook(inputStream);
+ Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
+ CellStyle cellStyle1 = getCellStyle(sheet, 13, 4);//Firm订单标题样式
+ CellStyle cellStyle2 = getCellStyle(sheet, 13, 5);//forecast 预测
+ CellStyle cellStyle3 = getCellStyle(sheet, 14, 4);//Firm数据样式
+ CellStyle cellStyle4 = getCellStyle(sheet, 14, 5);//Forecast左侧样式
+ CellStyle cellStyle5 = getCellStyle(sheet, 14, 6);//Forecast数据样式
+ Row row13 = sheet.getRow(13);
+ Row row14 = sheet.getRow(14);
+ for(int i = 0; i < firmArray.size(); i++) {
+ int cellIndex = 4 + i;
+ JSONObject firm = firmArray.getJSONObject(i);
+ Cell cell13 = row13.getCell(cellIndex);
+ if (cell13 == null) {
+ cell13 = row13.createCell(cellIndex);
+ }
+ cell13.setCellValue("Firm订单");
+ cell13.setCellStyle(cellStyle1);
+ Cell cell = row14.getCell(cellIndex);
+ if (cell == null) {
+ cell = row14.createCell(cellIndex);
+ }
+ cell.setCellValue(firm.getString("schd_line_date"));
+ cell.setCellStyle(cellStyle3);
+ //设置每个订单数据
+ for(int count = 0; count < orderArray.size(); count++) {
+ String cellValue = "";
+ JSONObject object = orderArray.getJSONObject(count);
+ JSONObject order = firm.getJSONObject(object.getString("schd_line_line"));
+ Row nextRow = sheet.getRow(15 + count);
+ Cell nextCell = nextRow.getCell(cellIndex);
+ if (nextCell == null) {
+ nextCell = nextRow.createCell(cellIndex);
+ }
+ if(order != null) {
+ cellValue = order.getString("schd_line_qty");
+ }
+ if(cellValue.equals("0")) {
+ cellValue = "";
+ }
+ nextCell.setCellValue(cellValue);
+ nextCell.setCellStyle(cellStyle3);
+ }
+ }
+ for(int count = 0; count < orderArray.size() + 2; count++) {
+ int cellIndex = 4 + firmArray.size();
+ Row nextRow = sheet.getRow(13 + count);
+ Cell nextCell = nextRow.getCell(cellIndex);
+ if (nextCell == null) {
+ nextCell = nextRow.createCell(cellIndex);
+ }
+ nextCell.setCellValue("");
+ nextCell.setCellStyle(cellStyle4);
+ if(count == 0) {
+ nextCell.setCellValue("forecast 预测");
+ nextCell.setCellStyle(cellStyle2);
+ } else if(count == 1) {
+ nextCell.setCellValue("Arrive " + jsonObjectHeader.getString("schm_header_arrive_us") + " date\n到达李尔" + jsonObjectHeader.getString("schm_header_arrive_ch") + "时间");
+ nextCell.setCellStyle(cellStyle4);
+ }
+ }
+ for(int i = 0; i < forecastArray.size(); i++) {
+ int cellIndex = 5 + firmArray.size() + i;
+ JSONObject forecast = forecastArray.getJSONObject(i);
+ Cell cell = row14.getCell(cellIndex);
+ if (cell == null) {
+ cell = row14.createCell(cellIndex);
+ }
+ cell.setCellValue(forecast.getString("schd_line_date"));
+ cell.setCellStyle(cellStyle5);
+ Cell cell2 = row13.getCell(cellIndex);
+ if (cell2 == null) {
+ cell2 = row13.createCell(cellIndex);
+ }
+ cell2.setCellValue("");
+ cell2.setCellStyle(cellStyle2);
+ //设置每个订单数据
+ for(int count = 0; count < orderArray.size(); count++) {
+ String cellValue = "";
+ JSONObject object = orderArray.getJSONObject(count);
+ JSONObject order = forecast.getJSONObject(object.getString("schd_line_line"));
+ Row nextRow = sheet.getRow(15 + count);
+ Cell nextCell = nextRow.getCell(cellIndex);
+ if (nextCell == null) {
+ nextCell = nextRow.createCell(cellIndex);
+ }
+ if(order != null) {
+ cellValue = order.getString("schd_line_qty");
+ }
+ if(cellValue.equals("0")) {
+ cellValue = "";
+ }
+ nextCell.setCellValue(cellValue);
+ nextCell.setCellStyle(cellStyle5);
+ }
+ }
+ // 合并单元格
+ CellRangeAddress cellRangeAddress2 = new CellRangeAddress(13, 13, firmArray.size() + 4, firmArray.size() + forecastArray.size() + 4);
+ sheet.addMergedRegion(cellRangeAddress2);
+ inputStream.close();
+ FileOutputStream outputStream = new FileOutputStream(filePath + "/" + fileName);
+ workbook.write(outputStream);
+ workbook.close();
+ outputStream.close();
+ return fileName;
+ }
+
+ /**
+ * 横财佛山青岛格式excel
+ * @param orderNo 订单号
+ * @param jsonObjectHeader 头部信息
+ * @param orderArray 订单数据
+ * @param firmArray firm数据
+ * @param forecastArray forecast数据
+ * @return 生成文件的路径
+ * @throws IOException io异常
+ */
+ private String fillFoshanQingdao(String orderNo, JSONObject jsonObjectHeader, JSONArray orderArray, JSONArray firmArray, JSONArray forecastArray) throws IOException {
+ ClassPathResource templateFile = new ClassPathResource("foshan_qingdao.xls");
+ String filePath = WinConfig.getUploadPath();
+ String fileName = orderNo + ".xls";
+ File file = new File(filePath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ file = new File(filePath + "/" + fileName);
+ if (file.exists()) {
+ file.delete();
+ }
+ final ExcelWriter excelWriter = EasyExcelFactory.write(filePath + "/" + fileName).excelType(ExcelTypeEnum.XLS).withTemplate(templateFile.getInputStream()).build();
+ try {
+ final WriteSheet writeSheet = EasyExcelFactory.writerSheet().build();
+ //横向添加数据
+ //默认纵向添加数据
+ FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
+ //基础数据
+ excelWriter.fill(jsonObjectHeader, writeSheet);
+ //order数据
+ excelWriter.fill(new FillWrapper("order", orderArray), fillConfig, writeSheet);
+ } finally {
+ if (excelWriter != null) {
+ excelWriter.finish();
+ }
+ }
+ FileInputStream inputStream = new FileInputStream(filePath + "/" + fileName);
+ Workbook workbook = new HSSFWorkbook(inputStream);
+ Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
+ CellStyle cellStyle1 = getCellStyle(sheet, 13, 8);//Firm订单标题样式
+ CellStyle cellStyle2 = getCellStyle(sheet, 13, 9);//Pick Up Date 提货时间
+ CellStyle cellStyle3 = getCellStyle(sheet, 13, 10);//forecast 预测
+ CellStyle cellStyle4 = getCellStyle(sheet, 14, 8);//Firm数据样式
+ CellStyle cellStyle5 = getCellStyle(sheet, 14, 9);//Forecast左侧样式
+ CellStyle cellStyle6 = getCellStyle(sheet, 14, 10);//Forecast数据样式
+ Row row13 = sheet.getRow(13);
+ Row row14 = sheet.getRow(14);
+ Row row15 = sheet.getRow(15);
+ for(int i = 0; i < firmArray.size(); i++) {
+ int cellIndex = 8 + i;
+ JSONObject firm = firmArray.getJSONObject(i);
+ Cell cell13 = row13.getCell(cellIndex);
+ if (cell13 == null) {
+ cell13 = row13.createCell(cellIndex);
+ }
+ cell13.setCellValue("Firm订单");
+ cell13.setCellStyle(cellStyle1);
+ Cell cell14 = row14.getCell(cellIndex);
+ if (cell14 == null) {
+ cell14 = row14.createCell(cellIndex);
+ }
+ cell14.setCellValue("");
+ cell14.setCellStyle(cellStyle4);
+ Cell cell = row15.getCell(cellIndex);
+ if (cell == null) {
+ cell = row15.createCell(cellIndex);
+ }
+ cell.setCellValue(firm.getString("schd_line_date"));
+ cell.setCellStyle(cellStyle4);
+ //设置每个firm订单数据
+ for(int count = 0; count < orderArray.size(); count++) {
+ String cellValue = "";
+ JSONObject object = orderArray.getJSONObject(count);
+ JSONObject order = firm.getJSONObject(object.getString("schd_line_line"));
+ Row nextRow = sheet.getRow(16 + count);
+ Cell nextCell = nextRow.getCell(cellIndex);
+ if (nextCell == null) {
+ nextCell = nextRow.createCell(cellIndex);
+ }
+ if(order != null) {
+ cellValue = order.getString("schd_line_qty");
+ }
+ if(cellValue.equals("0")) {
+ cellValue = "";
+ }
+ nextCell.setCellValue(cellValue);
+ nextCell.setCellStyle(cellStyle4);
+ }
+ }
+ //设置firm前的Pick Up Date 提货日期列
+ for(int count = 0; count < orderArray.size(); count++) {
+ Row beforeRow = sheet.getRow(16 + count);
+ Cell beforeCell = beforeRow.getCell(7);
+ if (beforeCell == null) {
+ beforeCell = beforeRow.createCell(7);
+ }
+ beforeCell.setCellValue("");
+ beforeCell.setCellStyle(cellStyle1);
+ }
+ //设置forecast前的Pick Up Date 提货日期列
+ for(int count = 0; count < orderArray.size() + 3; count++) {
+ int cellIndex = 8 + firmArray.size();
+ Row nextRow = sheet.getRow(13 + count);
+ Cell nextCell = nextRow.getCell(cellIndex);
+ if (nextCell == null) {
+ nextCell = nextRow.createCell(cellIndex);
+ }
+ nextCell.setCellValue("");
+ nextCell.setCellStyle(cellStyle5);
+ if(count == 0) {
+ nextCell.setCellValue("Pick Up Date 提货日期");
+ nextCell.setCellStyle(cellStyle2);
+ } else if(count == 2) {
+ nextCell.setCellValue("ETA " + jsonObjectHeader.getString("schm_header_arrive_us") + " \n到达" + jsonObjectHeader.getString("schm_header_arrive_ch") + " 时间");
+ } else {
+ nextCell.setCellValue("");
+ }
+ }
+ //合并单元格
+ CellRangeAddress cellRangeAddress2 = new CellRangeAddress(13, 14, 8 + firmArray.size(), 8 + firmArray.size());
+ sheet.addMergedRegion(cellRangeAddress2);
+ for(int i = 0; i < forecastArray.size(); i++) {
+ int cellIndex = 9 + firmArray.size() + i;
+ //设置forecast日期
+ JSONObject forecast = forecastArray.getJSONObject(i);
+ Cell cell = row15.getCell(cellIndex);
+ if (cell == null) {
+ cell = row15.createCell(cellIndex);
+ }
+ cell.setCellValue(forecast.getString("schd_line_date"));
+ cell.setCellStyle(cellStyle6);
+ Cell cell2 = row13.getCell(cellIndex);
+ if (cell2 == null) {
+ cell2 = row13.createCell(cellIndex);
+ }
+ if(i == 0) {
+ cell2.setCellValue("forecast 预测");
+ } else {
+ cell2.setCellValue("");
+ }
+ cell2.setCellStyle(cellStyle3);
+ Cell cell3 = row14.getCell(cellIndex);
+ if (cell3 == null) {
+ cell3 = row14.createCell(cellIndex);
+ }
+ cell3.setCellValue("");
+ cell3.setCellStyle(cellStyle6);
+ //设置forecast每个订单数据
+ for(int count = 0; count < orderArray.size(); count++) {
+ String cellValue = "";
+ JSONObject object = orderArray.getJSONObject(count);
+ JSONObject order = forecast.getJSONObject(object.getString("schd_line_line"));
+ Row nextRow = sheet.getRow(16 + count);
+ if(order != null) {
+ cellValue = order.getString("schd_line_qty");
+ }
+ if(cellValue.equals("0")) {
+ cellValue = "";
+ }
+ Cell nextCell = nextRow.getCell(cellIndex);
+ if (nextCell == null) {
+ nextCell = nextRow.createCell(cellIndex);
+ }
+ nextCell.setCellValue(cellValue);
+ nextCell.setCellStyle(cellStyle6);
+ }
+ }
+ // 合并单元格
+ CellRangeAddress cellRangeAddress3 = new CellRangeAddress(13, 13, firmArray.size() + 9, firmArray.size() + forecastArray.size() + 8);
+ sheet.addMergedRegion(cellRangeAddress3);
+ inputStream.close();
+ FileOutputStream outputStream = new FileOutputStream(filePath + "/" + fileName);
+ workbook.write(outputStream);
+ workbook.close();
+ outputStream.close();
+ return fileName;
+ }
+
+ /**
+ * 横财国外格式excel
+ * @param orderNo 订单号
+ * @param jsonObjectHeader 头部信息
+ * @param orderArray 订单数据
+ * @param firmArray firm数据
+ * @param forecastArray forecast数据
+ * @return 生成文件的路径
+ * @throws IOException io异常
+ */
+ private String fillGuowai1(String orderNo, JSONObject jsonObjectHeader, JSONArray orderArray, JSONArray firmArray, JSONArray forecastArray) throws IOException {
+ ClassPathResource templateFile = new ClassPathResource("guowai1.xls");
+ String filePath = WinConfig.getUploadPath();
+ String fileName = orderNo + ".xls";
+ File file = new File(filePath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ file = new File(filePath + "/" + fileName);
+ if (file.exists()) {
+ file.delete();
+ }
+ final ExcelWriter excelWriter = EasyExcelFactory.write(filePath + "/" + fileName).excelType(ExcelTypeEnum.XLS).withTemplate(templateFile.getInputStream()).build();
+ try {
+ final WriteSheet writeSheet = EasyExcelFactory.writerSheet().build();
+ //默认纵向添加数据
+ FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
+ //基础数据
+ excelWriter.fill(jsonObjectHeader, writeSheet);
+ //order数据
+ excelWriter.fill(new FillWrapper("order", orderArray), fillConfig, writeSheet);
+ } finally {
+ if (excelWriter != null) {
+ excelWriter.finish();
+ }
+ }
+ FileInputStream inputStream = new FileInputStream(filePath + "/" + fileName);
+ Workbook workbook = new HSSFWorkbook(inputStream);
+ Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
+ CellStyle cellStyle1 = getCellStyle(sheet, 14, 4);//日期格式
+ CellStyle cellStyle2 = getCellStyle(sheet, 15, 4);//firm订单格式
+ CellStyle cellStyle3 = getCellStyle(sheet, 16, 4);//数据格式
+ Row row13 = sheet.getRow(13);
+ Row row14 = sheet.getRow(14);
+ Row row15 = sheet.getRow(15);
+ for(int i = 0; i < firmArray.size(); i++) {
+ int cellIndex = 4 + i;
+ JSONObject firm = firmArray.getJSONObject(i);
+ Cell pickupCell = row13.getCell(cellIndex);
+ if (pickupCell == null) {
+ pickupCell = row13.createCell(cellIndex);
+ }
+ pickupCell.setCellValue(firm.getString("schd_line_date"));
+ pickupCell.setCellStyle(cellStyle1);
+ Cell arriveCell = row14.getCell(cellIndex);
+ if (arriveCell == null) {
+ arriveCell = row14.createCell(cellIndex);
+ }
+ arriveCell.setCellValue(firm.getString("schd_line_date"));
+ arriveCell.setCellStyle(cellStyle1);
+ Cell firmCell = row15.getCell(cellIndex);
+ if (firmCell == null) {
+ firmCell = row15.createCell(cellIndex);
+ }
+ firmCell.setCellValue("Firm订单");
+ firmCell.setCellStyle(cellStyle2);
+ //设置每个firm订单数据
+ for(int count = 0; count < orderArray.size(); count++) {
+ String cellValue = "";
+ JSONObject object = orderArray.getJSONObject(count);
+ JSONObject order = firm.getJSONObject(object.getString("schd_line_line"));
+ Row nextRow = sheet.getRow(16 + count);
+ Cell nextCell = nextRow.getCell(cellIndex);
+ if (nextCell == null) {
+ nextCell = nextRow.createCell(cellIndex);
+ }
+ if(order != null) {
+ cellValue = order.getString("schd_line_qty");
+ }
+ if(cellValue.equals("0")) {
+ cellValue = "";
+ }
+ nextCell.setCellValue(cellValue);
+ nextCell.setCellStyle(cellStyle3);
+ }
+ }
+ //设置分隔列
+ for(int count = 0; count < orderArray.size() + 3; count++) {
+ int cellIndex = 4 + firmArray.size();
+ Row sepratorRow = sheet.getRow(13 + count);
+ Cell sepratorCell = sepratorRow.getCell(cellIndex);
+ if (sepratorCell == null) {
+ sepratorCell = sepratorRow.createCell(cellIndex);
+ }
+ sepratorCell.setCellValue("");
+ sepratorCell.setCellStyle(cellStyle2);
+ }
+ //合并单元格
+ CellRangeAddress cellRangeAddress2 = new CellRangeAddress(13, 14, 4 + firmArray.size(), 4 + firmArray.size());
+ sheet.addMergedRegion(cellRangeAddress2);
+ //设置forecast数据
+ for(int i = 0; i < forecastArray.size(); i++) {
+ int cellIndex = 5 + firmArray.size() + i;
+ //设置forecast日期
+ JSONObject forecast = forecastArray.getJSONObject(i);
+ Cell pickupCell = row13.getCell(cellIndex);
+ if (pickupCell == null) {
+ pickupCell = row13.createCell(cellIndex);
+ }
+ pickupCell.setCellValue(forecast.getString("schd_line_date"));
+ pickupCell.setCellStyle(cellStyle1);
+ Cell arriveCell = row14.getCell(cellIndex);
+ if (arriveCell == null) {
+ arriveCell = row14.createCell(cellIndex);
+ }
+ arriveCell.setCellValue(forecast.getString("schd_line_date"));
+ arriveCell.setCellStyle(cellStyle1);
+ Cell forecstCell = row15.getCell(cellIndex);
+ if (forecstCell == null) {
+ forecstCell = row15.createCell(cellIndex);
+ }
+ forecstCell.setCellValue("forecast");
+ forecstCell.setCellStyle(cellStyle3);
+ //设置forecast每个订单数据
+ for(int count = 0; count < orderArray.size(); count++) {
+ String cellValue = "";
+ JSONObject object = orderArray.getJSONObject(count);
+ JSONObject order = forecast.getJSONObject(object.getString("schd_line_line"));
+ Row nextRow = sheet.getRow(16 + count);
+ if(order != null) {
+ cellValue = order.getString("schd_line_qty");
+ }
+ if(cellValue.equals("0")) {
+ cellValue = "";
+ }
+ Cell nextCell = nextRow.getCell(cellIndex);
+ if (nextCell == null) {
+ nextCell = nextRow.createCell(cellIndex);
+ }
+ nextCell.setCellValue(cellValue);
+ nextCell.setCellStyle(cellStyle3);
+ }
+ }
+ inputStream.close();
+ FileOutputStream outputStream = new FileOutputStream(filePath + "/" + fileName);
+ workbook.write(outputStream);
+ workbook.close();
+ outputStream.close();
+ return fileName;
+ }
+
+ /**
+ * 横财国外格式excel
+ * @param orderNo 订单号
+ * @param jsonObjectHeader 头部信息
+ * @param orderArray 订单数据
+ * @param firmArray firm数据
+ * @param forecastArray forecast数据
+ * @return 生成文件的路径
+ * @throws IOException io异常
+ */
+ private String fillGuowai2(String orderNo, JSONObject jsonObjectHeader, JSONArray orderArray, JSONArray firmArray, JSONArray forecastArray) throws IOException {
+ ClassPathResource templateFile = new ClassPathResource("guowai2.xlsx");
+ String filePath = WinConfig.getUploadPath();
+ String fileName = orderNo + ".xlsx";
+ File file = new File(filePath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ file = new File(filePath + "/" + fileName);
+ if (file.exists()) {
+ file.delete();
+ }
+ final ExcelWriter excelWriter = EasyExcelFactory.write(filePath + "/" + fileName).excelType(ExcelTypeEnum.XLSX).withTemplate(templateFile.getInputStream()).build();
+ try {
+ final WriteSheet writeSheet = EasyExcelFactory.writerSheet().build();
+ //默认纵向添加数据
+ FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
+ //基础数据
+ excelWriter.fill(jsonObjectHeader, writeSheet);
+ //order数据
+ excelWriter.fill(new FillWrapper("order", orderArray), fillConfig, writeSheet);
+ } finally {
+ if (excelWriter != null) {
+ excelWriter.finish();
+ }
+ }
+ FileInputStream inputStream = new FileInputStream(filePath + "/" + fileName);
+ Workbook workbook = new XSSFWorkbook(inputStream);
+ Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
+ CellStyle cellStyle1 = getCellStyle(sheet, 14, 4);//日期格式
+ CellStyle cellStyle2 = getCellStyle(sheet, 15, 4);//firm订单格式
+ CellStyle cellStyle3 = getCellStyle(sheet, 16, 4);//数据格式
+ Row row13 = sheet.getRow(13);
+ Row row14 = sheet.getRow(14);
+ Row row15 = sheet.getRow(15);
+ for(int i = 0; i < firmArray.size(); i++) {
+ int cellIndex = 4 + i;
+ JSONObject firm = firmArray.getJSONObject(i);
+ Cell pickupCell = row13.getCell(cellIndex);
+ if (pickupCell == null) {
+ pickupCell = row13.createCell(cellIndex);
+ }
+ pickupCell.setCellValue(firm.getString("schd_line_date"));
+ pickupCell.setCellStyle(cellStyle1);
+ Cell arriveCell = row14.getCell(cellIndex);
+ if (arriveCell == null) {
+ arriveCell = row14.createCell(cellIndex);
+ }
+ arriveCell.setCellValue(firm.getString("schd_line_date"));
+ arriveCell.setCellStyle(cellStyle1);
+ Cell firmCell = row15.getCell(cellIndex);
+ if (firmCell == null) {
+ firmCell = row15.createCell(cellIndex);
+ }
+ firmCell.setCellValue("Firm订单");
+ firmCell.setCellStyle(cellStyle2);
+ //设置每个firm订单数据
+ for(int count = 0; count < orderArray.size(); count++) {
+ String cellValue = "";
+ JSONObject object = orderArray.getJSONObject(count);
+ JSONObject order = firm.getJSONObject(object.getString("schd_line_line"));
+ Row nextRow = sheet.getRow(16 + count);
+ Cell nextCell = nextRow.getCell(cellIndex);
+ if (nextCell == null) {
+ nextCell = nextRow.createCell(cellIndex);
+ }
+ if(order != null) {
+ cellValue = order.getString("schd_line_qty");
+ }
+ if(cellValue.equals("0")) {
+ cellValue = "";
+ }
+ nextCell.setCellValue(cellValue);
+ nextCell.setCellStyle(cellStyle3);
+ }
+ }
+ //设置分隔列
+ for(int count = 0; count < orderArray.size() + 3; count++) {
+ int cellIndex = 4 + firmArray.size();
+ Row sepratorRow = sheet.getRow(13 + count);
+ Cell sepratorCell = sepratorRow.getCell(cellIndex);
+ if (sepratorCell == null) {
+ sepratorCell = sepratorRow.createCell(cellIndex);
+ }
+ sepratorCell.setCellValue("");
+ sepratorCell.setCellStyle(cellStyle2);
+ }
+ //合并单元格
+ CellRangeAddress cellRangeAddress2 = new CellRangeAddress(13, 14, 4 + firmArray.size(), 4 + firmArray.size());
+ sheet.addMergedRegion(cellRangeAddress2);
+ //设置forecast数据
+ for(int i = 0; i < forecastArray.size(); i++) {
+ int cellIndex = 5 + firmArray.size() + i;
+ //设置forecast日期
+ JSONObject forecast = forecastArray.getJSONObject(i);
+ Cell pickupCell = row13.getCell(cellIndex);
+ if (pickupCell == null) {
+ pickupCell = row13.createCell(cellIndex);
+ }
+ pickupCell.setCellValue(forecast.getString("schd_line_date"));
+ pickupCell.setCellStyle(cellStyle1);
+ Cell arriveCell = row14.getCell(cellIndex);
+ if (arriveCell == null) {
+ arriveCell = row14.createCell(cellIndex);
+ }
+ arriveCell.setCellValue(forecast.getString("schd_line_date"));
+ arriveCell.setCellStyle(cellStyle1);
+ Cell forecstCell = row15.getCell(cellIndex);
+ if (forecstCell == null) {
+ forecstCell = row15.createCell(cellIndex);
+ }
+ forecstCell.setCellValue("forecast");
+ forecstCell.setCellStyle(cellStyle3);
+ //设置forecast每个订单数据
+ for(int count = 0; count < orderArray.size(); count++) {
+ String cellValue = "";
+ JSONObject object = orderArray.getJSONObject(count);
+ JSONObject order = forecast.getJSONObject(object.getString("schd_line_line"));
+ Row nextRow = sheet.getRow(16 + count);
+ if(order != null) {
+ cellValue = order.getString("schd_line_qty");
+ }
+ if(cellValue.equals("0")) {
+ cellValue = "";
+ }
+ Cell nextCell = nextRow.getCell(cellIndex);
+ if (nextCell == null) {
+ nextCell = nextRow.createCell(cellIndex);
+ }
+ nextCell.setCellValue(cellValue);
+ nextCell.setCellStyle(cellStyle3);
+ }
+ }
+ inputStream.close();
+ FileOutputStream outputStream = new FileOutputStream(filePath + "/" + fileName);
+ workbook.write(outputStream);
+ workbook.close();
+ outputStream.close();
+ return fileName;
+ }
+
+ /**
+ * 获取单元格样式
+ * @param sheet sheet
+ * @param rowIndex 行号
+ * @param cellIndex 列号
+ * @return 结果
+ */
+ private CellStyle getCellStyle(Sheet sheet, int rowIndex, int cellIndex) {
+ Row row = sheet.getRow(rowIndex);
+ Cell cell = row.getCell(cellIndex);
+ return cell.getCellStyle();
+ }
+
+}
diff --git a/win-admin/src/main/resources/application.yml b/win-admin/src/main/resources/application.yml
index d0d3c05..d65707e 100644
--- a/win-admin/src/main/resources/application.yml
+++ b/win-admin/src/main/resources/application.yml
@@ -25,7 +25,7 @@ win:
# 实例演示开关
demoEnabled: true
# 文件路径 示例( Windows配置D:/win/uploadPath,Linux配置 /home/win/uploadPath)
- profile: /opt/uploadPath
+ profile: D:/win/uploadPath
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数组计算 char 字符验证
diff --git a/win-admin/src/main/resources/changchun.xls b/win-admin/src/main/resources/changchun.xls
new file mode 100644
index 0000000..4e1144a
Binary files /dev/null and b/win-admin/src/main/resources/changchun.xls differ
diff --git a/win-admin/src/main/resources/foshan_qingdao.xls b/win-admin/src/main/resources/foshan_qingdao.xls
new file mode 100644
index 0000000..e674024
Binary files /dev/null and b/win-admin/src/main/resources/foshan_qingdao.xls differ
diff --git a/win-admin/src/main/resources/guowai1.xls b/win-admin/src/main/resources/guowai1.xls
new file mode 100644
index 0000000..765226c
Binary files /dev/null and b/win-admin/src/main/resources/guowai1.xls differ
diff --git a/win-admin/src/main/resources/guowai2.xlsx b/win-admin/src/main/resources/guowai2.xlsx
new file mode 100644
index 0000000..48aa2ff
Binary files /dev/null and b/win-admin/src/main/resources/guowai2.xlsx differ
diff --git a/win-framework/src/main/java/com/win/framework/config/SecurityConfig.java b/win-framework/src/main/java/com/win/framework/config/SecurityConfig.java
index 903bafa..8842c99 100644
--- a/win-framework/src/main/java/com/win/framework/config/SecurityConfig.java
+++ b/win-framework/src/main/java/com/win/framework/config/SecurityConfig.java
@@ -112,7 +112,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
// 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
//.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs").permitAll()
- .antMatchers("/command/**", "/shell/**").permitAll()
+ .antMatchers("/command/**", "/shell/**", "/excel/**").permitAll()
// 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated()
.and()