Browse Source

Merge branch 'feature-hejq-201808' of C:\Users\US50\GitProject\platform-b2b with conflicts.

hejq 7 years ago
parent
commit
cdad7aaf3e

+ 35 - 161
src/main/java/com/uas/platform/b2b/controller/SaleNoticeController.java

@@ -5,10 +5,7 @@ import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.PurchaseNoticeService;
 import com.uas.platform.b2b.service.UserService;
-import com.uas.platform.b2b.support.JxlsExcelView;
-import com.uas.platform.b2b.support.SystemSession;
-import com.uas.platform.b2b.support.TokenService;
-import com.uas.platform.b2b.support.UsageBufferedLogger;
+import com.uas.platform.b2b.support.*;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
@@ -78,29 +75,11 @@ public class SaleNoticeController {
 	public SPage<PurchaseNotice> getReceivedPurchaseNotices(PageParams params, String keyword, Long fromDate,
 			Long endDate){
 		logger.log("客户送货提醒", "查看收到的客户送货提醒列表(全部)");
-		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
-		pageParams.getFilters().put("pn_venduu", SystemSession.getUser().getEnterprise().getUu());
-		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("pn_enuu", new MultiValue(list, true));
-		}
-		if (fromDate != null) {
-			pageParams.getFilters().put(SearchConstants.FROM_DATE_KEY, fromDate);
-		}
-		if (endDate != null) {
-			pageParams.getFilters().put(SearchConstants.END_DATE_KEY, endDate);
-		}
-		List<Sort> sortList = new ArrayList<>();
-		sortList.add(new Sort("pn_id", false, Type.INT, new Long(1)));
-		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-		return searchService.searchPurchaseNoticeIds(keyword, pageParams);
+        SearchFilter filter = new SearchFilter();
+        filter.setEndDate(endDate);
+        filter.setFromDate(fromDate);
+        PageInfo pageInfo = new PageInfo(params);
+        return purchaseNoticeService.findNoticesByPageInfo(pageInfo, keyword, filter, SearchUtils.ALL_STATE);
 	}
 
 	/**
@@ -114,33 +93,11 @@ public class SaleNoticeController {
 	@ResponseBody
 	public SPage<PurchaseNotice> getTodoPurchaseNotices(PageParams params, String keyword, Long fromDate, Long endDate) {
 		logger.log("客户送货提醒", "查看收到的客户送货提醒列表(待发货)");
-		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
-		pageParams.getFilters().put("pn_venduu", SystemSession.getUser().getEnterprise().getUu());
-		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("pn_enuu", new MultiValue(list, true));
-		}
-		pageParams.getFilters().put("pn_status", Status.NOT_REPLY.value());
-		pageParams.getFilters().put("is_waiting", (short) Constant.NO);
-		pageParams.getFilters().put("pn_end", (short) Constant.NO);
-		if (fromDate != null) {
-			pageParams.getFilters().put(SearchConstants.FROM_DATE_KEY, fromDate);
-		}
-		if (endDate != null) {
-			pageParams.getFilters().put(SearchConstants.END_DATE_KEY, endDate);
-		}
-		List<Sort> sortList = new ArrayList<>();
-		sortList.add(new Sort("pn_date", false, Type.INT, new Long(946659661)));
-		sortList.add(new Sort("pn_id", false, Type.INT, new Long(1)));
-		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-		return searchService.searchPurchaseNoticeIds(keyword, pageParams);
+        SearchFilter filter = new SearchFilter();
+        filter.setEndDate(endDate);
+        filter.setFromDate(fromDate);
+        PageInfo pageInfo = new PageInfo(params);
+        return purchaseNoticeService.findNoticesByPageInfo(pageInfo, keyword, filter, SearchUtils.TODO_STATE);
 	}
 
 	/**
@@ -154,32 +111,11 @@ public class SaleNoticeController {
 	@ResponseBody
 	public SPage<PurchaseNotice> getDonePurchaseNotices(PageParams params, String keyword, Long fromDate, Long endDate) {
 		logger.log("客户送货提醒", "查看收到的客户送货提醒列表(已发货)");
-		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
-		pageParams.getFilters().put("pn_venduu", SystemSession.getUser().getEnterprise().getUu());
-		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("pn_enuu", new MultiValue(list, true));
-		}
-		pageParams.getFilters().put("pn_status", (short) Status.REPLIED.value());
-		pageParams.getFilters().put("pn_end", (short) Constant.NO);
-		if (fromDate != null) {
-			pageParams.getFilters().put(SearchConstants.FROM_DATE_KEY, fromDate);
-		}
-		if (endDate != null) {
-			pageParams.getFilters().put(SearchConstants.END_DATE_KEY, endDate);
-		}
-		List<Sort> sortList = new ArrayList<>();
-		sortList.add(new Sort("pn_date", false, Type.INT, new Long(946659661)));
-		sortList.add(new Sort("pn_id", false, Type.INT, new Long(1)));
-		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-		return searchService.searchPurchaseNoticeIds(keyword, pageParams);
+        SearchFilter filter = new SearchFilter();
+        filter.setEndDate(endDate);
+        filter.setFromDate(fromDate);
+        PageInfo pageInfo = new PageInfo(params);
+        return purchaseNoticeService.findNoticesByPageInfo(pageInfo, keyword, filter, SearchUtils.DONE_STATE);
 	}
 
 	/**
@@ -191,34 +127,13 @@ public class SaleNoticeController {
 	 */
 	@RequestMapping(value = "/info/search", params = RequestState.WAITING, method = RequestMethod.GET)
 	@ResponseBody
