From c4dc5ded576a9f15b353ea78865385abd9375d3c Mon Sep 17 00:00:00 2001 From: wangyu <823267011@qq.com> Date: Wed, 29 Apr 2026 13:38:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(plan):=20=E4=BF=AE=E5=A4=8D=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E8=AE=A1=E5=88=92=E6=96=B0=E5=A2=9E=E6=97=A0=E6=95=88?= =?UTF-8?q?=E7=9A=84=E5=85=A8=E9=83=A8=E6=A0=B9=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. MillProductionPlan Domain:将 sgSign/inMatLen/inMatWt/inMatDia/inMatInDia 重命名为前端一致的 alloyNo/inMatLength/inMatWeight/inMatOd/inMatId,新增 passCount 2. MillProductionPlanMapper.xml: - resultMap 用老 DB 列名(sg_sign/in_mat_wt 等)映射新 Java 属性名 - INSERT/UPDATE/SELECT 全部对齐,keyProperty 改为 planId - ORDER BY 改为 plan_id(原为不存在的 id 列) - 新增 pass_count 映射(ALTER TABLE 已在服务器执行) 3. MillProductionPlanServiceImpl:insert 自动生成 planNo(P+时间戳) 防止 plan_no NOT NULL 约束导致插入失败 4. MillProcessRecipeMapper.xml:keyProperty="id" 改为 keyProperty="recipeId" 修复 addRecipe 后 recipe.getRecipeId() 返回 null 导致无法绑定计划 Co-Authored-By: Claude Sonnet 4.6 --- .../ruoyi/mill/domain/MillProductionPlan.java | 31 +++--- .../impl/MillProductionPlanServiceImpl.java | 4 + .../mapper/mill/MillProcessRecipeMapper.xml | 2 +- .../mapper/mill/MillProductionPlanMapper.xml | 96 +++++++++---------- 4 files changed, 60 insertions(+), 73 deletions(-) diff --git a/ruoyi-mill/src/main/java/com/ruoyi/mill/domain/MillProductionPlan.java b/ruoyi-mill/src/main/java/com/ruoyi/mill/domain/MillProductionPlan.java index f3b114d3..de37f264 100644 --- a/ruoyi-mill/src/main/java/com/ruoyi/mill/domain/MillProductionPlan.java +++ b/ruoyi-mill/src/main/java/com/ruoyi/mill/domain/MillProductionPlan.java @@ -15,15 +15,11 @@ public class MillProductionPlan extends BaseEntity { @Excel(name = "计划号") private String planNo; - private String matSeqNo; - private String unitCode; - private String planType; - /** 0-待生产 1-生产中 2-完成 3-撤销 */ @Excel(name = "计划状态") private String planStatus; - /** Rolling / NextCoil / Idle */ + /** Idle / Rolling / NextCoil */ @Excel(name = "生产状态") private String prodStatus; @@ -33,36 +29,33 @@ public class MillProductionPlan extends BaseEntity { @Excel(name = "钢卷编号") private String inMatNo; + @Excel(name = "合金牌号") + private String alloyNo; + @Excel(name = "采料厚度(mm)") private BigDecimal inMatThick; @Excel(name = "采料宽度(mm)") private BigDecimal inMatWidth; - @Excel(name = "采料重量(kg)") - private BigDecimal inMatWt; + @Excel(name = "采料重量(t)") + private BigDecimal inMatWeight; @Excel(name = "采料长度(m)") - private BigDecimal inMatLen; + private BigDecimal inMatLength; @Excel(name = "采料内径(mm)") - private BigDecimal inMatInDia; + private BigDecimal inMatId; @Excel(name = "采料外径(mm)") - private BigDecimal inMatDia; - - @Excel(name = "炉号") - private String pono; - - @Excel(name = "合金牌号") - private String sgSign; - - @Excel(name = "出口材料号") - private String outMatNo; + private BigDecimal inMatOd; @Excel(name = "成品厚度(mm)") private BigDecimal outThick; + @Excel(name = "道次数") + private Integer passCount; + @Excel(name = "工艺方案ID") private Long recipeId; diff --git a/ruoyi-mill/src/main/java/com/ruoyi/mill/service/impl/MillProductionPlanServiceImpl.java b/ruoyi-mill/src/main/java/com/ruoyi/mill/service/impl/MillProductionPlanServiceImpl.java index dfa42224..54245a97 100644 --- a/ruoyi-mill/src/main/java/com/ruoyi/mill/service/impl/MillProductionPlanServiceImpl.java +++ b/ruoyi-mill/src/main/java/com/ruoyi/mill/service/impl/MillProductionPlanServiceImpl.java @@ -32,6 +32,10 @@ public class MillProductionPlanServiceImpl implements IMillProductionPlanService // 新计划追加到队列末尾 List all = planMapper.selectList(new MillProductionPlan()); plan.setSortNo(all.size() + 1); + // plan_no NOT NULL,若前端未传则自动生成 + if (plan.getPlanNo() == null || plan.getPlanNo().isEmpty()) { + plan.setPlanNo("P" + System.currentTimeMillis()); + } return planMapper.insert(plan); } diff --git a/ruoyi-mill/src/main/resources/mapper/mill/MillProcessRecipeMapper.xml b/ruoyi-mill/src/main/resources/mapper/mill/MillProcessRecipeMapper.xml index edc53e7d..022d1cf1 100644 --- a/ruoyi-mill/src/main/resources/mapper/mill/MillProcessRecipeMapper.xml +++ b/ruoyi-mill/src/main/resources/mapper/mill/MillProcessRecipeMapper.xml @@ -51,7 +51,7 @@ WHERE recipe_no = #{recipeNo} AND del_flag = '0' LIMIT 1 - + INSERT INTO mill_process_recipe ( recipe_no, alloy_no, pass_count, in_thick, out_thick, out_width, status, create_by, create_time, update_by, update_time, remark, del_flag diff --git a/ruoyi-mill/src/main/resources/mapper/mill/MillProductionPlanMapper.xml b/ruoyi-mill/src/main/resources/mapper/mill/MillProductionPlanMapper.xml index 38a98c20..51411cd9 100644 --- a/ruoyi-mill/src/main/resources/mapper/mill/MillProductionPlanMapper.xml +++ b/ruoyi-mill/src/main/resources/mapper/mill/MillProductionPlanMapper.xml @@ -4,25 +4,21 @@ - + - - - + - - - - - - - + + + + + @@ -34,9 +30,9 @@ - plan_id, plan_no, mat_seq_no, unit_code, plan_type, plan_status, prod_status, sort_no, - in_mat_no, in_mat_thick, in_mat_width, in_mat_wt, in_mat_len, in_mat_in_dia, in_mat_dia, - pono, sg_sign, out_mat_no, out_thick, recipe_id, recipe_no, + plan_id, plan_no, plan_status, prod_status, sort_no, + in_mat_no, sg_sign, in_mat_thick, in_mat_width, in_mat_wt, in_mat_len, + in_mat_in_dia, in_mat_dia, out_thick, pass_count, recipe_id, recipe_no, del_flag, create_by, create_time, update_by, update_time, remark @@ -46,8 +42,8 @@ AND in_mat_no LIKE CONCAT('%', #{inMatNo}, '%') - - AND sg_sign LIKE CONCAT('%', #{sgSign}, '%') + + AND sg_sign LIKE CONCAT('%', #{alloyNo}, '%') AND plan_status = #{planStatus} @@ -58,7 +54,7 @@ AND DATE(create_time) <= #{params.endTime} - ORDER BY sort_no ASC, id ASC + ORDER BY sort_no ASC, plan_id ASC - - - + INSERT INTO mill_production_plan ( - plan_no, mat_seq_no, unit_code, plan_type, plan_status, prod_status, sort_no, - in_mat_no, in_mat_thick, in_mat_width, in_mat_wt, in_mat_len, in_mat_in_dia, in_mat_dia, - pono, sg_sign, out_mat_no, out_thick, recipe_id, recipe_no, + plan_no, plan_status, prod_status, sort_no, + in_mat_no, sg_sign, in_mat_thick, in_mat_width, in_mat_wt, in_mat_len, + in_mat_in_dia, in_mat_dia, out_thick, pass_count, recipe_id, recipe_no, create_by, create_time, update_by, update_time, remark, del_flag ) VALUES ( - #{planNo}, #{matSeqNo}, #{unitCode}, #{planType}, - IFNULL(#{planStatus},'0'), IFNULL(#{prodStatus},'Idle'), IFNULL(#{sortNo},0), - #{inMatNo}, #{inMatThick}, #{inMatWidth}, #{inMatWt}, #{inMatLen}, #{inMatInDia}, #{inMatDia}, - #{pono}, #{sgSign}, #{outMatNo}, #{outThick}, #{recipeId}, #{recipeNo}, + #{planNo}, IFNULL(#{planStatus},'0'), IFNULL(#{prodStatus},'Idle'), IFNULL(#{sortNo},0), + #{inMatNo}, #{alloyNo}, #{inMatThick}, #{inMatWidth}, #{inMatWeight}, #{inMatLength}, + #{inMatId}, #{inMatOd}, #{outThick}, IFNULL(#{passCount},0), #{recipeId}, #{recipeNo}, #{createBy}, NOW(), #{updateBy}, NOW(), #{remark}, '0' ) UPDATE mill_production_plan - SET plan_status = #{planStatus}, - prod_status = #{prodStatus}, - in_mat_no = #{inMatNo}, - in_mat_thick = #{inMatThick}, - in_mat_width = #{inMatWidth}, - in_mat_wt = #{inMatWt}, - in_mat_len = #{inMatLen}, - in_mat_in_dia= #{inMatInDia}, - in_mat_dia = #{inMatDia}, - pono = #{pono}, - sg_sign = #{sgSign}, - out_mat_no = #{outMatNo}, - out_thick = #{outThick}, - recipe_id = #{recipeId}, - recipe_no = #{recipeNo}, - update_by = #{updateBy}, - update_time = NOW(), - remark = #{remark} + SET plan_status = #{planStatus}, + prod_status = #{prodStatus}, + in_mat_no = #{inMatNo}, + sg_sign = #{alloyNo}, + in_mat_thick = #{inMatThick}, + in_mat_width = #{inMatWidth}, + in_mat_wt = #{inMatWeight}, + in_mat_len = #{inMatLength}, + in_mat_in_dia = #{inMatId}, + in_mat_dia = #{inMatOd}, + out_thick = #{outThick}, + pass_count = #{passCount}, + recipe_id = #{recipeId}, + recipe_no = #{recipeNo}, + update_by = #{updateBy}, + update_time = NOW(), + remark = #{remark} WHERE plan_id = #{planId} - UPDATE mill_production_plan SET del_flag = '2', update_time = NOW() WHERE plan_id = #{planId} + UPDATE mill_production_plan SET del_flag = '2', update_time = NOW() + WHERE plan_id = #{planId} + + + + UPDATE mill_production_plan SET sort_no = #{sortNo} WHERE plan_id = #{planId} @@ -118,8 +112,4 @@ WHERE sort_no >= #{targetSort} AND del_flag = '0' - - UPDATE mill_production_plan SET sort_no = #{sortNo} WHERE plan_id = #{planId} - -