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 3147f9c..2873c8d 100644 --- a/src/main/java/com/gaotao/modules/base/controller/BaseController.java +++ b/src/main/java/com/gaotao/modules/base/controller/BaseController.java @@ -1466,4 +1466,47 @@ public class BaseController { } return responseData; } + /** + * @Description 保存复制产品工艺路线 + * @Title saveCopyRouting + * @param inData + * @author rq + * @date 2022/1/20 14:10 + * @return Object + * @throw + */ + @PostMapping("/saveCopyRouting") + @ResponseBody + public Object saveCopyRouting(@RequestBody CopyRoutingData inData){ + ResponseData responseData = new ResponseData(); + try { + responseData = baseService.saveCopyRouting(inData); + } catch (Exception e) { + responseData.setMsg(e.getMessage()); + responseData.setCode("500"); + } + return responseData; + } + /** + * @Description 设为默认 + * @Title setDefault + * @param inData + * @author rq + * @date 2022/1/20 14:10 + * @return Object + * @throw + */ + @PostMapping("/setDefault") + @ResponseBody + public Object setDefault(@RequestBody RoutingHeaderData inData){ + ResponseData responseData = new ResponseData(); + try { + responseData = baseService.setDefault(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 18bbf7a..b70f7e6 100644 --- a/src/main/java/com/gaotao/modules/base/dao/BaseMapper.java +++ b/src/main/java/com/gaotao/modules/base/dao/BaseMapper.java @@ -1166,4 +1166,90 @@ public interface BaseMapper { * @throw */ void deleteRoutingChangeCach(@Param("tableName")String tableName); + + /** + * @Description 判断工艺路线版本是否存在 + * @Title checkRoutingRevNo + * @param inData + * @author rq + * @date 2022/1/20 14:57 + * @return int + * @throw + */ + List checkRoutingRevNo(CopyRoutingData inData); + /** + * @Description 复制BOM + * @Title copyBom + * @param inData + * @author rq + * @date 2022/1/20 14:57 + * @return int + * @throw + */ + void copyBom(CopyRoutingData inData); + /** + * @Description 复制BOM + * @Title copyRoutingDetail + * @param inData + * @author rq + * @date 2022/1/20 14:57 + * @return int + * @throw + */ + void copyRoutingDetail(CopyRoutingData inData); + + /** + * @Description 复制工具 + * @Title copyRoutingTool + * @param + * @author rq + * @date 2022/1/20 15:30 + * @return void + * @throw + */ + void copyRoutingTool(CopyRoutingData inData); + + /** + * @Description 复制可用机台 + * @Title copyAvailableResource + * @param inData + * @author rq + * @date 2022/1/20 15:43 + * @return void + * @throw + */ + void copyAvailableResource(CopyRoutingData inData); + + /** + * @Description 停用早期版本 + * @Title closeOldBom + * @param inData + * @author rq + * @date 2022/1/20 15:50 + * @return void + * @throw + */ + void closeOldBom(CopyRoutingData inData); + + /** + * @Description + * @Title checkRoutingDefaultFlag + * @param inData + * @author rq + * @date 2022/1/20 16:39 + * @return RoutingHeaderData + * @throw + */ + RoutingHeaderData checkRoutingDefaultFlag(RoutingHeaderData inData); + + /** + * @Description + * @Title setDefault + * @param inData + * @author rq + * @date 2022/1/20 16:39 + * @return RoutingHeaderData + * @throw + */ + void setDefault(RoutingHeaderData inData); } diff --git a/src/main/java/com/gaotao/modules/base/entity/CopyRoutingData.java b/src/main/java/com/gaotao/modules/base/entity/CopyRoutingData.java new file mode 100644 index 0000000..470b95c --- /dev/null +++ b/src/main/java/com/gaotao/modules/base/entity/CopyRoutingData.java @@ -0,0 +1,137 @@ +package com.gaotao.modules.base.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +public class CopyRoutingData { + private String site; + private String partNo; + private String revNo; + private String partNo1; + private String revNo1; + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date phaseInDate1; + private String repairFlag1; + private boolean oldFlag; + private boolean toolFlag; + private boolean resourceFlag; + private String user; + private String oldFlag1; + private String toolFlag1; + private String resourceFlag1; + + public String getSite() { + return site; + } + + public void setSite(String site) { + this.site = site; + } + + public String getPartNo() { + return partNo; + } + + public void setPartNo(String partNo) { + this.partNo = partNo; + } + + public String getRevNo() { + return revNo; + } + + public void setRevNo(String revNo) { + this.revNo = revNo; + } + + public String getPartNo1() { + return partNo1; + } + + public void setPartNo1(String partNo1) { + this.partNo1 = partNo1; + } + + public String getRevNo1() { + return revNo1; + } + + public void setRevNo1(String revNo1) { + this.revNo1 = revNo1; + } + + public Date getPhaseInDate1() { + return phaseInDate1; + } + + public void setPhaseInDate1(Date phaseInDate1) { + this.phaseInDate1 = phaseInDate1; + } + + public String getRepairFlag1() { + return repairFlag1; + } + + public void setRepairFlag1(String repairFlag1) { + this.repairFlag1 = repairFlag1; + } + + public boolean isOldFlag() { + return oldFlag; + } + + public void setOldFlag(boolean oldFlag) { + this.oldFlag = oldFlag; + } + + public boolean isToolFlag() { + return toolFlag; + } + + public void setToolFlag(boolean toolFlag) { + this.toolFlag = toolFlag; + } + + public boolean isResourceFlag() { + return resourceFlag; + } + + public void setResourceFlag(boolean resourceFlag) { + this.resourceFlag = resourceFlag; + } + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } + + public String getOldFlag1() { + return oldFlag1; + } + + public void setOldFlag1(String oldFlag1) { + this.oldFlag1 = oldFlag1; + } + + public String getToolFlag1() { + return toolFlag1; + } + + public void setToolFlag1(String toolFlag1) { + this.toolFlag1 = toolFlag1; + } + + public String getResourceFlag1() { + return resourceFlag1; + } + + public void setResourceFlag1(String resourceFlag1) { + this.resourceFlag1 = resourceFlag1; + } +} 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 5449405..9fe0e5d 100644 --- a/src/main/java/com/gaotao/modules/base/service/BaseService.java +++ b/src/main/java/com/gaotao/modules/base/service/BaseService.java @@ -701,4 +701,26 @@ public interface BaseService { * @throw */ ResponseData changeOrderRouting(RoutingHeaderData inData); + + /** + * @Description 保存复制产品工艺路线 + * @Title saveCopyRouting + * @param inData + * @author rq + * @date 2022/1/20 14:11 + * @return ResponseData + * @throw + */ + ResponseData saveCopyRouting(CopyRoutingData inData); + + /** + * @Description 设为默认 + * @Title setDefault + * @param inData + * @author rq + * @date 2022/1/20 14:11 + * @return ResponseData + * @throw + */ + ResponseData setDefault(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 00246a6..d8ad686 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 @@ -866,7 +866,7 @@ public class BaseServiceImpl implements BaseService { PartData part1=new PartData(); part1.setPartNo(inData.getPartNo()); part1.setSite(inData.getSite()); - List partR1 =getPartNoDetail(part1); + List partR1 =baseMapper.getPartNoDetail(part1); if (partR1.size()==0){ responseData.setMsg("该物料编码不存在或者不可用!"); responseData.setCode("500"); @@ -1432,4 +1432,88 @@ public class BaseServiceImpl implements BaseService { return responseData; } + @Override + @Transactional + public ResponseData saveCopyRouting(CopyRoutingData inData){ + ResponseData responseData = new ResponseData(); + if(inData.isResourceFlag()){ + inData.setResourceFlag1("Y"); + }else { + inData.setResourceFlag1("N"); + } + if(inData.isOldFlag()){ + inData.setOldFlag1("Y"); + }else { + inData.setOldFlag1("N"); + } + if(inData.isToolFlag()){ + inData.setToolFlag1("Y"); + }else { + inData.setToolFlag1("N"); + } + PartData part1=new PartData(); + part1.setPartNo(inData.getPartNo1()); + part1.setSite(inData.getSite()); + List partR1 =baseMapper.getPartNoDetail(part1); + if (partR1.size()==0){ + responseData.setMsg("该物料编码不存在或者不可用!"); + responseData.setCode("500"); + return responseData; + } + String partTypeDb =partR1.get(0).getPartTypeDb(); + if((!"F".equals(partTypeDb))&&(!"W".equals(partTypeDb))&&(!"T".equals(partTypeDb))){ + responseData.setMsg("该物料编码不是\"产成品\"或者\"半成品\"或者\"贸易商品\"!"); + responseData.setCode("500"); + return responseData; + } + //如果新老物料号不同,那么需要判断新的物料是否是虚拟件 + if((!inData.getPartNo().equals(inData.getPartNo1()))&&"Y".equals(inData.getRepairFlag1())&&"V".equals(partR1.get(0).getmRPCode())){ + responseData.setMsg("该物料是虚拟物料(MRP编码=V),因此不能有修复版本!"); + responseData.setCode("500"); + return responseData; + } + //判断该版本是否存在 + List checkRevNo=baseMapper.checkRoutingRevNo(inData); + if(checkRevNo.size()>0){ + responseData.setMsg("该版本已经存在,请重新输入!"); + responseData.setCode("500"); + return responseData; + } + //复制BOM + baseMapper.copyBom(inData); + baseMapper.copyRoutingDetail(inData); + + if(inData.isToolFlag()){ + //如果选中该标识,那么复制工具 + baseMapper.copyRoutingTool(inData); + } + if(inData.isResourceFlag()){ + //复制可用机台 + baseMapper.copyAvailableResource(inData); + } + if(inData.isOldFlag()){ + //如果要自动停用早期版本 + baseMapper.closeOldBom(inData); + } + responseData.setCode("200"); + responseData.setSuccess(true); + responseData.setMsg("操作成功!"); + return responseData; + } + + @Override + public ResponseData setDefault(RoutingHeaderData inData){ + ResponseData responseData = new ResponseData(); + RoutingHeaderData checkRoutingDefaultFlag=baseMapper.checkRoutingDefaultFlag(inData); + if("Y".equals(checkRoutingDefaultFlag.getDefaultflag())){ + responseData.setMsg("该版本已为默认,不需要设置!"); + responseData.setCode("500"); + return responseData; + } + baseMapper.setDefault(inData); + 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 f0b6091..3a8b90f 100644 --- a/src/main/resources/mapper/base/BaseMapper.xml +++ b/src/main/resources/mapper/base/BaseMapper.xml @@ -445,7 +445,7 @@ + Select Site ,PartNo from RoutingHeader where Site=#{site} and PartNo=#{partNo1} and RevNo=#{revNo1} + + + + Insert into RoutingHeader(Site,PartNo,RevNo,PhaseInDate,PhaseOutDate,RoutingType_DB,RoutingType,Status,Status_DB,Remark,Defaultflag,RepairFlag) + Select Site ,#{partNo1},#{revNo1},#{phaseInDate1},null,RoutingType_DB,RoutingType,'试验','T','',#{oldFlag1}, + #{repairFlag1} FROM RoutingHeader where Site=#{site} and PartNo=#{partNo} and RevNo=#{revNo} + + + + Insert into RoutingDetail(Site,PartNo,RevNo,ItemNo,OperationDesc,WorkCenterNo,MachSetupTime,MachRunFactor,FactorUnit_DB,FactorUnit,Efficiency,Crewsize,Remark,WX_PartNo,WX_UnitCost) + Select Site,#{partNo1},#{revNo1},ItemNo,OperationDesc,WorkCenterNo,MachSetupTime,MachRunFactor,FactorUnit_DB,FactorUnit,Efficiency,Crewsize,Remark,WX_PartNo,WX_UnitCost + from RoutingDetail where Site=#{site} and PartNo=#{partNo} and RevNo=#{revNo} + + + + Insert into RoutingTool(Site,PartNo,RevNo,ItemNo,ToolID,ToolQty,Remark,CreateDate,CreatedBy) + Select Site,#{partNo1},#{revNo1},ItemNo,ToolID,ToolQty,Remark,getdate(),#{user} + from RoutingTool where Site=#{site} and PartNo=#{partNo} and RevNo=#{revNo} + + + + Insert into RoutingDetail_AvailableResource(Site,PartNo,RevNo,ItemNo,ResourceID) + Select Site,#{partNo1},#{revNo1},ItemNo,ResourceID from RoutingDetail_AvailableResource as T + where T.Site=#{site} and T.PartNo=#{partNo} and T.RevNo=#{revNo} + + + + Update RoutingHeader + Set PhaseOutDate=(Case when Status_DB!='S' then #{phaseInDate1} else PhaseOutDate end),Status_DB='S',Status='停用',DefaultFlag='N' + where Site=#{site} and PartNo=#{partNo} and RevNo=#{revNo} + + + + + + update RoutingHeader set Defaultflag = case when RevNo=#{revNo} then 'Y' else 'N' end + where Site=#{site} and PartNo=#{partNo} + \ No newline at end of file