Browse Source

刀模切换

master
rui_li 4 years ago
parent
commit
b43ac0e1d4
  1. 47
      src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java
  2. 36
      src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java
  3. 9
      src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java
  4. 27
      src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java
  5. 124
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  6. 7
      src/main/resources/mapper/schedule/ScheduleMapper.xml

47
src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java

@ -782,4 +782,51 @@ public class ScheduleController {
.put("msg", "操作成功!");
}
/**
* TODO 工具的使用的数量
* @author LR
* @date 2022/1/18 14:10
* @param inData
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "countToolUsedQty")
public R countToolUsedQty(@RequestBody SearchScheduleData inData){
Float usedQty = scheduleService.countToolUsedQty(inData);
return R.ok()
.put("code", 200)
.put("usedQty", usedQty)
.put("success", true)
.put("msg", "操作成功!");
}
/**
* TODO 刀模切换检查
* @author LR
* @date 2022/1/19 10:32
* @param inData
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "checkConnectToolInstanceId")
public R checkConnectToolInstanceId(@RequestBody SearchScheduleData inData){
Map<String, Object> resultMap = scheduleService.checkConnectToolInstanceId(inData);
return R.ok()
.put("resultMap", resultMap);
}
/**
* TODO换刀操作
* @author LR
* @date 2022/1/19 14:46
* @param inData
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "connectToolInstanceId")
public R connectToolInstanceId(@RequestBody SearchScheduleData inData){
scheduleService.connectToolInstanceId(inData);
return R.ok()
.put("code", 200)
.put("success", true)
.put("msg", "操作成功!");
}
}

36
src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java

@ -69,6 +69,10 @@ public class SearchScheduleData extends BaseData {
private String toolInstanceId;//工具实例的编码
private String shiftNo;//班次信息
private Float approvedQty;//良品的总数量
private String reportedTime;//组合好的日期
private String oriToolInstanceId;//原工具实例的编码
private Float consumeQty;//使用的数量
private Float downTimeQty;//停机的时长
public SearchScheduleData() {
}
@ -353,6 +357,14 @@ public class SearchScheduleData extends BaseData {
this.reportTime = reportTime;
}
public String getReportedTime() {
return reportedTime;
}
public void setReportedTime(String reportedTime) {
this.reportedTime = reportedTime;
}
public Float getTotalTime() {
return totalTime;
}
@ -400,4 +412,28 @@ public class SearchScheduleData extends BaseData {
public void setApprovedQty(Float approvedQty) {
this.approvedQty = approvedQty;
}
public String getOriToolInstanceId() {
return oriToolInstanceId;
}
public void setOriToolInstanceId(String oriToolInstanceId) {
this.oriToolInstanceId = oriToolInstanceId;
}
public Float getConsumeQty() {
return consumeQty;
}
public void setConsumeQty(Float consumeQty) {
this.consumeQty = consumeQty;
}
public Float getDownTimeQty() {
return downTimeQty;
}
public void setDownTimeQty(Float downTimeQty) {
this.downTimeQty = downTimeQty;
}
}

9
src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java

@ -359,4 +359,13 @@ public interface ScheduleMapper {
* @return java.util.List<com.gaotao.modules.schedule.data.SfdcDefectData>
**/
List<SfdcDefectData> getScheduleDefectHist(SearchScheduleData inData);
/**
* TODO 统计工具实例的使用的数量
* @author LR
* @date 2022/1/18 14:17
* @param inData
* @return java.lang.Float
**/
Float countToolUsedQty(SearchScheduleData inData);
}

27
src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java

@ -437,4 +437,31 @@ public interface ScheduleService {
* @return void
**/
void finishRoll(Map<String, Object> inMap);
/**
* TODO 工具的使用的数量
* @author LR
* @date 2022/1/18 14:14
* @param inData
* @return java.lang.Float
**/
Float countToolUsedQty(SearchScheduleData inData);
/**
* TODO 刀模切换检查
* @author LR
* @date 2022/1/19 10:32
* @param inData
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
Map<String, Object> checkConnectToolInstanceId(SearchScheduleData inData);
/**
* TODO 换刀操作
* @author LR
* @date 2022/1/19 14:47
* @param inData
* @return void
**/
void connectToolInstanceId(SearchScheduleData inData);
}

124
src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java