-	public SPage<PurchaseNotice> getWaitingPurchaseNotices(PageParams params, String keyword, Long fromDate,
-														   Long endDate){
+	public SPage<PurchaseNotice> getWaitingPurchaseNotices(PageParams params, String keyword, Long fromDate, Long endDate) {
 		logger.log("客户送货提醒", "查看收到的客户送货提醒列表(备料中)");
-		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
-		pageParams.getFilters().put("pn_venduu", SystemSession.getUser().getEnterprise().getUu());
-		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("pn_enuu", new MultiValue(list, true));
-		}
-		pageParams.getFilters().put("is_waiting", (short) Constant.YES);
-		if (fromDate != null) {
-			pageParams.getFilters().put(SearchConstants.FROM_DATE_KEY, fromDate);
-		}
-		if (endDate != null) {
-			pageParams.getFilters().put(SearchConstants.END_DATE_KEY, endDate);
-		}
-		List<Sort> sortList = new ArrayList<>();
-		sortList.add(new Sort("pn_date", false, Type.INT, new Long(946659661)));
-		sortList.add(new Sort("pn_id", false, Type.INT, new Long(1)));
-		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-		return searchService.searchPurchaseNoticeIds(keyword, pageParams);
+        SearchFilter filter = new SearchFilter();
+        filter.setEndDate(endDate);
+        filter.setFromDate(fromDate);
+        PageInfo pageInfo = new PageInfo(params);
+        return purchaseNoticeService.findNoticesByPageInfo(pageInfo, keyword, filter, SearchUtils.WAITING_STATE);
 	}
 
 	/**
@@ -232,39 +147,21 @@ public class SaleNoticeController {
 	@ResponseBody
 	public SPage<PurchaseNotice> getEndPurchaseNotices(PageParams params, String keyword, Long fromDate, Long endDate) {
 		logger.log("客户送货提醒", "查看收到的客户送货提醒列表(已结案)");
-		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
-		pageParams.getFilters().put("pn_venduu", SystemSession.getUser().getEnterprise().getUu());
-		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("pn_enuu", new MultiValue(list, true));
-		}
-		pageParams.getFilters().put("pn_end", (short) Constant.YES);
-		if (fromDate != null) {
-			pageParams.getFilters().put(SearchConstants.FROM_DATE_KEY, fromDate);
-		}
-		if (endDate != null) {
-			pageParams.getFilters().put(SearchConstants.END_DATE_KEY, endDate);
-		}
-		List<Sort> sortList = new ArrayList<>();
-		sortList.add(new Sort("pn_date", false, Type.INT, new Long(946659661)));
-		sortList.add(new Sort("pn_id", false, Type.INT, new Long(1)));
-		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-		return searchService.searchPurchaseNoticeIds(keyword, pageParams);
+        SearchFilter filter = new SearchFilter();
+        filter.setEndDate(endDate);
+        filter.setFromDate(fromDate);
+        PageInfo pageInfo = new PageInfo(params);
+        return purchaseNoticeService.findNoticesByPageInfo(pageInfo, keyword, filter, SearchUtils.END_STATE);
 	}
 
 	/**
-	 * 作为卖家,收到的送货提醒(待发货) -不搜索
+	 * 作为卖家,收到的送货提醒(待发货)
 	 *
-	 * @param params
+	 * @param params 分页参数
+	 * @param keyword 搜索词
+	 * @param fromDate 开始时间
+	 * @param endDate 截止时间
 	 * @return
-	 * @throws UnsupportedEncodingException
 	 */
 	@RequestMapping(value = "/info/nosearch", params = RequestState.TODO, method = RequestMethod.GET)
 	@ResponseBody
