出口订单查询
This commit is contained in:
+118
@@ -1297,4 +1297,122 @@ public class ReservationStockOutOrderApplicationService {
|
||||
public void returnGoods(String invoiceNumber, String transportationNumber, String orderId,String pictureUrl) {
|
||||
stockOutOrderDomainService.returnGoods(invoiceNumber, transportationNumber, orderId, pictureUrl);
|
||||
}
|
||||
|
||||
public List<ReservationStockOutOrderPO> queryList1(ReservationStockOutOrderDO stockOutOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
|
||||
if (loginUser != null && loginUser.getUserPo() != null) {
|
||||
Long userOrganizationId = loginUser.getUserPo().getOrganizationId();
|
||||
Long frontendOrganizationId = stockOutOrderDO.getOrganizationId(); // 前端传递的 organizationId
|
||||
|
||||
// 数据权限:根据 organizationId 来设置查询权限
|
||||
// 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己
|
||||
if (userOrganizationId != null && userOrganizationId == 2827L) {
|
||||
// 南光组织(organizationId=2827):可以查询所有组织的数据
|
||||
// 如果前端传递了 organizationId(包括2827或其他组织),使用前端传递的值进行过滤
|
||||
// 如果前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据
|
||||
if (frontendOrganizationId != null) {
|
||||
// 前端传递了 organizationId(包括2827或其他组织),使用前端传递的值进行过滤
|
||||
stockOutOrderDO.setOrganizationId(frontendOrganizationId);
|
||||
stockOutOrderDO.setTopOrganizationId(null); // 明确设置为 null,避免使用 topOrganizationId 条件
|
||||
} else {
|
||||
// 前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据
|
||||
stockOutOrderDO.setOrganizationId(null);
|
||||
stockOutOrderDO.setTopOrganizationId(null);
|
||||
}
|
||||
} else {
|
||||
// 其他组织:设置organizationId,只查询当前组织的数据
|
||||
// 如果前端传递了 organizationId,验证是否与当前登录用户的组织ID一致
|
||||
if (frontendOrganizationId != null && userOrganizationId != null) {
|
||||
// 前端传递了 organizationId,验证是否与当前登录用户的组织ID一致
|
||||
if (!frontendOrganizationId.equals(userOrganizationId)) {
|
||||
// 前端传递了其他组织的 organizationId,强制使用当前登录用户的组织ID,防止越权查询
|
||||
stockOutOrderDO.setOrganizationId(userOrganizationId);
|
||||
}
|
||||
// 如果前端传递的 organizationId 与当前登录用户的组织ID一致,使用前端传递的值
|
||||
} else {
|
||||
// 前端没有传递 organizationId,使用当前登录用户的组织ID
|
||||
if (userOrganizationId != null) {
|
||||
stockOutOrderDO.setOrganizationId(userOrganizationId);
|
||||
}
|
||||
}
|
||||
// 只有当 organizationId 为 null 时,才使用 topOrganizationId 作为查询条件
|
||||
// 如果 organizationId 不为 null,则优先使用 organizationId,不使用 topOrganizationId
|
||||
if (stockOutOrderDO.getOrganizationId() == null) {
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1) {
|
||||
stockOutOrderDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
} else {
|
||||
// 对于非2827组织,必须设置 topOrganizationId=2827
|
||||
stockOutOrderDO.setTopOrganizationId(2827L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 库管角色过滤:不展示已创建(status=1)的出库单
|
||||
// 出库状态: 1-已创建 ...
|
||||
// if (loginUser != null) {
|
||||
// String targetRoleCode = "KGY-001";
|
||||
// boolean isKuGuan = false;
|
||||
//
|
||||
// String roleCode = loginUser.getUserPo() != null ? loginUser.getUserPo().getRoleCode() : null;
|
||||
// if (StringUtils.isNotBlank(roleCode) && roleCode.contains(targetRoleCode)) {
|
||||
// isKuGuan = true;
|
||||
// }
|
||||
//
|
||||
// if (!isKuGuan && loginUser.getRoleList() != null) {
|
||||
// isKuGuan = loginUser.getRoleList().stream()
|
||||
// .anyMatch(rc -> StringUtils.isNotBlank(rc) && rc.contains(targetRoleCode));
|
||||
// }
|
||||
//
|
||||
// if (!isKuGuan && loginUser.getRoles() != null) {
|
||||
// isKuGuan = loginUser.getRoles().stream()
|
||||
// .anyMatch(rc -> StringUtils.isNotBlank(rc) && rc.contains(targetRoleCode));
|
||||
// }
|
||||
//
|
||||
// if (isKuGuan) {
|
||||
// Integer currentGtStatus = stockOutOrderDO.getGtStatus();
|
||||
// if (currentGtStatus == null || currentGtStatus < 1) {
|
||||
// stockOutOrderDO.setGtStatus(1); // status > 1
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
List<ReservationStockOutOrderPO> stockOutOrderPOS = stockOutOrderDomainService.queryList(stockOutOrderDO);
|
||||
// for (ReservationStockOutOrderPO stockOutOrderPO : stockOutOrderPOS) {
|
||||
// ReservationStockOutOrderPO stockOutOrderPO1 = stockOutOrderDomainService.getInfoChildren(stockOutOrderPO.getOutOrderId());
|
||||
// List<ReservationOutMaterialDetailPO> materialDetailList = stockOutOrderPO1 != null ? stockOutOrderPO1.getMaterialDetailList() : null;
|
||||
// if (materialDetailList == null) {
|
||||
// materialDetailList = Collections.emptyList();
|
||||
// }
|
||||
// BigDecimal reduce = materialDetailList.stream().map(ReservationOutMaterialDetailPO::getOutboundQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
// stockOutOrderPO.setTotalOutboundQuantity(reduce);
|
||||
// stockOutOrderPO.setAllocationQuantity(stockOutOrderPO1 != null ? stockOutOrderPO1.getAllocationQuantity() : null);
|
||||
// String outOrderNumber = stockOutOrderPO.getOutOrderNumber();
|
||||
// // PDA复核物料总数量:使用实际下发时的拣货完成数量(picking_material_detail),拣货多少显示多少
|
||||
// // PDA端物料总数量取quantity字段、复核总数量取checkQuantity字段,需同时设置quantity和pickingQuantity
|
||||
// BigDecimal actualPickingQty = pickingMaterialDetailService.sumPickingQuantityByOutOrderNumber(outOrderNumber);
|
||||
// BigDecimal displayPickingQty = actualPickingQty.compareTo(BigDecimal.ZERO) > 0 ? actualPickingQty : (stockOutOrderPO1 != null ? stockOutOrderPO1.getPickingQuantity() : BigDecimal.ZERO);
|
||||
// stockOutOrderPO.setPickingQuantity(displayPickingQty);
|
||||
// stockOutOrderPO.setQuantity(displayPickingQty);
|
||||
// // 物料种类:优先从picking_material_detail统计,为0时从out_material_detail按料号去重
|
||||
// Integer materialTypeCount = pickingMaterialDetailService.countMaterialTypesByOutOrderNumber(outOrderNumber);
|
||||
// if (materialTypeCount != null && materialTypeCount > 0) {
|
||||
// stockOutOrderPO.setMaterialQuantity(materialTypeCount);
|
||||
// } else {
|
||||
// long count = materialDetailList.stream()
|
||||
// .map(d -> d.getMaterialBaseInfoId() != null ? String.valueOf(d.getMaterialBaseInfoId()) : d.getMaterialCode())
|
||||
// .filter(Objects::nonNull)
|
||||
// .distinct()
|
||||
// .count();
|
||||
// stockOutOrderPO.setMaterialQuantity((int) count);
|
||||
// }
|
||||
// // 复核总数量:从out_material_detail汇总check_quantity
|
||||
// BigDecimal checkSum = materialDetailList.stream().map(ReservationOutMaterialDetailPO::getCheckQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
// stockOutOrderPO.setCheckQuantity(checkSum);
|
||||
// }
|
||||
return stockOutOrderPOS;
|
||||
}
|
||||
|
||||
}
|
||||
+12
@@ -210,4 +210,16 @@ public class ReservationStockOutOrderApi extends BaseController {
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("查询出库单列表")
|
||||
@GetMapping("/list1")
|
||||
public TableDataInfo list1(ReservationStockOutOrderDTO stockOutOrderDTO)
|
||||
{
|
||||
//转换实体
|
||||
ReservationStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
|
||||
startPage();
|
||||
List<ReservationStockOutOrderPO> list = stockOutOrderApplicationService.queryList1(stockOutOrderDO);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user