|
|
@@ -41,6 +41,7 @@ import javax.validation.Valid;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -109,6 +110,7 @@ public class AgencyOrderController extends BladeController {
|
|
|
lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
|
|
|
}
|
|
|
lambdaQueryWrapper.eq(Func.isNotEmpty(order.getStorageId()), Order::getStorageId, order.getStorageId());//仓库id
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getBrand()), Order::getBrand, order.getBrand());//仓库id
|
|
|
lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()), Order::getBusinesDate, order.getContractStartDate());//合同日期开始
|
|
|
lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractEndDate()), Order::getBusinesDate, order.getContractEndDate());//合同日期结束
|
|
|
lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()), Order::getSrcOrderNo, order.getSrcOrderNo());//订单来源
|
|
|
@@ -145,43 +147,42 @@ public class AgencyOrderController extends BladeController {
|
|
|
List<Long> userIds = new ArrayList<>();
|
|
|
List<Long> corpIds = new ArrayList<>();
|
|
|
List<Long> ids = page.getRecords().stream().map(Order::getId).collect(Collectors.toList());
|
|
|
- List<Long> corpId = page.getRecords().stream().map(Order::getCorpId).distinct().collect(Collectors.toList());
|
|
|
+ List<Long> corpId = page.getRecords().stream().map(Order::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
if (!corpId.isEmpty()) {
|
|
|
corpIds.addAll(corpId);
|
|
|
}
|
|
|
- List<Long> belongToCorpId = page.getRecords().stream().map(Order::getBelongToCorpId).filter(toCorpId -> !corpIds.contains(toCorpId)).collect(Collectors.toList());
|
|
|
+ List<Long> belongToCorpId = page.getRecords().stream().map(Order::getBelongToCorpId).filter(Objects::nonNull).filter(toCorpId -> !corpIds.contains(toCorpId)).collect(Collectors.toList());
|
|
|
if (!belongToCorpId.isEmpty()) {
|
|
|
corpIds.addAll(belongToCorpId);
|
|
|
}
|
|
|
- List<Long> productionPlant = page.getRecords().stream().map(Order::getProductionPlant).filter(plant -> !corpIds.contains(plant)).collect(Collectors.toList());
|
|
|
+ List<Long> productionPlant = page.getRecords().stream().map(Order::getProductionPlant).filter(Objects::nonNull).filter(plant -> !corpIds.contains(plant)).collect(Collectors.toList());
|
|
|
if (!productionPlant.isEmpty()) {
|
|
|
corpIds.addAll(productionPlant);
|
|
|
}
|
|
|
- List<Long> createUser = page.getRecords().stream().map(Order::getCreateUser).distinct().collect(Collectors.toList());
|
|
|
+ List<Long> createUser = page.getRecords().stream().map(Order::getCreateUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
if (!createUser.isEmpty()) {
|
|
|
userIds.addAll(createUser);
|
|
|
}
|
|
|
- List<Long> updateUser = page.getRecords().stream().map(Order::getUpdateUser).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
|
|
|
+ List<Long> updateUser = page.getRecords().stream().map(Order::getUpdateUser).filter(Objects::nonNull).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
|
|
|
if (!updateUser.isEmpty()) {
|
|
|
userIds.addAll(updateUser);
|
|
|
}
|
|
|
- String corp = "";
|
|
|
+ StringBuilder corp = new StringBuilder();
|
|
|
List<CorpsDesc> corpsDescList = new ArrayList<>();
|
|
|
- for (Long item : corpId) {
|
|
|
- corp = corp + item + ",";
|
|
|
+ for (Long item : corpIds) {
|
|
|
+ corp.append(item).append(",");
|
|
|
}
|
|
|
- if (ObjectUtils.isNotNull(corp)) {
|
|
|
+ if (ObjectUtils.isNotNull(corp.toString())) {
|
|
|
corpsDescList = corpsDescClient.selectByCorpIds(corp.substring(0, corp.length() - 1));
|
|
|
}
|
|
|
- String user = "";
|
|
|
+ StringBuilder user = new StringBuilder();
|
|
|
List<User> userList = new ArrayList<>();
|
|
|
for (Long item : userIds) {
|
|
|
- user = user + item + ",";
|
|
|
+ user.append(item).append(",");
|
|
|
}
|
|
|
- if (ObjectUtils.isNotNull(user)) {
|
|
|
+ if (ObjectUtils.isNotNull(user.toString())) {
|
|
|
userList = userClient.selectUserList(user.substring(0, user.length() - 1));
|
|
|
}
|
|
|
-
|
|
|
List<OrderItems> list = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
|
|
|
.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(OrderItems::getIsDeleted, 0)
|
|
|
@@ -202,10 +203,10 @@ public class AgencyOrderController extends BladeController {
|
|
|
}
|
|
|
}
|
|
|
if (!userList.isEmpty()) {
|
|
|
- corpsDescList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst()
|
|
|
- .ifPresent(corpsDesc -> item.setCreateUserName(corpsDesc.getCname()));
|
|
|
- corpsDescList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst()
|
|
|
- .ifPresent(corpsDesc -> item.setUpdateUserName(corpsDesc.getCname()));
|
|
|
+ userList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst()
|
|
|
+ .ifPresent(corpsDesc -> item.setCreateUserName(corpsDesc.getRealName()));
|
|
|
+ userList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst()
|
|
|
+ .ifPresent(corpsDesc -> item.setUpdateUserName(corpsDesc.getRealName()));
|
|
|
}
|
|
|
//获取订单明细
|
|
|
if (!list.isEmpty()) {
|
|
|
@@ -332,12 +333,20 @@ public class AgencyOrderController extends BladeController {
|
|
|
* 销售获取平台代理订单明细列表
|
|
|
*/
|
|
|
@GetMapping("/getAgencyOrderItem")
|
|
|
- public R<List<OrderItems>> getAgencyOrderItem(@RequestParam Long id) {
|
|
|
+ public R<List<OrderItems>> getAgencyOrderItem(@RequestParam(value = "id") Long id,
|
|
|
+ @RequestParam(value = "code", required = false) String code,
|
|
|
+ @RequestParam(value = "cname", required = false) String cname) {
|
|
|
LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
lambdaQueryWrapper.eq(OrderItems::getTenantId, SecureUtil.getTenantId());//租户id
|
|
|
lambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0);//订单是否有效
|
|
|
lambdaQueryWrapper.eq(OrderItems::getBillType, OrderTypeEnum.AGENCY_ORDER.getType());//订单类型
|
|
|
lambdaQueryWrapper.eq(OrderItems::getPid, id);
|
|
|
+ if (ObjectUtils.isNotNull(code) || ObjectUtils.isNotNull(cname)) {
|
|
|
+ List<Long> goodsId = goodsDescClient.getGoodId(code, cname, "", "", "", "", "");
|
|
|
+ if (!goodsId.isEmpty()) {
|
|
|
+ lambdaQueryWrapper.in(OrderItems::getItemId, goodsId);
|
|
|
+ }
|
|
|
+ }
|
|
|
lambdaQueryWrapper.orderByDesc(OrderItems::getId);
|
|
|
List<OrderItems> page = orderItemsService.list(lambdaQueryWrapper);
|
|
|
StringBuilder goodsIds = new StringBuilder();
|
|
|
@@ -399,7 +408,8 @@ public class AgencyOrderController extends BladeController {
|
|
|
lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()), Order::getSysNo, order.getSysNo());//系统编号
|
|
|
lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()), Order::getCreateUser, order.getCreateUser());//制单人
|
|
|
lambdaQueryWrapper.eq(Func.isNotEmpty(order.getBelongToCorpId()), Order::getBelongToCorpId, order.getBelongToCorpId());//销售公司
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(order.getChargeMember()), Order::getBelongToCorpId, order.getBelongToCorpId());//业务员
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(order.getProductionPlant()), Order::getProductionPlant, order.getProductionPlant());//销售公司
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(order.getChargeMember()), Order::getChargeMember, order.getChargeMember());//业务员
|
|
|
if (order.getGathering() != null && order.getGathering() == 0) {
|
|
|
lambdaQueryWrapper.eq(Order::getBalanceAmount, BigDecimal.ZERO);
|
|
|
} else if (order.getGathering() != null && order.getGathering() == 1) {
|
|
|
@@ -407,58 +417,88 @@ public class AgencyOrderController extends BladeController {
|
|
|
}
|
|
|
lambdaQueryWrapper.orderByDesc(Order::getId);
|
|
|
IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
|
|
|
-
|
|
|
- StringBuilder corpIds = new StringBuilder();//客户拼接ids
|
|
|
- StringBuilder belongToCorpIds = new StringBuilder();//销售公司ids
|
|
|
- StringBuilder productionPlantIds = new StringBuilder();//生产工厂ids
|
|
|
- StringBuilder createUserIds = new StringBuilder();//创建人id拼接
|
|
|
-
|
|
|
- for (Order orders : page.getRecords()) {
|
|
|
- if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
|
|
|
- corpIds.append(orders.getCorpId()).append(",");
|
|
|
+ if (!page.getRecords().isEmpty()) {
|
|
|
+ List<Long> userIds = new ArrayList<>();
|
|
|
+ List<Long> corpIds = new ArrayList<>();
|
|
|
+ List<Long> ids = page.getRecords().stream().map(Order::getId).collect(Collectors.toList());
|
|
|
+ List<Long> corpId = page.getRecords().stream().map(Order::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
+ if (!corpId.isEmpty()) {
|
|
|
+ corpIds.addAll(corpId);
|
|
|
+ }
|
|
|
+ List<Long> belongToCorpId = page.getRecords().stream().map(Order::getBelongToCorpId).filter(Objects::nonNull).filter(toCorpId -> !corpIds.contains(toCorpId)).collect(Collectors.toList());
|
|
|
+ if (!belongToCorpId.isEmpty()) {
|
|
|
+ corpIds.addAll(belongToCorpId);
|
|
|
+ }
|
|
|
+ List<Long> productionPlant = page.getRecords().stream().map(Order::getProductionPlant).filter(Objects::nonNull).filter(plant -> !corpIds.contains(plant)).collect(Collectors.toList());
|
|
|
+ if (!productionPlant.isEmpty()) {
|
|
|
+ corpIds.addAll(productionPlant);
|
|
|
}
|
|
|
- if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
|
|
|
- belongToCorpIds.append(orders.getBelongToCorpId()).append(",");
|
|
|
+ List<Long> createUser = page.getRecords().stream().map(Order::getCreateUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
+ if (!createUser.isEmpty()) {
|
|
|
+ userIds.addAll(createUser);
|
|
|
+ }
|
|
|
+ List<Long> updateUser = page.getRecords().stream().map(Order::getUpdateUser).filter(Objects::nonNull).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
|
|
|
+ if (!updateUser.isEmpty()) {
|
|
|
+ userIds.addAll(updateUser);
|
|
|
}
|
|
|
- if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
|
|
|
- productionPlantIds.append(orders.getProductionPlant()).append(",");
|
|
|
+ StringBuilder corp = new StringBuilder();
|
|
|
+ List<CorpsDesc> corpsDescList = new ArrayList<>();
|
|
|
+ for (Long item : corpIds) {
|
|
|
+ corp.append(item).append(",");
|
|
|
}
|
|
|
- if (ObjectUtil.isNotEmpty(orders.getCreateUser())) {
|
|
|
- createUserIds.append(orders.getCreateUser()).append(",");
|
|
|
+ if (ObjectUtils.isNotNull(corp.toString())) {
|
|
|
+ corpsDescList = corpsDescClient.selectByCorpIds(corp.substring(0, corp.length() - 1));
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- List<CorpsDesc> corpsDescList = corpsDescClient.selectByCorpIds(corpIds.toString());
|
|
|
- List<CorpsDesc> belongToCorpList = corpsDescClient.selectByCorpIds(belongToCorpIds.toString());
|
|
|
- List<CorpsDesc> productionPlantList = corpsDescClient.selectByCorpIds(productionPlantIds.toString());
|
|
|
- //获得创建人信息
|
|
|
- List<User> createUserList = userClient.selectUserIds(createUserIds.toString());
|
|
|
- if (CollectionUtils.isNotEmpty(page.getRecords())) {
|
|
|
- page.getRecords().forEach(item -> {
|
|
|
- if (ObjectUtil.isNotEmpty(corpsDescList)) {
|
|
|
- corpsDescList.stream().filter(e -> e.getId().equals(item.getCorpId()))
|
|
|
- .findFirst().ifPresent(corpsDesc -> item.setCorpsName(corpsDesc.getCname()));
|
|
|
- }
|
|
|
- if (item.getBelongToCorpId() != null) {
|
|
|
- if (ObjectUtil.isNotEmpty(belongToCorpList)) {
|
|
|
- belongToCorpList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId()))
|
|
|
+ StringBuilder user = new StringBuilder();
|
|
|
+ List<User> userList = new ArrayList<>();
|
|
|
+ for (Long item : userIds) {
|
|
|
+ user.append(item).append(",");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(user.toString())) {
|
|
|
+ userList = userClient.selectUserList(user.substring(0, user.length() - 1));
|
|
|
+ }
|
|
|
+ List<OrderItems> list = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
|
|
|
+ .eq(OrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(OrderItems::getIsDeleted, 0)
|
|
|
+ .in(OrderItems::getPid, ids));
|
|
|
+ for (Order item : page.getRecords()) {
|
|
|
+ if (!corpsDescList.isEmpty()) {
|
|
|
+ if (ObjectUtils.isNotNull(item.getCorpId())) {
|
|
|
+ corpsDescList.stream().filter(e -> e.getId().equals(item.getCorpId()))
|
|
|
+ .findFirst().ifPresent(corpsDesc -> item.setCorpsName(corpsDesc.getCname()));
|
|
|
+ }
|
|
|
+ if (item.getBelongToCorpId() != null) {
|
|
|
+ corpsDescList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId()))
|
|
|
.findFirst().ifPresent(corpsDesc -> item.setBelongToCorpName(corpsDesc.getCname()));
|
|
|
}
|
|
|
- }
|
|
|
- if (item.getProductionPlant() != null) {
|
|
|
- if (ObjectUtil.isNotEmpty(productionPlantList)) {
|
|
|
- productionPlantList.stream().filter(e -> e.getId().equals(item.getProductionPlant()))
|
|
|
+ if (item.getProductionPlant() != null) {
|
|
|
+ corpsDescList.stream().filter(e -> e.getId().equals(item.getProductionPlant()))
|
|
|
.findFirst().ifPresent(corpsDesc -> item.setProductionPlantName(corpsDesc.getCname()));
|
|
|
}
|
|
|
}
|
|
|
- //制单人
|
|
|
- if (item.getCreateUser() != null) {
|
|
|
- if (ObjectUtil.isNotEmpty(createUserList)) {
|
|
|
- createUserList.stream().filter(e -> e.getId().equals(item.getCreateUser()))
|
|
|
+ if (!userList.isEmpty()) {
|
|
|
+ //制单人
|
|
|
+ if (item.getCreateUser() != null) {
|
|
|
+ userList.stream().filter(e -> e.getId().equals(item.getCreateUser()))
|
|
|
.findFirst().ifPresent(corpsDesc -> item.setCreateUserName(corpsDesc.getName()));
|
|
|
}
|
|
|
+ //修改人
|
|
|
+ if (item.getUpdateUser() != null) {
|
|
|
+ userList.stream().filter(e -> e.getId().equals(item.getUpdateUser()))
|
|
|
+ .findFirst().ifPresent(corpsDesc -> item.setUpdateUserName(corpsDesc.getName()));
|
|
|
+ }
|
|
|
}
|
|
|
- });
|
|
|
+ //获取订单明细
|
|
|
+ if (!list.isEmpty()) {
|
|
|
+ List<OrderItems> orderItemsList = list.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(orderItemsList)) {
|
|
|
+ item.setOrderQuantity(orderItemsList.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//数量合计
|
|
|
+ item.setAmount(orderItemsList.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));//销售金额
|
|
|
+ item.setPurchaseAmount(orderItemsList.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO, BigDecimal::add));//采购金额
|
|
|
+ item.setActualQuantity(orderItemsList.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//发货数量
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return R.data(page);
|
|
|
}
|