|
|
|
@ -12,6 +12,8 @@ import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springblade.common.exception.BusinessException; |
|
|
|
import org.springblade.common.exception.BusinessException; |
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
|
|
|
import org.springblade.desk.basic.pojo.entity.CenterTeam; |
|
|
|
|
|
|
|
import org.springblade.desk.basic.service.ICenterTeamService; |
|
|
|
import org.springblade.desk.dashboard.pojo.entity.BsWorkCenterEntity; |
|
|
|
import org.springblade.desk.dashboard.pojo.entity.BsWorkCenterEntity; |
|
|
|
import org.springblade.desk.dashboard.service.IBsWorkCenterService; |
|
|
|
import org.springblade.desk.dashboard.service.IBsWorkCenterService; |
|
|
|
import org.springblade.desk.logistics.enums.DistinguishRegionsEnum; |
|
|
|
import org.springblade.desk.logistics.enums.DistinguishRegionsEnum; |
|
|
|
@ -115,6 +117,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
* 工位服务:提供工位基础信息查询 |
|
|
|
* 工位服务:提供工位基础信息查询 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private final IBsWorkCenterService bsWorkCenterService; |
|
|
|
private final IBsWorkCenterService bsWorkCenterService; |
|
|
|
|
|
|
|
private final ICenterTeamService iCenterTeamService; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 任务执行记录服务:处理AGV调度任务的生成与执行 |
|
|
|
* 任务执行记录服务:处理AGV调度任务的生成与执行 |
|
|
|
@ -148,7 +151,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
IStationService stationService, |
|
|
|
IStationService stationService, |
|
|
|
ILocationService locationService, |
|
|
|
ILocationService locationService, |
|
|
|
AgvTaskTypeUtil agvTaskTypeUtil, |
|
|
|
AgvTaskTypeUtil agvTaskTypeUtil, |
|
|
|
IBsWorkCenterService bsWorkCenterService, |
|
|
|
IBsWorkCenterService bsWorkCenterService, ICenterTeamService iCenterTeamService, |
|
|
|
ITaskExecuteRecordService taskExecuteRecordService, IWorkOrderService workOrderService, IWorkPlanService workPlanService, IPrWorkPlanService prWorkPlanService, IPrWorkOrderService prWorkOrderService, IStationCenterService stationCenterService, IPrYieldOrderService prYieldOrderService) { |
|
|
|
ITaskExecuteRecordService taskExecuteRecordService, IWorkOrderService workOrderService, IWorkPlanService workPlanService, IPrWorkPlanService prWorkPlanService, IPrWorkOrderService prWorkOrderService, IStationCenterService stationCenterService, IPrYieldOrderService prYieldOrderService) { |
|
|
|
this.yieldOrderService = yieldOrderService; |
|
|
|
this.yieldOrderService = yieldOrderService; |
|
|
|
this.taskService = taskService; |
|
|
|
this.taskService = taskService; |
|
|
|
@ -157,6 +160,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
this.locationService = locationService; |
|
|
|
this.locationService = locationService; |
|
|
|
this.agvTaskTypeUtil = agvTaskTypeUtil; |
|
|
|
this.agvTaskTypeUtil = agvTaskTypeUtil; |
|
|
|
this.bsWorkCenterService = bsWorkCenterService; |
|
|
|
this.bsWorkCenterService = bsWorkCenterService; |
|
|
|
|
|
|
|
this.iCenterTeamService = iCenterTeamService; |
|
|
|
this.taskExecuteRecordService = taskExecuteRecordService; |
|
|
|
this.taskExecuteRecordService = taskExecuteRecordService; |
|
|
|
this.workOrderService = workOrderService; |
|
|
|
this.workOrderService = workOrderService; |
|
|
|
this.workPlanService = workPlanService; |
|
|
|
this.workPlanService = workPlanService; |
|
|
|
@ -1210,8 +1214,6 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
/** |
|
|
|
/** |
|
|
|
* 箱条码绑定主入口 |
|
|
|
* 箱条码绑定主入口 |
|
|
|
@ -1311,15 +1313,16 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
private R<?> checkOrderWorkCenterConsistency(String orderCardNo, Long currentWcId) { |
|
|
|
private R<?> checkOrderWorkCenterConsistency(String orderCardNo, Long currentWcId) { |
|
|
|
// ====================== 处理标准工单 ======================
|
|
|
|
// ====================== 处理标准工单 ======================
|
|
|
|
List<WorkOrder> workOrderList = workOrderService.lambdaQuery() |
|
|
|
List<WorkOrder> workOrderList = workOrderService.lambdaQuery() |
|
|
|
|
|
|
|
.select(WorkOrder::getId) |
|
|
|
.eq(WorkOrder::getCardNo, orderCardNo) |
|
|
|
.eq(WorkOrder::getCardNo, orderCardNo) |
|
|
|
.list(); |
|
|
|
.list(); |
|
|
|
|
|
|
|
|
|
|
|
if (workOrderList != null && !workOrderList.isEmpty()) { |
|
|
|
if (workOrderList != null && !workOrderList.isEmpty()) { |
|
|
|
WorkOrder workOrder = workOrderList.get(0); |
|
|
|
WorkOrder workOrder = workOrderList.get(0); |
|
|
|
List<WorkPlan> workPlanList = workPlanService.lambdaQuery() |
|
|
|
List<WorkPlan> workPlanList = workPlanService.lambdaQuery() |
|
|
|
|
|
|
|
.select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam) |
|
|
|
.eq(WorkPlan::getWoId, workOrder.getId()) |
|
|
|
.eq(WorkPlan::getWoId, workOrder.getId()) |
|
|
|
.list(); |
|
|
|
.list(); |
|
|
|
|
|
|
|
|
|
|
|
if (workPlanList == null || workPlanList.isEmpty()) { |
|
|
|
if (workPlanList == null || workPlanList.isEmpty()) { |
|
|
|
log.info("workPlanList"); |
|
|
|
log.info("workPlanList"); |
|
|
|
return R.fail(orderCardNo + "车间订单异常"); |
|
|
|
return R.fail(orderCardNo + "车间订单异常"); |
|
|
|
@ -1330,17 +1333,40 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
|
|
|
|
|
|
|
// 根据工序状态判断使用当前工序还是下一道工序
|
|
|
|
// 根据工序状态判断使用当前工序还是下一道工序
|
|
|
|
if (workPlan.getStatus() < 3) { |
|
|
|
if (workPlan.getStatus() < 3) { |
|
|
|
workCenterId = workPlan.getWorkCenterId(); |
|
|
|
// workCenterId = workPlan.getWorkCenterId();
|
|
|
|
|
|
|
|
if (workPlan.getMakeTeam() == null) { |
|
|
|
|
|
|
|
return R.fail(orderCardNo + "车间订单班次异常"); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>() |
|
|
|
|
|
|
|
.select(CenterTeam::getWcId, CenterTeam::getTsId) |
|
|
|
|
|
|
|
.eq(CenterTeam::getTsId, (workPlan.getMakeTeam()))); |
|
|
|
|
|
|
|
if (list == null || list.size() == 0) { |
|
|
|
|
|
|
|
return R.fail(orderCardNo + "车间订单班次查询作业中心异常"); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
workCenterId = list.get(0).getWcId(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
|
|
List<WorkPlan> nextWorkPlanList = workPlanService.lambdaQuery() |
|
|
|
List<WorkPlan> nextWorkPlanList = workPlanService.lambdaQuery() |
|
|
|
|
|
|
|
.select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam) |
|
|
|
.eq(WorkPlan::getId, workPlan.getNextWpId()) |
|
|
|
.eq(WorkPlan::getId, workPlan.getNextWpId()) |
|
|
|
.list(); |
|
|
|
.list(); |
|
|
|
|
|
|
|
|
|
|
|
if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) { |
|
|
|
if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) { |
|
|
|
return R.fail(orderCardNo + "车间下一工序订单异常"); |
|
|
|
return R.fail(orderCardNo + "车间下一工序订单异常"); |
|
|
|
} |
|
|
|
} |
|
|
|
workCenterId = nextWorkPlanList.get(0).getWorkCenterId(); |
|
|
|
if (nextWorkPlanList.get(0).getMakeTeam() == null) { |
|
|
|
|
|
|
|
return R.fail(orderCardNo + "车间订单班次异常"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>() |
|
|
|
|
|
|
|
.select(CenterTeam::getWcId, CenterTeam::getTsId) |
|
|
|
|
|
|
|
.eq(CenterTeam::getTsId, (workPlan.getMakeTeam()))); |
|
|
|
|
|
|
|
if (list == null || list.size() == 0) { |
|
|
|
|
|
|
|
return R.fail(orderCardNo + "车间订单班次查询作业中心异常"); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
workCenterId = list.get(0).getWcId(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return validateWorkCenter(orderCardNo, currentWcId, workCenterId); |
|
|
|
return validateWorkCenter(orderCardNo, currentWcId, workCenterId); |
|
|
|
@ -1348,12 +1374,14 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
|
|
|
|
|
|
|
// ====================== 处理PR工单 ======================
|
|
|
|
// ====================== 处理PR工单 ======================
|
|
|
|
List<PrWorkOrder> prWorkOrderList = prWorkOrderService.lambdaQuery() |
|
|
|
List<PrWorkOrder> prWorkOrderList = prWorkOrderService.lambdaQuery() |
|
|
|
|
|
|
|
.select(PrWorkOrder::getWpId) |
|
|
|
.eq(PrWorkOrder::getCardNo, orderCardNo) |
|
|
|
.eq(PrWorkOrder::getCardNo, orderCardNo) |
|
|
|
.list(); |
|
|
|
.list(); |
|
|
|
|
|
|
|
|
|
|
|
if (prWorkOrderList != null && !prWorkOrderList.isEmpty()) { |
|
|
|
if (prWorkOrderList != null && !prWorkOrderList.isEmpty()) { |
|
|
|
PrWorkOrder prWorkOrder = prWorkOrderList.get(0); |
|
|
|
PrWorkOrder prWorkOrder = prWorkOrderList.get(0); |
|
|
|
List<PrWorkPlan> workPlanList = prWorkPlanService.lambdaQuery() |
|
|
|
List<PrWorkPlan> workPlanList = prWorkPlanService.lambdaQuery() |
|
|
|
|
|
|
|
.select(PrWorkPlan::getStatus, PrWorkPlan::getNextWpId, PrWorkPlan::getWpId, PrWorkPlan::getMakeTeam) |
|
|
|
.eq(PrWorkPlan::getWpId, prWorkOrder.getWpId()) |
|
|
|
.eq(PrWorkPlan::getWpId, prWorkOrder.getWpId()) |
|
|
|
.list(); |
|
|
|
.list(); |
|
|
|
|
|
|
|
|
|
|
|
@ -1364,17 +1392,41 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
PrWorkPlan workPlan = workPlanList.get(0); |
|
|
|
PrWorkPlan workPlan = workPlanList.get(0); |
|
|
|
Long workCenterId; |
|
|
|
Long workCenterId; |
|
|
|
|
|
|
|
|
|
|
|
if (workPlan.getCurStatus() < 3) { |
|
|
|
if (workPlan.getStatus() < 3) { |
|
|
|
workCenterId = workPlan.getWcId(); |
|
|
|
if (workPlan.getMakeTeam() == null) { |
|
|
|
|
|
|
|
return R.fail(orderCardNo + "车间订单班次异常"); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>() |
|
|
|
|
|
|
|
.select(CenterTeam::getWcId, CenterTeam::getTsId) |
|
|
|
|
|
|
|
.eq(CenterTeam::getTsId, (workPlan.getMakeTeam()))); |
|
|
|
|
|
|
|
if (list == null || list.size() == 0) { |
|
|
|
|
|
|
|
return R.fail(orderCardNo + "车间订单班次查询作业中心异常"); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
workCenterId = list.get(0).getWcId(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
List<PrWorkPlan> nextWorkPlanList = prWorkPlanService.lambdaQuery() |
|
|
|
List<PrWorkPlan> nextWorkPlanList = prWorkPlanService.lambdaQuery() |
|
|
|
|
|
|
|
.select(PrWorkPlan::getStatus, PrWorkPlan::getNextWpId, PrWorkPlan::getWpId, PrWorkPlan::getMakeTeam) |
|
|
|
.eq(PrWorkPlan::getWpId, workPlan.getNextWpId()) |
|
|
|
.eq(PrWorkPlan::getWpId, workPlan.getNextWpId()) |
|
|
|
.list(); |
|
|
|
.list(); |
|
|
|
|
|
|
|
|
|
|
|
if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) { |
|
|
|
if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) { |
|
|
|
return R.fail(orderCardNo + "车间订单异常"); |
|
|
|
return R.fail(orderCardNo + "车间订单异常"); |
|
|
|
} |
|
|
|
} |
|
|
|
workCenterId = nextWorkPlanList.get(0).getWcId(); |
|
|
|
workPlan = nextWorkPlanList.get(0); |
|
|
|
|
|
|
|
if (workPlan.getMakeTeam() == null) { |
|
|
|
|
|
|
|
return R.fail(orderCardNo + "车间订单班次异常"); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>() |
|
|
|
|
|
|
|
.select(CenterTeam::getWcId, CenterTeam::getTsId) |
|
|
|
|
|
|
|
.eq(CenterTeam::getTsId, (workPlan.getMakeTeam()))); |
|
|
|
|
|
|
|
if (list == null || list.size() == 0) { |
|
|
|
|
|
|
|
return R.fail(orderCardNo + "车间订单班次查询作业中心异常"); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
workCenterId = list.get(0).getWcId(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return validateWorkCenter(orderCardNo, currentWcId, workCenterId); |
|
|
|
return validateWorkCenter(orderCardNo, currentWcId, workCenterId); |
|
|
|
|