From 1d597c3504ce03ee164330d1b4cf44c53c7f7d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Sat, 14 Mar 2026 16:07:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E6=89=B9=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PrMakeRecController.java | 73 ++++++------ .../controller/ProduceMonitorController.java | 5 +- .../desk/produce/service/IMakeRecService.java | 2 +- .../produce/service/IWorkOrderService.java | 4 +- .../service/impl/MakeRecServiceImpl.java | 22 ++-- .../service/impl/WorkOrderServiceImpl.java | 112 ++++++++++++++---- 6 files changed, 145 insertions(+), 73 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PrMakeRecController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PrMakeRecController.java index 0cdce3b2..0bc60d70 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PrMakeRecController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PrMakeRecController.java @@ -16,6 +16,7 @@ import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.produce.pojo.vo.MesMakeRecVO; import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO; import org.springblade.desk.produce.service.IMakeRecService; +import org.springblade.desk.produce.service.IWorkOrderService; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -32,44 +33,48 @@ import java.util.List; @Tag(name = "工作台", description = "接口") public class PrMakeRecController extends BladeController { - private final IMakeRecService makeRecService; + private final IMakeRecService makeRecService; - @GetMapping(value = "/loadCurrentWp/{cardNo}") - @ApiOperationSupport(order = 1) - @Operation(summary = "工序报工-加载当前工序", description = "传入cardNo") - public R loadSubOrder(@PathVariable String cardNo) { - return R.data(makeRecService.loadCurrentWp(cardNo)); - } + private final IWorkOrderService workOrderService; - @Operation(summary = "报工提交") - @PostMapping("/saveMakeRec") - public R saveMakeRec(@RequestBody MakeRecDTO makeRecDTO) { - return R.status(makeRecService.saveMakeRec(makeRecDTO)) ; - } + @GetMapping(value = "/loadCurrentWp") + @ApiOperationSupport(order = 1) + @Operation(summary = "工序报工-加载当前工序", description = "传入cardNo") + public R loadSubOrder(@RequestParam String cardNo) { + return R.data(makeRecService.loadCurrentWp(cardNo)); + } - @GetMapping("/queryMakeRec") - @ApiOperationSupport(order = 3) - @Operation(summary = "报工记录", description = "传入mesMakeRec") - public R> page(MesMakeRecVO mesMakeRec, Query query) { - return R.data(makeRecService.selectMesMakeRecPage(Condition.getPage(query), mesMakeRec)); - } + @Operation(summary = "报工提交") + @PostMapping("/saveMakeRec") + public R saveMakeRec(@RequestBody MakeRecDTO makeRecDTO) { + return R.status(makeRecService.saveMakeRec(makeRecDTO)); + } - @GetMapping(value = "/loadNotReceived/{cardNo}") - @Operation(summary = "任务接收查询", description = "传入cardNo") - public R> loadNotReceived(@PathVariable String cardNo) { - return R.data(makeRecService.loadNotReceived(cardNo)); - } + @GetMapping("/queryMakeRec") + @ApiOperationSupport(order = 3) + @Operation(summary = "报工记录", description = "传入mesMakeRec") + public R> page(MesMakeRecVO mesMakeRec, Query query) { + return R.data(makeRecService.selectMesMakeRecPage(Condition.getPage(query), mesMakeRec)); + } - @GetMapping(value = "/afterPlaReceive/{cardNo}") - @Operation(summary = "加载镀后接收数据", description = "传入cardNo") - public R> afterPlaReceive(@PathVariable String cardNo) { - return R.data(makeRecService.afterPlaReceive(cardNo)); - } + @GetMapping(value = "/loadNotReceived") + @Operation(summary = "工序接收查询", description = "传入cardNo") + public R loadNotReceived(@RequestParam String cardNo) { + WorkPlanLoadVO workPlanLoadVO = makeRecService.loadNotReceived(cardNo); + workOrderService.dataValidation(workPlanLoadVO.getWpId()); + return R.data(workPlanLoadVO); + } - @Operation(summary = "手动维护生产追溯") - @PostMapping("/saveRetrospectDefend") - public R saveRetrospectDefend(@RequestBody RetrospectDefendDTO retrospectDefendDTO) { - makeRecService.saveRetrospectDefend(retrospectDefendDTO); - return R.success() ; - } + @GetMapping(value = "/afterPlaReceive") + @Operation(summary = "加载镀后接收数据", description = "传入cardNo") + public R> afterPlaReceive(@RequestParam String cardNo) { + return R.data(makeRecService.afterPlaReceive(cardNo)); + } + + @Operation(summary = "手动维护生产追溯") + @PostMapping("/saveRetrospectDefend") + public R saveRetrospectDefend(@RequestBody RetrospectDefendDTO retrospectDefendDTO) { + makeRecService.saveRetrospectDefend(retrospectDefendDTO); + return R.success(); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ProduceMonitorController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ProduceMonitorController.java index c6ba20c8..7659a839 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ProduceMonitorController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ProduceMonitorController.java @@ -58,8 +58,9 @@ public class ProduceMonitorController extends BladeController { @PostMapping("/workPlanReceive") @ApiOperationSupport(order = 5) @Operation(summary = "工序接收") - public R workPlanReceive(@RequestParam Long wpId) { - return R.data(workOrderService.workPlanReceive(wpId)); + public R workPlanReceive(@RequestParam String wpIds) { + List wpIdList = Func.toLongList(wpIds); + return R.data(workOrderService.workPlanReceive(wpIdList)); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java index 4d2cefce..ce6dd4b2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java @@ -30,7 +30,7 @@ public interface IMakeRecService extends BaseService { IPage selectMesMakeRecPage(IPage page, MesMakeRecVO mesMakeRec); - List loadNotReceived(String cardNo); + WorkPlanLoadVO loadNotReceived(String cardNo); List afterPlaReceive(String cardNo); /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java index d6abb2f4..279eeee6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java @@ -178,7 +178,7 @@ public interface IWorkOrderService extends BaseService { * * @param wpId 工序id */ - boolean workPlanReceive(Long wpId); + boolean workPlanReceive(List wpId); /** *

方法名: updateHostWorkUnit

@@ -189,4 +189,6 @@ public interface IWorkOrderService extends BaseService { void updateHostWorkUnit(WorkOrder workOrder); boolean updatePriority(UpdatePriorityDTO updatePriorityDTO); + + void dataValidation(Long wpId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java index ad716449..eb7d9445 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java @@ -38,6 +38,8 @@ import org.springblade.desk.produce.pojo.vo.MesMakeRecVO; import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO; import org.springblade.desk.produce.service.*; import org.springblade.desk.quality.pojo.entity.AuditFile; +import org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.service.IAuditFileService; import org.springblade.system.cache.UserCache; import org.springblade.system.pojo.entity.DataScope; @@ -484,22 +486,24 @@ public class MakeRecServiceImpl extends BaseServiceImpl } @Override - public List loadNotReceived(String cardNo) { + public WorkPlanLoadVO loadNotReceived(String cardNo) { List tsIds = relTeamSetUserService.list(Wrappers.lambdaQuery(RelTeamSetUser.class).eq(RelTeamSetUser::getUserId, 1297)).stream().map(RelTeamSetUser::getTeamSetId).collect(Collectors.toList()); - List rtnList = new ArrayList<>(); + WorkPlanLoadVO rtn = new WorkPlanLoadVO(); if (CollectionUtils.isEmpty(tsIds)) { - return rtnList; + return rtn; } WorkOrder wo = workOrderMapper.getWorkOrderByCardNo(cardNo, (short) 0); Optional.ofNullable(wo).orElseThrow(() -> new ServiceException("车间订单不存在!")); List wpList = workPlanMapper.loadNotReceived(tsIds, wo.getId()); - for (WorkPlanLoadVO workPlanLoadVO : wpList) { - workPlanLoadVO.setRunStatusTitle(WorkOrderEnum.getName(workPlanLoadVO.getRunStatus())); - workPlanLoadVO.setPriorityTitle(WorkOrder.priorityMap.get(workPlanLoadVO.getPriority())); - workPlanLoadVO.setPickingStatusTitle(WorkOrder.pickingStatusMap.get(workPlanLoadVO.getPickingStatus())); - workPlanLoadVO.setIsBing(0); + if (CollectionUtils.isEmpty(wpList)) { + return rtn; } - return wpList; + WorkPlanLoadVO workPlanLoadVO = wpList.get(0); + workPlanLoadVO.setRunStatusTitle(WorkOrderEnum.getName(workPlanLoadVO.getRunStatus())); + workPlanLoadVO.setPriorityTitle(WorkOrder.priorityMap.get(workPlanLoadVO.getPriority())); + workPlanLoadVO.setPickingStatusTitle(WorkOrder.pickingStatusMap.get(workPlanLoadVO.getPickingStatus())); + workPlanLoadVO.setIsBing(0); + return workPlanLoadVO; } @Override diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java index 9bedbd19..7a9fe3db 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java @@ -19,10 +19,14 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.StringUtil; import org.springblade.desk.basic.constant.FlowConst; +import org.springblade.desk.basic.feign.WorkCenterClient; import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity; +import org.springblade.desk.basic.pojo.entity.RelTeamSetUser; +import org.springblade.desk.basic.pojo.entity.WorkCenter; import org.springblade.desk.basic.service.IOemCraftAbilityService; import org.springblade.desk.basic.service.IOemService; import org.springblade.desk.basic.service.IProcessAbilityService; +import org.springblade.desk.basic.service.IWorkCenterService; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity; import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; @@ -142,6 +146,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectWorkOrderPage(IPage page, WorkOrderDTO workOrder) { return page.setRecords(baseMapper.selectWorkOrderPage(page, workOrder)); @@ -167,7 +173,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl oldList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, oldWoId)); //保存作业计划 List wpList = this.saveWorkPlan(oldList, newWo, oldWoId); @@ -1466,37 +1472,58 @@ public class WorkOrderServiceImpl extends BaseServiceImpl rsLst = reviewSheetService.getNoCompleteByWcId(checkByWpId.getId()); - if (CollectionUtils.isNotEmpty(rsLst)) { - throw new ServiceException("存在未完成审理单,请处理后再进行接收"); - } - } - // 验证车间订单状态 - if (!WorkOrder.RUN_STATUS_RECEIVE.equals(workOrder.getRunStatus())) { - throw new ServiceException("存在未完成审理单,请处理后再进行接收"); - } + public boolean workPlanReceive(List wpIdList) { + List workPlans = workPlanService.listByIds(wpIdList); + if (CollectionUtils.isEmpty(workPlans)) { + return false; } + // workPlans根据ID转为map + Map workPlanMap = workPlans.stream().collect(Collectors.toMap(WorkPlan::getId, workPlan -> workPlan)); + for (Long wpId : wpIdList) { + this.dataValidation(wpId); + WorkPlan workPlan = workPlanMap.get(wpId); + WorkPlan frontWorkPlan = workPlanService.getById(workPlan.getFrontWpId()); + WorkOrder workOrder = this.getById(workPlan.getWoId()); - Date newDate = new Date(); - // 完成上序 - this.workPlanEnd(frontWorkPlan, newDate, workOrder.getMakeQty()); - - // 开始本序 - this.workPlanStart(workPlan, newDate, AuthUtil.getUserId(), workOrder); + Date newDate = new Date(); + // 完成上序 + this.workPlanEnd(frontWorkPlan, newDate, workOrder.getMakeQty()); + // 开始本序 + this.workPlanStart(workPlan, newDate, AuthUtil.getUserId(), workOrder); + } return true; } + private void verifyMakeUnit(WorkPlan workPlan, WorkPlan frontWorkPlan) { + if (workPlan.getFrontWpId() == null) { + return; + } + //当前序作业中心为检验单位,不验证镀前出入库 + if (workPlan.getMakeTeam() != null) { + BsTeamSetEntity ct = teamSetService.getById(workPlan.getMakeTeam()); + if (ct != null) { + WorkCenter workCenter = workCenterService.getById(ct.getWcId()); + if (1 == workCenter.getCheckout()) { + return; + } + } + } + if ("1".equals(frontWorkPlan.getOem()) && "1".equals(workPlan.getOem())) { + return; + } + List pa = plateAroundMapper.selectList(Wrappers.lambdaQuery(PlateAround.class).eq(PlateAround::getPaType, PlateAround.BEFORE_PLAN_OUT).eq(PlateAround::getWpId, workPlan.getId())); + if (CollectionUtils.isEmpty(pa)) { + if ("1".equals(frontWorkPlan.getOem())) { + //上序外协,本序如果可以接收,验证镀前出库记录 + throw new ServiceException("工序加工单位不同,未找到镀前出库记录,无法接收!"); + } else if (!frontWorkPlan.getMakeTeam().equals(workPlan.getMakeTeam())) { + //加工班组不同,验证镀前出库记录 + throw new ServiceException("工序加工单位不同,未找到镀前出库记录,无法接收!"); + } + } + } + private void workPlanStart(WorkPlan workPlan, Date startDate, Long userId, WorkOrder workOrder) { if (workPlan == null) { return; @@ -1662,6 +1689,39 @@ public class WorkOrderServiceImpl extends BaseServiceImpl rsLst = reviewSheetService.getNoCompleteByWcId(checkByWpId.getId()); + if (CollectionUtils.isNotEmpty(rsLst)) { + throw new ServiceException("存在未完成审理单,请处理后再进行接收"); + } + } + // 验证车间订单状态 + if (!WorkOrder.RUN_STATUS_RECEIVE.equals(workOrder.getRunStatus())) { + throw new ServiceException("存在未完成审理单,请处理后再进行接收"); + } + } + //验证接收工序与上序是否需要镀前出入库 + if (workPlan.getNextWpId() != null) { + this.verifyMakeUnit(workPlan, frontWorkPlan); + if (frontWorkPlan != null) { + //验证上道工序是否报工完成 + if (!WorkPlan.STATUS_WORK_OK.equals(frontWorkPlan.getStatus())) { + throw new ServiceException("上序未报工完成,请联系相关人员处理!"); + } + } + } + } + private void workPlanEnd(WorkPlan workPlan, Date newDate, Double makeQty) { if (workPlan == null) { return;