自动分派逻辑修改

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;
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<PlanAssignSteer> {
List<PlanAssignSteerExcel> exportPlanAssignSteer(@Param("ew") Wrapper<PlanAssignSteer> queryWrapper);
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
) b ON a.caId = b.caId
</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>

@ -43,4 +43,8 @@ public interface IPlanAssignSteerService extends BaseService<PlanAssignSteer> {
void setVOValue(PlanAssignSteerVO vo);
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;
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<PlanAssignSteerM
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 {

@ -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<YieldOrderCraftM
private final IWorkCenterService workCenterService;
private final IOemService oemService;
private final IOemCraftAbilityService oemCraftAbilityService;
private final IPlanAssignSteerService planAssignSteerService;
private final IBsCraftAbilityService craftAbilityService;
private final IBsAssignService assignService;
private final IYieldOrderDailyAssignService dailyAssignService;
@ -534,12 +530,12 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
List<Long> 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<YieldOrderCraftM
// 外协商
Oem oemCustomer = null;
// 首先根据零件号查询是否存在零件级的分派规则
YieldOrderAssignSteer planAssignSteer = assignSteerService.findByOcIdLstAndCaId(ocList, null, yieldOrder.getPartCode());
PlanAssignSteer planAssignSteer = planAssignSteerService.findByOcIdLstAndCaId(ocList, null, yieldOrder.getPartCode());
//用于标识匹配规则是按零件还是工艺能力
boolean bool = true;
if (planAssignSteer == null) {
@ -583,9 +579,9 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
// 获取到满足条件的供应商
// 对有能力做这个单子厂家按照偏差因子排序
if (!ocList.isEmpty()) {
List<YieldOrderAssignSteer> bsPlanAssignSteerList = assignSteerService.sortDataByFactor(ocList, hostCaId);
List<PlanAssignSteer> 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();

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

Loading…
Cancel
Save