@@ -272,20 +169,8 @@ public class SaleNoticeController {
 		SearchFilter filter = new SearchFilter();
 		filter.setEndDate(endDate);
 		filter.setFromDate(fromDate);
-		SearchFilter disfilter = userService.distribute();
-		if (disfilter != null && disfilter.getDistribute() == null) {
-			return null;
-		}
-		if (disfilter != null && !CollectionUtils.isEmpty(disfilter.getDistribute())) {
-			List<Object> list = new ArrayList<>();
-			list.addAll(disfilter.getDistribute());
-			filter.setDistribute(list);
-		}
 		PageInfo pageInfo = new PageInfo(params);
-		pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
-		pageInfo.filter("status", (short)Status.NOT_REPLY.value());
-		pageInfo.filter("waiting", Constant.NO);
-		return purchaseNoticeService.findAllNoticesByPageInfo(pageInfo, null, filter);
+		return purchaseNoticeService.findNoticesByPageInfo(pageInfo, keyword, filter, SearchUtils.TODO_STATE);
 	}
 
 	/**
@@ -302,19 +187,8 @@ public class SaleNoticeController {
 		SearchFilter filter = new SearchFilter();
 		filter.setEndDate(endDate);
 		filter.setFromDate(fromDate);
-		SearchFilter disfilter = userService.distribute();
-		if (disfilter != null && disfilter.getDistribute() == null) {
-			return null;
-		}
-		if (disfilter != null && !CollectionUtils.isEmpty(disfilter.getDistribute())) {
-			List<Object> list = new ArrayList<>();
-			list.addAll(disfilter.getDistribute());
-			filter.setDistribute(list);
-		}
 		PageInfo pageInfo = new PageInfo(params);
-		pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
-		pageInfo.filter("status", (short)Status.REPLIED.value());
-		return purchaseNoticeService.findDoneNoticesByPageInfo(pageInfo, null, filter);
+		return purchaseNoticeService.findDoneNoticesByPageInfo(pageInfo, keyword, filter);
 	}
 
 	/**
@@ -588,7 +462,7 @@ public class SaleNoticeController {
 		ModelAndView modelAndView = new ModelAndView();
 		modelAndView.addObject("dateFormat", dateFormat);
 		modelAndView.addObject("type", "全部");
-		modelAndView.addObject("data",getReceivedPurchaseNotices(params, keyword, fromDate, endDate).getContent());
+		modelAndView.addObject("data", getReceivedPurchaseNotices(params, keyword, fromDate, endDate).getContent());
 		modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/saleNotice", "客户发货提醒列表_全部"));
 		logger.log("客户送货提醒", "导出Excel列表", "导出全部Excel列表");
 		return modelAndView;

+ 17 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseNoticeDao.java

@@ -171,4 +171,21 @@ public interface PurchaseNoticeDao extends JpaSpecificationExecutor<PurchaseNoti
 	@Query("update PurchaseNotice set status = :status where id = :noticeId")
 	void updateStatus(@Param("noticeId") Long noticeId, @Param("status") short status);
 
+	/**
+	 * 根据日期获取(录入日期)
+	 *
+	 * @param date 录入日期
+	 * @return
+	 */
+	@Query("select p.id from PurchaseNotice p where  p.date >= :date")
+	List<Long> findByDate( @Param("date") Date date);
+
+    /**
+     * 根据采购明细Id查询已发货的数量
+     *
+     * @param itemId 采购明细id
+     * @return
+     */
+    @Query("select sum(p.endQty) from PurchaseNotice p where p.orderItemId = :itemId")
+	Double getSendQtyByItemId(@Param("itemId") Long itemId);
 }

