Browse Source

红点未读数量超过1000条查询报异常问题

wangmh 8 years ago
parent
commit
d3a1a9f773
32 changed files with 459 additions and 401 deletions
  1. 3 17
      src/main/java/com/uas/platform/b2b/controller/MakeOrderController.java
  2. 4 28
      src/main/java/com/uas/platform/b2b/controller/PurchaseTenderController.java
  3. 5 33
      src/main/java/com/uas/platform/b2b/controller/SaleInquiryController.java
  4. 3 17
      src/main/java/com/uas/platform/b2b/controller/SaleInquiryMouldController.java
  5. 7 19
      src/main/java/com/uas/platform/b2b/controller/SaleNoticeController.java
  6. 3 21
      src/main/java/com/uas/platform/b2b/controller/SaleOrderChangeController.java
  7. 4 33
      src/main/java/com/uas/platform/b2b/controller/SaleOrderController.java
  8. 3 22
      src/main/java/com/uas/platform/b2b/controller/SaleSampleController.java
  9. 23 80
      src/main/java/com/uas/platform/b2b/controller/SnapshotController.java
  10. 8 0
      src/main/java/com/uas/platform/b2b/dao/MakeOrderDao.java
  11. 11 1
      src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryMouldDao.java
  12. 11 1
      src/main/java/com/uas/platform/b2b/dao/PurchaseNoticeDao.java
  13. 15 6
      src/main/java/com/uas/platform/b2b/dao/PurchaseOrderChangeDao.java
  14. 3 0
      src/main/java/com/uas/platform/b2b/dao/PurchaseOrderDao.java
  15. 19 0
      src/main/java/com/uas/platform/b2b/dao/PurchaseProofingItemDao.java
  16. 2 1
      src/main/java/com/uas/platform/b2b/service/MakeOrderService.java
  17. 2 1
      src/main/java/com/uas/platform/b2b/service/PurchaseInquiryMouldService.java
  18. 2 1
      src/main/java/com/uas/platform/b2b/service/PurchaseInquiryService.java
  19. 1 1
      src/main/java/com/uas/platform/b2b/service/PurchaseNoticeService.java
  20. 2 1
      src/main/java/com/uas/platform/b2b/service/PurchaseOrderChangeService.java
  21. 2 1
      src/main/java/com/uas/platform/b2b/service/PurchaseOrderService.java
  22. 2 1
      src/main/java/com/uas/platform/b2b/service/PurchaseProofingService.java
  23. 2 1
      src/main/java/com/uas/platform/b2b/service/PurchaseTenderService.java
  24. 30 7
      src/main/java/com/uas/platform/b2b/service/impl/MakeOrderServiceImpl.java
  25. 30 7
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryMouldServiceImpl.java
  26. 29 21
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java
  27. 90 40
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.java
  28. 38 11
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderChangeServiceImpl.java
  29. 33 8
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java
  30. 32 5
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseProofingServiceImpl.java
  31. 39 15
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseTenderServiceImpl.java
  32. 1 1
      src/main/webapp/resources/js/index/app.js

