From 5d314130e6f21bd265388b5210808baeba5f2d0c Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 23 三月 2026 17:57:14 +0800
Subject: [PATCH] feat: 生产报工的工序参数/BOM消耗产品查询返回、新增报工、分页查询

---
 src/main/resources/mapper/production/ProductionProductMainMapper.xml |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 110 insertions(+), 0 deletions(-)

diff --git a/src/main/resources/mapper/production/ProductionProductMainMapper.xml b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
index 4a6d7c4..4bebe89 100644
--- a/src/main/resources/mapper/production/ProductionProductMainMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -2,5 +2,115 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.production.mapper.ProductionProductMainMapper">
 
+    <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductionProductMain">
+        <id property="id" column="id"/>
+        <result property="productNo" column="product_no"/>
+        <result property="userId" column="user_id"/>
+        <result property="workOrderId" column="work_order_id"/>
+        <result property="tenantId" column="tenant_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="status" column="status"/>
+        <result property="postName" column="post_name"/>
+        <result property="schedule" column="schedule"/>
+        <result property="reportingTime" column="reporting_time"/>
+    </resultMap>
 
+    <select id="listPageProductionProductMainDto" resultType="com.ruoyi.production.dto.ProductionProductMainDto">
+        select ppm.*,
+        po.nps_no as npsNo,
+        pms.material_code as materialCode,
+        pm.product_name as productName,
+        pms.model as productModelName,
+        IFNULL(ppo.quantity, 0) as totalQuantity,
+        IFNULL(ppo.scrap_qty, 0) as scrapQty,
+        IFNULL(ppo.quantity, 0) as quantity
+        from
+        production_product_main ppm
+        left join production_product_output ppo on ppo.product_main_id = ppm.id
+        left join production_product_input ppi on ppi.product_main_id = ppm.id
+        left join product_order po on po.id = ppm.product_order_id
+        left join product_order_plan pop on po.id = pop.product_order_id
+        left join production_plan pp on pop.production_plan_id = pp.id
+        left join product_material_sku pms on pp.product_material_sku_id = pms.id
+        left join product_material pm on pm.id = pms.product_id
+        <where>
+            <if test="c.npsNo != null and c.npsNo != ''">
+                AND po.nps_no like concat('%', #{c.npsNo}, '%')
+            </if>
+            <if test="c.schedule != null and c.schedule != ''">
+                AND ppm.schedule like concat('%', #{c.schedule}, '%')
+            </if>
+            <if test="c.productName != null and c.productName != ''">
+                AND pm.product_name like concat('%', #{c.productName}, '%')
+            </if>
+        </where>
+        order by ppm.id desc
+    </select>
+
+    <select id="getOrderByMainId" resultType="com.ruoyi.production.pojo.ProductOrder">
+        select po.*
+        from product_order po
+                 left join product_work_order pwo on po.id = pwo.product_order_id
+                 left join production_product_main pm on work_order_id = pwo.id
+        where pm.id = #{productMainId}
+    </select>
+    <select id="listProductionDetails" resultType="com.ruoyi.production.dto.ProductionProductMainDto">
+        SELECT
+        slpa.scheduling_date,
+        slpa.scheduling_user_name,
+        sl.sales_contract_no,
+        sl.customer_name,
+        p.product_name,
+        pm.model as product_model_name,
+        pm.unit,
+        slpa.process,
+        ppo.quantity,
+        slpa.work_hours,
+        slpa.work_hours * slpa.finished_num AS wages
+        FROM
+        production_product_main ppm
+        LEFT JOIN sales_ledger_production_accounting slpa ON slpa.product_main_id = ppm.id
+        LEFT JOIN production_product_output ppo ON ppm.id = ppo.product_main_id
+        LEFT JOIN product_work_order pwo ON pwo.id = ppm.work_order_id
+        LEFT JOIN product_order po ON po.id = pwo.product_order_id
+        LEFT JOIN process_route pr ON pr.id = po.route_id
+        LEFT JOIN product_model pm ON po.product_model_id = pm.id
+        LEFT JOIN product p ON p.id = pm.product_id
+        LEFT JOIN sales_ledger sl ON po.sales_ledger_id = sl.id
+        <where>
+            <if test="ew.schedulingUserName != null and ew.schedulingUserName !=''">
+                and slpa.scheduling_user_name = #{ew.schedulingUserName}
+            </if>
+            <if test="ew.entryDate != null ">
+                and slpa.scheduling_date >= #{ew.entryDate}
+                and slpa.scheduling_date &lt; DATE_ADD(#{ew.entryDate}, INTERVAL 1 DAY)
+            </if>
+            <if test="ew.entryDateStart != null and ew.entryDateEnd != null">
+                and slpa.scheduling_date >= #{ew.entryDateStart}
+                and slpa.scheduling_date &lt; date_add(#{ew.entryDateEnd}, INTERVAL 1 DAY)
+            </if>
+        </where>
+    </select>
+    <select id="listMain" resultType="java.lang.Long">
+        SELECT ppm.id FROM production_product_main ppm
+        left join product_work_order pwo on pwo.id = ppm.work_order_id
+        left join product_order po on po.id = pwo.product_order_id
+        left join sales_ledger sl on sl.id = po.sales_ledger_id
+        <where>
+            <if test="idList != null and idList.size() > 0">
+                and sl.id in
+                <foreach item="id" collection="idList" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <delete id="deleteByWorkOrderIds" parameterType="java.util.List">
+        DELETE FROM production_product_main
+        WHERE work_order_id IN
+        <foreach collection="workOrderIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
 </mapper>

--
Gitblit v1.9.3