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

更新对账默认查询数据的方法

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

+ 118 - 115
src/main/java/com/uas/platform/b2b/controller/SaleApCheckController.java

@@ -1,35 +1,14 @@
 package com.uas.platform.b2b.controller;
 
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Sort.Direction;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.ModelAndView;
-
 import com.alibaba.fastjson.JSONObject;
-import com.uas.platform.b2b.model.ErpProdIODetail;
-import com.uas.platform.b2b.model.PurchaseApCheck;
-import com.uas.platform.b2b.model.PurchaseApCheckItem;
-import com.uas.platform.b2b.model.Role;
-import com.uas.platform.b2b.model.SearchFilter;
-import com.uas.platform.b2b.model.Vendor;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.ErpProdIODetailService;
 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.JxlsExcelView;
+import com.uas.platform.b2b.support.SPageUtils;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
 import com.uas.platform.core.exception.IllegalOperatorException;
@@ -37,6 +16,9 @@ import com.uas.platform.core.logging.BufferedLoggerManager;
 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.persistence.criteria.CriterionExpression;
+import com.uas.platform.core.persistence.criteria.LogicalExpression;
+import com.uas.platform.core.persistence.criteria.SimpleExpression;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.platform.core.web.bind.RequestState;
 import com.uas.search.b2b.model.MultiValue;
@@ -44,6 +26,18 @@ import com.uas.search.b2b.model.SPage;
 import com.uas.search.b2b.model.Sort;
 import com.uas.search.b2b.model.Sort.Type;
 import com.uas.search.b2b.util.SearchConstants;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * 
