|
|
|
|
@ -1050,10 +1050,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
|
|
|
|
|
// 计算总重量 & 查询订单列表
|
|
|
|
|
BigDecimal totalWeight = calculateOrderCardNoTotalWeight(cardNoList); |
|
|
|
|
List<YieldOrder> orderList = yieldOrderService.list( |
|
|
|
|
Wrappers.lambdaQuery(YieldOrder.class) |
|
|
|
|
.in(YieldOrder::getCardNo, cardNoList) |
|
|
|
|
); |
|
|
|
|
List<YieldOrder> orderList = queryYieldOrders(cardNoList); |
|
|
|
|
|
|
|
|
|
// 组装返回对象
|
|
|
|
|
BoxbarcodeDetailsVO detailsVO = new BoxbarcodeDetailsVO(); |
|
|
|
|
@ -1071,10 +1068,26 @@ 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())); |
|
|
|
|
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName()); |
|
|
|
|
String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList.get(0).getUseDept()); |
|
|
|
|
detailsVO.setStationRegion(logisticsAnagementRegion); |
|
|
|
|
return R.data(detailsVO); |
|
|
|
|
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())); |
|
|
|
|
if (yieldOrderList1!=null&&yieldOrderList1.size()!=0) { |
|
|
|
|
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName()); |
|
|
|
|
String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList1.get(0).getUseDept()); |
|
|
|
|
if (!logisticsAnagementRegion.isEmpty()) { |
|
|
|
|
detailsVO.setStationRegion(logisticsAnagementRegion); |
|
|
|
|
return R.data(detailsVO); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
// 设置工位区域
|
|
|
|
|
List<StationCenter> stationCenterList = stationCenterService.list( |
|
|
|
|
@ -1096,6 +1109,64 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { |
|
|
|
|
return R.data(detailsVO); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询订单列表:先查YieldOrder,查不到的再去查PrYieldOrder并转换 |
|
|
|
|
* |
|
|
|
|
* @param cardNoList 流程卡号列表 |
|
|
|
|
* @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
|
|
|
|
|
List<YieldOrder> convertedList = prYieldOrderList.stream() |
|
|
|
|
.map(this::convertToYieldOrder) |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
// 4. 合并结果
|
|
|
|
|
yieldOrderList.addAll(convertedList); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return yieldOrderList; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 将PrYieldOrder转换为YieldOrder |
|
|
|
|
* |
|
|
|
|
* @param prYieldOrder 生产报工订单 |
|
|
|
|
* @return YieldOrder |
|
|
|
|
*/ |
|
|
|
|
private YieldOrder convertToYieldOrder(PrYieldOrder prYieldOrder) { |
|
|
|
|
YieldOrder yieldOrder = new YieldOrder(); |
|
|
|
|
// 映射字段:流程卡号、车间订单号、零件号、零件名称
|
|
|
|
|
yieldOrder.setCardNo(prYieldOrder.getCardNo()); |
|
|
|
|
yieldOrder.setYoCode(prYieldOrder.getYoCode()); |
|
|
|
|
yieldOrder.setPartCode(prYieldOrder.getPartCode()); |
|
|
|
|
yieldOrder.setPartName(prYieldOrder.getPartName()); |
|
|
|
|
yieldOrder.setActualWeighing(new BigDecimal(0)); |
|
|
|
|
// 其他字段保持默认null
|
|
|
|
|
return yieldOrder; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R getStationNameBoxBarcode(String stationCode) { |
|
|
|
|
R stationR = stationService.getStationName(stationCode); |
|
|
|
|
|