|
@@ -116,6 +116,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
private ReportCheckService reportCheckService;
|
|
|
@Autowired
|
|
|
private ApsProcessOperationProcessEquServiceImpl apsProcessOperationProcessEquServiceImpl;
|
|
|
+ @Autowired
|
|
|
+ private ApsProcessOperationProcessEquDao apsProcessOperationProcessEquDao;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -3305,51 +3307,61 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
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);
|
|
|
+ //查询被借调批次号的作业明细信息
|
|
|
+ ApsProcessOperationProcessEquDo needBorrowOperationEqu = this.baseMapper.selectUseThisBatchNumberProcessEqu(batchnumber);
|
|
|
//查询被借调作业的信息
|
|
|
- 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);
|
|
|
- }
|
|
|
+ ApsProcessOperationDo needBorrowOperation = apsProcessOperationService.getById(needBorrowOperationEqu.getProcessid());
|
|
|
+// //获取该在制品作业明细的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)) {
|
|
|
+
|
|
|
+ LinkedList<String> oldBatchNumberList = new LinkedList<>(Arrays.asList(needBorrowOperationEqu.getBachmaterialprocess().split(",")));
|
|
|
+ oldBatchNumberList.remove(batchnumber);
|
|
|
+ String newBatchNumber = "";
|
|
|
+ if (ObjectUtil.isNotEmpty(oldBatchNumberList)) {
|
|
|
+ newBatchNumber = String.join(",", oldBatchNumberList);
|
|
|
+ }
|
|
|
//更新明细的已借调卷数
|
|
|
//更新工序作业的已借调卷数
|
|
|
Integer secondroll = needBorrowOperationEqu.getSecondroll() + 1;
|
|
|
ApsProcessOperationProcessEquDo needUpdateProcessEqu = new ApsProcessOperationProcessEquDo();
|
|
|
needUpdateProcessEqu.setId(needBorrowOperationEqu.getId());
|
|
|
needUpdateProcessEqu.setSecondroll(secondroll);
|
|
|
+ needUpdateProcessEqu.setBachmaterialprocess(newBatchNumber);
|
|
|
apsProcessOperationProcessEquService.updateById(needUpdateProcessEqu);
|
|
|
|
|
|
/**
|
|
@@ -3358,7 +3370,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
* 临时计算本次取消卷数=1
|
|
|
* 根据被借调作业明细的本次取消卷数取消和更新作业明细,参见【取消和更新作业明细】
|
|
|
*/
|
|
|
- if (secondroll > needBorrowOperationEqu.getCancelroll()) {
|
|
|
+ if (secondroll > needBorrowOperationEqu.getCancelrollno()) {
|
|
|
needBorrowOperationEqu.setSecondroll(secondroll);
|
|
|
R r = apsProcessOperationService.cancelProcessOperationEqu(1, needBorrowOperation, needBorrowOperationEqu, "1");
|
|
|
if (!r.getCode().equals("200")) {
|
|
@@ -3403,12 +3415,12 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
}
|
|
|
//撤回订单
|
|
|
//被撤回的作业明细
|
|
|
- ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = apsProcessOperationProcessEquService.getById(processoperationequid);
|
|
|
+ ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = apsProcessOperationProcessEquService.getById(needBorrowOperationEqu.getId());
|
|
|
//被撤回的坯料计划
|
|
|
ApsBlankOrderDo changeBlankOrder = apsBlankOrderService.getById(apsProcessOperationProcessEquDo.getBlankid());
|
|
|
//被撤回的订单信息
|
|
|
ApsProductionOrderDo apsProductionOrderDo = apsProductionOrderService.getById(changeBlankOrder.getProductionorderid());
|
|
|
- reportCheckService.goBackWf(processoperationequid, apsProcessOperationProcessEquDo.getBlankid(), apsProductionOrderDo);
|
|
|
+ reportCheckService.goBackWf(needBorrowOperationEqu.getId(), apsProcessOperationProcessEquDo.getBlankid(), apsProductionOrderDo);
|
|
|
|
|
|
|
|
|
// //处理后续工序状态
|