|
|
|
|
@ -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; |
|
|
|
|
|