guoyuji
2024-04-24 0a68c5b8442e3da4325ec5ad4e42db64d42057f8
north-glass-erp/target/classes/mapper/pp/ReworkMapper.xml
@@ -5,62 +5,131 @@
<!--返工数据-->
<mapper namespace="com.example.erp.mapper.pp.ReworkMapper">
    <resultMap id="reworkDataTitle" type="com.example.erp.entity.pp.Rework">
    </resultMap>
    <!--获取返工数据-->
    <select id="queryRework" resultMap="reworkDataTitle">
        select * from rework
        <!--<where>
            create_time <![CDATA[>=]]> #{startTime} and create_time <![CDATA[<=]]> #{endTime}}
            &lt;!&ndash;返工编号&ndash;&gt;
            <if test="rework_id!=null and rework != ''">
                and rework_id = #{reworkId}
            </if>
            &lt;!&ndash;流程卡号&ndash;&gt;
            <if test="process_id != null and process_id != ''">
                and process_id=#{processId}
            </if>
            &lt;!&ndash;返工类型&ndash;&gt;
            <if test="rework_Type != null and rework_Type!=''">
                and rework_Type=#{rework_Type}
            </if>
            &lt;!&ndash;返工原因&ndash;&gt;
            <if test="rework_Reason != null and rework_Reason!=''">
                and rework_Reason=#{rework_Reason}
            </if>
            &lt;!&ndash;返工工序&ndash;&gt;
            <if test="rework_Processes != null and rework_Processes!=''">
                and rework_Processes=#{rework_Processes}
            </if>
            &lt;!&ndash;返工数量&ndash;&gt;
            <if test="rework_Num != null and rework_Num!=''">
                and rework_Num=#{rework_Num}
            </if>
            &lt;!&ndash;返工班组&ndash;&gt;
            <if test="rework_Team != null and rework_Team!=''">
                and rework_Team=#{rework_Team}
            </if>
            &lt;!&ndash;审核人&ndash;&gt;
            <if test="reviewer != null and reviewer!=''">
                and reviewer=#{reviewer}
            </if>
            &lt;!&ndash;审核状态&ndash;&gt;
            <if test="review_Status != null and review_Status!=''">
                and review_Status=#{review_Status}
            </if>
            &lt;!&ndash;返工面积&ndash;&gt;
            <if test="rework_Area != null and rework_Area!=''">
                and rework_Area=#{rework_Area}
            </if>
        </where>-->
    <select id="SelectRework" >
        select
        r.id,
        r.review_status,
        r.rework_team,
        r.rework_id,
        r.process_id,
        r.order_id,
        r.order_sort,
        o.project,
        o.batch,
        od.product_name,
        ogd.technology_number,
        ogd.glass_address,
        r.rework_num,
        od.width,
        od.height,
        od.shape,
        r.rework_type,
        r.rework_reason,
        r.responsible_team,
        r.responsible_personnel,
        r.responsible_equipment,
        r.rework_area,
        r.quality_inspector,
        r.rework_processes,
        r.reviewer,
        date(r.create_time) as create_time,
        date(r.update_time) as update_time
        from pp.rework r left join sd.order_detail od on r.order_id=od.order_id and r.order_sort=od.order_number
        left join sd.`order` o on r.order_id = o.order_id
        left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd
        on r.order_id = ogd.order_id and r.order_sort = ogd.order_number
        <where>
            date(r.create_time)>=#{startDate} and date(r.create_time) &lt;= #{endDate}
        </where>
         order by r.review_status,r.id desc limit #{offset},#{pageSize};
    </select>
    <select id="SelectReworkPageTotal" >
        select CEILING(count(zu.id)/#{pageSize}) as 'pageTotal',
        count(zu.id) as 'total'
        from (select r.id as id
              from pp.rework r
                       left join sd.order_detail od on r.order_id = od.order_id and r.order_sort = od.order_number
                       left join sd.`order` o on r.order_id = o.order_id
                        left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd
                                 on r.order_id = ogd.order_id and r.order_sort = ogd.order_number
        <where>
            date(r.create_time)>=#{startDate} and date(r.create_time) &lt;= #{endDate}
        </where>
              ) as zu
        limit #{offset},#{pageSize};
    </select>
    <select id="getSelectRework">
        select o.order_id as orderId,
               dd.reporting_work_id as reportingWorkId,
               rw.process_id as processId,
               o.project,
               o.batch,
               dd.id as reviewer,
               dd.order_number as orderSort,
               od.product_name as productName,
               dd.technology_number as technologyNumber,
               ogd.glass_address as glassAddress,
               dd.breakage_quantity-dd.quantity as reworkNum,
               od.width,
               od.height,
               od.shape,
               dd.breakage_quantity-dd.quantity as breakageQuantity,
               dd.return_process as reworkProcesses,
               dd.breakage_reason as reworkReason,
               dd.breakage_type as reworkType,
               dd.responsible_personnel as responsiblePersonnel,
               dd.responsible_equipment as responsibleEquipment,
               dd.responsible_team as responsibleTeam,
               ROUND((dd.breakage_quantity-dd.quantity) * od.width * od.height / 1000000, 2) as reworkArea,
               rw.quality_inspector as qualityInspector
        from pp.damage_details dd
                 left join   pp.reporting_work_detail rwd on dd.reporting_work_id = rwd.reporting_work_id and dd.order_number=rwd.order_number  and dd.technology_number=rwd.technology_number
                 left join pp.reporting_work rw on dd.reporting_work_id = rw.reporting_work_id and rw.reviewed_state>0
                 left join sd.`order` o on rw.order_id = o.order_id
                 left join sd.order_detail od on rw.order_id = od.order_id and dd.order_number = od.order_number
                 left join (select * from sd.order_glass_detail group by order_id,order_number) as ogd
                           on rw.order_id = ogd.order_id and dd.order_number = ogd.order_number
        where  dd.breakage_quantity-dd.quantity>0 and dd.available=1 order by dd.id desc
    </select>
    <select id="getMaximum" >
        select count(*) from pp.rework where  date(create_time)=CURDATE()
    </select>
    <select id="getMaxFlowCard" >
        select count(*) from pp.flow_card where project_no=#{processId}
    </select>
    <insert id="insertRework"  useGeneratedKeys="true" >
        insert into pp.rework(rework_id,reporting_work_id,process_id,order_id, order_sort, technology_number, responsible_team,
                              responsible_personnel, rework_type, rework_reason, rework_processes, rework_num,
                              rework_area, rework_team,responsible_equipment,quality_inspector, reviewer, review_status, create_time)
        values (
                   #{oddNumber}, #{rework.reportingWorkId},#{rework.processId},#{rework.orderId},#{rework.orderSort},#{rework.technologyNumber},#{rework.responsibleTeam},
                #{rework.responsiblePersonnel},#{rework.reworkType},#{rework.reworkReason},#{rework.reworkProcesses},#{rework.reworkNum},
                #{rework.reworkArea},#{rework.reworkTeam},#{rework.responsibleEquipment},#{rework.qualityInspector},'',0,now()
               )
    </insert>
    <update id="updateRework"  >
        update pp.rework set reviewer=#{userName},review_status=1,update_time=now() where id=#{rework.id}
    </update>
    <update id="updateDamageDetails"  >
        update pp.damage_details set quantity=quantity+#{rework.reworkNum} where id=#{rework.reviewer}
    </update>
</mapper>