diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.xml
index 507bd5b91..f5ba6c869 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.xml
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.xml
@@ -133,7 +133,7 @@
AND mwor.run_type = #{query.runType}
- AND two.wo_code LIKE CONCAT('%', CONCAT(#{query.orderCode}, '%'))
+ AND mwor.wo_code LIKE CONCAT('%', CONCAT(#{query.orderCode}, '%'))
AND tyo.part_code LIKE CONCAT('%', CONCAT(#{query.partCode}, '%'))
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java
index 3472a19d5..2ea44e522 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java
@@ -163,16 +163,22 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl approvals) {
+ List errors = new ArrayList<>();
for (int i = 0; i < approvals.size(); i++) {
OemApproval approval = approvals.get(i);
try {
R r = singleApprovalInNewTransaction(approval);
} catch (Exception e) {
- log.error(String.format("审批失败,单据ID: {}", approval.getWorkOrderRunId()), e);
+ String errMsg = "审批失败,单据ID: " + approval.getWorkOrderRunId();
+ log.error(errMsg, e);
+ errors.add(errMsg + "," + e.getMessage());
}
}
+ if (!errors.isEmpty()) {
+ return R.fail(String.join(";", errors));
+ }
return R.success("操作完成");
}
@@ -203,10 +209,11 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl()
- .eq(WorkPlan::getWoId, wo.getId()));
+ if (oldWorkOrderRun != null) {
+ oldWorkOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_VOIDED);
+ workOrderRunMapper.updateById(oldWorkOrderRun);
+ }
+ wp = workPlanMapper.selectById(wo.getWpId());
wo.setCollaborate(workOrderRun.getCollaborate());
// 若当前序小于等于已接收
@@ -296,16 +303,31 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl()
.eq(WorkPlan::getId, wp.getNextWpId()));
- oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper().eq(OemCraftAbilityEntity::getOtherId, nextWp.getOcId())
- .eq(OemCraftAbilityEntity::getCraftAbilityId, nextWp.getCaId()));
+ if (nextWp != null) {
+ oemId = nextWp.getOcId();
+ craftAbilityId = nextWp.getCaId();
+ oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper().eq(OemCraftAbilityEntity::getOtherId, oemId)
+ .eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId));
+ }
} else {
- oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper().eq(OemCraftAbilityEntity::getOtherId, wp.getOcId())
- .eq(OemCraftAbilityEntity::getCraftAbilityId, wp.getCaId()));
+ oemId = wp.getOcId();
+ craftAbilityId = wp.getCaId();
+ oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper().eq(OemCraftAbilityEntity::getOtherId, oemId)
+ .eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId));
}
//更改订单调度员和计划员
+ if (oa == null) {
+ Oem oem = oemMapper.selectById(oemId);
+ String oemName = oem != null ? oem.getOcName() : "未知厂商";
+ String errorMsg = String.format("外协厂商【%s】(ID:%s)的工艺能力(ID:%s)未维护,可在基础数据-外协工艺能力页面维护", oemName, oemId, craftAbilityId);
+ log.error(errorMsg);
+ throw new ServiceException(errorMsg);
+ }
workOrderService.maintainOrder(wo, oa.getPlanner(), oa.getDispatcher(), workOrderRun, true);
}
Date date = DateUtil.plusDays(wo.getSendDownTime(), days);