|
|
|
@ -3,6 +3,7 @@ package org.springblade.desk.produce.service.impl; |
|
|
|
import com.alibaba.excel.util.StringUtils; |
|
|
|
import com.alibaba.excel.util.StringUtils; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import jakarta.annotation.Resource; |
|
|
|
import jakarta.annotation.Resource; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import net.sourceforge.barbecue.Barcode; |
|
|
|
import net.sourceforge.barbecue.Barcode; |
|
|
|
@ -339,7 +340,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
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) { |
|
|
|
//自动分派
|
|
|
|
//自动分派
|
|
|
|
yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yo, Boolean.FALSE, null); |
|
|
|
yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yo, Boolean.FALSE, null); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -391,7 +392,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
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); |
|
|
|
wo.setPlanEndDate(DateUtil.format(date,DateUtil.PATTERN_DATETIME)); |
|
|
|
wo.setPlanEndDate(DateUtil.format(date, DateUtil.PATTERN_DATETIME)); |
|
|
|
|
|
|
|
|
|
|
|
//如果当前工序已经报工完成,运行记录的转出供应商取下道工序的加工外协商,反之取当前
|
|
|
|
//如果当前工序已经报工完成,运行记录的转出供应商取下道工序的加工外协商,反之取当前
|
|
|
|
if (wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) { |
|
|
|
if (wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) { |
|
|
|
@ -506,7 +507,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
//加工周期(热表)+
|
|
|
|
//加工周期(热表)+
|
|
|
|
int days = ProcessCycleEnum.BC_TYPE_CYCLE_HEAT.getValue(); |
|
|
|
int days = ProcessCycleEnum.BC_TYPE_CYCLE_HEAT.getValue(); |
|
|
|
Date date = DateUtil.plusDays(wo.getSendDownTime(), days); |
|
|
|
Date date = DateUtil.plusDays(wo.getSendDownTime(), days); |
|
|
|
wo.setPlanEndDate(DateUtil.format(date,DateUtil.PATTERN_DATETIME)); |
|
|
|
wo.setPlanEndDate(DateUtil.format(date, DateUtil.PATTERN_DATETIME)); |
|
|
|
// 转厂内审批通过,清除是否外协和外协商
|
|
|
|
// 转厂内审批通过,清除是否外协和外协商
|
|
|
|
wo.setOem("0"); |
|
|
|
wo.setOem("0"); |
|
|
|
wo.setOcId(null); |
|
|
|
wo.setOcId(null); |
|
|
|
@ -576,8 +577,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
if (workPlan.getStatus() == 3) { |
|
|
|
if (workPlan.getStatus() == 3) { |
|
|
|
// 更新下一道工序
|
|
|
|
// 更新下一道工序
|
|
|
|
if (workPlan.getNextWpId() != null) { |
|
|
|
if (workPlan.getNextWpId() != null) { |
|
|
|
WorkPlan nextPlan = new WorkPlan(); |
|
|
|
WorkPlan nextPlan = workPlanMapper.selectById(workPlan.getNextWpId()); |
|
|
|
nextPlan.setId(workPlan.getNextWpId()); |
|
|
|
|
|
|
|
nextPlan.setFactStartTime(date); |
|
|
|
nextPlan.setFactStartTime(date); |
|
|
|
nextPlan.setStatus(WorkPlan.STATUS_START); |
|
|
|
nextPlan.setStatus(WorkPlan.STATUS_START); |
|
|
|
nextPlan.setWxNo(wxCode); |
|
|
|
nextPlan.setWxNo(wxCode); |
|
|
|
@ -585,23 +585,19 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 更新当前工序为完成
|
|
|
|
// 更新当前工序为完成
|
|
|
|
WorkPlan currentPlan = new WorkPlan(); |
|
|
|
workPlan.setFactEndTime(date); |
|
|
|
currentPlan.setId(workPlan.getId()); |
|
|
|
workPlan.setStatus(WorkPlan.STATUS_COMPLETE); |
|
|
|
currentPlan.setFactEndTime(date); |
|
|
|
workPlan.setWxNo(wxCode); |
|
|
|
currentPlan.setStatus(WorkPlan.STATUS_COMPLETE); |
|
|
|
workPlanMapper.updateById(workPlan); |
|
|
|
currentPlan.setWxNo(wxCode); |
|
|
|
|
|
|
|
workPlanMapper.updateById(currentPlan); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 更新订单当前工序
|
|
|
|
// 更新订单当前工序
|
|
|
|
workOrder.setWpId(workPlan.getNextWpId()); |
|
|
|
workOrder.setWpId(workPlan.getNextWpId()); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
// 更新当前工序为进行中
|
|
|
|
// 更新当前工序为进行中
|
|
|
|
WorkPlan currentPlan = new WorkPlan(); |
|
|
|
workPlan.setFactStartTime(date); |
|
|
|
currentPlan.setId(workPlan.getId()); |
|
|
|
workPlan.setStatus(WorkPlan.STATUS_START); |
|
|
|
currentPlan.setFactStartTime(date); |
|
|
|
workPlan.setWxNo(wxCode); |
|
|
|
currentPlan.setStatus(WorkPlan.STATUS_START); |
|
|
|
workPlanMapper.updateById(workPlan); |
|
|
|
currentPlan.setWxNo(wxCode); |
|
|
|
|
|
|
|
workPlanMapper.updateById(currentPlan); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
workOrder.setOemOut(String.valueOf(1)); |
|
|
|
workOrder.setOemOut(String.valueOf(1)); |
|
|
|
@ -641,7 +637,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
} |
|
|
|
} |
|
|
|
// 首道工序 → 生产订单状态设为加工中
|
|
|
|
// 首道工序 → 生产订单状态设为加工中
|
|
|
|
if (wp.getFrontWpId() == null) { |
|
|
|
if (wp.getFrontWpId() == null) { |
|
|
|
yo.setStatus(5); |
|
|
|
yo.setStatus(YieldOrderEnum.STATUS_PROCESSING.getCode()); |
|
|
|
yieldOrderMapper.updateById(yo); |
|
|
|
yieldOrderMapper.updateById(yo); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -910,7 +906,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
throw new ServiceException("车间订单已交接,无法再次收回"); |
|
|
|
throw new ServiceException("车间订单已交接,无法再次收回"); |
|
|
|
} |
|
|
|
} |
|
|
|
workOrder.setWpId(deliverablePlan.getId()); |
|
|
|
workOrder.setWpId(deliverablePlan.getId()); |
|
|
|
workOrder.setRunStatus(3); // 加工中
|
|
|
|
workOrder.setRunStatus(WorkOrder.RUN_STATUS_RECEIVE); // 加工中
|
|
|
|
workOrder.setMakeQty(workOrder.getMakeQty() - scrapQty - testQty); |
|
|
|
workOrder.setMakeQty(workOrder.getMakeQty() - scrapQty - testQty); |
|
|
|
workOrder.setScrapQty(workOrder.getScrapQty() + scrapQty); |
|
|
|
workOrder.setScrapQty(workOrder.getScrapQty() + scrapQty); |
|
|
|
workOrder.setTestQty(workOrder.getTestQty() + testQty); |
|
|
|
workOrder.setTestQty(workOrder.getTestQty() + testQty); |
|
|
|
@ -930,22 +926,17 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
WorkOrderRun workOrderRun, WorkOrder workOrder, |
|
|
|
WorkOrderRun workOrderRun, WorkOrder workOrder, |
|
|
|
Date startTime, Date endTime) { |
|
|
|
Date startTime, Date endTime) { |
|
|
|
// 将本次外协的全部工序报工完成
|
|
|
|
// 将本次外协的全部工序报工完成
|
|
|
|
List<WorkPlanRun> wprList = workPlanRunMapper.selectList( |
|
|
|
List<WorkPlan> oemPlans = workPlanMapper.selectList(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getOem, "1") |
|
|
|
new LambdaQueryWrapper<WorkPlanRun>() |
|
|
|
.eq(WorkPlan::getWoId, deliverablePlan.getWoId()).lt(WorkPlan::getStatus, WorkPlan.STATUS_WORK_OK) |
|
|
|
.eq(WorkPlanRun::getWorId, workOrderRun.getId())); |
|
|
|
.lt(WorkPlan::getOrders, deliverablePlan.getOrders())); |
|
|
|
if (!wprList.isEmpty()) { |
|
|
|
for (WorkPlan wp : oemPlans) { |
|
|
|
List<Long> wpIds = wprList.stream().map(WorkPlanRun::getWpId).collect(Collectors.toList()); |
|
|
|
wp.setStatus(WorkPlan.STATUS_COMPLETE); |
|
|
|
List<WorkPlan> oemPlans = workPlanMapper.selectList( |
|
|
|
wp.setFactStartTime(startTime); |
|
|
|
new LambdaQueryWrapper<WorkPlan>().in(WorkPlan::getId, wpIds)); |
|
|
|
wp.setFactEndTime(endTime); |
|
|
|
for (WorkPlan wp : oemPlans) { |
|
|
|
wp.setWorkQty(workOrder.getMakeQty()); |
|
|
|
wp.setStatus(WorkPlan.STATUS_WORK_OK); |
|
|
|
wp.setQualifiedQty(workOrder.getMakeQty()); |
|
|
|
wp.setFactStartTime(startTime); |
|
|
|
|
|
|
|
wp.setFactEndTime(endTime); |
|
|
|
|
|
|
|
wp.setWorkQty(workOrder.getMakeQty()); |
|
|
|
|
|
|
|
wp.setQualifiedQty(workOrder.getMakeQty()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
workPlanMapper.updateById(oemPlans); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
workPlanMapper.updateById(oemPlans); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
|