廖井涛
2024-09-25 b5a9dccccaf5bed064891a05ec8ff3f21de9cff0
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -111,9 +111,10 @@
        select ifnull((select ogd.process
                       from sd.order_glass_detail as ogd
                       left join sd.`order` as o on o.order_id=ogd.order_id
                       where ogd.production_id = LEFT(#{processIdStr}, 11)
                       left join flow_card as fc on fc.order_id=o.order_id and fc.order_number=ogd.order_number and fc.technology_number=ogd.technology_number
                       where fc.process_id = #{processIdStr}
                         and o.create_order>0
                         and POSITION(ogd.technology_number in #{technologyStr})
                         and POSITION(fc.technology_number in #{technologyStr})
                       limit 1),'') as  process
    </select>
@@ -135,8 +136,8 @@
            ogd.child_width,
            ogd.child_height,
            if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape,
            fc.quantity -odpd.reporting_work_num -odpd.broken_num + ifnull(patch.patch_num,0)  as quantity,
            fc.quantity -odpd.reporting_work_num -odpd.broken_num + ifnull(patch.patch_num,0)   as completedQuantity,
            fc.quantity + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num   as quantity,
            fc.quantity + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num   as completedQuantity,
            odpd.reporting_work_num as completed,
            odpd.broken_num as onceBroken,
            if(fc.quantity -odpd.reporting_work_num = 0 ,true,false) as saveFlag, -- 判断是否已经完成,已经完成不序号和同序号数量相同才能提交
@@ -380,7 +381,7 @@
    </select>
    <select id="selectFlowCardNum" resultType="java.lang.Integer">
        select
                    a.quantity-b.reporting_work_num-b.broken_num+ifnull(c.patchNumSum,0)
                    a.quantity +ifnull(c.patchNumSum,0)-b.reporting_work_num-b.broken_num
        from flow_card as a
                 left join sd.order_process_detail as b
                           on
@@ -423,6 +424,8 @@
            ifnull(f.completed_quantity,0) as thisQuantitySum ,-- 本工序完工和
            if(c.quantity-f.completed_quantity = 0 ,true,false) as saveFlag,
            e.other_columns,
        IF(count(pl.id)>0,'已补片','') as patchStatusOther,
            <if test="nextProcess != null and nextProcess != ''">  -- 非最后一道工序
                ifnull(g.completed_quantity,0) as nextQuantitySum,  -- 后工序已完成
                if((f.completed_quantity
@@ -462,6 +465,8 @@
                and d.technology_number = c.technology_number
            left join sd.order_detail as e
                on e.order_id = d.order_id and e.order_number = d.order_number
              left join patch_log as pl on pl.reporting_work_id=b.reporting_work_id
              and pl.order_sort=a.order_number and pl.technology_number=a.technology_number
            left join (select sum(completed_quantity) as completed_quantity ,
                              rw.process_id,
@@ -512,9 +517,9 @@
               o.batch,
               rw.this_process,
               rw.this_completed_quantity,
               round(ogd.area * rw.this_completed_quantity,2) as completedArea,
               round(ogd.child_width*ogd.child_height * rw.this_completed_quantity/1000000,2) as completedArea,
               rw.this_worn_quantity,
               round(ogd.area * rw.this_worn_quantity,2)      as wornArea,
               round(ogd.child_width*ogd.child_height * rw.this_worn_quantity/1000000,2)      as wornArea,
               rw.device_name,
               rw.teams_groups_name,
               rw.reviewed_state,
@@ -811,4 +816,102 @@
    <select id="getPatchConditionMp">
        select count(*) from damage_details where reporting_work_id=#{reportingWorkId} and patch_status>0
    </select>
    <select id="getFirstStep">
        SELECT
            fc.quantity -odpd.reporting_work_num -odpd.broken_num + ifnull(patch.patch_num,0)  as quantity
        FROM
            sd.order_detail AS od
                LEFT JOIN sd.order_glass_detail AS ogd
                          ON od.order_id = ogd.order_id
                              AND od.order_number = ogd.order_number
                LEFT JOIN flow_card AS fc
                          ON fc.order_id = ogd.order_id
                              and fc.production_id=ogd.production_id
                              AND fc.order_number = ogd.order_number
                              AND fc.technology_number = ogd.technology_number
                left join sd.order_process_detail as odpd
                          ON  odpd.order_id = fc.order_id
                              AND odpd.order_number = fc.order_number
                              AND odpd.technology_number = fc.technology_number
                              and  odpd.process_id = fc.process_id
                left join (
                select ifnull(sum(a.patch_num),0) as patch_num,a.process_id,a.technology_number,a.order_sort
                from patch_log as a
                         right join  reporting_work
                                     on a.reporting_work_id=reporting_work.reporting_work_id
                where
                    reporting_work.this_process = #{interceptProcess}
                  and a.process_id=#{processId}
                  and a.order_sort=#{orderSort}
                  and POSITION(a.technology_number in #{technologyNumber})
                  and a.review_status = 1
                group by a.process_id,a.order_sort,a.technology_number
            ) as patch
                          on patch.process_id = fc.process_id
                              and patch.order_sort = fc.order_number
                              and patch.technology_number = fc.technology_number
                left join sd.`order` as o on o.order_id=od.order_id
        WHERE
            fc.process_id = #{processId}
          and fc.order_number=#{orderSort}
          AND  POSITION(fc.technology_number in #{technologyNumber})
          AND odpd.process = #{interceptProcess}
        group by fc.order_number,
                 ogd.technology_number
        order by fc.order_number
    </select>
    <update id="updateReplenishWorkProcess">
        update sd.order_process_detail
        set
            broken_num=broken_num - #{patchNum}
        where process_id = #{processId}
          and order_number = #{orderSort}
          and technology_number = #{technologyNumber}
          and process = #{patchProcesses}
    </update>
    <update id="updateRWPatchNum">
        update  reporting_work
        set this_worn_quantity=this_worn_quantity-#{patchNum}
        where reporting_work_id=#{reportingWorkId}
    </update>
    <update id="updateRWDPatchNum">
        update  reporting_work_detail
        set breakage_quantity=breakage_quantity-#{patchNum}
        where reporting_work_id=#{reportingWorkId} and order_number = #{orderSort}
          and technology_number = #{technologyNumber}
    </update>
    <select id="selectUserProcess">
        select address from erp_user_info.user where login_name=#{userId}
    </select>
    <select id="getSelectProcessJiajiao">
        SELECT * FROM (
                          SELECT * FROM sd.basic_data
                          WHERE basic_type='product' AND basic_category='process' AND basic_name='夹胶'
                          UNION
                          SELECT * FROM sd.basic_data
                          WHERE basic_type='product' AND basic_category='process' AND basic_name='均质'
                      ) AS combined_results;
    </select>
    <select id="getSelectProcessDuoqu">
        SELECT * FROM (
                          SELECT * FROM sd.basic_data
                          WHERE basic_type='product' AND basic_category='process' AND basic_name='技术部多曲'
                          UNION
                          SELECT * FROM sd.basic_data
                          WHERE basic_type='product' AND basic_category='process' AND basic_name='钢化'
                      ) AS combined_results;
    </select>
</mapper>