From e4efff6637f4d598a7efdfca8b62fbb4c3286b02 Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期四, 22 五月 2025 15:39:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java | 316 +++++++++++++++++++---------------------------------
1 files changed, 118 insertions(+), 198 deletions(-)
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java
index 5bb509d..2436835 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java
@@ -2,11 +2,13 @@
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.nacos.common.utils.JacksonUtils;
import com.aps.common.core.utils.DateUtils;
-import com.aps.common.core.utils.bean.BeanUtils;
import com.aps.common.core.web.domain.AjaxResult;
import com.aps.common.security.utils.DictUtils;
import com.aps.common.security.utils.SecurityUtils;
@@ -16,9 +18,14 @@
import com.aps.core.domain.ApsPlate.ApsPlateProcessShopStat;
import com.aps.core.domain.ApsPlate.ApsPlateProcessStat;
import com.aps.core.mapper.*;
+import com.aps.core.service.ApsPlate.IApsPlateProcessStatService;
import com.aps.system.api.domain.SysDictData;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
+import lombok.AllArgsConstructor;
+import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.util.IOUtils;
@@ -53,6 +60,9 @@
@Resource
private ApsPlatePlanMapper apsPlatePlanMapper;
+ @Autowired
+ private IApsPlateProcessStatService apsPlateProcessStatService;
+
/**
@@ -130,6 +140,7 @@
@Override
public void saveShopStat() {
try {
+ apsPlateProcessStatService.savePlateProcessStat();
// 寮�濮嬩箣鍓嶅厛鍒犻櫎鎵�鏈夊巻鍙叉暟鎹�
apsPlateProcessShopStatMapper.deleteAll();
@@ -257,7 +268,7 @@
ApsShop apsShop = new ApsShop();
apsShop.setPlantCode(PLANT_CODE);
-
+ apsShop.setStatus("1");
// 鑾峰彇杞﹂棿鍒楄〃骞跺鐞嗙┖鍊�
List<String> shopList = Optional.ofNullable(shopMapper.selectApsShopList(apsShop))
.orElse(Collections.emptyList())
@@ -309,7 +320,7 @@
response.setCharacterEncoding("utf-8");
Map<String, CellStyle> styles = createStyles(wb);
- CellStyle title = styles.get("title");
+ CellStyle titleStyle = styles.get("title");
try
{
@@ -319,222 +330,58 @@
SXSSFSheet sheet = wb.getSheetAt(0);
/*濉啓鏃ユ湡鍒� 鍜� 宸ユ椂鍒�*/
SXSSFRow rowTitle = sheet.createRow(0);
- SXSSFCell mainPartNumberTitle = rowTitle.createCell(0);
- mainPartNumberTitle.setCellValue("涓讳欢鏂欏彿");
- mainPartNumberTitle.setCellStyle(title);
- SXSSFCell businessTypeTitle = rowTitle.createCell(1);
- businessTypeTitle.setCellValue("涓氬姟绫诲瀷");
- businessTypeTitle.setCellStyle(title);
-
- SXSSFCell documentNumberTitle = rowTitle.createCell(2);
- documentNumberTitle.setCellValue("鍗曟嵁鍙�");
- documentNumberTitle.setCellStyle(title);
-
- SXSSFCell requirementTypeTitle = rowTitle.createCell(3);
- requirementTypeTitle.setCellValue("闇�姹傚垎绫�");
- requirementTypeTitle.setCellStyle(title);
-
- SXSSFCell documentStatusTitle = rowTitle.createCell(4);
- documentStatusTitle.setCellValue("鍗曟嵁鐘舵��");
- documentStatusTitle.setCellStyle(title);
-
- SXSSFCell approveDateTitle = rowTitle.createCell(5);
- approveDateTitle.setCellValue("瀹℃牳鏃堕棿");
- approveDateTitle.setCellStyle(title);
-
- SXSSFCell workCenterTitle = rowTitle.createCell(6);
- workCenterTitle.setCellValue("褰撳墠宸ュ簭");
- workCenterTitle.setCellStyle(title);
-
- SXSSFCell departmentTitle = rowTitle.createCell(7);
- departmentTitle.setCellValue("褰撳墠宸ュ簭璐熻矗浜�");
- departmentTitle.setCellStyle(title);
-
- SXSSFCell crtPcsStsTitle = rowTitle.createCell(8);
- crtPcsStsTitle.setCellValue("褰撳墠宸ュ簭鐘舵��");
- crtPcsStsTitle.setCellStyle(title);
-
- SXSSFCell nextProcessTitle = rowTitle.createCell(9);
- nextProcessTitle.setCellValue("涓嬩竴宸ュ簭");
- nextProcessTitle.setCellStyle(title);
+ Map<Integer, String> FrontTitleMap = initFrontTitle(shopNames);
+ FrontTitleMap.forEach((index, titleName) -> {
+ createCell(rowTitle, index, titleName, titleStyle);
+ });
- SXSSFCell nextProcessDeparmentTitle = rowTitle.createCell(10);
- nextProcessDeparmentTitle.setCellValue("涓嬩竴宸ュ簭璐熻矗浜�");
- nextProcessDeparmentTitle.setCellStyle(title);
-
- SXSSFCell itemNumberTitle = rowTitle.createCell(11);
- itemNumberTitle.setCellValue("鏂欏彿");
- itemNumberTitle.setCellStyle(title);
-
- SXSSFCell drawingNoTitle = rowTitle.createCell(12);
- drawingNoTitle.setCellValue("鍥惧彿");
- drawingNoTitle.setCellStyle(title);
-
- SXSSFCell versionNumberTitle = rowTitle.createCell(13);
- versionNumberTitle.setCellValue("鐗堟湰鍙�");
- versionNumberTitle.setCellStyle(title);
-
- SXSSFCell lowNumTitle = rowTitle.createCell(14);
- lowNumTitle.setCellValue("浣庨樁鐮�");
- lowNumTitle.setCellStyle(title);
-
-
- SXSSFCell productionQuantityTitle = rowTitle.createCell(15);
- productionQuantityTitle.setCellValue("鐢熶骇鏁伴噺");
- productionQuantityTitle.setCellStyle(title);
-
- SXSSFCell planSendDateTitle = rowTitle.createCell(16);
- planSendDateTitle.setCellValue("宸ュ崟璁″垝涓嬪彂鏃堕棿");
- planSendDateTitle.setCellStyle(title);
-
-
-
- SXSSFCell planEndDayTitle = rowTitle.createCell(17);
- planEndDayTitle.setCellValue("绯荤粺瀹屽伐鏃堕棿");
- planEndDayTitle.setCellStyle(title);
-
-
-
-
-
- String firstShopName = shopNames.get(0);
- SXSSFCell firstShopBeginDateTitle = rowTitle.createCell(18);
- firstShopBeginDateTitle.setCellValue(firstShopName+"寮�宸ユ椂闂�");
- firstShopBeginDateTitle.setCellStyle(title);
- SXSSFCell firstShopEndDateTitle = rowTitle.createCell(19);
- firstShopEndDateTitle.setCellValue(firstShopName+"瀹屽伐鏃堕棿");
- firstShopEndDateTitle.setCellStyle(title);
-
- /*鐒婃帴浠堕綈濂�*/
- SXSSFCell hanJieQiTaoTitle= rowTitle.createCell(20);
- hanJieQiTaoTitle.setCellValue("鐒婃帴浠堕綈濂楀紑濮嬫椂闂�");
- hanJieQiTaoTitle.setCellStyle(title);
-
- int i1 = 19;
-
- for (int i = 1; i < shopNames.size(); i++) {
- String shopName = shopNames.get(i);
- SXSSFCell beginDateCell = rowTitle.createCell(i * 2 + i1);
- SXSSFCell endDateCell = rowTitle.createCell(i * 2 + i1+1);
- beginDateCell.setCellValue(shopName+"寮�宸ユ椂闂�");
- endDateCell.setCellValue(shopName+"瀹屽伐鏃堕棿");
- beginDateCell.setCellStyle(title);
- endDateCell.setCellStyle(title);
- }
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (int i = 0; i < table.size(); i++) {
ApsPlateProcessShopPlanStat plan = table.get(i);
-
+ //JSONObject jsonObject = (JSONObject) JSONObject.toJSON(plan);
+ ObjectMapper mapper = new ObjectMapper();
+ ObjectNode node = mapper.valueToTree(plan);
SXSSFRow dataRow = sheet.createRow(i+1);
- //涓讳欢鏂欏彿
- SXSSFCell mainPartNumberCell = dataRow.createCell(0);
- mainPartNumberCell.setCellValue(plan.getMainPartNumber());
- //涓氬姟绫诲瀷;
- SXSSFCell businessTypeCell= dataRow.createCell(1);
- businessTypeCell.setCellValue(plan.getBusinessType());
+ LinkedHashMap<String,String> frontTitles= frontTitleName();
+ ArrayList<Map.Entry<String, String>> frontTitlesList = new ArrayList<Map.Entry<String, String>>(
+ frontTitles.entrySet());
- //鍗曟嵁鍙�;
- SXSSFCell documentNumberCell = dataRow.createCell(2);
- documentNumberCell.setCellValue(plan.getDocumentNumber());
+ for (int i1 = 0; i1 < frontTitlesList.size(); i1++) {
- //闇�姹傚垎绫�;
- SXSSFCell requirementTypeCell = dataRow.createCell(3);
- requirementTypeCell.setCellValue(plan.getRequirementType());
+ Map.Entry<String, String> entry = frontTitlesList.get(i1);
+ String filedKey = entry.getKey();
+ String fieldValue= node.get(filedKey).textValue();
+ createCell(dataRow, i1,fieldValue , null);
+ }
- // 鍗曟嵁鐘舵��
- SXSSFCell documentStatusCell = dataRow.createCell(4);
- documentStatusCell.setCellValue(plan.getDocumentStatus());
-
-
- // 瀹℃牳鏃堕棿
- SXSSFCell approveDateCell = dataRow.createCell(5);
- approveDateCell.setCellValue("");
-
- //褰撳墠宸ュ簭
- SXSSFCell workCenterCell = dataRow.createCell(6);
- workCenterCell.setCellValue(plan.getWorkCenter());
-
- //褰撳墠宸ュ簭璐熻矗浜�;
- SXSSFCell departmentCell = dataRow.createCell(7);
- departmentCell.setCellValue(plan.getDepartment());
-
- /*褰撳墠宸ュ簭鐘舵��*/
- SXSSFCell crtPcsStsCell = dataRow.createCell(8);
- crtPcsStsCell.setCellValue(plan.getOpStatus());
-
-
- //涓嬩竴宸ュ簭
- SXSSFCell nextProcessCell = dataRow.createCell(9);
- nextProcessCell.setCellValue(plan.getNextOpName());
-
- //涓嬩竴宸ュ簭宸ュ簭璐熻矗浜�
- SXSSFCell nextProcessDeparmentCell = dataRow.createCell(10);
- nextProcessDeparmentCell.setCellValue(plan.getNextProcessDeparment());
-
- //鏂欏彿
- SXSSFCell itemNumberCell = dataRow.createCell(11);
- itemNumberCell.setCellValue(plan.getItemNumber());
-
- // 鍥惧彿
- SXSSFCell drawingNoCell = dataRow.createCell(12);
- drawingNoCell.setCellValue(plan.getDrawingNo());
-
- //鐗堟湰鍙�
- SXSSFCell versionNumberCell = dataRow.createCell(13);
- versionNumberCell.setCellValue(plan.getVersionNumber());
-
- //浣庨樁鐮�
- SXSSFCell lowNumCell = dataRow.createCell(14);
- lowNumCell.setCellValue("");
-
- //鐢熶骇鏁伴噺
- SXSSFCell productionQuantityCell = dataRow.createCell(15);
- productionQuantityCell.setCellValue(plan.getProductionQuantity().toString());
-
- //宸ュ崟璁″垝涓嬪彂鏃堕棿
- SXSSFCell planSendDateCell = dataRow.createCell(16);
- planSendDateCell.setCellValue("");
-
- //绯荤粺瀹屽伐鏃堕棿
- SXSSFCell planEndDayCell = dataRow.createCell(17);
- planEndDayCell.setCellValue(dateFormat.format(plan.getPlanEndDay()));
-
-
-
-
- SXSSFCell firstShopBeginDateCell = dataRow.createCell(18);
- SXSSFCell firstShopEndDateCell = dataRow.createCell(19);
-
- plan.getDeptPlans().stream().filter(x->x.getShopName().equals(firstShopName)).findFirst().ifPresent(x->{
- firstShopBeginDateCell.setCellValue(x.getPlanStartDate());
- firstShopEndDateCell.setCellValue(x.getPlanEndDate());
- });
- /*鐒婃帴浠堕綈濂�*/
- SXSSFCell hanJieQiTaoCell = dataRow.createCell(20);
- hanJieQiTaoCell.setCellValue("");
-
-
- for (int j = 1; j< shopNames.size(); j++) {
- String shopName = shopNames.get(j);
- SXSSFCell beginDateCell = dataRow.createCell(j * 2 + i1);
- SXSSFCell endDateCell = dataRow.createCell(j * 2 + i1+1);
+ int shopBeginIndex = frontTitlesList.size();
+ for (int j = 0; j< shopNames.size(); j++) {
+ String shopName = shopNames.get(0);
+ SXSSFCell beginDateCell = dataRow.createCell(j * 2 + shopBeginIndex);
+ SXSSFCell endDateCell = dataRow.createCell(j * 2 + shopBeginIndex+1);
plan.getDeptPlans().stream().filter(x->x.getShopName().equals(shopName)).findFirst().ifPresent(x->{
beginDateCell.setCellValue(x.getPlanStartDate());
endDateCell.setCellValue(x.getPlanEndDate());
});
}
+ LinkedHashMap<String,String> backTitles= backTitleName();
+ ArrayList<Map.Entry<String, String>> backTitlesList = new ArrayList<Map.Entry<String, String>>(
+ backTitles.entrySet());
-
+ int backBeginIndex = shopBeginIndex+shopNames.size()*2;
+ for (int i1 = 0; i1 < backTitlesList.size(); i1++) {
+ Map.Entry<String, String> entry = backTitlesList.get(i1);
+ String filedKey = entry.getKey();
+ String fieldValue= node.get(filedKey).textValue();
+ createCell(dataRow, i1+backBeginIndex,fieldValue , null);
+ }
}
-
for (int i = 0; i < rowTitle.getLastCellNum(); i++) {
-
sheet.setColumnWidth(i, 20 * 256);
}
-
wb.write(response.getOutputStream());
}
catch (Exception e)
@@ -547,6 +394,79 @@
}
}
+
+ private LinkedHashMap<String,String> frontTitleName(){
+
+ LinkedHashMap<String,String> map = new LinkedHashMap<>();
+ map.put("mainPartNumber","涓讳欢鏂欏彿");
+ map.put("customer","涓讳欢瀹㈡埛");
+ map.put("requireTrackId","寤烘爲琛�");
+ map.put("businessType","涓氬姟绫诲瀷");
+ map.put("documentNumber","鍗曟嵁鍙�");
+ map.put("itemNumber","鏂欏彿");
+ map.put("drawingNo","鍥惧彿");
+ map.put("versionNumber","鐗堟湰鍙�");
+ map.put("lowOrderCode","浣庨樁鐮�");
+ map.put("productionQuantity","鐢熶骇鏁伴噺");
+ map.put("requirementType","闇�姹傚垎绫�");
+ map.put("documentStatus","鍗曟嵁鐘舵��");
+ map.put("approveOn","瀹℃牳鏃堕棿");
+ map.put("processNumber","宸ュ簭鍙�");
+ map.put("workCenter","褰撳墠宸ュ簭");
+ map.put("department","褰撳墠宸ュ簭璐d换浜�");
+ map.put("opStatus","鐘舵��");
+ map.put("nextOpName","涓嬩竴閬撳伐搴�");
+ map.put("planEndDay","绯荤粺瀹屽伐鏃堕棿");
+
+ return map;
+ }
+ private LinkedHashMap<String,String> backTitleName(){
+ LinkedHashMap<String,String> map = new LinkedHashMap<>();
+
+ map.put("orderCreateTime","宸ュ崟鍒涘缓鏃堕棿");
+ map.put("startWorkDate","宸ュ崟寮�宸ユ椂闂�");
+ map.put("remainedProcess","鍓╀綑宸ュ簭");
+
+ return map;
+ }
+
+ private Map<Integer,String> initFrontTitle(List<String> shopNames) {
+ Map<Integer,String> map = new HashMap<>();
+ Map<String,String> frontTitles= frontTitleName();
+ AtomicInteger index= new AtomicInteger();
+
+ frontTitles.forEach((key,value)->{
+ map.put(index.get(), value);
+ index.getAndIncrement();
+ });
+
+
+ for (int i = 0; i < shopNames.size(); i++) {
+ map.put(i * 2 + index.get(),shopNames.get(i) + "寮�濮嬫椂闂�");
+ map.put(i * 2 + index.get()+1,shopNames.get(i) + "缁撴潫鏃堕棿");
+ }
+
+ Map<String,String> backTitles= backTitleName();
+
+ AtomicInteger begBackIndex= new AtomicInteger(frontTitles.size() + shopNames.size() * 2);
+
+ backTitles.forEach((key,value)->{
+ map.put(begBackIndex.get(),value);
+ begBackIndex.getAndIncrement();
+ });
+
+ return map;
+ }
+
+
+ private static void createCell(SXSSFRow rowTitle, int column, String titleName, CellStyle cellStyle) {
+ SXSSFCell cell = rowTitle.createCell(column);
+ cell.setCellValue(titleName);
+ if(null!=cellStyle){
+ cell.setCellStyle(cellStyle);
+ }
+ }
+
private Map<String,CellStyle> createStyles(SXSSFWorkbook wb)
{
Map<String,CellStyle> styles=new HashMap<>();
--
Gitblit v1.9.3