P15GEN2\59518
2024-05-29 d4210c7c4b04abde20037ea8aa0f54ef8a2649aa
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
<?xml version="1.0" encoding="UTF-8" ?>
    
<sqls>
    <dataSpace name="delivery">
        <sql name="getSoDeliveryFromMirror">
        <![CDATA[
            select distinct mirror_nc_v_ods_delivery.`发货ID` nc_id, mirror_nc_v_ods_delivery.发货编码 code, 
                so_order.id order_id, so_order.code order_code,
                so_order.company_name company_name,so_order.bu_name bu_name, 
                'Unreceived' state_code, '待收货' state_name, 
                mirror_nc_v_ods_delivery.`单据日期`  doc_date, '普通销售出库' doc_type, 
                so_order.customer_id customer_id, so_order.customer_code, so_order.nc_customer_code customer_code_ncc, so_order.customer_name, 
                mirror_nc_v_ods_delivery.`运输方式`  transport_type, 
                mirror_nc_v_ods_delivery.物流单号  express_code, mirror_nc_v_ods_delivery.物流公司  express_company, 
                mirror_nc_v_ods_delivery.备注 remark,
                mirror_nc_v_ods_delivery.`单据日期` shipto_date, so_order.shipto_address,so_order.shipto_contact,so_order.shipto_phone,
                so_order.company_id supplier_code,so_order.company_name supplier_name,
                sys_user.id creator_id, mirror_nc_v_ods_delivery.创建人姓名 creator_name, 
                mirror_nc_v_ods_delivery.创建时间 create_time, mirror_nc_v_ods_delivery.更新时间 update_time 
            from mirror_nc_v_ods_delivery
            inner join mirror_nc_v_ods_delivery_b on mirror_nc_v_ods_delivery.发货ID = mirror_nc_v_ods_delivery_b.发货ID
            inner join so_order on so_order.nc_code =mirror_nc_v_ods_delivery_b.订单ID
            left join md_employee on md_employee.nc_employee_id = mirror_nc_v_ods_delivery.`创建人ID`
            left join sys_user on sys_user.employee_id = md_employee.id 
            where not EXISTS (
                select * from so_delivery
                where so_delivery.nc_id = mirror_nc_v_ods_delivery. 发货ID  
            )
        ]]>
        </sql>
        
        <sql name="getSoDeliveryExistsFromMirror">
        <![CDATA[
            select distinct so_delivery.id, mirror_nc_v_ods_delivery.`发货ID` nc_id
            from mirror_nc_v_ods_delivery
            inner join so_delivery on so_delivery.nc_id = mirror_nc_v_ods_delivery. 发货ID
            where so_delivery.state_code != 'Received'
        ]]>
        </sql>
        
        <sql name="deleteCancelDeliveryDetail">
        <![CDATA[
            delete from so_delivery_detail 
            where parent_id= '@{deliveryId}' and not exists (
                select * from mirror_nc_v_ods_delivery_b
                where mirror_nc_v_ods_delivery_b.`发货明细ID` = so_delivery_detail.nc_id ) 
        ]]>
        </sql>
        
        <sql name="getSoDeliveryDetailExistsFromMirror">
        <![CDATA[
            select 
                so_delivery_detail.id, so_delivery_detail.parent_id, 0 qty_received,
                mirror_nc_v_ods_delivery_b.发货明细ID nc_id, mirror_nc_v_ods_delivery_b.订单明细ID nc_order_detail_id, 
                mirror_nc_v_ods_delivery_b.订单ID nc_order_id, 
                'normal' order_type_code, 'normal'order_right_code,  'Standard' stock_type_code, 
                mirror_nc_v_ods_delivery_b.物料ID nc_product_id, md_prod_sku.id product_id,
                md_prod_sku.product_code, md_prod_sku.product_name, md_prod_sku.id material_code,
                md_prod_sku.product_name material_name, md_prod_sku.unit unit,
                mirror_nc_v_ods_delivery_b.型号 spec, mirror_nc_v_ods_delivery_b.批号 batch_no, mirror_nc_v_ods_delivery_b.`序列号` batch_sn,
                DATE_FORMAT(mirror_nc_v_ods_delivery_b.生产日期 ,'%Y-%m-%d') valid_from, 
                date_format(mirror_nc_v_ods_delivery_b.有效期至 ,'%Y-%m-%d') valid_to, 
                mirror_nc_v_ods_delivery_b.`数量` qty, 
                mirror_nc_v_ods_delivery_b.`收货地址` shipto_address,
                mirror_nc_v_ods_delivery_b.`生产企业` manufacturer, 
                mirror_nc_v_ods_delivery_b.创建时间 create_time, mirror_nc_v_ods_delivery_b.修改时间 update_time
            from mirror_nc_v_ods_delivery_b
            inner join so_delivery_detail on so_delivery_detail.nc_id = mirror_nc_v_ods_delivery_b.发货明细ID
            left join md_prod_sku on md_prod_sku.nc_id = mirror_nc_v_ods_delivery_b.物料ID
            where so_delivery_detail.parent_id = '@{deliveryId}' 
        ]]>
        </sql>
        
        <sql name="appendSoDeliveryDetailFromMirror">
        <![CDATA[
            INSERT INTO so_delivery_detail (
                id, nc_id, parent_id, qty_received, customer_id, order_id, order_code,nc_order_detail_id, 
                nc_order_id,order_type_code, order_right_code, stock_type_code,
                nc_product_id, product_id,product_code, product_name, 
                material_code, material_name, unit, spec,  batch_no,batch_sn, 
                valid_from, valid_to, qty, shipto_address, manufacturer,  create_time, update_time) 
            select 
                UUID_SHORT() id,     mirror_nc_v_ods_delivery_b.发货明细ID nc_id,
                '@{deliveryId}' parent_id, 0 qty_received,             so_delivery.customer_id, 
                so_delivery.order_id, so_delivery.order_code,  mirror_nc_v_ods_delivery_b.订单明细ID nc_order_detail_id, 
                mirror_nc_v_ods_delivery_b.订单ID nc_order_id, 'normal' order_type_code, 'normal'order_right_code,  'Standard' stock_type_code, 
                mirror_nc_v_ods_delivery_b.物料ID nc_product_id, md_prod_sku.id product_id, md_prod_sku.product_code, md_prod_sku.product_name, 
                md_prod_sku.id material_code, md_prod_sku.product_name material_name, md_prod_sku.unit unit,
                    mirror_nc_v_ods_delivery_b.型号 spec, mirror_nc_v_ods_delivery_b.批号 batch_no, mirror_nc_v_ods_delivery_b.序列号 batch_sn,
                DATE_FORMAT(mirror_nc_v_ods_delivery_b.生产日期 ,'%Y-%m-%d') valid_from, 
                date_format(mirror_nc_v_ods_delivery_b.有效期至 ,'%Y-%m-%d') valid_to, 
                mirror_nc_v_ods_delivery_b.数量 qty, 
                mirror_nc_v_ods_delivery_b.收货地址 shipto_address,
                mirror_nc_v_ods_delivery_b.生产企业 manufacturer, 
                mirror_nc_v_ods_delivery_b.创建时间 create_time, mirror_nc_v_ods_delivery_b.修改时间 update_time
            from mirror_nc_v_ods_delivery_b
            inner join so_delivery on id = '@{deliveryId}' and so_delivery.nc_id = mirror_nc_v_ods_delivery_b.发货ID
            left join md_prod_sku on md_prod_sku.nc_id = mirror_nc_v_ods_delivery_b.物料ID
            where not EXISTS (
                select 1 from so_delivery_detail 
                where so_delivery_detail.nc_id = mirror_nc_v_ods_delivery_b.发货明细ID) 
        ]]>
        </sql>
        
        <sql name="updateDeliveryTotalCnt">
        <![CDATA[
            update so_delivery 
            set qty_total = (
                select sum(qty) from so_delivery_detail
                where so_delivery_detail.parent_id = so_delivery.id and so_delivery.id = '@{deliveryId}') 
            where so_delivery.id = '@{deliveryId}'
        ]]>
        </sql>
        
        <sql name="getSoDeliveryDetailFromMirror">
        <![CDATA[
            select 
                UUID_SHORT() id, '@{dmsDeliveryId}' parent_id,0 qty_received,
                mirror_nc_v_ods_delivery_b.发货明细ID nc_id, mirror_nc_v_ods_delivery_b.订单明细ID nc_order_detail_id, 
                mirror_nc_v_ods_delivery_b.订单ID nc_order_id, 
                'normal' order_type_code, 'normal'order_right_code,  'Standard' stock_type_code, 
                mirror_nc_v_ods_delivery_b.物料ID nc_product_id, md_prod_sku.id product_id,
                md_prod_sku.product_code, md_prod_sku.product_name, md_prod_sku.id material_code,
                md_prod_sku.product_name material_name, md_prod_sku.unit unit,
                mirror_nc_v_ods_delivery_b.型号 spec, mirror_nc_v_ods_delivery_b.批号 batch_no, mirror_nc_v_ods_delivery_b.`序列号` batch_sn,
                DATE_FORMAT(mirror_nc_v_ods_delivery_b.生产日期 ,'%Y-%m-%d') valid_from, 
                date_format(mirror_nc_v_ods_delivery_b.有效期至 ,'%Y-%m-%d') valid_to, 
                mirror_nc_v_ods_delivery_b.`数量` qty, 
                mirror_nc_v_ods_delivery_b.`收货地址` shipto_address,
                mirror_nc_v_ods_delivery_b.`生产企业` manufacturer, 
                mirror_nc_v_ods_delivery_b.创建时间 create_time, mirror_nc_v_ods_delivery_b.修改时间 update_time
            from mirror_nc_v_ods_delivery_b
            left join md_prod_sku on md_prod_sku.nc_id = mirror_nc_v_ods_delivery_b.物料ID
            where mirror_nc_v_ods_delivery_b.发货ID = '@{ncDeliveryId}'
        ]]>
        </sql>
        
        <sql name="getGeneralOutWithDeliveryDetail">
        <![CDATA[
            select 
                mirror_nc_v_ods_generalout_b.`发货明细ID` nc_id,
                'normal' order_type_code, 'normal'order_right_code, 'Standard' stock_type_code, 
                mirror_nc_v_ods_generalout_b.物料ID nc_product_id, 
                md_prod_sku.id product_id,md_prod_sku.product_code, md_prod_sku.product_name, md_prod_sku.id material_code,
                md_prod_sku.product_name material_name, md_prod_sku.unit unit,
                mirror_nc_v_ods_generalout_b.型号 spec, mirror_nc_v_ods_generalout_b.批号 batch_no, mirror_nc_v_ods_generalout_b.`序列号` batch_sn,
                DATE_FORMAT(mirror_nc_v_ods_generalout_b.生产日期 ,'%Y-%m-%d') valid_from, 
                date_format(mirror_nc_v_ods_generalout_b.有效期至 ,'%Y-%m-%d') valid_to, 
                sum(mirror_nc_v_ods_generalout_b.`数量`)  qty, 
                mirror_nc_v_ods_generaloutas.`收货地址` shipto_address,
                mirror_nc_v_ods_generalout_b.`生产企业` manufacturer, 
                mirror_nc_v_ods_generalout_b.创建时间 create_time, mirror_nc_v_ods_generalout_b.修改时间 update_time
            from mirror_nc_v_ods_generalout_b
            left join mirror_nc_v_ods_generaloutas on mirror_nc_v_ods_generaloutas.出库ID = mirror_nc_v_ods_generalout_b.`出库ID`
            inner join so_delivery_detail on so_delivery_detail.nc_id = mirror_nc_v_ods_generalout_b.`发货明细ID`
            left join md_prod_sku on md_prod_sku.nc_id = mirror_nc_v_ods_generalout_b.物料ID
            WHERE mirror_nc_v_ods_generalout_b.`发货ID` !='~' 
            group by mirror_nc_v_ods_generalout_b.`发货明细ID`
        ]]>
        </sql>
        
        <sql name="getGeneralOutWithoutDeliveryDetail">
        <![CDATA[
            select     'normal' order_type_code, 'normal'order_right_code, 'Standard' stock_type_code, 
                mirror_nc_v_ods_generalout_b.物料ID nc_product_id, 
                md_prod_sku.id product_id,md_prod_sku.product_code, md_prod_sku.product_name, md_prod_sku.id material_code,
                md_prod_sku.product_name material_name, md_prod_sku.unit unit,
                mirror_nc_v_ods_generalout_b.型号 spec, mirror_nc_v_ods_generalout_b.批号 batch_no, mirror_nc_v_ods_generalout_b.`序列号` batch_sn,
                DATE_FORMAT(mirror_nc_v_ods_generalout_b.生产日期 ,'%Y-%m-%d') valid_from, 
                date_format(mirror_nc_v_ods_generalout_b.有效期至 ,'%Y-%m-%d') valid_to, 
                sum(mirror_nc_v_ods_generalout_b.`数量`)  qty, 
                mirror_nc_v_ods_generaloutas.`收货地址` shipto_address,
                mirror_nc_v_ods_generalout_b.`生产企业` manufacturer, 
                mirror_nc_v_ods_generalout_b.创建时间 create_time, mirror_nc_v_ods_generalout_b.修改时间 update_time
            from mirror_nc_v_ods_generalout_b
            left join mirror_nc_v_ods_generaloutas on mirror_nc_v_ods_generaloutas.出库ID = mirror_nc_v_ods_generalout_b.`出库ID`
            left join md_prod_sku on md_prod_sku.nc_id = mirror_nc_v_ods_generalout_b.物料ID
            WHERE mirror_nc_v_ods_generalout_b.`发货ID` !='~' and not exists (
                select 1 from so_delivery_detail
                where so_delivery_detail.nc_id = mirror_nc_v_ods_generalout_b.`发货明细ID` and so_delivery_detail.nc_product_id = mirror_nc_v_ods_generalout_b.物料ID  )
            group by mirror_nc_v_ods_generalout_b.`发货明细ID`
        ]]>
        </sql>
        
        <sql name="getSoOrderByMirrorDelivery">
        <![CDATA[
            select order_id ,nc_order_id, sum(ifnull(qty, 0)) qty_delivery 
            from so_delivery_detail 
            WHERE EXISTS (
                select 1 from mirror_nc_v_ods_delivery_b
                where mirror_nc_v_ods_delivery_b.`订单ID` = so_delivery_detail.nc_order_id and qty > 0
            )
            group by  order_id ,nc_order_id
        ]]>
        </sql>
        
        <sql name="getSoOrderByMirrorReturn">
        <![CDATA[
            select order_id ,nc_order_id, sum(ifnull(qty, 0)) qty_return 
            from so_delivery_detail 
            WHERE EXISTS (
                select 1 from mirror_nc_v_ods_delivery_b
                where mirror_nc_v_ods_delivery_b.`订单ID` = so_delivery_detail.nc_order_id and qty < 0
            )
            group by  order_id ,nc_order_id
        ]]>
        </sql>
        
        <sql name="getDeliveryGeneralOut">
        <![CDATA[
            select distinct mirror_nc_v_ods_generalout_b.`出库ID` out_id ,mirror_nc_v_ods_generalout_b.`出库单号` out_code,
                mirror_nc_v_ods_generalout_b.`发货ID` nc_id
            from mirror_nc_v_ods_generalout_b
            group by mirror_nc_v_ods_generalout_b.`发货ID`
        ]]>
        </sql>
            
    </dataSpace>    
        
</sqls>