物流改写

liweidong
绫Umbrella 2 weeks ago
parent acb2517a38
commit 10ba517bf8
  1. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java
  2. 227
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java

@ -85,7 +85,6 @@ public class PipelineController extends BladeController {
returnToWarehouseDto.setBoxBarcode(boxBarcode);
R wcIdR = iOrderBoxService.getWcId(boxBarcode);
LinkedHashMap<String, Object> map = (LinkedHashMap<String, Object>) wcIdR.getData();
System.out.println("wcIdR = " + wcIdR);
if (map==null) {
return R.fail("未查询到该箱条码的作业中心");
}

@ -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()

Loading…
Cancel
Save