From 2bfdf99a95674ead8d56823485fd418a86470e49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Fri, 13 Mar 2026 15:02:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/produce/pojo/dto/WorkPlanDto.java | 213 ++++----- .../desk/produce/pojo/vo/MesMakeRecVO.java | 87 +++- .../controller/PrMakeRecController.java | 21 +- .../controller/RbProduceManageController.java | 6 +- .../desk/produce/mapper/MacToolUseMapper.java | 2 + .../desk/produce/mapper/MacToolUseMapper.xml | 7 + .../desk/produce/mapper/MakeRecMapper.xml | 56 ++- .../produce/service/IMacToolUseService.java | 2 + .../desk/produce/service/IMakeRecService.java | 2 +- .../produce/service/IWorkOrderService.java | 7 +- .../service/impl/MacToolUseServiceImpl.java | 5 + .../service/impl/MakeRecServiceImpl.java | 404 +++++++++++++----- .../service/impl/WorkOrderServiceImpl.java | 25 +- 13 files changed, 597 insertions(+), 240 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/WorkPlanDto.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/WorkPlanDto.java index 43c36a50..8aa73509 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/WorkPlanDto.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/WorkPlanDto.java @@ -1,10 +1,12 @@ package org.springblade.desk.produce.pojo.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; import lombok.Data; import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkPlan; +import org.springblade.desk.produce.pojo.enums.WorkOrderEnum; import java.io.Serializable; import java.util.Date; @@ -15,151 +17,154 @@ import java.util.Date; * @author lyj * @date 2022-11-01 10:16 */ -@Builder @Data public class WorkPlanDto implements Serializable { - /** - * 下级B号 - */ + @Schema(description = "下级B号") private String nextRoam; - /** - * 生产单号 - */ + + @Schema(description = "生产单号") private String yoCode; - /** - * 计划单号 - */ + + @Schema(description = "计划单号") private String poCode; - /** - * 零件号 - */ + + @Schema(description = "零件号") private String partCode; - /** - * 产品型号 - */ + + @Schema(description = "产品型号") private String productType; - /** - * 名称 - */ + + @Schema(description = "名称") private String partName; - /** - * 镀种 - */ + + @Schema(description = "镀种") private String plate; - /** - * 生产标识 - */ + + @Schema(description = "生产标识") private String prodIdent; - /** - * 使用部门 - */ + + @Schema(description = "使用部门") private String useDept; - /** - * 面积(㎡) - */ + + @Schema(description = "面积(㎡)") private Double poArea; - /** - * 需求交期 - */ + + @Schema(description = "需求交期") private Date demandDate; - /** - * 计划员 - */ + + @Schema(description = "计划员") private String planUser; - /** - * 计划下达时间 - */ + + @Schema(description = "下级B号") private Date releaseDate; - /** - * 一级工艺线路 - */ + + @Schema(description = "一级工艺线路") private String primaryCraft; - /** - * 路线卡号 - */ + @Schema(description = "路线卡号") private String cardNo; - /** - * 批次号 - */ + + @Schema(description = "批次号") private String batchNo; - /** - * 订单编号 - */ + + @Schema(description = "订单编号") private String woCode; - /** - * 加工数量 - */ + + @Schema(description = "加工数量") private Double makeQty; - /** - * 未报工数量 - */ + + @Schema(description = "未报工数量") private Double notWorkQty; - /** - * 已报工数量 - */ + + @Schema(description = "已报工数量") private Double workQty; - /** - * 报废 - */ + + @Schema(description = "报废") private Double scrapQty; - /** - * 计划完工日期 - */ - private Date planEndDate; - /** - * 已入库数量 - */ + + @Schema(description = "计划完工日期") + private String planEndDate; + + @Schema(description = "计划开始日期") + private String planStartDate; + + @Schema(description = "已入库数量") private Double inventoryQty; - /** - * 已入库数量 - */ + + @Schema(description = "已入库数量") private Double notInQty; - /** - * 运行状态 - */ + + @Schema(description = "运行状态") public String runStatusTitle; - /** - * 工序状态 - */ - public Short status; - /** - * 优先级 - */ + + @Schema(description = "工序状态") + public Integer status; + + @Schema(description = "优先级") public String priorityTitle; - /** - * 领料状态 - */ + + @Schema(description = "领料状态") public String pickingStatusTitle; - /** - * 是否绑定挂次号 - */ + + @Schema(description = "是否绑定挂次号") public Boolean isBinging; - /** - * 当前工序 - */ + @Schema(description = "当前工序") public Long currentWpId; public Long wpId; + + @Schema(description = "当前工序内容") public String currentWpTitle; + + @Schema(description = "当前工序班组") public String currentMakeTeam; - /** - * 上序 - */ + @Schema(description = "上序内容") public String frontWpTitle; + + @Schema(description = "上序班组") public String frontMakeTeam; - /** - * 下序 - */ - public String nextWpTitle; - public String nextMakeTeam; - private YieldOrder yieldOrder; + @Schema(description = "下序内容") + public String nextWpTitle; - private WorkOrder workOrder; + @Schema(description = "下序班组") + public String nextMakeTeam; - private WorkPlan workPlan; + public WorkPlanDto(YieldOrder yo, WorkOrder wo, WorkPlan currentWP,Boolean isBinging) { + this.nextRoam = yo.getRoamNoNext(); + this.yoCode = yo.getYoCode(); + this.poCode = yo.getYpCode(); + this.partCode = yo.getPartCode(); + this.productType = yo.getProductType(); + this.partName = yo.getPartName(); + this.plate = yo.getPlate(); + this.prodIdent = yo.getProductIdent(); + this.useDept = yo.getUseDept(); + this.poArea = yo.getYpArea(); + this.demandDate = yo.getDemandDate(); + this.planUser = yo.getPlanUser(); + this.releaseDate = yo.getReleaseDate(); + this.primaryCraft = yo.getPrimaryCraft(); + this.cardNo = wo.getCardNo(); + this.batchNo = wo.getBatchNo(); + this.woCode = wo.getWoCode(); + this.makeQty = currentWP.getQualifiedQty(); + this.notWorkQty = currentWP.getQualifiedQty() - currentWP.getWorkQty() - currentWP.getScrapQty(); + this.workQty = currentWP.getWorkQty(); + this.scrapQty = currentWP.getScrapQty(); + this.planStartDate = wo.getPlanStartDate(); + this.planEndDate = wo.getPlanEndDate(); + this.inventoryQty = wo.getInventoryQty(); + this.notInQty = wo.getMakeQty() - wo.getInventoryQty(); + this.runStatusTitle = WorkOrderEnum.getName(wo.getRunStatus()); + this.priorityTitle = WorkOrder.priorityMap.get(wo.getPriority()); + this.pickingStatusTitle = WorkOrder.pickingStatusMap.get(wo.getPickingStatus()); + this.isBinging = isBinging; + this.currentWpId = currentWP.getId(); + this.wpId = currentWP.getId(); + this.status = currentWP.getStatus(); + } } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MesMakeRecVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MesMakeRecVO.java index a8b87639..095b957c 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MesMakeRecVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MesMakeRecVO.java @@ -1,10 +1,12 @@ package org.springblade.desk.produce.pojo.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.desk.produce.pojo.entity.MakeRec; import java.io.Serial; +import java.util.Date; /** * 加工记录 视图实体类 @@ -13,9 +15,86 @@ import java.io.Serial; * @since 2026-02-04 */ @Data -@EqualsAndHashCode(callSuper = true) -public class MesMakeRecVO extends MakeRec { - @Serial - private static final long serialVersionUID = 1L; +public class MesMakeRecVO { + @Schema(description = "报工记录ID") + private Long mrId; + + @Schema(description = "报工时间") + private Date makeTime; + + @Schema(description = "加工数量") + private Double workQty; + + @Schema(description = "报废数量") + private Double scrapQty; + + @Schema(description = "报工人") + private Long worker; + + @Schema(description = "报工人姓名") + private String workerName; + + @Schema(description = "本序ID") + private Long ppsId; + + @Schema(description = "本序名称") + private String ppsName; + + @Schema(description = "本序加工班组") + private Long makeTeam; + + @Schema(description = "本序加工班组") + private String makeTeamName; + + @Schema(description = "上序ID") + private Long frontPpsId; + + @Schema(description = "上序名称") + private String frontPpsName; + + @Schema(description = "上序加工班组") + private Long frontMakeTeam; + + @Schema(description = "上序加工班组") + private String frontMakeTeamName; + + @Schema(description = "下序ID") + private Long nextPpsId; + + @Schema(description = "下序名称") + private String nextPpsName; + + @Schema(description = "下序加工班组") + private Long nextMakeTeam; + + @Schema(description = "下序加工班组") + private String nextMakeTeamName; + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "流程卡号") + private String cardNo; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "零件名称") + private String partName; + + @Schema(description = "产品型号") + private String productType; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "镀种") + private String plate; + + @Schema(description = "生产标识") + private String productIdent; + + @Schema(description = "面积(㎡)") + private Double ypArea; } 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 104adb04..bc6108a3 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,7 +16,7 @@ import org.springblade.desk.produce.service.IMakeRecService; import org.springframework.web.bind.annotation.*; /** - * 加工记录 控制器 + * 工作台 控制器 * * @author BladeX * @since 2025-11-28 @@ -24,42 +24,43 @@ import org.springframework.web.bind.annotation.*; @RestController @AllArgsConstructor @RequestMapping("/prMakeRec") -@Tag(name = "加工记录", description = "接口") +@Tag(name = "工作台", description = "接口") public class PrMakeRecController extends BladeController { private final IMakeRecService makeRecService; @GetMapping(value = "/loadCurrentWp/{cardNo}") @ApiOperationSupport(order = 1) - @Operation(summary = "加载当前工序", description = "传入cardNo") + @Operation(summary = "工序报工-加载当前工序", description = "传入cardNo") public R loadSubOrder(@PathVariable String cardNo) { return R.data(makeRecService.loadCurrentWp(cardNo)); } - @Operation(summary = "增加加工记录") + + @Operation(summary = "报工提交") @PostMapping("/saveMakeRec") public R saveMakeRec(@RequestBody MakeRecDTO makeRecDTO) { - makeRecService.saveMakeRec(makeRecDTO); - return R.success() ; + return R.status(makeRecService.saveMakeRec(makeRecDTO)) ; } + @GetMapping("/queryMakeRec") @ApiOperationSupport(order = 3) - @Operation(summary = "加工记录", description = "传入mesMakeRec") + @Operation(summary = "报工记录", description = "传入mesMakeRec") public R> page(MesMakeRecVO mesMakeRec, Query query) { - IPage pages = makeRecService.selectMesMakeRecPage(Condition.getPage(query), mesMakeRec); - return R.data(pages); + return R.data(makeRecService.selectMesMakeRecPage(Condition.getPage(query), mesMakeRec)); } + @GetMapping(value = "/loadNotReceived/{cardNo}") @Operation(summary = "任务接收查询", description = "传入cardNo") public R loadNotReceived(@PathVariable String cardNo) { return R.data(makeRecService.loadNotReceived(cardNo)); } + @GetMapping(value = "/afterPlaReceive/{cardNo}") @Operation(summary = "加载镀后接收数据", description = "传入cardNo") public R afterPlaReceive(@PathVariable String cardNo) { return R.data(makeRecService.afterPlaReceive(cardNo)); } - @Operation(summary = "手动维护生产追溯") @PostMapping("/saveRetrospectDefend") public R saveRetrospectDefend(@RequestBody RetrospectDefendDTO retrospectDefendDTO) { diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java index 91fdbbc9..b60a347a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java @@ -98,11 +98,7 @@ public class RbProduceManageController extends BladeController { @ApiOperationSupport(order = 8) @Operation(summary = "更改车间订单优先级", description = "传入WorkOrder") public R updatePriority(@RequestBody UpdatePriorityDTO updatePriorityDTO) { - WorkOrder wo = workOrderService.getById(updatePriorityDTO.getWoId()); -// wo.setPriority(WorkOrder.PRIORITY_SCH_IMP); - wo.setPriority(updatePriorityDTO.getPriority()); - wo.setDemandDate(updatePriorityDTO.getDemandDate()); - return R.data(workOrderService.updateById(wo)); + return R.data(workOrderService.updatePriority(updatePriorityDTO)); } @GetMapping(value = "/getWorkOrderCache/{woId}") diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java index a9d9e270..f3703917 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java @@ -22,4 +22,6 @@ public interface MacToolUseMapper extends BaseMapper { List listSlotInfo(Long id, int isGr, int isCx); MesQcProduceRunEntity getBoxInfoByWpIdMtnCode(Long id); + + MacToolUse queryByParams(Long wpId, Integer rsBool, Integer fsBool, Integer ecBool); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml index d634b9f1..88580458 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml @@ -84,6 +84,13 @@ ORDER BY c.IN_DATE DESC + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml index 91aca3f8..44bf291a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml @@ -29,10 +29,60 @@ + - select * from MES_MAKE_REC where is_deleted = 0 + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java index c4cb058c..b9f6ffd4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java @@ -50,4 +50,6 @@ public interface IMacToolUseService extends BaseService { MacToolUse getDataByWpIdAndIndex(Long id, String number); MacToolUse getHangNumIsNull(Long id); + + MacToolUse queryByParams(Long id, Integer rsBool, Integer fsBool, Integer ecBool); } 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 43288a91..4d2cefce 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 @@ -26,7 +26,7 @@ public interface IMakeRecService extends BaseService { * 增加工序记录 * @param makeRecDTO */ - void saveMakeRec(MakeRecDTO makeRecDTO); + boolean saveMakeRec(MakeRecDTO makeRecDTO); IPage selectMesMakeRecPage(IPage page, MesMakeRecVO mesMakeRec); 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 0a2580c5..d6abb2f4 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 @@ -2,10 +2,7 @@ package org.springblade.desk.produce.service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; -import org.springblade.desk.produce.pojo.dto.InBatchesDTO; -import org.springblade.desk.produce.pojo.dto.ListProProcessDTO; -import org.springblade.desk.produce.pojo.dto.QueryByReadStatusDTO; -import org.springblade.desk.produce.pojo.dto.WorkOrderDTO; +import org.springblade.desk.produce.pojo.dto.*; import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkOrderRun; import org.springblade.desk.produce.pojo.entity.WorkPlan; @@ -190,4 +187,6 @@ public interface IWorkOrderService extends BaseService { * @param workOrder 订单 */ void updateHostWorkUnit(WorkOrder workOrder); + + boolean updatePriority(UpdatePriorityDTO updatePriorityDTO); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java index cddcf93b..df809838 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java @@ -127,6 +127,11 @@ public class MacToolUseServiceImpl extends BaseServiceImpl private final IMesEquipmentCardService mesEquipmentCardService; + private final IUserRightService userRightService; + + private final IMesRbFilePreserveSlotService mesRbFilePreserveSlotService; + + private final IMesRbFilePreserveDetailService mesRbFilePreserveDetailService; + @Override public WorkPlanDto loadCurrentWp(String cardNo) { WorkOrder wo = workOrderMapper.getWorkOrderByCardNo(cardNo, (short) 0); @@ -95,7 +104,7 @@ public class MakeRecServiceImpl extends BaseServiceImpl if (!WorkPlan.STATUS_START.equals(wp.getStatus())) { throw new ServiceException("当前工序已报工完成!"); } -// this.checkTeamWorkPlan(wp, prWorkPlanService.getTeamId(userInfo.getUserId())); + this.checkTeamWorkPlan(wp, this.getTeamId(AuthUtil.getUserId())); boolean isBinging = false; // 查询当前工序是否绑定了挂次号 long count = macToolUseService.count(Wrappers.lambdaQuery().eq(MacToolUse::getWpId, wp.getId()).isNotNull(MacToolUse::getHangNum)); @@ -103,89 +112,105 @@ public class MakeRecServiceImpl extends BaseServiceImpl isBinging = true; } YieldOrder yieldOrder = yieldOrderService.getById(wo.getYoId()); - return WorkPlanDto.builder().workPlan(wp).workOrder(wo).yieldOrder(yieldOrder).isBinging(isBinging).build(); + WorkPlanDto workPlanDto = new WorkPlanDto(yieldOrder, wo, wp, isBinging); + workPlanDto.setCurrentWpTitle(""); + workPlanDto.setCurrentMakeTeam(""); + workPlanDto.setFrontWpTitle(""); + workPlanDto.setFrontMakeTeam(""); + workPlanDto.setNextWpTitle(""); + workPlanDto.setNextMakeTeam(""); + return workPlanDto; + } + + private void checkTeamWorkPlan(WorkPlan wp, List teamId) { + Long tsId; + //判断是否特殊工序,如果是特殊工序验证附属班组,反之则为分派班组 + //20260304 逻辑更改,若存在附属班组,则验证附属班组,不存在附属班组,验证加工班组 + if (wp.getSubsidiaryTeam() != null) { + tsId = wp.getSubsidiaryTeam(); + } else { + tsId = wp.getMakeTeam(); + } + + if (teamId == null) { + throw new ServiceException("当前登录人无对应班组!"); + } + if (!teamId.contains(tsId)) { + throw new ServiceException("当前工序不是登录人所在班组工序,不能操作!"); + } + } + + private List getTeamId(Long userId) { + List bsTeamSet = userRightService.list(Wrappers.lambdaQuery(UserRight.class).eq(UserRight::getUserId, userId).eq(UserRight::getUrType, "bs_team_set")); + if (CollectionUtils.isEmpty(bsTeamSet)) { + return null; + } + return bsTeamSet.stream().map(UserRight::getTheId).toList(); } @Override - public void saveMakeRec(MakeRecDTO makeRecDTO) { + public boolean saveMakeRec(MakeRecDTO makeRecDTO) { WorkPlan wp = workPlanMapper.selectById(makeRecDTO.getWpId()); if (!WorkPlan.STATUS_START.equals(wp.getStatus())) { - throw new ServiceException("product.prWorkPlan.workOk"); + throw new ServiceException("当前工序已报工完成!"); } - MacToolUse mtu = null; + MacToolUse mtu; DsProcessEntity dsProcess = dsProcessService.getById(wp.getPpsId()); + DsProcessEntity frontProcess = dsProcessService.getById(wp.getFrontWpId()); //如果是上挂工序,需判定是否绑定挂具 - if (dsProcess.getProcessName().equals("上挂")) { - mtu = macToolUseService.getOne(Wrappers.lambdaQuery().eq(MacToolUse::getWpId, wp.getId()) - .isNotNull(MacToolUse::getBsRackSet)); + if ("上挂".equals(dsProcess.getProcessName())) { + mtu = macToolUseService.queryByParams(wp.getId(), 1, 0, 0); if (mtu == null) { - throw new ServiceException("product.prWorkPlan.not.bing.bsRackSet"); + throw new ServiceException("上挂工序未绑定挂具!"); } // 如果上序是上挂工序、并且本序是主工序,则代表本序是 需要绑定飞靶及设备的工序 或者手动维护生产追溯信息 - } else if (wp.getFrontWpId() != null && dsProcess.getProcessName().equals("上挂") && wp.getCruxProcess().equals("是")) { - mtu = macToolUseService.getOne(Wrappers.lambdaQuery().eq(MacToolUse::getWpId, wp.getId()) - .isNotNull(MacToolUse::getBsRackSet).isNotNull(MacToolUse::getBsFeiBaSet).isNotNull(MacToolUse::getEquipmentCard)); + } else if (wp.getFrontWpId() != null && "上挂".equals(frontProcess.getProcessName()) && "1".equals(wp.getCruxProcess())) { + mtu = macToolUseService.queryByParams(wp.getId(), 1, 1, 1); if (mtu == null) { // 验证是否维护了生产追溯信息 - List mtnCodeList = macToolUseService.listObjs(Wrappers.lambdaQuery().eq(MacToolUse::getWpId, wp.getId()).select(MacToolUse::getMtnCode)); - List qcProduceRunList = mesQcProduceRunService.list(Wrappers.lambdaQuery() - .in(MesQcProduceRunEntity::getMtnCode, mtnCodeList)); - if (!(qcProduceRunList != null && qcProduceRunList.size() > 0)) { - throw new ServiceException("product.prWorkPlan.not.bing"); + List qcProduceRunList = mesQcProduceRunService.listPrByWpId(wp.getId()); + if (!(qcProduceRunList != null && !qcProduceRunList.isEmpty())) { + throw new ServiceException("此工序卡未绑定飞靶或设备!"); } } } else if (dsProcess.getProcessName().contains("镀金")) { - mtu = macToolUseService.getOne(Wrappers.lambdaQuery().eq(MacToolUse::getWpId, wp.getId()) - .isNotNull(MacToolUse::getBsFeiBaSet)); + mtu = macToolUseService.queryByParams(wp.getId(), 0, 1, 0); if (mtu == null) { throw new ServiceException("此工序未绑定飞跋,请绑定飞跋!!!"); } //验证是否绑定设备 - mtu = macToolUseService.getOne(Wrappers.lambdaQuery().eq(MacToolUse::getWpId, wp.getId()) - .isNotNull(MacToolUse::getBsRackSet).isNotNull(MacToolUse::getBsFeiBaSet).isNotNull(MacToolUse::getEquipmentCard)); + mtu = macToolUseService.queryByParams(wp.getId(), 1, 1, 1); if (mtu == null) { List produceRunList = null; - List mtnCodeList = macToolUseService.listObjs(Wrappers.lambdaQuery() - .eq(MacToolUse::getWpId, wp.getId()).eq(MacToolUse::getMtuIndex, 1).select(MacToolUse::getMtnCode)); - produceRunList = mesQcProduceRunService.list(Wrappers.lambdaQuery() - .in(MesQcProduceRunEntity::getMtnCode, mtnCodeList).ne(MesQcProduceRunEntity::getWorkSlot, "烘箱")); - if (produceRunList == null || produceRunList.size() == 0) { - List mtnCodeList2 = macToolUseService.listObjs(Wrappers.lambdaQuery() - .eq(MacToolUse::getWpId, wp.getId()).eq(MacToolUse::getMtuIndex, 2).select(MacToolUse::getMtnCode)); - produceRunList = mesQcProduceRunService.list(Wrappers.lambdaQuery() - .in(MesQcProduceRunEntity::getMtnCode, mtnCodeList2).ne(MesQcProduceRunEntity::getWorkSlot, "烘箱")); + produceRunList = mesQcProduceRunService.listPrByWpIdIndex(wp.getId(), 1, Boolean.FALSE); + if (produceRunList == null || produceRunList.isEmpty()) { + produceRunList = mesQcProduceRunService.listPrByWpIdIndex(wp.getId(), 2, Boolean.FALSE); } - if (!(produceRunList != null && produceRunList.size() > 0)) { + if (!(produceRunList != null && !produceRunList.isEmpty())) { throw new ServiceException("未绑定飞跋和设备或未维护生产追溯信息!!!"); } } - } else if (dsProcess.getProcessName().equals("玻璃封接清洗") || dsProcess.getProcessName().equals("玻璃封接退火") || - dsProcess.getProcessName().equals("玻璃封接预氧化(箱式炉)") || dsProcess.getProcessName().equals("玻璃封接预氧化(链式炉)") || - dsProcess.getProcessName().equals("玻璃封接(链式炉)") || dsProcess.getProcessName().equals("玻璃封接(真空炉)") || - dsProcess.getProcessName().equals("玻璃封接灌胶") || dsProcess.getProcessName().equals("玻璃饼压制") || - dsProcess.getProcessName().equals("玻璃饼排蜡玻化") || dsProcess.getProcessName().equals("玻璃饼振光") || - dsProcess.getProcessName().equals("石墨模烘干") || dsProcess.getProcessName().equals("石墨模焙烧") || - dsProcess.getProcessName().equals("真空炉灌胶") || dsProcess.getProcessName().equals("玻璃封接电镀去氧化皮") || - dsProcess.getProcessName().equals("玻璃封接电化学抛光") || dsProcess.getProcessName().equals("玻璃封接湿喷砂") || - dsProcess.getProcessName().equals("玻璃封接电镀") || dsProcess.getProcessName().equals("玻璃封接插针电镀") || - dsProcess.getProcessName().equals("玻璃封接壳体电镀") || dsProcess.getProcessName().equals("玻璃封接电镀下挂") || - dsProcess.getProcessName().equals("烧结浸保护剂")) { - mtu = macToolUseService.getOne(Wrappers.lambdaQuery().eq(MacToolUse::getWpId, wp.getId()) - .isNotNull(MacToolUse::getBsRackSet).isNotNull(MacToolUse::getBsFeiBaSet).isNotNull(MacToolUse::getEquipmentCard)); + } else if ("玻璃封接清洗".equals(dsProcess.getProcessName()) || "玻璃封接退火".equals(dsProcess.getProcessName()) || + "玻璃封接预氧化(箱式炉)".equals(dsProcess.getProcessName()) || "玻璃封接预氧化(链式炉)".equals(dsProcess.getProcessName()) || + "玻璃封接(链式炉)".equals(dsProcess.getProcessName()) || "玻璃封接(真空炉)".equals(dsProcess.getProcessName()) || + "玻璃封接灌胶".equals(dsProcess.getProcessName()) || "玻璃饼压制".equals(dsProcess.getProcessName()) || + "玻璃饼排蜡玻化".equals(dsProcess.getProcessName()) || "玻璃饼振光".equals(dsProcess.getProcessName()) || + "石墨模烘干".equals(dsProcess.getProcessName()) || "石墨模焙烧".equals(dsProcess.getProcessName()) || + "真空炉灌胶".equals(dsProcess.getProcessName()) || "玻璃封接电镀去氧化皮".equals(dsProcess.getProcessName()) || + "玻璃封接电化学抛光".equals(dsProcess.getProcessName()) || "玻璃封接湿喷砂".equals(dsProcess.getProcessName()) || + "玻璃封接电镀".equals(dsProcess.getProcessName()) || "玻璃封接插针电镀".equals(dsProcess.getProcessName()) || + "玻璃封接壳体电镀".equals(dsProcess.getProcessName()) || "玻璃封接电镀下挂".equals(dsProcess.getProcessName()) || + "烧结浸保护剂".equals(dsProcess.getProcessName())) { + mtu = macToolUseService.queryByParams(wp.getId(), 1, 1, 1); if (mtu == null) { // 验证是否维护了生产追溯信息 - List qcProduceRunList = null; - List mtnCodeList = macToolUseService.listObjs(Wrappers.lambdaQuery() - .eq(MacToolUse::getWpId, wp.getId()).select(MacToolUse::getMtnCode)); - qcProduceRunList = mesQcProduceRunService.list(Wrappers.lambdaQuery() - .in(MesQcProduceRunEntity::getMtnCode, mtnCodeList)); - if (!(qcProduceRunList != null && qcProduceRunList.size() > 0)) { - throw new ServiceException("product.prWorkPlan.not.bing"); + List qcProduceRunList = mesQcProduceRunService.listPrByWpId(wp.getId()); + if (!(qcProduceRunList != null && !qcProduceRunList.isEmpty())) { + throw new ServiceException("此工序卡未绑定飞靶或设备!"); } } } - //周新昊 20241114 验证手动维护设备使用记录的工序电子档案数据是否维护完备 - Boolean aBoolean = true; //this.chkRfpDetail(wp); + boolean aBoolean = this.chkRfpDetail(wp.getId()); if (!aBoolean) { throw new ServiceException("生产记录未填写完整,不允许报工!!!!"); } @@ -197,8 +222,9 @@ public class MakeRecServiceImpl extends BaseServiceImpl baseMapper.insertOrUpdate(mr); if (mr.getScrapQty() > 0) { wp.setScrapQty(wp.getScrapQty() + mr.getScrapQty()); - WorkOrder wo = null;//workOrderService.getById(wp.getWoId()); + WorkOrder wo = workOrderMapper.selectById(wp.getWoId()); wo.setMakeQty(wo.getMakeQty() - mr.getScrapQty()); + workOrderMapper.updateById(wo); } wp.setWorkQty(wp.getWorkQty() + mr.getWorkQty()); if (wp.getQualifiedQty().equals(wp.getScrapQty() + wp.getWorkQty())) { @@ -206,7 +232,6 @@ public class MakeRecServiceImpl extends BaseServiceImpl } if ("热处理".equals(dsProcess.getProcessName())) { wp.setPrintType((short) 1); - //workPlanService.saveOrUpdate(wp); String code = macToolUseService.nextCode(2); MacToolUse prMacToolUse = new MacToolUse(); prMacToolUse.setWpId(wp.getId()); @@ -232,61 +257,230 @@ public class MakeRecServiceImpl extends BaseServiceImpl qcProduceRun.setDataSeven(makeRecDTO.getShape()); mesQcProduceRunService.save(qcProduceRun); } - // 保存引用文件或版本号 - WorkOrder prWorkOrder = null; //workOrderService.getById(wp.getWoId()); - if (prWorkOrder != null && prWorkOrder.getId() != null) { - YieldOrder pjYieldOrder = yieldOrderService.getById(prWorkOrder.getYoId()); - if (pjYieldOrder != null && pjYieldOrder.getId() != null) { - BsProcessSetEntity procedureSet = bsProcessSetService.getById(wp.getPpsId()); - AuditFile dsAuditFile = null; - // 如果本序是涂色标或喷砂,直接查维护的数据 - if ("涂色标".equals(procedureSet.getName()) || "喷砂".equals(procedureSet.getName())) { - dsAuditFile = auditFileService.getOne(Wrappers.lambdaQuery() - .eq(AuditFile::getPpsId, procedureSet.getId())); - } else { - // 如果不是优先判断是否有生产标识 - String prodIdent = pjYieldOrder.getProductIdent(); - BsTeamSetEntity bsTeamSet = teamSetService.getOne(Wrappers.lambdaQuery() - .eq(BsTeamSetEntity::getId, wp.getMakeTeam())); - if (!"AH".equals(prodIdent)) { - prodIdent = null; - } - if (bsTeamSet != null && bsTeamSet.getId() != null) { - // BsCenterTeamEntity bsCenterTeam = bsCenterTeamService.getByTsId(bsTeamSet.getTsId()); - DsPartEntity dsPart = partService.getOne(Wrappers.lambdaQuery().eq(DsPartEntity::getPartCode, pjYieldOrder.getPartCode())); - String productApparea = null; - if (dsPart != null && dsPart.getId() != null) { - productApparea = dsPart.getProductSeries(); + workPlanMapper.updateById(wp); + // 2025-07-23 线上迁移修改 + MacToolUse macToolUse = macToolUseService.getDataByWpIdAndIndex(wp.getId(), "2"); + if (macToolUse != null && macToolUse.getRfpId() != null && macToolUse.getFinished() != 1) { + macToolUse.setFinished(1); + String deviceCode = macToolUse.getEquipmentCard() != null ? macToolUse.getMtnCode() : ""; + log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:addMakeRec(),{}", deviceCode, macToolUse.getHangNum(), macToolUse.getMtnCode(), macToolUse.getFinished()); + macToolUseService.updateById(macToolUse); + } + return true; + } + + private boolean chkRfpDetail(Long wpId) { + List macToolUses = macToolUseService.list(Wrappers.lambdaQuery(MacToolUse.class).isNotNull(MacToolUse::getRfpId).ne(MacToolUse::getMtuIndex, "2").eq(MacToolUse::getWpId, wpId)); + if (CollectionUtils.isNotEmpty(macToolUses)) { + for (MacToolUse macToolUs : macToolUses) { + List qcProduceRunList = mesQcProduceRunService.list(Wrappers.lambdaQuery(MesQcProduceRunEntity.class).eq(MesQcProduceRunEntity::getMtnCode, macToolUs.getMtnCode()) + .and(wrapper -> wrapper.isNull(MesQcProduceRunEntity::getWorkSlot).or().notLike(MesQcProduceRunEntity::getWorkSlot, "入料区")).orderByAsc(MesQcProduceRunEntity::getId)); + Map qcProduceRunMap = qcProduceRunList.stream().collect(Collectors.toMap(MesQcProduceRunEntity::getWorkSlot, Function.identity())); + List dsRbFilePreserveSlots = mesRbFilePreserveSlotService.list(Wrappers.lambdaQuery(MesRbFilePreserveSlotEntity.class).eq(MesRbFilePreserveSlotEntity::getRfpId, macToolUs.getRfpId()).orderByAsc(MesRbFilePreserveSlotEntity::getSlotIndex)); + if (CollectionUtils.isNotEmpty(dsRbFilePreserveSlots)) { + for (MesRbFilePreserveSlotEntity dsRbFilePreserveSlot : dsRbFilePreserveSlots) { + MesQcProduceRunEntity qcProduceRun = qcProduceRunMap.get(dsRbFilePreserveSlot.getSlotName()); + if (qcProduceRun != null) { + List dsRbFilePreserveDetails = mesRbFilePreserveDetailService.getByRfpsId(dsRbFilePreserveSlot.getId()); + if (CollectionUtils.isNotEmpty(dsRbFilePreserveDetails)) { + if (dsRbFilePreserveSlot.getRfpsType() == 1) { + if (StringUtils.isBlank(qcProduceRun.getInDate()) + || StringUtils.isBlank(qcProduceRun.getOutDate())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 2) { + if (StringUtils.isBlank(qcProduceRun.getInDate()) + || StringUtils.isBlank(qcProduceRun.getOutDate()) + || StringUtils.isBlank(qcProduceRun.getDataOne())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 3 || dsRbFilePreserveSlot.getRfpsType() == 11) { + if (StringUtils.isBlank(qcProduceRun.getInDate()) + || StringUtils.isBlank(qcProduceRun.getOutDate()) + || StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 4 || dsRbFilePreserveSlot.getRfpsType() == 12) { + if (StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo()) + || StringUtils.isBlank(qcProduceRun.getDataThree())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 5 || dsRbFilePreserveSlot.getRfpsType() == 22) { + if (StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo()) + || StringUtils.isBlank(qcProduceRun.getDataThree()) + || StringUtils.isBlank(qcProduceRun.getDataFour()) + || StringUtils.isBlank(qcProduceRun.getDataFive())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 6) { + if (StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo()) + || StringUtils.isBlank(qcProduceRun.getDataThree()) + || StringUtils.isBlank(qcProduceRun.getDataFour()) + || StringUtils.isBlank(qcProduceRun.getDataFive()) + || StringUtils.isBlank(qcProduceRun.getDataSix())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 7 || dsRbFilePreserveSlot.getRfpsType() == 18) { + if (StringUtils.isBlank(qcProduceRun.getDataOne())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 8) { + if (StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 9) { + if (StringUtils.isBlank(qcProduceRun.getInDate()) + || StringUtils.isBlank(qcProduceRun.getOutDate()) + || StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo()) + || StringUtils.isBlank(qcProduceRun.getDataThree())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 13) { + if (StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo()) + || StringUtils.isBlank(qcProduceRun.getDataThree()) + || StringUtils.isBlank(qcProduceRun.getDataFour()) + || StringUtils.isBlank(qcProduceRun.getDataFive()) + || StringUtils.isBlank(qcProduceRun.getDataSix()) + || StringUtils.isBlank(qcProduceRun.getDataSeven()) + || StringUtils.isBlank(qcProduceRun.getDataEight()) + || StringUtils.isBlank(qcProduceRun.getDataNine()) + || StringUtils.isBlank(qcProduceRun.getDataTen())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 14) { + if (StringUtils.isBlank(qcProduceRun.getInDate()) + || StringUtils.isBlank(qcProduceRun.getOutDate()) + || StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo()) + || StringUtils.isBlank(qcProduceRun.getDataThree()) + || StringUtils.isBlank(qcProduceRun.getDataFour()) + || StringUtils.isBlank(qcProduceRun.getDataFive()) + || StringUtils.isBlank(qcProduceRun.getDataSix()) + || StringUtils.isBlank(qcProduceRun.getDataSeven()) + || StringUtils.isBlank(qcProduceRun.getDataEight()) + || StringUtils.isBlank(qcProduceRun.getDataNine()) + || StringUtils.isBlank(qcProduceRun.getDataTen())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 15) { + if (StringUtils.isBlank(qcProduceRun.getInDate()) + || StringUtils.isBlank(qcProduceRun.getOutDate()) + || StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo()) + || StringUtils.isBlank(qcProduceRun.getDataThree()) + || StringUtils.isBlank(qcProduceRun.getDataFour()) + || StringUtils.isBlank(qcProduceRun.getDataFive()) + || StringUtils.isBlank(qcProduceRun.getDataSix()) + || StringUtils.isBlank(qcProduceRun.getDataSeven()) + || StringUtils.isBlank(qcProduceRun.getDataEight()) + || StringUtils.isBlank(qcProduceRun.getDataNine()) + || StringUtils.isBlank(qcProduceRun.getDataTen()) + || StringUtils.isBlank(qcProduceRun.getDataEleven()) + || StringUtils.isBlank(qcProduceRun.getDataTwelve())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 16) { + if (StringUtils.isBlank(qcProduceRun.getInDate()) + || StringUtils.isBlank(qcProduceRun.getOutDate()) + || StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo()) + || StringUtils.isBlank(qcProduceRun.getDataThree()) + || StringUtils.isBlank(qcProduceRun.getDataFour()) + || StringUtils.isBlank(qcProduceRun.getDataFive()) + || StringUtils.isBlank(qcProduceRun.getDataSix()) + || StringUtils.isBlank(qcProduceRun.getDataSeven()) + || StringUtils.isBlank(qcProduceRun.getDataEight()) + || StringUtils.isBlank(qcProduceRun.getDataNine()) + || StringUtils.isBlank(qcProduceRun.getDataTen()) + || StringUtils.isBlank(qcProduceRun.getDataEleven()) + || StringUtils.isBlank(qcProduceRun.getDataTwelve()) + || StringUtils.isBlank(qcProduceRun.getDataThirteen()) + || StringUtils.isBlank(qcProduceRun.getDataFourteen())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 17) { + if (StringUtils.isBlank(qcProduceRun.getInDate()) + || StringUtils.isBlank(qcProduceRun.getOutDate()) + || StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo()) + || StringUtils.isBlank(qcProduceRun.getDataThree()) + || StringUtils.isBlank(qcProduceRun.getDataFour()) + || StringUtils.isBlank(qcProduceRun.getDataFive()) + || StringUtils.isBlank(qcProduceRun.getDataSix())) { + return false; + } + } else if (dsRbFilePreserveSlot.getRfpsType() == 21) { + if (StringUtils.isBlank(qcProduceRun.getDataOne()) + || StringUtils.isBlank(qcProduceRun.getDataTwo()) + || StringUtils.isBlank(qcProduceRun.getDataThree()) + || StringUtils.isBlank(qcProduceRun.getDataFour()) + || StringUtils.isBlank(qcProduceRun.getDataFive()) + || StringUtils.isBlank(qcProduceRun.getDataSix()) + || StringUtils.isBlank(qcProduceRun.getDataSeven()) + || StringUtils.isBlank(qcProduceRun.getDataEight()) + || StringUtils.isBlank(qcProduceRun.getDataNine())) { + return false; + } + } + } } -// if (productApparea!=null){ -// dsAuditFile = dsAuditFileDao.getDataByPpsIdAndApparea(procedureSet.getPpsId(), bsCenterTeam.getBsWorkCenter().getWcId(),productApparea); -// } -// if (bsCenterTeam != null && bsCenterTeam.getCtId() != null && dsAuditFile == null) { -// dsAuditFile = dsAuditFileDao.getDataByPpsIdAndPqName(procedureSet.getPpsId(), bsCenterTeam.getBsWorkCenter().getWcId(), prodIdent); -// } } } - if (dsAuditFile != null && dsAuditFile.getId() != null) { - wp.setPapers(dsAuditFile.getPapers()); - wp.setReferenceFile(dsAuditFile.getReferenceFile()); - //workPlanService.updateById(wp); - } - // 2025-07-23 线上迁移修改 - MacToolUse macToolUse = macToolUseService.getOne(Wrappers.lambdaQuery() - .eq(MacToolUse::getWpId, wp.getId())); - if (macToolUse != null && macToolUse.getRfpId() != null && macToolUse.getFinished() != 1) { - macToolUse.setFinished(1); - String deviceCode = macToolUse.getEquipmentCard() != null ? macToolUse.getMtnCode() : ""; - log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:addMakeRec(),{}", deviceCode, macToolUse.getHangNum(), macToolUse.getMtnCode(), macToolUse.getFinished()); - macToolUseService.updateById(macToolUse); - } } } + return true; } @Override public IPage selectMesMakeRecPage(IPage page, MesMakeRecVO mesMakeRec) { - return page.setRecords(baseMapper.selectMesMakeRecPage(page, mesMakeRec)); + IPage mesMakeRecVOIPage = page.setRecords(baseMapper.selectMesMakeRecPage(page, mesMakeRec)); + List records = mesMakeRecVOIPage.getRecords(); + if (CollectionUtils.isNotEmpty(records)) { + List ppsIds = new ArrayList<>(); + List makeTeams = new ArrayList<>(); + for (MesMakeRecVO record : records) { + ppsIds.add(record.getPpsId()); + if (record.getFrontPpsId() != null) { + ppsIds.add(record.getFrontPpsId()); + } + if (record.getNextPpsId() != null) { + ppsIds.add(record.getNextPpsId()); + } + if (record.getMakeTeam() != null) { + makeTeams.add(record.getMakeTeam()); + } + if (record.getFrontMakeTeam() != null) { + makeTeams.add(record.getFrontMakeTeam()); + } + if (record.getNextMakeTeam() != null) { + makeTeams.add(record.getNextMakeTeam()); + } + } + List processSets = bsProcessSetService.list(Wrappers.lambdaQuery(BsProcessSetEntity.class).in(BsProcessSetEntity::getId, ppsIds)); + Map processSetMap = processSets.stream().collect(Collectors.toMap(BsProcessSetEntity::getId, BsProcessSetEntity::getName)); + + List teams = teamSetService.list(Wrappers.lambdaQuery(BsTeamSetEntity.class).in(BsTeamSetEntity::getId, makeTeams)); + Map teamMap = teams.stream().collect(Collectors.toMap(BsTeamSetEntity::getId, BsTeamSetEntity::getTsName)); + for (MesMakeRecVO record : records) { + User user = UserCache.getUser(record.getWorker()); + record.setWorkerName(user != null ? user.getRealName() : ""); + record.setPpsName(processSetMap.get(record.getPpsId())); + record.setMakeTeamName(teamMap.get(record.getMakeTeam())); + record.setFrontPpsName(processSetMap.get(record.getFrontPpsId())); + record.setFrontMakeTeamName(teamMap.get(record.getFrontMakeTeam())); + record.setNextPpsName(processSetMap.get(record.getNextPpsId())); + record.setNextMakeTeamName(teamMap.get(record.getNextMakeTeam())); + } + mesMakeRecVOIPage.setRecords(records); + } + return mesMakeRecVOIPage; } @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 631a2ff5..e8d434c1 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 @@ -43,10 +43,7 @@ import org.springblade.desk.order.pojo.enums.YieldOrderEnum; import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.produce.mapper.PlateAroundMapper; import org.springblade.desk.produce.mapper.WorkOrderMapper; -import org.springblade.desk.produce.pojo.dto.InBatchesDTO; -import org.springblade.desk.produce.pojo.dto.ListProProcessDTO; -import org.springblade.desk.produce.pojo.dto.QueryByReadStatusDTO; -import org.springblade.desk.produce.pojo.dto.WorkOrderDTO; +import org.springblade.desk.produce.pojo.dto.*; import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.enums.WorkOrderEnum; import org.springblade.desk.produce.pojo.enums.ProcessCycleEnum; @@ -1635,6 +1632,26 @@ public class WorkOrderServiceImpl extends BaseServiceImpl