自动分派逻辑修改

liweidong
李涛 2 days ago
parent 95259a9020
commit 74d70ca495
  1. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/PlanAssignSteerMapper.java
  2. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/PlanAssignSteerMapper.xml
  3. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IPlanAssignSteerService.java
  4. 22
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/PlanAssignSteerServiceImpl.java
  5. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java
  6. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java

@ -4,6 +4,7 @@
package org.springblade.desk.basic.mapper; package org.springblade.desk.basic.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper; 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.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -39,4 +40,6 @@ public interface PlanAssignSteerMapper extends BaseMapper<PlanAssignSteer> {
List<PlanAssignSteerExcel> exportPlanAssignSteer(@Param("ew") Wrapper<PlanAssignSteer> queryWrapper); List<PlanAssignSteerExcel> exportPlanAssignSteer(@Param("ew") Wrapper<PlanAssignSteer> queryWrapper);
List<PlanAssignSteerVO> findParams(@Param("caId")Long caId,@Param("startDate")String startDate,@Param("endDate")String endDate); List<PlanAssignSteerVO> findParams(@Param("caId")Long caId,@Param("startDate")String startDate,@Param("endDate")String endDate);
List<PlanAssignSteer> findByOcIdLstAndCaId(List<Long> ocList, Long oemCaId, String partCode);
} }

@ -63,4 +63,25 @@
a.CRAFT_ABILITY_ID a.CRAFT_ABILITY_ID
) b ON a.caId = b.caId ) b ON a.caId = b.caId
</select> </select>
<select id="findByOcIdLstAndCaId" resultType="org.springblade.desk.basic.pojo.entity.PlanAssignSteer">
SELECT
*
FROM
BS_PLAN_ASSIGN_STEER
WHERE
IS_DELETED = 0
<if test="ocList != null and ocList.isEmpty()">
AND OEM_ID IN
<foreach collection="ocList" item="ocId" open="(" separator="," close=")" index="index">
#{ocId}
</foreach>
</if>
<if test="oemCaId != null">
AND PLATING_ID = #{oemCaId}
</if>
<if test="partCode != null and partCode != ''">
AND DS_PART = ( SELECT DISTINCT b.ID FROM DS_PART b WHERE b.PART_CODE = #{partCode} AND b.IS_DELETED = 0 )
</if>
ORDER BY factor DESC
</select>
</mapper> </mapper>

@ -43,4 +43,8 @@ public interface IPlanAssignSteerService extends BaseService<PlanAssignSteer> {
void setVOValue(PlanAssignSteerVO vo); void setVOValue(PlanAssignSteerVO vo);
List<PlanAssignSteerVO> findParams(Long caId); List<PlanAssignSteerVO> findParams(Long caId);
PlanAssignSteer findByOcIdLstAndCaId(List<Long> ocList, Long oemCaId, String partCode);
List<PlanAssignSteer> sortDataByFactor(List<Long> ocList, Long hostCaId);
} }

