diff --git a/src/main/java/com/jtem/modules/Schedule/controller/ScheduleController.java b/src/main/java/com/jtem/modules/Schedule/controller/ScheduleController.java index 1f2764b..d1d3d21 100644 --- a/src/main/java/com/jtem/modules/Schedule/controller/ScheduleController.java +++ b/src/main/java/com/jtem/modules/Schedule/controller/ScheduleController.java @@ -5,6 +5,10 @@ import com.jtem.modules.Schedule.entity.*; import com.jtem.modules.Schedule.service.ScheduleService; import com.jtem.modules.base.entity.OperatorData; import com.jtem.modules.base.entity.WorkCenterResourceData; +import com.jtem.modules.board.entity.BoardInData; +import com.jtem.modules.board.entity.StockPrintData; +import com.jtem.modules.pda.entity.SfdcToolingHist; +import com.jtem.modules.pda.entity.ToolOutData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -239,4 +243,80 @@ public class ScheduleController { List resultList = scheduleService.getStockPrint(inData); return R.ok().put("rows", resultList).put("total",resultList.size()); } + + /** + * @Description TODO + * @Title toolStart + * @param inData + * @author rq + * @date 2023/8/7 16:16 + * @return Object + * @throw + */ + @PostMapping("/toolStart") + public R toolStart(@RequestBody SOScheduledRoutingOutData inData) { + SOScheduledRoutingOutData searchSeqNo=scheduleService.searchSeqNo(inData); + List getUnReportToolList=scheduleService.getUnReportToolList(inData); + return R.ok().put("row", searchSeqNo).put("rows", getUnReportToolList); + } + + /** + * @Description 工具领用插入数据 + * @Title toolIssuance + * @param inData + * @author rq + * @date 2023/8/8 9:15 + * @return R + * @throw + */ + @PostMapping("/toolIssuance") + public R toolIssuance(@RequestBody SfdcToolingHist inData){ + String result= scheduleService.toolIssuance(inData); + return R.ok().put("msg",result); + } + + /** + * @Description TODO + * @Title toolReportCheck + * @param inData + * @author rq + * @date 2023/8/8 13:13 + * @return R + * @throw + */ + @PostMapping("/toolReportCheck") + public R toolReportCheck(@RequestBody SfdcToolingHist inData){ + ToolOutData result= scheduleService.toolReportCheck(inData); + return R.ok().put("row", result); + } + + /** + * @Description TODO + * @Title toolReport + * @param inData + * @author rq + * @date 2023/8/8 14:45 + * @return R + * @throw + */ + @PostMapping("/toolReport") + public R toolReport(@RequestBody ToolOutData inData){ + scheduleService.toolReport(inData); + return R.ok(); + } + + /** + * @Description 报工使用记录 + * @Title toolUseDetail + * @param inData + * @author rq + * @date 2023/8/8 16:12 + * @return R + * @throw + */ + @PostMapping("/toolUseDetail") + public R toolUseDetail(@RequestBody ToolOutData inData){ + List result= scheduleService.toolUseDetail(inData); + return R.ok().put("rows", result); + } } diff --git a/src/main/java/com/jtem/modules/Schedule/dao/ScheduleMapper.java b/src/main/java/com/jtem/modules/Schedule/dao/ScheduleMapper.java index dba94ed..ff6e962 100644 --- a/src/main/java/com/jtem/modules/Schedule/dao/ScheduleMapper.java +++ b/src/main/java/com/jtem/modules/Schedule/dao/ScheduleMapper.java @@ -3,6 +3,8 @@ package com.jtem.modules.Schedule.dao; import com.jtem.common.utils.R; import com.jtem.modules.Schedule.entity.*; import com.jtem.modules.base.entity.OperatorData; +import com.jtem.modules.pda.entity.SfdcToolingHist; +import com.jtem.modules.pda.entity.ToolOutData; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -211,4 +213,63 @@ public interface ScheduleMapper { * @throw */ List getStockPrint(StockPrintInData inData); + + /** + * @Description TODO + * @Title getUnReportToolList + * @param inData + * @author rq + * @date 2023/8/7 16:54 + * @return List + * @throw + */ + List getUnReportToolList(SOScheduledRoutingOutData inData); + + /** + * @Description TODO + * @Title saveToolIssuance + * @param inData + * @author rq + * @date 2023/8/8 10:38 + * @return void + * @throw + */ + void saveToolIssuance(SfdcToolingHist inData); + + /** + * @Description TODO + * @Title toolReportCheck + * @param inData + * @author rq + * @date 2023/8/8 13:28 + * @return List + * @throw + */ + List toolReportCheck(SfdcToolingHist inData); + + List getToolData(SfdcToolingHist inData); + + /** + * @Description TODO + * @Title updateToolSfdc + * @param inData + * @author rq + * @date 2023/8/8 14:49 + * @return void + * @throw + */ + void updateToolSfdc(ToolOutData inData); + + void updateToolActualUseQty(@Param("site")String site,@Param("toolInstanceId")String toolInstanceId,@Param("useQty")Double useQty); + + /** + * @Description TODO + * @Title toolUseDetail + * @param inData + * @author rq + * @date 2023/8/8 16:15 + * @return List + * @throw + */ + List toolUseDetail(ToolOutData inData); } diff --git a/src/main/java/com/jtem/modules/Schedule/service/ScheduleService.java b/src/main/java/com/jtem/modules/Schedule/service/ScheduleService.java index 1606728..a4605b8 100644 --- a/src/main/java/com/jtem/modules/Schedule/service/ScheduleService.java +++ b/src/main/java/com/jtem/modules/Schedule/service/ScheduleService.java @@ -4,6 +4,8 @@ import com.jtem.common.utils.R; import com.jtem.modules.Schedule.entity.*; import com.jtem.modules.base.entity.OperatorData; import com.jtem.modules.base.entity.WorkCenterResourceData; +import com.jtem.modules.pda.entity.SfdcToolingHist; +import com.jtem.modules.pda.entity.ToolOutData; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -170,4 +172,59 @@ public interface ScheduleService { * @throw */ List getStockPrint(StockPrintInData inData); + + /** + * @Description 尚未报工的工具领用单 + * @Title getUnReportToolList + * @param inData + * @author rq + * @date 2023/8/7 16:49 + * @return List + * @throw + */ + List getUnReportToolList(SOScheduledRoutingOutData inData); + + /** + * @Description TODO + * @Title toolIssuance + * @param inData + * @author rq + * @date 2023/8/8 9:49 + * @return void + * @throw + */ + String toolIssuance(SfdcToolingHist inData); + + /** + * @Description TODO + * @Title toolReportCheck + * @param inData + * @author rq + * @date 2023/8/8 13:28 + * @return ToolOutData + * @throw + */ + ToolOutData toolReportCheck(SfdcToolingHist inData); + + /** + * @Description TODO + * @Title toolReport + * @param inData + * @author rq + * @date 2023/8/8 14:45 + * @return void + * @throw + */ + void toolReport(ToolOutData inData); + + /** + * @Description 报工使用记录 + * @Title toolUseDetail + * @param inData + * @author rq + * @date 2023/8/8 16:14 + * @return List + * @throw + */ + List toolUseDetail(ToolOutData inData); } diff --git a/src/main/java/com/jtem/modules/Schedule/service/impl/ScheduleServiceImpl.java b/src/main/java/com/jtem/modules/Schedule/service/impl/ScheduleServiceImpl.java index 36f1b29..b820314 100644 --- a/src/main/java/com/jtem/modules/Schedule/service/impl/ScheduleServiceImpl.java +++ b/src/main/java/com/jtem/modules/Schedule/service/impl/ScheduleServiceImpl.java @@ -8,6 +8,8 @@ import com.jtem.modules.Schedule.entity.*; import com.jtem.modules.Schedule.service.ScheduleService; import com.jtem.modules.base.entity.OperatorData; import com.jtem.modules.base.entity.WorkCenterResourceData; +import com.jtem.modules.pda.entity.SfdcToolingHist; +import com.jtem.modules.pda.entity.ToolOutData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -299,4 +301,73 @@ public class ScheduleServiceImpl implements ScheduleService { public List getStockPrint(StockPrintInData inData){ return scheduleMapper.getStockPrint(inData); } + + @Override + public List getUnReportToolList(SOScheduledRoutingOutData inData){ + return scheduleMapper.getUnReportToolList(inData); + } + + @Override + public String toolIssuance(SfdcToolingHist inData){ + //存储过程判断 + List params = new ArrayList<>(); +// 工厂编码 + params.add(inData.getSite()); +// 工单号 + params.add(inData.getOrderNo()); + // 工序号 + params.add(inData.getItemNo()); +// 派工单号 + params.add(inData.getSeqNo()); +// 工具实例编码 + params.add(inData.getToolInstanceId()); + + List> resultList = procedureMapper.getProcedureData("checkToolInstanceIdForSfdc", params); + Map map = resultList.get(0); + if(map == null){ + throw new RuntimeException("返回结果错误!"); + }else if(Integer.parseInt(String.valueOf(map.get("resultCode"))) == 400) { + throw new RuntimeException(String.valueOf(map.get("resultMsg"))); + } + String result="领用成功!"; + if(Integer.parseInt(String.valueOf(map.get("resultCode"))) == 201){ + result=result+String.valueOf(map.get("resultMsg")); + } + scheduleMapper.saveToolIssuance(inData); + + return result; + } + + @Override + public ToolOutData toolReportCheck(SfdcToolingHist inData){ + List check=scheduleMapper.toolReportCheck(inData); + if(check.size()==0){ + throw new RuntimeException("该工具未被领用,请先领用!"); + } + List result=scheduleMapper.getToolData(inData); + if(result.size()==0){ + throw new RuntimeException("工具实例编码已经不存在!"); + } + if(result.get(0).getMoQty()==null){ + throw new RuntimeException("工具未维护模数!"); + } + if(result.get(0).getMoQty()<=0.0){ + throw new RuntimeException("工具模数不能小于等于0!"); + } + return result.get(0); + } + + @Override + @Transactional + public void toolReport(ToolOutData inData){ + inData.setUseQty(Math.ceil(inData.getFinishQty()/inData.getMoQty())); + scheduleMapper.updateToolSfdc(inData); + scheduleMapper.updateToolActualUseQty(inData.getSite(),inData.getToolInstanceId(),inData.getUseQty()); + } + + @Override + public List toolUseDetail(ToolOutData inData){ + return scheduleMapper.toolUseDetail(inData); + } + } diff --git a/src/main/java/com/jtem/modules/pda/entity/SfdcToolingHist.java b/src/main/java/com/jtem/modules/pda/entity/SfdcToolingHist.java index 6a61cb4..2c4fe81 100644 --- a/src/main/java/com/jtem/modules/pda/entity/SfdcToolingHist.java +++ b/src/main/java/com/jtem/modules/pda/entity/SfdcToolingHist.java @@ -44,5 +44,6 @@ public class SfdcToolingHist { private String rollNo; private String strReportDate; - + private Double moQty; + private Double useQty; } diff --git a/src/main/java/com/jtem/modules/pda/entity/ToolOutData.java b/src/main/java/com/jtem/modules/pda/entity/ToolOutData.java new file mode 100644 index 0000000..c7a461a --- /dev/null +++ b/src/main/java/com/jtem/modules/pda/entity/ToolOutData.java @@ -0,0 +1,22 @@ +package com.jtem.modules.pda.entity; + +public class ToolOutData extends SfdcToolingHist{ + private String toolId; + private String toolDesc; + + public String getToolId() { + return toolId; + } + + public void setToolId(String toolId) { + this.toolId = toolId; + } + + public String getToolDesc() { + return toolDesc; + } + + public void setToolDesc(String toolDesc) { + this.toolDesc = toolDesc; + } +} diff --git a/src/main/java/com/jtem/modules/toolMan/entity/SfdcToolingHistData.java b/src/main/java/com/jtem/modules/toolMan/entity/SfdcToolingHistData.java new file mode 100644 index 0000000..945a8ae --- /dev/null +++ b/src/main/java/com/jtem/modules/toolMan/entity/SfdcToolingHistData.java @@ -0,0 +1,201 @@ +package com.jtem.modules.toolMan.entity; + +import java.util.Date; + +public class SfdcToolingHistData { + /** + * 工厂编号 + */ + private String site; + + /** + * 生产订单订单号 + */ + private String orderNo; + + /** + * 工序号 + */ + private Double itemNo; + + /** + * 派工单单号 + */ + private Integer seqNo; + + /** + * 报告的次序号,同一个派工单从1开始编制 + */ + private Integer histSeqNo; + + /** + * 报告日期 + */ + private Date reportDate; + + /** + * 报告人 + */ + private String reportedby; + + /** + * 工具实例编号 + */ + private String toolInstanceID; + + /** + * 开始使用时间 + */ + private Date startDate; + + /** + * 结束使用时间 + */ + private Date finishDate; + + /** + * 是否结束 + */ + private String finishFlag; + + /** + * 备注 + */ + private String remark; + + /** + * 上机时的卷号 + */ + private String startFromRollNo; + + /** + * 生产数量 + */ + private Double finishQty; + + /** + * 卷号 + */ + private String rollNo; + + public String getSite() { + return site; + } + + public void setSite(String site) { + this.site = site; + } + + public String getOrderNo() { + return orderNo; + } + + public void setOrderNo(String orderNo) { + this.orderNo = orderNo; + } + + public Double getItemNo() { + return itemNo; + } + + public void setItemNo(Double itemNo) { + this.itemNo = itemNo; + } + + public Integer getSeqNo() { + return seqNo; + } + + public void setSeqNo(Integer seqNo) { + this.seqNo = seqNo; + } + + public Integer getHistSeqNo() { + return histSeqNo; + } + + public void setHistSeqNo(Integer histSeqNo) { + this.histSeqNo = histSeqNo; + } + + public Date getReportDate() { + return reportDate; + } + + public void setReportDate(Date reportDate) { + this.reportDate = reportDate; + } + + public String getReportedby() { + return reportedby; + } + + public void setReportedby(String reportedby) { + this.reportedby = reportedby; + } + + public String getToolInstanceID() { + return toolInstanceID; + } + + public void setToolInstanceID(String toolInstanceID) { + this.toolInstanceID = toolInstanceID; + } + + public Date getStartDate() { + return startDate; + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; + } + + public Date getFinishDate() { + return finishDate; + } + + public void setFinishDate(Date finishDate) { + this.finishDate = finishDate; + } + + public String getFinishFlag() { + return finishFlag; + } + + public void setFinishFlag(String finishFlag) { + this.finishFlag = finishFlag; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getStartFromRollNo() { + return startFromRollNo; + } + + public void setStartFromRollNo(String startFromRollNo) { + this.startFromRollNo = startFromRollNo; + } + + public Double getFinishQty() { + return finishQty; + } + + public void setFinishQty(Double finishQty) { + this.finishQty = finishQty; + } + + public String getRollNo() { + return rollNo; + } + + public void setRollNo(String rollNo) { + this.rollNo = rollNo; + } +} + diff --git a/src/main/resources/mapper/schedule/ScheduleMapper.xml b/src/main/resources/mapper/schedule/ScheduleMapper.xml index aed5a20..6f9bc6b 100644 --- a/src/main/resources/mapper/schedule/ScheduleMapper.xml +++ b/src/main/resources/mapper/schedule/ScheduleMapper.xml @@ -289,4 +289,40 @@ Freezeflag,QtyTmp,ManufactureDate,ExpiredDate,QtytoIssue,DemandPartnerType,Deman ${zeroSql} + + + + + Insert into SFDC_ToolingHist(Site,OrderNo,ItemNo,SeqNo,HistSeqNo,ReportDate,Reportedby,ToolInstanceID,StartDate,FinishFlag,FinishQty) values + (#{site},#{orderNo},#{itemNo},#{seqNo},(select isnull(max(HistSeqNo)+1,1) from SFDC_ToolingHist where Site=#{site} and SeqNo=#{seqNo} ),GetDate(),#{reportedby},#{toolInstanceId},GetDate(),'N',0) + + + + + + + update SFDC_ToolingHist set FinishFlag='Y',FinishQty=#{finishQty,jdbcType=DOUBLE},Reportedby=#{reportedby,jdbcType=VARCHAR}, + FinishDate=GetDate(),moQty=#{moQty,jdbcType=DOUBLE},useQty=#{useQty,jdbcType=DOUBLE} + where Site=#{site} and SeqNo=#{seqNo} and ToolInstanceID=#{toolInstanceId} and FinishFlag='N' + + + + update ToolDetail set ActualUseQty=Round(isnull(ActualUseQty,0.0)+#{useQty},0) where Site=#{site} and ToolInstanceID=#{toolInstanceId} + + + +