diff --git a/src/main/java/com/gaotao/modules/base/controller/BaseController.java b/src/main/java/com/gaotao/modules/base/controller/BaseController.java index ac7f324..3147f9c 100644 --- a/src/main/java/com/gaotao/modules/base/controller/BaseController.java +++ b/src/main/java/com/gaotao/modules/base/controller/BaseController.java @@ -1444,4 +1444,26 @@ public class BaseController { } return responseData; } + + /** + * @Description 同步工艺路线实际操作 + * @Title changeOrderRouting + * @param inData + * @author rq + * @date 2022/1/19 14:53 + * @return Object + * @throw + */ + @PostMapping("/changeOrderRouting") + @ResponseBody + public Object changeOrderRouting(@RequestBody RoutingHeaderData inData){ + ResponseData responseData = new ResponseData(); + try { + responseData = baseService.changeOrderRouting(inData); + } catch (Exception e) { + responseData.setMsg(e.getMessage()); + responseData.setCode("500"); + } + return responseData; + } } diff --git a/src/main/java/com/gaotao/modules/base/dao/BaseMapper.java b/src/main/java/com/gaotao/modules/base/dao/BaseMapper.java index 5d9eee6..18bbf7a 100644 --- a/src/main/java/com/gaotao/modules/base/dao/BaseMapper.java +++ b/src/main/java/com/gaotao/modules/base/dao/BaseMapper.java @@ -1088,4 +1088,82 @@ public interface BaseMapper { * @throw */ int shopOrderRoutingNumber(RoutingHeaderData inData); + /** + * @Description 临时表保存信息 + * @Title ShopOrderRoutingNumber + * @param + * @author rq + * @date 2022/1/19 17:17 + * @return int + * @throw + */ + void saveRoutingChangeCach(@Param("tableName")String tableName,@Param("site")String site,@Param("partNo")String partNo); + + /** + * @Description 更改生产订单上的工艺路线版本号 + * @Title updateOrderRevNo + * @param + * @author rq + * @date 2022/1/19 17:17 + * @return int + * @throw + */ + void updateOrderRevNo(@Param("tableName")String tableName,@Param("revNo")String revNo); + + /** + * @Description 删除原有的上产订单上的工序 + * @Title deleteNowItemNo + * @param + * @author rq + * @date 2022/1/19 17:17 + * @return int + * @throw + */ + void deleteNowItemNo(@Param("tableName")String tableName); + + /** + * @Description 删除原有的上产订单上的工具 + * @Title deleteNowToolNo + * @param + * @author rq + * @date 2022/1/19 17:17 + * @return int + * @throw + */ + void deleteNowToolNo(@Param("tableName")String tableName); + + /** + * + * @Description 创建新工序 + * @Title saveNewItemNo + * @param + * @author rq + * @date 2022/1/19 17:17 + * @return int + * @throw + */ + void saveNewItemNo(@Param("tableName")String tableName,@Param("site")String site,@Param("partNo")String partNo,@Param("revNo")String revNo); + + /** + * + * @Description 创建新工具 + * @Title saveNewTool + * @param + * @author rq + * @date 2022/1/19 17:17 + * @return int + * @throw + */ + void saveNewTool(@Param("tableName")String tableName,@Param("site")String site,@Param("partNo")String partNo,@Param("revNo")String revNo,@Param("user")String user); + /** + * + * @Description 删除零时表 + * @Title deleteRoutingChangeCach + * @param + * @author rq + * @date 2022/1/19 17:17 + * @return int + * @throw + */ + void deleteRoutingChangeCach(@Param("tableName")String tableName); } diff --git a/src/main/java/com/gaotao/modules/base/entity/RoutingHeaderData.java b/src/main/java/com/gaotao/modules/base/entity/RoutingHeaderData.java index b2f4b04..de33b70 100644 --- a/src/main/java/com/gaotao/modules/base/entity/RoutingHeaderData.java +++ b/src/main/java/com/gaotao/modules/base/entity/RoutingHeaderData.java @@ -71,7 +71,7 @@ public class RoutingHeaderData { private String repairFlag; private String spec; private String umid; - + private String user; public String getSite() { return site; } @@ -183,5 +183,13 @@ public class RoutingHeaderData { public void setUmid(String umid) { this.umid = umid; } + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } } diff --git a/src/main/java/com/gaotao/modules/base/service/BaseService.java b/src/main/java/com/gaotao/modules/base/service/BaseService.java index dae7b63..5449405 100644 --- a/src/main/java/com/gaotao/modules/base/service/BaseService.java +++ b/src/main/java/com/gaotao/modules/base/service/BaseService.java @@ -690,4 +690,15 @@ public interface BaseService { * @throw */ ResponseData checkRoutingAndOrder(RoutingHeaderData inData); + + /** + * @Description 同步工艺路线实际操作 + * @Title changeOrderRouting + * @param inData + * @author rq + * @date 2022/1/19 16:31 + * @return ResponseData + * @throw + */ + ResponseData changeOrderRouting(RoutingHeaderData inData); } diff --git a/src/main/java/com/gaotao/modules/base/service/Impl/BaseServiceImpl.java b/src/main/java/com/gaotao/modules/base/service/Impl/BaseServiceImpl.java index a80ddc6..00246a6 100644 --- a/src/main/java/com/gaotao/modules/base/service/Impl/BaseServiceImpl.java +++ b/src/main/java/com/gaotao/modules/base/service/Impl/BaseServiceImpl.java @@ -2,6 +2,7 @@ package com.gaotao.modules.base.service.Impl; import com.gaotao.common.utils.DateUtil; +import com.gaotao.common.utils.DateUtils; import com.gaotao.modules.app.entity.WorkCenter; import com.gaotao.modules.base.dao.BaseMapper; import com.gaotao.modules.base.entity.*; @@ -1408,4 +1409,27 @@ public class BaseServiceImpl implements BaseService { responseData.setMsg("操作成功!"); return responseData; } + + @Override + @Transactional + public ResponseData changeOrderRouting(RoutingHeaderData inData){ + ResponseData responseData = new ResponseData(); + String tableName="RoutingChange"+ DateUtil.getSDate(new Date())+DateUtil.getSTime(new Date())+(int)(Math.random()*10); + //临时表保存信息 + baseMapper.saveRoutingChangeCach(tableName,inData.getSite(),inData.getPartNo()); + //更改生产订单上的版本号 + baseMapper.updateOrderRevNo(tableName,inData.getRevNo()); + //删除原有的上产订单上的工序 + baseMapper.deleteNowItemNo(tableName); + baseMapper.deleteNowToolNo(tableName); + //创建新工序和工具 + baseMapper.saveNewItemNo(tableName,inData.getSite(),inData.getPartNo(),inData.getRevNo()); + baseMapper.saveNewTool(tableName,inData.getSite(),inData.getPartNo(),inData.getRevNo(),inData.getUser()); + baseMapper.deleteRoutingChangeCach(tableName); + responseData.setCode("200"); + responseData.setSuccess(true); + responseData.setMsg("操作成功!"); + return responseData; + } + } diff --git a/src/main/resources/mapper/base/BaseMapper.xml b/src/main/resources/mapper/base/BaseMapper.xml index b54f4b7..f0b6091 100644 --- a/src/main/resources/mapper/base/BaseMapper.xml +++ b/src/main/resources/mapper/base/BaseMapper.xml @@ -792,4 +792,54 @@ dbo.Get_Part_DescSpec(site,WX_PartNo) as wxSpec,dbo.Get_WorkCenter_Type(Site,Wor and Not exists(Select 1 from SOScheduledRouting as D Where T.Site=D.Site and T.OrderNo=D.OrderNo) and T.OrderType!='P' + + + Select Site,OrderNo,LotSize into ${tableName} 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' + + + + Update ShopOrder Set RoutingRevNo=#{revNo} + from ${tableName} as T where ShopOrder.Site=T.Site and ShopOrder.OrderNo=T.OrderNo + + + + Delete SORouting from ${tableName} as T where SORouting.Site=T.Site and SORouting.OrderNo=T.OrderNo + + + + Delete SOTool from ${tableName} as T where SOTool.Site=T.Site and SOTool.OrderNo=T.OrderNo + + + + Insert into SORouting(Site,OrderNo,ItemNo,OperationDesc,WorkCenterNo,MachSetupTime,MachRunFactor + ,FactorUnit_DB,FactorUnit,TimeRequired,TimeReported,Efficiency,Remark,QtyRequired,QtyReported,QtyApprove + ,PlanStartTime,PlanFinishTime,BarcodeID,PartNo,ClosedFlag,OutWorkFlag,OutWorkPartNo,QtyOnPR,QtyOnPO,QtyScrapt,Crewsize + ,PreItemNo,NextItemNo,ScheduledFlag,QtyScheduled) + Select T.Site,D.OrderNo,ItemNo,OperationDesc,WorkCenterNo,MachSetupTime,MachRunFactor,FactorUnit_DB,FactorUnit, + (MachSetupTime+(Case when MachRunFactor=0 then 0 else (Case when FactorUnit_DB='1' then D.LotSize/MachRunFactor when FactorUnit_DB='2' then D.LotSize*MachRunFactor + when FactorUnit_DB='3' then MachRunFactor end) end)/(Efficiency/100)) as TimeRequired,0,Efficiency,Remark ,D.LotSize,0,0,0,0 + ,(Case when len(OrderNo)>10 then D.Site + '-' + D.OrderNo + '-' + dbo.Get_PadL(ItemNo,4,'0') else D.Site + '-' + dbo.Get_PadL(D.OrderNo,10,'0') + '-' + dbo.Get_PadL(ItemNo,4,'0') end),T.PartNo,'N' + ,(Case when dbo.Get_WorkCenter_TypeDB(T.Site,WorkCenterNo)='O' then 'Y' else 'N' end) as OutWorkFlag,WX_PartNo as OutWorkPartNo,0.0 as QtyOnPR,0.0 as QtyOnPO,0.0 as QtyScrapt,Crewsize + ,Isnull((Select Max(D.ItemNo) as PreItemNo from RoutingDetail as D Where D.Site=T.Site and D.PartNo=T.PartNo and D.RevNo=T.RevNo and T.ItemNo>D.ItemNo),0) + ,Isnull((Select Min(D.ItemNo) as NextItemNo from RoutingDetail as D Where D.Site=T.Site and D.PartNo=T.PartNo and D.RevNo=T.RevNo and D.ItemNo>T.ItemNo),0) + ,'N',0 + from RoutingDetail as T, ${tableName} as D + Where D.Site=T.Site + and T.site=#{site} and T.PartNo=#{partNo} and T.RevNo=#{revNo} + + + + Insert into SOTool(Site,OrderNo,ItemNo,ToolID,ToolQty,Remark,CreateDate,CreatedBy) + Select T.Site,D.OrderNo,ItemNo,ToolID,ToolQty,Remark,getdate(),#{user} + from RoutingTool as T,${tableName} as D + Where D.Site=T.Site and T.site=#{site} and T.PartNo=#{partNo} and T.RevNo=#{revNo} + + + + Drop table ${tableName} + \ No newline at end of file