|
|
|
|
@ -264,7 +264,6 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
.distinct() |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
List<BsWorkCenterVO> wcVOList = bsWorkCenterService.getByIds(wcIdList, freeStationList); |
|
|
|
|
System.out.println("wcVOList = " + wcVOList); |
|
|
|
|
if (!CollectionUtils.isEmpty(wcVOList)) { |
|
|
|
|
resultList.addAll(wcVOList); |
|
|
|
|
log.info("【回库工位查询】查询到{}个空闲工位", wcVOList.size()); |
|
|
|
|
@ -468,19 +467,21 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
LinkedHashMap<String, Object> map = new LinkedHashMap<>(); |
|
|
|
|
map.put("wcId", wcID); |
|
|
|
|
if (DistinguishRegionsEnum.includeByWcName(workCenter.getWcName())) { |
|
|
|
|
List<YieldOrder> list = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderBindList.get(0).getCardNo())); |
|
|
|
|
//todo:删除读取车间订单代码
|
|
|
|
|
// List<YieldOrder> list = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderBindList.get(0).getCardNo()));
|
|
|
|
|
String useDept = ""; |
|
|
|
|
if (list != null && list.size() != 0) { |
|
|
|
|
useDept = list.get(0).getUseDept(); |
|
|
|
|
} else { |
|
|
|
|
List<PrYieldOrder> list1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().eq(PrYieldOrder::getCardNo, orderBindList.get(0).getCardNo())); |
|
|
|
|
// if (list != null && list.size() != 0) {
|
|
|
|
|
// useDept = list.get(0).getUseDept();
|
|
|
|
|
// } else {
|
|
|
|
|
List<PrYieldOrder> list1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().select(PrYieldOrder::getUseDept).eq(PrYieldOrder::getCardNo, orderBindList.get(0).getCardNo())); |
|
|
|
|
if (list1 != null && list1.size() != 0) { |
|
|
|
|
useDept = list1.get(0).getUseDept(); |
|
|
|
|
}else { |
|
|
|
|
return R.fail("班次获取异常"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// }
|
|
|
|
|
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName()); |
|
|
|
|
String logisticsAnagementRegion = DictCache.getValue(code, useDept); |
|
|
|
|
System.out.println("logisticsAnagementRegion = " + logisticsAnagementRegion); |
|
|
|
|
if (logisticsAnagementRegion != null) { |
|
|
|
|
map.put("stationRegion", logisticsAnagementRegion); |
|
|
|
|
} else { |
|
|
|
|
@ -588,12 +589,15 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
List<YieldOrder> orderList = yieldOrderService.list( |
|
|
|
|
new LambdaQueryWrapper<YieldOrder>().in(YieldOrder::getCardNo, cardNoList) |
|
|
|
|
); |
|
|
|
|
if (orderList==null||orderList.size()==0) { |
|
|
|
|
return new BigDecimal(0.1); |
|
|
|
|
} |
|
|
|
|
log.info("【订单重量计算】查询到订单列表:{}", orderList); |
|
|
|
|
|
|
|
|
|
return orderList.stream() |
|
|
|
|
.map(YieldOrder::getActualWeighing) |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
.reduce(new BigDecimal(0.1), BigDecimal::add); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -1071,17 +1075,18 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
} |
|
|
|
|
//判断是否是镀后库作业中心
|
|
|
|
|
if (DistinguishRegionsEnum.includeByWcName(workCenter.getWcName())) { |
|
|
|
|
List<YieldOrder> yieldOrderList = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderList.get(0).getCardNo())); |
|
|
|
|
if (yieldOrderList != null && yieldOrderList.size() != 0) { |
|
|
|
|
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName()); |
|
|
|
|
String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList.get(0).getUseDept()); |
|
|
|
|
if (!logisticsAnagementRegion.isEmpty()) { |
|
|
|
|
detailsVO.setStationRegion(logisticsAnagementRegion); |
|
|
|
|
return R.data(detailsVO); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
List<PrYieldOrder> yieldOrderList1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().eq(PrYieldOrder::getCardNo, orderList.get(0).getCardNo())); |
|
|
|
|
//todo:删除读取车间订单代码
|
|
|
|
|
// List<YieldOrder> yieldOrderList = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderList.get(0).getCardNo()));
|
|
|
|
|
// if (yieldOrderList != null && yieldOrderList.size() != 0) {
|
|
|
|
|
// String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName());
|
|
|
|
|
// String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList.get(0).getUseDept());
|
|
|
|
|
// if (!logisticsAnagementRegion.isEmpty()) {
|
|
|
|
|
// detailsVO.setStationRegion(logisticsAnagementRegion);
|
|
|
|
|
// return R.data(detailsVO);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
List<PrYieldOrder> yieldOrderList1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().select(PrYieldOrder::getUseDept).eq(PrYieldOrder::getCardNo, orderList.get(0).getCardNo())); |
|
|
|
|
if (yieldOrderList1 != null && yieldOrderList1.size() != 0) { |
|
|
|
|
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName()); |
|
|
|
|
String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList1.get(0).getUseDept()); |
|
|
|
|
@ -1120,35 +1125,39 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
* @return 合并后的YieldOrder列表 |
|
|
|
|
*/ |
|
|
|
|
private List<YieldOrder> queryYieldOrders(List<String> cardNoList) { |
|
|
|
|
// 1. 查询YieldOrder
|
|
|
|
|
List<YieldOrder> yieldOrderList = yieldOrderService.list( |
|
|
|
|
Wrappers.lambdaQuery(YieldOrder.class) |
|
|
|
|
.in(YieldOrder::getCardNo, cardNoList) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// 2. 找到未查询到的cardNo
|
|
|
|
|
Set<String> foundCardNos = yieldOrderList.stream() |
|
|
|
|
.map(YieldOrder::getCardNo) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
List<String> missingCardNos = cardNoList.stream() |
|
|
|
|
.filter(cardNo -> !foundCardNos.contains(cardNo)) |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
// 3. 如果有缺失的,查询PrYieldOrder并转换
|
|
|
|
|
if (!missingCardNos.isEmpty()) { |
|
|
|
|
List<PrYieldOrder> prYieldOrderList = prYieldOrderService.list( |
|
|
|
|
Wrappers.lambdaQuery(PrYieldOrder.class) |
|
|
|
|
.in(PrYieldOrder::getCardNo, missingCardNos) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// 转换为YieldOrder
|
|
|
|
|
//todo:删除读取车间订单代码
|
|
|
|
|
// // 1. 查询YieldOrder
|
|
|
|
|
// List<YieldOrder> yieldOrderList = yieldOrderService.list(
|
|
|
|
|
// Wrappers.lambdaQuery(YieldOrder.class)
|
|
|
|
|
// .in(YieldOrder::getCardNo, cardNoList)
|
|
|
|
|
// );
|
|
|
|
|
//
|
|
|
|
|
// // 2. 找到未查询到的cardNo
|
|
|
|
|
// Set<String> foundCardNos = yieldOrderList.stream()
|
|
|
|
|
// .map(YieldOrder::getCardNo)
|
|
|
|
|
// .collect(Collectors.toSet());
|
|
|
|
|
// List<String> missingCardNos = cardNoList.stream()
|
|
|
|
|
// .filter(cardNo -> !foundCardNos.contains(cardNo))
|
|
|
|
|
// .collect(Collectors.toList());
|
|
|
|
|
//
|
|
|
|
|
// // 3. 如果有缺失的,查询PrYieldOrder并转换
|
|
|
|
|
// if (!missingCardNos.isEmpty()) {
|
|
|
|
|
// List<PrYieldOrder> prYieldOrderList = prYieldOrderService.list(
|
|
|
|
|
// Wrappers.lambdaQuery(PrYieldOrder.class)
|
|
|
|
|
// .in(PrYieldOrder::getCardNo, missingCardNos)
|
|
|
|
|
// );
|
|
|
|
|
List<YieldOrder> yieldOrderList =new ArrayList<>(); |
|
|
|
|
List<PrYieldOrder> prYieldOrderList = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>() |
|
|
|
|
.select(PrYieldOrder::getCardNo, PrYieldOrder::getYoCode, PrYieldOrder::getPartCode, PrYieldOrder::getPartName) |
|
|
|
|
.in(PrYieldOrder::getCardNo, cardNoList)); |
|
|
|
|
// 转换为YieldOrder
|
|
|
|
|
List<YieldOrder> convertedList = prYieldOrderList.stream() |
|
|
|
|
.map(this::convertToYieldOrder) |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
// 4. 合并结果
|
|
|
|
|
yieldOrderList.addAll(convertedList); |
|
|
|
|
} |
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
return yieldOrderList; |
|
|
|
|
} |
|
|
|
|
@ -1166,7 +1175,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
yieldOrder.setYoCode(prYieldOrder.getYoCode()); |
|
|
|
|
yieldOrder.setPartCode(prYieldOrder.getPartCode()); |
|
|
|
|
yieldOrder.setPartName(prYieldOrder.getPartName()); |
|
|
|
|
yieldOrder.setActualWeighing(new BigDecimal(0)); |
|
|
|
|
yieldOrder.setActualWeighing(new BigDecimal(0.1)); |
|
|
|
|
// 其他字段保持默认null
|
|
|
|
|
return yieldOrder; |
|
|
|
|
} |
|
|
|
|
@ -1258,11 +1267,16 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
} |
|
|
|
|
//判断是不是镀后库作业中心
|
|
|
|
|
if (DistinguishRegionsEnum.includeByWcName(bsWorkCenterService.getById(wcId).getWcName())) { |
|
|
|
|
List<String> deptList = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().in(YieldOrder::getCardNo, orderBindList)).stream().map(s -> s.getUseDept()).toList(); |
|
|
|
|
//todo:删除读取车间订单代码
|
|
|
|
|
// List<String> deptList = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().in(YieldOrder::getCardNo, orderBindList)).stream().map(s -> s.getUseDept()).toList();
|
|
|
|
|
List<PrYieldOrder> yieldOrderList = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().select(PrYieldOrder::getUseDept).in(PrYieldOrder::getCardNo, orderBindList)); |
|
|
|
|
if (yieldOrderList==null||yieldOrderList.size()==0) { |
|
|
|
|
return R.fail("车间订单异常"); |
|
|
|
|
} |
|
|
|
|
String code = DistinguishRegionsEnum.wcNameByCode(bsWorkCenterService.getById(wcId).getWcName()); |
|
|
|
|
String stationRegion = ""; |
|
|
|
|
for (String s : deptList) { |
|
|
|
|
String logisticsAnagementRegion = DictCache.getValue(code, s); |
|
|
|
|
for (PrYieldOrder s : yieldOrderList) { |
|
|
|
|
String logisticsAnagementRegion = DictCache.getValue(code, s.getUseDept()); |
|
|
|
|
if (logisticsAnagementRegion == null) { |
|
|
|
|
return R.fail("站点区域异常"); |
|
|
|
|
} else if (stationRegion == null) { |
|
|
|
|
@ -1311,66 +1325,67 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
* 校验单个订单的作业中心与箱绑定作业中心是否一致(核心逻辑抽离) |
|
|
|
|
*/ |
|
|
|
|
private R<?> checkOrderWorkCenterConsistency(String orderCardNo, Long currentWcId) { |
|
|
|
|
//todo:删除读取车间订单代码
|
|
|
|
|
// ====================== 处理标准工单 ======================
|
|
|
|
|
List<WorkOrder> workOrderList = workOrderService.lambdaQuery() |
|
|
|
|
.select(WorkOrder::getId) |
|
|
|
|
.eq(WorkOrder::getCardNo, orderCardNo) |
|
|
|
|
.list(); |
|
|
|
|
|
|
|
|
|
if (workOrderList != null && !workOrderList.isEmpty()) { |
|
|
|
|
WorkOrder workOrder = workOrderList.get(0); |
|
|
|
|
List<WorkPlan> workPlanList = workPlanService.lambdaQuery() |
|
|
|
|
.select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam) |
|
|
|
|
.eq(WorkPlan::getWoId, workOrder.getId()) |
|
|
|
|
.list(); |
|
|
|
|
if (workPlanList == null || workPlanList.isEmpty()) { |
|
|
|
|
log.info("workPlanList"); |
|
|
|
|
return R.fail(orderCardNo + "车间订单异常"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
WorkPlan workPlan = workPlanList.get(0); |
|
|
|
|
Long workCenterId; |
|
|
|
|
|
|
|
|
|
// 根据工序状态判断使用当前工序还是下一道工序
|
|
|
|
|
if (workPlan.getStatus() < 3) { |
|
|
|
|
// 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 { |
|
|
|
|
|
|
|
|
|
List<WorkPlan> nextWorkPlanList = workPlanService.lambdaQuery() |
|
|
|
|
.select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam) |
|
|
|
|
.eq(WorkPlan::getId, workPlan.getNextWpId()) |
|
|
|
|
.list(); |
|
|
|
|
|
|
|
|
|
if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) { |
|
|
|
|
return R.fail(orderCardNo + "车间下一工序订单异常"); |
|
|
|
|
} |
|
|
|
|
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); |
|
|
|
|
} |
|
|
|
|
// List<WorkOrder> workOrderList = workOrderService.lambdaQuery()
|
|
|
|
|
// .select(WorkOrder::getId)
|
|
|
|
|
// .eq(WorkOrder::getCardNo, orderCardNo)
|
|
|
|
|
// .list();
|
|
|
|
|
//
|
|
|
|
|
// if (workOrderList != null && !workOrderList.isEmpty()) {
|
|
|
|
|
// WorkOrder workOrder = workOrderList.get(0);
|
|
|
|
|
// List<WorkPlan> workPlanList = workPlanService.lambdaQuery()
|
|
|
|
|
// .select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam)
|
|
|
|
|
// .eq(WorkPlan::getWoId, workOrder.getId())
|
|
|
|
|
// .list();
|
|
|
|
|
// if (workPlanList == null || workPlanList.isEmpty()) {
|
|
|
|
|
// log.info("workPlanList");
|
|
|
|
|
// return R.fail(orderCardNo + "车间订单异常");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// WorkPlan workPlan = workPlanList.get(0);
|
|
|
|
|
// Long workCenterId;
|
|
|
|
|
//
|
|
|
|
|
// // 根据工序状态判断使用当前工序还是下一道工序
|
|
|
|
|
// if (workPlan.getStatus() < 3) {
|
|
|
|
|
//// 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 {
|
|
|
|
|
//
|
|
|
|
|
// List<WorkPlan> nextWorkPlanList = workPlanService.lambdaQuery()
|
|
|
|
|
// .select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam)
|
|
|
|
|
// .eq(WorkPlan::getId, workPlan.getNextWpId())
|
|
|
|
|
// .list();
|
|
|
|
|
//
|
|
|
|
|
// if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) {
|
|
|
|
|
// return R.fail(orderCardNo + "车间下一工序订单异常");
|
|
|
|
|
// }
|
|
|
|
|
// 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);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// ====================== 处理PR工单 ======================
|
|
|
|
|
List<PrWorkOrder> prWorkOrderList = prWorkOrderService.lambdaQuery() |
|
|
|
|
|