| | |
| | | PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.example.erp.mapper.pp.ProductionSchedulingMapper"> |
| | | <resultMap id="ProductionSchedulingMap" type="com.example.erp.entity.pp.ProductionScheduling"> |
| | | <resultMap id="productionSchedulingMap" type="com.example.erp.entity.pp.ProductionScheduling"> |
| | | <result column="processes" property="processes"/> |
| | | <result column="scheduling_quantity" property="schedulingQuantity"/> |
| | | <result column="order_number" property="orderNumber"/> |
| | | <result column="scheduling_id" property="schedulingId"/> |
| | | <result column="order_id" property="order.orderId"/> |
| | | <result column="technology_number" property="technologyNumber"/> |
| | | <result column="pendingProductionQuantity" property="pendingProductionQuantity"/> |
| | | <result column="pendingProductionArea" property="pendingProductionArea"/> |
| | | <result column="productionScheduledQuantity" property="productionScheduledQuantity"/> |
| | | <result column="productionScheduledArea" property="productionScheduledArea"/> |
| | | <result column="review_status" property="reviewStatus"/> |
| | | <result column="scheduled_start_time" property="scheduledStartTime"/> |
| | | <result column="plan_end_time" property="planEndTime"/> |
| | | <result column="reviewer" property="reviewer"/> |
| | | <!--接收其他外键实体类数据--> |
| | | <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="order_id" property="orderId"/> |
| | | <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> |
| | | |
| | | |
| | | <result column="project" property="order.project"/> |
| | | <result column="customer_name" property="order.customerName"/> |
| | | <result column="batch" property="order.batch"/> |
| | | <result column="other_remarks" property="order.otherRemarks"/> |
| | | <result column="icon" property="order.icon"/> |
| | | <result column="order_type" property="order.orderType"/> |
| | | <result column="salesman" property="order.salesman"/> |
| | | <result column="processing_note" property="order.processingNote"/> |
| | | <result column="delivery_address" property="order.deliveryAddress"/> |
| | | <result column="product_id" property="orderDetail.productId"/> |
| | | <result column="product_name" property="orderDetail.productName"/> |
| | | <result column="compute_gross_area" property="orderDetail.computeGrossArea"/> |
| | | <result column="quantity" property="orderDetail.quantity"/> |
| | | <result column="perimeter" property="orderDetail.perimeter"/> |
| | | <result column="width" property="orderDetail.width"/> |
| | | <result column="height" property="orderDetail.height"/> |
| | | <result column="shape" property="orderDetail.shape"/> |
| | | <result column="weight" property="orderDetail.weight"/> |
| | | <result column="child_width" property="orderGlassDetail.childWidth"/> |
| | | <result column="child_height" property="orderGlassDetail.childHeight"/> |
| | | <result column="area" property="orderGlassDetail.area"/> |
| | | <result column="glass_child" property="orderGlassDetail.glassChild"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <!-- 查询已排版数据--> |
| | | <select id="SelectOkSchedulingMp"> |
| | | select date(ps.scheduled_start_time) as scheduled_start_time, |
| | | date(ps.plan_end_time) as plan_end_time, |
| | | 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, |
| | | ps.scheduling_quantity, |
| | | # (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, |
| | | IF(ps.review_status=0,"未审核","已审核") as review_status, |
| | | ps.reviewer, |
| | | od.product_name,od.shape,ps.scheduling_id |
| | | 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 ps.scheduling_id IS NOT NULL |
| | | and od.create_time between #{selectTime1} and #{selectTime2} |
| | | |
| | | and position(#{processes} in ps.processes) |
| | | and position(#{orderId} in ps.order_id) |
| | | |
| | | </select> |
| | | |
| | | <!-- 查询已排产带订单编号的数据--> |
| | | <select id="SelectSchedulingNotMp"> |
| | | <!-- 查询已排版数据--> |
| | | <select id="selectOkSchedulingMp" resultMap="productionSchedulingMap"> |
| | | select date(ps.scheduled_start_time) as scheduled_start_time, |
| | | date(ps.plan_end_time) as plan_end_time, |
| | | 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.order_id, |
| | | o.customer_name, |
| | | o.project, |
| | | ps.order_number, |
| | | ps.technology_number, |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | od.quantity, |
| | | round(od.width * od.height * od.quantity / 1000000, 2) as area, |
| | | ps.scheduling_quantity, |
| | | # (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, |
| | | IF(ps.review_status=0,"未审核","已审核") as review_status, |
| | | (od.quantity - IFNULL(sum(ps.scheduling_quantity), 0)) as pendingProductionQuantity, |
| | | round(od.width * od.height * (od.quantity - IFNULL(sum(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, |
| | | IF(ps.review_status = 0, "未审核", "已审核") as review_status, |
| | | ps.reviewer, |
| | | od.product_name,od.shape,ps.scheduling_id |
| | | od.product_name, |
| | | if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape, |
| | | ps.scheduling_id, |
| | | ps.notes |
| | | 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 (ps.scheduling_id IS NOT NULL ) |
| | | and position(#{processes} in ps.processes) |
| | | and position(#{orderId} in ps.order_id) |
| | | 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 |
| | | left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number and |
| | | ogd.technology_number=ps.technology_number |
| | | where ps.scheduling_id IS NOT NULL |
| | | and o.create_order>0 |
| | | and od.create_time between #{selectTime1} and #{selectTime2} |
| | | and position(#{processes} in ps.processes) |
| | | and position(#{orderIds} in ps.order_id) |
| | | <if test="productionScheduling.order.orderId != null and productionScheduling.order.orderId != ''"> |
| | | and ogd.order_id regexp #{productionScheduling.order.orderId} |
| | | </if> |
| | | <if test="productionScheduling.order.customerName != null and productionScheduling.order.customerName != ''"> |
| | | and o.customer_name regexp #{productionScheduling.order.customerName} |
| | | </if> |
| | | <if test="productionScheduling.order.project != null and productionScheduling.order.project != ''"> |
| | | and o.project regexp #{productionScheduling.order.project} |
| | | </if> |
| | | <if test="productionScheduling.orderNumber != null and productionScheduling.orderNumber != ''"> |
| | | and ogd.order_number regexp #{productionScheduling.orderNumber} |
| | | </if> |
| | | <if test="productionScheduling.technologyNumber != null and productionScheduling.technologyNumber != ''"> |
| | | and ogd.technology_number regexp #{productionScheduling.technologyNumber} |
| | | </if> |
| | | group by ps.id |
| | | order by ps.id desc |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | </select> |
| | | <!-- 查询未排产数据--> |
| | | <select id="SelectNoSchedulingMp" > |
| | | 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 od.quantity-IFNULL(ps.scheduling_quantity,0)>0 and od.create_time between #{selectTime1} and #{selectTime2} |
| | | |
| | | and position(#{orderId} in ps.order_id) |
| | | group by od.order_id,od.order_number |
| | | <!-- 查询未排产数据--> |
| | | <select id="selectNoSchedulingMp" resultMap="productionSchedulingMap"> |
| | | select ogd.order_id, |
| | | o.customer_name, |
| | | o.project, |
| | | ogd.order_number, |
| | | ogd.technology_number, |
| | | ogd.child_width, |
| | | ogd.child_height, |
| | | od.quantity, |
| | | round(ogd.child_width * ogd.child_height * od.quantity / 1000000, 2) as area, |
| | | (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as schedulingQuantity, |
| | | (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as pendingProductionQuantity, |
| | | round(ogd.child_width * ogd.child_height * (od.quantity - IFNULL((ps.schedulingQuantity), 0)) / 1000000, |
| | | 2) |
| | | as pendingProductionArea, |
| | | IFNULL(ps.schedulingQuantity, 0) as productionScheduledQuantity, |
| | | round(ogd.child_width * ogd.child_height * (IFNULL(ps.schedulingQuantity, 0)) / 1000000, |
| | | 2) as productionScheduledArea, |
| | | od.product_name, |
| | | if(od.shape=1,'普形',if(od.shape=2,'异形','')) as shape |
| | | from sd.order_glass_detail as ogd |
| | | |
| | | left join sd.order as o on ogd.order_id = o.order_id |
| | | 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_process_detail as opd |
| | | on opd.order_id = ogd.order_id and opd.order_number = ogd.order_number and |
| | | opd.technology_number = ogd.technology_number |
| | | left join |
| | | (select order_id, order_number, technology_number, SUM(scheduling_quantity) as schedulingQuantity |
| | | from production_scheduling |
| | | where processes = #{processes} |
| | | group by order_id, order_number, technology_number) as ps |
| | | on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and |
| | | ps.technology_number = ogd.technology_number |
| | | |
| | | where (od.quantity - IFNULL((ps.schedulingQuantity), 0)) > 0 |
| | | and od.create_time between #{selectTime1} and #{selectTime2} |
| | | and opd.reporting_work_num_count = 0 |
| | | and o.create_order>0 |
| | | and position(#{orderIds} in ogd.order_id) |
| | | -- and position("切割" in ps.processes) |
| | | <if test="productionScheduling.order.orderId != null and productionScheduling.order.orderId != ''"> |
| | | and ogd.order_id regexp #{productionScheduling.order.orderId} |
| | | </if> |
| | | <if test="productionScheduling.order.customerName != null and productionScheduling.order.customerName != ''"> |
| | | and o.customer_name regexp #{productionScheduling.order.customerName} |
| | | </if> |
| | | <if test="productionScheduling.order.project != null and productionScheduling.order.project != ''"> |
| | | and o.project regexp #{productionScheduling.order.project} |
| | | </if> |
| | | <if test="productionScheduling.orderNumber != null and productionScheduling.orderNumber != ''"> |
| | | and ogd.order_number regexp #{productionScheduling.orderNumber} |
| | | </if> |
| | | <if test="productionScheduling.technologyNumber != null and productionScheduling.technologyNumber != ''"> |
| | | and ogd.technology_number regexp #{productionScheduling.technologyNumber} |
| | | </if> |
| | | group by ogd.order_id, ogd.order_number, ogd.technology_number |
| | | order by ogd.order_id desc |
| | | limit #{offset},#{pageSize}; |
| | | </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 od.create_time between #{selectTime1} and #{selectTime2} and od.quantity-IFNULL(ps.scheduling_quantity,0)>0 |
| | | </select> |
| | | |
| | | |
| | | <select id="selectMaxId"> |
| | | select |
| | | COUNT(ps.scheduling_id) |
| | | from |
| | | `production_scheduling` as ps |
| | | where |
| | | date(ps.create_time) = curdate() |
| | | select COUNT(ps.scheduling_id) |
| | | from `production_scheduling` as ps |
| | | where date(ps.create_time) = curdate() |
| | | </select> |
| | | |
| | | <insert id="insertSelective"> |
| | | insert into production_scheduling( |
| | | scheduling_id, |
| | | order_id, |
| | | order_number, |
| | | processes, |
| | | scheduling_quantity, |
| | | scheduled_start_time, |
| | | plan_end_time, |
| | | notes, |
| | | create_time |
| | | ) |
| | | VALUES( |
| | | #{schedulingId}, |
| | | #{orderId}, |
| | | #{orderNumber}, |
| | | #{processes}, |
| | | #{schedulingQuantity}, |
| | | #{scheduledStartTime}, |
| | | #{planEndTime}, |
| | | #{notes}, |
| | | now() |
| | | ) |
| | | insert into production_scheduling(scheduling_id, |
| | | order_id, |
| | | order_number, |
| | | technology_number, |
| | | processes, |
| | | scheduling_quantity, |
| | | scheduled_start_time, |
| | | plan_end_time, |
| | | notes, |
| | | create_time) |
| | | VALUES (#{schedulingId}, |
| | | #{orderId}, |
| | | #{orderNumber}, |
| | | #{technologyNumber}, |
| | | #{processes}, |
| | | #{schedulingQuantity}, |
| | | #{scheduledStartTime}, |
| | | #{planEndTime}, |
| | | #{notes}, |
| | | now()) |
| | | </insert> |
| | | |
| | | <update id="examineSchedulingMp"> |
| | | update production_scheduling |
| | | set review_status=1, |
| | | reviewer=#{userName}, |
| | | scheduling_quantity=#{schedulingQuantity}, |
| | | notes=#{notes} |
| | | where scheduling_id = #{schedulingId} |
| | | </update> |
| | | |
| | | <delete id="deleteSchedulingMp"> |
| | | delete |
| | | from production_scheduling |
| | | where scheduling_id = #{schedulingId} |
| | | </delete> |
| | | |
| | | <select id="selectProcess"> |
| | | SELECT * |
| | | FROM sd.basic_data as bd |
| | | where bd.basic_category = 'process' |
| | | and bd.basic_type = 'product' |
| | | </select> |
| | | |
| | | <select id="getPageTotal"> |
| | | select CEILING(count(ogd.id)/#{pageSize}) as 'pageTotal', |
| | | count(distinct ogd.id) as 'total' |
| | | from sd.order_glass_detail as ogd |
| | | |
| | | left join sd.order as o on ogd.order_id = o.order_id |
| | | 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_process_detail as opd |
| | | on opd.order_id = ogd.order_id and opd.order_number = ogd.order_number and |
| | | opd.technology_number = ogd.technology_number |
| | | left join |
| | | (select order_id, order_number, technology_number, SUM(scheduling_quantity) as schedulingQuantity |
| | | from production_scheduling |
| | | where processes = #{processes} |
| | | group by order_id, order_number, technology_number) as ps |
| | | on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and |
| | | ps.technology_number = ogd.technology_number |
| | | |
| | | where (od.quantity - IFNULL((ps.schedulingQuantity), 0)) > 0 |
| | | and od.create_time between #{selectTime1} and #{selectTime2} |
| | | and opd.reporting_work_num_count = 0 |
| | | and o.create_order>0 |
| | | and position(#{orderId} in ogd.order_id) |
| | | -- and position("切割" in ps.processes) |
| | | <if test="productionScheduling.orderId != null and productionScheduling.orderId != ''"> |
| | | and ogd.order_id regexp #{productionScheduling.orderId} |
| | | </if> |
| | | <if test="productionScheduling.order.customerName != null and productionScheduling.order.customerName != ''"> |
| | | and o.customer_name regexp #{productionScheduling.order.customerName} |
| | | </if> |
| | | <if test="productionScheduling.order.project != null and productionScheduling.order.project != ''"> |
| | | and o.project regexp #{productionScheduling.order.project} |
| | | </if> |
| | | <if test="productionScheduling.orderNumber != null and productionScheduling.orderNumber != ''"> |
| | | and ogd.order_number regexp #{productionScheduling.orderNumber} |
| | | </if> |
| | | <if test="productionScheduling.technologyNumber != null and productionScheduling.technologyNumber != ''"> |
| | | and ogd.technology_number regexp #{productionScheduling.technologyNumber} |
| | | </if> |
| | | order by ogd.order_id desc |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <select id="getOkPageTotal"> |
| | | select CEILING(count(ps.id)/#{pageSize}) as 'pageTotal', |
| | | count(distinct ps.id) as 'total' |
| | | 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 |
| | | left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number and |
| | | ogd.technology_number=ps.technology_number |
| | | where ps.scheduling_id IS NOT NULL |
| | | and od.create_time between #{selectTime1} and #{selectTime2} |
| | | and o.create_order>0 |
| | | and position(#{processes} in ps.processes) |
| | | and position(#{orderId} in ps.order_id) |
| | | <if test="productionScheduling.orderId != null and productionScheduling.orderId != ''"> |
| | | and ogd.order_id regexp #{productionScheduling.orderId} |
| | | </if> |
| | | <if test="productionScheduling.order.customerName != null and productionScheduling.order.customerName != ''"> |
| | | and o.customer_name regexp #{productionScheduling.order.customerName} |
| | | </if> |
| | | <if test="productionScheduling.order.project != null and productionScheduling.order.project != ''"> |
| | | and o.project regexp #{productionScheduling.order.project} |
| | | </if> |
| | | <if test="productionScheduling.orderNumber != null and productionScheduling.orderNumber != ''"> |
| | | and ogd.order_number regexp #{productionScheduling.orderNumber} |
| | | </if> |
| | | <if test="productionScheduling.technologyNumber != null and productionScheduling.technologyNumber != ''"> |
| | | and ogd.technology_number regexp #{productionScheduling.technologyNumber} |
| | | </if> |
| | | order by ps.id desc |
| | | limit #{offset},#{pageSize}; |
| | | </select> |
| | | |
| | | <update id="cancelReviewSchedulingMp"> |
| | | update production_scheduling set review_status=0 where scheduling_id = #{schedulingId} |
| | | </update> |
| | | </mapper> |