Browse Source

分页查询程序,部分程序提到接口外

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@1078 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
administrator 11 years ago
parent
commit
f917d6e575

+ 17 - 11
src/main/java/com/uas/platform/b2b/controller/SaleNoticeController.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2b.controller;
 
+import java.io.UnsupportedEncodingException;
 import java.text.SimpleDateFormat;
 import java.util.List;
 
@@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.uas.platform.b2b.core.util.SearchKeyUtils;
 import com.uas.platform.b2b.model.PurchaseNotice;
 import com.uas.platform.b2b.model.SaleSend;
 import com.uas.platform.b2b.model.SaleSendAll;
@@ -52,15 +54,16 @@ public class SaleNoticeController {
 	 * 
 	 * @param params
 	 * @return
+	 * @throws UnsupportedEncodingException
 	 */
 	@RequestMapping(method = RequestMethod.GET)
 	@ResponseBody
-	public Page<PurchaseNotice> getReceivedPurchaseNotices(PageParams params, String keyword) {
+	public Page<PurchaseNotice> getReceivedPurchaseNotices(PageParams params, String keyword) throws UnsupportedEncodingException {
 		logger.log("客户送货提醒", "查看收到的客户送货提醒列表(全部)");
 		PageInfo info = new PageInfo(params);
 		// 我作为卖家,把我的企业ID作为供应商ID传入
 		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
-		return purchaseNoticeService.findAllByPageInfo(info, keyword);
+		return purchaseNoticeService.findAllByPageInfo(info, SearchKeyUtils.decodeURL(keyword));
 	}
 
 	/**
@@ -94,10 +97,11 @@ public class SaleNoticeController {
 	 * 
 	 * @param params
 	 * @return
+	 * @throws UnsupportedEncodingException
 	 */
 	@RequestMapping(params = RequestState.TODO, method = RequestMethod.GET)
 	@ResponseBody
-	public Page<PurchaseNotice> getTodoPurchaseNotices(PageParams params, String keyword) {
+	public Page<PurchaseNotice> getTodoPurchaseNotices(PageParams params, String keyword) throws UnsupportedEncodingException {
 		logger.log("客户送货提醒", "查看收到的客户送货提醒列表(待发货)");
 		PageInfo info = new PageInfo(params);
 		// 送货提醒状态为待发货
@@ -106,7 +110,7 @@ public class SaleNoticeController {
 		info.filter("waiting", Constant.NO);
 		// 我作为卖家,把我的企业ID作为供应商ID传入
 		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
-		return purchaseNoticeService.findAllByPageInfo(info, keyword);
+		return purchaseNoticeService.findAllByPageInfo(info, SearchKeyUtils.decodeURL(keyword));
 	}
 
 	/**
@@ -114,17 +118,18 @@ public class SaleNoticeController {
 	 * 
 	 * @param params
 	 * @return
+	 * @throws UnsupportedEncodingException
 	 */
 	@RequestMapping(params = RequestState.DONE, method = RequestMethod.GET)
 	@ResponseBody
-	public Page<PurchaseNotice> getDonePurchaseNotices(PageParams params, String keyword) {
+	public Page<PurchaseNotice> getDonePurchaseNotices(PageParams params, String keyword) throws UnsupportedEncodingException {
 		logger.log("客户送货提醒", "查看收到的客户送货提醒列表(已发货)");
 		PageInfo info = new PageInfo(params);
 		// 送货提醒状态为已发货
 		info.filter("status", Status.REPLIED.value());
 		// 我作为卖家,把我的企业ID作为供应商ID传入
 		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
-		return purchaseNoticeService.findDoneByPageInfo(info, keyword);
+		return purchaseNoticeService.findDoneByPageInfo(info, SearchKeyUtils.decodeURL(keyword));
 	}
 
 	/**
@@ -132,17 +137,18 @@ public class SaleNoticeController {
 	 * 
 	 * @param params
 	 * @return
+	 * @throws UnsupportedEncodingException
 	 */
 	@RequestMapping(params = "_state=waiting", method = RequestMethod.GET)
 	@ResponseBody
-	public Page<PurchaseNotice> getWaitingPurchaseNotices(PageParams params, String keyword) {
+	public Page<PurchaseNotice> getWaitingPurchaseNotices(PageParams params, String keyword) throws UnsupportedEncodingException {
 		logger.log("客户送货提醒", "查看收到的客户送货提醒列表(备料中)");
 		PageInfo info = new PageInfo(params);
 		// 需要等待发货
 		info.filter("waiting", Constant.YES);
 		// 我作为卖家,把我的企业ID作为供应商ID传入
 		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
-		return purchaseNoticeService.findAllByPageInfo(info, keyword);
+		return purchaseNoticeService.findAllByPageInfo(info, SearchKeyUtils.decodeURL(keyword));
 	}
 
 	/**
@@ -150,17 +156,18 @@ public class SaleNoticeController {
 	 * 
 	 * @param params
 	 * @return
+	 * @throws UnsupportedEncodingException
 	 */
 	@RequestMapping(params = RequestState.END, method = RequestMethod.GET)
 	@ResponseBody
-	public Page<PurchaseNotice> getEndPurchaseNotices(PageParams params, String keyword) {
+	public Page<PurchaseNotice> getEndPurchaseNotices(PageParams params, String keyword) throws UnsupportedEncodingException {
 		logger.log("客户送货提醒", "查看收到的客户送货提醒列表(已结案)");
 		PageInfo info = new PageInfo(params);
 		// 询价单状态为已结案
 		info.filter("end", (short) Constant.YES);
 		// 我作为卖家,把我的企业ID作为供应商ID传入
 		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
-		return purchaseNoticeService.findAllByPageInfo(info, keyword);
+		return purchaseNoticeService.findAllByPageInfo(info, SearchKeyUtils.decodeURL(keyword));
 	}
 
 	/**
@@ -230,7 +237,6 @@ public class SaleNoticeController {
 		logger.log("客户送货提醒", "导出Excel列表", "导出全部Excel列表");
 		return modelAndView;
 	}
-	
 
 	/**
 	 * 导出送货提醒(未发货)

+ 12 - 0
src/main/java/com/uas/platform/b2b/core/util/SearchKeyUtils.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2b.core.util;
 
+import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
@@ -47,4 +48,15 @@ public class SearchKeyUtils {
 		return null;
 	}
 
+	public static String decodeURL(String paramString) {
+		if (StringUtils.hasText(paramString)) {
+			try {
+				return new String(paramString.getBytes("iso-8859-1"), "UTF-8");
+			} catch (UnsupportedEncodingException e) {
+				return null;
+			}
+		}
+		return null;
+	}
+
 }

+ 19 - 26
src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.java

@@ -66,30 +66,29 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 
 	@Override
 	public Page<PurchaseNotice> findAllByPageInfo(final PageInfo pageInfo, final String keyword) {
+		if (StringUtils.hasText(keyword))
+			pageInfo.expression(PredicateUtils.in("id",
+					purchaseNoticeIndexDao.findByKeyword(SystemSession.getUser().getEnterprise().getUu(), keyword), false));
 		return purchaseNoticeDao.findAll(new Specification<PurchaseNotice>() {
 
+			@Override
 			public Predicate toPredicate(Root<PurchaseNotice> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-				if (StringUtils.hasText(keyword))
-					pageInfo.expression(PredicateUtils.in("id",
-							purchaseNoticeIndexDao.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);
 	}
 
 	@Override
 	public Page<PurchaseNotice> findDoneByPageInfo(final PageInfo pageInfo, final String keyword) {
+		pageInfo.filter("status", Status.REPLIED.value());
+		pageInfo.expression(PredicateUtils.or(PredicateUtils.isNull("end"), PredicateUtils.ne("end", Constant.YES, false)));
+		if (StringUtils.hasText(keyword))
+			pageInfo.expression(PredicateUtils.in("id",
+					purchaseNoticeIndexDao.findByKeyword(SystemSession.getUser().getEnterprise().getUu(), keyword), false));
 		return purchaseNoticeDao.findAll(new Specification<PurchaseNotice>() {
 
 			public Predicate toPredicate(Root<PurchaseNotice> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-				pageInfo.filter("status", Status.REPLIED.value());
-				pageInfo.expression(PredicateUtils.or(PredicateUtils.isNull("end"), PredicateUtils.ne("end", Constant.YES, false)));
-				if (StringUtils.hasText(keyword))
-					pageInfo.expression(PredicateUtils.in("id",
-							purchaseNoticeIndexDao.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);
 	}
@@ -240,7 +239,7 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 			notice.setEndQty(endQty);
 			notice.setStatus((short) (endQty == notice.getQty() ? Status.REPLIED.value() : Status.NOT_REPLY.value()));
 			purchaseNoticeDao.save(notice);
-			if(!CollectionUtils.isEmpty(sendItems)) {
+			if (!CollectionUtils.isEmpty(sendItems)) {
 				List<SaleSend> saleSends = new ArrayList<SaleSend>();
 				saleSends.add(sendItems.get(0).getSend());
 				ContextUtils.publishEvent(new SaleSendSaveEvent(saleSends));
@@ -259,10 +258,10 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 	@Override
 	public SaleSend send(SaleSend saleSend) {
 		if (saleSend != null) {
-//			//限制同一个供应商发货单号不可以重复,(限制被去掉 -- 2015年6月5日15:23:52)
-//			List<SaleSend> saleSends = saleSendDao.findByEnUUAndCode(SystemSession.getUser().getEnterprise().getUu(), saleSend.getCode());
-//			if (saleSends.size() > 0)
-//			throw new IllegalOperatorException("发货单号重复,无法发货!提示:多个物料一起发货请选择批量发货。");
+			// //限制同一个供应商发货单号不可以重复,(限制被去掉 -- 2015年6月5日15:23:52)
+			// List<SaleSend> saleSends = saleSendDao.findByEnUUAndCode(SystemSession.getUser().getEnterprise().getUu(), saleSend.getCode());
+			// if (saleSends.size() > 0)
+			// throw new IllegalOperatorException("发货单号重复,无法发货!提示:多个物料一起发货请选择批量发货。");
 			saleSend.setBackStatus((short) Status.NOT_UPLOAD.value());
 			saleSend.setSendStatus((short) Status.NOT_UPLOAD.value());
 			saleSend.setEnUU(SystemSession.getUser().getEnterprise().getUu());
@@ -297,7 +296,7 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 				notice.setStatus((short) (endQty == notice.getQty() ? Status.REPLIED.value() : Status.NOT_REPLY.value()));
 				purchaseNoticeDao.save(notice);
 			}
-			if(!CollectionUtils.isEmpty(sendItems)) {
+			if (!CollectionUtils.isEmpty(sendItems)) {
 				List<SaleSend> saleSends = new ArrayList<SaleSend>();
 				saleSends.add(sendItems.get(0).getSend());
 				ContextUtils.publishEvent(new SaleSendSaveEvent(saleSends));
@@ -330,13 +329,11 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 	public List<PurchaseNotice> findById(Long[] ids) {
 		return purchaseNoticeDao.findUnEndByIds(ids);
 	}
-	
+
 	@Override
 	@Transactional
 	public void onVerify(List<SaleSendItem> saleSendItems) {
-		System.out.println("save : " + saleSendItems.size());
-		for(SaleSendItem item : saleSendItems) {
-			System.out.println("id: " + item.getId() + ", qty: " + item.getVerifyQty());
+		for (SaleSendItem item : saleSendItems) {
 			saleSendItemDao.updateByVerify(item.getId(), item.getVerifyQty());
 		}
 	}
@@ -344,10 +341,6 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 	@Override
 	@Transactional
 	public void unVerify(List<SaleSendItem> saleSendItems) {
-		System.out.println("save : " + saleSendItems.size());
-		for(SaleSendItem item : saleSendItems) {
-			System.out.println("id: " + item.getId() + ", qty: " + item.getVerifyQty());
-		}
 		saleSendItemDao.save(saleSendItems);
 	}