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.
 
 
 
 
 
 

843 lines
33 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.shopOrder.dao.ShopOrderMapper">
<!-- =============生产订单类型===================-->
<select id="getShopOrderFamily" resultType="com.gaotao.modules.shopOrder.entity.SOOrderTypeData">
Select OrderType, TypeDesc, Site, Active
from SOOrderType as T
where T.Site in (Select Site from AccessSite where upper(UserID) = #{user})
</select>
<insert id="saveShopOrderFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOOrderTypeData">
INSERT INTO SOOrderType (OrderType, TypeDesc, Site, Active)
values (#{orderType}, #{typeDesc}, #{site}, #{active})
</insert>
<update id="editShopOrderFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOOrderTypeData">
UPDATE SOOrderType
SET TypeDesc=#{typeDesc},
Active=#{active},
Site=#{site}
where OrderType = #{orderType}
and Site = #{site}
</update>
<delete id="deleteShopOrderFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOOrderTypeData">
delete
from SOOrderType
where OrderType = #{orderType}
and Site = #{site}
</delete>
<select id="checkOrderType" resultType="com.gaotao.modules.shopOrder.entity.SOOrderTypeData">
select OrderType, TypeDesc
from SOOrderType
where OrderType = #{orderType}
and Site = #{site}
</select>
<!-- =============生产计划===================-->
<select id="getPlanFamily" resultType="com.gaotao.modules.shopOrder.entity.SOPlannerData">
Select PlannerType, TypeDesc, Site, Active
from SOPlanner as T
where T.Site in (Select Site from AccessSite where upper(UserID) = #{user})
</select>
<insert id="savePlanFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOPlannerData">
INSERT INTO SOPlanner (PlannerType, TypeDesc, Site, Active)
values (#{plannerType}, #{typeDesc}, #{site}, #{active})
</insert>
<update id="editPlanFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOPlannerData">
UPDATE SOPlanner
SET TypeDesc=#{typeDesc},
Active=#{active},
Site=#{site}
where PlannerType = #{plannerType}
and Site = #{site}
</update>
<delete id="deletePlanFamily" parameterType="com.gaotao.modules.shopOrder.entity.SOPlannerData">
delete
from SOPlanner
where PlannerType = #{plannerType}
and Site = #{site}
</delete>
<select id="checkPlannerType" resultType="com.gaotao.modules.shopOrder.entity.SOPlannerData">
select PlannerType, TypeDesc
from SOPlanner
where PlannerType = #{plannerType}
and Site = #{site}
</select>
<!-- 查询-生产订单无工艺路线 -->
<select id="searchShopOrderWithNoProcessRoute"
resultType="com.gaotao.modules.shopOrder.entity.ShopOrderWithNoProcessRouteData">
Select * from view_SOrouting_check as T
<where>
AND T.site in (Select Site from AccessSite where upper(UserID)=#{user})
<if test=" site != null and site != ''">
AND Site like #{site}
</if>
<if test=" orderNo != null and orderNo != ''">
AND OrderNo like #{orderNo}
</if>
<if test=" partNo != null and partNo != ''">
AND PartNo like #{partNo}
</if>
<if test=" date1 != null ">
AND EnterDate >= #{date1}
</if>
<if test=" date2 != null ">
AND dateadd( DAY, 1, #{date2} ) > EnterDate
</if>
</where>
</select>
<select id="searchProductionDispatchList"
resultType="com.gaotao.modules.shopOrder.entity.SearchProductionDispatchListData">
SELECT
T.Site,
T.OrderNo,
T.ItemNo,
S.OperationDesc,
S.PartNo,
P.PartDescription,
P.Spec,
T.QtyRequired AS LotSize,
T.QtyReported,
D.NeedDate,
S.PreItemNo,
S1.OperationDesc AS PreOperationDesc,
S1.ScheduledFlag AS PreScheduledFlag,
S.NextItemNo,
S2.OperationDesc AS NextOperationDesc,
S2.ScheduledFlag AS NextScheduledFlag,
D.CustomerID,
P.ConfigurationTemplateID AS CustomerName,
D.EnterDate,
dbo.Get_SOOpsScheduleAvailResource (
T.Site,
T.OrderNo,
T.S_WorkCenterNo,
T.ItemNo
) AS AvailResource,
T.S_WorkCenterNo AS WorkCenterNo,
S.MachRunFactor,
S.MachSetupTime,
S.FactorUnit,
T.ClosedFlag,
isnull(E.S_ScheduledSeqNo ,- 1) AS S_ScheduledSeqNo,
T.PlanStartTime,
T.PlanFinishTime,
T.S_ResourceID,
ROUND(T.TimeRequired,2),
T.SeqNo,
T.SelectedFlag,
T.SourceFlag,
S1.QtyScheduled AS QtyScheduled_PreOps,
T.ParkFlag,
ROUND(T.TimeRequired_Original,2),
T.QtyRequired_Original,
S1.PlanStartTime AS PreOpsPlanStartTime,
S1.PlanFinishTime AS PreOpsPlanFinishTime,
T.EnteredDate,
(
CASE
WHEN S1.PlanStartTime > T.PlanStartTime THEN
'Y'
ELSE
'N'
END
) AS InAdvancedFlag,
P.Remark AS CustPartNo,
T.ClosedDate,
T.closedby
FROM
SOScheduledRouting AS T
LEFT JOIN ShopOrder AS D ON T.Site = D.Site
AND T.OrderNo = D.OrderNo
LEFT JOIN SOScheduledList AS E ON E.Site = T.Site
AND E.LinkedSeqNo = T.SeqNo,
SORouting AS S
LEFT JOIN Part AS P ON S.Site = P.Site
AND S.PartNo = P.PartNo
LEFT JOIN SORouting AS S1 ON S.Site = S1.Site
AND S.OrderNo = S1.OrderNo
AND S.PreItemNo = S1.ItemNo
LEFT JOIN SORouting AS S2 ON S.Site = S2.Site
AND S.OrderNo = S2.OrderNo
AND S.NextItemNo = S2.ItemNo
<where>
AND T.Site = S.Site
AND T.OrderNo = S.OrderNo
AND T.ItemNo = S.ItemNo
<if test=" site != null and site != ''">
AND T.Site like #{site}
</if>
<if test=" orderNo != null and orderNo != ''">
AND T.OrderNo like #{orderNo}
</if>
<if test=" partNo != null and partNo != ''">
AND S.PartNo like #{partNo}
</if>
<if test=" sResourceID != null and sResourceID != ''">
AND T.S_ResourceID like #{sResourceID}
</if>
<if test=" workCenterNo != null and workCenterNo != ''">
AND T.S_WorkCenterNo like #{workCenterNo}
</if>
<if test=" date1 != null ">
AND D.EnterDate >= #{date1}
</if>
<if test=" date2 != null ">
AND dateadd( DAY, 1, #{date2} ) > D.EnterDate
</if>
<if test=" date3 != null ">
AND T.PlanStartTime >= #{date3}
</if>
<if test=" date4 != null ">
AND dateadd( DAY, 1, #{date4} ) > T.PlanStartTime
</if>
<if test=" date5 != null ">
AND T.PlanFinishTime>= #{date5}
</if>
<if test=" date6 != null ">
AND dateadd( DAY, 1, #{date6} ) > T.PlanFinishTime
</if>
${sql}
</where>
</select>
<select id="searchShopOrder" resultType="com.gaotao.modules.shopOrder.entity.SearchShopOrder">
Select T.OrderNo,T.NeedDate,T.OrderType,T.PartNo,p.PartDescription+' / '+isnull(p.Spec,'') as PartDescription,
T.LotSize,T.Planner,T.Status,T.CustomerID,P.ConfigurationTemplateID as CustomerName,T.PlanStartDate,T.Leadtime,
T.EnterDate,T.Username,T.FinishedQty,T.ReleaseDate,T.ReleaseGuys,T.ScheduleDate,T.Scheduler,T.IssueDate,
T.ReportDate,T.ReceiveDate,T.Printed,T.ProjectID,pr.ProjectName,T.BOMRevNo,T.RoutingRevNo,T.OriginalNeedDate,
T.OrderRef1,T.OrderRef2,T.Site,T.Remark,CostRollUpFlag,T.ManualFlag,T.OriSOOrderNo,P.FamilyID,
dbo.Get_PartFamilyDesc(P.Site,P.FamilyID) as FamilyName,P.GroupID,dbo.Get_PartGroupDesc(P.Site,P.GroupID) as
GroupName,
T.ReceiveStatus,T.RepairSOFlag,T.E_OriginalOrderType,T.E_OriginalOrderNo,T.E_Levels,P.PartType,P.Remark as
CustPartNo,
T.NeedDate as COPlanShipDate
from Part as p,ShopOrder as T
left join Project as pr on pr.Site=T.Site and pr.Projectid=T.ProjectID
<where>
AND T.Site=p.Site and T.PartNo=p.PartNo
and T.site in (Select Site from AccessSite where upper(UserID)=#{user})
<if test=" orderType != null and orderType != ''">
AND T.OrderType like #{orderType}
</if>
<if test=" planner != null and planner != ''">
AND T.Planner like #{planner}
</if>
<if test=" site != null and site != ''">
AND T.Site like #{site}
</if>
<if test=" buNo != null and buNo != ''">
AND T.bu_no like #{buNo}
</if>
<if test=" partType != null and partType != ''">
AND P.PartType like #{partType}
</if>
<if test=" partNo != null and partNo != ''">
AND T.PartNo like #{partNo}
</if>
<if test=" partDescription != null and partDescription != ''">
AND p.PartDescription like #{partDescription}
</if>
<if test=" projectID != null and projectID != ''">
AND T.ProjectID like #{projectID}
</if>
<if test=" remark != null and remark != ''">
AND T.Remark like #{remark}
</if>
<if test=" orderNo != null and orderNo != ''">
AND T.OrderNo like #{orderNo}
</if>
<if test=" orderRef1 != null and orderRef1 != ''">
AND T.OrderRef1 like #{orderRef1}
</if>
<if test=" costRollUpFlag != null and costRollUpFlag != ''">
AND CostRollUpFlag like #{costRollUpFlag}
</if>
<if test=" statusList != null and statusList.size > 0 ">
AND T.Status in
<foreach item="item" collection="statusList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test=" date1 != null ">
AND T.EnterDate >= #{date1}
</if>
<if test=" date2 != null ">
AND dateadd( DAY, 1, #{date2} ) > T.EnterDate
</if>
<if test=" date3 != null ">
AND T.PlanStartDate >= #{date3}
</if>
<if test=" date4 != null ">
AND dateadd( DAY, 1, #{date4} ) > T.PlanStartDate
</if>
</where>
</select>
<select id="searchShopOrderByPaging" parameterType="com.gaotao.modules.shopOrder.entity.SearchShopOrder" resultType="com.gaotao.modules.shopOrder.entity.SearchShopOrder">
Select T.OrderNo,T.NeedDate,T.OrderType,T.PartNo,p.PartDescription+' / '+isnull(p.Spec,'') as PartDescription,
T.LotSize,T.Planner,T.Status,T.CustomerID,P.ConfigurationTemplateID as CustomerName,T.PlanStartDate,T.Leadtime,
T.EnterDate,T.Username,T.FinishedQty,T.ReleaseDate,T.ReleaseGuys,T.ScheduleDate,T.Scheduler,T.IssueDate,
T.ReportDate,T.ReceiveDate,T.Printed,T.ProjectID,pr.ProjectName,T.BOMRevNo,T.RoutingRevNo,T.OriginalNeedDate,
T.OrderRef1,T.OrderRef2,T.Site,T.Remark,CostRollUpFlag,T.ManualFlag,T.OriSOOrderNo,P.FamilyID,
dbo.Get_PartFamilyDesc(P.Site,P.FamilyID) as FamilyName,P.GroupID,dbo.Get_PartGroupDesc(P.Site,P.GroupID) as
GroupName,
T.ReceiveStatus,T.RepairSOFlag,T.E_OriginalOrderType,T.E_OriginalOrderNo,T.E_Levels,P.PartType,P.Remark as
CustPartNo,
T.NeedDate as COPlanShipDate, T.batch_no batchNo,
<!--(SELECT ROUND(SUM(issureQty),3) FROM SOIssueNotifyOrderList where Site = T.site and sOOrderNo = T.OrderNo)--> 0 alreadyApplyTotal
from Part as p,ShopOrder as T
left join Project as pr on pr.Site=T.Site and pr.Projectid=T.ProjectID
<where>
AND T.Site=p.Site and T.PartNo=p.PartNo
and T.site in (Select Site from AccessSite where upper(UserID)=#{query.user})
<if test=" query.orderType != null and query.orderType != ''">
AND T.OrderType like #{query.orderType}
</if>
<if test=" query.planner != null and query.planner != ''">
AND T.Planner like #{query.planner}
</if>
<if test=" query.site != null and query.site != ''">
AND T.Site like #{query.site}
</if>
<if test=" query.buNo != null and query.buNo != ''">
AND T.bu_no like #{query.buNo}
</if>
<if test=" query.partType != null and query.partType != ''">
AND P.PartType like #{query.partType}
</if>
<if test=" query.partNo != null and query.partNo != ''">
AND T.PartNo like #{query.partNo}
</if>
<if test=" query.statusList != null and query.statusList.size > 0 ">
AND T.Status in
<foreach item="item" collection="query.statusList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test=" query.partDescription != null and query.partDescription != ''">
AND p.PartDescription like #{query.partDescription}
</if>
<if test=" query.projectID != null and query.projectID != ''">
AND T.ProjectID like #{query.projectID}
</if>
<if test=" query.remark != null and query.remark != ''">
AND T.Remark like #{query.remark}
</if>
<if test=" query.orderNo != null and query.orderNo != ''">
AND T.OrderNo like #{query.orderNo}
</if>
<if test=" query.orderRef1 != null and query.orderRef1 != ''">
AND T.OrderRef1 like #{query.orderRef1}
</if>
<if test=" query.costRollUpFlag != null and query.costRollUpFlag != ''">
AND CostRollUpFlag like #{query.costRollUpFlag}
</if>
<if test=" query.statusList != null and query.statusList.size > 0 ">
AND T.Status in
<foreach item="item" collection="query.statusList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test=" query.date1 != null ">
AND T.EnterDate >= #{query.date1}
</if>
<if test=" query.date2 != null ">
AND dateadd( DAY, 1, #{query.date2} ) > T.EnterDate
</if>
<if test=" query.date3 != null ">
AND T.PlanStartDate >= #{query.date3}
</if>
<if test=" query.date4 != null ">
AND dateadd( DAY, 1, #{query.date4} ) > T.PlanStartDate
</if>
</where>
</select>
<select id="getShopOrderData" resultType="com.gaotao.modules.shopOrder.entity.ShopOrderData">
SELECT
T.*,dbo.Get_ProjectDesc(T.Site,T.ProjectID) as ProjectIDName,P.Remark as PartRemark,P.ConfigurationTemplateID,
P.UMID,p.PartDescription+' / '+isnull(p.Spec,'') as PartDesc
FROM
ShopOrder AS T
LEFT JOIN
Part as P ON P.Site=T.Site and P.PartNo=T.PartNo
<where>
AND MaterialSplitFlag = 'N'
and T.Site IN (
SELECT
Site
FROM
AccessSite
WHERE
UPPER (UserID) = #{user}
)
<if test=" orderNo != null and orderNo != ''">
AND T.OrderNo like #{orderNo}
</if>
<if test=" site != null and site != ''">
AND T.Site like #{site}
</if>
<if test=" partNo != null and partNo != ''">
AND T.PartNo like #{partNo}
</if>
<if test=" status != null and status != ''">
AND T.Status = #{status}
</if>
<if test=" date1 != null ">
AND T.NeedDate >= #{date1}
</if>
<if test=" date2 != null ">
AND dateadd( DAY, 1, #{date2} ) > T.NeedDate
</if>
<if test=" date3 != null ">
AND T.PlanStartDate >= #{date3}
</if>
<if test=" date4 != null ">
AND dateadd( DAY, 1, #{date4} ) > T.PlanStartDate
</if>
</where>
</select>
<delete id="deleteShopOrderData">
delete
from ShopOrder
where site = #{site}
and orderNo = #{orderNo}
</delete>
<delete id="deleteRouteInShopOrder">
delete
from SORouting
where site = #{site}
and orderNo = #{orderNo}
and itemNo = #{itemNo}
</delete>
<insert id="insertRouteInShopOrder">
insert into SORouting (Site, OrderNo, ItemNo, OperationDesc,
WorkCenterNo, MachSetupTime, MachRunFactor,
FactorUnit_DB, FactorUnit, QtyRequired,
QtyReported, QtyApprove, TimeRequired,
TimeReported, Efficiency, PlanStartTime,
PlanFinishTime, BarcodeID, Remark,
PartNo, Crewsize, ClosedFlag,
ActionNotes, QtyScheduled)
values (#{site}, #{orderNo}, #{itemNo}, #{operationDesc}, #{workCenterNo}, #{machSetupTime}, #{machRunFactor},
#{factorUnit_DB},
#{factorUnit}, #{qtyRequired}, #{qtyReported}, #{qtyApprove}, #{timeRequired}, #{timeReported},
#{efficiency},
#{planStartTime}, #{planFinishTime}, #{barcodeID}, #{remark}, #{partNo}, #{crewsize}, #{closedFlag},
#{actionNotes}, 0)
</insert>
<delete id="deleteAvailResourceInShopOrder">
delete from SORouting_AvailableResource where site=#{site} and orderNo=#{orderNo} and ItemNo=#{itemNo}
</delete>
<update id="updateRouteInShopOrder">
update SORouting
set OperationDesc = #{operationDesc}
, WorkCenterNo = #{workCenterNo}
, MachSetupTime = #{machSetupTime}
, MachRunFactor = #{machRunFactor}
, FactorUnit = #{factorUnit}
, Efficiency =#{efficiency}
, TimeReported =#{timeRequired}
, PlanFinishTime = #{planFinishTime}
, PlanStartTime = #{planStartTime}
, Crewsize = #{crewsize}
, Remark= #{remark}
where site = #{site}
and OrderNo = #{orderNo}
and ItemNo = #{itemNo}
</update>
<select id="getRoutingTimeRequired" resultType="java.math.BigDecimal">
select dbo.Get_Routing_TimeRequired(#{site}, #{lotSize}, #{machSetupTime}, #{machRunFactor}, #{factorUnit},
#{efficiency})
</select>
<select id="getWorkCenterInfo" resultType="com.gaotao.modules.shopOrder.entity.vo.WorkCenterVo">
Select WorkCenterNo Work_Center_No,
WorkCenterDesc Work_Center_Desc,
WorkCenterType Work_Center_Type,
Active,
Site
from WorkCenter
where WorkCenterNo = #{workCenterNo}
and Site = #{site}
</select>
<select id="getOrderNoRouteInMaxItemNo" resultType="java.lang.String">
select max(itemno)
from SORouting
where site = #{site}
and orderNo = #{orderNo}
</select>
<select id="getOrderNoItemNoCenter" resultType="java.lang.String">
select dbo.Get_SORoutingAvailResource(#{site}, #{orderNo}, #{workCenterNo}, #{itemNo})
</select>
<update id="saveShopOrderData" parameterType="com.gaotao.modules.shopOrder.entity.ShopOrderData">
update ShopOrder
set NeedDate=#{needDate},
PlanStartDate=#{planStartDate},
OriginalNeedDate=#{originalNeedDate},
OrderType=#{orderType},
Planner=#{planner},
OriSOOrderNo=#{oriSOOrderNo},
ProjectID=#{projectID},
Leadtime=#{leadtime,jdbcType=FLOAT},
RepairSOFlag=#{repairSOFlag},
TechInfo=#{techInfo},
Remark=#{remark},
batch_no=#{batchNo}
where Site = #{site}
and OrderNo = #{orderNo}
</update>
<select id="getRouteInShopOrderData" resultType="com.gaotao.modules.shopOrder.entity.RouteInShopOrderData">
Select R.Site
, R.OrderNo
, R.ItemNo
, R.OperationDesc
, R.WorkCenterNo
, W.WorkCenterDesc
, R.MachSetupTime
, R.MachRunFactor
, R.FactorUnit_DB
, R.FactorUnit
, R.QtyRequired
, R.QtyReported
, R.QtyApprove
, R.TimeRequired
, R.TimeReported
, R.Efficiency
, R.PlanStartTime
, R.PlanFinishTime
, R.BarcodeID
, R.Remark
, R.PartNo
, R.Crewsize
, R.ClosedFlag
, R.ActionNotes
, W.WorkCenterType
, dbo.Get_SORoutingAvailResource(R.Site, R.OrderNo, R.WorkCenterNo, R.ItemNo) as AvailResource
from SORouting as R,
WorkCenter as W
<where>
R.Site = W.Site
and R.WorkCenterNo = W.WorkCenterNo
and R.Site = #{site}
and R.OrderNo = #{orderNo}
<if test="itemNo!= null and itemNo != '' ">and R.itemNo = #{itemNo}</if>
<if test=" itemDesc != null and itemDesc != ''">
AND R.OperationDesc like #{itemDesc}
</if>
</where>
order by R.ItemNo
</select>
<select id="getToolInShopOrder" resultType="com.gaotao.modules.shopOrder.entity.ToolInShopOrder">
Select T.Site
, T.OrderNo
, ItemNo
, T.ToolID
, P.ToolDescription
, P.Spec
, T.ToolQty
, P.UMID
, P.FamilyID
, dbo.Get_PartFamilyDesc(T.Site, P.FamilyID) as FamilyName
, P.Active
, T.Remark
, T.CreateDate
, T.CreatedBy
from SOTool as T,
ToolHeader as P
Where T.Site = P.Site
and T.ToolID = P.ToolID
and T.Site = #{site}
and T.OrderNo = #{orderNo}
Order by ItemNo, T.ToolID
</select>
<select id="getProductMixInShopOrder" resultType="com.gaotao.modules.shopOrder.entity.ProductMixInShopOrder">
Select B.Site
, B.OrderNo
, B.ItemNo
, B.ComponentPartNo
, P.PartDescription as PartDesc
, P.Spec as PartSpec
, P.UMid as PartUm
, B.QtyAssembly
, B.QtyFixedScrapt
, B.ScraptFactor
, B.Remark
, B.QtyRequired
, B.QtyIssue
, B.IssueDate
, B.QtyReserved
, B.RMType_DB
From dbo.view_SAP_SOBOM as B
left join Part as P on B.Site = P.Site
and B.ComponentPartNo = P.PartNo
Where
B.Site = #{site}
and B.OrderNo = #{orderNo}
Order by B.ItemNo
</select>
<select id="getShopOrderSapSOBOM" resultType="com.gaotao.modules.shopOrder.entity.ProductMixInShopOrder">
Select T.ItemNo as item_no,
T.ComponentPartNo as component_part_no,
P.PartDescription as part_desc,
P.Spec as part_spec,
P.UMID,
T.QtyRequired as qty_required
,
P.DefaultLocationID as default_location_ID
from dbo.view_SAP_SOBOM as T,
Part as P
Where T.Site = P.Site
and T.ComponentPartNo = P.PartNo
and T.Site = #{site}
and T.OrderNo = #{orderNo}
</select>
<select id="getOrderInfo" resultType="com.gaotao.modules.shopOrder.entity.ShopOrderData">
Select T.OrderNo as order_no
, T.PartNo as part_no
, T.LotSize as lot_size
, P.PartDescription as part_desc
, isnull(P.Spec, '') as spec
, T.Remark as remark
, dbo.get_ShopOrderPrintInfo(T.Site, T.OrderNo) as first_item_no
from ShopOrder as T,
Part as P
Where T.Site = P.Site
and T.PartNo = P.PartNo
and T.Site = #{site}
and T.OrderNo = #{orderNo}
</select>
<!--获取工单的工具信息-->
<select id="getShopOrderToolDatas" resultType="ShopOrderToolData">
Select T.Site site,
T.OrderNo orderNo,
ItemNo itemNo,
T.ToolID toolId,
P.ToolDescription toolDesc,
P.Spec toolSpec,
T.ToolQty toolQty,
P.UMID umid,
P.FamilyID familyId,
dbo.Get_SOOpsDescription(T.Site, T.OrderNo, ItemNo) itemDesc,
dbo.Get_PartFamilyDesc(T.Site, P.FamilyID) familyName,
P.Active active,
T.Remark remark,
T.CreateDate createdDate,
T.CreatedBy createdBy
FROM SOTool as T,
ToolHeader as P
Where T.Site = P.Site
and T.ToolID = P.ToolID
and T.Site = #{site}
and T.OrderNo = #{orderNo}
Order by ItemNo, T.ToolID
</select>
<select id="getOrderQtyRequired" resultType="java.lang.Double">
Select LotSize
from ShopOrder
Where Site = #{site}
and OrderNo = #{orderNo}
</select>
<select id="getSORoute" resultType="com.gaotao.modules.shopOrder.entity.RouteInShopOrderData">
Select R.Site
, R.OrderNo
, R.ItemNo
, ISNULL(R.NextItemNo, 0) next_item_no
, ISNULL(R.PreItemNo, 0) pre_item_no
from SORouting as R
where R.site = #{site}
and R.OrderNo = #{orderNo}
and R.ItemNo = #{itemNo}
</select>
<update id="updateRouteByItemNo">
update SORouting
<set>
<if test="nextItemNo != null">
NextItemNo = #{nextItemNo},
</if>
<if test="preItemNo != null">
PreItemNo = #{preItemNo},
</if>
</set>
where site = #{site}
and OrderNo = #{orderNo}
and ItemNo = #{itemNo}
</update>
<select id="getSORouteItemNoOrderBy" resultType="com.gaotao.modules.shopOrder.entity.RouteInShopOrderData">
select top 1 Site
, OrderNo
, ItemNo
from SORouting
<where>
site = #{route.site}
and OrderNo = #{route.orderNo}
<if test="orderBy == 'desc'">
and ItemNo <![CDATA[ < ]]> #{route.itemNo}
</if>
<if test="orderBy == 'asc'">
and ItemNo > #{route.itemNo}
</if>
</where>
order by ItemNo ${orderBy}
</select>
<select id="getShopOrderByPart" resultType="com.gaotao.modules.shopOrder.entity.ShopOrderData">
SELECT
*
FROM
ShopOrder AS T
WHERE
Site = #{site}
AND PartNo = #{partNo}
AND ( Status = '已计划' OR Status = '已下达' )
AND NOT EXISTS ( SELECT 1 FROM SOScheduledRouting AS D WHERE T.Site = D.Site AND T.OrderNo = D.OrderNo )
AND T.OrderType != 'P'
</select>
<select id="getRouteInShopOrderResource"
resultType="com.gaotao.modules.shopOrder.entity.SoroutingAvailableresourceEntity">
SELECT s.Site,s.OrderNo,s.ItemNo,s.WorkCenterNo,w.ResourceID FROM
SORouting s,RoutingDetail e
LEFT JOIN RoutingDetail_AvailableResource w ON
e.Site = w.Site AND
e.PartNo = w.PartNo AND
e.RevNo = w.RevNo AND
e.itemNo=w.itemNo
WHERE s.Site = #{site} AND s.OrderNo = #{orderNo} AND
e.Site = s.Site AND
e.PartNo = s.PartNo AND
e.RevNo=#{bOMRevNo}
and s.ItemNo=e.ItemNo
and s.itemNo in (select h.itemNo from RoutingDetail_AvailableResource h
where h.site = e.site
and h.partno = e.partno
and h.revno = e.revno )
Union all
SELECT s.Site,s.OrderNo,s.ItemNo,s.WorkCenterNo,w.ResourceID FROM
SORouting s
LEFT JOIN WorkCenterResource w ON
s.Site = w.Site AND
s.WorkCenterNo = w.WorkCenterNo
WHERE w.Active = 'Y' AND s.Site = #{site} AND s.OrderNo = #{orderNo}
and s.itemNo not in (select h.itemNo from RoutingDetail_AvailableResource h
where h.site = s.site
and h.partno = s.partno
and h.revno = #{bOMRevNo} )
</select>
<select id="getOrderSopFileInfo" resultType="com.gaotao.modules.oss.entity.SysOssEntity">
SELECT
*
FROM
(--如果工序有设置了可用机台的话,那么和可用机台关联
SELECT
t.Site,
t.WorkCenterNo,
d.ResourceID ,
w.ResourceDesc
FROM
SORouting AS t,
SORouting_AvailableResource AS d ,
WorkCenterResource AS w
WHERE
t.site= d.site
AND t.site= w.site
AND t.WorkCenterNo= w.WorkCenterNo
AND d.ResourceID = w.ResourceID
AND t.OrderNo= d.OrderNo
AND t.ItemNo= d.ItemNo
AND t.Site=#{site}
AND t.OrderNo=#{orderNo}
UNION ALL--如果工序没有设置可用机台的话,那么和和该加工中心下的所有机台对应
SELECT
t.Site,
t.WorkCenterNo,
d.ResourceID ,
w.ResourceDesc
FROM
SORouting AS t
LEFT JOIN SORouting_AvailableResource AS d ON t.site= d.site
AND t.OrderNo= d.OrderNo
AND t.ItemNo= d.ItemNo
,
WorkCenterResource AS w
WHERE
d.Site IS NULL
AND t.site= w.site
AND t.WorkCenterNo= w.WorkCenterNo
AND d.ResourceID = w.ResourceID
AND t.Site=#{site}
AND t.OrderNo=#{orderNo}
) AS x,
sys_oss AS y
WHERE
x.Site= y.order_ref1
AND x.WorkCenterNo= y.order_ref2
AND x.ResourceID= y.order_ref3
ORDER BY ResourceID,order_ref4
</select>
<select id="getShopOrderSopSOBOM" resultType="com.gaotao.modules.shopOrder.entity.ProductMixInShopOrder">
Select
T.ItemNo as item_no,
T.WOR1_ItemCode as component_part_no,
T.WOR1_ItemName as part_desc,
T.WOR1_PlannedQty as qty_required,
T.U_SNUM AS qty_on_hand
from dbo.sop_sobom as T
Where
T.Site = #{site}
and T.DocEntry = #{orderNo}
</select>
<select id="getOrderSopInfo" resultType="com.gaotao.modules.shopOrder.entity.SopViewData">
select * from sop
where DocEntry = #{orderNo}
</select>
<select id="getFileData" resultType="SysOssEntity">
select url,file_name,new_file_name from sys_oss where id = #{id}
</select>
<insert id="saveShopOrderData2">
insert into ShopOrder
(Site, bu_no, OrderNo, Status, Status_Tmp, EnterDate, NeedDate, PlanStartDate,
OrderType, PartNo, LotSize, BOMRevNo, RoutingRevNo, ProjectID, CustomerID, batch_no, OrderRef1, OrderRef2)
values
(#{site}, #{buNo}, #{orderNo}, #{status}, #{statusTmp}, #{enterDate}, #{needDate}, #{planStartDate},
#{orderType}, #{partNo}, #{lotSize,jdbcType=FLOAT}, #{bOMRevNo}, #{routingRevNo}, #{projectID}, #{customerID}, #{batchNo}, #{orderRef1}, #{orderRef2})
</insert>
</mapper>