Browse Source

0412更新

master
ruanqi 3 years ago
parent
commit
12121ca31a
  1. 83
      src/main/java/com/heai/modules/production/dao/SOTaskOrderHeaderMapper.java
  2. 23
      src/main/java/com/heai/modules/production/service/impl/DailyPlanServiceImpl.java
  3. 67
      src/main/resources/mapper/production/SOTaskOrderHeaderMapper.xml

83
src/main/java/com/heai/modules/production/dao/SOTaskOrderHeaderMapper.java

@ -188,4 +188,87 @@ public interface SOTaskOrderHeaderMapper {
List<ShopOrderData> checkRev(@Param("site") String site,@Param("taskNo") String taskNo); List<ShopOrderData> checkRev(@Param("site") String site,@Param("taskNo") String taskNo);
String getCombineOrderNo(); String getCombineOrderNo();
/**
* @Description TODO
* @Title getLastShopOrder
* @param site
 * @param taskNo
* @author rq
* @date 2023/1/6 9:23
* @return ShopOrderData
* @throw
*/
ShopOrderData getLastShopOrder(@Param("site") String site,@Param("taskNo") String taskNo);
/**
* @Description 保存合并的生产订单
* @Title saveNewShopOrder
* @param inData
* @author rq
* @date 2023/1/6 10:13
* @return void
* @throw
*/
void saveNewShopOrder(ShopOrderData inData);
Double getOrderLotSize(@Param("site") String site,@Param("taskNo") String taskNo);
/**
* @Description 复制新的SOBOM
* @Title saveNewSOBom
* @param site
 * @param orderNo
 * @param lotSize
* @author rq
* @date 2023/1/6 11:34
* @return void
* @throw
*/
void saveNewSOBom(@Param("site") String site,@Param("orderNo") String orderNo,@Param("lotSize")Double lotSize,@Param("newOrderNo") String newOrderNo);
/**
* @Description 复制新的sorouting
* @Title saveRouting
* @param site
 * @param orderNo
 * @param lotSize
* @author rq
* @date 2023/1/6 11:35
* @return void
* @throw
*/
void saveRouting(@Param("site") String site,@Param("orderNo") String orderNo,@Param("lotSize")Double lotSize,@Param("newOrderNo") String newOrderNo);
/**
* @Description 复制新的tool
* @Title saveTool
* @param site
 * @param orderNo
* @author rq
* @date 2023/1/6 11:35
* @return void
* @throw
*/
void saveTool(@Param("site") String site,@Param("orderNo") String orderNo,@Param("newOrderNo") String newOrderNo,@Param("createBy") String createBy);
/**
* @Description TODO
* @Title 改旧的生产订单数量
* @param site
 * @param taskNo
* @author rq
* @date 2023/1/6 15:21
* @return void
* @throw
*/
void updateOldOrderNo(@Param("site") String site,@Param("taskNo") String taskNo);
/**
* @Description 改旧的bom
* @Title updateOldSOBom
* @param site
 * @param taskNo
* @author rq
* @date 2023/1/6 15:23
* @return void
* @throw
*/
void updateOldSOBom(@Param("site") String site,@Param("taskNo") String taskNo);
void updateRouting(@Param("site") String site,@Param("taskNo") String taskNo);
} }

23
src/main/java/com/heai/modules/production/service/impl/DailyPlanServiceImpl.java