+ 3 - 17
src/main/java/com/uas/platform/b2b/controller/MakeOrderController.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.controller;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -386,23 +387,8 @@ public class MakeOrderController {
 	@ResponseStatus(value = HttpStatus.OK)
 	public ModelMap getOrderUnreadCount() {
 		final ModelMap modelMap = new ModelMap();
-		List<Object[]> list = makeOrderService.getMakeOrderCount("sale");
-		int all = 0;
-		String key;
-		int value;
-		for(Object[] objects : list){
-			key = objects[1].toString();
-            value = Integer.valueOf(objects[0].toString());
-            if(Status.NOT_REPLY.toString().equals(key)){
-                key = "notReply";
-                all = all + value;
-            } else if (Status.REPLIED.toString().equals(key)){
-                key = "replied";
-                all = all + value;
-            }
-            modelMap.put(key, value);
-		}
-		modelMap.put("all", all);
+		Map<String, Integer> count = makeOrderService.getMakeOrderCount("sale");
+		modelMap.putAll(count);
 		return modelMap;
 	}
 

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

@@ -971,20 +971,8 @@ public class PurchaseTenderController {
     @ResponseStatus(value = HttpStatus.OK)
     public ModelMap getOrderUnreadCount() {
         final ModelMap modelMap = new ModelMap();
-        List<Object[]> list = purchaseTenderService.getTenderCount("sale");
-        String key;
-        int value;
-        int all = 0;
-        for(Object[] objects : list){
-            key = objects[1].toString();
-            value = Integer.valueOf(objects[0].toString());
-            if("待投标".equals(key)){
-                key = "notReply";
-                modelMap.put(key, value);
-                all = all + value;
-            }
-        }
-        modelMap.put("all", all);
+        Map<String, Integer> count = purchaseTenderService.getTenderCount("sale");
+        modelMap.putAll(count);
         return modelMap;
     }
 
@@ -1022,20 +1010,8 @@ public class PurchaseTenderController {
     @ResponseStatus(value = HttpStatus.OK)
     public ModelMap getPurcOrderUnreadCount() {
         final ModelMap modelMap = new ModelMap();
-        List<Object[]> list = purchaseTenderService.getTenderCount("purc");
-        String key;
-        int value;
-        int all = 0;
-        for(Object[] objects : list){
-            key = objects[1].toString();
-            value = Integer.valueOf(objects[0].toString());
-            if("待评标".equals(key)){
-                key = "notReply";
-                all = all + value;
-                modelMap.put(key, value);
-            }
-        }
-        modelMap.put("all", all);
+        Map<String, Integer> count = purchaseTenderService.getTenderCount("purc");
+        modelMap.putAll(count);
         return modelMap;
     }
 }

+ 5 - 33
src/main/java/com/uas/platform/b2b/controller/SaleInquiryController.java

@@ -38,6 +38,7 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 卖家对询价单的操作
@@ -766,22 +767,8 @@ public class SaleInquiryController {
 	@ResponseStatus(value = HttpStatus.OK)
 	public ModelMap getInquiryUnreadCount() {
 		final ModelMap modelMap = new ModelMap();
-		List<Object[]> list = purchaseInquiryService.getInquiryCount("sale");
-		int all = 0;
-		String key;
-		int value;
-		for(Object[] objects : list){
-			key = objects[1].toString();
-			if(Status.NOT_REPLY.toString().equals(key)){
-				key = "notReply";
-			} else if (Status.REPLIED.toString().equals(key)){
-				key = "replied";
-			}
-			value = Integer.valueOf(objects[0].toString());
-			modelMap.put(key, value);
-			all = all + value;
-		}
-		modelMap.put("all", all);
+		Map<String, Integer> map = purchaseInquiryService.getInquiryCount("sale");
+		modelMap.putAll(map);
 		return modelMap;
 	}
 
@@ -817,23 +804,8 @@ public class SaleInquiryController {
 	@ResponseStatus(value = HttpStatus.OK)
 	public ModelMap getPurcInquiryUnreadCount() {
 		final ModelMap modelMap = new ModelMap();
-		List<Object[]> list = purchaseInquiryService.getInquiryCount("purc");
-		int all = 0;
-		String key;
-		int value;
-		for(Object[] objects : list){
-			key = objects[1].toString();
-            value = Integer.valueOf(objects[0].toString());
-            if(Status.NOT_REPLY.toString().equals(key)){
-                key = "notReply";
-                all = all + value;
-            } else if (Status.REPLIED.toString().equals(key)){
-                key = "replied";
-                all = all + value;
-            }
-            modelMap.put(key, value);
-        }
-        modelMap.put("all", all);
+		Map<String, Integer> map = purchaseInquiryService.getInquiryCount("purc");
+        modelMap.putAll(map);
 		return modelMap;
 	}
 }

+ 3 - 17
src/main/java/com/uas/platform/b2b/controller/SaleInquiryMouldController.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.controller;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import com.uas.platform.b2b.model.*;
@@ -601,23 +602,8 @@ public class SaleInquiryMouldController {
 	@ResponseStatus(value = HttpStatus.OK)
 	public ModelMap getPurcInquiryUnreadCount() {
 		final ModelMap modelMap = new ModelMap();
-		List<Object[]> list = purchaseInquiryMouldService.getInquiryMouldCount("sale");
-		int all = 0;
-		String key;
-		int value;
-		for(Object[] objects : list){
-            key = objects[1].toString();
-            value = Integer.valueOf(objects[0].toString());
-            if(Status.NOT_REPLY.toString().equals(key)){
-                key = "notReply";
-                all = all + value;
-            } else if (Status.REPLIED.toString().equals(key)){
-                key = "replied";
-                all = all + value;
-            }
-            modelMap.put(key, value);
-		}
-		modelMap.put("all", all);
+		Map<String, Integer> count = purchaseInquiryMouldService.getInquiryMouldCount("sale");
+		modelMap.putAll(count);
 		return modelMap;
 	}
 

+ 7 - 19
src/main/java/com/uas/platform/b2b/controller/SaleNoticeController.java

@@ -4,6 +4,7 @@ import java.io.UnsupportedEncodingException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -375,8 +376,9 @@ public class SaleNoticeController {
 			logger.log("客户送货提醒", "给单个客户送货提醒填写数量并确认发货", send.sendDescription(), null, noticeId);
 			map.put("id", send.getId());
 			return new ResponseEntity<ModelMap>(map, HttpStatus.OK);
-		} else
+		} else {
 			throw new IllegalOperatorException("程序错误");
+		}
 	}
 
 	/**
@@ -399,8 +401,9 @@ public class SaleNoticeController {
 			logger.log("客户送货提醒", "给同一客户多个送货提醒填写数量并确认发货", send.sendDescription(), null, send.getId());
 			map.put("id", send.getId());
 			return new ResponseEntity<ModelMap>(map, HttpStatus.OK);
-		} else
+		} else {
 			throw new IllegalOperatorException("程序错误");
+		}
 	}
 
 	/**
@@ -852,23 +855,8 @@ public class SaleNoticeController {
 	@ResponseStatus(value = HttpStatus.OK)
 	public ModelMap getOrderUnreadCount() {
 		final ModelMap modelMap = new ModelMap();
-		List<Object[]> list = purchaseNoticeService.getNoticeCount("sale");
-		int all = 0;
-		String key;
-		int value;
-		for(Object[] objects : list){
-			key = objects[1].toString();
-            value = Integer.valueOf(objects[0].toString());
-            if(Status.NOT_REPLY.toString().equals(key)){
-                key = "notReply";
-                all = all + value;
-            } else if (Status.REPLIED.toString().equals(key)){
-                key = "replied";
-                all = all + value;
-            }
-            modelMap.put(key, value);
-		}
-		modelMap.put("all", all);
+		Map<String, Integer> count = purchaseNoticeService.getNoticeCount("sale");
+		modelMap.putAll(count);
 		return modelMap;
 	}
 

+ 3 - 21
src/main/java/com/uas/platform/b2b/controller/SaleOrderChangeController.java

@@ -35,6 +35,7 @@ import org.springframework.web.servlet.ModelAndView;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 卖家对变更单的操作
@@ -472,27 +473,8 @@ public class SaleOrderChangeController {
 	@ResponseStatus(value = HttpStatus.OK)
 	public ModelMap getOrderUnreadCount() {
 		final ModelMap modelMap = new ModelMap();
-		List<Object[]> list = purchaseOrderChangeService.getChangeCount("sale");
-		int all = 0;
-		String key;
-		int value;
-		for(Object[] objects : list){
-			key = objects[1].toString();
-			value = Integer.valueOf(objects[0].toString());
-			if ("unNeedReply".equals(key)) {
-				all = all + value;
-			} else if(Status.NOT_REPLY.toString().equals(key)){
-				key = "notReply";
-				all = all + value;
-			} else if (Status.REPLIED.toString().equals(key)){
-				key = "replied";
-				all = all + value;
-			} else {
-				continue;
-			}
-			modelMap.put(key, value);
-		}
-		modelMap.put("all", all);
+		Map<String, Integer> map = purchaseOrderChangeService.getChangeCount("sale");
+		modelMap.putAll(map);
 		return modelMap;
 	}
 

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

@@ -1264,22 +1264,8 @@ public class SaleOrderController {
 	@ResponseStatus(value = HttpStatus.OK)
 	public ModelMap getOrderUnreadCount() {
 		final ModelMap modelMap = new ModelMap();
-		List<Object[]> list = purchaseOrderService.getOrderCount("sale");
-		int all = 0;
-		String key;
-		int value;
-		for(Object[] objects : list){
-			key = objects[1].toString();
-			if(Status.NOT_REPLY.toString().equals(key)){
-				key = "notReply";
-			} else if (Status.REPLIED.toString().equals(key)){
-				key = "replied";
-			}
-			value = Integer.valueOf(objects[0].toString());
-			modelMap.put(key, value);
-			all = all + value;
-		}
-		modelMap.put("all", all);
+		Map<String, Integer> count = purchaseOrderService.getOrderCount("sale");
+		modelMap.putAll(count);
 		return modelMap;
 	}
 
@@ -1317,23 +1303,8 @@ public class SaleOrderController {
 	@ResponseStatus(value = HttpStatus.OK)
 	public ModelMap getPurcOrderUnreadCount() {
 		final ModelMap modelMap = new ModelMap();
-		List<Object[]> list = purchaseOrderService.getOrderCount("purc");
-		int all = 0;
-		String key;
-		int value;
-		for(Object[] objects : list){
-			key = objects[1].toString();
-			value = Integer.valueOf(objects[0].toString());
-			if(Status.NOT_REPLY.toString().equals(key)){
-				key = "notReply";
-				all = all + value;
-			} else if (Status.REPLIED.toString().equals(key)){
-				key = "replied";
-				all = all + value;
-			}
-			modelMap.put(key, value);
-		}
-		modelMap.put("all", all);
+		Map<String, Integer> count = purchaseOrderService.getOrderCount("purc");
+		modelMap.putAll(count);
 		return modelMap;
 	}
 

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

@@ -1,11 +1,7 @@
 package com.uas.platform.b2b.controller;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Sort.Direction;
@@ -705,23 +701,8 @@ public class SaleSampleController {
 	@ResponseStatus(value = HttpStatus.OK)
 	public ModelMap getOrderUnreadCount() {
 		final ModelMap modelMap = new ModelMap();
-		List<Object[]> list = purchaseProofingService.getProofingCount("sale");
-		int all = 0;
-		String key;
-		int value;
-		for(Object[] objects : list){
-			key = objects[1].toString();
-			value = Integer.valueOf(objects[0].toString());
-			if(Status.SEND.toString().equals(key)){
-				key = "send";
-				all = all + value;
-			} else if (Status.UNSEND.toString().equals(key)){
-				key = "unSend";
-				all = all + value;
-			}
-			modelMap.put(key, value);
-		}
-		modelMap.put("all", all);
+		Map<String, Integer> count = purchaseProofingService.getProofingCount("sale");
+		modelMap.putAll(count);
 		return modelMap;
 	}
 }

+ 23 - 80
src/main/java/com/uas/platform/b2b/controller/SnapshotController.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.Hashtable;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 平台消息、任务快照
@@ -495,12 +496,8 @@ public class SnapshotController {
 			public void run() {
 				//客户采购询价
 				SystemSession.setUser(user);
-				int count = 0;
-				List<Object[]> list = purchaseInquiryService.getInquiryCount("sale");
-				for (Object[] objects : list){
-					count = count + Integer.valueOf(objects[0].toString());
-				}
-				hashtable.put("inquiry", count);
+				Map<String, Integer> map = purchaseInquiryService.getInquiryCount("sale");
+				hashtable.put("inquiry", map.containsKey("all")?map.get("all"):0);
 				SystemSession.clear();
 			}
 		}).task(new Runnable() {
@@ -509,12 +506,8 @@ public class SnapshotController {
 			public void run() {
 				//客户模具询价
 				SystemSession.setUser(user);
-				int count = 0;
-				List<Object[]> list = purchaseInquiryMouldService.getInquiryMouldCount("sale");
-				for (Object[] objects : list){
-					count = count + Integer.valueOf(objects[0].toString());
-				}
-				hashtable.put("mould", count);
+				Map<String, Integer> count = purchaseInquiryMouldService.getInquiryMouldCount("sale");
+				hashtable.put("mould", count.containsKey("all")?count.get("all"):0);
 				SystemSession.clear();
 			}
 //		}).task(new Runnable() {
@@ -532,15 +525,8 @@ public class SnapshotController {
 			public void run() {
 				//客户招标
 				SystemSession.setUser(user);
-				int count = 0;
-				List<Object[]> list = tenderService.getTenderCount("sale");
-				for (Object[] objects : list){
-					if ("待投标".equals(objects[1].toString())) {
-						count = count + Integer.valueOf(objects[0].toString());
-						break;
-					}
-				}
-				hashtable.put("tender", count);
+				Map<String, Integer> count = tenderService.getTenderCount("sale");
+				hashtable.put("tender", count.containsKey("all")?count.get("all"):0);
 				SystemSession.clear();
 //			}
 //		}).task(new Runnable() {
@@ -564,12 +550,8 @@ public class SnapshotController {
 			public void run() {
 				//客户采购订单
 				SystemSession.setUser(user);
-				int count = 0;
-				List<Object[]> list = purchaseOrderService.getOrderCount("sale");
-				for (Object[] objects : list){
-					count = count + Integer.valueOf(objects[0].toString());
-				}
-				hashtable.put("order", count);
+				Map<String, Integer> count = purchaseOrderService.getOrderCount("sale");
+				hashtable.put("order", count.containsKey("all")?count.get("all"):0);
 				SystemSession.clear();
 			}
 		}).task(new Runnable() {
@@ -578,12 +560,8 @@ public class SnapshotController {
 			public void run() {
 				//客户采购变更单
 				SystemSession.setUser(user);
-				int count = 0;
-				List<Object[]> list = purchaseOrderChangeService.getChangeCount("sale");
-				for (Object[] objects : list){
-					count = count + Integer.valueOf(objects[0].toString());
-				}
-				hashtable.put("change", count);
+				Map<String, Integer> map = purchaseOrderChangeService.getChangeCount("sale");
+				hashtable.put("change", map.containsKey("all")?map.get("all"):0);
 				SystemSession.clear();
 			}
 		}).task(new Runnable() {
@@ -592,12 +570,8 @@ public class SnapshotController {
 			public void run() {
 				//客户委外单
 				SystemSession.setUser(user);
-				int count = 0;
-				List<Object[]> list = makeOrderService.getMakeOrderCount("sale");
-				for (Object[] objects : list){
-					count = count + Integer.valueOf(objects[0].toString());
-				}
-				hashtable.put("makeOrder", count);
+				Map<String, Integer> count = makeOrderService.getMakeOrderCount("sale");
+				hashtable.put("makeOrder", count.containsKey("all")?count.get("all"):0);
 				SystemSession.clear();
 			}
 //		}).task(new Runnable() {
@@ -621,12 +595,8 @@ public class SnapshotController {
 			public void run() {
 				//客户发货提醒
 				SystemSession.setUser(user);
-				int count = 0;
-				List<Object[]> list = purchaseNoticeService.getNoticeCount("sale");
-				for (Object[] objects : list){
-					count = count + Integer.valueOf(objects[0].toString());
-				}
-				hashtable.put("notice", count);
+				Map<String, Integer> count = purchaseNoticeService.getNoticeCount("sale");
+				hashtable.put("notice", count.containsKey("all")?count.get("all"):0);
 				SystemSession.clear();
 			}
 //		}).task(new Runnable() {
@@ -644,14 +614,8 @@ public class SnapshotController {
 			public void run() {
 				//客户打样申请
 				SystemSession.setUser(user);
-				int count = 0;
-				List<Object[]> list = purchaseProofingService.getProofingCount("sale");
-				for (Object[] objects : list){
-					if (Status.SEND.toString().equals(objects[1].toString()) || Status.UNSEND.toString().equals(objects[1].toString())) {
-						count = count + Integer.valueOf(objects[0].toString());
-					}
-				}
-				hashtable.put("sample", count);
+				Map<String, Integer> count = purchaseProofingService.getProofingCount("sale");
+				hashtable.put("sample", count.containsKey("all")?count.get("all"):0);
 				SystemSession.clear();
 			}
 //		}).task(new Runnable() {
@@ -760,15 +724,8 @@ public class SnapshotController {
 			public void run() {
 				//采购招标
 				SystemSession.setUser(user);
-				List<Object[]> list = tenderService.getTenderCount("purc");
-				int count = 0;
-				for(Object[] objects : list){
-					if("待评标".equals(objects[1].toString())){
-						count = count + Integer.valueOf(objects[0].toString());
-						break;
-					}
-				}
-				hashtable.put("purcTender", count);
+                Map<String, Integer> count = tenderService.getTenderCount("purc");
+                hashtable.put("tender", count.containsKey("all")?count.get("all"):0);
 				SystemSession.clear();
 			}
 		}).task(new Runnable() {
@@ -777,15 +734,8 @@ public class SnapshotController {
 			public void run() {
 				//采购询价
 				SystemSession.setUser(user);
-				List<Object[]> list = purchaseInquiryService.getInquiryCount("purc");
-				int count = 0;
-				for(Object[] objects : list){
-					if(Status.REPLIED.value() == Integer.valueOf(objects[1].toString())){
-						count = count + Integer.valueOf(objects[0].toString());
-						break;
-					}
-				}
-				hashtable.put("purcInquiry", count);
+				Map<String, Integer> map = purchaseInquiryService.getInquiryCount("purc");
+				hashtable.put("purcInquiry", map.containsKey("all")?map.get("all"):0);
 				SystemSession.clear();
 			}
 		}).task(new Runnable() {
@@ -794,15 +744,8 @@ public class SnapshotController {
 			public void run() {
 				//采购订单
 				SystemSession.setUser(user);
-				List<Object[]> list = purchaseOrderService.getOrderCount("purc");
-				int count = 0;
-				for(Object[] objects : list){
-					if(Status.REPLIED.value() == Integer.valueOf(objects[1].toString())){
-						count = Integer.valueOf(objects[0].toString());
-						break;
-					}
-				}
-				hashtable.put("purcOrder", count);
+				Map<String, Integer> count = purchaseOrderService.getOrderCount("purc");
+				hashtable.put("purcOrder", count.containsKey("all")?count.get("all"):0);
 				SystemSession.clear();
 			}
 //		}).task(new Runnable() {

+ 8 - 0
src/main/java/com/uas/platform/b2b/dao/MakeOrderDao.java

@@ -106,4 +106,12 @@ public interface MakeOrderDao extends JpaSpecificationExecutor<MakeOrder>, JpaRe
 	@Query("select p.id from MakeOrder p where p.id in :ids and p.status=201")
 	List<Long> findRepliedId(@Param("ids") List<Long> ids);
 
+	/**
+	 * 筛选出未回复单据的id号
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@Query("select p.id from MakeOrder p where p.id in :ids and p.status=200")
+	List<Long> findNotReplyId(@Param("ids") List<Long> ids);
 }

+ 11 - 1
src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryMouldDao.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.dao;
 import java.util.Date;
 import java.util.List;
 
+import org.apache.log4j.lf5.viewer.configure.MRUFileManager;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
@@ -155,11 +156,20 @@ public interface PurchaseInquiryMouldDao
 	List<Object[]> getUnreadCountEveryStatus(@Param("ids") List<Long> ids);
 
 	/**
-	 * 筛选出报价单据的id号
+	 * 筛选出报价单据的id号
 	 *
 	 * @param ids
 	 * @return
 	 */
 	@Query("select p.id from PurchaseInquiryMould p where p.id in :ids and p.status=201 and p.adoptStatus is null and p.valid <> 0")
 	List<Long> findRepliedId(@Param("ids") List<Long> ids);
+
+	/**
+	 * 筛选出待报价单据的id号
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@Query("select p.id from PurchaseInquiryMould p where p.id in :ids and p.status=200 and p.adoptStatus is null and p.valid <> 0")
+    MRUFileManager findNotReplyId(List<Long> ids);
 }

+ 11 - 1
src/main/java/com/uas/platform/b2b/dao/PurchaseNoticeDao.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.dao;
 import java.util.Date;
 import java.util.List;
 
+import org.apache.log4j.lf5.viewer.configure.MRUFileManager;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
@@ -145,6 +146,15 @@ public interface PurchaseNoticeDao extends JpaSpecificationExecutor<PurchaseNoti
 	 * @param ids
 	 * @return
 	 */
-	@Query("select p.id from PurchaseNotice p where p.id in :ids and p.status=201")
+	@Query("select p.id from PurchaseNotice p where p.id in :ids and p.status=201 and (p.end is null or p.end = 0) and p.waiting=0")
 	List<Long> findRepliedId(@Param("ids") List<Long> ids);
+
+	/**
+	 * 筛选出已报价单据的id号
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@Query("select p.id from PurchaseNotice p where p.id in :ids and p.status=200 and (p.end is null or p.end = 0) and p.waiting=0")
+	List<Long> findNotReplyId(@Param("ids") List<Long> ids);
 }

+ 15 - 6
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderChangeDao.java

@@ -75,8 +75,7 @@ public interface PurchaseOrderChangeDao extends JpaSpecificationExecutor<Purchas
 	/**
 	 * 按变更单的企业UU号来统计条数
 	 * 
-	 * @param vendUU
-	 * @param status
+	 * @param enUU
 	 * @return
 	 */
 	@Query("select count(o) from PurchaseOrderChange o where o.enUU = :enUU")
@@ -105,15 +104,25 @@ public interface PurchaseOrderChangeDao extends JpaSpecificationExecutor<Purchas
 	 * @Param ids 未读单据id
 	 * @return
 	 */
-	@Query("select count(p) from PurchaseOrderChange p where p.id in :ids and p.unNeedReply=1")
-	Integer getNotNeedReplyCount(@Param("ids") List<Long> ids);
+	@Query("select p.id from PurchaseOrderChange p where p.id in :ids and p.unNeedReply=1")
+	List<Long> getNotNeedReplyId(@Param("ids") List<Long> ids);
 
 	/**
-	 * 筛选出未报价单据的id号
+	 * 筛选已处理单据的id号
 	 *
 	 * @param ids
 	 * @return
 	 */
-	@Query("select p.id from PurchaseOrderChange p where p.id in :ids and p.agreed=1")
+	@Query("select p.id from PurchaseOrderChange p where p.id in :ids and p.agreed=1 and (p.unNeedReply is null or p.unNeedReply=0)")
 	List<Long> findRepliedId(@Param("ids") List<Long> ids);
+
+	/**
+	 * 筛选出待确认单据的id号
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@Query("select p.id from PurchaseOrderChange p where p.id in :ids and p.agreed=0 and (p.unNeedReply is null or p.unNeedReply=0)")
+	List<Long> findNotReplyId(@Param("ids") List<Long> ids);
+
 }

+ 3 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderDao.java

@@ -69,4 +69,7 @@ public interface PurchaseOrderDao extends JpaSpecificationExecutor<PurchaseOrder
 	 */
 	@Query("select p.id from PurchaseOrderAll p where p.id in :ids and p.status=201 and p.end <> 1")
 	List<Long> findRepliedId(@Param("ids") List<Long> ids);
+
+	@Query("select p.id from PurchaseOrderAll p where p.id in :ids and p.status=200 and p.end <> 1")
+	List<Long> findNotReplyId(@Param("ids") List<Long> ids);
 }

+ 19 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseProofingItemDao.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.dao;
 
 import java.util.List;
 
+import org.apache.log4j.lf5.viewer.configure.MRUFileManager;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
@@ -46,4 +47,22 @@ public interface PurchaseProofingItemDao extends JpaSpecificationExecutor<Purcha
 	 */
 	@Query("select count(p), p.status from PurchaseProofingItem p where p.id in :ids group by p.status")
 	List<Object[]> getUnreadCountEveryStatus(@Param("ids") List<Long> ids);
+
+	/**
+	 * 从单据中筛选出待送样的单据
+	 *
+	 * @Param ids 需筛选之前的id
+	 * @return 筛选之后的id
+	 */
+	@Query("select p.id from PurchaseProofingItem p where p.id in :ids and p.status = 400")
+	List<Object[]> findNotReplyId(@Param("ids") List<Long> ids);
+
+	/**
+	 * 从单据中筛选出已送样的单据
+	 *
+	 * @param ids 需筛选之前的id
+	 * @return 筛选之后的id
+	 */
+	@Query("select p.id from PurchaseProofingItem p where p.id in :ids and p.status = 401")
+	List<Long> findRepliedId(@Param("ids") List<Long> ids);
 }

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

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.service;
 
 import java.util.List;
