Files
double-rack/ruoyi-mill/src/main/resources/mapper/mill/MillProductionPlanMapper.xml
朱昊天 8ea6894552 工艺管理
修复“重置导致选中丢失”
修复“新增保存后不会停留在新方案”
修复“搜索后左右不同步”
生产计划
定位生产计划页 plan.vue 的查询参数、日期范围、完成按钮与方案下拉逻辑
修复日期范围筛选:前端按后端约定写入 queryParams.params.beginTime/endTime
修复“不显示生产完成”筛选:前后端新增 excludeDone 过滤并落到 SQL 条件
修复完成计划幂等:后端避免重复插入实绩;前端对已完成禁用按钮
生产绩效
修复“明细信息显示旧数据”
修复“点击表格行只看明细但不能直接修改/删除
修复“时间字段时分秒丢失”
 修复“补录/修改表单无校验”
2026-06-16 13:56:58 +08:00

119 lines
5.2 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.mill.mapper.MillProductionPlanMapper">
<resultMap id="BaseRM" type="com.ruoyi.mill.domain.MillProductionPlan">
<id property="planId" column="plan_id"/>
<result property="planNo" column="plan_no"/>
<result property="planStatus" column="plan_status"/>
<result property="prodStatus" column="prod_status"/>
<result property="sortNo" column="sort_no"/>
<result property="inMatNo" column="in_mat_no"/>
<result property="alloyNo" column="sg_sign"/>
<result property="inMatThick" column="in_mat_thick"/>
<result property="inMatWidth" column="in_mat_width"/>
<result property="inMatWeight" column="in_mat_wt"/>
<result property="inMatLength" column="in_mat_len"/>
<result property="inMatId" column="in_mat_in_dia"/>
<result property="inMatOd" column="in_mat_dia"/>
<result property="outThick" column="out_thick"/>
<result property="passCount" column="pass_count"/>
<result property="recipeId" column="recipe_id"/>
<result property="recipeNo" column="recipe_no"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
</resultMap>
<sql id="cols">
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
</sql>
<select id="selectList" resultMap="BaseRM">
SELECT <include refid="cols"/> FROM mill_production_plan
WHERE del_flag = '0'
<if test="inMatNo != null and inMatNo != ''">
AND in_mat_no LIKE CONCAT('%', #{inMatNo}, '%')
</if>
<if test="alloyNo != null and alloyNo != ''">
AND sg_sign LIKE CONCAT('%', #{alloyNo}, '%')
</if>
<if test="planStatus != null and planStatus != ''">
AND plan_status = #{planStatus}
</if>
<if test="params != null and (params.excludeDone == true or params.excludeDone == 'true')">
AND prod_status != 'Done'
</if>
<if test="params != null and params.beginTime != null and params.beginTime != ''">
AND DATE(create_time) >= #{params.beginTime}
</if>
<if test="params != null and params.endTime != null and params.endTime != ''">
AND DATE(create_time) &lt;= #{params.endTime}
</if>
ORDER BY sort_no ASC, plan_id ASC
</select>
<select id="selectById" resultMap="BaseRM">
SELECT <include refid="cols"/> FROM mill_production_plan
WHERE plan_id = #{planId} AND del_flag = '0'
</select>
<insert id="insert" useGeneratedKeys="true" keyProperty="planId">
INSERT INTO mill_production_plan (
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}, 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'
)
</insert>
<update id="update">
UPDATE mill_production_plan
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>
<update id="deleteById">
UPDATE mill_production_plan SET del_flag = '2', update_time = NOW()
WHERE plan_id = #{planId}
</update>
<update id="updateSortNo">
UPDATE mill_production_plan SET sort_no = #{sortNo} WHERE plan_id = #{planId}
</update>
<update id="incrementSortFrom">
UPDATE mill_production_plan SET sort_no = sort_no + 1
WHERE sort_no >= #{targetSort} AND del_flag = '0'
</update>
</mapper>