|
@@ -1938,122 +1938,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
apsWorkInProgressInventoryService.updateById(apsWorkInProgressInventoryDo);
|
|
|
|
|
|
//借调逻辑
|
|
|
- if (ObjectUtil.isNotEmpty(progressWork) && ObjectUtil.isNotEmpty(progressWork.getWorkinprocessstatus()) && progressWork.getWorkinprocessstatus().equals(SaveConstans.WorkInProgressStatus.WAIT_WORK)) {
|
|
|
- //获取该在制品的工序作业ID
|
|
|
- String processoperationid = progressWork.getProcessoperationid();
|
|
|
- //获取该在制品的批次号
|
|
|
- String batchnumber = progressWork.getBatchnumber();
|
|
|
- //获取该在制品作业明细的ID
|
|
|
- String processoperationequid = progressWork.getProcessoperationequid();
|
|
|
- //在制品对应的工序作业输出物料ID
|
|
|
- String joboutputmaterialid = progressWork.getJoboutputmaterialid();
|
|
|
-// //该对应工序作业的已借调卷数=已借调卷数+1
|
|
|
-// this.baseMapper.processAddSecondRoll(processoperationid);
|
|
|
-// //将在制品的作业输出物料ID对应的所有后道工序作业的所有作业明细的待加工料卷批次号去掉“{批次号},”
|
|
|
-// this.baseMapper.processDeleteBatchNumber(batchnumber, processoperationid);
|
|
|
- //查找该在制品作业明细ID对应的后道作业明细中,其工序作业的输入物料ID是该在制品的作业输出物料ID的所有作业明细,
|
|
|
- //将这些作业明细的待加工料卷批次号去掉“{批次号},”
|
|
|
- this.baseMapper.updateBatchNumberByBorrow(batchnumber, processoperationequid, joboutputmaterialid);
|
|
|
-
|
|
|
-
|
|
|
- //分配被借调作业明细=备料在制品所有后道作业明细中计划加工卷数-已开工卷数-已借调卷数>0的作业明细中,
|
|
|
- // 优先取已取消卷数>已借调卷数,并且计划开工时间最晚的一个作业明细,
|
|
|
- // 如果没有已取消卷数>已借调卷数的作业明细,则取计划开工时间最晚的一个作业明细
|
|
|
-
|
|
|
- //查询被借调作业明细的信息
|
|
|
- ApsProcessOperationProcessEquDo borrowOperationEqu = apsProcessOperationProcessEquService.getById(processoperationequid);
|
|
|
- //查询被借调作业的信息
|
|
|
- ApsProcessOperationDo needBorrowOperation = apsProcessOperationDao.selectNeedBorrowOperation(joboutputmaterialid);
|
|
|
- List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDoList = apsProcessOperationProcessEquService.list(new QueryWrapper<ApsProcessOperationProcessEquDo>().lambda().eq(ApsProcessOperationProcessEquDo::getPreviousprocessesids, borrowOperationEqu.getId()));
|
|
|
- //所有后道作业明细中计划加工卷数-已开工卷数-已借调卷数>0的作业明细
|
|
|
- List<ApsProcessOperationProcessEquDo> collect1 = apsProcessOperationProcessEquDoList.stream().filter(item -> (item.getPlanprocessrall() - item.getStartingroll() - item.getSecondroll()) > 0).collect(Collectors.toList());
|
|
|
- //优先取已取消卷数>已借调卷数
|
|
|
- List<ApsProcessOperationProcessEquDo> collect = apsProcessOperationProcessEquDoList.stream().filter(item -> (item.getCancelroll() > item.getSecondroll())).collect(Collectors.toList());
|
|
|
- ApsProcessOperationProcessEquDo needBorrowOperationEqu = null;
|
|
|
- if (ObjectUtil.isNotEmpty(collect)) {
|
|
|
- //并且计划开工时间最晚的一个作业明细
|
|
|
- needBorrowOperationEqu = collect.stream().sorted(Comparator.comparing(ApsProcessOperationProcessEquDo::getPlanstartdate).reversed()).findFirst().orElse(null);
|
|
|
- } else {
|
|
|
- //如果没有已取消卷数>已借调卷数的作业明细,则取计划开工时间最晚的一个作业明细
|
|
|
- needBorrowOperationEqu = collect1.stream().sorted(Comparator.comparing(ApsProcessOperationProcessEquDo::getPlanstartdate).reversed()).findFirst().orElse(null);
|
|
|
- }
|
|
|
- if (ObjectUtil.isNotEmpty(needBorrowOperationEqu)) {
|
|
|
- //更新明细的已借调卷数
|
|
|
- //更新工序作业的已借调卷数
|
|
|
- Integer secondroll = needBorrowOperationEqu.getSecondroll() + 1;
|
|
|
- ApsProcessOperationProcessEquDo needUpdateProcessEqu = new ApsProcessOperationProcessEquDo();
|
|
|
- needUpdateProcessEqu.setId(needBorrowOperationEqu.getId());
|
|
|
- needUpdateProcessEqu.setSecondroll(secondroll);
|
|
|
- apsProcessOperationProcessEquService.updateById(needUpdateProcessEqu);
|
|
|
-
|
|
|
- /**
|
|
|
- * 已借调卷数=已借调卷数+1
|
|
|
- * 如果已借调卷数>已取消卷数,
|
|
|
- * 临时计算本次取消卷数=1
|
|
|
- * 根据被借调作业明细的本次取消卷数取消和更新作业明细,参见【取消和更新作业明细】
|
|
|
- */
|
|
|
- if (secondroll > needBorrowOperationEqu.getCancelroll()) {
|
|
|
- needBorrowOperationEqu.setSecondroll(secondroll);
|
|
|
- R r = apsProcessOperationService.cancelProcessOperationEqu(1, needBorrowOperation, needBorrowOperationEqu);
|
|
|
- if (!r.getCode().equals("200")) {
|
|
|
- throw new CustomException(r.getMsg());
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 更新被借调作业
|
|
|
- * 已借调卷数=已借调卷数+1,
|
|
|
- * 如果已借调卷数>已取消卷数,
|
|
|
- * 临时计算本次取消卷数=1
|
|
|
- * 已取消卷数=已取消卷数+本次取消卷数
|
|
|
- * 根据被借调作业的本次取消卷数取消和更新该工序作业,参见【取消和更新工序作业】
|
|
|
- */
|
|
|
- if (ObjectUtil.isNotEmpty(needBorrowOperation)) {
|
|
|
- //更新工序作业的一借调卷数
|
|
|
- Integer secondroll = needBorrowOperation.getSecondroll() + 1;
|
|
|
- ApsProcessOperationDo needUpdateProcess = new ApsProcessOperationDo();
|
|
|
- needUpdateProcess.setId(needBorrowOperation.getId());
|
|
|
- needUpdateProcess.setSecondroll(secondroll);
|
|
|
- apsProcessOperationService.updateById(needUpdateProcess);
|
|
|
-
|
|
|
- /**
|
|
|
- * 如果已借调卷数>已取消卷数
|
|
|
- * 本次取消卷数=1
|
|
|
- * 根据本次取消卷数更新对应工序作业的取消卷数
|
|
|
- */
|
|
|
- if (secondroll > needBorrowOperation.getCancelroll()) {
|
|
|
- CancelProcessOperationVo cancelProcessOperationVo = new CancelProcessOperationVo();
|
|
|
- needBorrowOperation.setSecondroll(secondroll);
|
|
|
- cancelProcessOperationVo.setApsprocessoperationdo(needBorrowOperation);
|
|
|
- cancelProcessOperationVo.setCurcancelroll(1);
|
|
|
- cancelProcessOperationVo.setUpdatecuropration(false);
|
|
|
- R r = apsProcessOperationService.cancelProcessOperation(cancelProcessOperationVo);
|
|
|
- if (!r.getCode().equals("200")) {
|
|
|
- throw new CustomException(r.getMsg());
|
|
|
- }
|
|
|
- }
|
|
|
- //撤回订单
|
|
|
- //被撤回的作业明细
|
|
|
- ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = apsProcessOperationProcessEquService.getById(processoperationequid);
|
|
|
- //被撤回的坯料计划
|
|
|
- ApsBlankOrderDo changeBlankOrder = apsBlankOrderService.getById(apsProcessOperationProcessEquDo.getBlankid());
|
|
|
- //被撤回的订单信息
|
|
|
- ApsProductionOrderDo apsProductionOrderDo = apsProductionOrderService.getById(changeBlankOrder.getProductionorderid());
|
|
|
- reportCheckService.goBackWf(processoperationequid, apsProcessOperationProcessEquDo.getBlankid(), apsProductionOrderDo);
|
|
|
-
|
|
|
-
|
|
|
-// //处理后续工序状态
|
|
|
-// Map<String, Object> params2 = new HashMap<>();
|
|
|
-// params2.put("processId", processoperationid);
|
|
|
-// R r2 = apsProcessOperationService.updateBorrowProcess(params2);
|
|
|
-// if (!r2.getCode().equals("200")) {
|
|
|
-// return R.error(r2.getMsg());
|
|
|
-// }
|
|
|
- }
|
|
|
- }
|
|
|
+ borrowBlank(progressWork);
|
|
|
}
|
|
|
|
|
|
return R.ok();
|
|
@@ -2755,13 +2640,13 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
// modify at [ 2024-10-14 11:51:18 ] by xh: 按照项目经理要求只比较日期的日期部分
|
|
|
|
|
|
//如果排程交货期-起>承诺交货期-起
|
|
|
- if (DateCompare(startDate,newStartDate)>0) {
|
|
|
+ if (DateCompare(startDate, newStartDate) > 0) {
|
|
|
updateIds.add(blankDeliveryDate.get(0).getId());
|
|
|
} else {
|
|
|
removeIds.add(blankDeliveryDate.get(0).getId());
|
|
|
}
|
|
|
// 如果排程交货期-止>承诺交货期-止
|
|
|
- if (DateCompare(endDate,newEndDate)>0) {
|
|
|
+ if (DateCompare(endDate, newEndDate) > 0) {
|
|
|
updateIds.add(blankDeliveryDate.get(1).getId());
|
|
|
} else {
|
|
|
removeIds.add(blankDeliveryDate.get(1).getId());
|
|
@@ -2808,7 +2693,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
return calendar.getTime();
|
|
|
}
|
|
|
|
|
|
- public int DateCompare(Date date1, Date date2){
|
|
|
+ public int DateCompare(Date date1, Date date2) {
|
|
|
Calendar calendar1 = Calendar.getInstance();
|
|
|
calendar1.setTime(date1);
|
|
|
calendar1.set(Calendar.HOUR_OF_DAY, 0);
|
|
@@ -3112,6 +2997,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
addBatchNumberList.set(i, s);
|
|
|
batchNumberList.set(batchNumberList.indexOf(addBatchNumber), s);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ //借调逻辑
|
|
|
+ borrowBlank(apsWorkInProgressInventoryDo);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -3240,6 +3128,126 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
+ private void borrowBlank(ApsWorkInProgressInventoryDo progressWork) {
|
|
|
+ //借调逻辑
|
|
|
+ if (ObjectUtil.isNotEmpty(progressWork) && ObjectUtil.isNotEmpty(progressWork.getWorkinprocessstatus()) && progressWork.getWorkinprocessstatus().equals(SaveConstans.WorkInProgressStatus.WAIT_WORK)) {
|
|
|
+ //获取该在制品的工序作业ID
|
|
|
+ String processoperationid = progressWork.getProcessoperationid();
|
|
|
+ //获取该在制品的批次号
|
|
|
+ String batchnumber = progressWork.getBatchnumber();
|
|
|
+ //获取该在制品作业明细的ID
|
|
|
+ String processoperationequid = progressWork.getProcessoperationequid();
|
|
|
+ //在制品对应的工序作业输出物料ID
|
|
|
+ String joboutputmaterialid = progressWork.getJoboutputmaterialid();
|
|
|
+// //该对应工序作业的已借调卷数=已借调卷数+1
|
|
|
+// this.baseMapper.processAddSecondRoll(processoperationid);
|
|
|
+// //将在制品的作业输出物料ID对应的所有后道工序作业的所有作业明细的待加工料卷批次号去掉“{批次号},”
|
|
|
+// this.baseMapper.processDeleteBatchNumber(batchnumber, processoperationid);
|
|
|
+ //查找该在制品作业明细ID对应的后道作业明细中,其工序作业的输入物料ID是该在制品的作业输出物料ID的所有作业明细,
|
|
|
+ //将这些作业明细的待加工料卷批次号去掉“{批次号},”
|
|
|
+ this.baseMapper.updateBatchNumberByBorrow(batchnumber, processoperationequid, joboutputmaterialid);
|
|
|
+
|
|
|
+
|
|
|
+ //分配被借调作业明细=备料在制品所有后道作业明细中计划加工卷数-已开工卷数-已借调卷数>0的作业明细中,
|
|
|
+ // 优先取已取消卷数>已借调卷数,并且计划开工时间最晚的一个作业明细,
|
|
|
+ // 如果没有已取消卷数>已借调卷数的作业明细,则取计划开工时间最晚的一个作业明细
|
|
|
+
|
|
|
+ //查询被借调作业明细的信息
|
|
|
+ ApsProcessOperationProcessEquDo borrowOperationEqu = apsProcessOperationProcessEquService.getById(processoperationequid);
|
|
|
+ //查询被借调作业的信息
|
|
|
+ ApsProcessOperationDo needBorrowOperation = apsProcessOperationDao.selectNeedBorrowOperation(joboutputmaterialid);
|
|
|
+ List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDoList = apsProcessOperationProcessEquService.list(new QueryWrapper<ApsProcessOperationProcessEquDo>().lambda().eq(ApsProcessOperationProcessEquDo::getPreviousprocessesids, borrowOperationEqu.getId()));
|
|
|
+ //所有后道作业明细中计划加工卷数-已开工卷数-已借调卷数>0的作业明细
|
|
|
+ List<ApsProcessOperationProcessEquDo> collect1 = apsProcessOperationProcessEquDoList.stream().filter(item -> (item.getPlanprocessrall() - item.getStartingroll() - item.getSecondroll()) > 0).collect(Collectors.toList());
|
|
|
+ //优先取已取消卷数>已借调卷数
|
|
|
+ List<ApsProcessOperationProcessEquDo> collect = apsProcessOperationProcessEquDoList.stream().filter(item -> (item.getCancelroll() > item.getSecondroll())).collect(Collectors.toList());
|
|
|
+ ApsProcessOperationProcessEquDo needBorrowOperationEqu = null;
|
|
|
+ if (ObjectUtil.isNotEmpty(collect)) {
|
|
|
+ //并且计划开工时间最晚的一个作业明细
|
|
|
+ needBorrowOperationEqu = collect.stream().sorted(Comparator.comparing(ApsProcessOperationProcessEquDo::getPlanstartdate).reversed()).findFirst().orElse(null);
|
|
|
+ } else {
|
|
|
+ //如果没有已取消卷数>已借调卷数的作业明细,则取计划开工时间最晚的一个作业明细
|
|
|
+ needBorrowOperationEqu = collect1.stream().sorted(Comparator.comparing(ApsProcessOperationProcessEquDo::getPlanstartdate).reversed()).findFirst().orElse(null);
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(needBorrowOperationEqu)) {
|
|
|
+ //更新明细的已借调卷数
|
|
|
+ //更新工序作业的已借调卷数
|
|
|
+ Integer secondroll = needBorrowOperationEqu.getSecondroll() + 1;
|
|
|
+ ApsProcessOperationProcessEquDo needUpdateProcessEqu = new ApsProcessOperationProcessEquDo();
|
|
|
+ needUpdateProcessEqu.setId(needBorrowOperationEqu.getId());
|
|
|
+ needUpdateProcessEqu.setSecondroll(secondroll);
|
|
|
+ apsProcessOperationProcessEquService.updateById(needUpdateProcessEqu);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 已借调卷数=已借调卷数+1
|
|
|
+ * 如果已借调卷数>已取消卷数,
|
|
|
+ * 临时计算本次取消卷数=1
|
|
|
+ * 根据被借调作业明细的本次取消卷数取消和更新作业明细,参见【取消和更新作业明细】
|
|
|
+ */
|
|
|
+ if (secondroll > needBorrowOperationEqu.getCancelroll()) {
|
|
|
+ needBorrowOperationEqu.setSecondroll(secondroll);
|
|
|
+ R r = apsProcessOperationService.cancelProcessOperationEqu(1, needBorrowOperation, needBorrowOperationEqu);
|
|
|
+ if (!r.getCode().equals("200")) {
|
|
|
+ throw new CustomException(r.getMsg());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新被借调作业
|
|
|
+ * 已借调卷数=已借调卷数+1,
|
|
|
+ * 如果已借调卷数>已取消卷数,
|
|
|
+ * 临时计算本次取消卷数=1
|
|
|
+ * 已取消卷数=已取消卷数+本次取消卷数
|
|
|
+ * 根据被借调作业的本次取消卷数取消和更新该工序作业,参见【取消和更新工序作业】
|
|
|
+ */
|
|
|
+ if (ObjectUtil.isNotEmpty(needBorrowOperation)) {
|
|
|
+ //更新工序作业的一借调卷数
|
|
|
+ Integer secondroll = needBorrowOperation.getSecondroll() + 1;
|
|
|
+ ApsProcessOperationDo needUpdateProcess = new ApsProcessOperationDo();
|
|
|
+ needUpdateProcess.setId(needBorrowOperation.getId());
|
|
|
+ needUpdateProcess.setSecondroll(secondroll);
|
|
|
+ apsProcessOperationService.updateById(needUpdateProcess);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 如果已借调卷数>已取消卷数
|
|
|
+ * 本次取消卷数=1
|
|
|
+ * 根据本次取消卷数更新对应工序作业的取消卷数
|
|
|
+ */
|
|
|
+ if (secondroll > needBorrowOperation.getCancelroll()) {
|
|
|
+ CancelProcessOperationVo cancelProcessOperationVo = new CancelProcessOperationVo();
|
|
|
+ needBorrowOperation.setSecondroll(secondroll);
|
|
|
+ cancelProcessOperationVo.setApsprocessoperationdo(needBorrowOperation);
|
|
|
+ cancelProcessOperationVo.setCurcancelroll(1);
|
|
|
+ cancelProcessOperationVo.setUpdatecuropration(false);
|
|
|
+ R r = apsProcessOperationService.cancelProcessOperation(cancelProcessOperationVo);
|
|
|
+ if (!r.getCode().equals("200")) {
|
|
|
+ throw new CustomException(r.getMsg());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //撤回订单
|
|
|
+ //被撤回的作业明细
|
|
|
+ ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = apsProcessOperationProcessEquService.getById(processoperationequid);
|
|
|
+ //被撤回的坯料计划
|
|
|
+ ApsBlankOrderDo changeBlankOrder = apsBlankOrderService.getById(apsProcessOperationProcessEquDo.getBlankid());
|
|
|
+ //被撤回的订单信息
|
|
|
+ ApsProductionOrderDo apsProductionOrderDo = apsProductionOrderService.getById(changeBlankOrder.getProductionorderid());
|
|
|
+ reportCheckService.goBackWf(processoperationequid, apsProcessOperationProcessEquDo.getBlankid(), apsProductionOrderDo);
|
|
|
+
|
|
|
+
|
|
|
+// //处理后续工序状态
|
|
|
+// Map<String, Object> params2 = new HashMap<>();
|
|
|
+// params2.put("processId", processoperationid);
|
|
|
+// R r2 = apsProcessOperationService.updateBorrowProcess(params2);
|
|
|
+// if (!r2.getCode().equals("200")) {
|
|
|
+// return R.error(r2.getMsg());
|
|
|
+// }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public R checkAddMaterial(AddMaterialReq req) {
|
|
|
//分割批次号
|