+ 1 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseAccept.java

@@ -117,7 +117,7 @@ public class PurchaseAccept implements Serializable {
 	/**
 	 * 验收明细
 	 */
-	@OneToMany(mappedBy = "accept", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE,
+	@OneToMany(mappedBy = "accept", cascade = { CascadeType.REFRESH, CascadeType.REMOVE,
 			CascadeType.MERGE }, fetch = FetchType.EAGER)
 	@OrderBy("number")
 	private Set<PurchaseAcceptItem> acceptItems;

+ 1 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseAcceptItem.java

@@ -48,7 +48,7 @@ public class PurchaseAcceptItem extends AbstractOrderProduct {
 	/**
 	 * 验收单主记录
 	 */
-	@ManyToOne(cascade = CascadeType.ALL, optional = true)
+	@ManyToOne(cascade = {CascadeType.MERGE})
 	@JoinColumn(name = "pai_paid", nullable = false)
 	private PurchaseAccept accept;
 

+ 1 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseNotice.java

@@ -85,7 +85,7 @@ public class PurchaseNotice implements Serializable {
 	/**
 	 * 客户采购单明细
 	 */
-	@OneToOne(cascade = {  }, fetch = FetchType.EAGER)
+	@OneToOne(fetch = FetchType.EAGER)
 	@JoinColumn(name = "pn_pdid", insertable = false, updatable = false)
 	private PurchaseOrderItem orderItem;
 

+ 11 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseNoticeService.java

@@ -344,4 +344,15 @@ public interface PurchaseNoticeService {
      * @return
      */
     SPage<PurchaseNotice> findAllNoticesByPageInfo(PageInfo pageInfo, String keyword, SearchFilter filter);
+
+	/**
+	 * 按条件查询发货提醒
+	 *
+	 * @param pageInfo 分页信息,过滤条件
+	 * @param keyword 搜索词
+	 * @param filter 过滤条件
+	 * @param state 状态
+	 * @return SPage封装的数据
+	 */
+    SPage<PurchaseNotice> findNoticesByPageInfo(PageInfo pageInfo, String keyword, SearchFilter filter, String state);
 }

+ 1 - 2
src/main/java/com/uas/platform/b2b/service/impl/PurchaseAcceptServiceImpl.java

@@ -71,8 +71,7 @@ public class PurchaseAcceptServiceImpl implements PurchaseAcceptService {
 				}
 			}
 		}
-		// 产生消息
-		ContextUtils.publishEvent(new PurchaseAcceptSaveReleaseEvent(PurchaseAcceptItem.distinct(acceptItems)));
+
 	}
 
 	@Override

+ 117 - 14
src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.java

@@ -11,10 +11,8 @@ import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.ps.service.PersonalProductService;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.PurchaseNoticeService;
-import com.uas.platform.b2b.support.CollectionUtil;
-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.b2b.service.UserService;
+import com.uas.platform.b2b.support.*;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
@@ -47,6 +45,7 @@ import java.util.*;
 public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 
 	private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
+
 	@Autowired
 	private PurchaseNoticeDao purchaseNoticeDao;
 
@@ -104,6 +103,9 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 	@Autowired
 	private PurchaseNoticeEndDao noticeEndDao;
 
+	@Autowired
+    private UserService userService;
+
     /**
      * 最多数量
      */
@@ -1060,27 +1062,128 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
      */
     @Override
     public SPage<PurchaseNotice> findAllNoticesByPageInfo(final PageInfo pageInfo, String keyword, final SearchFilter filter) {
+		if (filter != null) {
+			if (!CollectionUtils.isEmpty(filter.getDistribute())) {
+				pageInfo.expression(PredicateUtils.in("enUU", filter.getDistribute(), false));
+			}
+			if (filter.getFromDate() != null) {
+				pageInfo.expression(PredicateUtils.gte("date", new Date(filter.getFromDate()), false));
+			}
+			if (filter.getEndDate() != null) {
+				pageInfo.expression(PredicateUtils.lte("date", new Date(filter.getEndDate()), false));
+			}
+		}
+		pageInfo.expression(PredicateUtils.isNull("end"));
         Page<PurchaseNotice> notices = purchaseNoticeDao.findAll(new Specification<PurchaseNotice>() {
             @Override
             public Predicate toPredicate(Root<PurchaseNotice> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-                if (filter != null) {
-                    if (!CollectionUtils.isEmpty(filter.getDistribute())) {
-                        pageInfo.expression(PredicateUtils.in("enUU", filter.getDistribute(), false));
+                List<Predicate> predicatesList = new ArrayList<Predicate>();
+                if (!StringUtils.isEmpty(keyword)) {
+					Predicate custName = builder.like(root.get("orderItem").get("order").get("enterprise").get("enName"), "%" + keyword+ "%");
+                    if (keyword.matches(SearchUtils.UU_REGEXP)) {
+                        Predicate custUU = builder.like(root.get("orderItem").get("order").get("enterprise").get("uu"), "%" + keyword+ "%");
+                        builder.or(custUU);
                     }
-                    if (filter.getFromDate() != null) {
-                        pageInfo.expression(PredicateUtils.gte("date", new Date(filter.getFromDate()), false));
-                    }
-                    if (filter.getEndDate() != null) {
-                        pageInfo.expression(PredicateUtils.lte("date", new Date(filter.getEndDate()), false));
+					Predicate productCode = builder.like(root.get("orderItem").get("productCode"), "%" + keyword+ "%");
+                    Predicate productTitle = builder.like(root.get("orderItem").get("productTitle"), "%" + keyword+ "%");
+                    Predicate productSpec = builder.like(root.get("orderItem").get("productSpec"), "%" + keyword+ "%");
+                    Predicate orderCode = builder.like(root.get("orderItem").get("order").get("code"), "%" + keyword+ "%");
+                    predicatesList.add(builder.or(custName, productCode, productTitle, productSpec, orderCode));
+				}
+                Predicate[] predicates = pageInfo.getPredicates(root, query, builder);
+                Arrays.stream(predicates).forEach(predicate -> {
+                    predicatesList.add(predicate);
+                });
+                return builder.and(predicatesList.toArray(new Predicate[predicatesList.size()]));
+            }
+        }, pageInfo);
+        return SPageUtils.covertSPage(notices);
+    }
+
+    /**
+     * 按条件查询发货提醒
+     *
+     * @param pageInfo  分页信息,过滤条件
+     * @param keyword   搜索词
+     * @param filter    过滤条件
+     * @param state 状态
+     * @return SPage封装的数据
+     */
+    @Override
+    public SPage<PurchaseNotice> findNoticesByPageInfo(PageInfo pageInfo, String keyword, SearchFilter filter, String state) {
+        // 根据状态设置其他条件
+        setState(pageInfo, state, filter);
+        if (filter != null) {
+            if (!CollectionUtils.isEmpty(filter.getDistribute())) {
+                pageInfo.expression(PredicateUtils.in("enUU", filter.getDistribute(), false));
+            }
+            if (filter.getFromDate() != null) {
+                pageInfo.expression(PredicateUtils.gte("date", new Date(filter.getFromDate()), false));
+            }
+            if (filter.getEndDate() != null) {
+                pageInfo.expression(PredicateUtils.lte("date", new Date(filter.getEndDate()), false));
+            }
+        }
+        Page<PurchaseNotice> notices = purchaseNoticeDao.findAll(new Specification<PurchaseNotice>() {
+            @Override
+            public Predicate toPredicate(Root<PurchaseNotice> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+                List<Predicate> predicatesList = new ArrayList<Predicate>();
+                if (!StringUtils.isEmpty(keyword)) {
+                    Predicate custName = builder.like(root.get("orderItem").get("order").get("enterprise").get("enName"), "%" + keyword+ "%");
+                    if (keyword.matches(SearchUtils.UU_REGEXP)) {
+                        Predicate custUU = builder.like(root.get("orderItem").get("order").get("enterprise").get("uu"), "%" + keyword+ "%");
+                        builder.or(custUU);
                     }
+                    Predicate productCode = builder.like(root.get("orderItem").get("productCode"), "%" + keyword+ "%");
+                    Predicate productTitle = builder.like(root.get("orderItem").get("productTitle"), "%" + keyword+ "%");
+                    Predicate productSpec = builder.like(root.get("orderItem").get("productSpec"), "%" + keyword+ "%");
+                    Predicate orderCode = builder.like(root.get("orderItem").get("order").get("code"), "%" + keyword+ "%");
+                    predicatesList.add(builder.or(custName, productCode, productTitle, productSpec, orderCode));
                 }
-                pageInfo.expression(PredicateUtils.isNull("end"));
-                return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
+                Predicate[] predicates = pageInfo.getPredicates(root, query, builder);
+                Arrays.stream(predicates).forEach(predicate -> {
+                    predicatesList.add(predicate);
+                });
+                return builder.and(predicatesList.toArray(new Predicate[predicatesList.size()]));
             }
         }, pageInfo);
         return SPageUtils.covertSPage(notices);
     }
 
+    /**
+     * 封装相关查询条件
+     *
+     * @param pageInfo 分页参数
+     * @param state 状态
+     *              <pre>
+     *              _todo : 待发货
+     *              done: 已发货
+     *              end: 已取消
+     *              </pre>
+     * @param filter 过滤条件
+     */
+    private void setState(PageInfo pageInfo, String state, SearchFilter filter) {
+        pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+        SearchFilter distribute = userService.distribute();
+        if (distribute != null && !CollectionUtils.isEmpty(distribute.getDistribute())) {
+            List<Object> list = new ArrayList<>();
+            list.addAll(distribute.getDistribute());
+            filter.setDistribute(list);
+        }
+        if (SearchUtils.TODO_STATE.equals(state)) {
+            pageInfo.expression(PredicateUtils.or(PredicateUtils.isNull("end"), PredicateUtils.eq("end", Constant.NO, false)));
+            pageInfo.filter("status", (short)Status.NOT_REPLY.value());
+            pageInfo.filter("waiting", Constant.NO);
+        } else if (SearchUtils.DONE_STATE.equals(state)) {
+            pageInfo.expression(PredicateUtils.or(PredicateUtils.isNull("end"), PredicateUtils.eq("end", Constant.NO, false)));
+            pageInfo.filter("status", (short)Status.REPLIED.value());
+        } else if (SearchUtils.END_STATE.equals(state)) {
+            pageInfo.filter("end", Constant.YES);
+        } else if (SearchUtils.WAITING_STATE.equals(state)) {
+            pageInfo.filter("waiting", Constant.YES);
+        }
+    }
+
     @Override
 	@Transactional(rollbackFor = Exception.class)
 	public void setReadByOrder(String category, Long[] sourceId) {

+ 45 - 0
src/main/java/com/uas/platform/b2b/support/SearchUtils.java

@@ -0,0 +1,45 @@
+package com.uas.platform.b2b.support;
+
+/**
+ * 搜索相关
+ *
+ * @author hejq
+ * @date 2018-08-13 18:54
+ */
+public class SearchUtils {
+
+    /**
+     * UU号正则表达式
+     */
+    public static final String UU_REGEXP = "^\\d{4,}$";
+
+    /**
+     * 数字正则表达式
+     */
+    public static final String NUM_REGEXP= "^[0-9]*$";
+
+    /**
+     * 待处理
+     */
+    public static final String TODO_STATE = "todo";
+
+    /**
+     * 全部
+     */
+    public static final String ALL_STATE = "all";
+
+    /**
+     * 已处理
+     */
+    public static final String DONE_STATE = "done";
+
+    /**
+     * 已结案,已取消
+     */
+    public static final String END_STATE = "end";
+
+    /**
+     * 待发货
+     */
+    public static final String WAITING_STATE = "waiting";
+}

+ 0 - 76
src/main/java/com/uas/platform/b2b/temporary/model/UpdateByBatchParameter.java

@@ -1,76 +0,0 @@
-package com.uas.platform.b2b.temporary.model;
-
-/**
- * 批量修改传递的参数设置
- * 
- * @author hejq
- * @time 创建时间:2017年6月9日
- */
-public class UpdateByBatchParameter {
-
-	/**
-	 * 修改的字段类型
-	 */
-	private String updatetype;
-
-	/**
-	 * 需要修改的来源类型(销售、采购、总物料)
-	 */
-	private String type;
-
-	/**
-	 * 标准类型(all:全部; standard:标准; nonstandard: 非标准)
-	 */
-	private String standard;
-
-	/**
-	 * 原值
-	 */
-	private String oldvalue;
-
-	/**
-	 * 新值
-	 */
-	private String newvalue;
-
-	public String getUpdatetype() {
-		return updatetype;
-	}
-
-	public void setUpdatetype(String updatetype) {
-		this.updatetype = updatetype;
-	}
-
-	public String getType() {
-		return type;
-	}
-
-	public void setType(String type) {
-		this.type = type;
-	}
-
-	public String getStandard() {
-		return standard;
-	}
-
-	public void setStandard(String standard) {
-		this.standard = standard;
-	}
-
-	public String getOldvalue() {
-		return oldvalue;
-	}
-
-	public void setOldvalue(String oldvalue) {
-		this.oldvalue = oldvalue;
-	}
-
-	public String getNewvalue() {
-		return newvalue;
-	}
-
-	public void setNewvalue(String newvalue) {
-		this.newvalue = newvalue;
-	}
-
-}

+ 1 - 1
src/main/resources/spring/context.xml

@@ -150,7 +150,7 @@
 			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
 				<property name="generateDdl" value="true" />
 				<property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
-				<property name="showSql" value="false" />
+				<property name="showSql" value="true" />
 			</bean>
 		</property>
 		<property name="jpaDialect">

+ 9 - 0
src/test/java/com/uas/platform/b2b/purc/PurchaseNotify.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2b.purc;
 
+import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.BaseJunitTest;
 import com.uas.platform.b2b.dao.PurchaseNoticeDao;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
@@ -10,6 +11,7 @@ import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.sso.support.Page;
+import org.apache.xmlbeans.impl.xb.xsdschema.Public;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -141,4 +143,11 @@ public class PurchaseNotify extends BaseJunitTest {
         System.out.println(productPage);
     }
 
+    @Test
+    public void testFindSendQty() {
+        Double sendQty = purchaseNoticeDao.getSendQtyByItemId(37053385L);
+        System.out.println(sendQty);
+        PurchaseNotice notice = purchaseNoticeDao.findOne(5670L);
+        System.out.println(JSON.toJSONString(notice));
+    }
 }