+import java.util.Map;
 
 import org.springframework.data.domain.Page;
 
@@ -232,7 +233,7 @@ public interface MakeOrderService {
 
 	Integer getPurchaseOrderUnreadCount();
 
-    List<Object[]> getMakeOrderCount(String category);
+	Map<String, Integer> getMakeOrderCount(String category);
 
     void setReadByOrder(String category, Long[] sourceId);
 

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

@@ -8,6 +8,7 @@ import com.uas.search.b2b.model.SPage;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 public interface PurchaseInquiryMouldService {
 
@@ -232,7 +233,7 @@ public interface PurchaseInquiryMouldService {
 	 */
 	void reCheck(Long[] ids);
 
-    List<Object[]> getInquiryMouldCount(String category);
+	Map<String, Integer> getInquiryMouldCount(String category);
 
     void setReadByOrder(String category, Long[] sourceId);
 

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

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.service;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 import org.springframework.data.domain.Page;
 import org.springframework.ui.ModelMap;
@@ -252,7 +253,7 @@ public interface PurchaseInquiryService {
 	 * @param category 分类(sale or purc)
 	 * @return 根据单据状态获取未读单据数量 Object[0]为数量,Object[1]为单据状态
 	 */
-    List<Object[]> getInquiryCount(String category);
+	Map<String, Integer> getInquiryCount(String category);
 
 	/**
 	 * 设置订单已读

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

@@ -311,7 +311,7 @@ public interface PurchaseNoticeService {
 
 	void setReadByOrder(String category, Long[] sourceId);
 
-    List<Object[]> getNoticeCount(String category);
+    Map<String, Integer> getNoticeCount(String category);
 
 	SPage<PurchaseNotice> findDoneNoticesByPageInfo(PageInfo pageInfo, String keyword, SearchFilter filter);
 

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

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.service;
 
 import java.util.List;
+import java.util.Map;
 
 import org.springframework.data.domain.Page;
 
@@ -111,7 +112,7 @@ public interface PurchaseOrderChangeService {
 
 	public void setReadByOrder(String category, Long[] sourceId);
 
-	List<Object[]> getChangeCount(String category);
+	Map<String, Integer> getChangeCount(String category);
 
     Integer setReadByState(String category);
 }

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

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.service;
 
 import java.util.List;
+import java.util.Map;
 
 import com.uas.platform.b2b.model.*;
 import org.springframework.data.domain.Page;
@@ -382,7 +383,7 @@ public interface PurchaseOrderService {
 	 * @param category 分类(sale or purc)
 	 * @return 根据单据状态获取未读单据数量 Object[0]为数量,Object[1]为单据状态
 	 */
-	List<Object[]> getOrderCount(String category);
+	Map<String, Integer> getOrderCount(String category);
 
     Integer setReadByState(String category);
 }

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

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.service;
 
 import java.util.List;
+import java.util.Map;
 
 import org.springframework.data.domain.Page;
 
@@ -243,7 +244,7 @@ public interface PurchaseProofingService {
 
     Integer getApprovalUnreadCount();
 
-    List<Object[]> getProofingCount(String sale);
+    Map<String, Integer> getProofingCount(String sale);
 
 	List<Long> getUnreadIds(String sale);
 

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

@@ -10,6 +10,7 @@ import org.springframework.data.domain.Page;
 import org.springframework.ui.ModelMap;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * Created by dongbw on 17/03/07 14:15.
@@ -193,7 +194,7 @@ public interface PurchaseTenderService {
      */
     void publishOrSave(PurchaseTender purchaseTender, List<TenderContactInfo> contactInfos);
 
-    List<Object[]> getTenderCount(String category);
+    Map<String, Integer> getTenderCount(String category);
 
     List<Long> getUnreadIds(String category);
 

+ 30 - 7
src/main/java/com/uas/platform/b2b/service/impl/MakeOrderServiceImpl.java

@@ -459,12 +459,35 @@ public class MakeOrderServiceImpl implements MakeOrderService {
 	}
 
 	@Override
-	public List<Object[]> getMakeOrderCount(String category) {
-		List<Long> ids = getUnreadIds(category);
-		if (CollectionUtils.isEmpty(ids)){
-			return new ArrayList<>();
+	public Map<String, Integer> getMakeOrderCount(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+        Map<String, Integer> map = new HashMap<>();
+		Integer repliedCount = 0; // 已回复数量
+		Integer notReplyCount = 0; // 待回复数量
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return map;
+		}
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				if (repliedCount < 100) {  // 超过100不再查询,页面显示99+,减少服务器负担
+					repliedCount = repliedCount + makeOrderDao.findRepliedId(ids).size();
+				}
+				if (notReplyCount < 100) {
+					notReplyCount = notReplyCount + makeOrderDao.findNotReplyId(ids).size();
+				}
+				if (notReplyCount > 99 && repliedCount > 99) {
+					break;
+				}
+			}
+		} else {
+			repliedCount = repliedCount + makeOrderDao.findRepliedId(unreadIds).size();
+			notReplyCount = notReplyCount + makeOrderDao.findNotReplyId(unreadIds).size();
 		}
-		return makeOrderDao.getUnreadCountEveryStatus(ids);
+        map.put("replied", repliedCount);
+        map.put("notReply", notReplyCount);
+        map.put("all", repliedCount + notReplyCount);
+        return map;
 	}
 
 	@Override
@@ -493,14 +516,14 @@ public class MakeOrderServiceImpl implements MakeOrderService {
 				repliedIds = makeOrderDao.findRepliedId(ids);
 				if (repliedIds.size() != 0) {
 					deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-							SystemSession.getUser().getUserUU(), "make$orders", category, (Long[]) repliedIds.toArray());
+							SystemSession.getUser().getUserUU(), "make$orders", category, repliedIds.toArray(new Long[repliedIds.size()]));
 				}
 			}
 		} else {
 			repliedIds = makeOrderDao.findRepliedId(unreadIds);
 			if (repliedIds.size() != 0) {
 				deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-						SystemSession.getUser().getUserUU(), "make$orders", category, (Long[]) repliedIds.toArray());
+						SystemSession.getUser().getUserUU(), "make$orders", category, repliedIds.toArray(new Long[repliedIds.size()]));
 			}
 		}
 		return deleteCount;

