guoyuji
2024-03-15 3c87c3ff67c2193ab5bfaa31f0fb1ad5a68cd5af
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -11,10 +11,22 @@
        <result property="thisProcess" column="this_process"/>
        <result property="reviewedState" column="reviewed_state"/>
        <result property="previousProcessQuantity" column="previous_process_quantity"/>
        <result property="reportingWorkTime" column="reporting_work_time"/>
        <result property="thisCompletedQuantity" column="this_completed_quantity"/>
        <result property="thisWornQuantity" column="this_worn_quantity"/>
        <result property="deviceName" column="device_name"/>
        <result property="teamsGroupsName" column="teams_groups_name"/>
        <result property="reviewedState" column="reviewed_state"/>
        <result property="reportingWorkId" column="reporting_work_id"/>
        <result property="processId" column="process_id"/>
        <result property="completedArea" column="completedArea"/>
        <result property="wornArea" column="wornArea"/>
        <association property="order" javaType="com.example.erp.entity.sd.Order">
            <result property="customerId" column="customer_id"/>
            <result property="customerName" column="customer_name"/>
            <result property="project" column="project"/>
            <result property="batch" column="batch"/>
        </association>
        <association property="flowCard" javaType="com.example.erp.entity.pp.FlowCard">
            <result property="orderId" column="order_id"/>
@@ -22,6 +34,9 @@
        </association>
        <association property="reportingWorkDetail" javaType="com.example.erp.entity.pp.ReportingWorkDetail">
            <result property="completedQuantity" column="completed_quantity"/>
        </association>
        <association property="orderGlassDetail" javaType="com.example.erp.entity.sd.OrderGlassDetail">
            <result property="area" column="area"/>
        </association>
    </resultMap>
@@ -401,4 +416,141 @@
        </if>
        where a.reporting_work_id = #{reportingWorkId}
    </select>
<select id="selectReportingWorkMp" resultMap="reportingWorkMap">
        select rw.reporting_work_id,
               (rw.reporting_work_time) as reporting_work_time,
               o.order_id,
               rw.process_id,
               o.project,
               o.batch,
               rw.this_process,
               rw.this_completed_quantity,
               (ogd.area * rw.this_completed_quantity) as completedArea,
               rw.this_worn_quantity,
               (ogd.area * rw.this_worn_quantity)      as wornArea,
               rw.device_name,
               rw.teams_groups_name,
               rw.reviewed_state
        # (IF(rw.reviewed_state = 0, '未审核', IF(rw.reviewed_state = 1, '审核通过', '审核不通过'))) as reviewed_state
        from sd.order as o
                 left join sd.order_glass_detail as ogd on ogd.order_id = o.order_id
                 left join reporting_work as rw on rw.order_id = ogd.order_id and rw.production_id = ogd.production_id
                 left join reporting_work_detail as rwd
                           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.reviewed_state!=-1
        <if test="reportingWork.reportingWorkId != null and reportingWork.reportingWorkId != ''">
            and rw.reporting_work_id regexp #{reportingWork.reportingWorkId}
        </if>
        <if test="reportingWork.orderId != null and reportingWork.orderId != ''">
            and o.order_id regexp #{reportingWork.orderId}
        </if>
        <if test="reportingWork.processId != null and reportingWork.processId != ''">
            and rw.process_id regexp #{reportingWork.processId}
        </if>
        <if test="reportingWork.order.project != null and reportingWork.order.project != ''">
            and o.project regexp #{reportingWork.order.project}
        </if>
        <if test="reportingWork.order.batch != null and reportingWork.order.batch != ''">
            and o.batch regexp #{reportingWork.order.batch}
        </if>
        <if test="reportingWork.thisProcess != null and reportingWork.thisProcess != ''">
            and rw.this_process regexp #{reportingWork.thisProcess}
        </if>
        GROUP BY rw.reporting_work_id
        ORDER BY rw.reporting_work_id desc
        limit #{offset},#{pageSize};
    </select>
    <select id="getPageTotal">
        select CEILING(count(rw.reporting_work_id)/#{pageSize}) as 'pageTotal',
               count(distinct rw.reporting_work_id) as 'total'
             from sd.order as o
                 left join sd.order_glass_detail as ogd on ogd.order_id = o.order_id
                 left join reporting_work as rw on rw.order_id = ogd.order_id and rw.production_id = ogd.production_id
                 left join reporting_work_detail as rwd
                           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.reviewed_state!=-1
        ORDER BY rw.reporting_work_id desc
        limit #{offset},#{pageSize};
    </select>
<!--    根据报工编号查询下工序-->
    <select id="selectNextProcess">
        select next_process from reporting_work where reporting_work_id=#{reportingWorkId}
    </select>
<!--    查询下工序是否报工-->
    <select id="selectCountByProcessId">
        select count(reporting_work_id) from reporting_work where this_process=#{nextProcess} and process_id=#{processId}
    </select>
<!--    查询完工次破数量-->
    <select id="reportingWorkDate">
        select rw.process_id,
               rwd.order_number,
               rwd.technology_number,
               rwd.completed_quantity,
               IFNULL(SUM(dd.breakage_quantity), 0) as breakage_quantity
        from reporting_work as rw
                 left join reporting_work_detail as rwd on rw.reporting_work_id = rwd.reporting_work_id
                 left join damage_details as dd
                           on dd.reporting_work_id = rwd.reporting_work_id and dd.order_number = rwd.order_number and
                              dd.technology_number = rwd.technology_number
        where rw.reporting_work_id = #{reportingWorkId}
        GROUP BY rwd.order_number, rwd.technology_number
    </select>
<!--    修改报工流程卡表数据-->
    <update id="updateWorkProcess">
        update sd.order_process_detail
        set reporting_work_num_count=reporting_work_num_count - #{completedQuantity},
            reporting_work_num=reporting_work_num - #{completedQuantity},
            broken_num=broken_num - #{breakageQuantity}
        where process_id = #{processId}
          and order_number = #{orderNumber}
          and technology_number = #{technologyNumber}
          and process = #{thisProcess}
    </update>
<!--    删除报工-->
    <update id="deleteWork">
        update reporting_work set reviewed_state=-1
        where reporting_work_id = #{reportingWorkId}
    </update>
<!--    获取最后一道工序-->
    <select id="selectLastProcess">
        select process
        from sd.order_process_detail
        where process_id = #{processId}
          and order_number = 1
          and technology_number = 1
        order by id desc
        LIMIT 1
    </select>
<!--    查询可入库、已入库数量-->
    <select id="selectReceiptQuantity">
        select ifnull(SUM(quantity),0)                     as quantity,
               ifnull(SUM(inventory_quantity), 0) as inventoryQuantity,
               ifnull(SUM(received_quantity), 0) as receivedQuantity
        from flow_card
        where process_id = #{processId}
          and technology_number = 1
        GROUP BY process_id
    </select>
<!--    查询报工编号完工数量-->
    <select id="selectCompletedQuantity">
        select ifnull(this_completed_quantity,0) from reporting_work where reporting_work_id=#{reportingWorkId}
    </select>
<!--    更新流程卡可入库数量-->
    <update id="updateInventoryQuantity">
        update flow_card
        set inventory_quantity = inventory_quantity - #{completedQuantity}
        where process_id = #{processId}
          and order_number = #{orderNumber}
          and technology_number = #{technologyNumber}
    </update>
</mapper>