李林
2023-10-07 658d4927d468c47208fd012d9128b09249c07eff
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
<?xml version="1.0" encoding="UTF-8"?>
 
<!--
  ~
  ~      Copyright (c) 2018-2025, ztt All rights reserved.
  ~
  ~  Redistribution and use in source and binary forms, with or without
  ~  modification, are permitted provided that the following conditions are met:
  ~
  ~ Redistributions of source code must retain the above copyright notice,
  ~  this list of conditions and the following disclaimer.
  ~  Redistributions in binary form must reproduce the above copyright
  ~  notice, this list of conditions and the following disclaimer in the
  ~  documentation and/or other materials provided with the distribution.
  ~  Neither the name of the pig4cloud.com developer nor the names of its
  ~  contributors may be used to endorse or promote products derived from
  ~  this software without specific prior written permission.
  ~  Author: ztt
  ~
  -->
 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
<mapper namespace="com.chinaztt.mes.production.mapper.ProductStepMapper">
 
    <resultMap id="productStepMap" type="com.chinaztt.mes.production.entity.ProductStep">
        <id property="id" column="id"/>
        <result property="operationTaskId" column="operation_task_id"/>
        <result property="stepId" column="step_id"/>
        <result property="number" column="number"/>
        <result property="createTime" column="create_time"/>
    </resultMap>
    <resultMap id="productStepMapDto" type="com.chinaztt.mes.production.dto.ProductStepDTO">
        <id property="id" column="id"/>
        <result property="operationTaskId" column="operation_task_id"/>
        <result property="stepId" column="step_id"/>
        <result property="number" column="number"/>
        <result property="createTime" column="create_time"/>
        <result property="stepBatchNo" column="step_batch_no"/>
        <result property="productMainId" column="product_main_id"/>
        <result property="systemNo" column="system_no"/>
        <result property="staffName" column="staff_name"/>
        <result property="staffId" column="staff_id"/>
        <result property="stepNo" column="step_no"/>
        <result property="name" column="name"/>
    </resultMap>
 
    <resultMap id="stepMap" type="com.chinaztt.mes.technology.dto.StepDTO">
 
    </resultMap>
 
    <select id="getById" resultType="com.chinaztt.mes.production.dto.ProductStepDTO">
        SELECT A.*
        FROM production_product_step A
        WHERE A."id" = #{id}
    </select>
 
    <select id="getProductStep" resultMap="stepMap">
        SELECT E."id",E."name",E.create_time,E.step_batch_no,E.system_no,E.number,E.step_no,E.remark,E.staff_name,E.staff_id,
        E.step_id,E.operation_task_id,E.product_main_id
        FROM (SELECT B.operation_task_id ,B.step_id,B."id",B.create_time,B.product_main_id,A."name",D.staff_id,B.step_batch_no,B.system_no,SUM(D."number") AS
        number,A.step_no,A.remark,array_to_string(array_agg(bs.staff_name),',') as staff_name
        FROM production_product_step B
        LEFT JOIN technology_step A ON B.step_id = A."id"
        LEFT JOIN production_product_step_staff D on D.product_step_id = B."id"
        LEFT JOIN basic_staff bs ON bs."id" = D.staff_id
        GROUP BY
        B."id",
        B.operation_task_id,
        A."name",
        B.product_main_id,
        D.staff_id,
        B.step_id,
        A.step_no,
        A.remark,
        B.create_time,
        B.step_batch_no,
        B.system_no)E
        <if test="ew.emptyOfWhere == false">
            ${ew.customSqlSegment}
        </if>
        ORDER BY E.system_no DESC
    </select>
 
    <select id="getStepById" resultType="com.chinaztt.mes.technology.dto.StepDTO">
        SELECT B."id",
        A."name",
        B.create_time,
        B.step_batch_no,
        B.system_no,
        SUM(D."number")                                AS number,
        A.step_no,
        A.remark,
        array_to_string(array_agg(bs.staff_name), ',') as staff_name
        FROM production_product_step B
        LEFT JOIN technology_step A ON B.step_id = A."id"
        LEFT JOIN production_product_step_staff D on D.product_step_id = B."id"
        LEFT JOIN basic_staff bs ON bs."id" = D.staff_id
        WHERE B.operation_task_id = #{id}
        AND B.step_id = #{id1}
        AND B.product_main_id = #{id2}
        GROUP BY
        B."id",
        A."name",
        A.step_no,
        A.remark,
        B.create_time,
        B.step_batch_no,
        B.system_no
        ORDER BY B.system_no DESC
    </select>
 
    <insert id="addProductOutStep" useGeneratedKeys="true" keyProperty="id">
        insert into
        production_product_step(step_id,operation_task_id,number,product_main_id,step_batch_no,system_no,create_time)
        VALUES
        <foreach collection="list" item="person" separator=",">
            (#{person.stepId},#{person.operationTaskId},#{person.number},#{person.productMainId},#{person.stepBatchNo},#{person.systemNo},NOW())
        </foreach>
    </insert>
</mapper>