+ 30 - 7
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryMouldServiceImpl.java

@@ -537,12 +537,35 @@ public class PurchaseInquiryMouldServiceImpl implements PurchaseInquiryMouldServ
 	}
 
 	@Override
-	public List<Object[]> getInquiryMouldCount(String category) {
-		List<Long> ids = getUnreadIds(category);
-		if (CollectionUtils.isEmpty(ids)){
-			return new ArrayList<>();
+	public Map<String, Integer> getInquiryMouldCount(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+		Map<String, Integer> map = new HashMap<>();
+		Integer repliedCount = 0; // 已报价数量
+		Integer notReplyCount = 0; // 待报价数量
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return map;
+		}
+		if (unreadIds.size() > 1000) { // 超过1000条需要拆分,不然会报错
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				if (repliedCount < 100) {  // 超过100不再查询,页面显示99+,减少服务器负担
+					repliedCount = repliedCount + purchaseInquiryMouldDao.findRepliedId(ids).size();
+				}
+				if (notReplyCount < 100) {
+					notReplyCount = notReplyCount + purchaseInquiryMouldDao.findNotReplyId(ids).size();
+				}
+				if (notReplyCount > 99 && repliedCount > 99) {
+					break;
+				}
+			}
+		} else {
+			repliedCount = repliedCount + purchaseInquiryMouldDao.findRepliedId(unreadIds).size();
+			notReplyCount = notReplyCount + purchaseInquiryMouldDao.findNotReplyId(unreadIds).size();
 		}
-		return purchaseInquiryMouldDao.getUnreadCountEveryStatus(ids);
+		map.put("replied", repliedCount);
+		map.put("notReply", notReplyCount);
+		map.put("all", repliedCount + notReplyCount);
+		return map;
 	}
 
     @Override
