转外协审批修改

liweidong
李涛 3 days ago
parent 3d10787ee0
commit bb4425c45d
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java
  2. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java
  3. 34
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.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;
/**
* 检验颜色标识

@ -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<YieldOrderCraftM
private final IBsProcessSetService processSetService;
private final IBsTeamSetService teamSetService;
private final YieldOrderMapper yieldOrderMapper;
private final ICraftAbilityService iCraftAbilityService;
@Override
public IPage<YieldOrderCraft> selectPage(IPage<YieldOrderCraft> page, YieldOrderCraft entity) {
@ -539,6 +538,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
// 对有能力做这个单子厂家按照偏差因子排序
if (ocList != null && ocList.size() > 0) {
List<YieldOrderAssignSteer> 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<YieldOrderCraftM
}
}
if ("0".equals(craftAbility.getWtId())) {
aBoolean = true;
}
if (aBoolean) {
oemCustomer.setLimitType(limitType);
oemCustomer.setPartCodeYesOrNo(bool);

@ -60,6 +60,7 @@ import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
/**
* 车间订单运行记录表 服务实现类
@ -223,8 +224,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
wp.setUnqualifiedQty(0d);
wp.setStatus(WorkPlan.STATUS_NO_START);
workPlanMapper.updateById(wp);
WorkPlan frontWorkPlan = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>()
.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<WorkOrderRunMapper,
//新增状态:外协状态,转外协审批通过后,置为待外协
workOrderRun.setOemStatus(WorkOrderRun.OEM_STATUS_IN);
//调用转外协自动分派处理
List<YieldOrderCraft> yieldOrderCrafts = yieldOrderCraftService.listByYoId(yo.getId());
Map<String, YieldOrderCraft> 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<YieldOrderCraft> 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<WorkOrderRunMapper,
Long oemId = null;
Long craftAbilityId = null;
if (wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) {
WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>()
.eq(WorkPlan::getId, wp.getNextWpId()));
WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>().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<OemCraftAbilityEntity>().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<OemCraftAbilityEntity>().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<WorkOrderRunMapper,
}
//更新车间订单主责任单位
workOrderService.updateHostWorkUnit(wo);
workPlanMapper.updateById(wpList);
} else {
//转厂内业务
WorkPlan nextWorkPlan;

Loading…
Cancel
Save