diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java index eabe6f800..c059e20a3 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java @@ -120,6 +120,7 @@ public class WorkPlan extends BaseEntity { * 加工班组 */ @Schema(description = "加工班组") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Long makeTeam; /** * 是否外协 @@ -207,6 +208,7 @@ public class WorkPlan extends BaseEntity { * */ @Schema(description = "附属班组") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Long subsidiaryTeam; /** * 检验颜色标识 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java index f1947fef9..8639e8467 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java @@ -15,10 +15,7 @@ import org.springblade.desk.basic.pojo.entity.BsAssignEntity; import org.springblade.desk.basic.pojo.entity.Oem; import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity; import org.springblade.desk.basic.pojo.entity.WorkCenter; -import org.springblade.desk.basic.service.IBsAssignService; -import org.springblade.desk.basic.service.IOemCraftAbilityService; -import org.springblade.desk.basic.service.IOemService; -import org.springblade.desk.basic.service.IWorkCenterService; +import org.springblade.desk.basic.service.*; import org.springblade.desk.dashboard.pojo.entity.BsCraftAbilityEntity; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity; @@ -36,6 +33,7 @@ import org.springblade.desk.order.pojo.entity.YieldOrderCraft; import org.springblade.desk.order.service.IYieldOrderAssignSteerService; import org.springblade.desk.order.service.IYieldOrderCraftService; import org.springblade.desk.order.service.IYieldOrderDailyAssignService; +import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -63,6 +61,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl selectPage(IPage page, YieldOrderCraft entity) { @@ -539,6 +538,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl 0) { List bsPlanAssignSteerList = assignSteerService.sortDataByFactor(ocList, hostCaId); + CraftAbilityEntity craftAbility = iCraftAbilityService.getById(hostCaId); for (YieldOrderAssignSteer bsPlanAssignSteer : bsPlanAssignSteerList) { oemCustomer = oemService.getById(bsPlanAssignSteer.getOemId()); String oemCode = oemCustomer.getCode(); @@ -556,6 +556,10 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl() - .eq(WorkPlan::getFrontWpId, wp.getId())); + WorkPlan frontWorkPlan = workPlanMapper.selectById(wp.getFrontWpId()); if (frontWorkPlan != null) { // 还原上序 frontWorkPlan.setStatus(WorkPlan.STATUS_WORK_OK); @@ -278,14 +278,19 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl yieldOrderCrafts = yieldOrderCraftService.listByYoId(yo.getId()); + Map yieldOrderCraftMap = yieldOrderCrafts.stream().collect(Collectors.toMap(YieldOrderCraft::getProcessNo, v -> v)); if (!wpList.isEmpty()) { //判断工序是否存在外协商,如果存在不进行二次分派 WorkPlan workPlan = workPlanMapper.selectById(wprList.get(0).getWpId()); if (workPlan.getOcId() == null || workPlan.getOcId() < 1 ) { //自动分派 - List yieldOrderCrafts = yieldOrderCraftService.listByYoId(yo.getId()); yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yo, Boolean.FALSE, null); } + for (WorkPlan plan : wpList) { + YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(plan.getOrders()); + plan.setOcId(yieldOrderCraft.getOcId()); + } } int days = 5; wo.setOemOut("0"); @@ -306,28 +311,21 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl() - .eq(WorkPlan::getId, wp.getNextWpId())); + WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper().eq(WorkPlan::getId, wp.getNextWpId())); if (nextWp != null) { - oemId = nextWp.getOcId(); - craftAbilityId = nextWp.getCaId(); + YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(nextWp.getOrders()); + oemId = yieldOrderCraft.getOcId(); + craftAbilityId = yieldOrderCraft.getCaId(); oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper().eq(OemCraftAbilityEntity::getOtherId, oemId) .eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId)); } } else { - oemId = wp.getOcId(); - craftAbilityId = wp.getCaId(); + YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(wp.getOrders()); + oemId = yieldOrderCraft.getOcId(); + craftAbilityId = yieldOrderCraft.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); @@ -343,7 +341,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl