chenlu
2024-06-07 2f640b1038fa331954f78ed1f4317212cf5bb34d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--返工数据-->
 
<mapper namespace="com.example.erp.mapper.pp.ReworkMapper">
 
 
 
    <!--获取返工数据-->
    <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,
        r.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>