|
|
|
@ -2203,7 +2203,270 @@ public class ScheduleServiceImpl implements ScheduleService { |
|
|
|
return scheduleMapper.getSfdcMaterialHistBySeqNo(inData); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Map<String, Object> checkFinishScheduleWithNoFqc(SearchScheduleData inData) { |
|
|
|
//公共参数 |
|
|
|
String site = inData.getSite(); |
|
|
|
String orderNo = inData.getOrderNo(); |
|
|
|
Integer itemNo = inData.getItemNo(); |
|
|
|
String seqNo = inData.getSeqNo(); |
|
|
|
String scheduledDate = inData.getScheduledDate(); |
|
|
|
String shiftDesc = inData.getShiftDesc(); |
|
|
|
Float reportedQty = inData.getApprovedQty();//总良品数量 |
|
|
|
Float defectedQty = inData.getDefectedQty();//总不良数量 |
|
|
|
String autoTool = inData.getAutoTool();//是否自动结束工具记录 |
|
|
|
String username = inData.getOperatorId(); |
|
|
|
|
|
|
|
//调用存储过程 |
|
|
|
//1.调用存储过程 派工单 上机卷 班次的检验 |
|
|
|
Map<String, Object> checkMap = this.checkFinishScheduleWithScheduleOpsShift(site, orderNo, itemNo, seqNo, scheduledDate, shiftDesc); |
|
|
|
//区分是否抛出异常的信息 |
|
|
|
String checkCode = String.valueOf(checkMap.get("resultCode")); |
|
|
|
if ("400".equalsIgnoreCase(checkCode)) { |
|
|
|
String msg = String.valueOf(checkMap.get("resultMsg")); |
|
|
|
throw new RRException(msg); |
|
|
|
} |
|
|
|
|
|
|
|
//2.调用存储过程 校验 是否存在工具记录需要自动处理 |
|
|
|
if("N".equalsIgnoreCase(autoTool)){ |
|
|
|
Map<String, Object> toolMap = this.checkFinishScheduleSfdcToolHist(site, orderNo, itemNo, seqNo); |
|
|
|
//区分是否抛出异常的信息 |
|
|
|
String toolCode = String.valueOf(toolMap.get("resultCode")); |
|
|
|
if ("400".equalsIgnoreCase(toolCode)) { |
|
|
|
String msg = String.valueOf(toolMap.get("resultMsg")); |
|
|
|
throw new RRException(msg); |
|
|
|
} |
|
|
|
} |
|
|
|
//3. 调用存储过程 校验 辅料的使用量 |
|
|
|
Map<String, Object> resultMap = this.checkFinishScheduleWithNotKeyRm(site, orderNo, itemNo, seqNo, reportedQty, defectedQty, username); |
|
|
|
//区分是否抛出异常的信息 |
|
|
|
String resultCode = String.valueOf(resultMap.get("resultCode")); |
|
|
|
if ("400".equalsIgnoreCase(resultCode)) { |
|
|
|
String msg = String.valueOf(resultMap.get("resultMsg")); |
|
|
|
throw new RRException(msg); |
|
|
|
} |
|
|
|
return resultMap; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author LR |
|
|
|
* @Description 调用存储过程 校验 是否存在工具记录需要自动处理 |
|
|
|
* @DateTime 2022/2/8 13:35 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo] |
|
|
|
* @return java.util.Map<java.lang.String,java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> checkFinishScheduleSfdcToolHist(String site, String orderNo, Integer itemNo, String seqNo) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(seqNo); |
|
|
|
//调用存储过程 |
|
|
|
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("checkFinishScheduleSfdcToolHist", params); |
|
|
|
//处理返回的结果 |
|
|
|
return resultList.get(0); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author LR |
|
|
|
* @Description 调用存储过程 校验 辅料的使用量 |
|
|
|
* @DateTime 2022/2/8 10:51 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, scheduledDate, shiftDesc] |
|
|
|
* @return java.util.Map<java.lang.String,java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> checkFinishScheduleWithNotKeyRm(String site, String orderNo, Integer itemNo, String seqNo, Float reportedQty, Float defectedQty, String username) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(seqNo); |
|
|
|
params.add(reportedQty); |
|
|
|
params.add(defectedQty); |
|
|
|
params.add(username); |
|
|
|
//调用存储过程 |
|
|
|
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("checkFinishScheduleWithNotKeyRm", params); |
|
|
|
//处理返回的结果 |
|
|
|
return resultList.get(0); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author LR |
|
|
|
* @Description 调用存储过程 检验 派工单 上级卷 班次信息 |
|
|
|
* @DateTime 2022/2/8 10:45 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, scheduledDate, shiftDesc] |
|
|
|
* @return java.util.Map<java.lang.String,java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> checkFinishScheduleWithScheduleOpsShift(String site, String orderNo, Integer itemNo, String seqNo, String scheduledDate, String shiftDesc) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(seqNo); |
|
|
|
params.add(scheduledDate); |
|
|
|
params.add(shiftDesc); |
|
|
|
//调用存储过程 |
|
|
|
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("checkFinishScheduleWithScheduleOpsShift", params); |
|
|
|
//处理返回的结果 |
|
|
|
return resultList.get(0); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void finishScheduleWithNoFqc(SearchScheduleData inData) { |
|
|
|
//公共参数 |
|
|
|
String site = inData.getSite(); |
|
|
|
String orderNo = inData.getOrderNo(); |
|
|
|
Integer itemNo = inData.getItemNo(); |
|
|
|
String seqNo = inData.getSeqNo(); |
|
|
|
String scheduledDate = inData.getScheduledDate(); |
|
|
|
String shiftDesc = inData.getShiftDesc(); |
|
|
|
Float reportedQty = inData.getApprovedQty();//总良品数量 |
|
|
|
Float defectedQty = inData.getDefectedQty();//总不良数量 |
|
|
|
String username = inData.getOperatorId(); |
|
|
|
String reportedTime = inData.getReportedTime(); |
|
|
|
String exceptionFlag = inData.getExceptionFlag(); |
|
|
|
String exceptionReason = inData.getExceptionReason(); |
|
|
|
|
|
|
|
//1.调用检查的方法 |
|
|
|
this.checkFinishScheduleWithNoFqc(inData); |
|
|
|
|
|
|
|
//调用结束派工单的存储过程 |
|
|
|
// 1. 调用存储过程 处理工具的信息 |
|
|
|
this.finishScheduleProcessSfdcToolHist(site, orderNo, itemNo, seqNo, reportedTime); |
|
|
|
// 2. 调用存储过程 处理时间的信息 |
|
|
|
Map<String, Object> timeMap = this.finishScheduleProcessSfdcTimeHist(site, orderNo, itemNo, seqNo, username, reportedTime); |
|
|
|
//获取最后的序号 |
|
|
|
int histSeqNo = Integer.parseInt(String.valueOf(timeMap.get("histSeqNo"))); |
|
|
|
//3.调用存储过程处理 材料历史记录数据 以及原材料的数据 |
|
|
|
this.finishScheduleProcessSfdcMaterialHist(site, orderNo, itemNo, seqNo, reportedTime); |
|
|
|
//4.调用存储过程处理 派工单和sfdc的信息 |
|
|
|
this.finishScheduleProcessSfdcAndSchedule(site, orderNo, itemNo, seqNo, histSeqNo, shiftDesc, username, reportedTime, scheduledDate); |
|
|
|
//5.调用存储过程处理 transHeader TransDetail TransDetailSub数据 |
|
|
|
this.finishScheduleProcessTransData(site, orderNo, itemNo, seqNo, username, reportedTime); |
|
|
|
//6.调用存储过程 处理异常信息 |
|
|
|
if ("Y".equalsIgnoreCase(exceptionFlag)) { |
|
|
|
this.finishScheduleProcessException(site, orderNo, itemNo, seqNo, exceptionReason, username, reportedTime); |
|
|
|
} |
|
|
|
//7.调用SAP 处理程序 |
|
|
|
//8.反写交易记录表的SAP交易号 |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author LR |
|
|
|
* @Description |
|
|
|
* @DateTime 2022/2/8 14:18 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, exceptionReason, username] |
|
|
|
* @return void |
|
|
|
**/ |
|
|
|
public void finishScheduleProcessException(String site, String orderNo, Integer itemNo, String seqNo, String exceptionReason, String username, String reportedTime) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(seqNo); |
|
|
|
params.add(exceptionReason); |
|
|
|
params.add(username); |
|
|
|
params.add(reportedTime); |
|
|
|
//执行存储过程 |
|
|
|
procedureMapper.execProduceData("finishScheduleProcessException", params); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author LR |
|
|
|
* @Description 调用存储过程处理 transHeader TransDetail TransDetailSub数据 |
|
|
|
* @DateTime 2022/2/8 14:12 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, username, reportedTime] |
|
|
|
* @return void |
|
|
|
**/ |
|
|
|
public void finishScheduleProcessTransData(String site, String orderNo, Integer itemNo, String seqNo, String username, String reportedTime) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(seqNo); |
|
|
|
params.add(username); |
|
|
|
params.add(reportedTime); |
|
|
|
//调用存储过程 |
|
|
|
procedureMapper.getProcedureData("finishScheduleProcessTransData", params); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author LR |
|
|
|
* @Description 调用存储过程处理 派工单和sfdc的信息 |
|
|
|
* @DateTime 2022/2/8 14:09 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, histSeqNo, shiftDesc, username, reportedTime, scheduledDate] |
|
|
|
* @return void |
|
|
|
**/ |
|
|
|
public void finishScheduleProcessSfdcAndSchedule(String site, String orderNo, Integer itemNo, String seqNo, int histSeqNo, String shiftDesc, String username, String reportedTime, String scheduledDate) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(seqNo); |
|
|
|
params.add(histSeqNo); |
|
|
|
params.add(shiftDesc); |
|
|
|
params.add(username); |
|
|
|
params.add(reportedTime); |
|
|
|
params.add(scheduledDate); |
|
|
|
//调用存储过程 |
|
|
|
procedureMapper.getProcedureData("finishScheduleProcessSfdcAndSchedule", params); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author LR |
|
|
|
* @Description 调用存储过程 处理材料上机和原材料表的数据 |
|
|
|
* @DateTime 2022/2/8 13:56 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, reportedTime] |
|
|
|
* @return void |
|
|
|
**/ |
|
|
|
public void finishScheduleProcessSfdcMaterialHist(String site, String orderNo, Integer itemNo, String seqNo, String reportedTime) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(seqNo); |
|
|
|
params.add(reportedTime); |
|
|
|
//调用存储过程 |
|
|
|
procedureMapper.getProcedureData("finishScheduleProcessSfdcToolHist", params); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author LR |
|
|
|
* @Description 调用存储过程处理时间的记录 并且返回最后一条的序号histSeqNo |
|
|
|
* @DateTime 2022/2/8 13:43 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, username, reportedTime] |
|
|
|
* @return java.util.Map<java.lang.String,java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> finishScheduleProcessSfdcTimeHist(String site, String orderNo, Integer itemNo, String seqNo, String username, String reportedTime) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(seqNo); |
|
|
|
params.add(username); |
|
|
|
params.add(reportedTime); |
|
|
|
//调用存储过程 |
|
|
|
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("finishScheduleProcessSfdcTimeHist", params); |
|
|
|
//处理返回的结果 |
|
|
|
return resultList.get(0); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author LR |
|
|
|
* @Description 处理工具的信息 |
|
|
|
* @DateTime 2022/2/8 13:25 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, reportedTime] |
|
|
|
* @return java.util.Map<java.lang.String,java.lang.Object> |
|
|
|
**/ |
|
|
|
public void finishScheduleProcessSfdcToolHist(String site, String orderNo, Integer itemNo, String seqNo, String reportedTime) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(seqNo); |
|
|
|
params.add(reportedTime); |
|
|
|
//调用存储过程 |
|
|
|
procedureMapper.getProcedureData("finishScheduleProcessSfdcToolHist", params); |
|
|
|
} |
|
|
|
|
|
|
|
} |