|
|
|
|
@ -4,22 +4,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import jakarta.annotation.Resource; |
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
import org.apache.ibatis.executor.BatchResult; |
|
|
|
|
import org.springblade.common.exception.BusinessException; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.core.tool.utils.DateUtil; |
|
|
|
|
import org.springblade.core.tool.utils.StringUtil; |
|
|
|
|
import org.springblade.desk.basic.mapper.OemCraftAbilityMapper; |
|
|
|
|
import org.springblade.desk.basic.mapper.OemMapper; |
|
|
|
|
import org.springblade.desk.basic.mapper.TeamSetMapper; |
|
|
|
|
import org.springblade.desk.basic.pojo.entity.Oem; |
|
|
|
|
import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity; |
|
|
|
|
import org.springblade.desk.basic.pojo.entity.TeamSet; |
|
|
|
|
import org.springblade.desk.dashboard.mapper.BsProcessSetMapper; |
|
|
|
|
import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; |
|
|
|
|
import org.springblade.desk.dashboard.utils.DateUtils; |
|
|
|
|
import org.springblade.desk.oem.pojo.request.OemApproval; |
|
|
|
|
import org.springblade.desk.oem.pojo.request.OemApprovalQuery; |
|
|
|
|
import org.springblade.desk.oem.pojo.request.OemOrderQuery; |
|
|
|
|
import org.springblade.desk.oem.pojo.request.OemTakeBack; |
|
|
|
|
import org.springblade.desk.oem.pojo.request.*; |
|
|
|
|
import org.springblade.desk.oem.pojo.vo.MaterialRequisitionVO; |
|
|
|
|
import org.springblade.desk.oem.pojo.vo.OemApprovalVO; |
|
|
|
|
import org.springblade.desk.oem.pojo.vo.OemOrderVO; |
|
|
|
|
import org.springblade.desk.order.mapper.YieldOrderMapper; |
|
|
|
|
@ -27,9 +28,12 @@ import org.springblade.desk.order.pojo.entity.YieldOrder; |
|
|
|
|
import org.springblade.desk.order.pojo.enums.YieldOrderEnum; |
|
|
|
|
import org.springblade.desk.produce.mapper.*; |
|
|
|
|
import org.springblade.desk.produce.pojo.entity.*; |
|
|
|
|
import org.springblade.desk.produce.service.IPlateAroundService; |
|
|
|
|
import org.springblade.desk.produce.service.IWorkOrderRunService; |
|
|
|
|
import org.springblade.scheduling.pojo.entity.YieldOrderEntity; |
|
|
|
|
import org.springblade.system.cache.UserCache; |
|
|
|
|
import org.springblade.desk.produce.service.IWorkOrderService; |
|
|
|
|
import org.springblade.system.cache.DictCache; |
|
|
|
|
import org.springblade.system.pojo.enums.DictEnum; |
|
|
|
|
import org.springframework.context.annotation.Lazy; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
@ -41,7 +45,6 @@ import java.util.ArrayList; |
|
|
|
|
import java.util.Comparator; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 车间订单运行记录表 服务实现类 |
|
|
|
|
@ -52,32 +55,41 @@ import java.util.stream.Collectors; |
|
|
|
|
@RequiredArgsConstructor |
|
|
|
|
public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, WorkOrderRun> implements IWorkOrderRunService { |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private WorkOrderRunMapper workOrderRunMapper; |
|
|
|
|
private final WorkOrderRunMapper workOrderRunMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private WorkOrderMapper workOrderMapper; |
|
|
|
|
private final WorkOrderMapper workOrderMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private WorkPlanMapper workPlanMapper; |
|
|
|
|
private final WorkPlanMapper workPlanMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private WorkPlanRunMapper workPlanRunMapper; |
|
|
|
|
private final WorkPlanRunMapper workPlanRunMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private PlateAroundMapper plateAroundMapper; |
|
|
|
|
private final PlateAroundMapper plateAroundMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private YieldOrderMapper yieldOrderMapper; |
|
|
|
|
private final YieldOrderMapper yieldOrderMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private OemMapper oemMapper; |
|
|
|
|
private final OemMapper oemMapper; |
|
|
|
|
|
|
|
|
|
private final BsProcessSetMapper processSetMapper; |
|
|
|
|
|
|
|
|
|
private final TeamSetMapper teamSetMapper; |
|
|
|
|
|
|
|
|
|
private final OemCraftAbilityMapper oemCraftAbilityMapper; |
|
|
|
|
|
|
|
|
|
private IPlateAroundService plateAroundService; |
|
|
|
|
|
|
|
|
|
private IWorkOrderService workOrderService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private BsProcessSetMapper processSetMapper; |
|
|
|
|
@Lazy |
|
|
|
|
private void setPostHandleService(IPlateAroundService plateAroundService) { |
|
|
|
|
this.plateAroundService = plateAroundService; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private TeamSetMapper teamSetMapper; |
|
|
|
|
@Lazy |
|
|
|
|
private void setWorkOrderService(IWorkOrderService workOrderService) { |
|
|
|
|
this.workOrderService = workOrderService; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
@Override |
|
|
|
|
@ -113,7 +125,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
@Override |
|
|
|
|
public R approval(OemApproval oemApproval) throws Exception { |
|
|
|
|
/*WorkOrderRun workOrderRun = workOrderRunMapper.selectById(oemApproval.getWorkOrderRunId()); |
|
|
|
|
WorkOrderRun workOrderRun = workOrderRunMapper.selectById(oemApproval.getWorkOrderRunId()); |
|
|
|
|
WorkOrder wo = workOrderMapper.selectById(workOrderRun.getWoId()); |
|
|
|
|
YieldOrder yo = yieldOrderMapper.selectById(wo.getYoId()); |
|
|
|
|
workOrderRun.setApprovalMan(AuthUtil.getUser() != null ? AuthUtil.getUser().getUserId() : 1); |
|
|
|
|
@ -176,11 +188,11 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
|
} |
|
|
|
|
wp1.setMakeTeam(null); |
|
|
|
|
wp1.setSubsidiaryTeam(null); |
|
|
|
|
wp1.setStartTime(LocalDateTime.ofInstant( |
|
|
|
|
wp1.setPlanStartTime(LocalDateTime.ofInstant( |
|
|
|
|
wpr.getStartTime().toInstant(), |
|
|
|
|
ZoneId.systemDefault() |
|
|
|
|
)); |
|
|
|
|
wp1.setEndTime(LocalDateTime.ofInstant( |
|
|
|
|
wp1.setPlanEndTime(LocalDateTime.ofInstant( |
|
|
|
|
wpr.getEndTime().toInstant(), |
|
|
|
|
ZoneId.systemDefault() |
|
|
|
|
)); |
|
|
|
|
@ -197,49 +209,53 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
|
WorkPlan workPlan = workPlanMapper.selectById(wprList.get(0).getWpId()); |
|
|
|
|
if (workPlan.getOcId() == null || workPlan.getOcId() < 1 ) { |
|
|
|
|
//todo 自动分派后续补充
|
|
|
|
|
pjAutomaticDispatchService.runAutomaticDispatch(wpList, yo, Boolean.FALSE, null); |
|
|
|
|
// pjAutomaticDispatchService.runAutomaticDispatch(wpList, yo, Boolean.FALSE, null);
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
int days = 0; |
|
|
|
|
int days = 5; |
|
|
|
|
wo.setOemOut("0"); |
|
|
|
|
if (workOrderRun.getCollaborate() != null && workOrderRun.getCollaborate().equalsIgnoreCase("1")) { |
|
|
|
|
wo.setOemType(WorkOrder.OEM_TYPE_SINGLE); |
|
|
|
|
//todo 加工周期(协作)+
|
|
|
|
|
days = Integer.valueOf(bsBusConfigService.getBusConfig(BsBusConfig.BC_TYPE_CYCLE_HELP, BsBusConfig.BC_NAME_CYCLE_HELP).getBcValue()); |
|
|
|
|
//加工周期(协作)+
|
|
|
|
|
if (StringUtil.isNotBlank(DictCache.getValue(DictEnum.PROCESS_CYCLE, WorkOrder.OEM_TYPE_SINGLE))) { |
|
|
|
|
days = Integer.valueOf(DictCache.getValue(DictEnum.PROCESS_CYCLE, WorkOrder.OEM_TYPE_SINGLE)); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
wo.setOemType(WorkOrder.OEM_TYPE_WHOLE); |
|
|
|
|
//todo 加工周期(外协)+
|
|
|
|
|
days = Integer.valueOf(bsBusConfigService.getBusConfig(BsBusConfig.BC_TYPE_CYCLE_OEM, BsBusConfig.BC_NAME_CYCLE_OEM).getBcValue()); |
|
|
|
|
//todo 缺少外协工艺表
|
|
|
|
|
OemAbility oa = null; |
|
|
|
|
if (wo.getWorkPlan().getStatus().equals(WorkPlan.STATUS_WORK_OK)) { |
|
|
|
|
oa = bsOemAbilityService.findBsOemAbility(wo.getNextBsOemCustomer().getOcId(), |
|
|
|
|
wo.getWorkPlan().getNextWorkPlan().getBsCraftAbility().getCaId()); |
|
|
|
|
//加工周期(外协)+
|
|
|
|
|
if (StringUtil.isNotBlank(DictCache.getValue(DictEnum.PROCESS_CYCLE, WorkOrder.OEM_TYPE_WHOLE))) { |
|
|
|
|
days = Integer.valueOf(DictCache.getValue(DictEnum.PROCESS_CYCLE, WorkOrder.OEM_TYPE_WHOLE)); |
|
|
|
|
} |
|
|
|
|
//根据外协工艺更新车间订单信息
|
|
|
|
|
OemCraftAbilityEntity oa = null; |
|
|
|
|
if (wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) { |
|
|
|
|
WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>() |
|
|
|
|
.eq(WorkPlan::getId, wp.getNextWpId())); |
|
|
|
|
oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper<OemCraftAbilityEntity>().eq(OemCraftAbilityEntity::getOtherId, nextWp.getOcId()) |
|
|
|
|
.eq(OemCraftAbilityEntity::getCraftAbilityId, nextWp.getCaId())); |
|
|
|
|
} else { |
|
|
|
|
oa = bsOemAbilityService.findBsOemAbility(wo.getWorkPlan().getOemCustomer().getOcId(), |
|
|
|
|
wo.getWorkPlan().getBsCraftAbility().getCaId()); |
|
|
|
|
oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper<OemCraftAbilityEntity>().eq(OemCraftAbilityEntity::getOtherId, wp.getOcId()) |
|
|
|
|
.eq(OemCraftAbilityEntity::getCraftAbilityId, wp.getCaId())); |
|
|
|
|
} |
|
|
|
|
//todo 缺少业务配置表
|
|
|
|
|
prWorkOrderService.maintainOrder(wo, oa.getPlanner(), oa.getDispatcher(), workOrderRun, true); |
|
|
|
|
//更改订单调度员和计划员
|
|
|
|
|
workOrderService.maintainOrder(wo, oa.getPlanner(), oa.getDispatcher(), workOrderRun, true); |
|
|
|
|
} |
|
|
|
|
Date date = DateUtil.plusDays(wo.getSendDownTime(), days); |
|
|
|
|
wo.setPlanEndDate(DateUtil.format(date,DateUtil.PATTERN_DATETIME)); |
|
|
|
|
|
|
|
|
|
//如果当前工序已经报工完成,运行记录的转出供应商取下道工序的加工外协商,反之取当前
|
|
|
|
|
if (wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) { |
|
|
|
|
oemMapper.selectById(wp.getNextWpId()); |
|
|
|
|
WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>() |
|
|
|
|
.eq(WorkPlan::getId, wp.getNextWpId())); |
|
|
|
|
workOrderRun.setInCustomer(nextWp.getOcId()); |
|
|
|
|
} else { |
|
|
|
|
workOrderRun.setInCustomer(wp.getOcId()); |
|
|
|
|
} |
|
|
|
|
//todo 缺少外协工艺表 更新车间订单主责任单位
|
|
|
|
|
prWorkOrderService.updateHostWorkUnit(wo.getId()); |
|
|
|
|
//todo 更新车间订单主责任单位
|
|
|
|
|
// prWorkOrderService.updateHostWorkUnit(wo.getId());
|
|
|
|
|
|
|
|
|
|
//转厂内业务
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
//转厂内业务
|
|
|
|
|
WorkPlan nextWorkPlan; |
|
|
|
|
TeamSet teamSet = null; |
|
|
|
|
for (WorkPlanRun wpr : wprList) { |
|
|
|
|
@ -259,10 +275,10 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
|
} |
|
|
|
|
wp.setMakeTeam(teamSet.getId()); |
|
|
|
|
wp.setOem(null); |
|
|
|
|
wp.setStartTime(null); |
|
|
|
|
wp.setPlanStartTime(null); |
|
|
|
|
wp.setUnqualifiedQty(0); |
|
|
|
|
wp.setWorkQty(0d); |
|
|
|
|
wp.setEndTime(null); |
|
|
|
|
wp.setPlanEndTime(null); |
|
|
|
|
wp.setSubsidiaryTeam(null); |
|
|
|
|
wp.setOem("0"); |
|
|
|
|
wp.setCaId(wpr.getCaId()); |
|
|
|
|
@ -270,7 +286,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (wpList == null || wpList.size() == 0) { |
|
|
|
|
throw new BusinessException("product.notTurnBackProcess", null); |
|
|
|
|
throw new Exception("product.notTurnBackProcess", null); |
|
|
|
|
} |
|
|
|
|
wo.setWorId(workOrderRun.getId()); |
|
|
|
|
workOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_ISSUED); |
|
|
|
|
@ -278,19 +294,19 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
|
if (teamSet == null) { |
|
|
|
|
//调用转外协自动分派处理
|
|
|
|
|
//todo 自动分派后续补充
|
|
|
|
|
pjAutomaticDispatchService.runAutomaticDispatch(wpList, yo, Boolean.TRUE, null); |
|
|
|
|
// pjAutomaticDispatchService.runAutomaticDispatch(wpList, yo, Boolean.TRUE, null);
|
|
|
|
|
//周新昊 20241015 增加调用下方方法
|
|
|
|
|
//处理包装工序 并且工艺能力包含 包装 并且加工单位为空的
|
|
|
|
|
//todo 手持移动端数据查询接口类未实现
|
|
|
|
|
pdaLoadService.handleBaoZhuangWorkPlan(wpList, yo); |
|
|
|
|
// pdaLoadService.handleBaoZhuangWorkPlan(wpList, yo);
|
|
|
|
|
} else { |
|
|
|
|
PlateAround prPlateAround = new PlateAround(); |
|
|
|
|
prPlateAround.setWpId(wo.getWpId()); |
|
|
|
|
prPlateAround.setOcId(wo.getOcId()); |
|
|
|
|
prPlateAround.setCurStatus(PlateAround.BEFORE_PLAT_IN); |
|
|
|
|
prPlateAround.setQuantity(wo.getMakeQty()); |
|
|
|
|
//todo 创建更新镀前镀后对象班组和供应商未实现
|
|
|
|
|
prPlateAroundService.createPlateAround(workOrderRun.getCreateUser(), prPlateAround, PlateAround.BEFORE_PLAT_IN, 1, true); |
|
|
|
|
//创建镀前入库对象,班组和供应商为空
|
|
|
|
|
plateAroundService.createPlateAround(workOrderRun.getCreateUser(), prPlateAround, PlateAround.BEFORE_PLAT_IN, 1, true); |
|
|
|
|
} |
|
|
|
|
// 如果主工序班组为空后者外协
|
|
|
|
|
if (wo.getOcId() != null || wo.getTsId() == null) { |
|
|
|
|
@ -307,22 +323,23 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
|
} |
|
|
|
|
wo.setOemType(Integer.valueOf("-1")); |
|
|
|
|
//todo 加工周期(热表)+
|
|
|
|
|
int days = Integer.valueOf(bsBusConfigService.getBusConfig(BsBusConfig.BC_TYPE_CYCLE_HEAT, BsBusConfig.BC_NAME_CYCLE_HEAT).getBcValue()); |
|
|
|
|
// int days = Integer.valueOf(bsBusConfigService.getBusConfig(BsBusConfig.BC_TYPE_CYCLE_HEAT, BsBusConfig.BC_NAME_CYCLE_HEAT).getBcValue());
|
|
|
|
|
int days = 5; |
|
|
|
|
Date date = DateUtil.plusDays(wo.getSendDownTime(), days); |
|
|
|
|
wo.setPlanEndDate(DateUtil.format(date,DateUtil.PATTERN_DATETIME)); |
|
|
|
|
workOrderMapper.updateById(wo); |
|
|
|
|
|
|
|
|
|
wo = workOrderMapper.selectById(wo.getId()); |
|
|
|
|
|
|
|
|
|
//todo 缺少业务配置表
|
|
|
|
|
prWorkOrderService.maintainOrder(wo, wo.getMakeTeam().getPlanner(), wo.getMakeTeam().getDispatcher(), workOrderRun, false); |
|
|
|
|
//todo 更改订单调度员和计划员
|
|
|
|
|
// prWorkOrderService.maintainOrder(wo, wo.getMakeTeam().getPlanner(), wo.getMakeTeam().getDispatcher(), workOrderRun, false);
|
|
|
|
|
//更新车间订单主责任单位
|
|
|
|
|
//todo 缺少外协工艺表 更新车间订单主责任单位
|
|
|
|
|
prWorkOrderService.updateHostWorkUnit(wo.getId()); |
|
|
|
|
//todo 更新车间订单主责任单位
|
|
|
|
|
// prWorkOrderService.updateHostWorkUnit(wo.getId());
|
|
|
|
|
|
|
|
|
|
//todo 关闭erp外协订单,程序调用存储过程
|
|
|
|
|
if (!yo.getManualIncrease()) { |
|
|
|
|
workOrderRunMapper.closeErpOrder(wxCode, workOrderRun.getApprovalMemo()); |
|
|
|
|
// workOrderRunMapper.closeErpOrder(wxCode, workOrderRun.getApprovalMemo());
|
|
|
|
|
} |
|
|
|
|
//是否存在外协工序
|
|
|
|
|
List<WorkPlan> workPlans = workPlanMapper.selectList(new LambdaQueryWrapper<WorkPlan>() |
|
|
|
|
@ -344,23 +361,72 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
|
} |
|
|
|
|
} else if (WorkOrderRun.RUN_TYPE_3.equals(workOrderRun.getRunType())) { |
|
|
|
|
//验证同工单下的车间订单
|
|
|
|
|
this.validateSameYield(yo.getId()); |
|
|
|
|
// this.validateSameYield(yo.getId());
|
|
|
|
|
//处理同订单
|
|
|
|
|
this.withYield(yo.getId()); |
|
|
|
|
// this.withYield(yo.getId());
|
|
|
|
|
//生产订单接收
|
|
|
|
|
yo.setReceiveStatus(YieldOrder.CUR_STATUS_NORMAL); |
|
|
|
|
////todo 关闭erp外协订单,程序调用存储过程
|
|
|
|
|
//todo 关闭erp外协订单,程序调用存储过程
|
|
|
|
|
if (!yo.getManualIncrease() && oldOemCustomer != null) { |
|
|
|
|
workOrderRunMapper.closeErpOrder(wxCode, workOrderRun.getApprovalMemo()); |
|
|
|
|
// workOrderRunMapper.closeErpOrder(wxCode, workOrderRun.getApprovalMemo());
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
wo.setApprovalStatus(WorkOrder.APPROVAL_STATUS_FAIL); |
|
|
|
|
workOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_FAIL); |
|
|
|
|
}*/ |
|
|
|
|
} |
|
|
|
|
workOrderMapper.updateById(wo); |
|
|
|
|
baseMapper.updateById(workOrderRun); |
|
|
|
|
yieldOrderMapper.updateById(yo); |
|
|
|
|
return R.success("操作完成"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
@Override |
|
|
|
|
public R changeOemManufacturer(Long worId, Long ocId) { |
|
|
|
|
//1.在外协第一道工序还未接收可更改厂商
|
|
|
|
|
//获取运行信息
|
|
|
|
|
WorkOrderRun workOrderRun = workOrderRunMapper.selectById(worId); |
|
|
|
|
if (null == workOrderRun) { |
|
|
|
|
return R.fail("未找到相关外协订单"); |
|
|
|
|
} |
|
|
|
|
// 获取并更新订单信息
|
|
|
|
|
WorkOrder workOrder = workOrderMapper.selectById(workOrderRun.getWoId()); |
|
|
|
|
if (workOrder == null) { |
|
|
|
|
return R.fail("未找到相关车间订单!"); |
|
|
|
|
} |
|
|
|
|
// 获取工序计划信息
|
|
|
|
|
List<WorkPlan> workPlans = workPlanMapper.selectList(new LambdaQueryWrapper<WorkPlan>() |
|
|
|
|
.eq(WorkPlan::getWoId, workOrder.getId()) |
|
|
|
|
.eq(WorkPlan::getOem, "1")); |
|
|
|
|
|
|
|
|
|
// 查找外协订单的第一道工序
|
|
|
|
|
WorkPlan deliverablePlan = workPlans.stream() |
|
|
|
|
.max(Comparator.comparing(WorkPlan::getOrders)) |
|
|
|
|
.orElse(null); |
|
|
|
|
if (deliverablePlan == null) { |
|
|
|
|
return R.fail("未找到外协第一道工序!"); |
|
|
|
|
} |
|
|
|
|
if (deliverablePlan.getStatus() > WorkPlan.STATUS_NO_START) { |
|
|
|
|
return R.fail("外协第一道工序已接收!"); |
|
|
|
|
} |
|
|
|
|
workOrder.setOcId(ocId); |
|
|
|
|
workOrderMapper.updateById(workOrder); |
|
|
|
|
workPlans.forEach(workPlan -> { |
|
|
|
|
workPlan.setOcId(ocId); |
|
|
|
|
}); |
|
|
|
|
List<BatchResult> batchResults = workPlanMapper.insertOrUpdate(workPlans); |
|
|
|
|
// todo 2.在MES更改后同步给ERP
|
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<MaterialRequisitionVO> exportOemMaterialRequisition(IPage<MaterialRequisitionVO> page, MaterialRequisitionQuery materialRequisitionQuery) { |
|
|
|
|
List<MaterialRequisitionVO> oemMaterialRequisition = baseMapper.selectOemMaterialRequisition(page, materialRequisitionQuery); |
|
|
|
|
return page.setRecords(oemMaterialRequisition); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<OemOrderVO> queryOemOrder(IPage<OemOrderVO> page, OemOrderQuery oemOrderQuery) { |
|
|
|
|
List<OemOrderVO> oemOrderVOS = baseMapper.selectOemOrderPage(page, oemOrderQuery); |
|
|
|
|
|