| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- <?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="cn.iocoder.yudao.module.order.dal.mysql.OrderDeliveryMapper">
- <!-- 订单交付分页查询 -->
- <select id="selectDeliveryPage" resultType="cn.iocoder.yudao.module.order.controller.admin.delivery.vo.OrderDeliveryPageItemVO">
- SELECT
- entry.Id as id,
- sorder.bill_no as billNo,
- entry.rstate,
- entry.entry_seq as entrySeq,
- entry.item_number as itemNumber,
- entry.item_name as itemName,
- entry.specification,
- entry.unit,
- sorder.custom_no as customNo,
- entry.custom_order_bill_no as customOrderBillNo,
- entry.custom_order_itemno as customOrderItemno,
- sorder.custom_level as customLevel,
- entry.qty,
- entry.deliver_count as deliverCount,
- entry.bom_number as bomNumber,
- sorder.emp_name as empName,
- entry.planner_name as plannerName,
- entry.plan_date as planDate,
- entry.sys_capacity_date as sysCapacityDate,
- entry.date,
- entry.create_time as createTime,
- entry.create_by_name as createByName,
- sorder.auditor,
- CASE
- WHEN entry.progress=0 THEN '0'
- WHEN nbo.nboNum>0 THEN '7'
- WHEN compp.num>0 THEN '6'
- WHEN cnb.num>0 THEN '5'
- WHEN pr.num>0 THEN '4'
- WHEN nb.num>0 THEN '3'
- WHEN p.num>0 THEN '2'
- WHEN entry.progress=3 THEN '1'
- ELSE entry.progress
- END as progress,
- yeard.ProdLine as prodLine,
- yeard.ProdRange as prodRange,
- asn.ShipDate as shipDate,
- sp.recid,
- CASE WHEN sp.recid IS NOT NULL AND sp.recid != '' THEN '是' ELSE '否' END as spstatus,
- mo.moentry_mono as moentryMono
- FROM crm_seorderentry entry
- LEFT JOIN crm_seorder sorder ON entry.seorder_id = sorder.Id
- LEFT JOIN (
- SELECT a.id, a.soentry_id, b.product_code, a.moentry_mono
- FROM mes_moentry a, mes_morder b
- WHERE a.moentry_mono = b.morder_no
- ) mo ON entry.id = mo.soentry_id AND entry.item_number = mo.product_code
- LEFT JOIN (
- SELECT WorkOrd, COUNT(*) num FROM NbrMaster WHERE type='SM' GROUP BY WorkOrd
- ) nb ON mo.moentry_mono = nb.WorkOrd
- LEFT JOIN (
- SELECT WorkOrds, COUNT(*) num FROM PeriodSequenceDet GROUP BY WorkOrds
- ) p ON mo.moentry_mono = p.WorkOrds
- LEFT JOIN (
- SELECT pr_mono, COUNT(*) num FROM srm_pr_main WHERE state>1 GROUP BY pr_mono
- ) pr ON mo.moentry_mono = pr.pr_mono
- LEFT JOIN (
- SELECT WorkOrds, COUNT(*) num FROM PeriodSequenceDet WHERE CompQty>0 GROUP BY WorkOrds
- ) compp ON mo.moentry_mono = compp.WorkOrds
- LEFT JOIN (
- SELECT WorkOrd, COUNT(*) num FROM NbrDetail WHERE type='SM' AND QtyFrom>0 GROUP BY WorkOrd
- ) cnb ON mo.moentry_mono = cnb.WorkOrd
- LEFT JOIN (
- SELECT ProdLine, ProdRange, SAPItemNumber FROM YearDemandManagement GROUP BY ProdLine, ProdRange, SAPItemNumber
- ) yeard ON entry.item_number = yeard.SAPItemNumber
- LEFT JOIN (
- SELECT OrdNbr, ContainerItem, MAX(updatetime) as ShipDate
- FROM ASNBOLShipperDetail GROUP BY OrdNbr, ContainerItem
- ) asn ON asn.OrdNbr = sorder.bill_no AND asn.ContainerItem = entry.item_number
- LEFT JOIN ShippingPlanDetail sp ON entry.id = sp.sentry_id
- LEFT JOIN (
- SELECT OrdNbr, ContainerItem, COUNT(*) as nboNum
- FROM ASNBOLShipperDetail
- GROUP BY OrdNbr, ContainerItem
- ) nbo ON nbo.OrdNbr = sorder.bill_no AND nbo.ContainerItem = entry.item_number
- WHERE entry.IsDeleted = 0 AND sorder.bill_no IS NOT NULL
- <if test="req.billNo != null and req.billNo != ''">
- AND sorder.bill_no LIKE CONCAT('%', #{req.billNo}, '%')
- </if>
- <if test="req.customNo != null and req.customNo != ''">
- AND sorder.custom_no LIKE CONCAT('%', #{req.customNo}, '%')
- </if>
- <if test="req.itemNumber != null and req.itemNumber != ''">
- AND entry.item_number LIKE CONCAT('%', #{req.itemNumber}, '%')
- </if>
- <if test="req.planDate != null and req.planDate != ''">
- AND DATE(entry.plan_date) = #{req.planDate}
- </if>
- <if test="req.progress != null and req.progress != ''">
- AND entry.progress = #{req.progress}
- </if>
- ORDER BY entry.create_time DESC
- </select>
- <!-- 查询变更记录 -->
- <select id="selectChangeList" resultType="cn.iocoder.yudao.module.order.controller.admin.delivery.vo.ValueStreamRespVO$ChangeRecord">
- SELECT
- @rownum := @rownum + 1 AS sno,
- a.bill_no as billNo,
- a.change_Type as changeType,
- a.change_Reason as changeReason,
- a.change_content as changeContent,
- DATE_FORMAT(a.update_time, '%Y-%m-%d') as updateTime
- FROM crm_seorder_change a
- LEFT JOIN crm_seorderentry b ON a.bill_no = b.bill_no
- CROSS JOIN (SELECT @rownum := 0) r
- WHERE a.bill_no IS NOT NULL AND b.id = #{entryId}
- ORDER BY a.id
- </select>
- <!-- 查询计划排程 -->
- <select id="selectScheduleList" resultType="cn.iocoder.yudao.module.order.controller.admin.delivery.vo.ValueStreamRespVO$ScheduleItem">
- SELECT
- @rownum := @rownum + 1 AS sno,
- sch.WorkOrds as workOrds,
- sch.Line as line,
- sch.ItemNum as itemNum,
- im.Descr as descr,
- im.Descr1 as descr1,
- sch.Op as op,
- DATE_FORMAT(sch.PlanDate, '%Y-%m-%d') as workDate,
- CAST(sch.OrdQty AS DECIMAL(18,2)) as workQty,
- DATE_FORMAT(sch.CreateTime, '%Y-%m-%d') as createTime
- FROM PeriodSequenceDet sch
- LEFT JOIN ItemMaster im ON sch.ItemNum = im.ItemNum
- LEFT JOIN mes_morder mo ON mo.morder_no = sch.WorkOrds
- INNER JOIN mes_moentry me ON mo.Id = me.moentry_moid
- LEFT JOIN crm_seorderentry se ON se.Id = me.soentry_id
- CROSS JOIN (SELECT @rownum := 0) r
- WHERE se.id = #{entryId} AND mo.IsDeleted = 0
- ORDER BY sch.PlanDate
- </select>
- <!-- 查询物料需求/生产备料 -->
- <select id="selectMaterialList" resultType="cn.iocoder.yudao.module.order.controller.admin.delivery.vo.ValueStreamRespVO$MaterialItem">
- SELECT
- nm.Nbr as nbr,
- nd.Line as line,
- nd.ItemNum as itemNum,
- im.Descr as descr,
- im.Descr1 as descr1,
- CAST(nd.QtyFrom AS DECIMAL(18,2)) as qtyFrom,
- CAST(nd.QtyOrd AS DECIMAL(18,2)) as qtyOrd,
- CAST(nd.CurrQtyOpened AS DECIMAL(18,2)) as currQtyOpened,
- CAST(nd.QtyRec AS DECIMAL(18,2)) as qtyRec,
- nd.UM as um,
- nd.LocationFrom as locationFrom,
- nd.LocationTo as locationTo,
- DATE_FORMAT(nd.UpdateTime, '%Y-%m-%d %H:%i:%s') as updateTime,
- nd.WorkOrd as workOrd
- FROM NbrDetail nd
- LEFT JOIN NbrMaster nm ON nd.nbr = nm.nbr
- LEFT JOIN mes_morder mo ON mo.morder_no = nm.WorkOrd
- INNER JOIN mes_moentry me ON mo.Id = me.moentry_moid
- LEFT JOIN crm_seorderentry se ON se.Id = me.soentry_id AND mo.product_code = se.item_number
- LEFT JOIN ItemMaster im ON nd.ItemNum = im.ItemNum
- WHERE se.id = #{entryId} AND mo.IsDeleted = 0 AND nm.Type = 'SM'
- ORDER BY nm.Nbr
- </select>
- <!-- 调用销售出库存储过程 -->
- <select id="callAutoCreateShipper" statementType="CALLABLE">
- {CALL pr_WMS_AutoCreateShipper(#{orgNo}, #{operatorAccount}, #{planIds})}
- </select>
- </mapper>
|