@ -1099,17 +1099,34 @@ public class DailyPlanServiceImpl implements DailyPlanService {
if(getCombineTaskNo.size()>0){ if(getCombineTaskNo.size()>0){
//判断混炼单能否合并 //判断混炼单能否合并
List<ShopOrderData> checkRepairSOFlag=sOTaskOrderHeaderMapper.checkRepairSOFlag(detailList.get(0).getSite(),taskNo); List<ShopOrderData> checkRepairSOFlag=sOTaskOrderHeaderMapper.checkRepairSOFlag(detailList.get(0).getSite(),taskNo);
if(checkRepairSOFlag.size()>0){
if(checkRepairSOFlag.size()>1){
throw new RuntimeException("混炼生产订单返工的与非返工的不能合并!"); throw new RuntimeException("混炼生产订单返工的与非返工的不能合并!");
} }
//判断版本号是否一致 //判断版本号是否一致
List<ShopOrderData> checkRev=sOTaskOrderHeaderMapper.checkRev(detailList.get(0).getSite(),taskNo); List<ShopOrderData> checkRev=sOTaskOrderHeaderMapper.checkRev(detailList.get(0).getSite(),taskNo);
if(checkRev.size()>0){
if(checkRev.size()>1){
throw new RuntimeException("混炼生产订单BOM版本或者工艺路线版本不一致的不能合并!!"); throw new RuntimeException("混炼生产订单BOM版本或者工艺路线版本不一致的不能合并!!");
} }
String orderNo=sOTaskOrderHeaderMapper.getCombineOrderNo(); String orderNo=sOTaskOrderHeaderMapper.getCombineOrderNo();
ShopOrderData getLastShopOrder=sOTaskOrderHeaderMapper.getLastShopOrder(detailList.get(0).getSite(),taskNo);
getLastShopOrder.setSite(detailList.get(0).getSite());
getLastShopOrder.setOrderNo(orderNo);
getLastShopOrder.setUserName(inData.getCreateBy());
getLastShopOrder.setReleaseGuys(inData.getCreateBy());
getLastShopOrder.setPartNo(inData.getPartNo());
getLastShopOrder.setbOMRevNo(checkRev.get(0).getbOMRevNo());
getLastShopOrder.setRoutingRevNo(checkRev.get(0).getRoutingRevNo());
getLastShopOrder.setRepairSOFlag(checkRepairSOFlag.get(0).getRepairSOFlag());
getLastShopOrder.setLotSize(sOTaskOrderHeaderMapper.getOrderLotSize(detailList.get(0).getSite(),taskNo));
getLastShopOrder.seteOriginalOrderNo(taskNo);
sOTaskOrderHeaderMapper.saveNewShopOrder(getLastShopOrder);
sOTaskOrderHeaderMapper.saveNewSOBom(detailList.get(0).getSite(),detailList.get(0).getOrderRef2(),getLastShopOrder.getLotSize(),orderNo);
sOTaskOrderHeaderMapper.saveRouting(detailList.get(0).getSite(),detailList.get(0).getOrderRef2(),getLastShopOrder.getLotSize(),orderNo);
sOTaskOrderHeaderMapper.saveTool(detailList.get(0).getSite(),detailList.get(0).getOrderRef2(),orderNo,inData.getCreateBy());
sOTaskOrderHeaderMapper.updateOldOrderNo(detailList.get(0).getSite(),taskNo);
sOTaskOrderHeaderMapper.updateOldSOBom(detailList.get(0).getSite(),taskNo);
sOTaskOrderHeaderMapper.updateRouting(detailList.get(0).getSite(),taskNo);
} }
dailyPlanMapper.saveHunlianTaskHeaderData(inData); dailyPlanMapper.saveHunlianTaskHeaderData(inData);

67
src/main/resources/mapper/production/SOTaskOrderHeaderMapper.xml

@ -141,7 +141,7 @@ PartNo,UserName,EnterDate,Qtyfinished,ShiftId,dispatched_hunlian FROM SOTaskOrde
where Site=#{site} and taskNo=#{taskNo} and OrderRef2 is not null and OrderRef2 !='' where Site=#{site} and taskNo=#{taskNo} and OrderRef2 is not null and OrderRef2 !=''
</select> </select>
<select id="checkRepairSOFlag" resultType="com.heai.modules.production.entity.ShopOrderData"> <select id="checkRepairSOFlag" resultType="com.heai.modules.production.entity.ShopOrderData">
select distinct RepairSOFlag from SHOPORDER where site=#{site} and orderNo in
select distinct isnull(RepairSOFlag,'') RepairSOFlag from SHOPORDER where site=#{site} and orderNo in
( select OrderRef2 from Hunlian_TaskDetail ( select OrderRef2 from Hunlian_TaskDetail
where Site=#{site} and taskNo=#{taskNo} and OrderRef2 is not null and OrderRef2 !='') where Site=#{site} and taskNo=#{taskNo} and OrderRef2 is not null and OrderRef2 !='')
</select> </select>
@ -152,8 +152,71 @@ PartNo,UserName,EnterDate,Qtyfinished,ShiftId,dispatched_hunlian FROM SOTaskOrde
</select> </select>
<select id="getCombineOrderNo" resultType="String"> <select id="getCombineOrderNo" resultType="String">
Select 'HL'+ Right( '00000000'+ convert(VARCHAR(10),isnull( max(convert(float(8),substring(OrderNo,3,9))),0)+1),7) as PRNOs from OutWorkOrder where Site='1'
Select 'HL'+ Right( '00000000'+ convert(VARCHAR(10),isnull( max(convert(float(8),substring(OrderNo,3,9))),0)+1),7) as PRNOs from ShopOrder where Site='1'
and OrderNo like 'HL%' and E_Levels=2 and OrderNo like 'HL%' and E_Levels=2
</select> </select>
<select id="getLastShopOrder" resultType="com.heai.modules.production.entity.ShopOrderData">
select min(NeedDate) NeedDate,min(OriginalNeedDate) OriginalNeedDate from SHOPORDER where site=#{site} and orderNo in
( select OrderRef2 from Hunlian_TaskDetail
where Site=#{site} and taskNo=#{taskNo} and OrderRef2 is not null and OrderRef2 !='')
</select>
<select id="getOrderLotSize" resultType="Double">
select Round(convert(float, isnull(SUM(HunlianQty),0) ),2)from Hunlian_TaskDetail
where Site=#{site} and taskNo=#{taskNo} and OrderRef2 is not null and OrderRef2 !=''
</select>
<insert id="saveNewShopOrder">
insert into shoporder(OrderNo,Site,EnterDate,UserName,NeedDate,OriginalNeedDate,PlanStartDate,ReleaseDate,ReleaseGuys,
Status,Status_Tmp,Printed,OrderType,PartNo,LotSize,FinishedQty,
BOMRevNo,RoutingRevNo,Leadtime,Remark,CostRollUpFlag,ManualFlag,OriSOOrderNo,CustomerID,
TechInfo,ReceiveStatus,E_OriginalOrderNo,E_Levels,E_OriginalOrderType,SFDCReportedFlag,RepairSOFlag,
ConfigurationFlag,MaterialSplitFlag)values
(#{orderNo},#{site},GETDATE(),#{userName},#{needDate},#{originalNeedDate},GetDate(),GetDate(),#{userName},
'已下达','已下达','N','*',#{partNo},#{lotSize},0,
#{bOMRevNo},#{routingRevNo},0,'混炼任务单合并的混炼生产订单','N','Y','','',
'','未入库',#{eOriginalOrderNo},2,'生产订单','N','N',
'N','N')
</insert>
<insert id="saveNewSOBom">
INSERT into SOBOM (Site,OrderNo,ItemNo,ComponentPartNo,QtyAssembly,QtyFixedScrapt,ScraptFactor,Remark,QtyRequired,QtyIssue,IssueDate,
QtyReserved,MatGroup,QtyNotified)
select Site,#{newOrderNo},ItemNo,ComponentPartNo,QtyAssembly,QtyFixedScrapt,ScraptFactor,Remark,ROUND(#{lotSize}*QtyAssembly/(1-ScraptFactor/100)+isnull(QtyFixedScrapt,0),2),0,null,
0,MatGroup,0 from SOBOM where orderNo=#{orderNo} and site=#{site}
</insert>
<insert id="saveRouting">
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,OutWorkFlag,OutWorkPartNo,QtyOnPR,QtyOnPO,QtyScrapt,PF_PartNo,PF_RevNo,ToolID,JJGZ_UnitFactor_DB,
JJGZ_UnitFactor,JJGZ_UnitPrice,lastApproveQty)
select Site,#{newOrderNo},ItemNo,OperationDesc,WorkCenterNo,MachSetupTime,MachRunFactor,FactorUnit_DB,FactorUnit,#{lotSize},
0,0,dbo.Get_SORouting_TimeRequired(Site,OrderNo,ItemNo),0,Efficiency,GetDate(),PlanFinishTime,BarcodeID,Remark,PartNo,
Crewsize,'N',ActionNotes,'N',OutWorkPartNo,0,0,0,PF_PartNo,PF_RevNo,ToolID,JJGZ_UnitFactor_DB,
JJGZ_UnitFactor,JJGZ_UnitPrice,0 from SORouting where orderNo=#{orderNo} and site=#{site}
</insert>
<insert id="saveTool">
INSERT into SOTool (Site,OrderNo,ToolID,ToolQty,Remark,CreateDate,CreatedBy,ItemNo)
select Site,#{newOrderNo},ToolID,ToolQty,Remark,GETDATE(),#{createBy},ItemNo from SOTool where orderNo=#{orderNo} and site=#{site}
</insert>
<update id="updateOldOrderNo">
update ShopOrder set LotSize=round(LotSize- CONVERT(float, b.HunlianQty ),2),Status= CASE WHEN LotSize- CONVERT(float, b.HunlianQty )>0 THEN Status ELSE '已取消' END
from (select site,TaskNo,OrderRef2 ,sum(HunlianQty) HunlianQty from Hunlian_TaskDetail where TaskNo=#{taskNo} and site=#{site} GROUP BY site,TaskNo,OrderRef2 )
as b where ShopOrder.orderNo=b.OrderRef2 and ShopOrder.site=b.site
</update>
<update id="updateOldSOBom">
update SOBOM set QtyRequired =ROUND(b.lotSize*QtyAssembly/(1-ScraptFactor/100)+isnull(QtyFixedScrapt,0),2) from ShopOrder b
where SOBOM.site=b.site and SOBOM.OrderNo=b.orderNo and SOBOM.orderNo in ( select OrderRef2 from Hunlian_TaskDetail
where taskNo=#{taskNo} and site=#{site} and OrderRef2 is not null and OrderRef2 !='')
</update>
<update id="updateRouting">
update SORouting set QtyRequired =b.lotSize , TimeRequired=dbo.Get_SORouting_TimeRequired(SORouting.site,SORouting.OrderNo,SORouting.ItemNo) from ShopOrder b
where SORouting.site=b.site and SORouting.OrderNo=b.orderNo and SORouting.orderNo in ( select OrderRef2 from Hunlian_TaskDetail
where taskNo=#{taskNo} and site=#{site} and OrderRef2 is not null and OrderRef2 !='')
</update>
</mapper> </mapper>
Loading…
Cancel
Save