From 700e4d3ba83e884a1e3ce90dd557625f730380e3 Mon Sep 17 00:00:00 2001 From: zangzhipeng Date: Tue, 26 May 2026 11:32:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=96=E5=8D=8F=E6=9F=A5=E8=AF=A2=E3=80=81?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8A=A5=E9=94=99=E6=97=A5=E5=BF=97=E8=BE=93?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../produce/mapper/WorkOrderRunMapper.xml | 2 +- .../service/impl/WorkOrderRunServiceImpl.java | 40 ++++++++++++++----- 2 files changed, 32 insertions(+), 10 deletions(-) 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);