|
@@ -1,8 +1,10 @@
|
|
|
package com.uas.platform.b2b.service.impl;
|
|
package com.uas.platform.b2b.service.impl;
|
|
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.uas.platform.b2b.core.util.ContextUtils;
|
|
import com.uas.platform.b2b.core.util.ContextUtils;
|
|
|
import com.uas.platform.b2b.core.util.DateFormatUtils;
|
|
import com.uas.platform.b2b.core.util.DateFormatUtils;
|
|
|
import com.uas.platform.b2b.core.util.DateUtils;
|
|
import com.uas.platform.b2b.core.util.DateUtils;
|
|
|
|
|
+import com.uas.platform.b2b.core.util.StringUtil;
|
|
|
import com.uas.platform.b2b.core.util.ThreadUtils;
|
|
import com.uas.platform.b2b.core.util.ThreadUtils;
|
|
|
import com.uas.platform.b2b.dao.CommonDao;
|
|
import com.uas.platform.b2b.dao.CommonDao;
|
|
|
import com.uas.platform.b2b.dao.EnterpriseDao;
|
|
import com.uas.platform.b2b.dao.EnterpriseDao;
|
|
@@ -10,6 +12,7 @@ import com.uas.platform.b2b.dao.PurchaseApCheckDao;
|
|
|
import com.uas.platform.b2b.dao.PurchaseApCheckDoneDao;
|
|
import com.uas.platform.b2b.dao.PurchaseApCheckDoneDao;
|
|
|
import com.uas.platform.b2b.dao.PurchaseApCheckItemDao;
|
|
import com.uas.platform.b2b.dao.PurchaseApCheckItemDao;
|
|
|
import com.uas.platform.b2b.dao.PurchaseApCheckTodoDao;
|
|
import com.uas.platform.b2b.dao.PurchaseApCheckTodoDao;
|
|
|
|
|
+import com.uas.platform.b2b.dao.VendorDao;
|
|
|
import com.uas.platform.b2b.event.PurchaseApCheckReplyReleaseEvent;
|
|
import com.uas.platform.b2b.event.PurchaseApCheckReplyReleaseEvent;
|
|
|
import com.uas.platform.b2b.model.Enterprise;
|
|
import com.uas.platform.b2b.model.Enterprise;
|
|
|
import com.uas.platform.b2b.model.OrderRedDotAll;
|
|
import com.uas.platform.b2b.model.OrderRedDotAll;
|
|
@@ -28,6 +31,7 @@ import com.uas.platform.b2b.service.OrderRedDotService;
|
|
|
import com.uas.platform.b2b.service.PurchaseApCheckService;
|
|
import com.uas.platform.b2b.service.PurchaseApCheckService;
|
|
|
import com.uas.platform.b2b.service.UserService;
|
|
import com.uas.platform.b2b.service.UserService;
|
|
|
import com.uas.platform.b2b.service.VendorService;
|
|
import com.uas.platform.b2b.service.VendorService;
|
|
|
|
|
+import com.uas.platform.b2b.support.SPageUtils;
|
|
|
import com.uas.platform.b2b.support.SystemSession;
|
|
import com.uas.platform.b2b.support.SystemSession;
|
|
|
import com.uas.platform.core.exception.IllegalOperatorException;
|
|
import com.uas.platform.core.exception.IllegalOperatorException;
|
|
|
import com.uas.platform.core.model.Constant;
|
|
import com.uas.platform.core.model.Constant;
|
|
@@ -35,12 +39,14 @@ import com.uas.platform.core.model.PageInfo;
|
|
|
import com.uas.platform.core.model.PageParams;
|
|
import com.uas.platform.core.model.PageParams;
|
|
|
import com.uas.platform.core.model.Status;
|
|
import com.uas.platform.core.model.Status;
|
|
|
import com.uas.platform.core.persistence.criteria.PredicateUtils;
|
|
import com.uas.platform.core.persistence.criteria.PredicateUtils;
|
|
|
|
|
+import com.uas.ps.core.util.StringUtils;
|
|
|
import com.uas.search.b2b.model.MultiValue;
|
|
import com.uas.search.b2b.model.MultiValue;
|
|
|
import com.uas.search.b2b.model.SPage;
|
|
import com.uas.search.b2b.model.SPage;
|
|
|
import com.uas.search.b2b.model.Sort;
|
|
import com.uas.search.b2b.model.Sort;
|
|
|
import com.uas.search.b2b.util.SearchConstants;
|
|
import com.uas.search.b2b.util.SearchConstants;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Page;
|
|
|
|
|
+import org.springframework.data.domain.PageImpl;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -95,6 +101,9 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private UserService userService;
|
|
private UserService userService;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private VendorDao vendorDao;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* RMB
|
|
* RMB
|
|
|
*/
|
|
*/
|
|
@@ -512,15 +521,16 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public SPage<Vendor> getCustomerInfo(PageParams params, String keyword, String checkDate, Long fromDate, Long endDate) {
|
|
public SPage<Vendor> getCustomerInfo(PageParams params, String keyword, String checkDate, Long fromDate, Long endDate) {
|
|
|
- SPage<Vendor> vendorSPage = searchCustomerInfo(params, keyword);
|
|
|
|
|
|
|
+ SPage<Vendor> vendorSPage = findCustomerByPage(params, keyword);
|
|
|
final Long enUU = SystemSession.getUser().getEnterprise().getUu();
|
|
final Long enUU = SystemSession.getUser().getEnterprise().getUu();
|
|
|
if (!CollectionUtils.isEmpty(vendorSPage.getContent())) {
|
|
if (!CollectionUtils.isEmpty(vendorSPage.getContent())) {
|
|
|
vendorSPage.getContent().stream().filter(customer -> null != customer.getApcheck() && customer.getApcheck() == 1)
|
|
vendorSPage.getContent().stream().filter(customer -> null != customer.getApcheck() && customer.getApcheck() == 1)
|
|
|
.forEach(customer -> {
|
|
.forEach(customer -> {
|
|
|
Long customerUU = customer.getMyEnUU();
|
|
Long customerUU = customer.getMyEnUU();
|
|
|
- // 应收总额
|
|
|
|
|
- List<TradeCount> totalTrades = getDueTrade(enUU, customerUU);
|
|
|
|
|
- customer.setTotalCount(totalTrades);
|
|
|
|
|
|
|
+ if (!StringUtils.isEmpty(customer.getTotalCountString())) {
|
|
|
|
|
+ List<TradeCount> tradeCounts = JSON.parseArray(customer.getTotalCountString(), TradeCount.class);
|
|
|
|
|
+ customer.setTotalCount(tradeCounts);
|
|
|
|
|
+ }
|
|
|
// 本月应收
|
|
// 本月应收
|
|
|
List<TradeCount> thisMonthTrades = getThisMonthTrade(enUU, customerUU, checkDate, fromDate, endDate);
|
|
List<TradeCount> thisMonthTrades = getThisMonthTrade(enUU, customerUU, checkDate, fromDate, endDate);
|
|
|
customer.setThisMonthCount(thisMonthTrades);
|
|
customer.setThisMonthCount(thisMonthTrades);
|
|
@@ -529,6 +539,43 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
|
|
|
return vendorSPage;
|
|
return vendorSPage;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 通过分页信息查询客户信息
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param params 分页参数
|
|
|
|
|
+ * @param keyword 搜索关键词
|
|
|
|
|
+ * @return 搜索结果
|
|
|
|
|
+ */
|
|
|
|
|
+ private SPage<Vendor> findCustomerByPage(PageParams params, String keyword) {
|
|
|
|
|
+ // 只使用前端的页码和分页大小,防止排序信息注入
|
|
|
|
|
+ SearchFilter filter = userService.distribute();
|
|
|
|
|
+ if (filter != null && filter.getDistribute() == null) {
|
|
|
|
|
+ return new SPage<>();
|
|
|
|
|
+ }
|
|
|
|
|
+ PageInfo pageInfo = new PageInfo(params.getPage(), params.getCount());
|
|
|
|
|
+ org.springframework.data.domain.Sort sort = new org.springframework.data.domain.Sort( org.springframework.data.domain.Sort.Direction.DESC, "totalCountString");
|
|
|
|
|
+ pageInfo.setSort(sort);
|
|
|
|
|
+ /*
|
|
|
|
|
+ * 过滤条件
|
|
|
|
|
+ * 1、 当前企业为供应商
|
|
|
|
|
+ * 2、 客户已分配
|
|
|
|
|
+ * 3、 开启B2B对账
|
|
|
|
|
+ * 4、 需要对账价格不为空
|
|
|
|
|
+ */
|
|
|
|
|
+ pageInfo.filter("vendEnUU", SystemSession.getUser().getEnterprise().getUu());
|
|
|
|
|
+ pageInfo.filter("apcheck", Constant.YES);
|
|
|
|
|
+ pageInfo.expression(PredicateUtils.ne("totalCountString", "", true));
|
|
|
|
|
+ if (filter != null) {
|
|
|
|
|
+ pageInfo.expression(PredicateUtils.in("myEnUU", filter.getDistribute(), true));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!StringUtils.isEmpty(keyword)) {
|
|
|
|
|
+ pageInfo.expression(PredicateUtils.like("myEnterprise.enName", keyword, true));
|
|
|
|
|
+ }
|
|
|
|
|
+ Page<Vendor> vendors = vendorDao.findAll((Root<Vendor> root, CriteriaQuery<?> query, CriteriaBuilder builder) ->
|
|
|
|
|
+ query.where(pageInfo.getPredicates(root, query, builder)).getRestriction(), pageInfo);
|
|
|
|
|
+ return SPageUtils.covertSPage(vendors);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 获取指定月份应收金额
|
|
* 获取指定月份应收金额
|
|
|
*
|
|
*
|