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()