外协订单修改

liweidong
李涛 2 days ago
parent 6eb454e3c0
commit deb7fe64d2
  1. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrderRun.java
  2. 47
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java
  3. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java

@ -26,7 +26,7 @@ public class WorkOrderRun extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public WorkOrderRun(Long woId, String woCode, Short runType, Long outTeam, Long inTeam, Long outCustomer, public WorkOrderRun(Long woId, String woCode, Short runType, Long outTeam, Long inTeam, Long outCustomer,
Long inCustomer, String memo, Long approvalMan, String systemData, String collaborate) { Long inCustomer, String memo, Long approvalMan, String systemData, String collaborate, Short oemStatus) {
this.woId = woId; this.woId = woId;
this.woCode = woCode; this.woCode = woCode;
this.runType = runType; this.runType = runType;
@ -39,6 +39,7 @@ public class WorkOrderRun extends BaseEntity {
this.systemData = systemData; this.systemData = systemData;
this.collaborate = collaborate; this.collaborate = collaborate;
this.runStatus = RUN_STATUS_ISSUED; this.runStatus = RUN_STATUS_ISSUED;
this.oemStatus = oemStatus;
} }
public WorkOrderRun() { public WorkOrderRun() {

@ -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,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);
} }
}
/** /**
* 更新运行记录状态 * 更新运行记录状态

@ -2936,7 +2936,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
//产生外协生产进度记录信息 //产生外协生产进度记录信息
WorkOrderRun wr = new WorkOrderRun(workOrder.getId(), workOrder.getWoCode(), WorkOrderRun.RUN_TYPE_1, WorkOrderRun wr = new WorkOrderRun(workOrder.getId(), workOrder.getWoCode(), WorkOrderRun.RUN_TYPE_1,
null, null, null, prWorkPlan.getOcId(), "分派默认(厂外)", null, null, null, prWorkPlan.getOcId(), "分派默认(厂外)",
null, "1", "0"); null, "1", "0", WorkOrderRun.OEM_STATUS_IN);
workOrderRunService.save(wr); workOrderRunService.save(wr);
//更改订单调度员和计划员 //更改订单调度员和计划员
OemCraftAbilityEntity oa = oemCraftAbilityService.findBsOemAbility(prWorkPlan.getOcId(), prWorkPlan.getCaId()); OemCraftAbilityEntity oa = oemCraftAbilityService.findBsOemAbility(prWorkPlan.getOcId(), prWorkPlan.getCaId());
@ -2949,7 +2949,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
//产生车间运行记录信息 //产生车间运行记录信息
WorkOrderRun wr = new WorkOrderRun(workOrder.getId(), workOrder.getWoCode(), WorkOrderRun.RUN_TYPE_2, WorkOrderRun wr = new WorkOrderRun(workOrder.getId(), workOrder.getWoCode(), WorkOrderRun.RUN_TYPE_2,
null, prWorkPlan.getMakeTeam(), null, null, "分派默认(厂内)", null, prWorkPlan.getMakeTeam(), null, null, "分派默认(厂内)",
null, "1", "0"); null, "1", "0", null);
workOrderRunService.save(wr); workOrderRunService.save(wr);
//更改订单调度员和计划员 //更改订单调度员和计划员

Loading…
Cancel
Save