|
|
|
@ -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; |
|
|
|
@ -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,15 +926,11 @@ 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()) { |
|
|
|
|
|
|
|
List<Long> wpIds = wprList.stream().map(WorkPlanRun::getWpId).collect(Collectors.toList()); |
|
|
|
|
|
|
|
List<WorkPlan> oemPlans = workPlanMapper.selectList( |
|
|
|
|
|
|
|
new LambdaQueryWrapper<WorkPlan>().in(WorkPlan::getId, wpIds)); |
|
|
|
|
|
|
|
for (WorkPlan wp : oemPlans) { |
|
|
|
for (WorkPlan wp : oemPlans) { |
|
|
|
wp.setStatus(WorkPlan.STATUS_WORK_OK); |
|
|
|
wp.setStatus(WorkPlan.STATUS_COMPLETE); |
|
|
|
wp.setFactStartTime(startTime); |
|
|
|
wp.setFactStartTime(startTime); |
|
|
|
wp.setFactEndTime(endTime); |
|
|
|
wp.setFactEndTime(endTime); |
|
|
|
wp.setWorkQty(workOrder.getMakeQty()); |
|
|
|
wp.setWorkQty(workOrder.getMakeQty()); |
|
|
|
@ -946,7 +938,6 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
} |
|
|
|
} |
|
|
|
workPlanMapper.updateById(oemPlans); |
|
|
|
workPlanMapper.updateById(oemPlans); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 更新运行记录状态 |
|
|
|
* 更新运行记录状态 |
|
|
|
|