diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/PlanAssignSteerMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/PlanAssignSteerMapper.java index aacd04eeb..1b4c248b4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/PlanAssignSteerMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/PlanAssignSteerMapper.java @@ -4,6 +4,7 @@ package org.springblade.desk.basic.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ public interface PlanAssignSteerMapper extends BaseMapper { List exportPlanAssignSteer(@Param("ew") Wrapper queryWrapper); List findParams(@Param("caId")Long caId,@Param("startDate")String startDate,@Param("endDate")String endDate); + + List findByOcIdLstAndCaId(List ocList, Long oemCaId, String partCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/PlanAssignSteerMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/PlanAssignSteerMapper.xml index 4d4fa675d..e78008023 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/PlanAssignSteerMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/PlanAssignSteerMapper.xml @@ -63,4 +63,25 @@ a.CRAFT_ABILITY_ID ) b ON a.caId = b.caId + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IPlanAssignSteerService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IPlanAssignSteerService.java index 99dac1ffe..67e1aa395 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IPlanAssignSteerService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IPlanAssignSteerService.java @@ -43,4 +43,8 @@ public interface IPlanAssignSteerService extends BaseService { void setVOValue(PlanAssignSteerVO vo); List findParams(Long caId); + + PlanAssignSteer findByOcIdLstAndCaId(List ocList, Long oemCaId, String partCode); + + List sortDataByFactor(List ocList, Long hostCaId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/PlanAssignSteerServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/PlanAssignSteerServiceImpl.java index deb221244..243299c3f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/PlanAssignSteerServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/PlanAssignSteerServiceImpl.java @@ -1,16 +1,16 @@ -/** - * Author: Tom Shuo - */ package org.springblade.desk.basic.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import jakarta.annotation.Resource; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.time.DateFormatUtils; +import org.springblade.common.constant.CommonConstant; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.desk.basic.excel.PlanAssignSteerExcel; import org.springblade.desk.basic.mapper.PlanAssignSteerMapper; @@ -89,6 +89,22 @@ public class PlanAssignSteerServiceImpl extends BaseServiceImpl ocList, Long oemCaId, String partCode) { + List list = baseMapper.findByOcIdLstAndCaId(ocList, oemCaId, partCode); + return list.isEmpty() ? null : list.get(0); + } + + @Override + public List sortDataByFactor(List ocList, Long hostCaId) { + LambdaQueryWrapper wrapper = Wrappers.query().lambda() + .eq(PlanAssignSteer::getIsDeleted, CommonConstant.BOOLEAN_FALSE) + .in(PlanAssignSteer::getOemId, ocList) + .eq(PlanAssignSteer::getPlatingId, hostCaId) + .orderByDesc(PlanAssignSteer::getFactor); + return baseMapper.selectList(wrapper); + } + //获得周日 的日期 private static String getSunday(String d) throws ParseException { 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 c900ec452..36186cb8d 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 @@ -13,10 +13,7 @@ import org.springblade.common.exception.BusinessException; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.Func; -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.pojo.entity.*; import org.springblade.desk.basic.service.*; import org.springblade.desk.dashboard.pojo.entity.BsCraftAbilityEntity; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; @@ -30,7 +27,6 @@ import org.springblade.desk.order.mapper.YieldOrderMapper; import org.springblade.desk.order.pojo.dto.YieldOrderAssignCount; import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.pojo.entity.YieldOrderAssignDaily; -import org.springblade.desk.order.pojo.entity.YieldOrderAssignSteer; import org.springblade.desk.order.pojo.entity.YieldOrderCraft; import org.springblade.desk.order.service.IYieldOrderAssignSteerService; import org.springblade.desk.order.service.IYieldOrderCraftService; @@ -54,7 +50,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl thisLst = new ArrayList<>(); thisLst.add(assign.getOemId()); //查询当前外协商是否满足生产当前这批活的条件,若不满足,则考虑其他满足的供应商 - YieldOrderAssignSteer planAssignSteer = assignSteerService.findByOcIdLstAndCaId(thisLst, null, yieldOrder.getPartCode()); + PlanAssignSteer planAssignSteer = planAssignSteerService.findByOcIdLstAndCaId(ocList, null, yieldOrder.getPartCode()); //用于标识匹配规则是按零件还是工艺能力 boolean bool = true; if (planAssignSteer == null) { bool = false; - planAssignSteer = assignSteerService.findByOcIdLstAndCaId(thisLst, hostCaId, null); + planAssignSteer = planAssignSteerService.findByOcIdLstAndCaId(ocList, null, yieldOrder.getPartCode()); } if (planAssignSteer != null) { @@ -574,7 +570,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl bsPlanAssignSteerList = assignSteerService.sortDataByFactor(ocList, hostCaId); + List bsPlanAssignSteerList = planAssignSteerService.sortDataByFactor(ocList, hostCaId); CraftAbilityEntity craftAbility = iCraftAbilityService.getById(hostCaId); - for (YieldOrderAssignSteer bsPlanAssignSteer : bsPlanAssignSteerList) { + for (PlanAssignSteer bsPlanAssignSteer : bsPlanAssignSteerList) { oemCustomer = oemService.getById(bsPlanAssignSteer.getOemId()); String oemCode = oemCustomer.getCode(); 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 db6c81a57..cc1bae6bf 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 @@ -785,6 +785,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl WorkPlan.STATUS_NO_START) { return R.fail("外协第一道工序已接收!"); } + workOrderRun.setInCustomer(ocId); workOrder.setOcId(ocId); workOrderMapper.updateById(workOrder); workPlans.forEach(workPlan -> workPlan.setOcId(ocId));