出口订单查询
This commit is contained in:
+118
@@ -1297,4 +1297,122 @@ public class ReservationStockOutOrderApplicationService {
|
|||||||
public void returnGoods(String invoiceNumber, String transportationNumber, String orderId,String pictureUrl) {
|
public void returnGoods(String invoiceNumber, String transportationNumber, String orderId,String pictureUrl) {
|
||||||
stockOutOrderDomainService.returnGoods(invoiceNumber, transportationNumber, orderId, 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();
|
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