@@ -571,14 +594,14 @@ public class PurchaseInquiryMouldServiceImpl implements PurchaseInquiryMouldServ
 				repliedIds = purchaseInquiryMouldDao.findRepliedId(ids);
 				if (repliedIds.size() != 0) {
 					deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-							SystemSession.getUser().getUserUU(), "v$purc$inquiry_mould", category, (Long[]) repliedIds.toArray());
+							SystemSession.getUser().getUserUU(), "v$purc$inquiry_mould", category, repliedIds.toArray(new Long[repliedIds.size()]));
 				}
 			}
 		} else {
 			repliedIds = purchaseInquiryMouldDao.findRepliedId(unreadIds);
 			if (repliedIds.size() != 0) {
 				deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-						SystemSession.getUser().getUserUU(), "v$purc$inquiry_mould", category, (Long[]) repliedIds.toArray());
+						SystemSession.getUser().getUserUU(), "v$purc$inquiry_mould", category, repliedIds.toArray(new Long[repliedIds.size()]));
 			}
 		}
 		return deleteCount;

+ 29 - 21
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java

@@ -738,27 +738,35 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 	}
 
 	@Override
-	public List<Object[]> getInquiryCount(String category) {
-		List<Long> ids = getUnreadIds(category);
-		if (CollectionUtils.isEmpty(ids)){
-			return new ArrayList<>();
-		}
-		List<Object[]> list = new ArrayList<>();
-		Object[] objects = new Object[2];
-		objects[0] = purchaseInquiryItemDao.getOfferCount(ids);
-		objects[1] = 201;
-		if (objects[0] == null){
-			objects[0] = 0;
+	public Map<String, Integer> getInquiryCount(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+		Map<String, Integer> map = new HashMap<>();
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return map;
 		}
-        list.add(objects);
-        objects = new Object[2];
-		objects[0] = purchaseInquiryItemDao.getNotOfferCount(ids);
-		objects[1] = 200;
-		if (objects[0] == null){
-			objects[0] = 0;
+		Integer offerCount = 0; // 已报价数量
+		Integer notOfferCount = 0; // 未报价数量
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				if (offerCount < 100) {  // 超过100不再查询,页面显示99+,减少服务器负担
+                    offerCount = offerCount + purchaseInquiryItemDao.getOfferCount(ids);
+				}
+				if (notOfferCount < 100) {
+                    notOfferCount = notOfferCount + purchaseInquiryItemDao.getNotOfferCount(ids);
+				}
+				if (offerCount > 99 && notOfferCount > 99) {
+					break;
+				}
+			}
+		} else {
+            offerCount = offerCount + purchaseInquiryItemDao.getOfferCount(unreadIds);
+            notOfferCount = notOfferCount + purchaseInquiryItemDao.getNotOfferCount(unreadIds);
 		}
-        list.add(objects);
-		return list;
+		map.put("replied", offerCount);
+		map.put("notReply", notOfferCount);
+		map.put("all", offerCount+notOfferCount);
+		return map;
 	}
 
 	@Override
@@ -787,14 +795,14 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 				repliedIds = purchaseInquiryItemDao.findRepliedId(ids);
 				if (repliedIds.size() != 0) {
 					deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-							SystemSession.getUser().getUserUU(), "v$purc$inquiryitems", category, (Long[]) repliedIds.toArray());
+							SystemSession.getUser().getUserUU(), "v$purc$inquiryitems", category, repliedIds.toArray(new Long[repliedIds.size()]));
 				}
 			}
 		} else {
 			repliedIds = purchaseInquiryItemDao.findRepliedId(unreadIds);
 			if (repliedIds.size() != 0) {
 				deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-						SystemSession.getUser().getUserUU(), "v$purc$inquiryitems", category, (Long[]) repliedIds.toArray());
+						SystemSession.getUser().getUserUU(), "v$purc$inquiryitems", category, repliedIds.toArray(new Long[repliedIds.size()]));
 			}
 		}
 		return deleteCount;

+ 90 - 40
src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.java

@@ -160,8 +160,9 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 			@Override
 			public Predicate toPredicate(Root<PurchaseNotice> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 				if (filter != null) {
-					if (!CollectionUtils.isEmpty(filter.getDistribute()))
+					if (!CollectionUtils.isEmpty(filter.getDistribute())) {
 						pageInfo.expression(PredicateUtils.in("enUU", filter.getDistribute(), false));
+					}
 				}
 				if (StringUtils.hasText(keyword)) {
 					List<Object> lists = new ArrayList<>();
@@ -171,12 +172,14 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 					}
 					pageInfo.expression(PredicateUtils.in("id", lists, false));
 				}
-				if (fromDate != null)
+				if (fromDate != null) {
 					pageInfo.expression(PredicateUtils.in("id", purchaseNoticeDao.findByFromDate(
 							SystemSession.getUser().getEnterprise().getUu(), new Date(fromDate)), false));
-				if (endDate != null)
+				}
+				if (endDate != null) {
 					pageInfo.expression(PredicateUtils.in("id", purchaseNoticeDao
 							.findByEndDate(SystemSession.getUser().getEnterprise().getUu(), new Date(endDate)), false));
+				}
 				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 		}, pageInfo);
