生产订单,自动分派作业中心添加按厂内比例分派厂内厂外

liweidong
liuqingkun 3 weeks ago
parent 731ce49849
commit c5aef45e9c
  1. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/entity/BsCraftAbilityEntity.java
  2. 23
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java
  3. 3
      doc/sql/mes/increase-20690321.sql

@ -25,13 +25,12 @@
*/
package org.springblade.desk.dashboard.pojo.entity;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
@ -65,4 +64,10 @@ public class BsCraftAbilityEntity extends BaseEntity {
@Schema(description = "备注")
private String remarks;
/**
* 厂内应分比例
*/
@Schema(description = "厂内应分比例")
private Double inFactoryPercent;
}

@ -17,6 +17,7 @@ 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.dashboard.pojo.entity.BsCraftAbilityEntity;
import org.springblade.desk.dashboard.pojo.entity.BsWorkCenterEntity;
import org.springblade.desk.dashboard.service.IBsCraftAbilityService;
import org.springblade.desk.order.mapper.YieldOrderCraftMapper;
@ -82,6 +83,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
Set<Long> craftKeys = craftAbilityMap.keySet();
//获取到认定的主工艺能力(默认第一个工艺能力为主工艺能力)
Long hostAbilityId = craftKeys.iterator().next();
BsCraftAbilityEntity craftAbility = craftAbilityService.getById(hostAbilityId);
//获取可以做此主工艺能力的作业中心集合
Map<Long, BsWorkCenterEntity> workCenterMap = workCenterService.selectByAbility(hostAbilityId, yieldOrder.getYpQty(), yieldOrder.getYpArea(), yieldOrder.getPartCode(), yieldOrder.getPrimaryCraft(), yieldOrder.getYieldType(), rxlSpace);
//获取可以做此主工艺能力的外协商集合
@ -217,19 +219,12 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
rate = Double.valueOf(facTotalNum) / Double.valueOf(totalNum) * 100;
}
// TODO 根据工艺能力编码获取厂内应分比例
// BsDispatch dispatch = bsDispatchService.findByType(hostAbilityId, BsDispatch.D_TYPE_CLASS);
// if (dispatch == null) {
// // 获取厂内通用应分比列
// dispatch = bsDispatchService.findByType(null, BsDispatch.D_TYPE_FACTORY);
// }
//
// //如果厂内占比大于已经设置的比列,则直接分派外协
// if (rate <= Double.valueOf(dispatch.getdValue())) {
// log.info("{}自动分派按照比例分派给厂内:{},分派比例:{} 应分比例:{}", yieldOrder.getCardNo(),
// workCenter.getWcName(), rate, dispatch.getdValue());
// dispatchCraftList = this.bindWorkCenter(workCenter.getId(), workCenterMap, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null);
// }
// 如果厂内占比大于已经设置的比列,则直接分派外协
if (rate <= craftAbility.getInFactoryPercent()) {
log.info("{}自动分派按照比例分派给厂内:{},分派比例:{} 应分比例:{}", yieldOrder.getCardNo(),
workCenter.getWcName(), rate, craftAbility.getInFactoryPercent());
dispatchCraftList = this.bindWorkCenter(workCenter.getId(), workCenterMap, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null);
}
//如果匹配到了作业单位,则直接停止
if (dispatchCraftList != null && dispatchCraftList.size() > 0) {
@ -237,8 +232,6 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
}
// 外协
// log.info("{}自动分派按照比例分派给外协:{},分派比例:{} 应分比例:{}", yieldOrder.getCardNo(),
// oemCustomer.getOcName(), rate, dispatch.getdValue());
dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null);
}
} else {

@ -77,3 +77,6 @@ COMMENT ON COLUMN "MES_YIELD_ORDER_ASSIGN_STEER"."WEEK_ASSIGN" IS '周累计分
COMMENT ON COLUMN "MES_YIELD_ORDER_ASSIGN_STEER"."ASSIGN_SCALE" IS '分派比例';
COMMENT ON COLUMN "MES_YIELD_ORDER_ASSIGN_STEER"."FACTOR" IS '比例偏差因子';
COMMENT ON TABLE "MES_YIELD_ORDER_ASSIGN_STEER" IS '生产订单分派控制, 主要针对外协';
ALTER TABLE BS_CRAFT_ABILITY ADD IN_FACTORY_PERCENT NUMBER(10,2) NULL;
COMMENT ON COLUMN BS_CRAFT_ABILITY.IN_FACTORY_PERCENT IS '厂内应分比例';

Loading…
Cancel
Save