guoyuji
2025-02-07 82685a4ec94db01c564561582141c03054012ea3
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -91,6 +91,7 @@
        where fc.process_id = #{processIdStr}
          and POSITION(fc.technology_number in #{technologyStr})
          and if(#{reportType}=1,o.order_type!='样品订单',o.order_id!='')
        and o.create_order>0
        GROUP BY fc.process_id
    </select>
@@ -179,6 +180,7 @@
          AND  POSITION(fc.technology_number in #{technologyStr})
          AND odpd.process = #{process}
          and if(#{reportType}=1,o.order_type!='样品订单',o.order_id!='')
        and o.create_order>0
        group by fc.order_number,
                 ogd.technology_number
        order by fc.order_number
@@ -213,7 +215,7 @@
        LEFT JOIN sd.order_glass_detail AS ogd
                ON od.order_id = ogd.order_id
                AND od.order_number = ogd.order_number
        <if test="process == '夹胶' or (process == '打胶和粘框' and previousProcess=='夹胶')">
        <if test="process == '夹胶' or (process == '打胶和粘框')">
            AND ogd.`group` = (select `group`
                               from sd.order_glass_detail
                               where order_id = ogd.order_id
@@ -255,7 +257,7 @@
        WHERE
            fc.process_id = #{processIdStr}
        <if test="process != '中空' and process != '夹胶' and process != '包装' and process != '打胶和粘框' ">
        <if test="laminating != 'laminating'">
           AND POSITION(fc.technology_number in #{technologyStr})
        </if>
        AND odpd.process = #{process}
@@ -343,10 +345,10 @@
    </select>
    <select id="selectGlassProcessNum" resultType="java.lang.Integer">
        select
        if((d.reporting_work_num_count+ifnull(c.reworkNumSum,0)-b.reporting_work_num_count-b.broken_num)&lt; 0,
        ifnull(if((d.reporting_work_num_count+ifnull(c.reworkNumSum,0)-b.reporting_work_num_count-b.broken_num)&lt; 0,
           0,
           (d.reporting_work_num_count+ifnull(c.reworkNumSum,0)-b.reporting_work_num_count-b.broken_num)
            )
            ),0)
        from flow_card as a
        left join sd.order_process_detail as b
        on
@@ -430,11 +432,11 @@
                ifnull(g.completed_quantity,0) as nextQuantitySum,  -- 后工序已完成
                if((f.completed_quantity
                    -ifnull(g.completed_quantity,0))
                    &gt;=
                    >
                   a.completed_quantity,
                    0,
                   (a.completed_quantity-f.completed_quantity
                       +ifnull(g.completed_quantity,0))
                   (f.completed_quantity
                       -ifnull(g.completed_quantity,0))
                    )  as minQuantity -- 修改最小数
            </if>
            <if test="nextProcess == null or nextProcess == ''">  -- 最后一道工序
@@ -533,7 +535,8 @@
                           on rwd.reporting_work_id = rw.reporting_work_id and rwd.order_number = ogd.order_number and
                              rwd.technology_number = ogd.technology_number
        where rw.reviewed_state != 2
          and rw.reporting_work_time between #{selectTime1} and #{selectTime2}
          and rw.reporting_work_time >= #{selectTime1}
    AND rw.reporting_work_time &lt;  #{selectTime2}
          and position(#{orderId} in rw.order_id)
          and rw.reviewed_state!=-1
          and o.create_order>0
@@ -576,7 +579,8 @@
                           on rwd.reporting_work_id = rw.reporting_work_id and rwd.order_number = ogd.order_number and
                              rwd.technology_number = ogd.technology_number
        where rw.reviewed_state != 2
          and rw.reporting_work_time between #{selectTime1} and #{selectTime2} and position(#{orderId} in rw.order_id)
          and rw.reporting_work_time >= #{selectTime1}
        AND rw.reporting_work_time &lt;  #{selectTime2} and position(#{orderId} in rw.order_id)
          and rw.reviewed_state!=-1
          and o.create_order>0
        <if test="reportingWork.reportingWorkId != null and reportingWork.reportingWorkId != ''">
@@ -705,7 +709,7 @@
                 left join damage_details as dd on dd.reporting_work_id=rw.reporting_work_id
        where rw.reviewed_state != 2
          and rw.reporting_work_time between #{selectTime1} and #{selectTime2}
          and DATE_FORMAT((rw.reporting_work_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
          and position(#{processId} in rw.process_id)
          and position(#{state} in dd.quality_ins_status)
          and rw.reviewed_state!=-1
@@ -735,7 +739,7 @@
                 left join damage_details as dd on dd.reporting_work_id=rw.reporting_work_id
        where rw.reviewed_state != 2
          and rw.reporting_work_time between #{selectTime1} and #{selectTime2}
          and DATE_FORMAT((rw.reporting_work_time), '%Y-%m-%d') between #{selectTime1} and #{selectTime2}
          and position(#{processId} in rw.process_id)
          and position(#{state} in dd.quality_ins_status)
          and rw.reviewed_state!=-1
@@ -943,7 +947,7 @@
        LEFT JOIN sd.order_glass_detail AS ogd
        ON od.order_id = ogd.order_id
        AND od.order_number = ogd.order_number
        <if test="process == '夹胶' or (process == '打胶和粘框' and previousProcess=='夹胶')">
        <if test="process == '夹胶' or (process == '打胶和粘框')">
            AND ogd.`group` = (select `group`
            from sd.order_glass_detail
            where order_id = ogd.order_id
@@ -987,17 +991,25 @@
        from reporting_work as a
        left join reporting_work_detail as b on a.reporting_work_id = b.reporting_work_id
        where this_process=#{previousProcess} and reviewed_state=0 and process_id= #{processIdStr}
        and  POSITION(b.technology_number in #{technologyStr})
        GROUP BY a.reporting_work_id,b.order_number,b.technology_number
        ) as rws
        on rws.process_id = fc.process_id and rws.order_number=fc.order_number and rws.technology_number=fc.technology_number
        WHERE
        fc.process_id = #{processIdStr}
        <if test="process != '中空' and process != '夹胶' and process != '包装' and process != '打胶和粘框' ">
        <if test="laminating != 'laminating' ">
            AND POSITION(fc.technology_number in #{technologyStr})
        </if>
        AND odpd.process = #{process}
        and rws.reviewed_state=0
        order by fc.order_number
    </select>
    <select id="getProcessLaminating">
        select IFNULL(nickname,'') from sd.basic_data where basic_category='process' and basic_name=#{process}
    </select>
    <select id="selectOrderid">
        select order_id from  pp.flow_card where process_id=#{processIdStr} group by order_id
    </select>
</mapper>