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 index 7331459..1c9623d 100644 --- 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 @@ -35,7 +35,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.TreeMap; @@ -96,9 +95,17 @@ public class ExcelController { UUID traceid = UUID.randomUUID(); AjaxResult ajaxResult = linuxAccessService.executeCommand(linuxAccess, qadAccess, traceid.toString(), json, domain); jsonObject = JSONObject.parseObject(ajaxResult.get("msg").toString()); - jsonObject = JSONObject.parseObject(jsonObject.getString("dssupplierrs")); - JSONArray headerJsonArray = JSONArray.parse(jsonObject.getString("ttsupplierrsheader")); - JSONArray lineJsonArray = JSONArray.parse(jsonObject.getString("ttsupplierrsline")); +// BufferedReader reader = new BufferedReader(new FileReader("E:\\download\\response.json")); +// StringBuilder str = new StringBuilder(); +// String line; +// while ((line = reader.readLine()) != null) { +// str.append(line); +// } +// reader.close(); +// jsonObject = JSONObject.parseObject(str.toString()); + jsonObject = jsonObject.getJSONObject("dssupplierrs"); + JSONArray headerJsonArray = jsonObject.getJSONArray("ttsupplierrsheader"); + JSONArray lineJsonArray = jsonObject.getJSONArray("ttsupplierrsline"); List fileNames = new ArrayList<>(); if(headerJsonArray == null) { return AjaxResult.error(HttpStatus.TTSUPPLIERRSHEADER_FAIL, "数据不存在ttsupplierrsheader"); @@ -121,10 +128,14 @@ public class ExcelController { String schdLineFcQual = jsonObjectLine.getString("schd_line_fc_qual"); if(schmHeaderOrder.equals(schdLineOrder)) { JSONObject order; - if ("F".equals(schdLineFcQual)) { + if(!"guowai2".equals(type)) { order = firmOrderMap.get(schdLineLine); } else { - order = forecastOrderMap.get(schdLineLine); + if ("F".equals(schdLineFcQual)) { + order = firmOrderMap.get(schdLineLine); + } else { + order = forecastOrderMap.get(schdLineLine); + } } if (order == null) { order = new JSONObject(); @@ -136,10 +147,14 @@ public class ExcelController { order.put("schd_line_cum_qty", jsonObjectLine.getIntValue("schd_line_cum_qty")); order.put("schd_line_pcr_qty", jsonObjectLine.getIntValue("schd_line_pcr_qty")); } - if ("F".equals(schdLineFcQual)) { + if(!"guowai2".equals(type)) { firmOrderMap.put(schdLineLine, order); } else { - forecastOrderMap.put(schdLineLine, order); + if ("F".equals(schdLineFcQual)) { + firmOrderMap.put(schdLineLine, order); + } else { + forecastOrderMap.put(schdLineLine, order); + } } String schdLineDate = jsonObjectLine.getString("schd_line_date"); String schdLineDateDl = jsonObjectLine.getString("schd_line_date_dl"); @@ -181,16 +196,15 @@ public class ExcelController { } for(String firmKey : firmMap.keySet()) { JSONObject firm = firmMap.get(firmKey); - JSONObject forecast = forecastMap.get(firmKey); boolean isAllZero = false; for(int count = 0; count < firmOrderArray.size(); count++) { - String cellValue = ""; + int cellValue = 0; JSONObject object = firmOrderArray.getJSONObject(count); JSONObject order = firm.getJSONObject(object.getString("schd_line_line")); if(order != null) { - cellValue = order.getString("schd_line_qty"); + cellValue = order.getIntValue("schd_line_qty"); } - if(!cellValue.isEmpty() && !cellValue.equals("0")) { + if(cellValue != 0) { isAllZero = true; } } @@ -201,15 +215,29 @@ public class ExcelController { for(String forecastKey : forecastMap.keySet()) { JSONObject forecast = forecastMap.get(forecastKey); boolean isAllZero = false; - for(int count = 0; count < forecastOrderArray.size(); count++) { - String cellValue = ""; - JSONObject object = forecastOrderArray.getJSONObject(count); - JSONObject order = forecast.getJSONObject(object.getString("schd_line_line")); - if(order != null) { - cellValue = order.getString("schd_line_qty"); + if(!"guowai2".equals(type)) { + for(int count = 0; count < firmOrderArray.size(); count++) { + int cellValue = 0; + JSONObject object = firmOrderArray.getJSONObject(count); + JSONObject order = forecast.getJSONObject(object.getString("schd_line_line")); + if(order != null) { + cellValue = order.getIntValue("schd_line_qty"); + } + if(cellValue != 0) { + isAllZero = true; + } } - if(!cellValue.isEmpty() && !cellValue.equals("0")) { - isAllZero = true; + } else { + for (int count = 0; count < forecastOrderArray.size(); count++) { + int cellValue = 0; + JSONObject object = forecastOrderArray.getJSONObject(count); + JSONObject order = forecast.getJSONObject(object.getString("schd_line_line")); + if (order != null) { + cellValue = order.getIntValue("schd_line_qty"); + } + if(cellValue != 0) { + isAllZero = true; + } } } if(isAllZero) { @@ -297,7 +325,7 @@ public class ExcelController { firmDateCell.setCellStyle(cellStyle4); //设置每个firm订单数据 for(int count = 0; count < orderArray.size(); count++) { - String cellValue = ""; + int cellValue = 0; JSONObject object = orderArray.getJSONObject(count); JSONObject order = firm.getJSONObject(object.getString("schd_line_line")); Row nextRow = sheet.getRow(16 + count); @@ -306,13 +334,10 @@ public class ExcelController { nextCell = nextRow.createCell(cellIndex); } if(order != null) { - cellValue = order.getString("schd_line_qty"); - } - if(cellValue.equals("0")) { - cellValue = ""; + cellValue = order.getIntValue("schd_line_qty"); } - if(!cellValue.isEmpty()) { - nextCell.setCellValue(new BigDecimal(cellValue).intValue()); + if(cellValue != 0) { + nextCell.setCellValue(cellValue); } else { nextCell.setCellValue(""); } @@ -361,22 +386,19 @@ public class ExcelController { forecastDateCell.setCellStyle(cellStyle5); //设置forecast每个订单数据 for(int count = 0; count < orderArray.size(); count++) { - String cellValue = ""; + int cellValue = 0; 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 = ""; + cellValue = order.getIntValue("schd_line_qty"); } Cell nextCell = nextRow.getCell(cellIndex); if (nextCell == null) { nextCell = nextRow.createCell(cellIndex); } - if(!cellValue.isEmpty()) { - nextCell.setCellValue(new BigDecimal(cellValue).intValue()); + if(cellValue != 0) { + nextCell.setCellValue(cellValue); } else { nextCell.setCellValue(""); } @@ -463,7 +485,7 @@ public class ExcelController { firmDateCell.setCellStyle(cellStyle4); //设置每个firm订单数据 for (int count = 0; count < orderArray.size(); count++) { - String cellValue = ""; + int cellValue = 0; JSONObject object = orderArray.getJSONObject(count); JSONObject order = firm.getJSONObject(object.getString("schd_line_line")); Row nextRow = sheet.getRow(16 + count); @@ -472,13 +494,10 @@ public class ExcelController { nextCell = nextRow.createCell(cellIndex); } if (order != null) { - cellValue = order.getString("schd_line_qty"); - } - if (cellValue.equals("0")) { - cellValue = ""; + cellValue = order.getIntValue("schd_line_qty"); } - if (!cellValue.isEmpty()) { - nextCell.setCellValue(new BigDecimal(cellValue).intValue()); + if (cellValue != 0) { + nextCell.setCellValue(cellValue); } else { nextCell.setCellValue(""); } @@ -537,22 +556,19 @@ public class ExcelController { forecastDateCell.setCellStyle(cellStyle5); //设置forecast每个订单数据 for (int count = 0; count < orderArray.size(); count++) { - String cellValue = ""; + int cellValue = 0; 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 = ""; + cellValue = order.getIntValue("schd_line_qty"); } Cell nextCell = nextRow.getCell(cellIndex); if (nextCell == null) { nextCell = nextRow.createCell(cellIndex); } - if (!cellValue.isEmpty()) { - nextCell.setCellValue(new BigDecimal(cellValue).intValue()); + if (cellValue != 0) { + nextCell.setCellValue(cellValue); } else { nextCell.setCellValue(""); } @@ -644,7 +660,7 @@ public class ExcelController { firmCell.setCellStyle(cellStyle3); //设置每个firm订单数据 for(int count = 0; count < orderArray.size(); count++) { - String cellValue = ""; + int cellValue = 0; JSONObject object = orderArray.getJSONObject(count); JSONObject order = firm.getJSONObject(object.getString("schd_line_line")); Row nextRow = sheet.getRow(17 + count); @@ -653,13 +669,10 @@ public class ExcelController { nextCell = nextRow.createCell(cellIndex); } if(order != null) { - cellValue = order.getString("schd_line_qty"); - } - if(cellValue.equals("0")) { - cellValue = ""; + cellValue = order.getIntValue("schd_line_qty"); } - if(!cellValue.isEmpty()) { - nextCell.setCellValue(new BigDecimal(cellValue).intValue()); + if (cellValue != 0) { + nextCell.setCellValue(cellValue); } else { nextCell.setCellValue(""); } @@ -707,22 +720,19 @@ public class ExcelController { forecstCell.setCellStyle(cellStyle3); //设置forecast每个订单数据 for(int count = 0; count < orderArray.size(); count++) { - String cellValue = ""; + int cellValue = 0; JSONObject object = orderArray.getJSONObject(count); JSONObject order = forecast.getJSONObject(object.getString("schd_line_line")); Row nextRow = sheet.getRow(17 + count); if(order != null) { - cellValue = order.getString("schd_line_qty"); - } - if(cellValue.equals("0")) { - cellValue = ""; + cellValue = order.getIntValue("schd_line_qty"); } Cell nextCell = nextRow.getCell(cellIndex); if (nextCell == null) { nextCell = nextRow.createCell(cellIndex); } - if(!cellValue.isEmpty()) { - nextCell.setCellValue(new BigDecimal(cellValue).intValue()); + if (cellValue != 0) { + nextCell.setCellValue(cellValue); } else { nextCell.setCellValue(""); } @@ -823,7 +833,7 @@ public class ExcelController { firmCell.setCellStyle(cellStyle2); //设置每个firm订单数据 for(int count = 0; count < firmOrderArray.size(); count++) { - String cellValue = ""; + int cellValue = 0; JSONObject object = firmOrderArray.getJSONObject(count); JSONObject order = firm.getJSONObject(object.getString("schd_line_line")); Row nextRow = sheet.getRow(19 + count); @@ -832,13 +842,10 @@ public class ExcelController { nextCell = nextRow.createCell(cellIndex); } if(order != null) { - cellValue = order.getString("schd_line_qty"); + cellValue = order.getIntValue("schd_line_qty"); } - if(cellValue.equals("0")) { - cellValue = ""; - } - if(!cellValue.isEmpty()) { - nextCell.setCellValue(new BigDecimal(cellValue).intValue()); + if (cellValue != 0) { + nextCell.setCellValue(cellValue); } else { nextCell.setCellValue(""); } @@ -887,22 +894,19 @@ public class ExcelController { forecastCell.setCellStyle(cellStyleForecast2); //设置forecast每个订单数据 for(int count = 0; count < forecastOrderArray.size(); count++) { - String cellValue = ""; + int cellValue = 0; JSONObject object = forecastOrderArray.getJSONObject(count); JSONObject order = forecast.getJSONObject(object.getString("schd_line_line")); Row nextRow = sheetForecast.getRow(18 + count); if(order != null) { - cellValue = order.getString("schd_line_qty"); - } - if(cellValue.equals("0")) { - cellValue = ""; + cellValue = order.getIntValue("schd_line_qty"); } Cell nextCell = nextRow.getCell(cellIndex); if (nextCell == null) { nextCell = nextRow.createCell(cellIndex); } - if(!cellValue.isEmpty()) { - nextCell.setCellValue(new BigDecimal(cellValue).intValue()); + if (cellValue != 0) { + nextCell.setCellValue(cellValue); } else { nextCell.setCellValue(""); }