Browse Source

认定单关键词筛选

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@1210 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
suntg 10 years ago
parent
commit
242324ed92

+ 4 - 4
src/main/java/com/uas/platform/b2b/controller/SaleSampleController.java

@@ -163,12 +163,12 @@ public class SaleSampleController {
 	 */
 	 */
 	@RequestMapping(value = "/approval", method = RequestMethod.GET)
 	@RequestMapping(value = "/approval", method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseBody
-	public Page<PurchaseProofingApproval> getProofingApprovals(PageParams params) {
+	public Page<PurchaseProofingApproval> getProofingApprovals(PageParams params, String keyword) {
 		PageInfo info = new PageInfo(params);
 		PageInfo info = new PageInfo(params);
 		// 我作为卖家,把我的企业ID作为供应商ID传入
 		// 我作为卖家,把我的企业ID作为供应商ID传入
 		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
 		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
 		logger.log("客户认定单", "查看所有客户认定单");
 		logger.log("客户认定单", "查看所有客户认定单");
-		return purchaseProofingService.findApprovalsByPageInfo(info);
+		return purchaseProofingService.findApprovalsByPageInfo(info, keyword);
 	}
 	}
 
 
 	/**
 	/**
@@ -241,14 +241,14 @@ public class SaleSampleController {
 	 * @return
 	 * @return
 	 */
 	 */
 	@RequestMapping(value = "/approval/xls", method = RequestMethod.GET)
 	@RequestMapping(value = "/approval/xls", method = RequestMethod.GET)
-	public ModelAndView exportApprovals() {
+	public ModelAndView exportApprovals(String keyword) {
 		PageInfo pageInfo = new PageInfo(1, JxlsExcelView.MAX_SIZE, 0);
 		PageInfo pageInfo = new PageInfo(1, JxlsExcelView.MAX_SIZE, 0);
 		pageInfo.sorting("inDate", Direction.DESC);
 		pageInfo.sorting("inDate", Direction.DESC);
 		pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
 		pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
 		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
 		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
 		ModelAndView modelAndView = new ModelAndView();
 		ModelAndView modelAndView = new ModelAndView();
 		modelAndView.addObject("dateFormat", dateFormat);
 		modelAndView.addObject("dateFormat", dateFormat);
-		modelAndView.addObject("data", purchaseProofingService.findApprovalsByPageInfo(pageInfo).getContent());
+		modelAndView.addObject("data", purchaseProofingService.findApprovalsByPageInfo(pageInfo, keyword).getContent());
 		modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/saleApproval", "客户认定单列表"));
 		modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/sale/saleApproval", "客户认定单列表"));
 		logger.log("客户认定单", "导出Excel列表", "导出全部Excel列表");
 		logger.log("客户认定单", "导出Excel列表", "导出全部Excel列表");
 		return modelAndView;
 		return modelAndView;

+ 18 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseProofingApprovalIndexDao.java

@@ -0,0 +1,18 @@
+package com.uas.platform.b2b.dao;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import com.uas.platform.b2b.model.PurchaseProofingApprovalIndex;
+
+@Repository
+public interface PurchaseProofingApprovalIndexDao extends JpaRepository<PurchaseProofingApprovalIndex, Long> {
+
+	@Query("select i.key from PurchaseProofingApprovalIndex i where i.enUU = :enUU and i.keyword = :keyword")
+	List<Long> findByKeyword(@Param("enUU") long enUU, @Param("keyword") String keyword);
+
+}

+ 1 - 1
src/main/java/com/uas/platform/b2b/erp/controller/ProductSampleController.java

@@ -164,7 +164,7 @@ public class ProductSampleController {
 	}
 	}
 	
 	
 	/**
 	/**
-	 * 将买家ERP的打样申请写到平台
+	 * 将买家ERP的认定单写到平台
 	 * 
 	 * 
 	 * @param data
 	 * @param data
 	 * @return
 	 * @return

+ 83 - 0
src/main/java/com/uas/platform/b2b/event/PurchaseProofingApprovalSaveEvent.java

@@ -0,0 +1,83 @@
+package com.uas.platform.b2b.event;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+
+import com.uas.platform.b2b.core.util.SearchKeyUtils;
+import com.uas.platform.b2b.dao.PurchaseProofingSendDao;
+import com.uas.platform.b2b.model.PurchaseProofingApproval;
+import com.uas.platform.b2b.model.PurchaseProofingApprovalIndex;
+import com.uas.platform.b2b.model.PurchaseProofingSend;
+import com.uas.platform.b2b.support.XingePusher;
+
+/**
+ * 客户认定单保存事件
+ * 
+ * @author yingp
+ * 
+ */
+public class PurchaseProofingApprovalSaveEvent extends SaveEvent<PurchaseProofingApprovalIndex, PurchaseProofingApproval> {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	
+	@Autowired
+	private PurchaseProofingSendDao purchaseProofingSendDao;
+
+	public PurchaseProofingApprovalSaveEvent(List<PurchaseProofingApproval> savedList) {
+		super(savedList);
+	}
+
+	@Override
+	public List<PurchaseProofingApprovalIndex> split(PurchaseProofingApproval saved) {
+		long key = saved.getId();
+		long enUU = saved.getVendUU();
+		List<PurchaseProofingApprovalIndex> indexes = new ArrayList<PurchaseProofingApprovalIndex>();
+		// 单号(匹配完整的编号)
+		indexes.add(new PurchaseProofingApprovalIndex(enUU, key, saved.getCode()));
+		// 客户名称(匹配两个字以上的客户名称关键字)
+		indexes.addAll(PurchaseProofingApprovalIndex.format(enUU, key,
+				SearchKeyUtils.splitToKeys(saved.getEnterprise().getEnName(), false)));
+		// 客户UU号(匹配完整的UU号)
+		indexes.add(new PurchaseProofingApprovalIndex(enUU, key, saved.getEnUU().toString()));
+		// 认定结果
+		if(StringUtils.hasText(saved.getFinalresult())) {
+			indexes.add(new PurchaseProofingApprovalIndex(enUU, key, saved.getFinalresult()));
+		}
+		// 送样单号
+		if(StringUtils.hasText(saved.getPscode())) {
+			indexes.add(new PurchaseProofingApprovalIndex(enUU, key, saved.getPscode()));
+		}
+		// 物料(匹配完整的物料编号、两个字以上的物料名称及规格关键字)
+		indexes.add(new PurchaseProofingApprovalIndex(enUU, key, saved.getProdCode()));
+		indexes.addAll(PurchaseProofingApprovalIndex.format(enUU, key,
+				SearchKeyUtils.splitToKeys(saved.getProdDetail(), false)));
+		indexes.addAll(PurchaseProofingApprovalIndex.format(enUU, key,
+				SearchKeyUtils.splitToKeys(saved.getProdSpec(), false)));
+		return indexes;
+	}
+
+	@Override
+	public void pusher(List<PurchaseProofingApproval> savedList) {
+		// 发送推送消息
+		for (PurchaseProofingApproval approval : savedList) {
+			if (approval.getSscode() != null && approval.getVendUU() != null) {
+				List<PurchaseProofingSend> sends = purchaseProofingSendDao.findByProofingItemVendUUAndCode(
+						approval.getVendUU(), approval.getSscode());
+				if (sends.size() > 0) {
+					PurchaseProofingSend send = sends.get(0);
+					XingePusher.pushSingleAccountAndroid(send.getProofingItem().getVendUserUU().toString(),
+							"客户返回了送样认定单", "送样单号:" + approval.getSscode(), null);
+					XingePusher.pushSingleAccountIOS(send.getProofingItem().getVendUserUU().toString(), "客户返回了送样认定单  "
+							+ "送样单号:" + approval.getSscode());
+				}
+			}
+		}
+	}
+
+}

+ 8 - 0
src/main/java/com/uas/platform/b2b/listener/KeywordListener.java

@@ -18,6 +18,7 @@ import com.uas.platform.b2b.dao.PurchaseMRBIndexDao;
 import com.uas.platform.b2b.dao.PurchaseNoticeIndexDao;
 import com.uas.platform.b2b.dao.PurchaseNoticeIndexDao;
 import com.uas.platform.b2b.dao.PurchaseOrderChangeIndexDao;
 import com.uas.platform.b2b.dao.PurchaseOrderChangeIndexDao;
 import com.uas.platform.b2b.dao.PurchaseOrderIndexDao;
 import com.uas.platform.b2b.dao.PurchaseOrderIndexDao;
+import com.uas.platform.b2b.dao.PurchaseProofingApprovalIndexDao;
 import com.uas.platform.b2b.dao.PurchaseProofingItemIndexDao;
 import com.uas.platform.b2b.dao.PurchaseProofingItemIndexDao;
 import com.uas.platform.b2b.dao.PurchaseReturnIndexDao;
 import com.uas.platform.b2b.dao.PurchaseReturnIndexDao;
 import com.uas.platform.b2b.dao.SaleQuotationItemIndexDao;
 import com.uas.platform.b2b.dao.SaleQuotationItemIndexDao;
@@ -33,6 +34,7 @@ import com.uas.platform.b2b.event.PurchaseMRBSaveEvent;
 import com.uas.platform.b2b.event.PurchaseNoticeSaveEvent;
 import com.uas.platform.b2b.event.PurchaseNoticeSaveEvent;
 import com.uas.platform.b2b.event.PurchaseOrderChangeSaveEvent;
 import com.uas.platform.b2b.event.PurchaseOrderChangeSaveEvent;
 import com.uas.platform.b2b.event.PurchaseOrderSaveEvent;
 import com.uas.platform.b2b.event.PurchaseOrderSaveEvent;
+import com.uas.platform.b2b.event.PurchaseProofingApprovalSaveEvent;
 import com.uas.platform.b2b.event.PurchaseProofingItemSaveEvent;
 import com.uas.platform.b2b.event.PurchaseProofingItemSaveEvent;
 import com.uas.platform.b2b.event.PurchaseReturnSaveEvent;
 import com.uas.platform.b2b.event.PurchaseReturnSaveEvent;
 import com.uas.platform.b2b.event.SaleQuotationSaveEvent;
 import com.uas.platform.b2b.event.SaleQuotationSaveEvent;
@@ -49,6 +51,7 @@ import com.uas.platform.b2b.model.PurchaseMRBIndex;
 import com.uas.platform.b2b.model.PurchaseNoticeIndex;
 import com.uas.platform.b2b.model.PurchaseNoticeIndex;
 import com.uas.platform.b2b.model.PurchaseOrderChangeIndex;
 import com.uas.platform.b2b.model.PurchaseOrderChangeIndex;
 import com.uas.platform.b2b.model.PurchaseOrderIndex;
 import com.uas.platform.b2b.model.PurchaseOrderIndex;
+import com.uas.platform.b2b.model.PurchaseProofingApprovalIndex;
 import com.uas.platform.b2b.model.PurchaseProofingItemIndex;
 import com.uas.platform.b2b.model.PurchaseProofingItemIndex;
 import com.uas.platform.b2b.model.PurchaseReturnIndex;
 import com.uas.platform.b2b.model.PurchaseReturnIndex;
 import com.uas.platform.b2b.model.SaleQuotationItemIndex;
 import com.uas.platform.b2b.model.SaleQuotationItemIndex;
@@ -108,6 +111,9 @@ public class KeywordListener implements ApplicationListener<SaveEvent<?, ?>> {
 
 
 	@Autowired
 	@Autowired
 	private SaleQuotationItemIndexDao saleQuotationItemIndexDao;
 	private SaleQuotationItemIndexDao saleQuotationItemIndexDao;
+	
+	@Autowired
+	private PurchaseProofingApprovalIndexDao PurchaseProofingApprovalIndexDao;
 
 
 	@SuppressWarnings("unchecked")
 	@SuppressWarnings("unchecked")
 	@Async
 	@Async
@@ -143,6 +149,8 @@ public class KeywordListener implements ApplicationListener<SaveEvent<?, ?>> {
 			productIndexDao.save((List<ProductIndex>) event.split());
 			productIndexDao.save((List<ProductIndex>) event.split());
 		} else if (event instanceof SaleQuotationSaveEvent) {
 		} else if (event instanceof SaleQuotationSaveEvent) {
 			saleQuotationItemIndexDao.save((List<SaleQuotationItemIndex>) event.split());
 			saleQuotationItemIndexDao.save((List<SaleQuotationItemIndex>) event.split());
+		} else if (event instanceof PurchaseProofingApprovalSaveEvent) {
+			PurchaseProofingApprovalIndexDao.save((List<PurchaseProofingApprovalIndex>) event.split());
 		}
 		}
 	}
 	}
 
 

+ 99 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseProofingApprovalIndex.java

@@ -0,0 +1,99 @@
+package com.uas.platform.b2b.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Index;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+
+/**
+ * 客户打样申请单明细的关键词库
+ * 
+ * @author suntg
+ * 
+ */
+@Table(name = "purc$approval$index", indexes = { @Index(name = "purc$approval$index_keyword", columnList = "index_enuu,index_word") })
+@Entity
+public class PurchaseProofingApprovalIndex {
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$approval$index_gen")
+	@SequenceGenerator(name = "purc$approval$index_gen", sequenceName = "purc$approval$index_seq", allocationSize = 1)
+	@Column(name = "index_id")
+	private Long id;
+
+	/**
+	 * 所属企业UU
+	 */
+	@Column(name = "index_enuu")
+	private Long enUU;
+
+	/**
+	 * 申请单明细ID
+	 */
+	@Column(name = "index_key")
+	private Long key;
+
+	/**
+	 * 关键词
+	 */
+	@Column(name = "index_word")
+	private String keyword;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
+	public Long getKey() {
+		return key;
+	}
+
+	public void setKey(Long key) {
+		this.key = key;
+	}
+
+	public String getKeyword() {
+		return keyword;
+	}
+
+	public void setKeyword(String keyword) {
+		this.keyword = keyword;
+	}
+	
+	public PurchaseProofingApprovalIndex() {
+	}
+	
+	public PurchaseProofingApprovalIndex(long enUU, long key, String keyword) {
+		this.enUU = enUU;
+		this.key = key;
+		this.keyword = keyword;
+	}
+
+	public static List<PurchaseProofingApprovalIndex> format(long enUU, long key, Set<String> keywords) {
+		List<PurchaseProofingApprovalIndex> indexes = new ArrayList<PurchaseProofingApprovalIndex>();
+		for (String keyword : keywords) {
+			indexes.add(new PurchaseProofingApprovalIndex(enUU, key, keyword));
+		}
+		return indexes;
+	}
+
+}

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/PurchaseProofingService.java

@@ -79,7 +79,7 @@ public interface PurchaseProofingService {
 	 * @param pageInfo
 	 * @param pageInfo
 	 * @return
 	 * @return
 	 */
 	 */
-	public Page<PurchaseProofingApproval> findApprovalsByPageInfo(PageInfo pageInfo);
+	public Page<PurchaseProofingApproval> findApprovalsByPageInfo(PageInfo pageInfo, String keyword);
 
 
 	/**
 	/**
 	 * 根据送样申请单明细id获取对应的送样单
 	 * 根据送样申请单明细id获取对应的送样单

+ 4 - 6
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderChangeServiceImpl.java

@@ -190,14 +190,12 @@ public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeServic
 
 
 	@Override
 	@Override
 	public Page<PurchaseOrderChange> findAllByPageInfo(final PageInfo pageInfo, final String keyword) {
 	public Page<PurchaseOrderChange> findAllByPageInfo(final PageInfo pageInfo, final String keyword) {
+		if (StringUtils.hasText(keyword))
+			pageInfo.expression(PredicateUtils.in("id", purchaseOrderChangeIndexDao.findByKeyword(SystemSession
+					.getUser().getEnterprise().getUu(), keyword), false));
 		return purchaseOrderChangeDao.findAll(new Specification<PurchaseOrderChange>() {
 		return purchaseOrderChangeDao.findAll(new Specification<PurchaseOrderChange>() {
-
 			public Predicate toPredicate(Root<PurchaseOrderChange> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 			public Predicate toPredicate(Root<PurchaseOrderChange> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword))
-					pageInfo.expression(PredicateUtils.in("id", purchaseOrderChangeIndexDao.findByKeyword(SystemSession
-							.getUser().getEnterprise().getUu(), keyword), false));
-				query.where(pageInfo.getPredicates(root, query, builder));
-				return null;
+				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 			}
 		}, pageInfo);
 		}, pageInfo);
 	}
 	}

+ 30 - 37
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -86,7 +86,6 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 
 
 	public Page<PurchaseOrder> findAllByPageInfo(final PageInfo pageInfo) {
 	public Page<PurchaseOrder> findAllByPageInfo(final PageInfo pageInfo) {
 		return purchaseOrderDao.findAll(new Specification<PurchaseOrder>() {
 		return purchaseOrderDao.findAll(new Specification<PurchaseOrder>() {
-
 			public Predicate toPredicate(Root<PurchaseOrder> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 			public Predicate toPredicate(Root<PurchaseOrder> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 				query.where(pageInfo.getPredicates(root, query, builder));
 				query.where(pageInfo.getPredicates(root, query, builder));
 				return null;
 				return null;
@@ -307,60 +306,54 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 
 
 	@Override
 	@Override
 	public Page<PurchaseOrderTodo> findTodoByPageInfo(final PageInfo pageInfo, final String keyword, final Long fromDate, final Long endDate) {
 	public Page<PurchaseOrderTodo> findTodoByPageInfo(final PageInfo pageInfo, final String keyword, final Long fromDate, final Long endDate) {
+		if (StringUtils.hasText(keyword))
+			pageInfo.expression(PredicateUtils.in("id", purchaseOrderIndexDao.findByKeyword(SystemSession
+					.getUser().getEnterprise().getUu(), keyword), false));
+		if (fromDate != null)
+			pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByFromDate(SystemSession
+					.getUser().getEnterprise().getUu(), new Date(fromDate)), false));
+		if(endDate != null)
+			pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByEndDate(SystemSession
+					.getUser().getEnterprise().getUu(), new Date(endDate)), false));
 		return purchaseOrderTodoDao.findAll(new Specification<PurchaseOrderTodo>() {
 		return purchaseOrderTodoDao.findAll(new Specification<PurchaseOrderTodo>() {
-
 			public Predicate toPredicate(Root<PurchaseOrderTodo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 			public Predicate toPredicate(Root<PurchaseOrderTodo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword))
-					pageInfo.expression(PredicateUtils.in("id", purchaseOrderIndexDao.findByKeyword(SystemSession
-							.getUser().getEnterprise().getUu(), keyword), false));
-				if (fromDate != null)
-					pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByFromDate(SystemSession
-							.getUser().getEnterprise().getUu(), new Date(fromDate)), false));
-				if(endDate != null)
-					pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByEndDate(SystemSession
-							.getUser().getEnterprise().getUu(), new Date(endDate)), false));
-				query.where(pageInfo.getPredicates(root, query, builder));
-				return null;
+				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 			}
 		}, pageInfo);
 		}, pageInfo);
 	}
 	}
 
 
 	@Override
 	@Override
 	public Page<PurchaseOrderDone> findDoneByPageInfo(final PageInfo pageInfo, final String keyword, final Long fromDate, final Long endDate) {
 	public Page<PurchaseOrderDone> findDoneByPageInfo(final PageInfo pageInfo, final String keyword, final Long fromDate, final Long endDate) {
+		if (StringUtils.hasText(keyword))
+			pageInfo.expression(PredicateUtils.in("id", purchaseOrderIndexDao.findByKeyword(SystemSession
+					.getUser().getEnterprise().getUu(), keyword), false));
+		if (fromDate != null)
+			pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByFromDate(SystemSession
+					.getUser().getEnterprise().getUu(), new Date(fromDate)), false));
+		if(endDate != null)
+			pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByEndDate(SystemSession
+					.getUser().getEnterprise().getUu(), new Date(endDate)), false));
 		return purchaseOrderDoneDao.findAll(new Specification<PurchaseOrderDone>() {
 		return purchaseOrderDoneDao.findAll(new Specification<PurchaseOrderDone>() {
-
 			public Predicate toPredicate(Root<PurchaseOrderDone> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 			public Predicate toPredicate(Root<PurchaseOrderDone> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword))
-					pageInfo.expression(PredicateUtils.in("id", purchaseOrderIndexDao.findByKeyword(SystemSession
-							.getUser().getEnterprise().getUu(), keyword), false));
-				if (fromDate != null)
-					pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByFromDate(SystemSession
-							.getUser().getEnterprise().getUu(), new Date(fromDate)), false));
-				if(endDate != null)
-					pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByEndDate(SystemSession
-							.getUser().getEnterprise().getUu(), new Date(endDate)), false));
-				query.where(pageInfo.getPredicates(root, query, builder));
-				return null;
+				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 			}
 		}, pageInfo);
 		}, pageInfo);
 	}
 	}
 
 
 	@Override
 	@Override
 	public Page<PurchaseOrderEnd> findEndByPageInfo(final PageInfo pageInfo, final String keyword, final Long fromDate, final Long endDate) {
 	public Page<PurchaseOrderEnd> findEndByPageInfo(final PageInfo pageInfo, final String keyword, final Long fromDate, final Long endDate) {
+		if (StringUtils.hasText(keyword))
+			pageInfo.expression(PredicateUtils.in("id", purchaseOrderIndexDao.findByKeyword(SystemSession
+					.getUser().getEnterprise().getUu(), keyword), false));
+		if (fromDate != null)
+			pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByFromDate(SystemSession
+					.getUser().getEnterprise().getUu(), new Date(fromDate)), false));
+		if(endDate != null)
+			pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByEndDate(SystemSession
+					.getUser().getEnterprise().getUu(), new Date(endDate)), false));
 		return purchaseOrderEndDao.findAll(new Specification<PurchaseOrderEnd>() {
 		return purchaseOrderEndDao.findAll(new Specification<PurchaseOrderEnd>() {
-
 			public Predicate toPredicate(Root<PurchaseOrderEnd> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 			public Predicate toPredicate(Root<PurchaseOrderEnd> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword))
-					pageInfo.expression(PredicateUtils.in("id", purchaseOrderIndexDao.findByKeyword(SystemSession
-							.getUser().getEnterprise().getUu(), keyword), false));
-				if (fromDate != null)
-					pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByFromDate(SystemSession
-							.getUser().getEnterprise().getUu(), new Date(fromDate)), false));
-				if(endDate != null)
-					pageInfo.expression(PredicateUtils.in("id", purchaseOrderAllDao.findByEndDate(SystemSession
-							.getUser().getEnterprise().getUu(), new Date(endDate)), false));
-				query.where(pageInfo.getPredicates(root, query, builder));
-				return null;
+				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 			}
 		}, pageInfo);
 		}, pageInfo);
 	}
 	}

+ 19 - 29
src/main/java/com/uas/platform/b2b/service/impl/PurchaseProofingServiceImpl.java

@@ -20,12 +20,14 @@ import org.springframework.util.StringUtils;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.dao.AttachDao;
 import com.uas.platform.b2b.dao.AttachDao;
 import com.uas.platform.b2b.dao.PurchaseProofingApprovalDao;
 import com.uas.platform.b2b.dao.PurchaseProofingApprovalDao;
+import com.uas.platform.b2b.dao.PurchaseProofingApprovalIndexDao;
 import com.uas.platform.b2b.dao.PurchaseProofingDao;
 import com.uas.platform.b2b.dao.PurchaseProofingDao;
 import com.uas.platform.b2b.dao.PurchaseProofingItemDoneDao;
 import com.uas.platform.b2b.dao.PurchaseProofingItemDoneDao;
 import com.uas.platform.b2b.dao.PurchaseProofingItemIndexDao;
 import com.uas.platform.b2b.dao.PurchaseProofingItemIndexDao;
 import com.uas.platform.b2b.dao.PurchaseProofingItemDao;
 import com.uas.platform.b2b.dao.PurchaseProofingItemDao;
 import com.uas.platform.b2b.dao.PurchaseProofingItemTodoDao;
 import com.uas.platform.b2b.dao.PurchaseProofingItemTodoDao;
 import com.uas.platform.b2b.dao.PurchaseProofingSendDao;
 import com.uas.platform.b2b.dao.PurchaseProofingSendDao;
+import com.uas.platform.b2b.event.PurchaseProofingApprovalSaveEvent;
 import com.uas.platform.b2b.event.PurchaseProofingItemSaveEvent;
 import com.uas.platform.b2b.event.PurchaseProofingItemSaveEvent;
 import com.uas.platform.b2b.model.Attach;
 import com.uas.platform.b2b.model.Attach;
 import com.uas.platform.b2b.model.PurchaseProofing;
 import com.uas.platform.b2b.model.PurchaseProofing;
@@ -65,6 +67,9 @@ public class PurchaseProofingServiceImpl implements PurchaseProofingService {
 
 
 	@Autowired
 	@Autowired
 	private PurchaseProofingItemIndexDao purchaseProofingItemIndexDao;
 	private PurchaseProofingItemIndexDao purchaseProofingItemIndexDao;
+	
+	@Autowired
+	private PurchaseProofingApprovalIndexDao purchaseProofingApprovalIndexDao;
 
 
 	@Autowired
 	@Autowired
 	private AttachDao attachDao;
 	private AttachDao attachDao;
@@ -328,19 +333,7 @@ public class PurchaseProofingServiceImpl implements PurchaseProofingService {
 	@Override
 	@Override
 	public void saveSampleApproval(List<PurchaseProofingApproval> proofingApprovals) {
 	public void saveSampleApproval(List<PurchaseProofingApproval> proofingApprovals) {
 		purchaseProofingApprovalDao.save(proofingApprovals);
 		purchaseProofingApprovalDao.save(proofingApprovals);
-		for (PurchaseProofingApproval approval : proofingApprovals) {
-			if (approval.getSscode() != null && approval.getVendUU() != null) {
-				List<PurchaseProofingSend> sends = purchaseProofingSendDao.findByProofingItemVendUUAndCode(
-						approval.getVendUU(), approval.getSscode());
-				if (sends.size() > 0) {
-					PurchaseProofingSend send = sends.get(0);
-					XingePusher.pushSingleAccountAndroid(send.getProofingItem().getVendUserUU().toString(),
-							"客户返回了送样认定单", "送样单号:" + approval.getSscode(), null);
-					XingePusher.pushSingleAccountIOS(send.getProofingItem().getVendUserUU().toString(), "客户返回了送样认定单  "
-							+ "送样单号:" + approval.getSscode());
-				}
-			}
-		}
+		ContextUtils.publishEvent(new PurchaseProofingApprovalSaveEvent(proofingApprovals));
 	}
 	}
 
 
 	@Override
 	@Override
@@ -366,13 +359,14 @@ public class PurchaseProofingServiceImpl implements PurchaseProofingService {
 	}
 	}
 
 
 	@Override
 	@Override
-	public Page<PurchaseProofingApproval> findApprovalsByPageInfo(final PageInfo pageInfo) {
+	public Page<PurchaseProofingApproval> findApprovalsByPageInfo(final PageInfo pageInfo, final String keyword) {
+		if (StringUtils.hasText(keyword))
+			pageInfo.expression(PredicateUtils.in("id", purchaseProofingApprovalIndexDao.findByKeyword(
+					SystemSession.getUser().getEnterprise().getUu(), keyword), false));
 		return purchaseProofingApprovalDao.findAll(new Specification<PurchaseProofingApproval>() {
 		return purchaseProofingApprovalDao.findAll(new Specification<PurchaseProofingApproval>() {
-
 			public Predicate toPredicate(Root<PurchaseProofingApproval> root, CriteriaQuery<?> query,
 			public Predicate toPredicate(Root<PurchaseProofingApproval> root, CriteriaQuery<?> query,
 					CriteriaBuilder builder) {
 					CriteriaBuilder builder) {
-				query.where(pageInfo.getPredicates(root, query, builder));
-				return null;
+				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 			}
 		}, pageInfo);
 		}, pageInfo);
 	}
 	}
@@ -380,15 +374,13 @@ public class PurchaseProofingServiceImpl implements PurchaseProofingService {
 	@Override
 	@Override
 	public Page<PurchaseProofingItemTodo> findTodoByPageInfo(final PageInfo pageInfo,
 	public Page<PurchaseProofingItemTodo> findTodoByPageInfo(final PageInfo pageInfo,
 			final String keyword) {
 			final String keyword) {
+		if (StringUtils.hasText(keyword))
+			pageInfo.expression(PredicateUtils.in("id", purchaseProofingItemIndexDao.findByKeyword(
+					SystemSession.getUser().getEnterprise().getUu(), keyword), false));
 		return purchaseProofingItemTodoDao.findAll(new Specification<PurchaseProofingItemTodo>() {
 		return purchaseProofingItemTodoDao.findAll(new Specification<PurchaseProofingItemTodo>() {
-
 			public Predicate toPredicate(Root<PurchaseProofingItemTodo> root, CriteriaQuery<?> query,
 			public Predicate toPredicate(Root<PurchaseProofingItemTodo> root, CriteriaQuery<?> query,
 					CriteriaBuilder builder) {
 					CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword))
-					pageInfo.expression(PredicateUtils.in("id", purchaseProofingItemIndexDao.findByKeyword(
-							SystemSession.getUser().getEnterprise().getUu(), keyword), false));
-				query.where(pageInfo.getPredicates(root, query, builder));
-				return null;
+				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 			}
 		}, pageInfo);
 		}, pageInfo);
 	}
 	}
@@ -396,15 +388,13 @@ public class PurchaseProofingServiceImpl implements PurchaseProofingService {
 	@Override
 	@Override
 	public Page<PurchaseProofingItemDone> findDoneByPageInfo(final PageInfo pageInfo,
 	public Page<PurchaseProofingItemDone> findDoneByPageInfo(final PageInfo pageInfo,
 			final String keyword) {
 			final String keyword) {
+		if (StringUtils.hasText(keyword))
+			pageInfo.expression(PredicateUtils.in("id", purchaseProofingItemIndexDao.findByKeyword(
+					SystemSession.getUser().getEnterprise().getUu(), keyword), false));
 		return purchaseProofingItemDoneDao.findAll(new Specification<PurchaseProofingItemDone>() {
 		return purchaseProofingItemDoneDao.findAll(new Specification<PurchaseProofingItemDone>() {
-
 			public Predicate toPredicate(Root<PurchaseProofingItemDone> root, CriteriaQuery<?> query,
 			public Predicate toPredicate(Root<PurchaseProofingItemDone> root, CriteriaQuery<?> query,
 					CriteriaBuilder builder) {
 					CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword))
-					pageInfo.expression(PredicateUtils.in("id", purchaseProofingItemIndexDao.findByKeyword(
-							SystemSession.getUser().getEnterprise().getUu(), keyword), false));
-				query.where(pageInfo.getPredicates(root, query, builder));
-				return null;
+				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 			}
 		}, pageInfo);
 		}, pageInfo);
 	}
 	}

+ 4 - 6
src/main/java/com/uas/platform/b2b/service/impl/SaleQuotationServiceImpl.java

@@ -122,14 +122,12 @@ public class SaleQuotationServiceImpl implements SaleQuotationService {
 	@Override
 	@Override
 	public Page<SaleQuotationItem> findAllDetailByPageInfo(final PageInfo pageInfo,
 	public Page<SaleQuotationItem> findAllDetailByPageInfo(final PageInfo pageInfo,
 			final String keyword) {
 			final String keyword) {
+		if (StringUtils.hasText(keyword))
+			pageInfo.expression(PredicateUtils.in("id", SaleQuotationItemIndexDao.findByEnUUAndKeyword(
+					SystemSession.getUser().getEnterprise().getUu(), keyword), false));
 		return saleQuotationItemDao.findAll(new Specification<SaleQuotationItem>() {
 		return saleQuotationItemDao.findAll(new Specification<SaleQuotationItem>() {
 			public Predicate toPredicate(Root<SaleQuotationItem> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 			public Predicate toPredicate(Root<SaleQuotationItem> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-				query.where(pageInfo.getPredicates(root, query, builder));
-				if (StringUtils.hasText(keyword))
-					pageInfo.expression(PredicateUtils.in("id", SaleQuotationItemIndexDao.findByEnUUAndKeyword(
-							SystemSession.getUser().getEnterprise().getUu(), keyword), false));
-				query.where(pageInfo.getPredicates(root, query, builder));
-				return null;
+				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 			}
 		}, pageInfo);
 		}, pageInfo);
 	}
 	}