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 | 826 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 623 insertions(+), 203 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 f97b815..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 @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.example.erp.common.Constants; import com.example.erp.entity.pp.FlowCard; +import com.example.erp.entity.sd.OrderDetail; import com.example.erp.entity.sd.OrderGlassDetail; import com.example.erp.entity.sd.OrderProcessDetail; import com.example.erp.entity.userInfo.Log; @@ -18,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; @@ -28,6 +30,7 @@ import java.sql.Date; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.IntStream; import static com.example.erp.service.sd.OrderService.getOrderProcessDetails; @@ -43,19 +46,33 @@ final LogService logService; - public FlowCardService(FlowCardMapper flowCardMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper,LogService logService) { + public FlowCardService(FlowCardMapper flowCardMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, LogService logService) { this.flowCardMapper = flowCardMapper; this.orderGlassDetailMapper = orderGlassDetailMapper; this.orderProcessDetailMapper = orderProcessDetailMapper; - this.logService= logService; + this.logService = logService; } //娴佺▼鍗$鐞嗘煡璇� - 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; } @@ -100,7 +117,7 @@ //淇濆瓨鏃ュ織 Log log = new Log(); - log.setContent(orderId+processId); + log.setContent(orderId + processId); log.setFunction("deleteFlowCardSv娴佺▼鍗″垹闄�"); log.setOperatorId(userId); log.setOperator(userName); @@ -129,11 +146,7 @@ public Boolean updateLayoutStatusSv(String processId, Integer state) { if (!processId.isEmpty()) { -// Integer Status = flowCardMapper.selectLayoutStatus(processId); - flowCardMapper.updateLayoutStatusMp(processId, state); - - return true; } else { return false; @@ -141,12 +154,11 @@ } //淇濆瓨娴佺▼鍗℃暟鎹� - public Boolean addFlowCardSv(Map<String, Object> object) { + public Boolean addFlowCardSv(String orderId, Map<String, Object> object) { String userName = ""; if (object.get("userName") != null) { userName = object.get("userName").toString(); } - String productionId = ""; if (object.get("productionId") != null) { productionId = object.get("productionId").toString(); @@ -162,25 +174,24 @@ //淇敼鍒嗘灦鐘舵�侊紝灏嗙姸鎬佹敼涓�1 flowCardMapper.updateFlowState(productionId, flowCard.getOrderNumber()); //鏌ヨ璇ヨ鍗曟湭鍒嗘灦鏁伴噺 - Integer FlowCount = flowCardMapper.selectFlowCount(productionId); + Integer FlowCount = flowCardMapper.selectFlowCount(orderId); if (FlowCount == 0) { //淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬佷负2 - flowCardMapper.updateProcessingCard(productionId, 2); + flowCardMapper.updateProcessingCard(orderId, 2); } else { //淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬佷负1,鏈叏閮ㄥ垎鏋跺畬鎴� - flowCardMapper.updateProcessingCard(productionId, 1); + flowCardMapper.updateProcessingCard(orderId, 1); } //鏌ヨ璁㈠崟灏忕墖琛ㄨ幏鍙栧伐鑹轰紶鍏ュ皬鐗囧伐鑹鸿〃 List<OrderGlassDetail> orderGlassDetailList = orderGlassDetailMapper.selectList( new QueryWrapper<OrderGlassDetail>() - .eq("order_id", flowCard.getProcessId().substring(0, 10)) + .eq("order_id", orderId) .eq("order_number", flowCard.getOrderNumber()) ); List<OrderProcessDetail> orderProcessDetailList = getOrderProcessDetails(orderGlassDetailList); orderProcessDetailList.forEach( orderGlassDetail -> orderGlassDetail.setProcessId(flowCard.getProcessId())); - //璧嬪�艰鍗曞伐鑹鸿〃 orderProcessDetailMapper.insertOrderProcessDetail(orderProcessDetailList); @@ -207,7 +218,6 @@ map.put("data", flowCardMapper.selectNoSchedulingMp(selectTime1, selectTime2, orderId, processes, flowCard)); } - return map; } @@ -222,10 +232,11 @@ 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; } - public Object selectPrintFlowCardSv(Date selectTime1, Date selectTime2, String orderId, String project,String userId, FlowCard flowCard) { + public Object selectPrintFlowCardSv(Date selectTime1, Date selectTime2, String orderId, String project, String userId, Integer state, FlowCard flowCard) { if ("null".equals(orderId)) { orderId = ""; } @@ -233,9 +244,9 @@ project = ""; } Map<String, Object> map = new HashMap<>(); - map.put("data", flowCardMapper.selectPrintFlowCardMp(selectTime1, selectTime2, orderId, project, flowCard)); - String roleId=flowCardMapper.selectUserMp(userId); - map.put("user",roleId ); + map.put("data", flowCardMapper.selectPrintFlowCardMp(selectTime1, selectTime2, orderId, project,state, flowCard)); + String roleId = flowCardMapper.selectUserMp(userId); + map.put("user", roleId); return map; } @@ -252,11 +263,11 @@ if (!flowCardList.isEmpty()) { for (FlowCard flowCard : flowCardList) { Map<String, Object> itemmap = new HashMap<>(); - if ("1".equals(inquiryMode)){ + if ("1".equals(inquiryMode)) {//鍚堝苟娴佺▼鍗� itemmap.put("detail", flowCardMapper.selectPrintMp(flowCard.getOrderId())); - } else if ("3".equals(inquiryMode)) { + } else if ("3".equals(inquiryMode)) {//鍚堝苟娴佺▼鍗′笉鎸夐厤缃樉绀� itemmap.put("detail", flowCardMapper.selectPrintAllMp(flowCard.getOrderId())); - } else { + } else {//闈炲悎骞舵祦绋嬪崱 itemmap.put("detail", flowCardMapper.selectPrintNotMp(flowCard.getOrderId())); } @@ -271,56 +282,77 @@ private static Map<String, Object> parseJson(String json) { ObjectMapper objectMapper = new ObjectMapper(); try { - return objectMapper.readValue(json, new TypeReference<Map<String, Object>>() {}); + return objectMapper.readValue(json, new TypeReference<Map<String, Object>>() { + }); } catch (IOException e) { e.printStackTrace(); return null; } } - public Map<String, Object> getSelectPrintingSv(Map<String, Object> object, String printMerge, String printLike) { - if (printMerge == null){ - printMerge= ""; + + public Map<String, Object> getSelectPrintingSv(Map<String, Object> object, String printMerge, String printLike, String merge) { + if (printMerge == null) { + printMerge = ""; } - if (printLike == null){ - printLike= ""; + if (printLike == null) { + printLike = ""; + } + if (merge == null) { + merge = ""; } Map<String, Object> map = new HashMap<>(); 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> 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<>(); //娴佺▼鍗¤〃澶磋〃灏炬暟鎹� //鏄惁浼犲叆鍚堝苟灞傛暟 - if (printMerge.equals("")||printMerge.equals("null") ){ + if (printMerge.equals("") || printMerge.equals("null")) { //鏄惁鍖呭惈鍒囧壊 //boolean containsCutting = flowCard.getProcess().contains("鍒囧壊"); - String processSub=flowCard.getProcess().substring(0, 2); - if(processSub.equals("澶硅兌") || processSub.equals("涓┖")){ - itemmap.put("detail", flowCardMapper.getPrimaryListLimt(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess())); - - List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess()); - itemmap.put("detailList", detailList); - } - else { - itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess())); - - List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess()); - itemmap.put("detailList", detailList); - } - - } - else { - - //娴佺▼鍗℃槑缁嗘暟鎹� - if (printLike.equals("")||printLike.equals("null") ){ - itemmap.put("detail", flowCardMapper.getPrimaryListMerge(flowCard.getProcessId(), printMerge)); + String processSub = flowCard.getProcess().substring(0, 2); + //鑾峰彇宸ュ簭瀵瑰簲鐨勫埆绉� + 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()); itemmap.put("detailList", detailList); + } else { + if (merge.equals("1") && flowCard.getMerge().equals(1)) { + // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩� + if (processedKeys.contains(uniqueKey)) { + continue; + } + // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� + 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()); + itemmap.put("detailList", detailList); + } else { + itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId())); + + List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getProcess()); + itemmap.put("detailList", detailList); + } + } - else { - itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess())); + + } else { + //娴佺▼鍗℃槑缁嗘暟鎹� + if (printLike.equals("") || printLike.equals("null")) { + itemmap.put("detail", flowCardMapper.getPrimaryListMerge(flowCard.getProcessId(), printMerge, flowCard.getOrderId())); + + List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess()); + itemmap.put("detailList", detailList); + } else { + itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId())); List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), printMerge, flowCard.getProcess()); itemmap.put("detailList", detailList); @@ -348,7 +380,7 @@ } itemmap.put("processList", processList); - // itemmap.put("numberList", numberList); + // itemmap.put("numberList", numberList); itemmap.put("count", flowCardMapper.countFlowCard(flowCard.getOrderId())); itemmap.put("remarkList", flowCardMapper.remakList(flowCard.getProcessId())); list.add(itemmap); @@ -358,7 +390,108 @@ map.put("data", list); //鍒濆鍖栧�� - printLike=null; + printLike = null; + return map; + } + + public Map<String, Object> getSelectPrintProject(String printProject, String merge) { + + Map<String, Object> map = new HashMap<>(); + List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋� + if (merge == null) { + merge = ""; + } + List<FlowCard> flowCardList = flowCardMapper.getFlowCardListPrintProject(printProject); + if (!flowCardList.isEmpty()) { + 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); + //鑾峰彇宸ュ簭瀵瑰簲鐨勫埆绉� + 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()); + itemmap.put("detailList", detailList); + } else { + List<Map<String, Object>> detailList = flowCardMapper.getDetailLists(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(), flowCard.getOrderNumber()); + itemmap.put("detailList", detailList); + } + + } else { + + if (flowCard.getPatchState().equals(0)) { + if (merge.equals("1") && flowCard.getMerge().equals(1)) { + // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩� + if (processedKeys.contains(uniqueKey)) { + continue; + } + // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� + 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()); + itemmap.put("detailList", detailList); + } else { + itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId())); + List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getProcess()); + itemmap.put("detailList", detailList); + } + + } else { + itemmap.put("detail", flowCardMapper.getPrimaryLists(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess(), flowCard.getOrderId(), flowCard.getQuantity())); + List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikes(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getProcess(), printProject, flowCard.getQuantity()); + itemmap.put("detailList", detailList); + } + + + } + + + //宸ヨ壓娴佺▼ + //List<Map<String, Object>> processList = flowCardMapper.getProcessList(flowCard.getProcessId(), flowCard.getTechnologyNumber()); + String input = flowCard.getProcess(); + String delimiter = "->"; + + // 鍒嗗壊瀛楃涓� + String[] parts = input.split(delimiter); + + // 鍒涘缓 List<Map<String, Object>> + List<Map<String, Object>> processList = new ArrayList<>(); + + // 閬嶅巻鍒嗗壊鍚庣殑閮ㄥ垎骞跺皢鍏跺瓨鍏� List<Map<String, Object>> + for (int i = 0; i < parts.length; i++) { + Map<String, Object> maps = new HashMap<>(); + maps.put("id", i); // 娣诲姞涓�涓储寮曞瓧娈� + maps.put("process", parts[i]); // 娣诲姞瀹為檯鐨勫�� + + processList.add(maps); + } + + itemmap.put("processList", processList); + // itemmap.put("numberList", numberList); + + if (flowCard.getPatchState().equals(0)) { + itemmap.put("count", flowCardMapper.countFlowCard(flowCard.getOrderId())); + } else { + itemmap.put("count", flowCardList.size()); + } + itemmap.put("state", flowCard.getPatchState()); + itemmap.put("remarkList", flowCardMapper.remakList(flowCard.getProcessId())); + list.add(itemmap); + + } + } + + map.put("data", list); return map; } @@ -369,19 +502,33 @@ flowCardMapper.updateComposing(flowCard.getProcessId()); } return true; - } - else { + } else { return false; } } - public Map<String, Object> getSelectPrintLabelSv(String projectNo,String type) { + public Boolean updateProcessCardRack(Map<String, Object> object) { + List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("composing")), FlowCard.class); + if (!flowCardList.isEmpty()) { + for (FlowCard flowCard : flowCardList) { + flowCardMapper.updateProcessCardRack(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getRack()); + } + return true; + } else { + return false; + + } + } + + public Map<String, Object> getSelectPrintLabelSv(String projectNo, String type) { Map<String, Object> map = new HashMap<>(); - if(Objects.equals(type, "1")){ + if (Objects.equals(type, "1")) { map.put("data", flowCardMapper.getPrintLabel(projectNo)); } else if (Objects.equals(type, "2")) { map.put("data", flowCardMapper.getPrintLabel2(projectNo)); + } else if (Objects.equals(type, "3")) { + map.put("data", flowCardMapper.getPrintLabel3(projectNo)); } return map; @@ -389,21 +536,16 @@ public Map<String, Object> getSelectPrintLabelSv1(Map<String, Object> object) { Map<String, Object> map = new HashMap<>(); - - 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()) { - for (FlowCard flowCard : flowCardList) { - // Integer count=flowCardMapper.getPrintLabelCount(flowCard.getProcessId(), flowCard.getTechnologyNumber()); - Map<String, Object> itemmap = new HashMap<>(); - // for (int i = 0; i < count; i++) { - itemmap.put("data", flowCardMapper.getPrintLabel1(flowCard.getProcessId(), flowCard.getTechnologyNumber())); - list.add(itemmap); - //} - - } + 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()) { + for (FlowCard flowCard : flowCardList) { + Map<String, Object> itemmap = new HashMap<>(); + itemmap.put("data", flowCardMapper.getPrintLabel1(flowCard.getProcessId(), flowCard.getTechnologyNumber())); + list.add(itemmap); } - map.put("data", list); + } + map.put("data", list); return map; } @@ -415,13 +557,9 @@ List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); if (!flowCardList.isEmpty()) { for (FlowCard flowCard : flowCardList) { - // Integer count=flowCardMapper.getPrintLabelCount(flowCard.getProcessId(), flowCard.getTechnologyNumber()); Map<String, Object> itemmap = new HashMap<>(); - // for (int i = 0; i < count; i++) { itemmap.put("data", flowCardMapper.getPrintLabelDetail(flowCard)); list.add(itemmap); - //} - } } map.put("data", list); @@ -431,7 +569,7 @@ public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, String process, FlowCard flowCard) { Map<String, Object> map = new HashMap<>(); - map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber,process, flowCard)); + map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber, process, flowCard)); return map; } @@ -439,13 +577,12 @@ List<FlowCard> FlowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class); if (!FlowCardList.isEmpty()) { for (FlowCard flowCard : FlowCardList) { - // flowCardMapper.printSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort()); //鍒ゆ柇淇濆瓨鐨勬暟鎹槸鍚﹀凡瀛樺湪 - Integer count = flowCardMapper.printAddSortCountMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort(),flowCard.getProcess()); - if (count >0){ - flowCardMapper.printUpdateSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort(),flowCard.getProcess()); - }else { - flowCardMapper.printAddSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort(),flowCard.getProcess()); + Integer count = flowCardMapper.printAddSortCountMp(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getTechnologyNumber(), flowCard.getSort(), flowCard.getProcess()); + if (count > 0) { + flowCardMapper.printUpdateSortMp(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getTechnologyNumber(), flowCard.getSort(), flowCard.getProcess()); + } else { + flowCardMapper.printAddSortMp(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getTechnologyNumber(), flowCard.getSort(), flowCard.getProcess()); } } } @@ -458,28 +595,64 @@ 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 - if (lableType != 2){ + 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<>(); - itemmap.put("data", flowCardMapper.getPrintCustomData(flowCard.getProcessId(),flowCard.getTechnologyNumber())); + itemmap.put("data", flowCardMapper.getPrintCustomData(flowCard.getProcessId(), flowCard.getOrderNumber())); list.add(itemmap); // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� - processedProcessIds.add(processId); + processedKeys.add(uniqueKey); } - } - else{ + } else {//灏忕墖鏍囩 for (FlowCard flowCard : flowCardList) { Map<String, Object> itemmap = new HashMap<>(); - itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getProcess())); + itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess())); + list.add(itemmap); + } + } + } + map.put("data", list); + map.put("title", flowCardMapper.getPrintTitle(type)); + return map; + } + + public Map<String, Object> getSelectPrintCustomLabelSv2(String type, Integer lableType, Map<String, Object> object) { + Map<String, Object> map = new HashMap<>(); + 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> processedKeys = new HashSet<>(); + if (lableType != 2) {//鎴愬搧鏍囩 + for (FlowCard flowCard : flowCardList) { + String processId = flowCard.getProcessId(); + Integer orderNumber = flowCard.getOrderNumber(); + String uniqueKey = processId + "|" + orderNumber; // 鐢ㄧ壒娈婂瓧绗﹁繛鎺ラ槻姝㈠啿绐� + + // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩� + if (processedKeys.contains(uniqueKey)) { + continue; + } + Map<String, Object> itemmap = new HashMap<>(); + itemmap.put("data", flowCardMapper.getPrintCustomData2(flowCard.getProcessId())); + list.add(itemmap); + + // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� + processedKeys.add(uniqueKey); + } + } else {//灏忕墖鏍囩 + for (FlowCard flowCard : flowCardList) { + Map<String, Object> itemmap = new HashMap<>(); + itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess())); list.add(itemmap); } } @@ -491,7 +664,7 @@ public Object getCustomLabelDetailSv(String name, String form, String id, FlowCard flowCard) { Map<String, Object> map = new HashMap<>(); - map.put("data", flowCardMapper.getCustomLabelDetailMp(name, form,id, flowCard)); + map.put("data", flowCardMapper.getCustomLabelDetailMp(name, form, id, flowCard)); return map; } @@ -500,7 +673,7 @@ if (!flowCardList.isEmpty()) { for (FlowCard flowCard : flowCardList) { // 鏇存柊鎵撳嵃鐘舵�� - flowCardMapper.updatePrintStateMp(printState,flowCard.getProcessId(),flowCard.getTechnologyNumber()); + flowCardMapper.updatePrintStateMp(printState, flowCard.getProcessId(), flowCard.getTechnologyNumber()); } return true; } else { @@ -519,18 +692,18 @@ List<FlowCard> FlowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class); if (!FlowCardList.isEmpty()) { for (FlowCard flowCard : FlowCardList) { - flowCardMapper.printOrderSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort()); + flowCardMapper.printOrderSortMp(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getTechnologyNumber(), flowCard.getSort()); } } return true; } public Map<String, Object> getSelectPrintingRefundSv(Map<String, Object> object, String printMerge, String printLike, String mergeTechnologyNumber) { - if (printMerge == null){ - printMerge= ""; + if (printMerge == null) { + printMerge = ""; } - if (printLike == null){ - printLike= ""; + if (printLike == null) { + printLike = ""; } Map<String, Object> map = new HashMap<>(); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋� @@ -540,32 +713,32 @@ Map<String, Object> itemmap = new HashMap<>(); //娴佺▼鍗¤〃澶磋〃灏炬暟鎹� //鏄惁浼犲叆鍚堝苟灞傛暟 - if (printMerge.equals("")||printMerge.equals("null") ){ - itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),mergeTechnologyNumber,flowCard.getPatchReason())); - List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),flowCard.getPatchReason()); + if (printMerge.equals("") || printMerge.equals("null")) { + itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber, flowCard.getPatchReason(), flowCard.getOrderId())); + List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getOrderNumber(), flowCard.getReportingWorkId(), flowCard.getPatchReason()); itemmap.put("detailList", detailList); - } - else { + } else { //娴佺▼鍗℃槑缁嗘暟鎹� - if (printLike.equals("")||printLike.equals("null") ){ - itemmap.put("detail", flowCardMapper.getPrimaryListMergeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber())); + if (printLike.equals("") || printLike.equals("null")) { + itemmap.put("detail", flowCardMapper.getPrimaryListMergeRefund(flowCard.getProcessId(), printMerge, flowCard.getOrderNumber(), flowCard.getOrderId())); - List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), flowCard.getPatchReason()); + List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getOrderNumber(), flowCard.getReportingWorkId(), flowCard.getPatchReason()); itemmap.put("detailList", detailList); - } - else { - itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber, flowCard.getPatchReason())); + } else { + itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber, flowCard.getPatchReason(), flowCard.getOrderId())); - List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber(),flowCard.getReportingWorkId()); + List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRefund(flowCard.getProcessId(), printMerge, flowCard.getOrderNumber(), flowCard.getReportingWorkId()); itemmap.put("detailList", detailList); } } //宸ヨ壓娴佺▼ 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); @@ -573,16 +746,16 @@ } map.put("data", list); //鍒濆鍖栧�� - printLike=null; + printLike = null; return map; } public Map<String, Object> getSelectPrinReworkSv(Map<String, Object> object, String printMerge, String printLike) { - if (printMerge == null){ - printMerge= ""; + if (printMerge == null) { + printMerge = ""; } - if (printLike == null){ - printLike= ""; + if (printLike == null) { + printLike = ""; } Map<String, Object> map = new HashMap<>(); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋� @@ -592,24 +765,22 @@ Map<String, Object> itemmap = new HashMap<>(); //娴佺▼鍗¤〃澶磋〃灏炬暟鎹� //鏄惁浼犲叆鍚堝苟灞傛暟 - if (printMerge.equals("")||printMerge.equals("null") ){ - itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId())); - List<Map<String, Object>> detailList = flowCardMapper.getDetailListRework(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId()); + if (printMerge.equals("") || printMerge.equals("null")) { + itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getOrderNumber(), flowCard.getReportingWorkId(), flowCard.getOrderId())); + List<Map<String, Object>> detailList = flowCardMapper.getDetailListRework(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getOrderNumber(), flowCard.getReportingWorkId()); itemmap.put("detailList", detailList); - } - else { + } else { //娴佺▼鍗℃槑缁嗘暟鎹� - if (printLike.equals("")||printLike.equals("null") ){ - itemmap.put("detail", flowCardMapper.getPrimaryListMergeRework(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber())); + if (printLike.equals("") || printLike.equals("null")) { + itemmap.put("detail", flowCardMapper.getPrimaryListMergeRework(flowCard.getProcessId(), printMerge, flowCard.getOrderNumber(), flowCard.getOrderId())); - List<Map<String, Object>> detailList = flowCardMapper.getDetailListRework(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId()); + List<Map<String, Object>> detailList = flowCardMapper.getDetailListRework(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getOrderNumber(), flowCard.getReportingWorkId()); itemmap.put("detailList", detailList); - } - else { - itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId())); + } else { + itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getOrderNumber(), flowCard.getReportingWorkId(), flowCard.getOrderId())); - List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRework(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber(),flowCard.getReportingWorkId()); + List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRework(flowCard.getProcessId(), printMerge, flowCard.getOrderNumber(), flowCard.getReportingWorkId()); itemmap.put("detailList", detailList); } } @@ -625,22 +796,24 @@ } map.put("data", list); //鍒濆鍖栧�� - printLike=null; + printLike = null; return map; } - public Object selectPrintDetailsSv(Map<String, Object> object, String inquiryMode,Integer type) { + public Object selectPrintDetailsSv(Map<String, Object> object, String inquiryMode, Integer type) { Map<String, Object> map = new HashMap<>(); 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()) { for (FlowCard flowCard : flowCardList) { Map<String, Object> itemmap = new HashMap<>(); - if(type==1){ - itemmap.put("detail", flowCardMapper.selectPrintDetailsMp(flowCard.getOrderId())); - }else if(type==2){ - itemmap.put("detail", flowCardMapper.selectPrintDetailsMp1(flowCard.getOrderId())); - } + if (type == 1) {//鏄庣粏鎵撳嵃 + itemmap.put("detail", flowCardMapper.selectPrintDetailsMp(flowCard.getOrderId())); + } else if (type == 2) {//鏄庣粏鍒嗘灦鎵撳嵃 + itemmap.put("detail", flowCardMapper.selectPrintDetailsMp1(flowCard.getOrderId())); + }else if (type == 3) {//璁㈠崟鎵撳嵃 + itemmap.put("detail", flowCardMapper.selectPrintDetailsMp2(flowCard.getOrderId())); + } list.add(itemmap); } @@ -655,30 +828,37 @@ 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){ + 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 (processedKeys.contains(uniqueKey)) { + continue; + } + Map<String, Object> itemmap = new HashMap<>(); + itemmap.put("data", flowCardMapper.getPrintCustomDataDetails(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getPrintQuantity())); + list.add(itemmap); - // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� processId锛屽鏋滃鐞嗚繃鍒欒烦杩� - if (processedProcessIds.contains(processId)&&processedProcessIds.contains(orderNumber)) { - continue; - } - Map<String, Object> itemmap = new HashMap<>(); - itemmap.put("data", flowCardMapper.getPrintCustomDataDetails(flowCard.getProcessId(),flowCard.getOrderNumber())); - list.add(itemmap); + // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� + processedKeys.add(uniqueKey); + } else{ - // 灏嗚 processId 鍔犲叆宸插鐞嗛泦鍚� - processedProcessIds.add(processId); - processedProcessIds.add(orderNumber); + Map<String, Object> itemmap = new HashMap<>(); + itemmap.put("data", flowCardMapper.getPrintOrderDataDetails(flowCard.getOrderId(), flowCard.getOrderNumber(), flowCard.getPrintQuantity())); + list.add(itemmap); + } + } - } - else{ + } else {//灏忕墖鏍囩 for (FlowCard flowCard : flowCardList) { Map<String, Object> itemmap = new HashMap<>(); - itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getProcess())); + itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess())); list.add(itemmap); } } @@ -714,21 +894,27 @@ } - public String mergeFlowCard(Map<String, Object> object) { - String returns= "false"; + 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()); - 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); - returns="true"; + List<Map<String, Object>> flowCardList1 = flowCardMapper.selectFlowCardMerge(flowCardList.get(0).getProcessId()); + 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"; } - } @@ -737,18 +923,21 @@ } - public List<FlowCard> getProcessCard(Map<String, String> processCards) { + public List<FlowCard> getProcessCard(Map<String, String> processCards) { String processCard = processCards.get("processCard"); - if(!processCard.contains("/")){ + if (!processCard.contains("/")) { throw new ServiceException(Constants.Code_600, "閿欒鐨勬祦绋嬪崱鍙凤紝璇锋鏌�!"); } String[] processCardList = processCard.split("/"); + List<String> result = IntStream.range(0, processCardList[1].length()) + .mapToObj(i -> String.valueOf(processCardList[1].charAt(i))) + .collect(Collectors.toList()); List<FlowCard> flowCardList = flowCardMapper.selectList( new QueryWrapper<FlowCard>() .eq("process_id", processCardList[0]) - .eq("technology_number", processCardList[1]) + .in("technology_number", result) ); for (FlowCard flowCard : flowCardList) { flowCard.setOrderGlassDetail( @@ -778,39 +967,40 @@ userId = object.get("userId").toString(); } List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("composing")), FlowCard.class); - for (FlowCard flowCard : flowCardList) { - Integer count = flowCardMapper.reportingWorkCount(flowCard.getProcessId()); - if (count == 0) { - //淇敼鍒嗘灦鐘舵�� - flowCardMapper.updateDeleteState(flowCard.getOrderId(), flowCard.getProcessId()); - //鍒犻櫎鎶ュ伐娴佺▼鏄庣粏琛ㄦ暟鎹� - flowCardMapper.deleteReportingWork(flowCard.getProcessId()); - //鍒犻櫎鍒嗘灦鏄庣粏 - flowCardMapper.deleteFlowCardMp(flowCard.getOrderId(), flowCard.getProcessId()); - //鍒犻櫎鎺掑簭琛ㄦ暟鎹� - flowCardMapper.deleteflowCardSort(flowCard.getOrderId(), flowCard.getProcessId()); - //鍒ゆ柇璇ヨ鍗曟祦绋嬪崱鏄惁鍏ㄩ儴鍒犻櫎 - Integer flowNumber = flowCardMapper.selectFlowCardCount(flowCard.getOrderId()); - if (flowNumber == 0) { - //淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬佷负0,鍏ㄩ儴鍒犻櫎 - flowCardMapper.updateProcessingCard(flowCard.getOrderId(), 0); - } else { - //淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬佷负1,鍒犻櫎閮ㄥ垎 - flowCardMapper.updateProcessingCard(flowCard.getOrderId(), 1); - } - - //淇濆瓨鏃ュ織 - Log log = new Log(); - log.setContent(flowCard.getOrderId()+flowCard.getProcessId()); - log.setFunction("checkboxDeleteSv娴佺▼鍗″垹闄�"); - log.setOperatorId(userId); - log.setOperator(userName); - logService.saveLog(log); + for (FlowCard flowCard : flowCardList) { + //鏌ヨ鏄惁鎶ュ伐 + Integer count = flowCardMapper.reportingWorkCount(flowCard.getProcessId()); + if (count == 0) { + //淇敼鍒嗘灦鐘舵�� + flowCardMapper.updateDeleteState(flowCard.getOrderId(), flowCard.getProcessId()); + //鍒犻櫎鎶ュ伐娴佺▼鏄庣粏琛ㄦ暟鎹� + flowCardMapper.deleteReportingWork(flowCard.getProcessId()); + //鍒犻櫎鍒嗘灦鏄庣粏 + flowCardMapper.deleteFlowCardMp(flowCard.getOrderId(), flowCard.getProcessId()); + //鍒犻櫎鎺掑簭琛ㄦ暟鎹� + flowCardMapper.deleteflowCardSort(flowCard.getOrderId(), flowCard.getProcessId()); + //鍒ゆ柇璇ヨ鍗曟祦绋嬪崱鏄惁鍏ㄩ儴鍒犻櫎 + Integer flowNumber = flowCardMapper.selectFlowCardCount(flowCard.getOrderId()); + if (flowNumber == 0) { + //淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬佷负0,鍏ㄩ儴鍒犻櫎 + flowCardMapper.updateProcessingCard(flowCard.getOrderId(), 0); } else { - return false; + //淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬佷负1,鍒犻櫎閮ㄥ垎 + flowCardMapper.updateProcessingCard(flowCard.getOrderId(), 1); } + + //淇濆瓨鏃ュ織 + Log log = new Log(); + log.setContent(flowCard.getOrderId() + flowCard.getProcessId()); + log.setFunction("checkboxDeleteSv娴佺▼鍗″垹闄�"); + log.setOperatorId(userId); + log.setOperator(userName); + logService.saveLog(log); + } else { + return false; } - return true; + } + return true; } @@ -821,22 +1011,252 @@ return map; } - public Map<String, Object> getPrintCustomDataProjectNoDetailSv(String type, Map<String, Object> object) { + public Map<String, Object> getPrintCustomDataProjectNoDetailSv(String type, Integer detailType, Map<String, Object> object) { Map<String, Object> map = new HashMap<>(); 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<>(); - itemmap.put("data", flowCardMapper.getPrintCustomDataProjectDetail(flowCard.getProjectNo(),flowCard.getStockId())); - list.add(itemmap); + for (FlowCard flowCard : flowCardList) { + Map<String, Object> itemmap = new HashMap<>(); + //鏄惁鏄伐绋嬫槑缁嗘墦鍗� + if (detailType == 0) {//宸ョ▼鎵撳嵃鏄庣粏 + itemmap.put("data", flowCardMapper.getPrintCustomDataProjectDetail(flowCard.getProjectNo(), flowCard.getStockId())); + } + //闈炲伐绋嬫墦鍗� + else if (detailType == 1) { + itemmap.put("data", flowCardMapper.getPrintCustomDataProject(flowCard.getProjectNo())); + + } else { + itemmap.put("data", flowCardMapper.getPrintCustomDataProject(flowCard.getProjectNo())); + + } + list.add(itemmap); + } } map.put("data", list); map.put("title", flowCardMapper.getPrintTitle(type)); return map; } + + public Boolean updateProcessSv(String processId, String technologyNumber, String orderId, String Orderprocess, Map<String, Object> object) { + + //鍒ゆ柇璇ユ祦绋嬪崱鏄惁鎶ュ伐 + Integer count = flowCardMapper.reportingWorkCount(processId); + if (count == 0) { + //鍒犻櫎灏忕墖宸ヨ壓琛ㄥ搴旂殑鏁版嵁 + flowCardMapper.deleteProcessMp(processId, technologyNumber); + //閲嶆柊鎻掑叆淇敼濂藉伐鑹烘祦绋嬪崱鐨勬暟鎹� + List<String> newCraftList = (List<String>) object.get("newCraft"); + List<String> numberList = (List<String>) object.get("technologyNumber"); + // 鍒ゆ柇 newCraftList 鏄惁涓虹┖ + if (newCraftList != null) { + for (String number : numberList) { + //淇敼璁㈠崟灏忕墖琛ㄥ伐鑹烘祦绋� + flowCardMapper.updateOrderProcessMp(orderId, number, technologyNumber, Orderprocess); + for (String process : newCraftList) { + flowCardMapper.updateProcessMp(processId, technologyNumber, process, number); + } + } + } + + return true; + } else { + return false; + } + + + } + + public Integer updateProjectLabelPrintCount(String projectNo) { + flowCardMapper.updateProjectLabelPrintCount(projectNo); + return flowCardMapper.selectProjectLabelPrintCount(projectNo); + } + + public Integer updateProjectProcessPrintCount(String projectNo) { + flowCardMapper.updateProjectProcessPrintCount(projectNo); + return flowCardMapper.selectProjectProcessPrintCount(projectNo); + } + + + public Map<String, Object> flowCardDetail(Map<String, Object> object) { + + Map<String, Object> map = new HashMap<>(); + 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()) { + + for (FlowCard flowCard : flowCardList) { + Map<String, Object> itemmap = new HashMap<>(); + itemmap.put("detail", flowCardMapper.getFlowCardDetail(flowCard.getProcessId())); + list.add(itemmap); + + } + } + + map.put("data", list); + return map; + } + + public Object processCardAutoRack(Map<String, Object> object) { + String orderId = object.get("orderId").toString(); + String productionId = object.get("productionId").toString(); + Integer inMaxQuantity = Integer.parseInt(object.get("inMaxQuantity").toString()); + Float inWeight = Float.parseFloat(object.get("inWeight").toString()); + Float shelfThickness = Float.parseFloat(object.get("shelfThickness").toString()); + Float spacerThickness = Float.parseFloat(object.get("spacerThickness").toString()); + Float inLenMax = Float.parseFloat(object.get("inLenMax").toString()); + Float inLenMin = Float.parseFloat(object.get("inLenMin").toString()); + Float inShortMax = Float.parseFloat(object.get("inShortMax").toString()); + Float inShortMin = Float.parseFloat(object.get("inShortMin").toString()); + + /*String orderId = "NG25000004"; + String productionId = "NG25000004A"; + Integer inMaxQuantity = 1; + Float inWeight = 4000.0f; + Float shelfThickness = 2000.0f; + Float maxHeight = 1520.0f; + Float maxWid = 400.0f; + Float spacerThickness = 0.0f;//鍨墖鍘氬害*/ + + + Map<String, Object> thickness = flowCardMapper.getGlassThicknessByProdutionId(orderId, productionId); + + //鎴愬搧鐜荤拑鎬诲帤搴� + Float glassTotalThickness = Float.parseFloat(thickness.get("totalThickness").toString()); + //鎴愬搧鐜荤拑鍘氬害 + Float glassThickness = Float.parseFloat(thickness.get("thickness").toString()); + + //鑾峰彇姝ゅ伐绋嬪彿璁㈠崟鏄庣粏淇℃伅 + List<OrderDetail> orderDetails = flowCardMapper.getOrderDetailByProductionId(orderId, productionId,"scope",inLenMax,inLenMin,inShortMax,inShortMin,glassThickness); + List<OrderDetail> orderDetailsNotScope = flowCardMapper.getOrderDetailByProductionId(orderId, productionId,"notScope",inLenMax,inLenMin,inShortMax,inShortMin,glassThickness); + + //鏍规嵁鐜荤拑鍘氬害鍜屽灚鐗囧帤搴﹀綋鍓嶆灦瀛愭渶澶у彲鏀炬暟閲� + Integer shelfMaxQuantityByThickness = (int) (shelfThickness / (glassTotalThickness + spacerThickness)); + + //鐢ㄤ簬鎺ユ敹鏈�缁堢敓鎴愮殑娴佺▼鍗� + List<OrderDetail> orderDetailList = new ArrayList<>(); + + //娴佺▼鍗¤嚜澧炵鍙� + int flowCardNo = 1; + // 褰撳墠鏋跺瓙鍓╀綑鍙斁鏁伴噺 + Integer shelfQuantity = 0; + for (OrderDetail orderDetail : orderDetails) { + //鏋跺瓙鏍规嵁灏哄閲嶉噺鏈�澶ц兘鏀惧灏� + int shelfQuantityByWeight = (int) (inWeight / + (orderDetail.getHeight() + * orderDetail.getWidth() + * glassThickness + * 2.5 / 1000000) + ); + //褰撳墠璁㈠崟鏄庣粏鍓╀綑鏁伴噺 + if (shelfQuantity == 0) { + shelfQuantity =Math.min( Math.min(shelfMaxQuantityByThickness,inMaxQuantity),shelfQuantityByWeight); + }else if(shelfQuantity>0){//鏋跺瓙鍓╀綑鏁伴噺澶т簬0鏃讹紝鍒ゆ柇褰撳墠鏋跺瓙鍓╀綑閲嶉噺锛屾槸鍚︽敮鎸佹渶鏂板簭鍙风殑鐨勬垚鍝侀噸閲� + String FlowCardId = orderDetailList.get(orderDetailList.size() - 1).getProcessId(); + double flowCardWeight = 0.0; + for (OrderDetail orderDetail1 : orderDetailList) { + if (orderDetail1.getProcessId().equals(FlowCardId)) { + flowCardWeight += orderDetail1.getHeight()*orderDetail1.getQuantity()* orderDetail1.getWidth()* glassThickness* 2.5 / 1000000; + } + } + if(flowCardWeight>0){ + flowCardWeight = inWeight - flowCardWeight; + //鎸夌収褰撳墠娴佺▼鍗″墿浣欓噸閲忥紝璁$畻褰撳墠娴佺▼鍗″墿浣欐暟閲� + int remainingQuantity = (int) (flowCardWeight / + (orderDetail.getHeight() + * orderDetail.getWidth() + * glassThickness + * 2.5 / 1000000)); + shelfQuantity =Math.min(Math.min(Math.min(shelfQuantityByWeight, Math.min(inMaxQuantity, shelfMaxQuantityByThickness)),shelfQuantity),remainingQuantity); + if (shelfQuantity == 0) { + shelfQuantity = Math.min(shelfQuantityByWeight, Math.min(inMaxQuantity, shelfMaxQuantityByThickness)); + flowCardNo += 1; + } + } + + } + //鍙栨渶灏忓�� + //Integer maxQuantity = 0; + while (orderDetail.getQuantity() > 0) { + OrderDetail newOrderDetail = new OrderDetail(); + //褰撴寰幆涓紝褰撳墠鏋跺瓙鍓╀綑鏁伴噺涓�0鏃讹紝閲嶆柊璁$畻鏋跺瓙鍓╀綑鏁伴噺 + if (shelfQuantity == 0) { + shelfQuantity = Math.min(Math.min(shelfMaxQuantityByThickness,inMaxQuantity),shelfQuantityByWeight); + } + String processId = productionId + String.format("%03d", flowCardNo); + //鍙栨渶灏忓�� + //maxQuantity = Math.min(shelfQuantity, Math.min(inMaxQuantity, shelfMaxQuantityByThickness)); + //maxQuantity = Math.min(shelfQuantity, shelfMaxQuantityByThickness); + + /*System.out.println("璁㈠崟搴忓彿锛�"+orderDetail.getOrderNumber()); + System.out.println(shelfQuantity + "," + "," + shelfMaxQuantityByThickness); + System.out.println(flowCardNo + "," + maxQuantity); + System.out.println("------");*/ + if(shelfQuantity<=0){ + return false; + } + + if (orderDetail.getQuantity() > shelfQuantity) { + newOrderDetail.setProcessId(processId); + newOrderDetail.setQuantity(Long.valueOf(shelfQuantity)); + newOrderDetail.setHeight(orderDetail.getHeight()); + newOrderDetail.setWidth(orderDetail.getWidth()); + newOrderDetail.setOrderNumber(orderDetail.getOrderNumber()); + newOrderDetail.setShape(orderDetail.getShape()); + 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 { + newOrderDetail.setProcessId(processId); + newOrderDetail.setQuantity(orderDetail.getQuantity()); + newOrderDetail.setHeight(orderDetail.getHeight()); + newOrderDetail.setWidth(orderDetail.getWidth()); + 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()); + if (shelfQuantity == 0) { + flowCardNo += 1; + } + orderDetail.setQuantity(0L); + } + } + + } + Map<String, Object> map = new HashMap<>(); + Collections.reverse(orderDetailList); + map.put("orderDetailList", orderDetailList); + map.put("orderDetailsNotScope", orderDetailsNotScope); + return map; + } + + + public Boolean revokeComposingSv(Map<String, Object> object) { + List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("composing")), FlowCard.class); + if (!flowCardList.isEmpty()) { + for (FlowCard flowCard : flowCardList) { + //鑾峰彇娌℃湁宸ョ▼鍙风殑鏉℃暟锛屽凡鐢熸垚宸ョ▼鍙蜂笉鑳芥挙鍥� + Integer count = flowCardMapper.selectProjectNo(flowCard.getProcessId()); + if (count == 0){ + flowCardMapper.revokeComposing(flowCard.getProcessId()); + } else { + return false; + } + + } + return true; + } else { + return false; + + } + } } -- Gitblit v1.8.0