@@ -296,28 +290,21 @@ public class SaleApCheckController {
 	@ResponseBody
 	public SPage<PurchaseApCheck> getPurchaseApChecks(PageParams params, String searchFilter) {
 		logger.log("应收对账单", "作为买家,获取全部应收对账单");
-		JSONObject jsonObject = JSONObject.parseObject(searchFilter);
-		String keyword = jsonObject.getString("keyword");
-		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
-		// 当前登录企业作为买家
-		pageParams.getFilters().put("pa_enuu", SystemSession.getUser().getEnterprise().getUu());
-		// TODO 其他过滤条件
-		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("pa_custuu", new MultiValue(list, true));
-		}
-		// 排序条件
-		List<Sort> sortList = new ArrayList<>();
-		sortList.add(new Sort("pa_id", false, Type.LONG, new Long(1)));
-		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-		return searchService.searchPurchaseApCheckIds(keyword, pageParams);
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+		if (StringUtils.isEmpty(filter.getKeyword())) {
+            PageInfo pageInfo = new PageInfo(params);
+            pageInfo.filter("enUu", SystemSession.getUser().getEnterprise().getUu());
+            SearchFilter distribute = userService.distribute();
+            if (distribute != null && distribute.getDistribute() == null) {
+                return null;
+            }
+            if (distribute != null && !CollectionUtils.isEmpty(distribute.getDistribute())) {
+                filter.setDistribute(distribute.getDistribute());
+            }
+            return SPageUtils.covertSPage(purchaseApCheckService.findAllByPageInfo(pageInfo, null, filter));
+        }
+		com.uas.search.b2b.model.PageParams pageParams = distribute(params, searchFilter);
+		return searchService.searchPurchaseApCheckIds(filter.getKeyword(), pageParams);
 	}
 
 	/**
@@ -327,63 +314,49 @@ public class SaleApCheckController {
 	@ResponseBody
 	public SPage<PurchaseApCheck> getTodoApChecks(PageParams params, String searchFilter) {
 		logger.log("应收对账单", "获取未对账应收对账单");
-		JSONObject jsonObject = JSONObject.parseObject(searchFilter);
-		String keyword = jsonObject.getString("keyword");
-		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
-		// 当前登录企业作为买家
-		pageParams.getFilters().put("pa_enuu", SystemSession.getUser().getEnterprise().getUu());
-		// TODO 其他过滤条件
-		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("pa_custuu", new MultiValue(list, true));
-		}
-		pageParams.getFilters().put("pa_checkstatus", "未对账");
-		// 排序条件
-		List<Sort> sortList = new ArrayList<>();
-		// 如果日期为空,设置的默认时间2000/1/1 1:1:1
-		sortList.add(new Sort("pa_recorddate", false, Type.LONG, new Long(946659661)));
-		sortList.add(new Sort("pa_id", false, Type.LONG, new Long(1)));
-		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-		return searchService.searchPurchaseApCheckIds(keyword, pageParams);
+        SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+        if (StringUtils.isEmpty(filter.getKeyword())) {
+            PageInfo pageInfo = new PageInfo(params);
+            pageInfo.filter("enUu", SystemSession.getUser().getEnterprise().getUu());
+            pageInfo.filter("checkStatus", "未对账");
+            SearchFilter distribute = userService.distribute();
+            if (distribute != null && distribute.getDistribute() == null) {
+                return null;
+            }
+            if (distribute != null && !CollectionUtils.isEmpty(distribute.getDistribute())) {
+                filter.setDistribute(distribute.getDistribute());
+            }
+            return SPageUtils.covertSPage(purchaseApCheckService.findAllByPageInfo(pageInfo, null, filter));
+        }
+		com.uas.search.b2b.model.PageParams pageParams = distribute(params, searchFilter);
+        pageParams.getFilters().put("pa_checkstatus", "未对账");
+		return searchService.searchPurchaseApCheckIds(filter.getKeyword(), pageParams);
 	}
 
-	/**
+    /**
 	 * 作为卖家,获取应收对账单(已确认)
 	 */
 	@RequestMapping(value = "/info/search", params = RequestState.DONE, method = RequestMethod.GET)
 	@ResponseBody
 	public SPage<PurchaseApCheck> getDoneApChecks(PageParams params, String searchFilter) {
 		logger.log("应收对账单", "获取已确认应收对账单");
-		JSONObject jsonObject = JSONObject.parseObject(searchFilter);
-		String keyword = jsonObject.getString("keyword");
-		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
-		// 当前登录企业作为买家
-		pageParams.getFilters().put("pa_enuu", SystemSession.getUser().getEnterprise().getUu());
-		// TODO 其他过滤条件
-		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("pa_custuu", new MultiValue(list, true));
-		}
+        SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+        if (StringUtils.isEmpty(filter.getKeyword())) {
+            PageInfo pageInfo = new PageInfo(params);
+            pageInfo.filter("enUu", SystemSession.getUser().getEnterprise().getUu());
+            pageInfo.filter("checkStatus", "已确认");
+            SearchFilter distribute = userService.distribute();
+            if (distribute != null && distribute.getDistribute() == null) {
+                return null;
+            }
+            if (distribute != null && !CollectionUtils.isEmpty(distribute.getDistribute())) {
+                filter.setDistribute(distribute.getDistribute());
+            }
+            return SPageUtils.covertSPage(purchaseApCheckService.findAllByPageInfo(pageInfo, null, filter));
+        }
+		com.uas.search.b2b.model.PageParams pageParams = distribute(params, searchFilter);
 		pageParams.getFilters().put("pa_checkstatus", "已确认");