@ -1,16 +1,16 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.service.impl; package org.springblade.desk.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper; 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.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.basic.excel.PlanAssignSteerExcel; import org.springblade.desk.basic.excel.PlanAssignSteerExcel;
import org.springblade.desk.basic.mapper.PlanAssignSteerMapper; import org.springblade.desk.basic.mapper.PlanAssignSteerMapper;
@ -89,6 +89,22 @@ public class PlanAssignSteerServiceImpl extends BaseServiceImpl<PlanAssignSteerM
return list; return list;
} }
@Override
public PlanAssignSteer findByOcIdLstAndCaId(List<Long> ocList, Long oemCaId, String partCode) {
List<PlanAssignSteer> list = baseMapper.findByOcIdLstAndCaId(ocList, oemCaId, partCode);
return list.isEmpty() ? null : list.get(0);
}
@Override
public List<PlanAssignSteer> sortDataByFactor(List<Long> ocList, Long hostCaId) {
LambdaQueryWrapper<PlanAssignSteer> wrapper = Wrappers.<PlanAssignSteer>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 { private static String getSunday(String d) throws ParseException {

@ -13,10 +13,7 @@ import org.springblade.common.exception.BusinessException;
import org.springblade.core.log.exception.ServiceException; import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.pojo.entity.BsAssignEntity; import org.springblade.desk.basic.pojo.entity.*;
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.*; import org.springblade.desk.basic.service.*;
import org.springblade.desk.dashboard.pojo.entity.BsCraftAbilityEntity; import org.springblade.desk.dashboard.pojo.entity.BsCraftAbilityEntity;
import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; 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.dto.YieldOrderAssignCount;
import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.entity.YieldOrderAssignDaily; 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.pojo.entity.YieldOrderCraft;
import org.springblade.desk.order.service.IYieldOrderAssignSteerService; import org.springblade.desk.order.service.IYieldOrderAssignSteerService;
import org.springblade.desk.order.service.IYieldOrderCraftService; import org.springblade.desk.order.service.IYieldOrderCraftService;
@ -54,7 +50,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
private final IWorkCenterService workCenterService; private final IWorkCenterService workCenterService;
private final IOemService oemService; private final IOemService oemService;
private final IOemCraftAbilityService oemCraftAbilityService; private final IPlanAssignSteerService planAssignSteerService;
private final IBsCraftAbilityService craftAbilityService; private final IBsCraftAbilityService craftAbilityService;
private final IBsAssignService assignService; private final IBsAssignService assignService;
private final IYieldOrderDailyAssignService dailyAssignService; private final IYieldOrderDailyAssignService dailyAssignService;
@ -534,12 +530,12 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
List<Long> thisLst = new ArrayList<>(); List<Long> thisLst = new ArrayList<>();
thisLst.add(assign.getOemId()); thisLst.add(assign.getOemId());
//查询当前外协商是否满足生产当前这批活的条件,若不满足,则考虑其他满足的供应商 //查询当前外协商是否满足生产当前这批活的条件,若不满足,则考虑其他满足的供应商
YieldOrderAssignSteer planAssignSteer = assignSteerService.findByOcIdLstAndCaId(thisLst, null, yieldOrder.getPartCode()); PlanAssignSteer planAssignSteer = planAssignSteerService.findByOcIdLstAndCaId(ocList, null, yieldOrder.getPartCode());
//用于标识匹配规则是按零件还是工艺能力 //用于标识匹配规则是按零件还是工艺能力
boolean bool = true; boolean bool = true;
if (planAssignSteer == null) { if (planAssignSteer == null) {
bool = false; bool = false;
planAssignSteer = assignSteerService.findByOcIdLstAndCaId(thisLst, hostCaId, null); planAssignSteer = planAssignSteerService.findByOcIdLstAndCaId(ocList, null, yieldOrder.getPartCode());
} }
if (planAssignSteer != null) { if (planAssignSteer != null) {
@ -574,7 +570,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
// 外协商 // 外协商
Oem oemCustomer = null; Oem oemCustomer = null;
// 首先根据零件号查询是否存在零件级的分派规则 // 首先根据零件号查询是否存在零件级的分派规则
YieldOrderAssignSteer planAssignSteer = assignSteerService.findByOcIdLstAndCaId(ocList, null, yieldOrder.getPartCode()); PlanAssignSteer planAssignSteer = planAssignSteerService.findByOcIdLstAndCaId(ocList, null, yieldOrder.getPartCode());
//用于标识匹配规则是按零件还是工艺能力 //用于标识匹配规则是按零件还是工艺能力
boolean bool = true; boolean bool = true;
if (planAssignSteer == null) { if (planAssignSteer == null) {
@ -583,9 +579,9 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
// 获取到满足条件的供应商 // 获取到满足条件的供应商
// 对有能力做这个单子厂家按照偏差因子排序 // 对有能力做这个单子厂家按照偏差因子排序
if (!ocList.isEmpty()) { if (!ocList.isEmpty()) {
List<YieldOrderAssignSteer> bsPlanAssignSteerList = assignSteerService.sortDataByFactor(ocList, hostCaId); List<PlanAssignSteer> bsPlanAssignSteerList = planAssignSteerService.sortDataByFactor(ocList, hostCaId);
CraftAbilityEntity craftAbility = iCraftAbilityService.getById(hostCaId); CraftAbilityEntity craftAbility = iCraftAbilityService.getById(hostCaId);
for (YieldOrderAssignSteer bsPlanAssignSteer : bsPlanAssignSteerList) { for (PlanAssignSteer bsPlanAssignSteer : bsPlanAssignSteerList) {
oemCustomer = oemService.getById(bsPlanAssignSteer.getOemId()); oemCustomer = oemService.getById(bsPlanAssignSteer.getOemId());
String oemCode = oemCustomer.getCode(); String oemCode = oemCustomer.getCode();

@ -785,6 +785,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
if (deliverablePlan.getStatus() > WorkPlan.STATUS_NO_START) { if (deliverablePlan.getStatus() > WorkPlan.STATUS_NO_START) {
return R.fail("外协第一道工序已接收!"); return R.fail("外协第一道工序已接收!");
} }
workOrderRun.setInCustomer(ocId);
workOrder.setOcId(ocId); workOrder.setOcId(ocId);
workOrderMapper.updateById(workOrder); workOrderMapper.updateById(workOrder);
workPlans.forEach(workPlan -> workPlan.setOcId(ocId)); workPlans.forEach(workPlan -> workPlan.setOcId(ocId));

Loading…
Cancel
Save