@@ -188,12 +191,15 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 			@Override
 			public Predicate toPredicate(Root<PurchaseNotice> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 				if (filter != null) {
-					if (!CollectionUtils.isEmpty(filter.getDistribute()))
+					if (!CollectionUtils.isEmpty(filter.getDistribute())) {
 						pageInfo.expression(PredicateUtils.in("enUU", filter.getDistribute(), false));
-					if (filter.getFromDate() != null)
+					}
+					if (filter.getFromDate() != null) {
 						pageInfo.expression(PredicateUtils.gte("date", new Date(filter.getFromDate()), false));
-					if (filter.getEndDate() != null)
+					}
+					if (filter.getEndDate() != null) {
 						pageInfo.expression(PredicateUtils.lte("date", new Date(filter.getEndDate()), false));
+					}
 				}
 				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
@@ -213,12 +219,15 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 			@Override
 			public Predicate toPredicate(Root<PurchaseNotice> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 				if (filter != null) {
-					if (!CollectionUtils.isEmpty(filter.getDistribute()))
+					if (!CollectionUtils.isEmpty(filter.getDistribute())) {
 						pageInfo.expression(PredicateUtils.in("enUU", filter.getDistribute(), false));
-					if (filter.getFromDate() != null)
+					}
+					if (filter.getFromDate() != null) {
 						pageInfo.expression(PredicateUtils.gte("date", new Date(filter.getFromDate()), false));
-					if (filter.getEndDate() != null)
+					}
+					if (filter.getEndDate() != null) {
 						pageInfo.expression(PredicateUtils.lte("date", new Date(filter.getEndDate()), false));
+					}
 				}
 				pageInfo.expression(
 						PredicateUtils.or(PredicateUtils.isNull("end"), PredicateUtils.ne("end", Constant.YES, false)));
@@ -238,6 +247,7 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 	public Page<PurchaseNotice> findDoneByPageInfo(final PageInfo pageInfo, final String keyword, final Long fromDate,
 			final Long endDate) {
 		return purchaseNoticeDao.findAll(new Specification<PurchaseNotice>() {
+			@Override
 			public Predicate toPredicate(Root<PurchaseNotice> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 				pageInfo.filter("status", Status.REPLIED.value());
 				pageInfo.expression(
@@ -250,12 +260,14 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 					}
 					pageInfo.expression(PredicateUtils.in("id", lists, false));
 				}
-				if (fromDate != null)
+				if (fromDate != null) {
 					pageInfo.expression(PredicateUtils.in("id", purchaseNoticeDao.findByFromDate(
 							SystemSession.getUser().getEnterprise().getUu(), new Date(fromDate)), false));
-				if (endDate != null)
+				}
+				if (endDate != null) {
 					pageInfo.expression(PredicateUtils.in("id", purchaseNoticeDao
 							.findByEndDate(SystemSession.getUser().getEnterprise().getUu(), new Date(endDate)), false));
+				}
 				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 		}, pageInfo);
@@ -270,8 +282,9 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 	public void send(List<SaleSendItem> sendItems) {
 		saleSendItemDao.save(sendItems);
 		for (SaleSendItem item : sendItems) {
-			if (item.getNoticeId() != null)
+			if (item.getNoticeId() != null) {
 				purchaseNoticeDao.updateBySend(item.getNoticeId());
+			}
 		}
 	}
 
@@ -388,14 +401,17 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 //			if (sends.size() > 0) {
 //				throw new IllegalOperatorException("发货单号重复,无法发货!提示:多个物料一起发货请选择批量发货。");
 //			}
-			if (notice.getEnd() != null && notice.getEnd() == Constant.YES)
+			if (notice.getEnd() != null && notice.getEnd() == Constant.YES) {
 				throw new IllegalOperatorException("客户已经取消了本次送货提醒,请刷新重试!");
+			}
 			double thisQty = 0;
-			for (SaleSendItem item : send.getSendItems())
+			for (SaleSendItem item : send.getSendItems()) {
 				thisQty += item.getQty();
+			}
 			double endQty = (notice.getEndQty() == null ? 0.0 : notice.getEndQty()) + thisQty;
-			if (endQty > notice.getQty())
+			if (endQty > notice.getQty()) {
 				throw new IllegalOperatorException("累计发货数量将超出本次送货提醒的需求数!");
+			}
 			PurchaseOrder order = notice.getOrderItem().getOrder();
 			send.setCurrency(order.getCurrency());
 			send.setBackStatus((short) Status.NOT_UPLOAD.value());
@@ -466,8 +482,9 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 					} else {
 						double thisQty = item.getQty();
 						double endQty = (notice.getEndQty() == null ? 0.0 : notice.getEndQty()) + thisQty;
-						if (endQty > notice.getQty())
+						if (endQty > notice.getQty()) {
 							throw new IllegalOperatorException("累计发货数量将超出本次送货提醒的需求数!");
+						}
 						item.setNotice(notice);
 						if (item.getNumber() == null || item.getNumber() == 0) {// 带了序号则不重设序号,不带这重设序号
 							item.setNumber(++number);
@@ -510,8 +527,9 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 			@Override
 			public Predicate toPredicate(Root<SaleSendAll> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
 				if (filter != null) {
-					if (!CollectionUtils.isEmpty(filter.getDistribute()))
+					if (!CollectionUtils.isEmpty(filter.getDistribute())) {
 						pageInfo.expression(PredicateUtils.in("custUU", filter.getDistribute(), false));
+					}
 				}
 				if (StringUtils.hasText(keyword)) {
 					List<Object> lists = new ArrayList<>();
@@ -524,12 +542,14 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 					}
 					pageInfo.expression(PredicateUtils.in("id", lists, false));
 				}
-				if (fromDate != null)
+				if (fromDate != null) {
 					pageInfo.expression(PredicateUtils.in("id", saleSendAllDao.findByFromDate(
 							SystemSession.getUser().getEnterprise().getUu(), new Date(fromDate)), false));
-				if (endDate != null)
+				}
+				if (endDate != null) {
 					pageInfo.expression(PredicateUtils.in("id", saleSendAllDao
 							.findByEndDate(SystemSession.getUser().getEnterprise().getUu(), new Date(endDate)), false));
+				}
 				return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
 			}
 		}, pageInfo);
@@ -587,18 +607,20 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 		SaleSendItem sendItem = saleSendItemDao.findOne(sendItemId);
 		int totalCount = saleSendItemDao.getTotalCountBySendId(sendItem.getSend().getId());
 		int verifyCount = saleSendItemDao.getFullVerifyCountBySendId(sendItem.getSend().getId());
-		if (verifyCount == totalCount)
+		if (verifyCount == totalCount) {
 			sendItem.getSend().setVerifystatus(Constant.YES);
-		else
+		} else {
 			sendItem.getSend().setVerifystatus(Constant.NO);
+		}
 		saleSendItemDao.save(sendItem);
 	}
 
 	@Override
 	public SaleSendAll findSaleSendById(Long id) {
 		SaleSendAll send = saleSendAllDao.findOne(id);
-		if (send == null)
+		if (send == null) {
 			throw new IllegalOperatorException("您查找的发货单不存在!");
+		}
 		return send;
 	}
 
