转外协审批修改

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 = "加工班组") @Schema(description = "加工班组")
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Long makeTeam; private Long makeTeam;
/** /**
* 是否外协 * 是否外协
@ -207,6 +208,7 @@ public class WorkPlan extends BaseEntity {
* *
*/ */
@Schema(description = "附属班组") @Schema(description = "附属班组")
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private Long subsidiaryTeam; 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.Oem;
import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity; import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity;
import org.springblade.desk.basic.pojo.entity.WorkCenter; import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.service.IBsAssignService; import org.springblade.desk.basic.service.*;
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.BsCraftAbilityEntity;
import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity;
import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity; 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.IYieldOrderAssignSteerService;
import org.springblade.desk.order.service.IYieldOrderCraftService; import org.springblade.desk.order.service.IYieldOrderCraftService;
import org.springblade.desk.order.service.IYieldOrderDailyAssignService; import org.springblade.desk.order.service.IYieldOrderDailyAssignService;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -63,6 +61,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
private final IBsProcessSetService processSetService; private final IBsProcessSetService processSetService;
private final IBsTeamSetService teamSetService; private final IBsTeamSetService teamSetService;
private final YieldOrderMapper yieldOrderMapper; private final YieldOrderMapper yieldOrderMapper;
private final ICraftAbilityService iCraftAbilityService;
@Override @Override
public IPage<YieldOrderCraft> selectPage(IPage<YieldOrderCraft> page, YieldOrderCraft entity) { 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) { if (ocList != null && ocList.size() > 0) {
List<YieldOrderAssignSteer> bsPlanAssignSteerList = assignSteerService.sortDataByFactor(ocList, hostCaId); List<YieldOrderAssignSteer> bsPlanAssignSteerList = assignSteerService.sortDataByFactor(ocList, hostCaId);
CraftAbilityEntity craftAbility = iCraftAbilityService.getById(hostCaId);
for (YieldOrderAssignSteer bsPlanAssignSteer : bsPlanAssignSteerList) { for (YieldOrderAssignSteer bsPlanAssignSteer : bsPlanAssignSteerList) {
oemCustomer = oemService.getById(bsPlanAssignSteer.getOemId()); oemCustomer = oemService.getById(bsPlanAssignSteer.getOemId());
String oemCode = oemCustomer.getCode(); String oemCode = oemCustomer.getCode();
@ -556,6 +556,10 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
} }
} }
if ("0".equals(craftAbility.getWtId())) {
aBoolean = true;
}
if (aBoolean) { if (aBoolean) {
oemCustomer.setLimitType(limitType); oemCustomer.setLimitType(limitType);
oemCustomer.setPartCodeYesOrNo(bool); oemCustomer.setPartCodeYesOrNo(bool);

@ -60,6 +60,7 @@ import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 车间订单运行记录表 服务实现类 * 车间订单运行记录表 服务实现类
@ -223,8 +224,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
wp.setUnqualifiedQty(0d); wp.setUnqualifiedQty(0d);
wp.setStatus(WorkPlan.STATUS_NO_START); wp.setStatus(WorkPlan.STATUS_NO_START);
workPlanMapper.updateById(wp); workPlanMapper.updateById(wp);
WorkPlan frontWorkPlan = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>() WorkPlan frontWorkPlan = workPlanMapper.selectById(wp.getFrontWpId());
.eq(WorkPlan::getFrontWpId, wp.getId()));
if (frontWorkPlan != null) { if (frontWorkPlan != null) {
// 还原上序 // 还原上序
frontWorkPlan.setStatus(WorkPlan.STATUS_WORK_OK); frontWorkPlan.setStatus(WorkPlan.STATUS_WORK_OK);
@ -278,14 +278,19 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
//新增状态:外协状态,转外协审批通过后,置为待外协 //新增状态:外协状态,转外协审批通过后,置为待外协
workOrderRun.setOemStatus(WorkOrderRun.OEM_STATUS_IN); 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()) { if (!wpList.isEmpty()) {
//判断工序是否存在外协商,如果存在不进行二次分派 //判断工序是否存在外协商,如果存在不进行二次分派
WorkPlan workPlan = workPlanMapper.selectById(wprList.get(0).getWpId()); WorkPlan workPlan = workPlanMapper.selectById(wprList.get(0).getWpId());
if (workPlan.getOcId() == null || workPlan.getOcId() < 1 ) { if (workPlan.getOcId() == null || workPlan.getOcId() < 1 ) {
//自动分派 //自动分派
List<YieldOrderCraft> yieldOrderCrafts = yieldOrderCraftService.listByYoId(yo.getId());
yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yo, Boolean.FALSE, null); yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yo, Boolean.FALSE, null);
} }
for (WorkPlan plan : wpList) {
YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(plan.getOrders());
plan.setOcId(yieldOrderCraft.getOcId());
}
} }
int days = 5; int days = 5;
wo.setOemOut("0"); wo.setOemOut("0");
@ -306,28 +311,21 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
Long oemId = null; Long oemId = null;
Long craftAbilityId = null; Long craftAbilityId = null;
if (wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) { if (wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) {
WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>() WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>().eq(WorkPlan::getId, wp.getNextWpId()));
.eq(WorkPlan::getId, wp.getNextWpId()));
if (nextWp != null) { if (nextWp != null) {
oemId = nextWp.getOcId(); YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(nextWp.getOrders());
craftAbilityId = nextWp.getCaId(); oemId = yieldOrderCraft.getOcId();
craftAbilityId = yieldOrderCraft.getCaId();
oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper<OemCraftAbilityEntity>().eq(OemCraftAbilityEntity::getOtherId, oemId) oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper<OemCraftAbilityEntity>().eq(OemCraftAbilityEntity::getOtherId, oemId)
.eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId)); .eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId));
} }
} else { } else {
oemId = wp.getOcId(); YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(wp.getOrders());
craftAbilityId = wp.getCaId(); oemId = yieldOrderCraft.getOcId();
craftAbilityId = yieldOrderCraft.getCaId();
oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper<OemCraftAbilityEntity>().eq(OemCraftAbilityEntity::getOtherId, oemId) oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper<OemCraftAbilityEntity>().eq(OemCraftAbilityEntity::getOtherId, oemId)
.eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId)); .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); workOrderService.maintainOrder(wo, oa.getPlanner(), oa.getDispatcher(), workOrderRun, true);
} }
Date date = DateUtil.plusDays(wo.getSendDownTime(), days); Date date = DateUtil.plusDays(wo.getSendDownTime(), days);
@ -343,7 +341,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
} }
//更新车间订单主责任单位 //更新车间订单主责任单位
workOrderService.updateHostWorkUnit(wo); workOrderService.updateHostWorkUnit(wo);
workPlanMapper.updateById(wpList);
} else { } else {
//转厂内业务 //转厂内业务
WorkPlan nextWorkPlan; WorkPlan nextWorkPlan;

Loading…
Cancel
Save