修改优化数据保存位置,将数据更新到optimize_Detail和optimize_layout中,并将余料数据更新到optimize_offcut中,解决工程管理界面数据显示异常问题
| | |
| | | produceList.value = produceList.value.concat(deepClone(res.data.data)) |
| | | xGrid.value.reloadData(produceList.value); |
| | | gridOptions.loading = false; |
| | | console.log('工程管理表格数据',produceList.value); |
| | | } else { |
| | | ElMessage.warning(res.msg); |
| | | } |
| | |
| | | List<Map<String,Object>> selectOptimizeDetail(String projectNo); |
| | | |
| | | List<Map<String,Object>> selectFlowCardInfoList(String projectNo); |
| | | |
| | | |
| | | Map<String, Object> getGlassInfo(String projectId); |
| | | |
| | | void addOptimizeOffcut(Map<String, Object> map, String projectId, String glassType, String glassThickness); |
| | | } |
| | |
| | | List<Map<String, Object>> originalFilm = (List<Map<String, Object>>) object.get("originalFilm"); |
| | | glassOptimizeMapper.addOptimizeUse(originalFilm,projectId,"admin"); |
| | | |
| | | Map<String, Object> glassInfo = glassOptimizeMapper.getGlassInfo(projectId); |
| | | |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | String json = mapper.writeValueAsString(optimalResults); |
| | | glassOptimizeMapper.addOptimizeProjectFile(json,projectId,"admin"); |
| | |
| | | glassOptimizeMapper.addOptimizeLayout(objectMapList,projectId); |
| | | for(Map<String, Object> objectMap:objectMapList){ |
| | | List<Map<String, Object>> objectMap2 = (List<Map<String, Object>>) objectMap.get("glassDetails"); |
| | | //迭代玻璃明细集合删除余料 |
| | | //迭代玻璃明细集合处理余料和其他 |
| | | Iterator<Map<String, Object>> iterator = objectMap2.iterator(); |
| | | while (iterator.hasNext()) { |
| | | Map<String, Object> map = iterator.next(); |
| | | if (map.get("isRemain").toString()=="true") { |
| | | iterator.remove(); |
| | | // 修改isRemain判断逻辑,支持数字0/1和字符串"0"/"1" |
| | | boolean isRemain = false; |
| | | if (map.containsKey("isRemain")) { |
| | | Object isRemainObj = map.get("isRemain"); |
| | | if (isRemainObj != null) { |
| | | if (isRemainObj instanceof Number) { |
| | | // 数字类型: 1表示true,0表示false |
| | | isRemain = ((Number) isRemainObj).intValue() == 1; |
| | | } else { |
| | | // 字符串类型: "1"表示true,"0"表示false |
| | | isRemain = "1".equals(isRemainObj.toString()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (isRemain) { |
| | | System.out.println( map); |
| | | if (glassInfo != null) { |
| | | String glassType = (String) glassInfo.get("glass_type"); |
| | | String glassThickness = (String) glassInfo.get("glass_thickness"); |
| | | // 余料存入optimizeoffcut |
| | | glassOptimizeMapper.addOptimizeOffcut(map, projectId, glassType, glassThickness); |
| | | } |
| | | iterator.remove(); // 从原列表中移除 |
| | | }else { |
| | | // 处理isRotate字段转换 (现在是0/1) |
| | | if (map.containsKey("isRotate")) { |
| | | Object isRotateObj = map.get("isRotate"); |
| | | if (isRotateObj != null) { |
| | | if (isRotateObj instanceof Number) { |
| | | // 直接使用数字值 |
| | | map.put("isRotate", ((Number) isRotateObj).intValue()); |
| | | } else { |
| | | // 字符串形式的"0"/"1" |
| | | String isRotateStr = isRotateObj.toString(); |
| | | if ("1".equals(isRotateStr)) { |
| | | map.put("isRotate", 1); |
| | | } else { |
| | | map.put("isRotate", 0); |
| | | } |
| | | } |
| | | } else { |
| | | map.put("isRotate", 0); // 默认值 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | from pp.optimize_project as p |
| | | left join pp.optimize_admin as a on p.creater = a.Id |
| | | where (`p`.`state` > 0) |
| | | and (tempering_state>0 or optimize_state>0) |
| | | # and (tempering_state>0 or optimize_state>0) |
| | | and DATE (`p`.`create_time`) BETWEEN #{startSelectTime} AND #{endSelectTime} |
| | | <if test="optimizeProjectMange.projectNumber != null and optimizeProjectMange.projectNumber != ''"> |
| | | and p.project_no regexp #{optimizeProjectMange.projectNumber} |
| | |
| | | y_axis, |
| | | patch_state, |
| | | mark_icon, |
| | | isRotate, |
| | | rack_no |
| | | ) VALUES ( |
| | | #{projectId}, |
| | |
| | | #{glass.y}, |
| | | #{glass.patchState}, |
| | | #{glass.markIcon}, |
| | | #{glass.isRotate}, |
| | | #{glass.rackNo} |
| | | ); |
| | | </foreach> |
| | |
| | | now() |
| | | ); |
| | | </foreach> |
| | | </insert> |
| | | <insert id="addOptimizeOffcut"> |
| | | INSERT INTO pp.optimize_offcut ( |
| | | project_no, |
| | | stock_id, |
| | | width, |
| | | height, |
| | | x_axis, |
| | | y_axis, |
| | | model, |
| | | thickness |
| | | ) VALUES ( |
| | | #{projectId}, |
| | | #{map.stockSort}, |
| | | #{map.width}, |
| | | #{map.height}, |
| | | #{map.x}, |
| | | #{map.y}, |
| | | #{glassType}, |
| | | #{glassThickness} |
| | | |
| | | ) |
| | | </insert> |
| | | |
| | | |
| | |
| | | where |
| | | project_no =#{projectNo} |
| | | </select> |
| | | |
| | | |
| | | <select id="getGlassInfo" resultType="java.util.Map"> |
| | | select |
| | | project_no, |
| | | glass_type, |
| | | glass_thickness |
| | | from |
| | | pp.optimize_project |
| | | where |
| | | project_no = #{projectId} |
| | | </select> |
| | | |
| | | |
| | | </mapper> |