@@ -640,7 +662,7 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 		// 获取条码生成规则,判断规则是否审核,已审核,根据规则拼接
 		B2bCodeSet barcodeSet = b2bCodeSetDao.findByEnUUAndType(custUU, "BATCH");
 		if (barcodeSet != null) {// 条码生成规则不为空,已审核
-			if (!barcodeSet.getStatuscode().equals("AUDITED")) {
+			if (!"AUDITED".equals(barcodeSet.getStatuscode())) {
 				throw new IllegalOperatorException("请先审核条码生成规则!");
 			}
 		} else {
@@ -651,7 +673,7 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 		if (outboxSet == null) {
 			throw new IllegalOperatorException("请先维护外箱生成规则!");
 		}
-		if (!outboxSet.getStatuscode().equals("AUDITED")) {
+		if (!"AUDITED".equals(outboxSet.getStatuscode())) {
 			throw new IllegalOperatorException("请先审核外箱生成规则!");
 		}
 		for (SaleSendItem item : sendItem) {
@@ -756,19 +778,19 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 		// 拼接
 		code.append(formPlat);// 平台标识
 		code.append(lpad(lenprid, pr_id));// PR_ID物料ID的长度
-		if (dataStr.equals("YYMMDD")) {// 日期
+		if ("YYMMDD".equals(dataStr)) {// 日期
 			SimpleDateFormat YMD = new SimpleDateFormat("yyMMdd");
 			date = YMD.format(new Date());
-		} else if (dataStr.equals("YYMM")) {
+		} else if ("YYMM".equals(dataStr)) {
 			SimpleDateFormat YM = new SimpleDateFormat("yyMM");
 			date = YM.format(new Date());
-		} else if (dataStr.equals("MMDD")) {
+		} else if ("MMDD".equals(dataStr)) {
 			SimpleDateFormat MD = new SimpleDateFormat("MMdd");
 			date = MD.format(new Date());
 		}
 		code.append(date);// 日期
 		barcodeSet.setMaxdate(date);
-		if (!("").equals(maxdate) && null != maxdate && (!date.equals("0"))
+		if (!("").equals(maxdate) && null != maxdate && (!"0".equals(date))
 				&& (Integer.valueOf(maxdate) > Integer.valueOf(date))) {// 如果当前日期大于上次日期
 			code.append(lpad(lennum, "1"));// 流水重新开始
 			barcodeSet.setMaxnum((long) 2);// 流水号增加1
@@ -790,19 +812,19 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 				lenprid = barcodeSet.getLenprid().intValue();
 		code.append(formPlat);// 平台标识
 		code.append(lpad(lenprid, pr_id));// PR_ID物料ID的长度
-		if (dataStr.equals("YYMMDD")) {
+		if ("YYMMDD".equals(dataStr)) {
 			SimpleDateFormat YMD = new SimpleDateFormat("yyMMdd");
 			date = YMD.format(new Date());
-		} else if (dataStr.equals("YYMM")) {
+		} else if ("YYMM".equals(dataStr)) {
 			SimpleDateFormat YM = new SimpleDateFormat("yyMM");
 			date = YM.format(new Date());
-		} else if (dataStr.equals("MMDD")) {
+		} else if ("MMDD".equals(dataStr)) {
 			SimpleDateFormat MD = new SimpleDateFormat("MMdd");
 			date = MD.format(new Date());
 		}
 		code.append(date);// 日期
 		barcodeSet.setMaxdate(date);
-		if (!("").equals(maxdate) && null != maxdate && (!date.equals("0"))
+		if (!("").equals(maxdate) && null != maxdate && (!"0".equals(date))
 				&& (Integer.valueOf(maxdate) > Integer.valueOf(date))) {// 如果当前日期大于上次日期
 			code.append(lpad(lennum, "1"));// 流水重新开始
 			barcodeSet.setMaxnum((long) 2);// 流水号增加1
@@ -911,7 +933,7 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 		SaleSend saleSend = saleSendDao.findOne(id);
 		Long custUU = saleSend.getCustUU();
 		String caller;
-		if (type.equals("Bar")) {
+		if ("Bar".equals(type)) {
 			caller = "B2B!BarPrint";
 		} else {
 			caller = "B2B!OutBoxPrint";
@@ -997,12 +1019,40 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 	}
 
 	@Override
-	public List<Object[]> getNoticeCount(String category) {
-		List<Long> ids = getUnreadIds(category);
-		if (CollectionUtils.isEmpty(ids)){
-			return new ArrayList<>();
+	public Map<String, Integer> getNoticeCount(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+		Map<String, Integer> map = new HashMap<>(3);
+		// 已回复数量
+		Integer repliedCount = 0;
+		// 未回复数量
+		Integer notReplyCount = 0;
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return map;
+		}
+		// 超过1000条需要拆分,不然会报错
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				// 超过100不再查询,页面显示99+,减少服务器负担
+				if (repliedCount < 100) {
+					repliedCount = repliedCount + purchaseNoticeDao.findRepliedId(ids).size();
+				}
+				if (notReplyCount < 100) {
+					notReplyCount = notReplyCount + purchaseNoticeDao.findNotReplyId(ids).size();
+				}
+				// 当需要查询的数量大于99时停止循环,减少不必要的操作
+				if (notReplyCount > 99 && repliedCount > 99) {
+					break;
+				}
+			}
+		} else {
+			repliedCount = repliedCount + purchaseNoticeDao.findRepliedId(unreadIds).size();
+			notReplyCount = notReplyCount + purchaseNoticeDao.findNotReplyId(unreadIds).size();
 		}
-		return purchaseNoticeDao.getUnreadCountEveryStatus(ids);
+		map.put("replied", repliedCount);
+		map.put("notReply", notReplyCount);
+		map.put("all", repliedCount + notReplyCount);
+		return map;
 	}
 
 	@Override
@@ -1031,14 +1081,14 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 				repliedIds = purchaseNoticeDao.findRepliedId(ids);
 				if (repliedIds.size() != 0) {
 					deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-							SystemSession.getUser().getUserUU(), "purc$notice", category, (Long[]) repliedIds.toArray());
+							SystemSession.getUser().getUserUU(), "purc$notice", category, repliedIds.toArray(new Long[repliedIds.size()]));
 				}
 			}
 		} else {
 			repliedIds = purchaseNoticeDao.findRepliedId(unreadIds);
 			if (repliedIds.size() != 0) {
 				deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-						SystemSession.getUser().getUserUU(), "purc$notice", category, (Long[]) repliedIds.toArray());
+						SystemSession.getUser().getUserUU(), "purc$notice", category, repliedIds.toArray(new Long[repliedIds.size()]));
 			}
 		}
 		return deleteCount;

+ 38 - 11
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderChangeServiceImpl.java

@@ -18,6 +18,7 @@ import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.search.b2b.model.PageParams;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.map.HashedMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
@@ -421,15 +422,41 @@ public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeServic
 	}
 
 	@Override
-	public List<Object[]> getChangeCount(String category) {
-		List<Long> ids = getUnreadIds(category);
-		if (CollectionUtils.isEmpty(ids)){
-			return new ArrayList<>();
-		}
-		List<Object[]> list = purchaseOrderChangeDao.getUnreadCountEveryStatus(ids);
-		Integer count = purchaseOrderChangeDao.getNotNeedReplyCount(ids);
-		list.add(new Object[]{count, "unNeedReply"});
-		return list;
+	public Map<String, Integer> getChangeCount(String category) {
+        List<Long> unreadIds = getUnreadIds(category);
+        Map<String, Integer> map = new HashMap<>();
+        Integer repliedCount = 0; // 已处理数量
+        Integer notReplyCount = 0; // 待确认数量
+        Integer unNeedReply = 0; // 无趣确认数量
+        if (CollectionUtils.isEmpty(unreadIds)){
+            return map;
+        }
+        if (unreadIds.size() > 1000) {
+            List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+            for (List<Long> ids : idsArray) {
+                if (repliedCount < 100) {  // 超过100不再查询,页面显示99+,减少服务器负担
+                    repliedCount = repliedCount + purchaseOrderChangeDao.findRepliedId(ids).size();
+                }
+                if (notReplyCount < 100) {
+                    notReplyCount = notReplyCount + purchaseOrderChangeDao.findNotReplyId(ids).size();
+                }
+                if (notReplyCount < 100) {
+                    unNeedReply = unNeedReply + purchaseOrderChangeDao.getNotNeedReplyId(ids).size();
+                }
+                if (notReplyCount > 99 && repliedCount > 99 && unNeedReply > 99) {
+                    break;
+                }
+            }
+        } else {
+            repliedCount = repliedCount + purchaseOrderChangeDao.findRepliedId(unreadIds).size();
+            notReplyCount = notReplyCount + purchaseOrderChangeDao.findNotReplyId(unreadIds).size();
+            unNeedReply = unNeedReply + purchaseOrderChangeDao.getNotNeedReplyId(unreadIds).size();
+        }
+        map.put("replied", repliedCount);
+        map.put("notReply", notReplyCount);
+        map.put("unNeedReply", unNeedReply);
+        map.put("all", repliedCount+notReplyCount+unNeedReply);
+        return map;
 	}
 
 	@Override
@@ -447,14 +474,14 @@ public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeServic
 				repliedIds = purchaseOrderChangeDao.findRepliedId(ids);
 				if (repliedIds.size() != 0) {
 					deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-							SystemSession.getUser().getUserUU(), "purc$changes", category, (Long[]) repliedIds.toArray());
+							SystemSession.getUser().getUserUU(), "purc$changes", category, repliedIds.toArray(new Long[repliedIds.size()]));
 				}
 			}
 		} else {
 			repliedIds = purchaseOrderChangeDao.findRepliedId(unreadIds);
 			if (repliedIds.size() != 0) {
 				deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-						SystemSession.getUser().getUserUU(), "purc$changes", category, (Long[]) repliedIds.toArray());
+						SystemSession.getUser().getUserUU(), "purc$changes", category, repliedIds.toArray(new Long[repliedIds.size()]));
 			}
 		}
 		return deleteCount;

