<?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.FlowCardMapper">
|
<resultMap id="flowCardMap" type="com.example.erp.entity.pp.FlowCard">
|
<result column="order_id" property="orderId"/>
|
<result column="process_Id" property="processId"/>
|
<result column="quantity" property="quantity"/>
|
<result column="founder" property="founder"/>
|
<result column="create_time" property="createTime"/>
|
<result column="layout_status" property="layoutStatus"/>
|
<result column="merge" property="merge"/>
|
<result column="rack" property="rack"/>
|
<!--接收其他外键实体类数据-->
|
<association property="order" javaType="com.example.erp.entity.sd.Order">
|
<result column="project" property="project"/>
|
<result column="order_id" property="orderId"/>
|
<result column="customer_name" property="customerName"/>
|
<result column="batch" property="batch"/>
|
<result column="other_remarks" property="otherRemarks"/>
|
<result column="icon" property="icon"/>
|
<result column="order_type" property="orderType"/>
|
<result column="salesman" property="salesman"/>
|
<result column="processing_note" property="processingNote"/>
|
<result column="delivery_address" property="deliveryAddress"/>
|
</association>
|
<association property="orderDetail" javaType="com.example.erp.entity.sd.OrderDetail">
|
<result column="product_id" property="productId"/>
|
<result column="product_name" property="productName"/>
|
<result column="compute_gross_area" property="computeGrossArea"/>
|
<result column="processing_note" property="processingNote"/>
|
<result column="quantity" property="quantity"/>
|
<result column="compute_gross_area" property="computeGrossArea"/>
|
<result column="perimeter" property="perimeter"/>
|
<result column="order_number" property="orderNumber"/>
|
<result column="width" property="width"/>
|
<result column="height" property="height"/>
|
<result column="shape" property="shape"/>
|
<result column="weight" property="weight"/>
|
</association>
|
<association property="orderGlassDetail" javaType="com.example.erp.entity.sd.OrderGlassDetail">
|
<result column="production_id" property="productionId"/>
|
</association>
|
<association property="product" javaType="com.example.erp.entity.sd.Product">
|
<result column="total_thickness" property="totalThickness"/>
|
<result column="thickness" property="thickness"/>
|
</association>
|
|
<!--<result column="g_typeId" property="glassTypes.typeId"/>
|
<result column="g_type" property="glassTypes.type"/>-->
|
|
</resultMap>
|
|
|
<!-- 流程卡管理查询-->
|
<select id="selectFlowCard" resultMap="flowCardMap">
|
select
|
a.order_Id,
|
a.process_Id,
|
c.product_id,
|
c.product_name,
|
b.project,
|
sum(a.quantity) as quantity,
|
sum(a.quantity) * c.area as compute_gross_area,
|
a.founder,
|
c.processing_note,
|
b.customer_name,
|
layout_status as layout_status,
|
a.merge,
|
a.rack,
|
b.batch
|
from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,max(merge) as merge,rack from flow_card
|
group by process_Id,order_number) as a
|
left join sd.`order` as b on a.order_Id=b.order_id
|
left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
|
where date(a.create_time)>=#{selectTime1} and date(a.create_time) <= #{selectTime2}
|
and b.create_order>0
|
<if test="flowCard.orderId != null and flowCard.orderId != ''">
|
and a.order_id regexp #{flowCard.orderId}
|
</if>
|
<if test="flowCard.processId != null and flowCard.processId != ''">
|
and a.process_Id regexp #{flowCard.processId}
|
</if>
|
<if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
|
and c.product_id regexp #{flowCard.orderDetail.productId}
|
</if>
|
<if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
|
and c.product_name regexp #{flowCard.orderDetail.productName}
|
</if>
|
|
<if test="flowCard.order.project != null and flowCard.order.project!= ''">
|
and b.project regexp #{flowCard.order.project}
|
</if>
|
<if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '不可排版'">
|
and a.layout_status regexp 0
|
</if>
|
<if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '可排版'">
|
and a.layout_status regexp 1
|
</if>
|
<if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '已排版'">
|
and a.layout_status regexp 2
|
</if>
|
<if test="flowCard.merge != null">
|
and a.merge regexp #{flowCard.merge}
|
</if>
|
<if test="flowCard.rack != null and flowCard.rack != ''">
|
and a.rack regexp #{flowCard.rack}
|
</if>
|
<if test="flowCard.order.customerName != null and flowCard.order.customerName!= ''">
|
and b.customer_name regexp #{flowCard.order.customerName}
|
</if>
|
group by a.process_Id
|
ORDER BY a.id desc
|
limit #{offset},#{pageSize};
|
</select>
|
|
|
<select id="getPageTotal">
|
select
|
CEILING(count(a.process_Id)/#{pageSize}) as 'pageTotal',
|
count(distinct a.process_Id) as 'total'
|
from flow_card as a left join sd.`order` as b on a.order_Id=b.order_id
|
left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
|
where date(a.create_time)>=#{selectTime1} and date(a.create_time) <= #{selectTime2}
|
and b.create_order>0
|
<if test="flowCard.orderId != null and flowCard.orderId != ''">
|
and a.order_id regexp #{flowCard.orderId}
|
</if>
|
<if test="flowCard.processId != null and flowCard.processId != ''">
|
and a.process_Id regexp #{flowCard.processId}
|
</if>
|
<if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
|
and c.product_id regexp #{flowCard.orderDetail.productId}
|
</if>
|
<if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
|
and c.product_name regexp #{flowCard.orderDetail.productName}
|
</if>
|
|
<if test="flowCard.order.project != null and flowCard.order.project!= ''">
|
and b.project regexp #{flowCard.order.project}
|
</if>
|
<if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '不可排版'">
|
and a.layout_status regexp 0
|
</if>
|
<if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '可排版'">
|
and a.layout_status regexp 1
|
</if>
|
<if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '已排版'">
|
and a.layout_status regexp 2
|
</if>
|
<if test="flowCard.merge != null">
|
and a.merge regexp #{flowCard.merge}
|
</if>
|
|
ORDER BY a.id desc
|
limit #{offset},#{pageSize};
|
</select>
|
|
<!--分架查询-->
|
<select id="selectFlowCardMp" resultMap="flowCardMap">
|
select o.order_id,
|
o.customer_name,
|
o.project,
|
o.batch,
|
o.other_remarks,
|
o.icon,
|
o.order_type,
|
o.salesman,
|
o.processing_note,
|
o.delivery_address
|
from sd.`order` as o
|
left join sd.order_glass_detail ogd on o.order_id = ogd.order_id
|
where o.production_order=2 and ogd.splitting_status=0 and
|
date(o.create_time)>=#{selectTime1} and date(o.create_time) <= #{selectTime2}
|
|
<if test="flowCard.order.orderId != null and flowCard.order.orderId != ''">
|
and o.order_id regexp #{flowCard.order.orderId}
|
</if>
|
<if test="flowCard.order.customerName != null and flowCard.order.customerName != ''">
|
and o.customer_name regexp #{flowCard.order.customerName}
|
</if>
|
<if test="flowCard.order.project != null and flowCard.order.project != ''">
|
and o.project regexp #{flowCard.order.project}
|
</if>
|
<if test="flowCard.order.batch != null and flowCard.order.batch!= ''">
|
and o.batch regexp #{flowCard.order.batch}
|
</if>
|
|
<if test="flowCard.order.otherRemarks != null and flowCard.order.otherRemarks!= ''">
|
and o.other_remarks regexp #{flowCard.order.otherRemarks}
|
</if>
|
|
<if test="flowCard.order.icon != null and flowCard.order.icon!= ''">
|
and o.icon regexp #{flowCard.order.icon}
|
</if>
|
<if test="flowCard.order.orderType != null and flowCard.order.orderType!= ''">
|
and o.order_type regexp #{flowCard.order.orderType}
|
</if>
|
<if test="flowCard.order.salesman != null and flowCard.order.salesman!= ''">
|
and o.salesman regexp #{flowCard.order.salesman}
|
</if>
|
group by o.order_id
|
order by o.id desc
|
|
;
|
</select>
|
|
<!-- 分架明细查询-->
|
<select id="detailsSelectMp">
|
SELECT
|
od.order_id,
|
ogd.production_id,
|
od.product_id,
|
od.product_name,
|
ROUND(SUM(od.quantity) - IFNULL(SUM(fc.quantity), 0)) AS quantity,
|
SUM(od.compute_gross_area) AS compute_gross_area,
|
ROUND(SUM(od.perimeter), 2) AS perimeter
|
FROM sd.order_detail AS od
|
LEFT JOIN (
|
SELECT order_id, order_number, production_id, splitting_status,
|
technology_number
|
FROM sd.order_glass_detail
|
GROUP BY order_id, order_number, production_id, splitting_status
|
) AS ogd
|
ON od.order_id = ogd.order_id
|
AND od.order_number = ogd.order_number
|
LEFT JOIN (
|
SELECT order_id, order_number, technology_number, SUM(quantity) AS quantity, layers_number
|
FROM flow_card
|
GROUP BY order_id, order_number, technology_number
|
) AS fc
|
ON fc.order_id = od.order_id
|
AND fc.order_number = od.order_number
|
AND fc.technology_number = ogd.technology_number
|
WHERE od.order_id = #{orderId}
|
AND ogd.splitting_status = 0
|
GROUP BY od.order_id, ogd.production_id, od.product_id, od.product_name
|
ORDER BY od.order_id DESC;
|
|
</select>
|
|
<!-- 更新分架状态-->
|
<update id="updateDeleteState">
|
update
|
sd.order_glass_detail as ogd left join pp.flow_card as fc
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number
|
set ogd.splitting_status=0
|
where
|
<if test="processId=='all'">
|
ogd.order_id = #{orderId}
|
</if>
|
<if test="processId!='all'">
|
fc.process_id = #{processId}
|
</if>
|
|
|
</update>
|
|
<!-- 删除流程卡-->
|
<update id="deleteFlowCardMp">
|
delete
|
from pp.flow_card as fc
|
where
|
<if test="processId=='all'">
|
fc.order_id = #{orderId}
|
</if>
|
<if test="processId!='all'">
|
fc.process_id = #{processId}
|
</if>
|
</update>
|
|
<!-- 分架新增明细查询-->
|
|
<!--resultMap="flowCardMap"-->
|
<select id="selectNoCardMp">
|
|
select od.order_number,
|
od.order_number AS 'orderNumber',
|
od.width,
|
od.height,
|
od.shape,
|
od.quantity,
|
od.compute_gross_area,
|
p.total_thickness,
|
ROUND(od.quantity-IFNULL(sum(fc.quantity)/fc.layers_number,0)) as baiscQuantity,
|
od.compute_gross_area as 'computeGrossArea',
|
p.total_thickness AS 'totalThickness',
|
ifnull(p.thickness,'') as thickness,
|
od.weight,
|
od.remarks,
|
od.processing_note,
|
ifnull(od.bend_radius,'') as bend_radius,
|
ods.S01,
|
ods.S02,
|
ods.S03,
|
ods.S04,
|
ods.S05,
|
od.building_number
|
from sd.order_detail as od
|
left join sd.order_glass_detail as ogd
|
on od.order_id = ogd.order_id and od.order_number = ogd.order_number
|
left join sd.product as p on od.product_id = p.id
|
left join (SELECT order_id,
|
order_number,
|
JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S01')) AS S01,
|
JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S02')) AS S02,
|
JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S03')) AS S03,
|
JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S04')) AS S04,
|
JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S05')) AS S05
|
FROM sd.order_detail
|
WHERE order_id = #{orderId}) as ods
|
on ods.order_id = od.order_id and ods.order_number = od.order_number
|
left join flow_card as fc on fc.order_id = od.order_id and fc.order_number = od.order_number
|
and fc.technology_number=ogd.technology_number
|
where od.order_id = #{orderId}
|
and ogd.production_id = #{productionId}
|
and ogd.splitting_status = 0
|
GROUP BY od.order_number
|
order by od.id
|
|
</select>
|
|
<!--修改排版状态-->
|
<update id="updateLayoutStatusMp">
|
update flow_card as fc
|
set fc.layout_status=#{state}
|
where fc.process_id = #{processId}
|
</update>
|
|
<!-- 查询对应流程卡号排版状态-->
|
<select id="selectLayoutStatus">
|
select fc.layout_status
|
from flow_card as fc
|
where fc.process_id = #{processId}
|
LIMIT 1
|
</select>
|
|
<!-- 查询报工表内是否有对应流程卡-->
|
<select id="reportingWorkCount">
|
select COUNT(rw.process_id)
|
from reporting_work as rw
|
where rw.process_id = #{processId} and reviewed_state>=0
|
</select>
|
<!-- 查询报工表内是否有对应流程卡-->
|
<select id="reportingWorkCountByOrderId">
|
select COUNT(rw.process_id)
|
from pp.reporting_work as rw
|
where rw.order_id = #{orderId} and reviewed_state>=0
|
</select>
|
|
<!-- 插入Flow_card表-->
|
<insert id="addFlowCardMp">
|
insert into flow_card (order_id,
|
production_id,
|
process_id,
|
landing_sequence,
|
order_number,
|
technology_number,
|
quantity,
|
founder,
|
layers_number,
|
splitFrame_time,
|
create_time)
|
select ogd.order_id,
|
ogd.production_id,
|
#{processId},
|
#{landingSequence},
|
ogd.order_number,
|
ogd.technology_number,
|
#{quantity},
|
#{userName},
|
#{layer},
|
NOW(),
|
NOW()
|
|
|
from sd.order_glass_detail as ogd
|
where ogd.production_id = #{productionId}
|
and ogd.order_number = #{orderNumber}
|
GROUP BY ogd.technology_number
|
</insert>
|
|
<!-- 更新分架状态-->
|
<update id="updateFlowState">
|
update sd.order_glass_detail as ogd
|
set ogd.splitting_status=1
|
where ogd.production_id = #{productionId}
|
and ogd.order_number = #{orderNumber}
|
</update>
|
<!-- 查询未分架的条数-->
|
<select id="selectFlowCount">
|
select COUNT(*)
|
from sd.order_glass_detail as ogd
|
where ogd.order_id = #{orderId}
|
and ogd.splitting_status = 0
|
</select>
|
<!-- 修改订单表分架状态-->
|
<update id="updateProcessingCard">
|
update sd.`order` as o
|
set o.processing_card=#{state}
|
where o.order_id = #{productionId}
|
</update>
|
|
<!-- 查询已排版数据-->
|
<select id="selectOkSchedulingMp">
|
select od.order_id,
|
o.customer_name,
|
o.project,
|
od.order_number,
|
od.width,
|
od.height,
|
od.quantity,
|
round(od.width * od.height * od.quantity / 1000000, 2),
|
(od.quantity - IFNULL(ps.scheduling_quantity, 0)),
|
round(od.width * od.height * (od.quantity - IFNULL(ps.scheduling_quantity, 0)) / 1000000, 2),
|
IFNULL(ps.scheduling_quantity, 0),
|
round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000, 2),
|
od.product_name,
|
od.shape
|
from sd.order_detail as od
|
left join sd.order as o on od.order_id = o.order_id
|
left join production_scheduling as ps
|
on ps.order_id = od.order_id and ps.order_number = od.order_number
|
where od.order_id = #{orderId}
|
and ps.processes = #{processes}
|
and ps.scheduling_id IS NOT NULL
|
order by ps.id desc
|
</select>
|
<!-- 查询未排版数据-->
|
<select id="selectNoSchedulingMp">
|
|
</select>
|
<!-- 首次查询排版数据-->
|
<select id="selectLastSchedulingMp">
|
select od.order_id,
|
o.customer_name,
|
o.project,
|
od.order_number,
|
od.width,
|
od.height,
|
od.quantity,
|
round(od.width * od.height * od.quantity / 1000000, 2) as area,
|
(od.quantity - IFNULL(ps.scheduling_quantity, 0)) as pendingProductionQuantity,
|
round(od.width * od.height * (od.quantity - IFNULL(ps.scheduling_quantity, 0)) / 1000000,
|
2) as pendingProductionArea,
|
IFNULL(ps.scheduling_quantity, 0) as productionScheduledQuantity,
|
round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000,
|
2) as productionScheduledArea,
|
od.product_name,
|
od.shape
|
from sd.order_detail as od
|
left join sd.order as o on od.order_id = o.order_id
|
left join production_scheduling as ps
|
on ps.order_id = od.order_id and ps.order_number = od.order_number
|
where date(od.create_time)>=#{selectTime1} and date(od.create_time) <= #{selectTime2}
|
</select>
|
|
<!-- 查询对应序号的层数-->
|
<select id="selectLayer">
|
select COUNT(ogd.order_number)
|
from sd.order_glass_detail as ogd
|
where ogd.production_id = #{productionId}
|
and ogd.order_number = #{orderNumber}
|
</select>
|
<!-- 查询该订单流程卡条数 -->
|
<select id="selectFlowCardCount">
|
select COUNT(*)
|
from flow_card
|
where order_id = #{orderId}
|
</select>
|
|
<select id="flowCardDetailMp">
|
select fc.order_id,
|
fc.process_id,
|
fc.order_number,
|
fc.technology_number,
|
fc.quantity,
|
ogd.child_width,
|
ogd.child_height,
|
round(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
|
od.product_name,
|
ogd.glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
ogd.process,
|
c.concatNumber
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
|
left join (
|
select process_id,technology_number, GROUP_CONCAT(order_number) as concatNumber from
|
flow_card where process_id = #{processId} GROUP BY process_id,technology_number
|
) as c on c.process_id=fc.process_id
|
where fc.process_id = #{processId}
|
GROUP BY fc.order_id, fc.process_id, fc.order_number, fc.technology_number
|
order by fc.order_number, fc.technology_number
|
</select>
|
|
<delete id="deleteReportingWork">
|
delete
|
from sd.order_process_detail
|
where process_id = #{processId}
|
</delete>
|
|
<delete id="deleteReportingWorkByOrderId">
|
delete
|
from sd.order_process_detail
|
where order_id = #{orderId}
|
</delete>
|
|
|
|
<select id="selectPrintFlowCardMp">
|
select order_id,
|
project,
|
customer_name,
|
quantity,
|
area,
|
order_type,
|
pack_type,
|
batch
|
from sd.order
|
where date(create_time)>=#{selectTime1} and date(create_time) <= #{selectTime2}
|
and position(#{orderId} in order_id)
|
and position(#{project} in project)
|
and if(#{state}=0,(order_review >0 and processing_card =0),processing_card >0)
|
order by create_time desc
|
</select>
|
|
<select id="selectPrintFlowCard">
|
select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum,glass_type,glass_thickness
|
from pp.optimize_project as op
|
left join pp.flow_card as fc on op.project_no=fc.project_no
|
left join sd.`order` as o on o.order_id=fc.order_id
|
where date(op.create_time)>=#{selectTime1} and date(op.create_time) <= #{selectTime2}
|
and state >= 20 and (o.create_order>0 or o.create_order is null)
|
GROUP BY op.project_no
|
order by op.create_time desc
|
</select>
|
|
<select id="selectPrintMp">
|
SELECT result.*,fcc.print_status from ( select *
|
from ((select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
ogdss.technology_number,
|
ogd.glass_address,
|
ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
|
# sum(ogd.total_area) as total_area,
|
ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) as total_area,
|
od.product_name,
|
ogdss.concatenated_glass_child as glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
processed_part as process,
|
merge
|
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od
|
on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join (select ogds.order_id,
|
ogds.order_number,
|
GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
|
ogds.glass_child AS concatenated_glass_child,
|
process AS processed_part,
|
ogds.child_width,
|
ogds.child_height,
|
ogds.group
|
from sd.order_glass_detail as ogds
|
where ogds.order_id = #{orderId}
|
GROUP BY order_id, order_number, ogds.glass_child, process,ogds.group) as ogdss
|
on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id, ogdss.concatenated_glass_child, ogdss.processed_part,ogdss.group
|
order by fc.process_id, ogdss.technology_number)
|
|
UNION
|
|
(select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
ogdss.technology_number,
|
ogd.glass_address,
|
ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
|
# sum(ogd.total_area) as total_area,
|
ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) as total_area,
|
od.product_name,
|
ogdss.concatenated_glass_child as glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
processed_part as process,
|
merge
|
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od
|
on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join (select ogds.order_id,
|
ogds.order_number,
|
GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
|
ogds.glass_child,
|
GROUP_CONCAT(ogds.glass_child SEPARATOR '+') AS concatenated_glass_child,
|
SUBSTRING(process, LOCATE(bd.basic_name, process)) AS processed_part
|
from sd.order_glass_detail as ogds
|
left join sd.basic_data as bd on bd.nickname='stepC'
|
where ogds.order_id = #{orderId}
|
and LOCATE(bd.basic_name, ogds.process) > 0
|
GROUP BY order_id, order_number, ogds.group) as ogdss
|
on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id, ogdss.technology_number
|
order by fc.process_id)
|
UNION
|
(select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
ogdss.technology_number,
|
ogd.glass_address,
|
ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
|
ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) as total_area,
|
od.product_name,
|
ogdss.concatenated_glass_child as glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
processed_part as process,
|
merge
|
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od
|
on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join (select ogds.order_id,
|
ogds.order_number,
|
GROUP_CONCAT(pds.glass_sort SEPARATOR '') AS technology_number,
|
ogds.glass_child,
|
GROUP_CONCAT(ogds.glass_child SEPARATOR '+') AS concatenated_glass_child,
|
SUBSTRING(ogds.process, LOCATE(bd.basic_name, ogds.process)) AS processed_part
|
from sd.order_glass_detail as ogds
|
left join sd.order_detail as ods
|
on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
|
left join sd.product_detail as pds on pds.prod_id = ods.product_id and
|
pds.glass_sort =
|
ogds.technology_number
|
left join sd.basic_data as bd on bd.nickname='stepD'
|
where ogds.order_id = #{orderId}
|
GROUP BY order_id, order_number) as ogdss
|
on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id
|
order by fc.process_id)) AS combined_results
|
where process is not null
|
and process != ""
|
GROUP BY order_id, process_id, technology_number, process
|
order by order_id, process_id, length(technology_number)) as result
|
LEFT JOIN (SELECT * from flow_card GROUP BY process_id,technology_number) as fcc
|
on result.process_id = fcc.process_id and result.technology_number = fcc.technology_number
|
</select>
|
|
<select id="getPrimaryList">
|
select o.customer_name,
|
o.project,
|
#{process} process,
|
od.edging_type,
|
#{glassChild} as glass_child,
|
od.product_name,
|
o.processing_note,
|
fc.process_id,
|
SUM(od.quantity) as quantity,
|
round(SUM(ogd.total_area), 2) as gross_area,
|
sum(od.weight) as weight,
|
#{technologyNumber} as technologyNumber,
|
concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
|
concat('对应我司单号', o.batch) AS otherRemarks,
|
'' as qrcode,
|
ifnull(rack,"") as rack
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join sd.product as p on p.id = od.product_id
|
left join (select ogd.order_id,
|
ogd.order_number,
|
ogd.technology_number,
|
ogd.glass_child,
|
GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
|
from sd.order_glass_detail as ogd
|
where ogd.order_id = #{orderId}
|
and position(ogd.technology_number in #{technologyNumber})
|
GROUP BY order_id, order_number) as ogdc
|
on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
|
ogdc.technology_number = ogd.technology_number
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{technologyNumber})
|
group by fc.process_id
|
</select>
|
|
<select id="getPrimaryLists">
|
select o.customer_name,
|
o.project,
|
#{process} process,
|
od.edging_type,
|
#{glassChild} as glass_child,
|
od.product_name,
|
o.processing_note,
|
fc.process_id,
|
#{quantity} as quantity,
|
round(od.width*od.height*#{quantity}/1000000, 2) as gross_area,
|
sum(od.weight) as weight,
|
#{technologyNumber} as technologyNumber,
|
concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
|
concat('对应我司单号', o.batch) AS otherRemarks,
|
'' as qrcode
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join sd.product as p on p.id = od.product_id
|
left join (select ogd.order_id,
|
ogd.order_number,
|
ogd.technology_number,
|
ogd.glass_child,
|
GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
|
from sd.order_glass_detail as ogd
|
where ogd.order_id = #{orderId}
|
and position(ogd.technology_number in #{technologyNumber})
|
GROUP BY order_id, order_number) as ogdc
|
on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
|
ogdc.technology_number = ogd.technology_number
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{technologyNumber})
|
group by fc.process_id
|
</select>
|
|
<select id="getDetailList">
|
select fc.order_number,
|
concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1))) as child_width,
|
fc.quantity,
|
round(ogd.total_area, 2) as total_area,
|
od.perimeter,
|
if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
|
concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
fc.technology_number,
|
IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
|
od.building_number
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join flow_card_sort as fcs
|
on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
|
fcs.technology_number = fc.technology_number
|
and fcs.process = #{process}
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{technologyNumber})
|
group by fc.process_id, fc.order_number
|
<choose>
|
<!-- landingSequence != 1 时,优先按 landing_sequence 倒序 -->
|
<when test="landingSequence != 1">
|
ORDER BY landing_sequence DESC
|
</when>
|
<!-- flashback = 1 时正序 -->
|
<when test="flashback == 1">
|
ORDER BY
|
CASE
|
WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
|
ELSE fc.order_number
|
END ASC
|
</when>
|
<!-- flashback != 1 时倒序 -->
|
<otherwise>
|
ORDER BY
|
CASE
|
WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
|
ELSE fc.order_number
|
END DESC
|
</otherwise>
|
</choose>
|
</select>
|
|
<select id="getDetailLists">
|
select fc.order_number,
|
concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
|
fc.quantity,
|
round(ogd.total_area, 2) as total_area,
|
od.perimeter,
|
if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
|
concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
fc.technology_number,
|
IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
|
od.building_number
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join flow_card_sort as fcs
|
on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
|
fcs.technology_number = fc.technology_number
|
and fcs.process = #{process}
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{technologyNumber})
|
and fc.order_sort = #{orderNumber}
|
group by fc.process_id, fc.order_number
|
order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
|
</select>
|
|
<select id="getProcessList">
|
select *
|
from sd.order_process_detail
|
where process_id = #{processId}
|
and technology_number = #{technologyNumber}
|
group by process
|
</select>
|
|
<update id="updateInventory">
|
update flow_card
|
set inventory_quantity=#{completedQuantity}
|
where process_id = #{processId}
|
and order_number = #{orderNumber}
|
and technology_number = #{technologyNumber}
|
</update>
|
|
<!-- 复选框修改排版状态-->
|
<update id="updateComposing">
|
update flow_card as fc
|
set fc.layout_status=1
|
where fc.process_id = #{processId}
|
</update>
|
|
<!-- 复选框修改流程卡合架-->
|
<update id="updateProcessCardRack">
|
update flow_card as fc
|
set fc.rack=#{rack}
|
where fc.process_id = #{processId} and fc.technology_number=#{technologyNumber}
|
</update>
|
|
<select id="getPrintLabel">
|
select o.order_id,
|
c.customer_abbreviation as customer_name,
|
o.project,
|
od.building_number,
|
od.processing_note,
|
opd.o_width as width,
|
opd.o_height as height,
|
ogd.glass_child,
|
ogd.process,
|
e.type_name,
|
opd.stock_id,
|
opd.polys_id,
|
IFNULL(od.quantity,1) as quantity,
|
od.other_columns,
|
od.bend_radius,
|
ifnull(od.order_number,0) as heat_layout_id,
|
ifnull(a.id,0) as heat_layout_sort,
|
od.product_name,
|
opd.process_id
|
from pp.optimize_detail opd
|
left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id
|
left join sd.order_detail od
|
on SUBSTR(opd.process_id, 1, 10) = od.order_id and opd.order_sort = od.order_number
|
left join sd.order_glass_detail ogd
|
on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and
|
opd.layer = ogd.technology_number
|
left join sd.product p on od.product_id = p.id
|
left join sd.basic_glass_type e on e.type_id = p.type_id
|
left join sd.customer c on c.id = o.customer_id
|
left join
|
(select (@row_number := @row_number + 1) as id,process_id as process_id from (select process_id from pp.optimize_detail tt where project_no =#{projectNo} group by process_id) tt,(select @row_number := 0) as t) a
|
on a.process_id=opd.process_id
|
where opd.project_no = #{projectNo}
|
order by opd.stock_id,opd.polys_id
|
</select>
|
|
<select id="getPrintLabel2">
|
select o.order_id,
|
c.customer_abbreviation as customer_name,
|
o.project,
|
od.building_number,
|
od.processing_note,
|
ogd.child_width as width,
|
ogd.child_height as height,
|
ogd.glass_child,
|
ogd.process,
|
e.type_name,
|
opd.stock_id,
|
opd.polys_id,
|
od.quantity,
|
od.other_columns,
|
od.bend_radius,
|
opd.heat_layout_id,
|
opd.heat_layout_sort,
|
od.product_name,
|
opd.process_id
|
from pp.optimize_detail opd
|
left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id
|
left join sd.order_detail od
|
on SUBSTR(opd.process_id, 1, 10) = od.order_id and opd.order_sort = od.order_number
|
left join sd.order_glass_detail ogd
|
on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and
|
opd.layer = ogd.technology_number
|
left join sd.product p on od.product_id = p.id
|
left join sd.basic_glass_type e on e.type_id = p.type_id
|
left join sd.customer c on c.id = o.customer_id
|
where opd.project_no = #{projectNo} and o.order_id is not null
|
order by opd.heat_layout_id, opd.heat_layout_sort desc
|
</select>
|
|
<select id="getPrintLabel1">
|
select o.order_id,
|
o.project,
|
o.customer_id,
|
ogd.child_width as width,
|
ogd.child_height as height,
|
fc.quantity,
|
od.order_number as orderNumber,
|
fc.technology_number as technologyNumber,
|
ogd.glass_child,
|
ogd.process,
|
c.customer_abbreviation as customer_name,
|
ifnull(od.processing_note, '') as processing_note,
|
bgt.type_name,
|
od.other_columns,
|
od.building_number,
|
od.bend_radius
|
from sd.order as o
|
left join sd.order_detail as od on o.order_id = od.order_id
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = od.order_id and ogd.order_number = od.order_number
|
left join pp.flow_card as fc on o.order_id = fc.order_id and
|
od.order_number = fc.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.product pt on pt.id = od.product_id
|
left join sd.customer c on c.id = o.customer_id
|
left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
|
where fc.process_id = #{processId}
|
and fc.technology_number = #{technologyNumber}
|
group by od.order_number, od.width, od.height
|
</select>
|
|
<select id="getPrintLabelDetail">
|
select o.order_id,
|
o.project,
|
o.customer_id,
|
ogd.child_width as width,
|
ogd.child_height as height,
|
fc.quantity,
|
od.order_number as orderNumber,
|
fc.technology_number as technologyNumber,
|
ogd.glass_child,
|
ogd.process,
|
c.customer_abbreviation as customer_name,
|
ifnull(od.processing_note, '') as processing_note,
|
bgt.type_name,
|
od.other_columns,
|
od.building_number,
|
od.bend_radius
|
from sd.order as o
|
left join sd.order_detail as od on o.order_id = od.order_id
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = od.order_id and ogd.order_number = od.order_number
|
left join pp.flow_card as fc on o.order_id = fc.order_id and
|
od.order_number = fc.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.product pt on pt.id = od.product_id
|
left join sd.customer c on c.id = o.customer_id
|
left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
|
<where>
|
and fc.process_id = #{flowCard.processId}
|
and fc.order_number = #{flowCard.orderNumber}
|
<if test="flowCard.technologyNumber != null and flowCard.technologyNumber != ''">
|
and fc.technology_number = #{flowCard.technologyNumber}
|
</if>
|
</where>
|
group by od.order_number,fc.technology_number, od.width, od.height
|
</select>
|
|
<select id="printFlowCardDetailsMp">
|
SELECT fc.process_id,
|
fc.order_number,
|
fc.technology_number,
|
ogd.glass_address,
|
ogd.child_width,
|
ogd.child_height,
|
fc.quantity,
|
ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
|
ifnull(fcs.sort, '') as sort,
|
ogd.glass_child,
|
#{process} as process,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius
|
FROM flow_card AS fc
|
LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
|
AND fc.order_number = ogd.order_number
|
AND fc.technology_number = ogd.technology_number
|
left join flow_card_sort as fcs
|
on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
|
fcs.technology_number = fc.technology_number
|
and fcs.process = #{process}
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{technologyNumber})
|
GROUP BY fc.process_id,fc.order_number,fc.technology_number
|
order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
|
</select>
|
|
<update id="printSortMp">
|
update flow_card
|
set sort = #{sort}
|
where process_id = #{processId}
|
and order_number = #{orderNumber}
|
and technology_number = #{technologyNumber}
|
</update>
|
|
<select id="selectType">
|
select *
|
from pp.tag_style
|
</select>
|
<select id="getPrintTitle">
|
select value
|
from pp.tag_style as a
|
where a.name = #{type}
|
</select>
|
|
<select id="getCustomLabelDetailMp">
|
select #{name}
|
from #{form}
|
where order_id = #{id}
|
</select>
|
|
<resultMap id="orderDetial" type="com.example.erp.entity.sd.OrderDetail">
|
<result column="width" property="width"/>
|
<result column="height" property="height"/>
|
<result column="order_id" property="order.orderId"/>
|
<result column="project" property="order.project"/>
|
<result column="customer_id" property="order.customerId"/>
|
<result column="customer_name" property="order.customerName"/>
|
<result column="order_type" property="order.orderType"/>
|
<result column="order_classify" property="order.orderClassify"/>
|
<result column="batch" property="order.batch"/>
|
<result column="icon" property="order.icon"/>
|
<result column="pack_type" property="order.packType"/>
|
<result column="delivery_date" property="order.deliveryDate"/>
|
<result column="al_type" property="order.alType"/>
|
<result column="money" property="order.money"/>
|
<result column="contract_id" property="order.contractId"/>
|
<result column="customer_batch" property="order.customerBatch"/>
|
<result column="contacts" property="order.contacts"/>
|
<result column="delivery_address" property="order.deliveryAddress"/>
|
<result column="processing_note" property="processingNote"/>
|
<result column="quantity" property="quantity"/>
|
<result column="edging_type" property="edgingType"/>
|
<result column="product_name" property="productName"/>
|
<result column="building_number" property="buildingNumber"/>
|
</resultMap>
|
|
<select id="getPrintCustomData">
|
select o.order_id as orderId,
|
project,
|
customer_id as customerId,
|
o.customer_name as customerName,
|
order_type as orderType,
|
order_classify as orderClassify,
|
batch,
|
o.icon,
|
pack_type as packType,
|
delivery_date as deliveryDate,
|
al_type as alType,
|
money,
|
contract_id as contractId,
|
customer_batch customerBatch,
|
contacts,
|
delivery_address as deliveryAddress,
|
od.processing_note as processingNote,
|
width,
|
height,
|
fc.quantity,
|
od.order_number as orderNumber,
|
fc.technology_number as technologyNumber,
|
od.building_number as buildingNumber,
|
od.product_name as productName,
|
od.edging_type as edgingType,
|
od.remarks,
|
c.customer_abbreviation as customerAbbreviation,
|
p.product_abbreviation as productAbbreviation,
|
fc.process_id as processId,
|
o.create_time as createTime,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
|
p.remarks as filmNumber,
|
od.bend_radius as bendRadius,
|
od.other_columns,
|
ogd.glass_child as glassChild,
|
ogd.glass_address as glassAddress,
|
JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color
|
from sd.order as o
|
left join sd.order_detail as od on o.order_id = od.order_id
|
left join flow_card as fc on o.order_id = fc.order_id and
|
od.order_number = fc.order_number
|
left join sd.product as p on p.id = od.product_id
|
left join sd.customer as c on c.id = o.customer_id
|
left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
|
pd.glass_sort = fc.technology_number
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
and fc.order_number = #{orderNumber}
|
group by od.order_number, width, height
|
order by fc.process_id
|
</select>
|
|
<select id="getPrintCustomData2">
|
select o.order_id as orderId,
|
project,
|
customer_id as customerId,
|
o.customer_name as customerName,
|
order_type as orderType,
|
order_classify as orderClassify,
|
batch,
|
o.icon,
|
pack_type as packType,
|
delivery_date as deliveryDate,
|
al_type as alType,
|
money,
|
contract_id as contractId,
|
customer_batch customerBatch,
|
contacts,
|
delivery_address as deliveryAddress,
|
od.processing_note as processingNote,
|
width,
|
height,
|
fc.quantity,
|
od.order_number as orderNumber,
|
fc.technology_number as technologyNumber,
|
od.building_number as buildingNumber,
|
od.product_name as productName,
|
od.edging_type as edgingType,
|
od.remarks,
|
c.customer_abbreviation as customerAbbreviation,
|
p.product_abbreviation as productAbbreviation,
|
fc.process_id as processId,
|
o.create_time as createTime,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
|
p.remarks as filmNumber,
|
od.bend_radius as bendRadius,
|
od.other_columns,
|
ogd.glass_child as glassChild,
|
ogd.glass_address as glassAddress,
|
JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color
|
from sd.order as o
|
left join sd.order_detail as od on o.order_id = od.order_id
|
left join flow_card as fc on o.order_id = fc.order_id and
|
od.order_number = fc.order_number
|
left join sd.product as p on p.id = od.product_id
|
left join sd.customer as c on c.id = o.customer_id
|
left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
|
pd.glass_sort = fc.technology_number
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
group by od.order_number
|
order by fc.process_id
|
</select>
|
|
<select id="selectReplenishPrintMp">
|
select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
fc.order_number,
|
ogd.technology_number,
|
ogd.glass_address,
|
pl.patch_num,
|
pl.patch_area,
|
pl.responsible_team,
|
pl.responsible_equipment,
|
pl.responsible_personnel,
|
pl.patch_type,
|
pl.patch_reason,
|
pl.patch_processes,
|
od.product_name,
|
ogd.glass_child,
|
fc.print_status,
|
pl.reporting_work_id,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
pl.patch_id
|
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join patch_log as pl on pl.order_id = fc.order_id and pl.process_id = fc.process_id and
|
pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
where date(pl.create_time)>=#{selectTime1} and date(pl.create_time) <= #{selectTime2}
|
and pl.review_status > 0
|
GROUP BY pl.id, fc.process_id, ogd.technology_number
|
order by pl.id desc, fc.process_id, ogd.technology_number
|
</select>
|
|
<select id="getRepairPrintCustomData">
|
select o.order_id as orderId,
|
o.project,
|
o.customer_id as customerId,
|
o.customer_name as customerName,
|
o.order_type as orderType,
|
o.order_classify as orderClassify,
|
o.batch,
|
o.icon,
|
o.pack_type as packType,
|
o.delivery_date as deliveryDate,
|
o.al_type as alType,
|
o.money,
|
contract_id as contractId,
|
customer_batch customerBatch,
|
contacts,
|
o.delivery_address as deliveryAddress,
|
od.processing_note as processingNote,
|
od.width,
|
od.height,
|
pl.patch_num as quantity,
|
pl.order_sort as orderNumber,
|
pl.technology_number as technologyNumber,
|
od.building_number as buildingNumber,
|
od.product_name as productName,
|
od.edging_type as edgingType,
|
p.remarks,
|
c.customer_abbreviation as customerAbbreviation,
|
p.product_abbreviation as productAbbreviation,
|
fc.process_id as processId,
|
o.create_time as createTime,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
|
p.remarks as filmNumber,
|
od.bend_radius as bendRadius,
|
CONCAT(
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
|
' X ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
|
' = ',pl.patch_num ) as size,
|
|
CONCAT(
|
od.order_number,') ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
|
' X ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
|
' = ',pl.patch_num ) as numberSize
|
from sd.order as o
|
left join sd.order_detail as od on o.order_id = od.order_id
|
left join flow_card as fc on o.order_id = fc.order_id and
|
od.order_number = fc.order_number
|
left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
left join sd.product as p on p.id = od.product_id
|
left join sd.customer as c on c.id = o.customer_id
|
left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
|
where pl.process_id = #{processId}
|
and pl.order_sort=#{orderNumber}
|
and pl.technology_number = #{technologyNumber}
|
and pl.reporting_work_id = #{reportingWorkId}
|
group by od.order_number, width, height
|
order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
|
</select>
|
|
<select id="getGlassNumber">
|
select other_columns
|
from sd.order_detail as od
|
left join flow_card as fc on od.order_id = fc.order_id and od.order_number = fc.order_number
|
where fc.process_id = #{processId}
|
and POSITION(fc.technology_number in #{technologyNumber})
|
GROUP BY other_columns
|
order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.order_number)
|
</select>
|
|
<update id="updatePrintStateMp">
|
update pp.flow_card
|
set print_status = print_status + 1
|
where process_id = #{processId}
|
and technology_number = #{technologyNumber}
|
</update>
|
|
<select id="printFlowCardOrderSortMp">
|
SELECT fc.process_id,
|
fc.order_number,
|
fc.technology_number,
|
ogd.glass_address,
|
ogd.child_width,
|
ogd.child_height,
|
fc.quantity,
|
ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
|
fc.sort,
|
ogd.process,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber
|
FROM flow_card AS fc
|
LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
|
AND fc.order_number = ogd.order_number
|
AND fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on fc.order_id = od.order_id and fc.order_number = od.order_number
|
where fc.order_id = #{orderId}
|
order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.technology_number)
|
</select>
|
|
<update id="printOrderSortMp">
|
update flow_card
|
set sort = #{sort}
|
where process_id = #{processId}
|
and order_number = #{orderNumber}
|
and technology_number = #{technologyNumber}
|
</update>
|
|
<select id="getPrimaryListMerge">
|
select o.customer_name,
|
o.project,
|
ogd.process,
|
od.edging_type,
|
ogdc.concatenated_glass_child as glass_child,
|
od.product_name,
|
o.processing_note,
|
fc.process_id,
|
SUM(od.quantity) as quantity,
|
round(SUM(ogd.total_area), 2) as gross_area,
|
sum(od.weight) as weight,
|
#{technologyNumber} as technologyNumber,
|
concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
|
concat('对应我司单号', o.batch) AS otherRemarks
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join sd.product as p on p.id = od.product_id
|
left join (select ogd.order_id,
|
ogd.order_number,
|
ogd.technology_number,
|
ogd.glass_child,
|
GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
|
from sd.order_glass_detail as ogd
|
where ogd.order_id = #{orderId}
|
and position(ogd.technology_number in #{technologyNumber})
|
GROUP BY order_id, order_number) as ogdc
|
on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
|
ogdc.technology_number = ogd.technology_number
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{technologyNumber})
|
and ogdc.concatenated_glass_child is NOT null
|
group by fc.process_id, fc.technology_number
|
</select>
|
|
<select id="selectorderOtherMoney">
|
select *
|
from sd.basic_other_money
|
where id between 21 and 35
|
</select>
|
|
<select id="selectReworkPrintMp">
|
select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
fc.order_number,
|
ogd.technology_number,
|
ogd.glass_address,
|
pl.rework_num,
|
pl.rework_area,
|
pl.rework_team,
|
pl.responsible_equipment,
|
pl.responsible_personnel,
|
pl.rework_type,
|
pl.rework_reason,
|
pl.rework_processes,
|
od.product_name,
|
ogd.glass_child,
|
pl.reporting_work_id,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join rework as pl on pl.order_id = fc.order_id and pl.process_id = fc.process_id and
|
pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
where date(pl.create_time)>=#{selectTime1} and date(pl.create_time) <= #{selectTime2}
|
GROUP BY fc.process_id,fc.order_number, ogd.technology_number, pl.reporting_work_id
|
order by pl.id desc, fc.process_id, ogd.technology_number
|
</select>
|
|
<select id="getDetailListLike">
|
select fc.order_number,
|
concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1))) as child_width,
|
fc.quantity,
|
round(ogd.total_area, 2) as total_area,
|
od.perimeter,
|
if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
|
concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
fc.technology_number,
|
IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
|
od.building_number
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join flow_card_sort as fcs
|
on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
|
fcs.technology_number = fc.technology_number
|
and fcs.process = #{process}
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{technologyNumber})
|
group by fc.process_id, fc.order_number, fc.technology_number
|
<choose>
|
<!-- landingSequence != 1 时,优先按 landing_sequence 倒序 -->
|
<when test="landingSequence != 1">
|
ORDER BY landing_sequence DESC
|
</when>
|
<!-- flashback = 1 时正序 -->
|
<when test="flashback == 1">
|
ORDER BY
|
CASE
|
WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
|
ELSE fc.order_number
|
END ASC
|
</when>
|
<!-- flashback != 1 时倒序 -->
|
<otherwise>
|
ORDER BY
|
CASE
|
WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
|
ELSE fc.order_number
|
END DESC
|
</otherwise>
|
</choose>
|
</select>
|
|
<select id="getDetailListMerge">
|
select fc.order_number,
|
concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1))) as child_width,
|
sum(fc.quantity) as quantity,
|
round(ogd.total_area, 2) as total_area,
|
od.perimeter,
|
if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
|
concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
fc.technology_number,
|
IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
|
od.building_number,
|
fc.merge as merge
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join flow_card_sort as fcs
|
on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
|
fcs.technology_number = fc.technology_number
|
and fcs.process = #{process}
|
where fc.process_id = #{processId} and fc.`merge`=1
|
group by fc.process_id, fc.order_number
|
<choose>
|
<!-- landingSequence != 1 时,优先按 landing_sequence 倒序 -->
|
<when test="landingSequence != 1">
|
ORDER BY landing_sequence DESC
|
</when>
|
<!-- flashback = 1 时正序 -->
|
<when test="flashback == 1">
|
ORDER BY
|
CASE
|
WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
|
ELSE fc.order_number
|
END ASC
|
</when>
|
<!-- flashback != 1 时倒序 -->
|
<otherwise>
|
ORDER BY
|
CASE
|
WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
|
ELSE fc.order_number
|
END DESC
|
</otherwise>
|
</choose>
|
</select>
|
|
<select id="getDetailListLikes">
|
select fc.order_number,
|
concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
|
count(*) as quantity,
|
round(ogd.child_width*ogd.child_height*count(*)/1000000, 2) as total_area,
|
round((ogd.child_width+ogd.child_height)*2*count(*)/1000, 2) as perimeter,
|
if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
|
concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
fc.technology_number,
|
IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
|
od.building_number
|
from optimize_detail opt left join flow_card as fc on opt.process_id = fc.process_id and opt.order_sort = fc.order_number and
|
opt.layer = fc.technology_number
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join flow_card_sort as fcs
|
on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
|
fcs.technology_number = fc.technology_number
|
and fcs.process = #{process}
|
where opt.process_id = #{processId} and opt.project_no=#{printProject}
|
and position(fc.technology_number in #{technologyNumber})
|
group by fc.process_id, fc.order_number, fc.technology_number
|
order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
|
</select>
|
|
<select id="getPrimaryListMergeRefund">
|
select o.customer_name,
|
o.project,
|
ogd.process,
|
od.edging_type,
|
ogdc.concatenated_glass_child as glass_child,
|
od.product_name,
|
o.processing_note,
|
fc.process_id,
|
pl.patch_num as quantity,
|
round(SUM(ogd.total_area), 2) as gross_area,
|
sum(od.weight) as weight,
|
#{technologyNumber} as technologyNumber,
|
concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join sd.product as p on p.id = od.product_id
|
left join (select ogd.order_id,
|
ogd.order_number,
|
ogd.technology_number,
|
ogd.glass_child,
|
GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
|
from sd.order_glass_detail as ogd
|
where ogd.order_id = #{orderId}
|
and ogd.order_number = #{orderNumber}
|
and position(ogd.technology_number in #{technologyNumber})
|
GROUP BY order_id, order_number) as ogdc
|
on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
|
ogdc.technology_number = ogd.technology_number
|
left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
and fc.order_number = #{orderNumber}
|
and position(fc.technology_number in #{technologyNumber})
|
and ogdc.concatenated_glass_child is NOT null
|
group by fc.process_id, fc.technology_number
|
</select>
|
|
<select id="getDetailListRefund">
|
select fc.order_number,
|
concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
|
sum(pl.patch_num) as quantity,
|
round(ogd.total_area, 2) as total_area,
|
od.perimeter,
|
if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
|
concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
fc.technology_number,
|
pl.patch_type,
|
pl.patch_reason,
|
pl.patch_processes,
|
pl.responsible_team,
|
pl.responsible_personnel
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
and fc.order_number = #{orderNumber}
|
and position(fc.technology_number in #{technologyNumber})
|
and pl.reporting_work_id = #{reportingWorkId}
|
and pl.patch_reason = #{patchReason}
|
group by fc.process_id, fc.order_number, fc.technology_number,pl.id
|
order by IF(sort != NULL and sort != '', sort, fc.order_number)
|
</select>
|
|
<select id="getPrimaryListRefund">
|
select o.customer_name,
|
o.project,
|
ogd.process,
|
od.edging_type,
|
ogd.glass_child,
|
od.product_name,
|
o.processing_note,
|
fc.process_id,
|
pl.patch_num as quantity,
|
round(SUM(ogd.total_area), 2) as gross_area,
|
sum(od.weight) as weight,
|
#{technologyNumber} as technologyNumber,
|
concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
|
dd.breakage_type,
|
dd.breakage_reason,
|
dd.responsible_process,
|
dd.responsible_team,
|
concat('对应我司单号', o.batch) AS otherRemarks,
|
dd.responsible_personnel,
|
#{mergeTechnologyNumber} as mergeTechnologyNumber,
|
pl.patch_id
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join sd.product as p on p.id = od.product_id
|
left join (select ogd.order_id,
|
ogd.order_number,
|
ogd.technology_number,
|
ogd.glass_child,
|
GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
|
from sd.order_glass_detail as ogd
|
where ogd.order_id = #{orderId}
|
and ogd.order_number = #{orderNumber}
|
and position(ogd.technology_number in #{technologyNumber})
|
GROUP BY order_id, order_number) as ogdc
|
on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
|
ogdc.technology_number = ogd.technology_number
|
left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
left join pp.reporting_work as rw on rw.order_id = fc.order_id and rw.process_id = fc.process_id
|
left join pp.damage_details as dd
|
on rw.reporting_work_id = dd.reporting_work_id and dd.order_number = fc.order_number and
|
dd.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
and fc.order_number = #{orderNumber}
|
and fc.technology_number = #{technologyNumber}
|
and pl.reporting_work_id = #{reportingWorkId}
|
and dd.breakage_reason = #{patchReason}
|
group by fc.process_id, fc.technology_number
|
</select>
|
|
<select id="getDetailListLikeRefund">
|
select fc.order_number,
|
concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
|
pl.patch_num as quantity,
|
round(ogd.total_area, 2) as total_area,
|
od.perimeter,
|
od.bend_radius,
|
concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
fc.technology_number
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
and fc.order_number = #{orderNumber}
|
and position(fc.technology_number in #{technologyNumber})
|
and pl.reporting_work_id = #{reportingWorkId}
|
group by fc.process_id, fc.order_number, fc.technology_number
|
order by IF(sort != NULL and sort != '', sort, fc.order_number)
|
</select>
|
|
<select id="getPrimaryListRework">
|
select o.customer_name,
|
o.project,
|
ogd.process,
|
od.edging_type,
|
ogd.glass_child,
|
od.product_name,
|
o.processing_note,
|
fc.process_id,
|
pl.rework_num as quantity,
|
round(SUM(ogd.total_area), 2) as gross_area,
|
sum(od.weight) as weight,
|
#{technologyNumber} as technologyNumber,
|
concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
|
dd.breakage_type,
|
dd.breakage_reason,
|
dd.responsible_process,
|
dd.responsible_team,
|
concat('对应我司单号', o.batch) AS otherRemarks,
|
dd.responsible_personnel,
|
pl.rework_id as patch_id
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join sd.product as p on p.id = od.product_id
|
left join (select ogd.order_id,
|
ogd.order_number,
|
ogd.technology_number,
|
ogd.glass_child,
|
GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
|
from sd.order_glass_detail as ogd
|
where ogd.order_id = #{orderId}
|
and ogd.order_number = #{orderNumber}
|
and position(ogd.technology_number in #{technologyNumber})
|
GROUP BY order_id, order_number) as ogdc
|
on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
|
ogdc.technology_number = ogd.technology_number
|
left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
left join pp.reporting_work as rw on rw.order_id = fc.order_id and rw.process_id = fc.process_id
|
left join pp.damage_details as dd
|
on rw.reporting_work_id = dd.reporting_work_id and dd.order_number = fc.order_number and
|
dd.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
and fc.order_number = #{orderNumber}
|
and fc.technology_number = #{technologyNumber}
|
and rw.reporting_work_id = #{reportingWorkId}
|
group by fc.process_id, fc.technology_number
|
</select>
|
|
<select id="getDetailListRework">
|
select fc.order_number,
|
concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
|
(pl.rework_num) as quantity,
|
round(ogd.total_area, 2) as total_area,
|
od.perimeter,
|
if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
|
concat(od.processing_note, od.remarks) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
fc.technology_number,
|
pl.rework_type as patch_type,
|
pl.rework_reason as patch_reason,
|
pl.rework_processes as patch_processes,
|
pl.responsible_team,
|
pl.rework_team,
|
pl.responsible_personnel
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
and fc.order_number = #{orderNumber}
|
and position(fc.technology_number in #{technologyNumber})
|
and pl.reporting_work_id = #{reportingWorkId}
|
group by fc.process_id, fc.order_number, fc.technology_number
|
order by IF(sort != NULL and sort != '', sort, fc.order_number)
|
</select>
|
|
<select id="getPrimaryListMergeRework">
|
select o.customer_name,
|
o.project,
|
ogd.process,
|
od.edging_type,
|
ogdc.concatenated_glass_child as glass_child,
|
od.product_name,
|
o.processing_note,
|
fc.process_id,
|
pl.rework_num as quantity,
|
round(SUM(ogd.total_area), 2) as gross_area,
|
sum(od.weight) as weight,
|
#{technologyNumber} as technologyNumber,
|
concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join sd.product as p on p.id = od.product_id
|
left join (select ogd.order_id,
|
ogd.order_number,
|
ogd.technology_number,
|
ogd.glass_child,
|
GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
|
from sd.order_glass_detail as ogd
|
where ogd.order_id = #{orderId}
|
and ogd.order_number = #{orderNumber}
|
and position(ogd.technology_number in #{technologyNumber})
|
GROUP BY order_id, order_number) as ogdc
|
on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
|
ogdc.technology_number = ogd.technology_number
|
left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
and fc.order_number = #{orderNumber}
|
and position(fc.technology_number in #{technologyNumber})
|
and ogdc.concatenated_glass_child is NOT null
|
group by fc.process_id, fc.technology_number
|
</select>
|
|
<select id="getDetailListLikeRework">
|
select fc.order_number,
|
concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
|
pl.rework_num as quantity,
|
round(ogd.total_area, 2) as total_area,
|
od.perimeter,
|
od.bend_radius,
|
concat(od.processing_note, od.remarks) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
fc.technology_number
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
and fc.order_number = #{orderNumber}
|
and position(fc.technology_number in #{technologyNumber})
|
and pl.reporting_work_id = #{reportingWorkId}
|
group by fc.process_id, fc.order_number, fc.technology_number
|
order by IF(sort != NULL or sort != '', sort, fc.order_number)
|
</select>
|
|
<select id="getPrintCustomDataSemi">
|
select o.order_id as orderId,
|
project,
|
customer_id as customerId,
|
o.customer_name as customerName,
|
order_type as orderType,
|
order_classify as orderClassify,
|
batch,
|
o.icon,
|
pack_type as packType,
|
delivery_date as deliveryDate,
|
al_type as alType,
|
money,
|
contract_id as contractId,
|
customer_batch customerBatch,
|
contacts,
|
delivery_address as deliveryAddress,
|
od.processing_note as processingNote,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
fc.quantity,
|
CONCAT(round(ogd.child_width) , ' X ', round(ogd.child_height) ,' = ',fc.quantity ) as size,
|
od.order_number as orderNumber,
|
fc.technology_number as technologyNumber,
|
od.building_number as buildingNumber,
|
od.product_name as productName,
|
od.edging_type as edgingType,
|
od.remarks,
|
c.customer_abbreviation as customerAbbreviation,
|
p.product_abbreviation as productAbbreviation,
|
CONCAT(fc.process_id, '/', fc.technology_number) as processId,
|
o.create_time as createTime,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
|
p.remarks as filmNumber,
|
od.bend_radius as bendRadius,
|
ogd.glass_child as glassChild,
|
ogd.glass_address as glassAddress,
|
JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color
|
from sd.order as o
|
left join sd.order_detail as od on o.order_id = od.order_id
|
left join flow_card as fc on o.order_id = fc.order_id and
|
od.order_number = fc.order_number
|
left join sd.product as p on p.id = od.product_id
|
left join sd.customer as c on c.id = o.customer_id
|
left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
|
left join sd.order_glass_detail ogd
|
on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
|
ogd.technology_number = fc.technology_number
|
left join flow_card_sort as fcs
|
on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
|
fcs.technology_number = fc.technology_number
|
and fcs.process = #{process}
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{technologyNumber})
|
group by fc.process_id,od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height
|
order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
|
</select>
|
|
<select id="selectPrintNotMp">
|
select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
fc.order_number,
|
ogd.technology_number,
|
ogd.glass_address,
|
sum(fc.quantity) as quantity,
|
round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
|
od.product_name,
|
ogd.glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
/* if(fc.print_status=0,'未打印','已打印') as print_status*/
|
fc.print_status,
|
ogd.process,
|
merge
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id, ogd.technology_number
|
order by fc.process_id, ogd.technology_number
|
</select>
|
|
<select id="selectPrintNotMergeMp">
|
select *
|
from ((select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
fc.order_number,
|
ogd.technology_number,
|
ogd.glass_address,
|
sum(od.quantity) as quantity,
|
sum(ogd.total_area) as total_area,
|
od.product_name,
|
ogd.glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
/* if(fc.print_status=0,'未打印','已打印') as print_status*/
|
fc.print_status,
|
ogd.process
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od
|
on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id, ogd.technology_number
|
order by fc.process_id, ogd.technology_number)
|
|
UNION
|
|
(select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
ogdss.technology_number,
|
ogd.glass_address,
|
ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
|
sum(ogd.total_area) as total_area,
|
# SUM(ogd.child_width*child_height*fc.quantity/(count(DISTINCT ogd.technology_number))) as total_area,
|
od.product_name,
|
ogdss.concatenated_glass_child as glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
fc.print_status,
|
processed_part as process
|
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od
|
on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join (select ogds.order_id,
|
ogds.order_number,
|
GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
|
ogds.glass_child,
|
GROUP_CONCAT(ogds.glass_child SEPARATOR ' ') AS concatenated_glass_child,
|
SUBSTRING(process, LOCATE('夹胶', process)) AS processed_part
|
from sd.order_glass_detail as ogds
|
where ogds.order_id = #{orderId}
|
and LOCATE('夹胶', ogds.process) > 0
|
GROUP BY order_id, order_number, ogds.group) as ogdss
|
on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id, ogdss.technology_number
|
order by fc.process_id)
|
UNION
|
(select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
ogdss.technology_number,
|
ogd.glass_address,
|
ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
|
sum(ogd.total_area) as total_area,
|
od.product_name,
|
ogdss.concatenated_glass_child as glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
fc.print_status,
|
processed_part as process
|
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od
|
on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join (select ogds.order_id,
|
ogds.order_number,
|
GROUP_CONCAT(pds.glass_sort SEPARATOR '') AS technology_number,
|
ogds.glass_child,
|
GROUP_CONCAT(ogds.glass_child SEPARATOR ' ') AS concatenated_glass_child,
|
SUBSTRING(pds.process, LOCATE('中空', pds.process)) AS processed_part
|
from sd.order_glass_detail as ogds
|
left join sd.order_detail as ods
|
on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
|
left join sd.product_detail as pds on pds.prod_id = ods.product_id and
|
pds.glass_sort =
|
ogds.technology_number
|
where ogds.order_id = #{orderId}
|
GROUP BY order_id, order_number) as ogdss
|
on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id
|
order by fc.process_id)) AS combined_results
|
where process is not null
|
and process != ""
|
</select>
|
|
<select id="getRepairPrintCustomDataSemi">
|
select o.order_id as orderId,
|
o.project,
|
o.customer_id as customerId,
|
o.customer_name as customerName,
|
o.order_type as orderType,
|
o.order_classify as orderClassify,
|
o.batch,
|
o.icon,
|
o.pack_type as packType,
|
o.delivery_date as deliveryDate,
|
o.al_type as alType,
|
o.money,
|
contract_id as contractId,
|
customer_batch customerBatch,
|
contacts,
|
o.delivery_address as deliveryAddress,
|
od.processing_note as processingNote,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pl.patch_num as quantity,
|
pl.order_sort as orderNumber,
|
pl.technology_number as technologyNumber,
|
od.building_number as buildingNumber,
|
od.product_name as productName,
|
od.edging_type as edgingType,
|
p.remarks,
|
c.customer_abbreviation as customerAbbreviation,
|
p.product_abbreviation as productAbbreviation,
|
CONCAT(fc.process_id, '/', fc.technology_number) as processId,
|
o.create_time as createTime,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
|
p.remarks as filmNumber,
|
od.bend_radius as bendRadius,
|
ogd.glass_child as glassChild,
|
ogd.glass_address as glassAddress,
|
JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
|
CONCAT(
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
|
' X ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
|
' = ',pl.patch_num ) as size,
|
|
CONCAT(
|
od.order_number,') ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
|
' X ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
|
' = ',pl.patch_num ) as numberSize
|
from sd.order as o
|
left join sd.order_detail as od on o.order_id = od.order_id
|
left join flow_card as fc on o.order_id = fc.order_id and
|
od.order_number = fc.order_number
|
left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
|
pl.technology_number = fc.technology_number
|
left join sd.product as p on p.id = od.product_id
|
left join sd.customer as c on c.id = o.customer_id
|
left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
|
left join sd.order_glass_detail ogd
|
on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
|
ogd.technology_number = fc.technology_number
|
where pl.process_id = #{processId}
|
and pl.order_sort=#{orderNumber}
|
and pl.technology_number = #{technologyNumber}
|
and pl.reporting_work_id = #{reportingWorkId}
|
group by od.order_number, width, height
|
order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
|
</select>
|
|
<select id="selectPrintAllMp">
|
select *
|
from ((select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
ogd.technology_number,
|
ogd.glass_address,
|
sum(fc.quantity) as quantity,
|
round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
|
od.product_name,
|
ogd.glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
/* if(fc.print_status=0,'未打印','已打印') as print_status*/
|
fc.print_status,
|
ogd.process,
|
merge
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od
|
on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id, ogd.technology_number
|
order by fc.process_id, ogd.technology_number)
|
|
UNION
|
|
(select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
ogdss.technology_number,
|
ogd.glass_address,
|
ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
|
sum(ogd.total_area) as total_area,
|
# SUM(ogd.child_width*child_height*fc.quantity/(count(DISTINCT ogd.technology_number))) as total_area,
|
od.product_name,
|
ogdss.concatenated_glass_child as glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
fc.print_status,
|
processed_part as process,
|
merge
|
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od
|
on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join (select ogds.order_id,
|
ogds.order_number,
|
GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
|
ogds.glass_child,
|
GROUP_CONCAT(ogds.glass_child SEPARATOR '+') AS concatenated_glass_child,
|
SUBSTRING(process, LOCATE(bd.basic_name, process)) AS processed_part
|
from sd.order_glass_detail as ogds
|
left join sd.basic_data as bd on bd.nickname='stepC'
|
where ogds.order_id = #{orderId}
|
and LOCATE(bd.basic_name, ogds.process) > 0
|
GROUP BY order_id, order_number, ogds.group) as ogdss
|
on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id, ogdss.technology_number
|
order by fc.process_id)
|
UNION
|
(select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
ogdss.technology_number,
|
ogd.glass_address,
|
ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
|
sum(ogd.total_area) as total_area,
|
od.product_name,
|
ogdss.concatenated_glass_child as glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
fc.print_status,
|
processed_part as process,
|
merge
|
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od
|
on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join (select ogds.order_id,
|
ogds.order_number,
|
GROUP_CONCAT(pds.glass_sort SEPARATOR '') AS technology_number,
|
ogds.glass_child,
|
GROUP_CONCAT(ogds.glass_child SEPARATOR '+') AS concatenated_glass_child,
|
SUBSTRING(pds.process, LOCATE(bd.basic_name, pds.process)) AS processed_part
|
from sd.order_glass_detail as ogds
|
left join sd.order_detail as ods
|
on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
|
left join sd.product_detail as pds on pds.prod_id = ods.product_id and
|
pds.glass_sort =
|
ogds.technology_number
|
left join sd.basic_data as bd on bd.nickname='stepD'
|
where ogds.order_id = #{orderId}
|
GROUP BY order_id, order_number) as ogdss
|
on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id
|
order by fc.process_id)) AS combined_results
|
where process is not null
|
and process != ""
|
GROUP BY order_id, process_id, technology_number, process
|
order by order_id, process_id, length(technology_number)
|
</select>
|
|
<insert id="printAddSortMp">
|
insert into flow_card_sort (process_id, order_number, technology_number, process, sort, create_time)
|
values (#{processId}, #{orderNumber}, #{technologyNumber}, #{process}, #{sort}, now())
|
</insert>
|
<select id="printAddSortCountMp">
|
select count(*)
|
from flow_card_sort
|
where process_id = #{processId}
|
and order_number = #{orderNumber}
|
and technology_number = #{technologyNumber}
|
and process = #{process}
|
</select>
|
<update id="printUpdateSortMp">
|
update flow_card_sort
|
set sort = #{sort}
|
where process_id = #{processId}
|
and order_number = #{orderNumber}
|
and technology_number = #{technologyNumber}
|
and process = #{process}
|
</update>
|
|
<select id="getPrimaryListLimt">
|
select o.customer_name,
|
o.project,
|
#{process} process,
|
od.edging_type,
|
#{glassChild} as glass_child,
|
od.product_name,
|
o.processing_note,
|
fc.process_id,
|
SUM(od.quantity) as quantity,
|
round(SUM(ogd.total_area), 2) as gross_area,
|
sum(od.weight) as weight,
|
#{technologyNumber} as technologyNumber,
|
concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
|
concat('对应我司单号', o.batch) AS otherRemarks,
|
fc.technology_number as qrcode
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
left join sd.product as p on p.id = od.product_id
|
left join (select ogd.order_id,
|
ogd.order_number,
|
ogd.technology_number,
|
ogd.glass_child,
|
GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
|
from sd.order_glass_detail as ogd
|
where ogd.order_id = #{orderId}
|
and position(ogd.technology_number in #{technologyNumber})
|
GROUP BY order_id, order_number) as ogdc
|
on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
|
ogdc.technology_number = ogd.technology_number
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{technologyNumber})
|
group by fc.process_id
|
limit 1
|
</select>
|
|
<select id="selectPrintDetailsMp">
|
select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
/*ogd.technology_number,*/
|
ogd.glass_address,
|
(fc.quantity) as quantity,
|
(fc.quantity) as printQuantity,
|
round((ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
|
od.product_name,
|
ogd.glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
/* if(fc.print_status=0,'未打印','已打印') as print_status*/
|
ifnull(fc.print_number,0) as print_status,
|
ogd.process,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
od.order_number,
|
od.width,
|
od.height
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id, od.order_number
|
order by fc.process_id, od.order_number
|
</select>
|
|
<select id="selectPrintDetailsMp1">
|
select fc.id,
|
fc.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
ogd.technology_number,
|
ogd.glass_address,
|
(fc.quantity) as quantity,
|
(fc.quantity) as printQuantity,
|
round((ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
|
od.product_name,
|
ogd.glass_child,
|
fc.founder,
|
date(fc.splitFrame_time) as splitFrame_time,
|
/* if(fc.print_status=0,'未打印','已打印') as print_status*/
|
ifnull(fc.print_number,0) as print_status,
|
ogd.process,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
od.order_number,
|
ogd.child_width as width,
|
ogd.child_height as height,
|
ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS S01,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS S02,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS S03,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS S04,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS S05
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.`order` as o on o.order_id = fc.order_id
|
where fc.order_id = #{orderId}
|
GROUP BY fc.process_id, od.order_number,fc.technology_number
|
order by fc.process_id, od.order_number,fc.technology_number
|
</select>
|
|
<select id="getPrintCustomDataDetails">
|
select o.order_id as orderId,
|
project,
|
customer_id as customerId,
|
o.customer_name as customerName,
|
order_type as orderType,
|
order_classify as orderClassify,
|
batch,
|
o.icon,
|
pack_type as packType,
|
delivery_date as deliveryDate,
|
al_type as alType,
|
money,
|
contract_id as contractId,
|
customer_batch customerBatch,
|
contacts,
|
delivery_address as deliveryAddress,
|
od.processing_note as processingNote,
|
width,
|
height,
|
#{printQuantity} as quantity,
|
CONCAT(
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
|
' X ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
|
' = ',#{printQuantity} ) as size,
|
|
CONCAT(
|
od.order_number,') ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
|
' X ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
|
' = ',#{printQuantity} ) as numberSize,
|
CONCAT(
|
od.order_number,')',' ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
|
' X ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR)))) as numberSizeQuantity,
|
od.order_number as orderNumber,
|
fc.technology_number as technologyNumber,
|
od.building_number as buildingNumber,
|
od.product_name as productName,
|
od.edging_type as edgingType,
|
od.remarks,
|
c.customer_abbreviation as customerAbbreviation,
|
p.product_abbreviation as productAbbreviation,
|
fc.process_id as processId,
|
SUBSTRING(fc.process_id,12 ) as processIdAD ,/*-流程卡简写-*/
|
o.create_time as createTime,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
|
p.remarks as filmNumber,
|
od.bend_radius as bendRadius,
|
od.other_columns,
|
ogd.glass_child as glassChild,
|
ogd.glass_address as glassAddress,
|
JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
|
'文本' as custom1,
|
'文本' as custom2,
|
'文本' as custom3,
|
'文本' as custom4,
|
'文本' as custom5,
|
od.quantity
|
from sd.order as o
|
left join sd.order_detail as od on o.order_id = od.order_id
|
left join flow_card as fc on o.order_id = fc.order_id and
|
od.order_number = fc.order_number
|
left join sd.product as p on p.id = od.product_id
|
left join sd.customer as c on c.id = o.customer_id
|
left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
|
pd.glass_sort = fc.technology_number
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
|
ogd.technology_number = fc.technology_number
|
where fc.process_id = #{processId}
|
and fc.order_number = #{orderNumber}
|
group by fc.process_id,od.order_number, width, height
|
order by fc.process_id
|
</select>
|
|
<select id="getPrintCustomDataProjectNo">
|
select
|
o.order_id as orderId,
|
project,
|
customer_id as customerId,
|
o.customer_name as customerName,
|
order_type as orderType,
|
order_classify as orderClassify,
|
batch,
|
o.icon,
|
pack_type as packType,
|
delivery_date as deliveryDate,
|
al_type as alType,
|
money,
|
contract_id as contractId,
|
customer_batch customerBatch,
|
contacts,
|
delivery_address as deliveryAddress,
|
od.processing_note as processingNote,
|
od.width,
|
od.height,
|
fc.quantity as flowQuantity,
|
od.order_number as orderNumber,
|
fc.technology_number as technologyNumber,
|
od.building_number as buildingNumber,
|
od.product_name as productName,
|
od.edging_type as edgingType,
|
od.remarks,
|
c.customer_abbreviation as customerAbbreviation,
|
p.product_abbreviation as productAbbreviation,
|
fc.process_id as processId,
|
o.create_time as createTime,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
|
p.remarks as filmNumber,
|
od.bend_radius as bendRadius,
|
od.other_columns,
|
JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
|
'文本' as custom1,
|
'文本' as custom2,
|
'文本' as custom3,
|
'文本' as custom4,
|
'文本' as custom5,
|
od.quantity
|
from optimize_detail as opt
|
left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
|
left join sd.order as o on o.order_id=fc.order_id
|
left join sd.order_detail as od on fc.order_id = od.order_id and od.order_number = fc.order_number
|
left join sd.product as p on p.id = od.product_id
|
left join sd.customer as c on c.id = o.customer_id
|
left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
|
pd.glass_sort = fc.technology_number
|
where opt.project_no=#{projectNo}
|
order by opt.stock_id,opt.polys_id
|
</select>
|
|
<select id="selectUserMp">
|
select role_id
|
from erp_user_info.`user` as u
|
left join erp_user_info.user_role as ur on u.id = ur.user_id
|
where u.login_name = #{userId}
|
</select>
|
|
<select id="selectSortTableMp">
|
select fcs.sort,
|
fcs.process_id,
|
fcs.order_number,
|
fcs.technology_number,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
fcs.process
|
from
|
flow_card as fc
|
left join flow_card_sort as fcs on fcs.process_id=fc.process_id
|
and fcs.order_number=fc.order_number and fcs.technology_number=fc.technology_number
|
left join sd.order_detail as od
|
on od.order_id = fc.order_id and od.order_number = fcs.order_number
|
where fc.order_id = #{orderId}
|
GROUP BY fcs.process_id,
|
fcs.order_number,
|
fcs.technology_number,
|
fcs.process
|
ORDER BY fcs.sort,process_id,
|
fcs.order_number,
|
fcs.technology_number
|
</select>
|
|
<select id="countFlowCard">
|
select count(distinct process_id) from flow_card where order_id = #{orderId}
|
</select>
|
|
<select id="remakList">
|
SELECT
|
ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S01')),'') AS S01,
|
ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S04')),'') AS S02,
|
ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S05')),'') AS S03,
|
ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S06')),'') AS S04,
|
ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S07')),'') AS S05
|
FROM flow_card as fc left join sd.order_detail as od on fc.order_id = od.order_id
|
and fc.order_number = od.order_number
|
WHERE fc.process_id=#{processId}
|
GROUP BY fc.order_number
|
</select>
|
|
<select id="selectMaxFlowCard">
|
select ifnull((select fc.process_id
|
from sd.order_detail as od
|
left join sd.order_glass_detail as ogd
|
on od.order_id = ogd.order_id and od.order_number = ogd.order_number
|
left join flow_card as fc on fc.order_id=od.order_id and fc.order_number=od.order_number and fc.technology_number=ogd.technology_number
|
where od.order_id = #{orderId}
|
and ogd.production_id = #{productionId}
|
GROUP BY od.order_number
|
order by fc.process_id desc LIMIT 1),'') as process_id
|
</select>
|
|
<select id="selectFlowCardMerge">
|
select *,GROUP_CONCAT(DISTINCT fc.technology_number) as count1,count(DISTINCT fc.technology_number) as count2
|
from pp.flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
|
where fc.process_id = #{processId}
|
GROUP BY fc.order_id, fc.process_id, ogd.glass_child
|
</select>
|
|
<update id="updateFlowCardMerge">
|
update pp.flow_card fc set fc.merge=#{index}
|
where fc.process_id = #{processId} and fc.technology_number in
|
<foreach item="technologyNumber" collection="technologyNumbers" open="(" separator="," close=")">
|
#{technologyNumber}
|
</foreach>
|
</update>
|
|
<delete id="deleteflowCardSort">
|
delete from flow_card_sort where process_id = #{processId}
|
</delete>
|
|
<delete id="deleteflowCardSortByOrderId">
|
delete from pp.flow_card_sort
|
where process_id =(
|
select process_id from pp.flow_card
|
where order_id=#{orderId}
|
group by process_id
|
)
|
</delete>
|
|
<select id="getPrintProjectDetailsMp">
|
SELECT opd.project_no,opd.stock_id,opl.glass_count FROM optimize_detail as opd left join optimize_layout as opl on opl.project_no=opd.project_no and opl.stock_id=opd.stock_id
|
where opd.project_no=#{projectNo}
|
GROUP BY opd.stock_id
|
ORDER BY opd.stock_id
|
</select>
|
|
<select id="getPrintCustomDataProjectDetail">
|
select
|
o.order_id as orderId,
|
project,
|
customer_id as customerId,
|
o.customer_name as customerName,
|
order_type as orderType,
|
order_classify as orderClassify,
|
batch,
|
o.icon,
|
pack_type as packType,
|
delivery_date as deliveryDate,
|
al_type as alType,
|
money,
|
contract_id as contractId,
|
customer_batch customerBatch,
|
contacts,
|
delivery_address as deliveryAddress,
|
od.processing_note as processingNote,
|
od.width,
|
od.height,
|
fc.quantity as flowQuantity,
|
od.order_number as orderNumber,
|
fc.technology_number as technologyNumber,
|
od.building_number as buildingNumber,
|
od.product_name as productName,
|
od.edging_type as edgingType,
|
od.remarks,
|
c.customer_abbreviation as customerAbbreviation,
|
p.product_abbreviation as productAbbreviation,
|
fc.process_id as processId,
|
o.create_time as createTime,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
|
p.remarks as filmNumber,
|
od.bend_radius as bendRadius,
|
od.other_columns,
|
JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
|
'文本' as custom1,
|
'文本' as custom2,
|
'文本' as custom3,
|
'文本' as custom4,
|
'文本' as custom5,
|
od.quantity
|
from optimize_detail as opt
|
left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
|
left join sd.order as o on o.order_id=fc.order_id
|
left join sd.order_detail as od on fc.order_id = od.order_id and od.order_number = fc.order_number
|
left join sd.product as p on p.id = od.product_id
|
left join sd.customer as c on c.id = o.customer_id
|
left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
|
pd.glass_sort = fc.technology_number
|
where opt.project_no=#{projectNo} and opt.stock_id=#{stockId}
|
order by opt.stock_id,opt.polys_id
|
</select>
|
|
<select id="getPrintCustomDataProject">
|
select
|
o.order_id as orderId,
|
project,
|
customer_id as customerId,
|
o.customer_name as customerName,
|
order_type as orderType,
|
order_classify as orderClassify,
|
batch,
|
o.icon,
|
pack_type as packType,
|
delivery_date as deliveryDate,
|
al_type as alType,
|
money,
|
contract_id as contractId,
|
customer_batch customerBatch,
|
contacts,
|
delivery_address as deliveryAddress,
|
od.processing_note as processingNote,
|
od.width,
|
od.height,
|
fc.quantity as flowQuantity,
|
od.order_number as orderNumber,
|
fc.technology_number as technologyNumber,
|
od.building_number as buildingNumber,
|
od.product_name as productName,
|
od.edging_type as edgingType,
|
od.remarks,
|
c.customer_abbreviation as customerAbbreviation,
|
p.product_abbreviation as productAbbreviation,
|
fc.process_id as processId,
|
o.create_time as createTime,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
|
p.remarks as filmNumber,
|
od.bend_radius as bendRadius,
|
od.other_columns,
|
JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
|
'文本' as custom1,
|
'文本' as custom2,
|
'文本' as custom3,
|
'文本' as custom4,
|
'文本' as custom5,
|
od.quantity,
|
o.order_id,
|
c.customer_abbreviation as customer_name,
|
od.building_number,
|
od.processing_note,
|
ogd.child_width as childWidth,
|
ogd.child_height as childHeight,
|
ogd.glass_child as glassChild,
|
ogd.process,
|
e.type_name,
|
opt.stock_id,
|
od.bend_radius,
|
a.id as flow_card_sort,
|
concat(opt.heat_layout_id,'') as heat_layout_id ,
|
opt.heat_layout_sort
|
from optimize_detail as opt
|
left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
|
left join sd.order as o on o.order_id=fc.order_id
|
left join sd.order_detail as od on fc.order_id = od.order_id and od.order_number = fc.order_number
|
left join sd.order_glass_detail as ogd on ogd.order_id=o.order_id and ogd.order_number=od.order_number and ogd.technology_number=fc.technology_number
|
left join sd.product as p on p.id = od.product_id
|
left join sd.basic_glass_type e on e.type_id = p.type_id
|
left join sd.customer as c on c.id = o.customer_id
|
left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
|
pd.glass_sort = fc.technology_number
|
left join (select (@row_number := @row_number + 1) as id,process_id as process_id from (select process_id from pp.optimize_detail tt where project_no =#{projectNo} group by process_id) tt,(select @row_number := 0) as t) a
|
on a.process_id=opt.process_id
|
where opt.project_no=#{projectNo}
|
order by opt.heat_layout_id, opt.heat_layout_sort desc
|
</select>
|
|
<select id="getPrintLabel3">
|
select o.order_id,
|
c.customer_abbreviation as customer_name,
|
o.project,
|
od.building_number,
|
od.processing_note,
|
ogd.child_width as width,
|
ogd.child_height as height,
|
od.product_name as glass_child,
|
ogd.process,
|
e.type_name,
|
opd.stock_id,
|
opd.polys_id,
|
od.quantity,
|
od.other_columns,
|
od.bend_radius,
|
od.order_number as heat_layout_id,
|
a.id as heat_layout_sort
|
from pp.optimize_detail opd
|
left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id
|
left join sd.order_detail od
|
on SUBSTR(opd.process_id, 1, 10) = od.order_id and opd.order_sort = od.order_number
|
left join sd.order_glass_detail ogd
|
on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and
|
opd.layer = ogd.technology_number
|
left join sd.product p on od.product_id = p.id
|
left join sd.basic_glass_type e on e.type_id = p.type_id
|
left join sd.customer c on c.id = o.customer_id
|
left join
|
(select (@row_number := @row_number + 1) as id,process_id as process_id from (select process_id from pp.optimize_detail tt where project_no =#{projectNo} group by process_id) tt,(select @row_number := 0) as t) a
|
on a.process_id=opd.process_id
|
where opd.project_no = #{projectNo} and o.order_id is not null
|
group by order_id,od.order_number
|
order by ogd.child_width desc,ogd.child_height desc
|
</select>
|
|
<delete id="deleteProcessMp">
|
delete from sd.order_process_detail where process_id = #{processId} and technology_number= #{technologyNumber}
|
</delete>
|
|
<insert id="updateProcessMp">
|
insert into sd.order_process_detail (order_id,
|
process_id,
|
order_number,
|
technology_number,
|
process,
|
create_time)
|
select fc.order_id,
|
fc.process_id,
|
fc.order_number,
|
#{technologyNumber},
|
#{process},
|
NOW()
|
from pp.flow_card as fc
|
where fc.process_id = #{processId}
|
and fc.order_number = #{number}
|
and fc.technology_number = #{technologyNumber}
|
GROUP BY fc.order_number
|
</insert>
|
|
<update id="updateOrderProcessMp">
|
update sd.order_glass_detail set process=#{orderprocess}
|
where order_id=#{orderId} and order_number=#{number} and technology_number=#{technologyNumber}
|
</update>
|
|
<select id="getFlowCardListPrintProject">
|
select
|
od.order_id,
|
fc.process_id,
|
o.customer_name,
|
o.project,
|
od.order_number,
|
ogd.technology_number,
|
ogd.glass_address,
|
fc.quantity ,
|
round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
|
od.product_name,
|
ogd.glass_child,
|
fc.patch_state,
|
ogd.process,
|
fcd.merge
|
from (select process_id,count(*) as quantity,order_sort,project_no,layer,patch_state from pp.optimize_detail where project_no = #{printProject} group by process_id,layer) as fc
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = SUBSTRING(fc.process_id,1,10) and ogd.order_number = fc.order_sort and
|
ogd.technology_number = fc.layer
|
left join sd.order_detail as od on od.order_id = SUBSTRING(fc.process_id,1,10) and od.order_number = fc.order_sort
|
left join sd.`order` as o on o.order_id = SUBSTRING(fc.process_id,1,10)
|
left join pp.`flow_card` as fcd on fcd.process_id=fc.process_id and fcd.technology_number=ogd.technology_number and fcd.order_number=od.order_number
|
where fc.project_no = #{printProject} and fc.process_id is not null and fc.process_id!=""
|
GROUP BY fc.process_id, ogd.technology_number
|
order by fc.process_id, ogd.technology_number
|
</select>
|
|
<update id="updateProjectLabelPrintCount">
|
update optimize_project set labelPrintNum=labelPrintNum+1 where project_no=#{projectNo}
|
</update>
|
|
<select id="selectProjectLabelPrintCount">
|
select labelPrintNum from optimize_project where project_no=#{projectNo}
|
</select>
|
|
<update id="updateProjectProcessPrintCount">
|
update optimize_project set processPrintNum=processPrintNum+1 where project_no=#{projectNo}
|
</update>
|
|
<select id="selectProjectProcessPrintCount">
|
select processPrintNum from optimize_project where project_no=#{projectNo}
|
</select>
|
|
<select id="flowCardToOptimizeCount">
|
select count(*) from pp.flow_card where order_id = #{orderId} and project_no is not null
|
</select>
|
|
<select id="getFlowCardDetail" >
|
select
|
a.order_id,
|
a.process_id,
|
a.technology_number,
|
a.order_number,
|
c.product_id,
|
c.product_name,
|
b.project,
|
sum(a.quantity) as quantity,
|
sum(c.compute_gross_area) as compute_gross_area,
|
a.founder,
|
c.processing_note,
|
b.customer_name,
|
a.merge,
|
a.rack
|
from pp.flow_card a
|
left join sd.`order` as b on a.order_id=b.order_id
|
left join sd.order_detail as c on a.order_id=c.order_id and a.order_number=c.order_number
|
where
|
a.process_id regexp #{processId}
|
group by a.process_id,a.technology_number
|
|
</select>
|
|
<select id="getGlassThicknessByProdutionId">
|
select total_thickness as 'totalThickness',thickness as 'thickness' from sd.product
|
where id = (
|
select distinct b.product_id from sd.order_glass_detail as a
|
left join sd.order_detail as b
|
on a.order_id = b.order_id and a.order_number = b.order_number
|
where a.order_id = #{orderId}
|
and a.production_id = #{productionId}
|
)
|
</select>
|
|
<select id="getOrderDetailByProductionId">
|
select * from (select a.*,
|
a.quantity as 'baiscQuantity',
|
#{glassThickness} as 'thickness',
|
IF(a.height >= a.width, a.height, a.width) as 'long',
|
IF(a.height < a.width, a.height, a.width) as 'short'
|
from sd.order_detail as a
|
left join sd.order_glass_detail as b
|
on a.order_id = b.order_id and a.order_number = b.order_number
|
where a.order_id = #{orderId} and b.production_id = #{productionId}
|
|
group by a.order_number) as c
|
<if test="type=='scope'">
|
where c.`long` <= #{inLenMax}
|
and c.`long` >= #{inLenMin}
|
and c.`short` >= #{inShortMin}
|
and c.`short` <= #{inShortMax}
|
</if>
|
<if test="type=='notScope'">
|
where !(c.`long` <= #{inLenMax}
|
and c.`long` >= #{inLenMin}
|
and c.`short` >= #{inShortMin}
|
and c.`short` <= #{inShortMax})
|
</if>
|
order by c.`long` desc
|
</select>
|
|
<!-- 复选框修改排版状态-->
|
<update id="revokeComposing">
|
update flow_card as fc
|
set fc.layout_status=0
|
where fc.process_id = #{processId}
|
</update>
|
|
<select id="selectProjectNo">
|
SELECT COUNT(*)
|
FROM flow_card
|
WHERE process_id= #{processId} and project_no IS not NULL;
|
</select>
|
|
<select id="selectPrintDetailsMp2">
|
select ogd.id,
|
ogd.order_id,
|
o.customer_name,
|
o.project,
|
ogd.technology_number,
|
ogd.glass_address,
|
(od.quantity) as quantity,
|
(od.quantity) as printQuantity,
|
round((ogd.child_width * ogd.child_height * od.quantity / 1000000), 2) as total_area,
|
od.product_name,
|
ogd.glass_child,
|
ogd.process,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
od.order_number,
|
ogd.child_width as width,
|
ogd.child_height as height
|
from sd.order_glass_detail as ogd
|
left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
|
left join sd.`order` as o on o.order_id = ogd.order_id
|
where ogd.order_id = #{orderId}
|
GROUP BY od.order_number
|
order by od.order_number
|
</select>
|
|
<select id="getPrintOrderDataDetails">
|
select o.order_id as orderId,
|
project,
|
customer_id as customerId,
|
o.customer_name as customerName,
|
order_type as orderType,
|
order_classify as orderClassify,
|
batch,
|
o.icon,
|
pack_type as packType,
|
delivery_date as deliveryDate,
|
al_type as alType,
|
money,
|
contract_id as contractId,
|
customer_batch customerBatch,
|
contacts,
|
delivery_address as deliveryAddress,
|
od.processing_note as processingNote,
|
width,
|
height,
|
#{printQuantity} as quantity,
|
CONCAT(
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
|
' X ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
|
' = ',#{printQuantity} ) as size,
|
|
CONCAT(
|
od.order_number,') ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
|
' X ',
|
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
|
' = ',#{printQuantity} ) as numberSize,
|
od.order_number as orderNumber,
|
ogd.technology_number as technologyNumber,
|
od.building_number as buildingNumber,
|
od.product_name as productName,
|
od.edging_type as edgingType,
|
od.remarks,
|
c.customer_abbreviation as customerAbbreviation,
|
p.product_abbreviation as productAbbreviation,
|
'' as processId,
|
o.create_time as createTime,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
|
JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
|
p.remarks as filmNumber,
|
od.bend_radius as bendRadius,
|
od.other_columns,
|
ogd.glass_child as glassChild,
|
ogd.glass_address as glassAddress,
|
JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color')) AS color,
|
'文本' as custom1,
|
'文本' as custom2,
|
'文本' as custom3,
|
'文本' as custom4,
|
'文本' as custom5,
|
od.quantity
|
from sd.order as o
|
left join sd.order_detail as od on o.order_id = od.order_id
|
left join sd.product as p on p.id = od.product_id
|
left join sd.customer as c on c.id = o.customer_id
|
left join sd.order_glass_detail as ogd
|
on ogd.order_id = od.order_id and ogd.order_number = od.order_number
|
left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
|
pd.glass_sort = ogd.technology_number
|
|
where od.order_id = #{orderId}
|
and od.order_number = #{orderNumber}
|
group by od.order_number, width, height
|
order by od.order_id
|
</select>
|
|
<select id="updatePrintNumberMp">
|
update pp.flow_card
|
set print_number = ifnull(print_number,0) + 1
|
where process_id = #{processId}
|
and order_number = #{orderNumber}
|
</select>
|
|
<select id="getOrderIdByProcessId">
|
select order_id from pp.flow_card where process_id = #{processId} limit 1;
|
</select>
|
|
<select id="flowCardDetailMergeMp">
|
select merge from pp.flow_card where process_id = #{processId} group by id ORDER BY merge desc LIMIT 1
|
</select>
|
|
<update id="updateFlowCardIsMerge">
|
update pp.flow_card fc set fc.merge=0
|
where fc.process_id = #{processId}
|
</update>
|
|
<select id="getProcessName">
|
select IFNULL(nickname,'') from sd.basic_data where basic_category='process' and basic_name=#{processSub}
|
</select>
|
|
<select id="getProcessNameList">
|
SELECT id,basic_name,IFNULL(nickname,"") as nickname FROM sd.`basic_data` where basic_category='process'
|
</select>
|
|
<select id="exportDateProcessMp">
|
select
|
a.order_Id,
|
a.process_Id,
|
c.product_id,
|
c.product_name,
|
b.project,
|
sum(a.quantity) as quantity,
|
sum(a.quantity) * c.area as compute_gross_area,
|
a.founder,
|
c.processing_note,
|
b.customer_name,
|
layout_status as layout_status,
|
a.merge,
|
a.rack,
|
b.batch
|
from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,max(merge) as merge,rack from flow_card
|
group by process_Id,order_number) as a
|
left join sd.`order` as b on a.order_Id=b.order_id
|
left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
|
where date(a.create_time) >= #{date[0]}
|
and date(a.create_time) <= #{date[1]}
|
and b.create_order>0
|
group by a.process_Id
|
ORDER BY a.id desc
|
</select>
|
|
<select id="getSumQuantity">
|
select quantity from sd.`order` where order_id=#{orderId}
|
</select>
|
|
<select id="getDetailCompoundList">
|
select fc.order_number,
|
concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1))) as child_width,
|
SUM(fc.quantity) as quantity,
|
round(SUM(ogd.total_area), 2) as total_area,
|
SUM(od.perimeter) as perimeter,
|
if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
|
concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
#{compound} as technology_number,
|
IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
|
od.building_number
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join flow_card_sort as fcs
|
on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
|
fcs.technology_number = fc.technology_number
|
and fcs.process = #{process}
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{compound})
|
group by fc.process_id, fc.order_number
|
<choose>
|
<!-- landingSequence != 1 时,优先按 landing_sequence 倒序 -->
|
<when test="landingSequence != 1">
|
ORDER BY landing_sequence DESC
|
</when>
|
<!-- flashback = 1 时正序 -->
|
<when test="flashback == 1">
|
ORDER BY
|
CASE
|
WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
|
ELSE fc.order_number
|
END ASC
|
</when>
|
<!-- flashback != 1 时倒序 -->
|
<otherwise>
|
ORDER BY
|
CASE
|
WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
|
ELSE fc.order_number
|
END DESC
|
</otherwise>
|
</choose>
|
</select>
|
|
<select id="getDetailListLikeCompound">
|
select fc.order_number,
|
concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1))) as child_width,
|
sum(fc.quantity) as quantity,
|
round(sum(ogd.total_area), 2) as total_area,
|
sum(od.perimeter) as perimeter,
|
if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) as bend_radius,
|
concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
|
od.other_columns,
|
round(ogd.child_width) as width,
|
round(ogd.child_height) as height,
|
pd.separation,
|
#{compound} as technology_number,
|
IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
|
od.building_number
|
from flow_card as fc
|
left join sd.order_glass_detail as ogd
|
on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
|
fc.technology_number = ogd.technology_number
|
left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
|
left join sd.product_detail as pd
|
on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
|
left join flow_card_sort as fcs
|
on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
|
fcs.technology_number = fc.technology_number
|
and fcs.process = #{process}
|
where fc.process_id = #{processId}
|
and position(fc.technology_number in #{compound})
|
group by fc.process_id, fc.order_number
|
<choose>
|
<!-- landingSequence != 1 时,优先按 landing_sequence 倒序 -->
|
<when test="landingSequence != 1">
|
ORDER BY landing_sequence DESC
|
</when>
|
<!-- flashback = 1 时正序 -->
|
<when test="flashback == 1">
|
ORDER BY
|
CASE
|
WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
|
ELSE fc.order_number
|
END ASC
|
</when>
|
<!-- flashback != 1 时倒序 -->
|
<otherwise>
|
ORDER BY
|
CASE
|
WHEN fcs.sort IS NOT NULL AND fcs.sort <> '' THEN fcs.sort
|
ELSE fc.order_number
|
END DESC
|
</otherwise>
|
</choose>
|
</select>
|
</mapper>
|