Просмотр исходного кода

对账数据筛选日期调整,客户查看去掉多余步骤,另写方法

hejq 7 лет назад
Родитель
Сommit
1bdf1b8e6b

+ 16 - 0
src/main/java/com/uas/platform/b2b/service/VendorService.java

@@ -183,4 +183,20 @@ public interface VendorService {
      * @return 转移结果
      */
     boolean transferVendorToUser(Long vendorUU, List<User> users);
+
+    /**
+     * 设置联系人
+     *
+     * @param vendorList 供应商客户资料
+     * @param idList 供应商关系表idList
+     */
+    void setPurchaseContacts(List<Vendor> vendorList, List<Long> idList);
+
+    /**
+     * (针对供应商)设置业务对接人
+     *
+     * @param vendorList 客户列表
+     * @param idList 供应商关系表id
+     */
+    void setSaleContacts(List<Vendor> vendorList, List<Long> idList);
 }

+ 5 - 3
src/main/java/com/uas/platform/b2b/service/impl/ErpProdIODetailServiceImpl.java

@@ -39,7 +39,7 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
         /*
          * 1、 如果前端指定开始截止时间,直接使用
          * 2、 如果前端未指定,采用选择月份,使用月份处理
-         * 3、 截止时间筛选采用传入截止时间加1天(86400000毫秒)小于的做法,这样能取到当天所有数据
+         * 3、 截止时间筛为指定月份加1,即下月一号,采用小于这天,能取到当月所有数据
          */
         final Integer oneDayMilliseconds = 86400000;
         boolean onlyCheckDate = (null == fromDate || null == endDate) && null != checkDate;
@@ -49,13 +49,15 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
         } else if (onlyCheckDate) {
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
             Date date;
+            Date checkTime;
             try {
                 date = DateUtils.dateAddMonth(format.parse(checkDate), 1);
+                checkTime = format.parse(checkDate);
             } catch (ParseException e) {
                 throw new IllegalOperatorException("时间格式异常");
             }
-            sqlFromDate = DateFormatUtils.DATE_FORMAT.format(date);
-            sqlEndDate = DateFormatUtils.DATE_FORMAT.format(new Date(date.getTime() + oneDayMilliseconds));
+            sqlFromDate = DateFormatUtils.DATE_FORMAT.format(checkTime);
+            sqlEndDate = DateFormatUtils.DATE_FORMAT.format(date);
         } else {
             throw new IllegalOperatorException("请选择对账时间");
         }

+ 37 - 1
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApCheckServiceImpl.java

@@ -19,16 +19,22 @@ import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.SourceForApcheck;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.model.util.UnCheckedCountSqls;
+import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.OrderRedDotService;
 import com.uas.platform.b2b.service.PurchaseApCheckService;
+import com.uas.platform.b2b.service.UserService;
 import com.uas.platform.b2b.service.VendorService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.exception.IllegalOperatorException;
+import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
+import com.uas.search.b2b.model.MultiValue;
 import com.uas.search.b2b.model.SPage;
+import com.uas.search.b2b.model.Sort;
+import com.uas.search.b2b.util.SearchConstants;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
@@ -81,6 +87,12 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
 	@Autowired
     private VendorService vendorService;
 
