ruanqi 3 years ago
parent
commit
c071586dbe
  1. 80
      src/main/java/com/jtem/modules/Schedule/controller/ScheduleController.java
  2. 61
      src/main/java/com/jtem/modules/Schedule/dao/ScheduleMapper.java
  3. 57
      src/main/java/com/jtem/modules/Schedule/service/ScheduleService.java
  4. 71
      src/main/java/com/jtem/modules/Schedule/service/impl/ScheduleServiceImpl.java
  5. 3
      src/main/java/com/jtem/modules/pda/entity/SfdcToolingHist.java
  6. 22
      src/main/java/com/jtem/modules/pda/entity/ToolOutData.java
  7. 201
      src/main/java/com/jtem/modules/toolMan/entity/SfdcToolingHistData.java
  8. 36
      src/main/resources/mapper/schedule/ScheduleMapper.xml

80
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<InventoryStockData> 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<SfdcToolingHist> 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<ToolOutData> result= scheduleService.toolUseDetail(inData);
return R.ok().put("rows", result);
}
}

61
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<InventoryStockData> getStockPrint(StockPrintInData inData);
/**
* @Description TODO
* @Title getUnReportToolList
* @param inData
* @author rq
* @date 2023/8/7 16:54
* @return List<SfdcToolingHist>
* @throw
*/
List<SfdcToolingHist> 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<ToolOutData>
* @throw
*/
List<ToolOutData> toolReportCheck(SfdcToolingHist inData);
List<ToolOutData> 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<ToolOutData>
* @throw
*/
List<ToolOutData> toolUseDetail(ToolOutData inData);
}

57
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<InventoryStockData> getStockPrint(StockPrintInData inData);
/**
* @Description 尚未报工的工具领用单
* @Title getUnReportToolList
* @param inData
* @author rq
* @date 2023/8/7 16:49
* @return List<SfdcToolingHist>
* @throw
*/
List<SfdcToolingHist> 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<ToolOutData>
* @throw
*/
List<ToolOutData> toolUseDetail(ToolOutData inData);
}

71
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<InventoryStockData> getStockPrint(StockPrintInData inData){
return scheduleMapper.getStockPrint(inData);
}
@Override
public List<SfdcToolingHist> getUnReportToolList(SOScheduledRoutingOutData inData){
return scheduleMapper.getUnReportToolList(inData);
}
@Override
public String toolIssuance(SfdcToolingHist inData){
//存储过程判断
List<Object> params = new ArrayList<>();
// 工厂编码
params.add(inData.getSite());
// 工单号
params.add(inData.getOrderNo());
// 工序号
params.add(inData.getItemNo());
// 派工单号
params.add(inData.getSeqNo());
// 工具实例编码
params.add(inData.getToolInstanceId());
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("checkToolInstanceIdForSfdc", params);
Map<String ,Object> 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<ToolOutData> check=scheduleMapper.toolReportCheck(inData);
if(check.size()==0){
throw new RuntimeException("该工具未被领用,请先领用!");
}
List<ToolOutData> 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<ToolOutData> toolUseDetail(ToolOutData inData){
return scheduleMapper.toolUseDetail(inData);
}
}

3
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;
}

22
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;
}
}

201
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;
}
}

36
src/main/resources/mapper/schedule/ScheduleMapper.xml

@ -289,4 +289,40 @@ Freezeflag,QtyTmp,ManufactureDate,ExpiredDate,QtytoIssue,DemandPartnerType,Deman
${zeroSql}
</where>
</select>
<select id="getUnReportToolList" resultType="com.jtem.modules.pda.entity.SfdcToolingHist">
select Site,OrderNo,ItemNo,SeqNo,HistSeqNo,ReportDate,Reportedby,ToolInstanceID,StartDate,FinishDate,FinishFlag,Remark,StartFromRollNo,
FinishQty,RollNo from SFDC_ToolingHist where SeqNo=#{seqNo} and FinishFlag='N'
</select>
<insert id="saveToolIssuance" >
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)
</insert>
<select id="toolReportCheck" resultType="com.jtem.modules.pda.entity.ToolOutData">
select seqNo from SFDC_ToolingHist where Site=#{site} and SeqNo=#{seqNo} and ToolInstanceID=#{toolInstanceId} and FinishFlag='N'
</select>
<select id="getToolData" resultType="com.jtem.modules.pda.entity.ToolOutData">
select a.Site ,a.ToolInstanceID toolInstanceId,a.ToolID toolId,b.ToolDescription toolDesc,c.NumValue as moQty
from ToolDetail a left join ToolHeader b on a.Site=b.site and a.ToolID=b.ToolID
left join PartSubPropertiesValue c on a.ToolID=c.PartNo and a.Site=c.Site and c.PropertiesItemNo='MOLDCAVITY' and c.RecordType='T'
where a.Site=#{site} and a.ToolInstanceID=#{toolInstanceId}
</select>
<update id="updateToolSfdc">
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>
<update id="updateToolActualUseQty">
update ToolDetail set ActualUseQty=Round(isnull(ActualUseQty,0.0)+#{useQty},0) where Site=#{site} and ToolInstanceID=#{toolInstanceId}
</update>
<select id="toolUseDetail" resultType="com.jtem.modules.pda.entity.ToolOutData">
select Site,OrderNo,ItemNo,SeqNo,HistSeqNo,ReportDate,Reportedby,ToolInstanceID,StartDate,FinishDate,FinishFlag,Remark,
FinishQty,useQty,moQty from SFDC_ToolingHist where SeqNo=#{seqNo} and site=#{site}
</select>
</mapper>
Loading…
Cancel
Save