+ 33 - 8
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -1217,12 +1217,37 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 	}
 
 	@Override
-	public List<Object[]> getOrderCount(String category){
-        List<Long> ids = getUnreadIds(category);
-        if (CollectionUtils.isEmpty(ids)){
-            return new ArrayList<>();
-        }
-        return purchaseOrderDao.getUnreadCountEveryStatus(ids);
+	public Map<String, Integer> getOrderCount(String category){
+		List<Long> unreadIds = getUnreadIds(category);
+		Map<String, Integer> map = new HashMap<>();
+		// 已回复数量
+		Integer repliedCount = 0;
+		// 未回复数量
+		Integer notReplyCount = 0;
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return map;
+		}
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				if (repliedCount < 100) {  // 超过100不再查询,页面显示99+,减少服务器负担
+					repliedCount = repliedCount + purchaseOrderDao.findRepliedId(ids).size();
+				}
+				if (notReplyCount < 100) {
+					notReplyCount = notReplyCount + purchaseOrderDao.findNotReplyId(ids).size();
+				}
+				if (notReplyCount > 99 && repliedCount > 99) {
+					break;
+				}
+			}
+		} else {
+			repliedCount = repliedCount + purchaseOrderDao.findRepliedId(unreadIds).size();
+			notReplyCount = notReplyCount + purchaseOrderDao.findNotReplyId(unreadIds).size();
+		}
+		map.put("replied", repliedCount);
+		map.put("notReply", notReplyCount);
+		map.put("all", repliedCount + notReplyCount);
+		return map;
 	}
 
 	@Override
@@ -1240,14 +1265,14 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 				repliedIds = purchaseOrderDao.findRepliedId(ids);
 				if (repliedIds.size() != 0) {
 					deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-							SystemSession.getUser().getUserUU(), "purc$orders", category, (Long[]) repliedIds.toArray());
+							SystemSession.getUser().getUserUU(), "purc$orders", category, repliedIds.toArray(new Long[repliedIds.size()]));
 				}
 			}
 		} else {
 			repliedIds = purchaseOrderDao.findRepliedId(unreadIds);
 			if (repliedIds.size() != 0) {
 				deleteCount = deleteCount + userOrderDao.delete(SystemSession.getUser().getEnterprise().getUu(),
-						SystemSession.getUser().getUserUU(), "purc$orders", category, (Long[]) repliedIds.toArray());
+						SystemSession.getUser().getUserUU(), "purc$orders", category, repliedIds.toArray(new Long[repliedIds.size()]));
 			}
 		}
 		return deleteCount;

+ 32 - 5
src/main/java/com/uas/platform/b2b/service/impl/PurchaseProofingServiceImpl.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.service.impl;
 
 import com.uas.platform.b2b.core.util.ContextUtils;
+import com.uas.platform.b2b.core.util.SplitArray;
 import com.uas.platform.b2b.core.util.ThreadTask;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.event.PurchaseProofingApprovalSaveEvent;
@@ -615,12 +616,38 @@ public class PurchaseProofingServiceImpl implements PurchaseProofingService {
 	}
 
 	@Override
-	public List<Object[]> getProofingCount(String category) {
-		List<Long> ids = getUnreadIds(category);
-		if (CollectionUtils.isEmpty(ids)){
-			return new ArrayList<>();
+	public Map<String, Integer> getProofingCount(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+		Map<String, Integer> map = new HashMap<>();
+		// 已送样数量
+		Integer repliedCount = 0;
+		// 待送样数量
+		Integer notReplyCount = 0;
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return map;
 		}
-		return purchaseProofingItemDao.getUnreadCountEveryStatus(ids);
+		// 超过1000条需要拆分,不然会报错
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				if (repliedCount < 100) {  // 超过100不再查询,页面显示99+,减少服务器负担
+					repliedCount = repliedCount + purchaseProofingItemDao.findRepliedId(ids).size();
+				}
+				if (notReplyCount < 100) {
+					notReplyCount = notReplyCount + purchaseProofingItemDao.findNotReplyId(ids).size();
+				}
+				if (notReplyCount > 99 && repliedCount > 99) {
+					break;
+				}
+			}
+		} else {
+			repliedCount = repliedCount + purchaseProofingItemDao.findRepliedId(unreadIds).size();
+			notReplyCount = notReplyCount + purchaseProofingItemDao.findNotReplyId(unreadIds).size();
+		}
+		map.put("replied", repliedCount);
+		map.put("notReply", notReplyCount);
+		map.put("all", repliedCount + notReplyCount);
+		return map;
 	}
 
 	@Override

+ 39 - 15
src/main/java/com/uas/platform/b2b/service/impl/PurchaseTenderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.service.impl;
 
 import com.uas.platform.b2b.core.util.ContextUtils;
+import com.uas.platform.b2b.core.util.SplitArray;
 import com.uas.platform.b2b.core.util.ThreadTask;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.erp.model.PurchaseTenderErp;
@@ -788,25 +789,48 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
     }
 
     @Override
-    public List<Object[]> getTenderCount(String category) {
-        List<Long> ids = getUnreadIds(category);
-        List<Object[]> list = new ArrayList<>();
-        if (CollectionUtils.isEmpty(ids)){
-            return list;
+    public Map<String, Integer> getTenderCount(String category) {
+        List<Long> unreadIds = getUnreadIds(category);
+        Map<String, Integer> map = new HashMap<>();
+        // 待投标/带评标数量
+        Integer notReplyCount = 0;
+        if (CollectionUtils.isEmpty(unreadIds)){
+            return map;
         }
-        Object[] objects = new Object[2];
+        // 客户需要显示待投标红点,供应商需要显示待评标红点
         if ("sale".equals(category)) {
-            objects[1] = "待投标";
-            objects[0] = purchaseTenderDao.getTenterCount(ids, SystemSession.getUser().getEnterprise().getUu());
+            // 超过1000条需要拆分,不然会报错
+            if (unreadIds.size() <= 1000) {
+                notReplyCount = purchaseTenderDao.getTenterCount(unreadIds,
+                        SystemSession.getUser().getEnterprise().getUu());
+            } else {
+                List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+                for (List<Long> ids : idsArray) {
+                    // 超过100不再查询,页面显示99+,减少服务器负担
+                    if (notReplyCount > 99){
+                        break;
+                    }
+                    notReplyCount = notReplyCount + purchaseTenderDao.getTenterCount(ids,
+                            SystemSession.getUser().getEnterprise().getUu());
+                }
+            }
         } else if ("purc".equals(category)){
-            objects[1] = "待评标";
-            objects[0] = purchaseTenderDao.getEvaluationCount(ids);
-        }
-        if (objects[0] == null){
-            objects[0] = 0;
+            if (unreadIds.size() <= 1000) {
+                notReplyCount = purchaseTenderDao.getEvaluationCount(unreadIds);
+            } else {
+                List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+                for (List<Long> ids : idsArray) {
+                    // 超过100不再查询,页面显示99+,减少服务器负担
+                    if (notReplyCount > 99) {
+                        break;
+                    }
+                    notReplyCount = notReplyCount + purchaseTenderDao.getEvaluationCount(ids);
+                }
+            }
         }
-        list.add(objects);
-        return list;
+        map.put("notReply", notReplyCount);
+        map.put("all", notReplyCount);
+        return map;
     }
 
     @Override

+ 1 - 1
src/main/webapp/resources/js/index/app.js

@@ -3041,7 +3041,7 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 
         //获得各分类未阅读数量
         var getUnreadCount = function () {
-            getService().getUnreadCount(null, function (data) {
+            PurcOrderItem.getUnreadCount(null, function (data) {
                 $scope.unread = data;
             });
         };