|
@@ -2033,7 +2033,26 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = apsProcessOperationDao.getProcessOperationProcessEqus(apsProcessOperationDo.getId());
|
|
|
R cancelEqu = R.ok();
|
|
|
if (cancelProcessOperationVo.getUpdatecuropration()) {
|
|
|
- cancelEqu = cancelProcessOperationEqu(curcancelroll, apsProcessOperationDo, apsProcessOperationProcessEquDos);
|
|
|
+ Integer equWaitCancelRoll = curcancelroll;//明细的待分配取消卷数
|
|
|
+ Integer curEquCancelRoll = 0;//作业明细本次取消卷数
|
|
|
+ for (ApsProcessOperationProcessEquDo processOperationProcessEquDo : apsProcessOperationProcessEquDos) {
|
|
|
+ Integer tempRoll = processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getStartingroll() - processOperationProcessEquDo.getCancelroll();
|
|
|
+ if (tempRoll <= 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (equWaitCancelRoll > 0) {
|
|
|
+ if (tempRoll >= equWaitCancelRoll) {
|
|
|
+ curEquCancelRoll = equWaitCancelRoll;
|
|
|
+ } else {
|
|
|
+ curEquCancelRoll = tempRoll;
|
|
|
+ }
|
|
|
+ //取消和更新作业明细
|
|
|
+ cancelProcessOperationEqu(curEquCancelRoll, apsProcessOperationDo, processOperationProcessEquDo);
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ equWaitCancelRoll = equWaitCancelRoll - curEquCancelRoll;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//作业计划开工时间=所有作业明细最早计划开工时间
|
|
@@ -2093,61 +2112,37 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
|
|
|
/*
|
|
|
分配和取消作业明细
|
|
|
- curcancelroll:明细的待分配取消卷数
|
|
|
+ curEquCancelRoll:作业明细本次取消卷数
|
|
|
apsProcessOperationDo:作业
|
|
|
- apsProcessOperationProcessEquDos:作业的所有作业明细
|
|
|
+ processOperationProcessEquDo:作业明细
|
|
|
*/
|
|
|
@Transactional
|
|
|
- public R cancelProcessOperationEqu(Integer curcancelroll, ApsProcessOperationDo apsProcessOperationDo, List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos) {
|
|
|
- List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDoList = new ArrayList<>();
|
|
|
- Integer equWaitCancelRoll = curcancelroll;//明细的待分配取消卷数
|
|
|
- Integer curEquCancelRoll = 0;//作业明细本次取消卷数
|
|
|
- for (ApsProcessOperationProcessEquDo processOperationProcessEquDo : apsProcessOperationProcessEquDos) {
|
|
|
- Integer tempRoll = processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getStartingroll() - processOperationProcessEquDo.getCancelroll();
|
|
|
- if (tempRoll <= 0) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (equWaitCancelRoll > 0) {
|
|
|
- if (tempRoll >= equWaitCancelRoll) {
|
|
|
- curEquCancelRoll = equWaitCancelRoll;
|
|
|
- } else {
|
|
|
- curEquCancelRoll = tempRoll;
|
|
|
- }
|
|
|
- processOperationProcessEquDo.setCancelroll(processOperationProcessEquDo.getCancelroll() + curEquCancelRoll);
|
|
|
- if (processOperationProcessEquDo.getPlanprocessrall() == processOperationProcessEquDo.getCancelroll()) {
|
|
|
- processOperationProcessEquDo.setProcessdevice("");
|
|
|
- processOperationProcessEquDo.setProcessdeviceid("");
|
|
|
- } else if (processOperationProcessEquDo.getPlanprocessrall() > processOperationProcessEquDo.getCancelroll()) {
|
|
|
- BigDecimal addMinute = apsProcessOperationDo.getOnceprocessmin().multiply(new BigDecimal(60)).multiply(new BigDecimal(processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getCancelroll()));//秒向上取整
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(processOperationProcessEquDo.getPlanstartdate());
|
|
|
- calendar.add(Calendar.SECOND, addMinute.setScale(0, RoundingMode.UP).intValue());
|
|
|
- processOperationProcessEquDo.setPlanenddate(calendar.getTime());
|
|
|
- }
|
|
|
- if (processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getReportroll() - processOperationProcessEquDo.getCancelroll() == 0) {
|
|
|
- processOperationProcessEquDo.setClosestatus(SaveConstans.CloseStatus.COMPLETED);
|
|
|
- processOperationProcessEquDo.setActualfinishdate(DateUtil.date());
|
|
|
- processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_END);
|
|
|
- } else if (processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getReportroll() - processOperationProcessEquDo.getCancelroll() > 0) {
|
|
|
- processOperationProcessEquDo.setClosestatus(SaveConstans.CloseStatus.UNFINISHED);
|
|
|
- if (processOperationProcessEquDo.getStartingroll() == 0) {
|
|
|
- processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_START);
|
|
|
- } else {
|
|
|
- processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_STARTING);
|
|
|
- }
|
|
|
- }
|
|
|
+ public R cancelProcessOperationEqu(Integer curEquCancelRoll, ApsProcessOperationDo apsProcessOperationDo, ApsProcessOperationProcessEquDo processOperationProcessEquDo) {
|
|
|
+ processOperationProcessEquDo.setCancelroll(processOperationProcessEquDo.getCancelroll() + curEquCancelRoll);
|
|
|
+ if (processOperationProcessEquDo.getPlanprocessrall() == processOperationProcessEquDo.getCancelroll()) {
|
|
|
+ processOperationProcessEquDo.setProcessdevice("");
|
|
|
+ processOperationProcessEquDo.setProcessdeviceid("");
|
|
|
+ } else if (processOperationProcessEquDo.getPlanprocessrall() > processOperationProcessEquDo.getCancelroll()) {
|
|
|
+ BigDecimal addMinute = apsProcessOperationDo.getOnceprocessmin().multiply(new BigDecimal(60)).multiply(new BigDecimal(processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getCancelroll()));//秒向上取整
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(processOperationProcessEquDo.getPlanstartdate());
|
|
|
+ calendar.add(Calendar.SECOND, addMinute.setScale(0, RoundingMode.UP).intValue());
|
|
|
+ processOperationProcessEquDo.setPlanenddate(calendar.getTime());
|
|
|
+ }
|
|
|
+ if (processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getReportroll() - processOperationProcessEquDo.getCancelroll() == 0) {
|
|
|
+ processOperationProcessEquDo.setClosestatus(SaveConstans.CloseStatus.COMPLETED);
|
|
|
+ processOperationProcessEquDo.setActualfinishdate(DateUtil.date());
|
|
|
+ processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_END);
|
|
|
+ } else if (processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getReportroll() - processOperationProcessEquDo.getCancelroll() > 0) {
|
|
|
+ processOperationProcessEquDo.setClosestatus(SaveConstans.CloseStatus.UNFINISHED);
|
|
|
+ if (processOperationProcessEquDo.getStartingroll() == 0) {
|
|
|
+ processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_START);
|
|
|
} else {
|
|
|
- break;
|
|
|
+ processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_STARTING);
|
|
|
}
|
|
|
- equWaitCancelRoll = equWaitCancelRoll - curEquCancelRoll;
|
|
|
-
|
|
|
- apsProcessOperationProcessEquDoList.add(processOperationProcessEquDo);
|
|
|
}
|
|
|
|
|
|
- boolean bool = true;
|
|
|
- if (apsProcessOperationProcessEquDoList.size() > 0) {
|
|
|
- bool = apsProcessOperationProcessEquService.saveOrUpdateBatch(apsProcessOperationProcessEquDoList);
|
|
|
- }
|
|
|
+ boolean bool = apsProcessOperationProcessEquService.saveOrUpdate(processOperationProcessEquDo);
|
|
|
if (bool) {
|
|
|
return R.ok();
|
|
|
} else {
|