gongchunyi
2026-08-07 54b83f755d687fbc87bd9c93ac459feccc7e12d1
src/main/resources/mapper/production/ProductionOrderMapper.xml
@@ -113,6 +113,9 @@
                <if test="c.npsNo != null and c.npsNo != ''">
                    and po.nps_no like concat('%', #{c.npsNo}, '%')
                </if>
                <if test="c.salesContractNo != null and c.salesContractNo != ''">
                    and po_sales.salesContractNo like concat('%', #{c.salesContractNo}, '%')
                </if>
                <if test="c.productionPlanIds != null and c.productionPlanIds != ''">
                    and po.production_plan_ids like concat('%', #{c.productionPlanIds}, '%')
                </if>
@@ -134,7 +137,7 @@
        <include refid="ProductionOrderVoColumns" />
        <include refid="ProductionOrderVoFrom" />
        <include refid="ProductionOrderWhere" />
        order by po.id desc
        order by po.nps_no desc
    </select>
    <select id="listProductionOrder" resultMap="ProductionOrderVoResultMap">
@@ -227,8 +230,12 @@
            <if test="status != null">
                and po.status = #{status}
            </if>
            <if test="startTime != null and endTime != null">
                and po.create_time &gt;= #{startTime}
                and po.create_time &lt; #{endTime}
            </if>
        </where>
        order by po.id desc
        order by po.nps_no desc
        limit #{offset}, #{size}
    </select>
@@ -239,13 +246,21 @@
            <if test="status != null">
                and po.status = #{status}
            </if>
            <if test="startTime != null and endTime != null">
                and po.create_time &gt;= #{startTime}
                and po.create_time &lt; #{endTime}
            </if>
        </where>
    </select>
    <select id="countHomeOrderProgressByStatus" resultType="java.util.Map">
        select po.status as status, count(1) as cnt
        from production_order po
        where po.status in (2, 3, 4)
        where po.status in (1, 2, 3, 4)
        <if test="startTime != null and endTime != null">
            and po.create_time &gt;= #{startTime}
            and po.create_time &lt; #{endTime}
        </if>
        group by po.status
    </select>
@@ -258,7 +273,13 @@
        from production_order po
                 left join product_model pm on po.product_model_id = pm.id
                 left join product p on pm.product_id = p.id
        where po.status in (1, 2)
        <where>
            po.status in (1, 2)
            <if test="planStart != null and planEnd != null">
                and po.plan_complete_time &gt;= #{planStart}
                and po.plan_complete_time &lt; #{planEnd}
            </if>
        </where>
        order by case when po.status = 2 then 0 else 1 end, po.id desc
        limit #{size}
    </select>
@@ -266,7 +287,13 @@
    <select id="countHomeTodayProductionPlan" resultType="java.lang.Long">
        select count(1)
        from production_order po
        where po.status in (1, 2)
        <where>
            po.status in (1, 2)
            <if test="planStart != null and planEnd != null">
                and po.plan_complete_time &gt;= #{planStart}
                and po.plan_complete_time &lt; #{planEnd}
            </if>
        </where>
    </select>
</mapper>