|
@@ -26,6 +26,7 @@ import com.rongwei.safecommon.utils.CXCommonUtils;
|
|
|
import com.rongwei.safecommon.utils.SaveConstans;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.slf4j.MDC;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -331,26 +332,37 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
|
|
|
SimpleDateFormat formatter = new SimpleDateFormat(DATE_PATTERN_YMDHMS);
|
|
|
Date deliveryDate = formatter.parse(deliveryDateStr);
|
|
|
|
|
|
- //更新订单期望交货期
|
|
|
- ApsProductionOrderDo productionOrderDo = apsProductionOrderService.getById(productionOrderId);
|
|
|
- productionOrderDo.setDeliverydate(deliveryDate);
|
|
|
- boolean bool1 = apsProductionOrderService.updateById(productionOrderDo);
|
|
|
+ //撤回发布该作业的坯料计划的排程结果
|
|
|
+ publishCancel(Arrays.asList(blankOrderId));
|
|
|
|
|
|
- // 更新坯料计划的生产状态为已发布
|
|
|
- boolean bool2 = this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().eq(ApsBlankOrderDo::getId, blankOrderId)
|
|
|
+ //重新自动备份,以便插单重排后可以恢复之前的排程结果 备份工序作业及作业明细
|
|
|
+ List<ApsProcessOperationDo> apsProcessOperationList = apsProcessOperationService.getBaseMapper().selectList(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getBlankid, blankOrderId));
|
|
|
+ List<String> processIds = apsProcessOperationList.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
|
|
|
+ SysUserVo currentUser = CXCommonUtils.getCurrentUser();
|
|
|
+ apsProcessOperationBackupDao.processOperationBackup(processIds,
|
|
|
+ currentUser == null ? "" : currentUser.getId(),
|
|
|
+ currentUser == null ? "" : currentUser.getName());
|
|
|
+ apsProcessOperationProcessEquBackupDao.processOperationEquCopy(processIds,
|
|
|
+ currentUser == null ? "" : currentUser.getId(),
|
|
|
+ currentUser == null ? "" : currentUser.getName());
|
|
|
+
|
|
|
+ // 保存坯料需求的期望交货期
|
|
|
+ boolean bool1 = this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().eq(ApsBlankOrderDo::getId, blankOrderId)
|
|
|
.set(ApsBlankOrderDo::getDeliverydate, deliveryDate)
|
|
|
.set(ApsBlankOrderDo::getLockmark, LOCKMARK_N));
|
|
|
|
|
|
- // 解锁订单所有作业状态=待开工的作业明细(是否锁定=否)
|
|
|
- boolean bool3 = apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
|
|
|
- .eq(ApsProcessOperationDo::getBlankid, blankOrderId)
|
|
|
- .eq(ApsProcessOperationDo::getWorkstatus, JOBSTATUS_TO_BE_START)
|
|
|
- .set(ApsProcessOperationDo::getLockmark, LOCKMARK_N));
|
|
|
+ // 解锁该坯料计划所有作业明细,设置是否锁定=否
|
|
|
+ boolean bool2 = apsProcessOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
+ .eq(ApsProcessOperationProcessEquDo::getBlankid, blankOrderId)
|
|
|
+ .set(ApsProcessOperationProcessEquDo::getLockmark, LOCKMARK_N));
|
|
|
|
|
|
- if (bool1 && bool2 && bool3) {
|
|
|
+ if (bool1 && bool2) {
|
|
|
//重新排程
|
|
|
this.apsReScheduling();
|
|
|
- return R.ok();
|
|
|
+ R r = new R();
|
|
|
+ r.setCode("200");
|
|
|
+ r.setMsg("正在插单重排,并已自动备份排程结果,如果重排结果不满意,可以恢复排程结果");
|
|
|
+ return r;
|
|
|
} else {
|
|
|
return R.error();
|
|
|
}
|