出口仓单型号规格
This commit is contained in:
+116
-38
@@ -196,44 +196,6 @@ public class PickingOrderApplicationService {
|
||||
pickingOrderPO.setMaterialQuantity(0);
|
||||
}
|
||||
}
|
||||
|
||||
// ========== 批量查保管明细表补规格型号 ==========
|
||||
Set<String> inOrderNumberSet = new HashSet<>();
|
||||
Set<Long> materialBaseInfoIdSet = new HashSet<>();
|
||||
for (List<PickingMaterialDetailPO> details : materialDetailsByOrderNumber.values()) {
|
||||
for (PickingMaterialDetailPO d : details) {
|
||||
if (StringUtils.isNotBlank(d.getInOrderNumber()) && d.getMaterialBaseInfoId() != null) {
|
||||
inOrderNumberSet.add(d.getInOrderNumber());
|
||||
materialBaseInfoIdSet.add(d.getMaterialBaseInfoId());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!inOrderNumberSet.isEmpty() && !materialBaseInfoIdSet.isEmpty()) {
|
||||
LambdaQueryWrapper<InMaterialDetail> inWrapper = new LambdaQueryWrapper<>();
|
||||
inWrapper.in(InMaterialDetail::getInOrderNumber, inOrderNumberSet);
|
||||
inWrapper.in(InMaterialDetail::getMaterialBaseInfoId, materialBaseInfoIdSet);
|
||||
inWrapper.eq(InMaterialDetail::getDelFlag, 1);
|
||||
List<InMaterialDetail> inDetailList = inMaterialDetailService.list(inWrapper);
|
||||
// 按 inOrderNumber + materialBaseInfoId 分组
|
||||
Map<String, Map<Long, List<InMaterialDetail>>> grouped = inDetailList.stream()
|
||||
.collect(Collectors.groupingBy(InMaterialDetail::getInOrderNumber,
|
||||
Collectors.groupingBy(InMaterialDetail::getMaterialBaseInfoId)));
|
||||
// 回填到拣货单头
|
||||
for (PickingOrderPO po : pickingOrderPOList) {
|
||||
List<PickingMaterialDetailPO> details = materialDetailsByOrderNumber.get(po.getPickingOrderNumber());
|
||||
if (CollectionUtils.isEmpty(details)) continue;
|
||||
PickingMaterialDetailPO first = details.get(0);
|
||||
Map<Long, List<InMaterialDetail>> byBaseId = grouped.get(first.getInOrderNumber());
|
||||
if (byBaseId != null) {
|
||||
List<InMaterialDetail> list = byBaseId.get(first.getMaterialBaseInfoId());
|
||||
if (list != null && !list.isEmpty()) {
|
||||
po.setSpecificationModel(list.get(0).getSpecificationModel());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// ========== 批量查保管明细表补规格型号结束 ==========
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1006,4 +968,120 @@ public class PickingOrderApplicationService {
|
||||
}
|
||||
pickingOrderMapper.updateById(entity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询拣货单列表(含规格型号)
|
||||
*/
|
||||
public List<PickingOrderPO> queryList1(PickingOrderDO pickingOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null && loginUser.getUserPo() != null) {
|
||||
Long userOrganizationId = loginUser.getUserPo().getOrganizationId();
|
||||
Long frontendOrganizationId = pickingOrderDO.getOrganizationId();
|
||||
|
||||
if (userOrganizationId != null && userOrganizationId == 2827L) {
|
||||
if (frontendOrganizationId != null) {
|
||||
pickingOrderDO.setOrganizationId(frontendOrganizationId);
|
||||
pickingOrderDO.setTopOrganizationId(null);
|
||||
} else {
|
||||
pickingOrderDO.setOrganizationId(null);
|
||||
pickingOrderDO.setTopOrganizationId(null);
|
||||
}
|
||||
} else {
|
||||
if (frontendOrganizationId != null && userOrganizationId != null) {
|
||||
if (!frontendOrganizationId.equals(userOrganizationId)) {
|
||||
pickingOrderDO.setOrganizationId(userOrganizationId);
|
||||
}
|
||||
} else {
|
||||
if (userOrganizationId != null) {
|
||||
pickingOrderDO.setOrganizationId(userOrganizationId);
|
||||
}
|
||||
}
|
||||
if (pickingOrderDO.getOrganizationId() == null) {
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1) {
|
||||
pickingOrderDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
pickingOrderDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
List<PickingOrderPO> pickingOrderPOList = pickingOrderDomainService.queryList(pickingOrderDO);
|
||||
|
||||
// 重新计算物料种类数 + 查保管明细表补规格型号
|
||||
if (!CollectionUtils.isEmpty(pickingOrderPOList)) {
|
||||
List<String> pickingOrderNumbers = pickingOrderPOList.stream()
|
||||
.map(PickingOrderPO::getPickingOrderNumber)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(number -> !number.trim().isEmpty())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (!pickingOrderNumbers.isEmpty()) {
|
||||
Map<String, List<PickingMaterialDetailPO>> materialDetailsByOrderNumber = new HashMap<>();
|
||||
for (String pickingOrderNumber : pickingOrderNumbers) {
|
||||
PickingMaterialDetailDO pickingMaterialDetailDO = new PickingMaterialDetailDO();
|
||||
pickingMaterialDetailDO.setPickingOrderNumber(pickingOrderNumber);
|
||||
List<PickingMaterialDetailPO> materialDetails = pickingMaterialDetailDomainService.queryList(pickingMaterialDetailDO);
|
||||
if (!CollectionUtils.isEmpty(materialDetails)) {
|
||||
materialDetailsByOrderNumber.put(pickingOrderNumber, materialDetails);
|
||||
}
|
||||
}
|
||||
|
||||
// 计算物料种类数(按料号去重)
|
||||
for (PickingOrderPO pickingOrderPO : pickingOrderPOList) {
|
||||
String pickingOrderNumber = pickingOrderPO.getPickingOrderNumber();
|
||||
if (pickingOrderNumber != null && materialDetailsByOrderNumber.containsKey(pickingOrderNumber)) {
|
||||
List<PickingMaterialDetailPO> materialDetails = materialDetailsByOrderNumber.get(pickingOrderNumber);
|
||||
long materialQuantity = materialDetails.stream()
|
||||
.map(PickingMaterialDetailPO::getMaterialCode)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(code -> !code.trim().isEmpty())
|
||||
.distinct()
|
||||
.count();
|
||||
pickingOrderPO.setMaterialQuantity((int) materialQuantity);
|
||||
} else {
|
||||
pickingOrderPO.setMaterialQuantity(0);
|
||||
}
|
||||
}
|
||||
|
||||
// ========== 批量查保管明细表补规格型号 ==========
|
||||
Set<String> inOrderNumberSet = new HashSet<>();
|
||||
Set<Long> materialBaseInfoIdSet = new HashSet<>();
|
||||
for (List<PickingMaterialDetailPO> details : materialDetailsByOrderNumber.values()) {
|
||||
for (PickingMaterialDetailPO d : details) {
|
||||
if (StringUtils.isNotBlank(d.getInOrderNumber()) && d.getMaterialBaseInfoId() != null) {
|
||||
inOrderNumberSet.add(d.getInOrderNumber());
|
||||
materialBaseInfoIdSet.add(d.getMaterialBaseInfoId());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!inOrderNumberSet.isEmpty() && !materialBaseInfoIdSet.isEmpty()) {
|
||||
LambdaQueryWrapper<InMaterialDetail> inWrapper = new LambdaQueryWrapper<>();
|
||||
inWrapper.in(InMaterialDetail::getInOrderNumber, inOrderNumberSet);
|
||||
inWrapper.in(InMaterialDetail::getMaterialBaseInfoId, materialBaseInfoIdSet);
|
||||
inWrapper.eq(InMaterialDetail::getDelFlag, 1);
|
||||
List<InMaterialDetail> inDetailList = inMaterialDetailService.list(inWrapper);
|
||||
Map<String, Map<Long, List<InMaterialDetail>>> grouped = inDetailList.stream()
|
||||
.collect(Collectors.groupingBy(InMaterialDetail::getInOrderNumber,
|
||||
Collectors.groupingBy(InMaterialDetail::getMaterialBaseInfoId)));
|
||||
for (PickingOrderPO po : pickingOrderPOList) {
|
||||
List<PickingMaterialDetailPO> details = materialDetailsByOrderNumber.get(po.getPickingOrderNumber());
|
||||
if (CollectionUtils.isEmpty(details)) continue;
|
||||
PickingMaterialDetailPO first = details.get(0);
|
||||
Map<Long, List<InMaterialDetail>> byBaseId = grouped.get(first.getInOrderNumber());
|
||||
if (byBaseId != null) {
|
||||
List<InMaterialDetail> list = byBaseId.get(first.getMaterialBaseInfoId());
|
||||
if (list != null && !list.isEmpty()) {
|
||||
po.setSpecificationModel(list.get(0).getSpecificationModel());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// ========== 批量查保管明细表补规格型号结束 ==========
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return pickingOrderPOList;
|
||||
}
|
||||
}
|
||||
+10
@@ -128,5 +128,15 @@ public class PickingOrderApi extends BaseController {
|
||||
|
||||
}
|
||||
|
||||
@ApiOperation("查询拣货单列表")
|
||||
@GetMapping("/list1")
|
||||
public TableDataInfo list1(PickingOrderDTO pickingOrderDTO)
|
||||
{
|
||||
//转换实体
|
||||
PickingOrderDO pickingOrderDO = pickingOrderAssembler.toDO(pickingOrderDTO);
|
||||
startPage();
|
||||
List<PickingOrderPO> list = pickingOrderApplicationService.queryList1(pickingOrderDO);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user