-		// 排序条件
-		List<Sort> sortList = new ArrayList<>();
-		sortList.add(new Sort("pa_id", false, Type.LONG, new Long(1)));
-		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-		return searchService.searchPurchaseApCheckIds(keyword, pageParams);
+		return searchService.searchPurchaseApCheckIds(filter.getKeyword(), pageParams);
 	}
 
 	/**
@@ -393,34 +366,64 @@ public class SaleApCheckController {
 	@ResponseBody
 	public SPage<PurchaseApCheck> getEndApChecks(PageParams params, String searchFilter) {
 		logger.log("应收对账单", "获取不同意,已作废应收对账单");
-		JSONObject jsonObject = JSONObject.parseObject(searchFilter);
-		String keyword = jsonObject.getString("keyword");
-		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
-		// 当前登录企业作为买家
-		pageParams.getFilters().put("pa_enuu", SystemSession.getUser().getEnterprise().getUu());
-		// TODO 其他过滤条件
-		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("pa_custuu", new MultiValue(list, true));
-		}
+        SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+        if (StringUtils.isEmpty(filter.getKeyword())) {
+            PageInfo pageInfo = new PageInfo(params);
+            pageInfo.filter("enUu", SystemSession.getUser().getEnterprise().getUu());
+            SearchFilter distribute = userService.distribute();
+            if (distribute != null && distribute.getDistribute() == null) {
+                return null;
+            }
+            if (distribute != null && !CollectionUtils.isEmpty(distribute.getDistribute())) {
+                filter.setDistribute(distribute.getDistribute());
+            }
+            SimpleExpression disAgreed = new SimpleExpression("checkStatus", "不同意", CriterionExpression.Operator.EQ, true);
+            SimpleExpression invalid = new SimpleExpression("checkStatus", "已作废", CriterionExpression.Operator.EQ, true);
+            SimpleExpression[] expressions = new SimpleExpression[]{disAgreed, invalid};
+            LogicalExpression logical = new LogicalExpression(expressions, CriterionExpression.Operator.OR);
+            pageInfo.orExpression(logical);
+            return SPageUtils.covertSPage(purchaseApCheckService.findAllByPageInfo(pageInfo, null, filter));
+        }
+		com.uas.search.b2b.model.PageParams pageParams = distribute(params, searchFilter);
 		List<Object> list = new ArrayList<>();
 		list.add("不同意");
 		list.add("已作废");
 		pageParams.getFilters().put("pa_checkstatus", new MultiValue(list, true));
-		// 排序条件
-		List<Sort> sortList = new ArrayList<>();
-		sortList.add(new Sort("pa_id", false, Type.LONG, new Long(1)));
-		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-		return searchService.searchPurchaseApCheckIds(keyword, pageParams);
+		return searchService.searchPurchaseApCheckIds(filter.getKeyword(), pageParams);
 	}
 
+
+    /**
+     * 设置客户分配条件等
+     *
+     * @param params 分页参数
+     * @param filter 过滤条件
+     * @return
+     */
+    private com.uas.search.b2b.model.PageParams distribute(PageParams params, String filter) {
+        com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, filter);
+        // 当前登录企业作为买家
+        pageParams.getFilters().put("pa_enuu", SystemSession.getUser().getEnterprise().getUu());
+        SearchFilter distribute = userService.distribute();
+        if (distribute != null && distribute.getDistribute() == null) {
+            return null;
+        }
+        if (distribute != null && !CollectionUtils.isEmpty(distribute.getDistribute())) {
+            List<Object> list = new ArrayList<>();
+            for (Object object : distribute.getDistribute()) {
+                list.add(object);
+            }
+            pageParams.getFilters().put("pa_custuu", new MultiValue(list, true));
+        }
+        // 排序条件
+        List<Sort> sortList = new ArrayList<>();
+        // 如果日期为空,设置的默认时间2000/1/1 1:1:1
+        sortList.add(new Sort("pa_recorddate", false, Type.LONG, new Long(946659661)));
+        sortList.add(new Sort("pa_id", false, Type.LONG, new Long(1)));
+        pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
+        return pageParams;
+    }
+
 	/**
 	 * 导出 - 全部
 	 * 

+ 8 - 56
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApCheckServiceImpl.java

@@ -12,16 +12,13 @@ import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
-import com.uas.search.b2b.model.PageParams;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
 
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
@@ -333,27 +330,18 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
 	public Page<PurchaseApCheck> findAllByPageInfo(final PageInfo pageInfo, final String keyword,
 			SearchFilter searchFilter) {
 		if (searchFilter != null) {
-			if (!CollectionUtils.isEmpty(searchFilter.getDistribute()))
+			if (!CollectionUtils.isEmpty(searchFilter.getDistribute())) {
 				pageInfo.expression(PredicateUtils.in("vendUU", searchFilter.getDistribute(), false));
-			if (searchFilter.getFromDate() != null)
-				pageInfo.expression(PredicateUtils.gte("recordDate", new Date(searchFilter.getFromDate()), false));
-			if (searchFilter.getEndDate() != null)
-				pageInfo.expression(PredicateUtils.lte("recordDate", new Date(searchFilter.getEndDate()), false));
+			}
+			if (searchFilter.getFromDate() != null) {
+                pageInfo.expression(PredicateUtils.gte("recordDate", new Date(searchFilter.getFromDate()), false));
+            }
+			if (searchFilter.getEndDate() != null) {
+                pageInfo.expression(PredicateUtils.lte("recordDate", new Date(searchFilter.getEndDate()), false));
+            }
 		}
 		return purchaseApCheckDao.findAll(new Specification<PurchaseApCheck>() {
 			public Predicate toPredicate(Root<PurchaseApCheck> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword)) {
-					List<Object> lists = new ArrayList<>();
-					PageParams pageParams = new PageParams();
-					ModelMap map = new ModelMap();
-					map.put("pa_enuu", SystemSession.getUser().getEnterprise().getUu());
-					pageParams.setFilters(map);
-					for (PurchaseApCheck list : searchService.searchPurchaseApCheckIds(keyword, pageParams)
-							.getContent()) {
-						lists.add(list.getId());
-					}
-					pageInfo.expression(PredicateUtils.in("id", lists, false));
-				}
 				query.where(pageInfo.getPredicates(root, query, builder));
 				return null;
 			}
@@ -373,18 +361,6 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
 		return purchaseApCheckTodoDao.findAll(new Specification<PurchaseApCheckTodo>() {
 			public Predicate toPredicate(Root<PurchaseApCheckTodo> root, CriteriaQuery<?> query,
 					CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword)) {
-					List<Object> lists = new ArrayList<>();
-					PageParams pageParams = new PageParams();
-					ModelMap map = new ModelMap();
-					map.put("pa_enuu", SystemSession.getUser().getEnterprise().getUu());
-					pageParams.setFilters(map);
-					for (PurchaseApCheck list : searchService.searchPurchaseApCheckIds(keyword, pageParams)
-							.getContent()) {
-						lists.add(list.getId());
-					}
-					pageInfo.expression(PredicateUtils.in("id", lists, false));
-				}
 				query.where(pageInfo.getPredicates(root, query, builder));
 				return null;
 			}
@@ -404,18 +380,6 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
 		return purchaseApCheckDoneDao.findAll(new Specification<PurchaseApCheckDone>() {
 			public Predicate toPredicate(Root<PurchaseApCheckDone> root, CriteriaQuery<?> query,
 					CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword)) {
-					List<Object> lists = new ArrayList<>();
-					PageParams pageParams = new PageParams();
-					ModelMap map = new ModelMap();
-					map.put("pa_enuu", SystemSession.getUser().getEnterprise().getUu());
-					pageParams.setFilters(map);
-					for (PurchaseApCheck list : searchService.searchPurchaseApCheckIds(keyword, pageParams)
-							.getContent()) {
-						lists.add(list.getId());
-					}
-					pageInfo.expression(PredicateUtils.in("id", lists, false));
-				}
 				query.where(pageInfo.getPredicates(root, query, builder));
 				return null;
 			}
@@ -435,18 +399,6 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
 		return purchaseApCheckEndDao.findAll(new Specification<PurchaseApCheckEnd>() {
 			public Predicate toPredicate(Root<PurchaseApCheckEnd> root, CriteriaQuery<?> query,
 					CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword)) {
-					List<Object> lists = new ArrayList<>();
-					PageParams pageParams = new PageParams();
-					ModelMap map = new ModelMap();
-					map.put("pa_enuu", SystemSession.getUser().getEnterprise().getUu());
-					pageParams.setFilters(map);
-					for (PurchaseApCheck list : searchService.searchPurchaseApCheckIds(keyword, pageParams)
-							.getContent()) {
-						lists.add(list.getId());
-					}
-					pageInfo.expression(PredicateUtils.in("id", lists, false));
-				}
 				query.where(pageInfo.getPredicates(root, query, builder));
 				return null;
 			}

+ 1 - 1
src/main/webapp/resources/tpl/index/fa/apCheckList.html

@@ -277,7 +277,7 @@
 					</tr>
 				</table>
 			</div>
-			<div style="padding: 10px 20px" ng-show="totalMoney!=0">总金额合计:{{totalMoney | number:2}}</div>
+			<div style="padding: 10px 20px">总金额合计:{{totalMoney | number:2 || 0}}</div>
 		</div>
 	</div>
 </div>