You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
193 lines
13 KiB
193 lines
13 KiB
<?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.gaotao.modules.schedule.mapper.SchedulingMapper">
|
|
|
|
<!--查询加工中心的信息通过机台-->
|
|
<select id="getCurrentWorkCenterNoByResourceId" parameterType="SearchScheduleData" resultType="java.lang.String">
|
|
SELECT WorkCenterNo workCenterNo FROM WorkCenterResource wcr
|
|
<where>
|
|
wcr.Site = #{site}
|
|
<if test="resourceId != null and resourceId != ''">
|
|
AND wcr.ResourceID = #{resourceId}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
<!--获取FQC的排产工单-->
|
|
<select id="getShopOrderListWithFqc" parameterType="SearchScheduleData" resultType="ShopOrderOutData">
|
|
SELECT T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, T.OperationDesc itemDesc, D.NeedDate needDate, T.PartNo partNo, P.PartDescription partDesc,
|
|
P.Spec spec, T.WorkCenterNo workCenterNo, T.NextItemNo nextItemNo, S2.OperationDesc nextItemDesc, T.PreItemNo preItemNo,S1.OperationDesc preItemDesc,
|
|
S1.ScheduledFlag preScheduledFlag, T.QtyReported qtyReported, T.ScheduledFlag scheduledFlag, D.LotSize lotSize, D.EnterDate enterDate,
|
|
dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) as AvailResource, ROUND(T.TimeRequired, 2) timeRequired,
|
|
dbo.getScheduleToPlanTime(D.LotSize, T.MachSetupTime, T.MachRunFactor, T.FactorUnit, T.Efficiency) scheduleToPlanTime,
|
|
D.CustomerID customerId, P.ConfigurationTemplateID customerName, T.MachRunFactor machRunFactor, T.MachSetupTime machSetupTime, T.FactorUnit factorUnit,
|
|
T.QtyScheduled qtyScheduled, (round(T.QtyRequired,3) - Round(T.QtyScheduled,3)) qtyToSchedule, Isnull(S1.QtyScheduled,0.0) qtyScheduledPreOps,
|
|
P.Remark custPartNo, S1.QtyApprove qtyApprovedPreOps, S1.PlanStartTime prePlanStartTime, S1.PlanFinishTime prePlanFinishTime, S2.ScheduledFlag nextScheduledFlag,
|
|
D.RoutingRevNo routingRevNo, T.Efficiency efficiency
|
|
from SORouting as T
|
|
LEFT JOIN ShopOrder as D On T.Site=D.Site and T.OrderNo=D.OrderNo
|
|
LEFT JOIN Part as P On T.Site=P.Site and T.PartNo=P.PartNo
|
|
LEFT JOIN SORouting as S1 On T.Site=S1.Site and T.OrderNo=S1.OrderNo and T.PreItemNo=S1.ItemNo
|
|
LEFT JOIN SORouting as S2 On T.Site=S2.Site and T.OrderNo=S2.OrderNo and T.NextItemNo=S2.ItemNo
|
|
<where>
|
|
and T.ClosedFlag = 'N' and T.site = #{site}
|
|
and T.OrderNo<![CDATA[<>]]>'9999'
|
|
and isnull(D.Status,'')<![CDATA[<>]]>'已取消' and isnull(D.Status,'')<![CDATA[<>]]>'已计划' and isnull(D.Status,'')<![CDATA[<>]]>'已关闭'
|
|
and T.WorkCenterNo = 'FQC'
|
|
<if test='fulledItemFlag != null and fulledItemFlag == "N"'>
|
|
and Round(T.QtyScheduled,3) <![CDATA[<]]]> round(T.QtyRequired,3)
|
|
</if>
|
|
<if test='preScheduledFlag != null and preScheduledFlag == "Y"'>
|
|
and Isnull(S1.ScheduledFlag,'Y')='Y'
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
<!--获取FQC的操作员信息-->
|
|
<select id="getOperatorListWithFqc" parameterType="SearchScheduleData" resultType="OperatorOutData">
|
|
SELECT T.ResourceID operatorId, T.ResourceDesc operatorName, Float1 qtyToSchedule, 0.0 timeAvailable, T.CalendarID calendarId,
|
|
T.Efficiency efficiency, (SELECT D.CalendarDesc FROM Calendar as D Where T.Site = D.Site AND T.CalendarID=D.CalendarID) calendarDesc,
|
|
(SELECT LastScheduleTime FROM SOScheduleSeq WHERE Site = '1' AND WorkCenterNo='FQC' AND ResourceID = T.ResourceID AND RevNo = 1) lastScheduledTime,/*新增加的行数据*/
|
|
T.VirturlFlag virturlFlag
|
|
FROM WorkCenterResource as T,DataMaintainTmp
|
|
<where>
|
|
AND T.Site = #{site} AND Active='Y' AND SeqNo = 1
|
|
AND T.WorkCenterNo = 'FQC'
|
|
</where>
|
|
</select>
|
|
|
|
<!--获取FQC的操派工单记录-->
|
|
<select id="getOrderScheduleListWithFqc" parameterType="SearchScheduleData" resultType="ScheduleData">
|
|
SELECT T.Site site, E.S_ScheduledSeqNo scheduledSeqNo, T.OrderNo orderNo, T.ItemNo itemNo, T.S_WorkCenterNo workCenterNo, T.ClosedFlag closedFlag,
|
|
T.PlanStartTime planStartTime, T.PlanFinishTime planFinishTime,T.S_ResourceID resourceId, T.QtyRequired qtyRequired, T.TimeRequired timeRequired,
|
|
T.SeqNo seqNo, T.SELECTedFlag slectedFlag, T.SourceFlag sourceFlag, T.ParkFlag parkFlag, P.Remark custPartNo, P.PartNo partNo, P.PartDescription partDesc,
|
|
P.Spec spec, T.Remark remark, T.TimeRequired_Original,T.QtyRequired_Original, T.QtyReported, P.ConfigurationTemplateID customerName, T.VirtualResourceFlag
|
|
FROM SOScheduledList as E,SOScheduledRouting as T,ShopOrder as S,Part as P
|
|
<where>
|
|
AND E.Site=T.Site AND E.LinkedSeqNo=T.SeqNo
|
|
AND T.Site=S.Site AND T.OrderNo=S.OrderNo
|
|
AND S.Site=P.Site AND S.PartNo=P.PartNo
|
|
AND E.Site = #{site}
|
|
AND T.S_WorkCenterNo = 'FQC'
|
|
AND T.S_ResourceID = #{resourceId}
|
|
Order by E.S_ScheduledSeqNo
|
|
</where>
|
|
</select>
|
|
|
|
<!--刷新的soRouting的排产相应的数量-->
|
|
<select id="freshSoRoutingScheduledQty" parameterType="SearchScheduleData" resultType="java.util.HashMap">
|
|
SELECT sr.QtyScheduled scheduledQty, so.LotSize lotSize, (so.LotSize - sr.QtyScheduled) qtyToSchedule
|
|
FROM SORouting sr
|
|
LEFT JOIN ShopOrder so ON sr.Site = so.Site AND sr.OrderNo = so.OrderNo
|
|
<where>
|
|
AND sr.Site = #{site} AND sr.OrderNo = #{orderNo} AND sr.ItemNo = #{itemNo}
|
|
</where>
|
|
</select>
|
|
|
|
<!--获取工单的物料库存数量-->
|
|
<select id="getOrderPartStockedQty" parameterType="SearchScheduleData" resultType="java.util.HashMap">
|
|
SELECT itemcode partNo, itemname partDesc, whscode warehouseId, whsname warehouseName, onhand, iscommited isCommited,
|
|
onorder onOrder, qty_available qtyAvailable, QtyRequired qtyRequired FROM (
|
|
SELECT 1 AS PX, D.ItemNo,itemcode,itemname,whscode,whsname,onhand,iscommited,onorder,qty_available,d.QtyRequired
|
|
FROM dbo.view_SAP_STOCK AS T,dbo.view_SAP_SOBOM AS D
|
|
WHERE D.ComponentPartNo=T.itemcode
|
|
AND D.Site = #{site} AND D.OrderNo = #{orderNo}
|
|
AND (onhand <![CDATA[<>]]> 0 OR iscommited <![CDATA[<>]]>0 OR onorder <![CDATA[<>]]> 0 OR qty_available<![CDATA[<>]]> 0)
|
|
UNION ALL
|
|
SELECT Distinct 2 AS PX,D.ItemNo,'--' AS itemcode,'' AS itemname,'' AS whscode,null AS whsname,null AS onhand,null AS iscommited,null AS onorder,null AS qty_available,null AS QtyRequired
|
|
FROM dbo.view_SAP_STOCK AS T,dbo.view_SAP_SOBOM AS D
|
|
WHERE D.ComponentPartNo=T.itemcode
|
|
AND D.Site = #{site} AND D.OrderNo = #{orderNo}
|
|
AND (onhand <![CDATA[<>]]> 0 OR iscommited <![CDATA[<>]]> 0 OR onorder <![CDATA[<>]]> 0 OR qty_available <![CDATA[<>]]> 0)
|
|
) AS T
|
|
ORDER BY t.ItemNo,PX,T.whscode
|
|
</select>
|
|
|
|
<!--刷新FQC的排产工单数据-->
|
|
<select id="getShopOrderByCon" parameterType="SearchScheduleData" resultType="ShopOrderOutData">
|
|
SELECT T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, T.OperationDesc itemDesc, D.NeedDate needDate, T.PartNo partNo, P.PartDescription partDesc,
|
|
P.Spec spec, T.WorkCenterNo workCenterNo, T.NextItemNo nextItemNo, S2.OperationDesc nextItemDesc, T.PreItemNo preItemNo,S1.OperationDesc preItemDesc,
|
|
S1.ScheduledFlag preScheduledFlag, T.QtyReported qtyReported, T.ScheduledFlag scheduledFlag, D.LotSize lotSize, D.EnterDate enterDate,
|
|
dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) as AvailResource, ROUND(T.TimeRequired, 2) timeRequired,
|
|
dbo.getScheduleToPlanTime(D.LotSize, T.MachSetupTime, T.MachRunFactor, T.FactorUnit, T.Efficiency) scheduleToPlanTime,
|
|
D.CustomerID customerId, P.ConfigurationTemplateID customerName, T.MachRunFactor machRunFactor, T.MachSetupTime machSetupTime, T.FactorUnit factorUnit,
|
|
T.QtyScheduled qtyScheduled, (round(T.QtyRequired,3) - Round(T.QtyScheduled,3)) qtyToSchedule, Isnull(S1.QtyScheduled,0.0) qtyScheduledPreOps,
|
|
P.Remark custPartNo, S1.QtyApprove qtyApprovedPreOps, S1.PlanStartTime prePlanStartTime, S1.PlanFinishTime prePlanFinishTime, S2.ScheduledFlag nextScheduledFlag,
|
|
D.RoutingRevNo routingRevNo, T.Efficiency efficiency
|
|
from SORouting as T
|
|
LEFT JOIN ShopOrder as D On T.Site=D.Site and T.OrderNo=D.OrderNo
|
|
LEFT JOIN Part as P On T.Site=P.Site and T.PartNo=P.PartNo
|
|
LEFT JOIN SORouting as S1 On T.Site=S1.Site and T.OrderNo=S1.OrderNo and T.PreItemNo=S1.ItemNo
|
|
LEFT JOIN SORouting as S2 On T.Site=S2.Site and T.OrderNo=S2.OrderNo and T.NextItemNo=S2.ItemNo
|
|
<where>
|
|
AND T.ClosedFlag = 'N' and T.site = #{site}
|
|
AND T.OrderNo<![CDATA[<>]]>'9999'
|
|
AND isnull(D.Status,'')<![CDATA[<>]]>'已取消' and isnull(D.Status,'')<![CDATA[<>]]>'已计划' and isnull(D.Status,'')<![CDATA[<>]]>'已关闭'
|
|
AND T.OrderNo = #{orderNo} AND T.ItemNo = #{itemNo}
|
|
<if test='fulledItemFlag != null and fulledItemFlag == "N"'>
|
|
and Round(T.QtyScheduled,3) <![CDATA[<]]]> round(T.QtyRequired,3)
|
|
</if>
|
|
<if test='preScheduledFlag != null and preScheduledFlag == "Y"'>
|
|
and Isnull(S1.ScheduledFlag,'Y')='Y'
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
<!--按照条件查询工单的数据-->
|
|
<select id="getShopOrderList" parameterType="SearchScheduleData" resultType="ShopOrderOutData">
|
|
Select TOP 200 T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, T.OperationDesc itemDesc, T.PartNo partNo, P.PartDescription partDesc, P.Spec spec,
|
|
D.LotSize lotSize, T.QtyReported qtyReported, D.NeedDate needDate, T.PreItemNo PreItemNo, S1.OperationDesc PreItemDesc, S1.ScheduledFlag preScheduledFlag,
|
|
T.NextItemNo nextItemNo, S2.OperationDesc nextItemDesc, S2.ScheduledFlag nextScheduledFlag, D.CustomerID customerId, P.ConfigurationTemplateID customerName,
|
|
D.EnterDate enterDate, dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) availResource, T.WorkCenterNo workCenterNo,
|
|
T.MachRunFactor machRunFactor, T.MachSetupTime machSetupTime, T.FactorUnit factorUnit, T.ScheduledFlag scheduledFlag, D.RoutingRevNo routingRevNo,
|
|
T.QtyScheduled qtyScheduled,(round(T.QtyRequired,3) - Round(T.QtyScheduled,3)) qtyToSchedule, Isnull(S1.QtyScheduled,0.0) qtyScheduledPreOps,
|
|
dbo.getScheduleToPlanTime(D.LotSize, T.MachSetupTime, T.MachRunFactor, T.FactorUnit, t.Efficiency) scheduleToPlanTime,
|
|
D.OriSOOrderNo oriSOOrderNo, P.Remark custPartNo, 1*t.Efficiency efficiency, D.CostRollUpFlag costRollUpFlag, isnull(S1.QtyApprove,0.0) qtyApprovedPreOps,
|
|
d.ManualFlag manualFlag, d.RepairSOFlag repairSOFlag
|
|
from SORouting as T
|
|
Left Join ShopOrder as D On T.Site=D.Site and T.OrderNo=D.OrderNo
|
|
Left Join Part as P On T.Site=P.Site and T.PartNo=P.PartNo
|
|
Left Join SORouting as S1 On T.Site=S1.Site and T.OrderNo=S1.OrderNo and T.PreItemNo=S1.ItemNo
|
|
Left Join SORouting as S2 On T.Site=S2.Site and T.OrderNo=S2.OrderNo and T.NextItemNo=S2.ItemNo
|
|
<where>
|
|
Round(T.QtyScheduled,3) <![CDATA[ < ]]> round(T.QtyRequired,3) and T.ClosedFlag = 'N'
|
|
<if test="username != null and username != ''">
|
|
and T.site in (Select Site from AccessSite where upper(UserID)=#{username})
|
|
</if>
|
|
and T.OrderNo<![CDATA[ <> ]]>'9999' and isnull(D.Status,'')<![CDATA[ <> ]]>'已取消' and isnull(D.Status,'')<![CDATA[ <> ]]>'已计划'
|
|
and isnull(D.Status,'')<![CDATA[ <> ]]>'已关闭'
|
|
<if test="enterTime1 != null">
|
|
and D.EnterDate<![CDATA[ >= ]]> #{enterTime1}
|
|
</if>
|
|
<if test="enterTime2 != null">
|
|
and D.EnterDate-1<![CDATA[<]]> #{enterTime2}
|
|
</if>
|
|
<if test="needTime1 != null">
|
|
and D.NeedDate<![CDATA[ >= ]]>#{needTime1}
|
|
</if>
|
|
<if test="needTime2 != null">
|
|
and D.NeedDate<![CDATA[ <= ]]>#{needTime2}
|
|
</if>
|
|
<if test="site != null and site != ''">
|
|
AND T.Site like '%' + #{site} + '%'
|
|
</if>
|
|
<if test="workCenterNo != null and workCenterNo != ''">
|
|
AND T.WorkCenterNo like '%' + #{workCenterNo} + '%'
|
|
</if>
|
|
<if test="scheduledFlag != null and scheduledFlag != ''">
|
|
AND Isnull(S1.ScheduledFlag, 'Y') = #{scheduledFlag}
|
|
</if>
|
|
<if test="resourceId != null and resourceId != ''">
|
|
AND dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) like '%' + #{resourceId} + '(%'
|
|
</if>
|
|
AND T.WorkCenterNo <![CDATA[<>]]> 'FQC'
|
|
</where>
|
|
Order by D.NeedDate
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</mapper>
|