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