@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import javax.jws.soap.SOAPBinding;
import java.math.BigDecimal;
import java.util.*;
@ -447,9 +448,9 @@ public class ScheduleServiceImpl implements ScheduleService {
result.put("sfdcDownTime", sfdcDownTime);
result.put("sfdcSetupDownTime", sfdcSetupDownTime);
result.put("sfdcProdSetupTime", sfdcProdSetupTime);
result.put("code", "200");
result.put("resultCode", "200");
}else{
result.put("code", "500");
result.put("resultCode", "500");
result.put("sfdcProdTime", 0);
result.put("sfdcSetupTime", 0);
result.put("sfdcManufactureTime", 0);
@ -1498,6 +1499,7 @@ public class ScheduleServiceImpl implements ScheduleService {
Float approvedQty = pageData.getApprovedQty();
Date scheduleDate = pageData.getScheduleDate();
String scheduleTime = DateUtil.getStringDate(scheduleDate, "yyyy-MM-dd");
String reportedTime = pageData.getReportedTime();
//判断报工的数量是否为正整数
Double remainderQty = approvedQty % 1.0;
if(remainderQty > 0){
@ -1599,4 +1601,122 @@ public class ScheduleServiceImpl implements ScheduleService {
}
}
@Override
public Float countToolUsedQty(SearchScheduleData inData) {
Float usedQty = scheduleMapper.countToolUsedQty(inData);
//null判断
if(null == usedQty){
usedQty = 0f;
}
return usedQty;
}
@Override
public Map<String, Object> checkConnectToolInstanceId(SearchScheduleData inData) {
//公共参数
String site = inData.getSite();
String orderNo = inData.getOrderNo();
Integer itemNo = inData.getItemNo();
String seqNo = inData.getSeqNo();
String rollNo = inData.getRollNo();
String oriToolInstanceId = inData.getOriToolInstanceId();
String toolInstanceId = inData.getToolInstanceId();
Integer histSeqNo = inData.getHistSeqNo();
String reportDate = inData.getReportDate();
String reportTime = inData.getReportTime();
String currentTime = reportDate + " " + reportTime;
//调用存储过程判断是否可以上工具
Map<String, Object> checkMap = this.checkProcessToolInstanceId(site, orderNo, itemNo, seqNo, rollNo, currentTime);
//判断是否检验成功
String checkFlag = String.valueOf(checkMap.get("resultCode"));
if (!"Y".equalsIgnoreCase(checkFlag)){
throw new RRException("当前卷号不在调试过程中,不允许上/更换工具!");
}
//调用是否可以切换刀具的存储过程
Map<String, Object> resultMap = this.checkConnectToolInstanceId(site, orderNo, itemNo, seqNo, rollNo, oriToolInstanceId, toolInstanceId, histSeqNo);
//判断是否检验成功
String code = String.valueOf(resultMap.get("resultCode"));
if ("400".equalsIgnoreCase(code)){
String msg = String.valueOf(resultMap.get("resultMsg"));
throw new RRException(msg);
}
return resultMap;
}
/**
* TODO 是否可以切换刀具的存储过程
* @author LR
* @date 2022/1/19 10:46
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> checkConnectToolInstanceId(String site, String orderNo, Integer itemNo, String seqNo, String rollNo,
String oriToolInstanceId, String toolInstanceId, Integer histSeqNo) {
List<Object> params = new ArrayList<>();
params.add(site);
params.add(orderNo);
params.add(itemNo);
params.add(seqNo);
params.add(rollNo);
params.add(oriToolInstanceId);
params.add(toolInstanceId);
params.add(histSeqNo);
//执行存储过程
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("checkConnectToolInstanceId", params);
//返回执行的结果
return resultList.get(0);
}
@Override
@Transactional
public void connectToolInstanceId(SearchScheduleData inData) {
//公共参数
String site = inData.getSite();
String orderNo = inData.getOrderNo();
Integer itemNo = inData.getItemNo();
String seqNo = inData.getSeqNo();
String rollNo = inData.getRollNo();
String oriToolInstanceId = inData.getOriToolInstanceId();
String toolInstanceId = inData.getToolInstanceId();
Integer histSeqNo = inData.getHistSeqNo();
String username = inData.getOperatorId();
String reportDate = inData.getReportDate();
String reportTime = inData.getReportTime();
String currentTime = reportDate + " " + reportTime;
Float consumeQty = inData.getConsumeQty();
Float downTimeQty = inData.getDownTimeQty();
//线调用检查方法
Map<String, Object> resultMap = this.checkConnectToolInstanceId(inData);
//然后执行存储过程换刀
this.connectToolInstanceId(site, orderNo, itemNo, seqNo, rollNo, oriToolInstanceId, toolInstanceId, histSeqNo, consumeQty, downTimeQty, username, currentTime);
}
/**
* TODO 存储过程换刀
* @author LR
* @date 2022/1/19 15:14
* @return void
**/
public void connectToolInstanceId(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String oriToolInstanceId, String toolInstanceId,
Integer histSeqNo, Float consumeQty, Float downTimeQty, String username, String currentTime) {
List<Object> params = new ArrayList<>();
params.add(site);
params.add(orderNo);
params.add(itemNo);
params.add(seqNo);
params.add(rollNo);
params.add(oriToolInstanceId);
params.add(toolInstanceId);
params.add(histSeqNo);
params.add(consumeQty);
params.add(downTimeQty);
params.add(username);
params.add(currentTime);
//执行存储过程
procedureMapper.execProduceData("connectToolInstanceId", params);
}
}

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

@ -908,5 +908,12 @@
ORDER BY sdh.HistSeqNo DESC
</select>
<!--查询派工单的不良记录-->
<select id="countToolUsedQty" parameterType="SearchScheduleData" resultType="java.lang.Float">
SELECT SUM(FinishQty) FROM SFDC_ToolingHist sth
WHERE sth.Site = #{site} AND sth.OrderNo = #{orderNo} AND sth.ItemNo = #{itemNo} AND sth.SeqNo = #{seqNo}
AND sth.RollNo <![CDATA[<>]]> #{rollNo} AND sth.ToolInstanceID = #{oriToolInstanceId}
</select>
</mapper>
Loading…
Cancel
Save