|
@@ -122,11 +122,78 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
reduceNum = batchNumberList.size();
|
|
|
}
|
|
|
|
|
|
- //更新该工序作业的作业明细的作业状态字段、已开工卷数、明细的待报工记录ID=(空),加工中批次号=(空)
|
|
|
- apsProcessOperationProcessEquDao.updateByCancelRecord(processequid, reduceNum);
|
|
|
+ //=========更新工序作业明细===========
|
|
|
+ //查询工序作业明细详情
|
|
|
+ ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = apsProcessOperationProcessEquService.getById(processequid);
|
|
|
+ //定义作业明细的更新语句
|
|
|
+ LambdaUpdateWrapper<ApsProcessOperationProcessEquDo> processEquUpdateWrapper = new UpdateWrapper<ApsProcessOperationProcessEquDo>().lambda().eq(ApsProcessOperationProcessEquDo::getId, processequid);
|
|
|
+
|
|
|
+ //当前已开工卷数
|
|
|
+ Integer startingroll = apsProcessOperationProcessEquDo.getStartingroll();
|
|
|
+ //已开工卷数=已开工卷数-输入批次号数量
|
|
|
+ Integer newStartingRoll = startingroll - reduceNum;
|
|
|
+ //增加容错
|
|
|
+ if (newStartingRoll <= 0) {
|
|
|
+ newStartingRoll = 0;
|
|
|
+ }
|
|
|
+ processEquUpdateWrapper.set(ApsProcessOperationProcessEquDo::getStartingroll, newStartingRoll);
|
|
|
+ //待报工记录ID=(空)
|
|
|
+ processEquUpdateWrapper.set(ApsProcessOperationProcessEquDo::getWaitreportid, null);
|
|
|
+ /**
|
|
|
+ * 如果已开工卷数=0,则更新该作业明细
|
|
|
+ * 实际开工时间=(空),
|
|
|
+ * 作业状态=待开工
|
|
|
+ */
|
|
|
+ if (newStartingRoll == 0) {
|
|
|
+ processEquUpdateWrapper.set(ApsProcessOperationProcessEquDo::getActualstartdate, null);
|
|
|
+ processEquUpdateWrapper.set(ApsProcessOperationProcessEquDo::getWorkstatus, "待开工");
|
|
|
+ }
|
|
|
+ //更新
|
|
|
+ apsProcessOperationProcessEquService.update(processEquUpdateWrapper);
|
|
|
+
|
|
|
+ //=========更新工序作业============
|
|
|
+ //工序作业详情
|
|
|
+ ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(processoperationid);
|
|
|
+ //定义作业明细的更新语句
|
|
|
+ LambdaUpdateWrapper<ApsProcessOperationDo> processUpdateWrapper = new UpdateWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getId, processoperationid);
|
|
|
+
|
|
|
+ //当前已开工卷数
|
|
|
+ Integer operationStartingroll = apsProcessOperationDo.getStartingroll();
|
|
|
+ //已开工卷数=已开工卷数-输入批次号数量
|
|
|
+ Integer newOperationStartingRoll = operationStartingroll - reduceNum;
|
|
|
+ //增加容错
|
|
|
+ if (newOperationStartingRoll <= 0) {
|
|
|
+ newOperationStartingRoll = 0;
|
|
|
+ }
|
|
|
+ processUpdateWrapper.set(ApsProcessOperationDo::getStartingroll, newOperationStartingRoll);
|
|
|
+ //剩余待开工卷数=计划加工卷数-已开工卷数-输入已取消卷数-已取消卷数
|
|
|
+ Integer leavewaitworkroll = apsProcessOperationDo.getPlanprocessrall() - newOperationStartingRoll - apsProcessOperationDo.getInputunqualifiedroll() - apsProcessOperationDo.getCancelroll();
|
|
|
+ if (leavewaitworkroll <= 0) {
|
|
|
+ leavewaitworkroll = 0;
|
|
|
+ }
|
|
|
+ processUpdateWrapper.set(ApsProcessOperationDo::getLeavewaitworkroll, leavewaitworkroll);
|
|
|
+ /**
|
|
|
+ * 如果已开工卷数=0,则更新工序作业
|
|
|
+ * 实际开工时间=(空)
|
|
|
+ * 作业状态=待开工,
|
|
|
+ * 生产状态=待开工
|
|
|
+ * 如果已开工卷数>0,则更新工序作业
|
|
|
+ * 实际开工时间=该工序作业所有已开工卷数>0的作业明细中最小实际开工时间
|
|
|
+ */
|
|
|
+ if (leavewaitworkroll == 0) {
|
|
|
+ processUpdateWrapper.set(ApsProcessOperationDo::getActualstartdate, null)
|
|
|
+ .set(ApsProcessOperationDo::getWorkstatus, "待开工")
|
|
|
+ .set(ApsProcessOperationDo::getProcessstatus, SaveConstans.ProductionStatus.TO_BE_STARTED);
|
|
|
+ } else {
|
|
|
+ //根据工序作业ID查询其作业明细中,已开工卷数>0的最小的实际开工时间
|
|
|
+ ApsProcessOperationProcessEquDo minDateProcessEqu = apsProcessOperationProcessEquDao.selectMinStartWorkDate(processoperationid);
|
|
|
+ if (ObjectUtil.isNotEmpty(minDateProcessEqu) && ObjectUtil.isNotEmpty(minDateProcessEqu.getActualstartdate())) {
|
|
|
+ processUpdateWrapper.set(ApsProcessOperationDo::getActualstartdate, minDateProcessEqu.getActualstartdate());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //更新
|
|
|
+ apsProcessOperationService.update(processUpdateWrapper);
|
|
|
|
|
|
- //更新该工序作业的已开工卷数-x(默认为1)
|
|
|
- apsProcessOperationDao.updateByCancelRecord(processoperationid, reduceNum);
|
|
|
|
|
|
//查询作业明细详情
|
|
|
ApsProcessOperationProcessEquDo equDo = apsProcessOperationProcessEquDao.selectById(processequid);
|
|
@@ -373,7 +440,10 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
ApsProcessOperationDo needUpdateProcessOperation = new ApsProcessOperationDo();
|
|
|
needUpdateProcessOperation.setId(apsProcessOperationDo.getId());
|
|
|
Integer processStartingRoll = apsProcessOperationDo.getStartingroll();
|
|
|
+ //已开工卷数
|
|
|
Integer newProcessStartingRoll = processStartingRoll + 1;
|
|
|
+ //剩余待开工卷数=计划加工卷数-已开工卷数-输入已取消卷数-已取消卷数
|
|
|
+ needUpdateProcessOperation.setLeavewaitjobroll(apsProcessOperationDo.getPlanprocessrall() - newProcessStartingRoll - apsProcessOperationDo.getInputunqualifiedroll() - apsProcessOperationDo.getCancelroll());
|
|
|
needUpdateProcessOperation.setStartingroll(newProcessStartingRoll);
|
|
|
if (newProcessStartingRoll.equals(1)) {
|
|
|
needUpdateProcessOperation.setActualstartdate(DateUtil.date());
|
|
@@ -1247,6 +1317,8 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
}
|
|
|
//更新该工序作业已开工卷数=已开工卷数+输入批次号数量
|
|
|
needUpdateProcess.setStartingroll(apsProcessOperationDo.getStartingroll() + inputBatchNumberList.size());
|
|
|
+ //剩余待开工卷数=计划加工卷数-已开工卷数-输入已取消卷数-已取消卷数
|
|
|
+ needUpdateProcess.setLeavewaitjobroll(apsProcessOperationDo.getPlanprocessrall() - needUpdateProcess.getStartingroll() - apsProcessOperationDo.getInputunqualifiedroll() - apsProcessOperationDo.getCancelroll());
|
|
|
apsProcessOperationService.updateById(needUpdateProcess);
|
|
|
|
|
|
//更新坯料计划状态,参见【订单排程/一键自动排程/更新坯料计划状态】
|