| | |
| | | } |
| | | glassOptimizeMapper.addOptimizeDetail(objectMap2,projectId); |
| | | } |
| | | glassOptimizeMapper.updateProjectOptimizeStateMp(projectId,1); |
| | | |
| | | glassOptimizeMapper.updateProjectOptimize(projectId, 1, optimalResults); |
| | | return true; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | } |
| | | |
| | | |
| | | public Boolean updateOptimizeResult(Map<String, Object> object,String processId){ |
| | | public Boolean updateOptimizeResult(Map<String, Object> object, String processId) { |
| | | try { |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | |
| | | List<Map<String, Object>> objectMapList = (List<Map<String, Object>>) object.get("layouts"); |
| | | |
| | | Map<String, Object> glassInfo = glassOptimizeMapper.getGlassInfo(processId); |
| | | |
| | | for (Map<String, Object> objectMap : objectMapList) { |
| | | List<Map<String, Object>> objectMap2 = (List<Map<String, Object>>) objectMap.get("glassDetails"); |
| | | |
| | | // 分离 glassDetails 为两部分 |
| | | List<Map<String, Object>> normalDetails = new ArrayList<>(); // isRemain 为 false 的部分 |
| | | List<Map<String, Object>> offCutDetails = new ArrayList<>(); // isRemain 为 true 的部分 |
| | | |
| | | for (Map<String, Object> detail : objectMap2) { |
| | | boolean isRemain = false; |
| | | if (detail.containsKey("isRemain")) { |
| | | Object isRemainObj = detail.get("isRemain"); |
| | | if (isRemainObj != null) { |
| | | if (isRemainObj instanceof Number) { |
| | | // 数字类型: 1表示true,0表示false |
| | | isRemain = ((Number) isRemainObj).intValue() == 1; |
| | | } else if (isRemainObj instanceof Boolean) { |
| | | // 布尔类型 |
| | | isRemain = (Boolean) isRemainObj; |
| | | } else { |
| | | // 字符串类型: "1"/"true"表示true,"0"/"false"表示false |
| | | String isRemainStr = isRemainObj.toString().toLowerCase(); |
| | | isRemain = "1".equals(isRemainStr) || "true".equals(isRemainStr); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (isRemain) { |
| | | offCutDetails.add(detail); |
| | | } else { |
| | | normalDetails.add(detail); |
| | | } |
| | | } |
| | | |
| | | // 保存所有数据到 optimize_detail |
| | | if (!normalDetails.isEmpty()) { |
| | | for (Map<String, Object> detail : normalDetails) { |
| | | glassOptimizeMapper.updateNormalDetails(detail, processId); |
| | | } |
| | | } |
| | | |
| | | // 例如对 remainDetails 部分先删除 offcut 再处理 |
| | | if (!offCutDetails.isEmpty()) { |
| | | glassOptimizeMapper.deleteOffcutDetails(processId); |
| | | if (glassInfo != null) { |
| | | String glassType = (String) glassInfo.get("glass_type"); |
| | | String glassThickness = (String) glassInfo.get("glass_thickness"); |
| | | // 余料存入optimizeoffcut |
| | | for (Map<String, Object> detail : offCutDetails) { |
| | | glassOptimizeMapper.addUpdateOffcut(detail, processId, glassType, glassThickness); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // 更新优化结果文件 |
| | | String jsonString = mapper.writeValueAsString(object); |
| | | glassOptimizeMapper.updateOptimizeResult(jsonString,processId); |
| | | glassOptimizeMapper.updateOptimizeResult(jsonString, processId); |
| | | |
| | | return true; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | } |
| | | |
| | | //修改排版状态 |
| | | public Boolean updateProjectState(String projectNumber, Integer state,Integer states, Integer code) { |
| | | public Boolean updateProjectState(String projectNumber, Integer state,Integer states, Integer code) throws JsonProcessingException { |
| | | if (!projectNumber.isEmpty()) { |
| | | //撤销模拟计算 |
| | | if(code==1){ |
| | |
| | | } |
| | | //允许生产 |
| | | else if(code==3){ |
| | | glassOptimizeMapper.updateProjectStateMp(projectNumber, state); |
| | | Boolean isSeccess = issuingProjects(projectNumber); |
| | | if(isSeccess){ |
| | | glassOptimizeMapper.updateProjectStateMp(projectNumber, state); |
| | | }else{ |
| | | return false; |
| | | } |
| | | } |
| | | //生产不可见 |
| | | else if(code==4){ |