From d5bb894f9be2e0a3b62d475b60b44f2ab138528c Mon Sep 17 00:00:00 2001 From: guoyujie <guoyujie@ng.com> Date: 星期四, 12 六月 2025 16:48:35 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override --- north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java | 109 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 72 insertions(+), 37 deletions(-) diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java index f7aa975..7872e80 100644 --- a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java +++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java @@ -19,6 +19,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.util.List; import java.util.Map; @@ -53,11 +54,25 @@ } //娴佺▼鍗$鐞嗘煡璇� - public Map<String, Object> selectProcessCard(Integer pageNum, Integer pageSize, Date selectTime1, Date selectTime2, FlowCard flowCard) { + public Map<String, Object> selectProcessCard(Integer pageNum, Integer pageSize,List<String> selectDate, FlowCard flowCard) { Integer offset = (pageNum - 1) * pageSize; + String endDate = LocalDate.now().toString(); + String startDate = LocalDate.now().minusDays(15).toString(); + if(selectDate !=null && selectDate.size()==2){ + if(!selectDate.get(0).isEmpty()){ + startDate = selectDate.get(0); + } + if(!selectDate.get(1).isEmpty()){ + endDate = selectDate.get(1); + } + } Map<String, Object> map = new HashMap<>(); - map.put("data", flowCardMapper.selectFlowCard(offset, pageSize, selectTime1, selectTime2, flowCard)); - map.put("total", flowCardMapper.getPageTotal(offset, pageSize, selectTime1, selectTime2, flowCard)); + map.put("data", flowCardMapper.selectFlowCard(offset, pageSize, startDate, endDate, flowCard)); + map.put("total", flowCardMapper.getPageTotal(offset, pageSize, startDate, endDate, flowCard)); + List<String> list = new ArrayList<>(); + list.add(startDate); + list.add(endDate); + map.put("selectDate",list); return map; } @@ -217,6 +232,7 @@ public Object flowCardDetailSv(String processId, FlowCard flowCard) { Map<String, Object> map = new HashMap<>(); map.put("data", flowCardMapper.flowCardDetailMp(processId, flowCard)); + map.put("merge", flowCardMapper.flowCardDetailMergeMp(processId)); return map; } @@ -288,8 +304,11 @@ List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋� List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); if (!flowCardList.isEmpty()) { - Set<String> processedProcessIds = new HashSet<>(); // 鐢ㄦ潵瀛樻斁宸插鐞嗚繃鐨� processId + Set<String> processedKeys = new HashSet<>(); for (FlowCard flowCard : flowCardList) { + String processId = flowCard.getProcessId(); + Integer orderNumber = flowCard.getOrderNumber(); + String uniqueKey = processId + "|" + orderNumber; // 鐢ㄧ壒娈婂瓧绗﹁繛鎺ラ槻姝㈠啿绐� Map<String, Object> itemmap = new HashMap<>(); //娴佺▼鍗¤〃澶磋〃灏炬暟鎹� //鏄惁浼犲叆鍚堝苟灞傛暟 @@ -297,7 +316,9 @@ //鏄惁鍖呭惈鍒囧壊 //boolean containsCutting = flowCard.getProcess().contains("鍒囧壊"); String processSub = flowCard.getProcess().substring(0, 2); - if (processSub.equals("澶硅兌") || processSub.equals("涓┖")) {//宸ヨ壓鏄惁鍖呭惈澶硅兌涓┖ + //鑾峰彇宸ュ簭瀵瑰簲鐨勫埆绉� + String processName = flowCardMapper.getProcessName(processSub); + if (processName.equals("stepC") || processName.equals("stepD")) {//宸ヨ壓鏄惁鍖呭惈澶硅兌涓┖ itemmap.put("detail", flowCardMapper.getPrimaryListLimt(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId())); List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess()); @@ -305,11 +326,11 @@ } else { if (merge.equals("1") && flowCard.getMerge().equals(1)) { // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩� - if (processedProcessIds.contains(flowCard.getProcessId())) { + if (processedKeys.contains(uniqueKey)) { continue; } // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� - processedProcessIds.add(flowCard.getProcessId()); + processedKeys.add(uniqueKey); itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId())); List<Map<String, Object>> detailList = flowCardMapper.getDetailListMerge(flowCard.getProcessId(), flowCard.getProcess()); @@ -382,15 +403,20 @@ } List<FlowCard> flowCardList = flowCardMapper.getFlowCardListPrintProject(printProject); if (!flowCardList.isEmpty()) { - Set<String> processedProcessIds = new HashSet<>(); // 鐢ㄦ潵瀛樻斁宸插鐞嗚繃鐨� processId + Set<String> processedKeys = new HashSet<>(); + for (FlowCard flowCard : flowCardList) { Map<String, Object> itemmap = new HashMap<>(); - + String processId = flowCard.getProcessId(); + Integer orderNumber = flowCard.getOrderNumber(); + String uniqueKey = processId + "|" + orderNumber; // 鐢ㄧ壒娈婂瓧绗﹁繛鎺ラ槻姝㈠啿绐� //鏄惁鍖呭惈鍒囧壊 //boolean containsCutting = flowCard.getProcess().contains("鍒囧壊"); String processSub = flowCard.getProcess().substring(0, 2); - if (processSub.equals("澶硅兌") || processSub.equals("涓┖")) { + //鑾峰彇宸ュ簭瀵瑰簲鐨勫埆绉� + String processName = flowCardMapper.getProcessName(processSub); + if (processName.equals("stepC") || processName.equals("stepD")) {//宸ヨ壓鏄惁鍖呭惈澶硅兌涓┖ itemmap.put("detail", flowCardMapper.getPrimaryListLimt(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId())); if (flowCard.getPatchState().equals(0)) { List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess()); @@ -405,11 +431,11 @@ if (flowCard.getPatchState().equals(0)) { if (merge.equals("1") && flowCard.getMerge().equals(1)) { // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩� - if (processedProcessIds.contains(flowCard.getProcessId())) { + if (processedKeys.contains(uniqueKey)) { continue; } // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� - processedProcessIds.add(flowCard.getProcessId()); + processedKeys.add(uniqueKey); itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId())); List<Map<String, Object>> detailList = flowCardMapper.getDetailListMerge(flowCard.getProcessId(), flowCard.getProcess()); @@ -569,14 +595,15 @@ List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋� List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); if (!flowCardList.isEmpty()) { - Set<String> processedProcessIds = new HashSet<>(); // 鐢ㄦ潵瀛樻斁宸插鐞嗚繃鐨� processId + Set<String> processedKeys = new HashSet<>(); if (lableType != 2) {//鎴愬搧鏍囩 for (FlowCard flowCard : flowCardList) { String processId = flowCard.getProcessId(); - + Integer orderNumber = flowCard.getOrderNumber(); + String uniqueKey = processId + "|" + orderNumber; // 鐢ㄧ壒娈婂瓧绗﹁繛鎺ラ槻姝㈠啿绐� // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩� - if (processedProcessIds.contains(processId)) { + if (processedKeys.contains(uniqueKey)) { continue; } Map<String, Object> itemmap = new HashMap<>(); @@ -584,7 +611,7 @@ list.add(itemmap); // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� - processedProcessIds.add(processId); + processedKeys.add(uniqueKey); } } else {//灏忕墖鏍囩 for (FlowCard flowCard : flowCardList) { @@ -604,14 +631,15 @@ List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋� List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); if (!flowCardList.isEmpty()) { - Set<String> processedProcessIds = new HashSet<>(); // 鐢ㄦ潵瀛樻斁宸插鐞嗚繃鐨� processId - + Set<String> processedKeys = new HashSet<>(); if (lableType != 2) {//鎴愬搧鏍囩 for (FlowCard flowCard : flowCardList) { String processId = flowCard.getProcessId(); + Integer orderNumber = flowCard.getOrderNumber(); + String uniqueKey = processId + "|" + orderNumber; // 鐢ㄧ壒娈婂瓧绗﹁繛鎺ラ槻姝㈠啿绐� // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩� - if (processedProcessIds.contains(processId)) { + if (processedKeys.contains(uniqueKey)) { continue; } Map<String, Object> itemmap = new HashMap<>(); @@ -619,7 +647,7 @@ list.add(itemmap); // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� - processedProcessIds.add(processId); + processedKeys.add(uniqueKey); } } else {//灏忕墖鏍囩 for (FlowCard flowCard : flowCardList) { @@ -707,8 +735,10 @@ //宸ヨ壓娴佺▼ List<Map<String, Object>> processList = flowCardMapper.getProcessList(flowCard.getProcessId(), flowCard.getTechnologyNumber()); - + //宸ュ簭鍒楄〃 + List<Map<String, Object>> processNameList = flowCardMapper.getProcessNameList(); itemmap.put("processList", processList); + itemmap.put("processNameList", processNameList); // itemmap.put("numberList", numberList); list.add(itemmap); @@ -798,16 +828,17 @@ List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋� List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); if (!flowCardList.isEmpty()) { - Set<String> processedProcessIds = new HashSet<>(); // 鐢ㄦ潵瀛樻斁宸插鐞嗚繃鐨� processId + Set<String> processedKeys = new HashSet<>(); if (lableType != 2) {//鎴愬搧鏍囩 for (FlowCard flowCard : flowCardList) { String orderId = flowCard.getOrderId(); String processId = flowCard.getProcessId(); String orderNumber = flowCard.getOrderNumber().toString(); + String uniqueKey = processId + "|" + orderNumber; // 鐢ㄧ壒娈婂瓧绗﹁繛鎺ラ槻姝㈠啿绐� if (processId!=null){ // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩� - if (processedProcessIds.contains(processId) && processedProcessIds.contains(orderNumber)) { + if (processedKeys.contains(uniqueKey)) { continue; } Map<String, Object> itemmap = new HashMap<>(); @@ -815,8 +846,7 @@ list.add(itemmap); // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� - processedProcessIds.add(processId); - processedProcessIds.add(orderNumber); + processedKeys.add(uniqueKey); } else{ Map<String, Object> itemmap = new HashMap<>(); @@ -864,23 +894,27 @@ } - public String mergeFlowCard(Map<String, Object> object) { + public String mergeFlowCard(Map<String, Object> object, Integer merge) { String returns = "false"; List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class); if (!flowCardList.isEmpty()) { List<Map<String, Object>> flowCardList1 = flowCardMapper.selectFlowCardMerge(flowCardList.get(0).getProcessId()); - int index = 1; - for (int i = 0; i < flowCardList1.size(); i++) { - if (Integer.valueOf(flowCardList1.get(i).get("count2").toString()) > 1) { - List<Integer> technologyNumber = Arrays.stream(flowCardList1.get(i).get("count1").toString().split(",")) - .map(Integer::parseInt) - .collect(Collectors.toList()); - flowCardMapper.updateFlowCardMerge(flowCardList.get(0).getProcessId(), technologyNumber, index); - index += 1; - returns = "true"; + if (merge == 0){ + int index = 1; + for (int i = 0; i < flowCardList1.size(); i++) { + if (Integer.valueOf(flowCardList1.get(i).get("count2").toString()) > 1) { + List<Integer> technologyNumber = Arrays.stream(flowCardList1.get(i).get("count1").toString().split(",")) + .map(Integer::parseInt) + .collect(Collectors.toList()); + flowCardMapper.updateFlowCardMerge(flowCardList.get(0).getProcessId(), technologyNumber, index); + index += 1; + returns = "true"; + } } + }else {//鍙栨秷鍚堝苟 + flowCardMapper.updateFlowCardIsMerge(flowCardList.get(0).getProcessId()); + returns = "true"; } - } @@ -982,7 +1016,6 @@ List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋� List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); if (!flowCardList.isEmpty()) { - Set<String> processedProcessIds = new HashSet<>(); // 鐢ㄦ潵瀛樻斁宸插鐞嗚繃鐨� processId for (FlowCard flowCard : flowCardList) { Map<String, Object> itemmap = new HashMap<>(); //鏄惁鏄伐绋嬫槑缁嗘墦鍗� @@ -1174,6 +1207,7 @@ newOrderDetail.setLandingSequence(flowCardNo); orderDetailList.add(newOrderDetail); orderDetail.setQuantity(orderDetail.getQuantity() - shelfQuantity); + orderDetail.setBaiscQuantity(String.valueOf(Integer.valueOf(orderDetail.getBaiscQuantity())-shelfQuantity)); flowCardNo += 1; shelfQuantity = shelfQuantity - shelfQuantity; } else { @@ -1184,6 +1218,7 @@ newOrderDetail.setOrderNumber(orderDetail.getOrderNumber()); newOrderDetail.setShape(orderDetail.getShape()); newOrderDetail.setLandingSequence(flowCardNo); + newOrderDetail.setBaiscQuantity(String.valueOf(orderDetail.getBaiscQuantity())); orderDetailList.add(newOrderDetail); //褰撳墠鏋跺瓙鍓╀綑鏁伴噺 shelfQuantity = shelfQuantity - Math.toIntExact(orderDetail.getQuantity()); -- Gitblit v1.8.0