|
@@ -1,6 +1,7 @@
|
|
|
package com.fjhx.purchase.service.subscribe.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.alibaba.fastjson2.JSONWriter;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
@@ -70,42 +71,38 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
|
|
|
@Override
|
|
|
public Page<SubscribeDetailVo> getPage(SubscribeDetailSelectDto dto) {
|
|
|
IWrapper<SubscribeDetail> wrapper = getWrapper();
|
|
|
- //申购单号
|
|
|
- wrapper.like(ObjectUtil.isNotEmpty(dto.getCode()),"t2.code",dto.getCode());
|
|
|
-
|
|
|
- //申购时间
|
|
|
- wrapper.ge(ObjectUtil.isNotEmpty(dto.getBeginTime()),"t2.create_time",dto.getBeginTime());
|
|
|
- wrapper.ge(ObjectUtil.isNotEmpty(dto.getEndTime()),"t2.create_time",dto.getEndTime());
|
|
|
- wrapper.ge(ObjectUtil.isNotEmpty(dto.getSubscribeStatus()),"t2.subcribe_status",dto.getSubscribeStatus());
|
|
|
-
|
|
|
+ // 申购单号
|
|
|
+ wrapper.like("t2", Subscribe::getCode, dto.getCode());
|
|
|
+ // 申购时间
|
|
|
+ wrapper.between("t2", Subscribe::getCreateTime, dto.getBeginTime(), dto.getEndTime());
|
|
|
+ // 申购状态
|
|
|
+ wrapper.ge("t2", Subscribe::getSubcribeStatus, dto.getSubscribeStatus());
|
|
|
+ // 关键字
|
|
|
+ wrapper.like("t2", Subscribe::getCode, dto.getKeyword());
|
|
|
+ // 状态
|
|
|
if (ObjectUtil.isNotEmpty(dto.getStatus())) {
|
|
|
wrapper.in("t1", SubscribeDetail::getStatus, Arrays.asList(dto.getStatus().split(",")));
|
|
|
}
|
|
|
|
|
|
// 如果类型存在带入类型查询
|
|
|
- List<ProductInfoVo> productList = productInfoService.getListByProductType(dto.getProductType(),
|
|
|
- dto.getDefinition(),
|
|
|
- dto.getProductName(),
|
|
|
- dto.getProductCode()
|
|
|
- );
|
|
|
+ List<ProductInfoVo> productList = productInfoService.getListByProductType(
|
|
|
+ dto.getProductType(), dto.getDefinition(), dto.getProductName(), dto.getProductCode());
|
|
|
if (ObjectUtil.isEmpty(productList)) {
|
|
|
return new Page<>();
|
|
|
}
|
|
|
List<Long> productIds = productList.stream().map(ProductInfoVo::getId).collect(Collectors.toList());
|
|
|
wrapper.in("t1", SubscribeDetail::getBussinessId, productIds);
|
|
|
- wrapper.like("t2", Subscribe::getCode, dto.getKeyword());
|
|
|
|
|
|
// 维多利亚扩展根据到货仓库id过滤
|
|
|
wrapper.eq("json_unquote(t2.victoriatourist_json -> '$.receiptWarehouseId')", dto.getReceiptWarehouseId());
|
|
|
- if(ObjectUtil.isNotEmpty(dto.getDeptId())) {
|
|
|
- wrapper.eq( "json_unquote(pi.victoriatourist_json -> '$.deptId')", dto.getDeptId().toString());
|
|
|
+ if (ObjectUtil.isNotEmpty(dto.getDeptId())) {
|
|
|
+ wrapper.eq("json_unquote(pi.victoriatourist_json -> '$.deptId')", dto.getDeptId().toString());
|
|
|
}
|
|
|
- //待采购过滤掉指定状态 例如不要 99 作废
|
|
|
- if (ObjectUtil.isNotEmpty(dto.getNeStatus())) {
|
|
|
+
|
|
|
+ // 待采购过滤掉指定状态 例如不要 99 作废
|
|
|
+ if (StrUtil.isNotBlank(dto.getNeStatus())) {
|
|
|
wrapper.notIn("t1", SubscribeDetail::getStatus, dto.getNeStatus().split(","));
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
wrapper.orderByDesc("t1", SubscribeDetail::getCreateTime);
|
|
|
|
|
|
Page<SubscribeDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
@@ -115,6 +112,7 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
+ // 赋值产品信息
|
|
|
for (SubscribeDetailVo s : list) {
|
|
|
Map<Long, ProductInfoVo> productMap = productList.stream().collect(Collectors.toMap(ProductInfoVo::getId, Function.identity()));
|
|
|
ProductInfoVo productInfo = productMap.get(s.getBussinessId());
|
|
@@ -131,21 +129,18 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
|
|
|
s.setDeptId(json.getLong("deptId"));
|
|
|
}
|
|
|
|
|
|
+ // 赋值采购数量
|
|
|
List<Long> subscribeDetailIds = list.stream().map(SubscribeDetail::getId).collect(Collectors.toList());
|
|
|
- if (ObjectUtil.isNotEmpty(subscribeDetailIds)) {
|
|
|
- List<PurchaseDetail> purchaseDetailsList = purchaseDetailService.list(q -> q.in(PurchaseDetail::getSubscribeDetailId, subscribeDetailIds));
|
|
|
- Map<Long, List<PurchaseDetail>> purchaseDetailsMap = purchaseDetailsList.stream().collect(Collectors.groupingBy(PurchaseDetail::getSubscribeDetailId));
|
|
|
- for (SubscribeDetailVo subscribeDetailVo : list) {
|
|
|
- List<PurchaseDetail> purchaseDetails = purchaseDetailsMap.get(subscribeDetailVo.getId());
|
|
|
- if (ObjectUtil.isEmpty(purchaseDetails)) {
|
|
|
- subscribeDetailVo.setPurchaseCount(BigDecimal.ZERO);
|
|
|
- continue;
|
|
|
- }
|
|
|
- BigDecimal count = purchaseDetails.stream()
|
|
|
- .map(PurchaseDetail::getCount)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- subscribeDetailVo.setPurchaseCount(count);
|
|
|
+ List<PurchaseDetail> purchaseDetailsList = purchaseDetailService.list(q -> q.in(PurchaseDetail::getSubscribeDetailId, subscribeDetailIds));
|
|
|
+ Map<Long, List<PurchaseDetail>> purchaseDetailsMap = purchaseDetailsList.stream().collect(Collectors.groupingBy(PurchaseDetail::getSubscribeDetailId));
|
|
|
+ for (SubscribeDetailVo subscribeDetailVo : list) {
|
|
|
+ List<PurchaseDetail> purchaseDetails = purchaseDetailsMap.get(subscribeDetailVo.getId());
|
|
|
+ if (ObjectUtil.isEmpty(purchaseDetails)) {
|
|
|
+ subscribeDetailVo.setPurchaseCount(BigDecimal.ZERO);
|
|
|
+ continue;
|
|
|
}
|
|
|
+ BigDecimal count = purchaseDetails.stream().map(PurchaseDetail::getCount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ subscribeDetailVo.setPurchaseCount(count);
|
|
|
}
|
|
|
|
|
|
return page;
|