+	@Autowired
+    private SearchService searchService;
+
+	@Autowired
+    private UserService userService;
+
 	@Override
 	public List<PurchaseApCheck> findNotUploadAPcheck() {
 		return purchaseApCheckDao.findByCustUuAndStatusAndCheckStatus(SystemSession.getUser().getEnterprise().getUu(),
@@ -480,7 +492,7 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
      */
     @Override
     public SPage<Vendor> getCustomerInfo(PageParams params, String keyword) {
-        SPage<Vendor> vendorSPage = vendorService.getCustomerInfo(params, keyword);
+        SPage<Vendor> vendorSPage = searchCustomerInfo(params, keyword);
         final Long enUU = SystemSession.getUser().getEnterprise().getUu();
         vendorSPage.getContent().stream().filter(customer -> null != customer.getApcheck() && customer.getApcheck() == 1)
             .forEach(customer -> {
@@ -499,4 +511,28 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
             });
         return vendorSPage;
     }
+
+    private SPage<Vendor> searchCustomerInfo(PageParams params, String keyword) {
+        com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
+        List<Object> vendInfo = new ArrayList<>();
+        vendInfo.add(SystemSession.getUser().getEnterprise().getUu());
+        vendInfo.add(SystemSession.getUser().getEnterprise().getEnBussinessCode());
+        pageParams.getFilters().put("ve_vendenuu", new MultiValue(vendInfo, false));
+        pageParams.getFilters().put("ve_custswitch", Constant.YES);
+        List<Sort> sortList = new ArrayList<>();
+        SearchFilter filter = userService.distribute();
+        if (filter != null && filter.getDistribute() == null) {
+            return null;
+        }
+        if (filter != null && !CollectionUtils.isEmpty(filter.getDistribute())) {
+            List<Object> list = new ArrayList<>();
+            for (Object object : filter.getDistribute()) {
+                list.add(object);
+            }
+            pageParams.getFilters().put("ve_myenuu", new MultiValue(list, true));
+        }
+        sortList.add(new Sort("ve_id", false, Sort.Type.INT, new Long(1)));
+        pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
+        return searchService.searchCustCheckIds(keyword, pageParams);
+    }
 }

+ 22 - 6
src/main/java/com/uas/platform/b2b/service/impl/VendorsServiceImpl.java

@@ -42,6 +42,7 @@ import javax.persistence.criteria.Root;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Objects;
 import java.util.Set;
@@ -424,16 +425,23 @@ public class VendorsServiceImpl implements VendorService {
      * @param vendorList 供应商客户资料
      * @param idList 供应商关系表idList
      */
-    private void setPurchaseContacts(List<Vendor> vendorList, List<Long> idList) {
+    @Override
+    public void setPurchaseContacts(List<Vendor> vendorList, List<Long> idList) {
         List<Distribute> distributeList = distributeDao.findByVendorId(idList);
+        List<Distribute> distributeListCopy = new ArrayList<>();
+        distributeListCopy.addAll(distributeList);
         if (!CollectionUtil.isEmpty(vendorList)) {
             vendorList.forEach(vendor -> {
                 Set<String> contacts = new HashSet<>();
-                distributeList.forEach(distribute -> {
+                // 使用后移除,减少后面循环次数
+                Iterator<Distribute> iterator = distributeListCopy.iterator();
+                while (iterator.hasNext()) {
+                    Distribute distribute = iterator.next();
                     if (Objects.equals(vendor.getId(), distribute.getVendorId())) {
                         contacts.add(distribute.getUser().getUserName());
+                        iterator.remove();
                     }
-                });
+                }
                 vendor.setPurchaseContacts(contacts);
             });
         }
@@ -466,16 +474,24 @@ public class VendorsServiceImpl implements VendorService {
      * @param vendorList 客户列表
      * @param idList 供应商关系表id
      */
-    private void setSaleContacts(List<Vendor> vendorList, List<Long> idList) {
+    @Override
+    public void setSaleContacts(List<Vendor> vendorList, List<Long> idList) {
         List<VendorDistribute> distributeList = vendorDistributeDao.findByVendorId(idList);
+        List<VendorDistribute> distributeListCopy = new ArrayList<>();
+        distributeListCopy.addAll(distributeList);
         if (!CollectionUtil.isEmpty(vendorList)) {
             vendorList.forEach(vendor -> {
                 Set<String> contacts = new HashSet<>();
-                distributeList.forEach(distribute -> {
+                // 使用后移除,减少后面循环次数
+                // 使用后移除,减少后面循环次数
+                Iterator<VendorDistribute> iterator = distributeListCopy.iterator();
+                while (iterator.hasNext()) {
+                    VendorDistribute distribute = iterator.next();
                     if (Objects.equals(vendor.getId(), distribute.getVendorId())) {
                         contacts.add(distribute.getUser().getUserName());
+                        iterator.remove();
                     }
-                });
+                }
                 vendor.setSaleContacts(contacts);
             });
         }