于杰
2025-11-03 57e3516a780e637d3fb8b90c6c8d70310379b631
新增 保存优化结果时,保存模拟计算炉号等数据
3个文件已修改
44 ■■■■ 已修改文件
north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
@@ -233,4 +233,6 @@
    String selectConfigByUserAndType(String username, int type);
    void insertOptimizeConfig(String json, int type, String userName, String configName);
    Map<String, Object> getGlassProjectList(String projectId);
}
north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
@@ -270,6 +270,9 @@
            List<Map<String, Object>> objectMapList = (List<Map<String, Object>>) optimalResults.get("layouts");
            glassOptimizeMapper.addOptimizeLayout(objectMapList,projectId);
            // 收集所有需要保存的玻璃明细数据
            List<Map<String, Object>> allGlassDetails = new ArrayList<>();
            for(Map<String, Object> objectMap:objectMapList){
                List<Map<String, Object>> objectMap2 = (List<Map<String, Object>>) objectMap.get("glassDetails");
                //迭代玻璃明细集合处理余料和其他
@@ -346,7 +349,23 @@
                        }
                    }
                }
                glassOptimizeMapper.addOptimizeDetail(objectMap2,projectId);
                // 将当前批次的玻璃明细添加到总列表中
                allGlassDetails.addAll(objectMap2);
            }
            Map<String, Object> projectInfo = glassOptimizeMapper.getGlassProjectList(projectId);
            if (projectInfo != null && Integer.parseInt(projectInfo.get("tempering_state").toString()) == 1) {
                // tempering_state 为 1 时的处理逻辑
                glassOptimizeMapper.addOptimizeDetail(allGlassDetails,projectId);
                List<OptimizeHeatDetail> optimizeHeatDetail = glassOptimizeMapper.selectOptimizeHeatDetail(projectId);
                for (OptimizeHeatDetail projectdetail:optimizeHeatDetail){
                    OptimizeDetail optimizeDetail=glassOptimizeMapper.selectOptimizeDetailById(projectId,projectdetail.getProcessId(),
                            projectdetail.getOrderSort(),projectdetail.getLayer());
                    glassOptimizeMapper.updateOptimizeDetail(optimizeDetail.getId(),projectdetail.getLayoutId(),projectdetail.getSort());
                }
            } else {
                // tempering_state 为 0 时的处理逻辑
                glassOptimizeMapper.addOptimizeDetail(allGlassDetails,projectId);
            }
            glassOptimizeMapper.updateProjectOptimize(projectId, 1, optimalResults);
@@ -1177,7 +1196,7 @@
        boolean  saveState=false;
        try {
            // 1. 创建URL对象
            URL url = new URL("http://localhost:88/api/loadGlass/engineering/importEngineer");
            URL url = new URL("http://10.153.19.31:88/api/loadGlass/engineering/importEngineer");
            // 2. 打开连接
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -1251,10 +1251,10 @@
            order_sort,
            stock_id,
            polys_id,
            o_width,
            o_height,
            p_width,
            p_height,
            width,
            height,
            x_axis,
            y_axis,
            patch_state,
@@ -1463,7 +1463,7 @@
    <update id="updateOptimizeDetail">
        update pp.optimize_detail
        set heat_layout_id=#{layoutId},heat_layout_sort=#{sort},glass_id=concat(process_id,'|',#{layoutId},'|',#{sort})
        set heat_layout_id=#{layoutId},heat_layout_sort=#{sort}
        where id=#{id};
    </update>
@@ -1920,8 +1920,8 @@
    <select id="getOptimizeDetailsInfo" resultType="java.util.Map">
        SELECT
            0 AS isRemain,
            od.width AS realWidth,
            od.height AS realHeight,
            od.o_width AS realWidth,
            od.o_height AS realHeight,
            od.p_width AS width,
            od.p_height AS height,
            od.process_id AS processId,
@@ -2097,6 +2097,15 @@
            pp.optimize_config
        WHERE creater = #{username} AND config_type = #{type}
    </select>
    <select id="getGlassProjectList" resultType="java.util.Map" parameterType="java.lang.String">
        SELECT
            project_no AS projectId,
            tempering_state
        FROM
            pp.optimize_project
        WHERE
            project_no = #{projectId}
    </select>
</mapper>