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

红点点击已回复或已报价后将已回复或已报价的单据全部设置成已读
添加消息批量设置已读功能
部分注释爆红

wangmh 8 лет назад
Родитель
Сommit
814c444d10
35 измененных файлов с 418 добавлено и 29 удалено
  1. 11 0
      src/main/java/com/uas/platform/b2b/controller/MakeOrderController.java
  2. 11 0
      src/main/java/com/uas/platform/b2b/controller/SaleInquiryController.java
  3. 10 0
      src/main/java/com/uas/platform/b2b/controller/SaleInquiryMouldController.java
  4. 11 0
      src/main/java/com/uas/platform/b2b/controller/SaleNoticeController.java
  5. 11 0
      src/main/java/com/uas/platform/b2b/controller/SaleOrderChangeController.java
  6. 11 0
      src/main/java/com/uas/platform/b2b/controller/SaleOrderController.java
  7. 10 0
      src/main/java/com/uas/platform/b2b/dao/MakeOrderDao.java
  8. 3 0
      src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryItemDao.java
  9. 9 0
      src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryMouldDao.java
  10. 9 0
      src/main/java/com/uas/platform/b2b/dao/PurchaseNoticeDao.java
  11. 10 1
      src/main/java/com/uas/platform/b2b/dao/PurchaseOrderChangeDao.java
  12. 8 0
      src/main/java/com/uas/platform/b2b/dao/PurchaseOrderDao.java
  13. 14 1
      src/main/java/com/uas/platform/b2b/dao/UserOrderDao.java
  14. 7 5
      src/main/java/com/uas/platform/b2b/service/MakeOrderService.java
  15. 7 5
      src/main/java/com/uas/platform/b2b/service/PurchaseInquiryMouldService.java
  16. 1 0
      src/main/java/com/uas/platform/b2b/service/PurchaseInquiryService.java
  17. 2 0
      src/main/java/com/uas/platform/b2b/service/PurchaseNoticeService.java
  18. 3 1
      src/main/java/com/uas/platform/b2b/service/PurchaseOrderChangeService.java
  19. 4 3
      src/main/java/com/uas/platform/b2b/service/PurchaseOrderService.java
  20. 29 0
      src/main/java/com/uas/platform/b2b/service/impl/MakeOrderServiceImpl.java
  21. 3 3
      src/main/java/com/uas/platform/b2b/service/impl/PagingReleaseDetailServiceImpl.java
  22. 29 0
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryMouldServiceImpl.java
  23. 29 4
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java
  24. 29 0
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.java
  25. 29 0
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderChangeServiceImpl.java
  26. 28 0
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java
  27. 60 0
      src/main/webapp/resources/js/index/app.js
  28. 4 0
      src/main/webapp/resources/js/index/services/Make.js
  29. 20 0
      src/main/webapp/resources/js/index/services/Purc.js
  30. 1 1
      src/main/webapp/resources/tpl/index/make/order.html
  31. 1 1
      src/main/webapp/resources/tpl/index/sale/change.html
  32. 1 1
      src/main/webapp/resources/tpl/index/sale/inquiry.html
  33. 1 1
      src/main/webapp/resources/tpl/index/sale/inquiry_mould.html
  34. 1 1
      src/main/webapp/resources/tpl/index/sale/notice.html
  35. 1 1
      src/main/webapp/resources/tpl/index/sale/order.html

+ 11 - 0
src/main/java/com/uas/platform/b2b/controller/MakeOrderController.java

@@ -405,4 +405,15 @@ public class MakeOrderController {
 		modelMap.put("all", all);
 		return modelMap;
 	}
+
+	/**
+	 * 设置已报价单据为已读
+	 * @author wangmh
+	 */
+	@RequestMapping(value = "/setReadByState", method = RequestMethod.GET)
+	@ResponseBody
+	public ModelMap setReadByState() {
+		Integer count = makeOrderService.setReadByState("sale");
+		return new ModelMap("count", count);
+	}
 }

+ 11 - 0
src/main/java/com/uas/platform/b2b/controller/SaleInquiryController.java

@@ -733,6 +733,17 @@ public class SaleInquiryController {
 		purchaseInquiryService.setReadByOrder("sale", sourceId);
 	}
 
+	/**
+	 * 设置已报价单据为已读
+	 * @author wangmh
+	 */
+	@RequestMapping(value = "/setReadByState", method = RequestMethod.GET)
+	@ResponseBody
+	public ModelMap setReadByState() {
+		Integer count = purchaseInquiryService.setReadByState("sale");
+		return new ModelMap("count", count);
+	}
+
 	/**
 	 * 获得未阅读消息对应的单据id
 	 * @author wangmh

+ 10 - 0
src/main/java/com/uas/platform/b2b/controller/SaleInquiryMouldController.java

@@ -621,4 +621,14 @@ public class SaleInquiryMouldController {
 		return modelMap;
 	}
 
+	/**
+	 * 设置已报价单据为已读
+	 * @author wangmh
+	 */
+	@RequestMapping(value = "/setReadByState", method = RequestMethod.GET)
+	@ResponseBody
+	public ModelMap setReadByState() {
+		Integer count = purchaseInquiryMouldService.setReadByState("sale");
+		return new ModelMap("count", count);
+	}
 }

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

@@ -871,4 +871,15 @@ public class SaleNoticeController {
 		modelMap.put("all", all);
 		return modelMap;
 	}
+
+	/**
+	 * 设置已报价单据为已读
+	 * @author wangmh
+	 */
+	@RequestMapping(value = "/setReadByState", method = RequestMethod.GET)
+	@ResponseBody
+	public ModelMap setReadByState() {
+		Integer count = purchaseNoticeService.setReadByState("sale");
+		return new ModelMap("count", count);
+	}
 }

+ 11 - 0
src/main/java/com/uas/platform/b2b/controller/SaleOrderChangeController.java

@@ -495,4 +495,15 @@ public class SaleOrderChangeController {
 		modelMap.put("all", all);
 		return modelMap;
 	}
+
+	/**
+	 * 设置已报价单据为已读
+	 * @author wangmh
+	 */
+	@RequestMapping(value = "/setReadByState", method = RequestMethod.GET)
+	@ResponseBody
+	public ModelMap setReadByState() {
+		Integer count = purchaseOrderChangeService.setReadByState("sale");
+		return new ModelMap("count", count);
+	}
 }

+ 11 - 0
src/main/java/com/uas/platform/b2b/controller/SaleOrderController.java

@@ -1336,4 +1336,15 @@ public class SaleOrderController {
 		modelMap.put("all", all);
 		return modelMap;
 	}
+
+	/**
+	 * 设置已报价单据为已读
+	 * @author wangmh
+	 */
+	@RequestMapping(value = "/setReadByState", method = RequestMethod.GET)
+	@ResponseBody
+	public ModelMap setReadByState() {
+		Integer count = purchaseOrderService.setReadByState("sale");
+		return new ModelMap("count", count);
+	}
 }

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

@@ -96,4 +96,14 @@ public interface MakeOrderDao extends JpaSpecificationExecutor<MakeOrder>, JpaRe
 	 */
 	@Query("select count(p), p.status from MakeOrder p where p.id in :ids group by p.status")
 	List<Object[]> getUnreadCountEveryStatus(@Param("ids") List<Long> ids);
+
+	/**
+	 * 筛选出未回复单据的id号
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@Query("select p.id from MakeOrder p where p.id in :ids and p.status=201")
+	List<Long> findRepliedId(@Param("ids") List<Long> ids);
+
 }

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

@@ -192,4 +192,7 @@ public interface PurchaseInquiryItemDao extends JpaSpecificationExecutor<Purchas
 	 */
 	@Query("select count(p) from PurchaseInquiryItem p where p.id in :ids and p.inquiry.overdue=0 and (p.inquiry.check is null or p.inquiry.check <> 1) and p.status=200")
 	Integer getNotOfferCount(@Param("ids") List<Long> ids);
+
+	@Query("select p.id from PurchaseInquiryItem p where p.id in :ids and p.status=201 and p.agreed is null and p.invalid <> 1")
+	List<Long> findRepliedId(@Param("ids") List<Long> ids);
 }

+ 9 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryMouldDao.java

@@ -153,4 +153,13 @@ public interface PurchaseInquiryMouldDao
 	 */
 	@Query("select count(p), p.status from PurchaseInquiryMould p where p.id in :ids and (p.overdue is null or p.overdue = 0) and p.valid = 1 group by p.status")
 	List<Object[]> getUnreadCountEveryStatus(@Param("ids") List<Long> ids);
+
+	/**
+	 * 筛选出未报价单据的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);
 }

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

@@ -138,4 +138,13 @@ public interface PurchaseNoticeDao extends JpaSpecificationExecutor<PurchaseNoti
 	 */
 	@Query("select count(p), p.status from PurchaseNotice p where p.id in :ids and (p.end is null or p.end = 0) and p.waiting=0 group by p.status")
 	List<Object[]> getUnreadCountEveryStatus(@Param("ids") List<Long> ids);
+
+	/**
+	 * 筛选出未报价单据的id号
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@Query("select p.id from PurchaseNotice p where p.id in :ids and p.status=201")
+	List<Long> findRepliedId(@Param("ids") List<Long> ids);
 }

+ 10 - 1
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderChangeDao.java

@@ -28,7 +28,7 @@ public interface PurchaseOrderChangeDao extends JpaSpecificationExecutor<Purchas
 	 * 
 	 * @param enUU
 	 * @param status
-	 * @param sendStatus
+	 * @param backStatus
 	 * @return
 	 */
 	@Query("from PurchaseOrderChange r where r.enUU = :enUU and r.status = :status and r.backStatus = :backStatus")
@@ -107,4 +107,13 @@ public interface PurchaseOrderChangeDao extends JpaSpecificationExecutor<Purchas
 	 */
 	@Query("select count(p) from PurchaseOrderChange p where p.id in :ids and p.unNeedReply=1")
 	Integer getNotNeedReplyCount(@Param("ids") List<Long> ids);
+
+	/**
+	 * 筛选出未报价单据的id号
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@Query("select p.id from PurchaseOrderChange p where p.id in :ids and p.agreed=1")
+	List<Long> findRepliedId(@Param("ids") List<Long> ids);
 }

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

@@ -61,4 +61,12 @@ public interface PurchaseOrderDao extends JpaSpecificationExecutor<PurchaseOrder
 	@Query("select count(p), p.status from PurchaseOrderAll p where p.id in :ids and (p.end = 0 or p.end is null) and (p.status = 201 or p.status = 200) group by p.status")
 	public List<Object[]> getUnreadCountEveryStatus(@Param("ids") List<Long> ids);
 
+	/**
+	 * 筛选出未报价单据的id号
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@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);
 }

+ 14 - 1
src/main/java/com/uas/platform/b2b/dao/UserOrderDao.java

@@ -35,9 +35,22 @@ public interface UserOrderDao extends JpaSpecificationExecutor<UserOrders>, JpaR
      * @param category 分类(sale or purc)
      * @param status 阅读状态(Status.READ.value() or Status.NOT_READ.value())
      * @param sourceIds 需要设置已读的id
-     * @return
      */
     @Modifying
     @Query("update UserOrders o set o.readStatus=:status where o.userUU=:userUU and o.enUU=:enUU and o.table=:table and o.category=:category and o.sourceId in :sourceIds")
     void setReadStatus(@Param("enUU") Long enUU, @Param("userUU") Long userUU, @Param("table") String table, @Param("category") String category, @Param("status") Short status, @Param("sourceIds") Long... sourceIds);
+
+    /**
+     * 删除红点记录
+     *
+     * @param enUU 企业UU号
+     * @param userUU 用户UU号
+     * @param table 表名
+     * @param category 分类(sale or purc)
+     * @param sourceIds 需要设置已读的id
+     * @return 删除数据数量
+     */
+    @Modifying
+    @Query("delete from UserOrders o where o.userUU=:userUU and o.enUU=:enUU and o.table=:table and o.category=:category and o.sourceId in :sourceIds")
+    Integer delete(@Param("enUU") Long enUU, @Param("userUU") Long userUU, @Param("table") String table, @Param("category") String category, @Param("sourceIds") Long... sourceIds);
 }

+ 7 - 5
src/main/java/com/uas/platform/b2b/service/MakeOrderService.java

@@ -26,7 +26,7 @@ public interface MakeOrderService {
 	/**
 	 * 批量保存、修改委外加工单
 	 * 
-	 * @param items
+	 * @param orders
 	 * @return
 	 */
 	public void saveOrders(List<MakeOrder> orders);
@@ -71,7 +71,7 @@ public interface MakeOrderService {
 	/**
 	 * 批量回复
 	 * 
-	 * @param orderItemIdString
+	 * @param orderIdString
 	 *            回复的明细ID的字符串数组
 	 */
 	public List<MakeOrderReply> reply(String[] orderIdString);
@@ -79,7 +79,7 @@ public interface MakeOrderService {
 	/**
 	 * 查找订单明细的回复记录
 	 * 
-	 * @param orderItemId
+	 * @param orderId
 	 *            订单明细ID
 	 * @return
 	 */
@@ -149,7 +149,7 @@ public interface MakeOrderService {
 	/**
 	 * 分页查找已结案订单
 	 * 
-	 * @param pageinfo
+	 * @param pageInfo
 	 * @param filter
 	 * @return
 	 */
@@ -158,7 +158,7 @@ public interface MakeOrderService {
 	/**
 	 * 分页查找所有订单
 	 * 
-	 * @param pageinfo
+	 * @param pageInfo
 	 * @param filter
 	 * @return
 	 */
@@ -237,4 +237,6 @@ public interface MakeOrderService {
     void setReadByOrder(String category, Long[] sourceId);
 
 	List<Long> getUnreadIds(String category);
+
+    Integer setReadByState(String category);
 }

+ 7 - 5
src/main/java/com/uas/platform/b2b/service/PurchaseInquiryMouldService.java

@@ -14,7 +14,7 @@ public interface PurchaseInquiryMouldService {
 	/**
 	 * 批量保存、修改采购询价
 	 * 
-	 * @param inquirymould
+	 * @param inquiryMould
 	 *            询价
 	 * @return
 	 */
@@ -64,7 +64,7 @@ public interface PurchaseInquiryMouldService {
 	/**
 	 * 用询价单明细ID查找询价单明细
 	 * 
-	 * @param id
+	 * @param itemId
 	 * @return
 	 */
 	public PurchaseInquiryMouldItem findItemById(Long itemId);
@@ -86,7 +86,7 @@ public interface PurchaseInquiryMouldService {
 	/**
 	 * 报价信息(不)采纳之后,写到平台
 	 * 
-	 * @param inquiryItems
+	 * @param inquiryMoulds
 	 */
 	public void onReplyDecide(List<PurchaseInquiryMould> inquiryMoulds);
 
@@ -128,7 +128,7 @@ public interface PurchaseInquiryMouldService {
 	/**
 	 * B2B回复报价
 	 * 
-	 * @param inquiryMouldItem
+	 * @param inquiryMould
 	 */
 	public PurchaseInquiryMould reply(PurchaseInquiryMould inquiryMould);
 
@@ -228,7 +228,7 @@ public interface PurchaseInquiryMouldService {
 
 	/**
 	 * 买家反提交
-	 * @param longs
+	 * @param ids
 	 */
 	void reCheck(Long[] ids);
 
@@ -237,4 +237,6 @@ public interface PurchaseInquiryMouldService {
     void setReadByOrder(String category, Long[] sourceId);
 
 	List<Long> getUnreadIds(String category);
+
+    Integer setReadByState(String category);
 }

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

@@ -268,4 +268,5 @@ public interface PurchaseInquiryService {
 	 */
 	List<Long> getUnreadIds(String category);
 
+	Integer setReadByState(String category);
 }

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

@@ -314,4 +314,6 @@ public interface PurchaseNoticeService {
     List<Object[]> getNoticeCount(String category);
 
 	SPage<PurchaseNotice> findDoneNoticesByPageInfo(PageInfo pageInfo, String keyword, SearchFilter filter);
+
+    Integer setReadByState(String category);
 }

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

@@ -82,7 +82,7 @@ public interface PurchaseOrderChangeService {
 	/**
 	 * 回复单个明细
 	 * 
-	 * @param reply
+	 * @param change
 	 */
 	public PurchaseOrderChange reply(PurchaseOrderChange change);
 
@@ -112,4 +112,6 @@ public interface PurchaseOrderChangeService {
 	public void setReadByOrder(String category, Long[] sourceId);
 
 	List<Object[]> getChangeCount(String category);
+
+    Integer setReadByState(String category);
 }

+ 4 - 3
src/main/java/com/uas/platform/b2b/service/PurchaseOrderService.java

@@ -38,7 +38,7 @@ public interface PurchaseOrderService {
 	 * 分页查找订单,包括明细
 	 * 
 	 * @param pageInfo
-	 * @param keyword
+	 * @param filter
 	 * @return
 	 */
 	public Page<PurchaseOrderAll> findAllDetailByPageInfo(PageInfo pageInfo, SearchFilter filter);
@@ -95,7 +95,7 @@ public interface PurchaseOrderService {
 	 * 分页查找订单,包括明细
 	 * 
 	 * @param pageInfo
-	 * @param keyword
+	 * @param filter
 	 * @return
 	 */
 	public Page<PurchaseOrderAll> findAllOrdersDetailByPageInfo(PageInfo pageInfo, SearchFilter filter);
@@ -104,7 +104,7 @@ public interface PurchaseOrderService {
 	 * 分页查找订单,包括明细
 	 * 
 	 * @param pageInfo
-	 * @param keyword
+	 * @param filter
 	 * @return
 	 */
 	public SPage<PurchaseOrderAll> findOrdersByPageInfo(PageInfo pageInfo, SearchFilter filter);
@@ -384,4 +384,5 @@ public interface PurchaseOrderService {
 	 */
 	List<Object[]> getOrderCount(String category);
 
+    Integer setReadByState(String category);
 }

+ 29 - 0
src/main/java/com/uas/platform/b2b/service/impl/MakeOrderServiceImpl.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.MakeOrderSaveEvent;
@@ -476,4 +477,32 @@ public class MakeOrderServiceImpl implements MakeOrderService {
 	public List<Long> getUnreadIds(String category) {
 		return userOrderDao.getUnreadIds(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), "make$orders", category);
 	}
+
+	@Override
+	@Transactional
+	public Integer setReadByState(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+		Integer deleteCount = 0;
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return deleteCount;
+		}
+		List<Long> repliedIds = null;
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				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());
+				}
+			}
+		} 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());
+			}
+		}
+		return deleteCount;
+	}
 }

+ 3 - 3
src/main/java/com/uas/platform/b2b/service/impl/PagingReleaseDetailServiceImpl.java

@@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -34,6 +35,7 @@ public class PagingReleaseDetailServiceImpl implements PagingReleaseDetailServic
                 releaseDetail.setReadStatus(Constant.YES);
                 releaseDetail.setReadDate(new Date());
                 pagingReleaseDetailDao.save(releaseDetail);
+                userOrderDao.delete(releaseDetail.getVendUU(), releaseDetail.getVendUserUU(), releaseDetail.getPagingRelease().getTable(), releaseDetail.getPagingRelease().getCategory(), releaseDetail.getPagingRelease().getSourceId());
             }
         }
     }
@@ -51,9 +53,7 @@ public class PagingReleaseDetailServiceImpl implements PagingReleaseDetailServic
             detail.setReadDate(new Date());
             pagingReleaseDetailDao.save(detail);
             // 将对应的单据设置成已读
-            userOrderDao.setReadStatus(detail.getVendUU(), detail.getVendUserUU(),
-                    detail.getPagingRelease().getTable(), detail.getPagingRelease().getCategory(),
-                    (short) Status.READ.value(), detail.getPagingRelease().getSourceId());
+            userOrderDao.delete(detail.getVendUU(), detail.getVendUserUU(), detail.getPagingRelease().getTable(), detail.getPagingRelease().getCategory(), detail.getPagingRelease().getSourceId());
         }
     }
 }

+ 29 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryMouldServiceImpl.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.InquiryMould;
@@ -554,4 +555,32 @@ public class PurchaseInquiryMouldServiceImpl implements PurchaseInquiryMouldServ
 	public List<Long> getUnreadIds(String category) {
 		return userOrderDao.getUnreadIds(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), "v$purc$inquiry_mould", category);
 	}
+
+	@Override
+	@Transactional
+	public Integer setReadByState(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+		Integer deleteCount = 0;
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return deleteCount;
+		}
+		List<Long> repliedIds = null;
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				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());
+				}
+			}
+		} 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());
+			}
+		}
+		return deleteCount;
+	}
 }

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

@@ -2,10 +2,7 @@ package com.uas.platform.b2b.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.uas.message.mail.service.MailService;
-import com.uas.platform.b2b.core.util.ContextUtils;
-import com.uas.platform.b2b.core.util.DateFormatUtils;
-import com.uas.platform.b2b.core.util.ThreadTask;
-import com.uas.platform.b2b.core.util.ThreadUtils;
+import com.uas.platform.b2b.core.util.*;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.erp.model.Inquiry;
 import com.uas.platform.b2b.erp.model.QuotationDown;
@@ -774,4 +771,32 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 	public List<Long> getUnreadIds(String category) {
 		return userOrderDao.getUnreadIds(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), "v$purc$inquiryitems", category);
 	}
+
+	@Override
+	@Transactional
+	public Integer setReadByState(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+		Integer deleteCount = 0;
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return 0;
+		}
+		List<Long> repliedIds = null;
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				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());
+				}
+			}
+		} 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());
+			}
+		}
+		return deleteCount;
+	}
 }

+ 29 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.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.PurchaseNotify;
@@ -1014,4 +1015,32 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 	public void setReadByOrder(String category, Long[] sourceId) {
 		userOrderDao.setReadStatus(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), "purc$notice", category, (short) Status.READ.value(), sourceId);
 	}
+
+	@Override
+	@Transactional
+	public Integer setReadByState(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+		Integer deleteCount = 0;
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return deleteCount;
+		}
+		List<Long> repliedIds = null;
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				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());
+				}
+			}
+		} 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());
+			}
+		}
+		return deleteCount;
+	}
 }

+ 29 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderChangeServiceImpl.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.SaleDownChangeReply;
@@ -430,4 +431,32 @@ public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeServic
 		list.add(new Object[]{count, "unNeedReply"});
 		return list;
 	}
+
+	@Override
+	@Transactional
+	public Integer setReadByState(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+		Integer deleteCount = 0;
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return deleteCount;
+		}
+		List<Long> repliedIds = null;
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				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());
+				}
+			}
+		} 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());
+			}
+		}
+		return deleteCount;
+	}
 }

+ 28 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.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.PurchaseOrderEndReleaseEvent;
@@ -1224,4 +1225,31 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
         return purchaseOrderDao.getUnreadCountEveryStatus(ids);
 	}
 
+	@Override
+	@Transactional
+	public Integer setReadByState(String category) {
+		List<Long> unreadIds = getUnreadIds(category);
+		Integer deleteCount = 0;
+		if (CollectionUtils.isEmpty(unreadIds)){
+			return deleteCount;
+		}
+		List<Long> repliedIds = null;
+		if (unreadIds.size() > 1000) {
+			List<List<Long>> idsArray = SplitArray.splitAry(unreadIds, SplitArray.QUERY_MAX_NUMBER);
+			for (List<Long> ids : idsArray) {
+				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());
+				}
+			}
+		} 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());
+			}
+		}
+		return deleteCount;
+	}
 }

+ 60 - 0
src/main/webapp/resources/js/index/app.js

@@ -3077,6 +3077,16 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             });
         };
 
+        $scope.setOrdersReadByState = function () {
+            if (!$scope.unread.replied || $scope.unread.replied == 0) {
+                return;
+            }
+            PurcOrderItem.setReadByState({}, function () {
+                getUnreadIds();
+                getUnreadCount();
+            });
+        };
+
         var getUnreadIds = function () {
         	PurcOrderItem.getUnreadIds({}, "", function (message) {
                 $scope.unreadCode = message.content;
@@ -3499,6 +3509,16 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             });
         };
 
+        $scope.setOrdersReadByState = function () {
+            if (!$scope.unread.replied || $scope.unread.replied == 0) {
+                return;
+            }
+            PurcChange.setReadByState({}, function () {
+                getUnreadIds();
+                getUnreadCount();
+            });
+        };
+
         //获取未读单据id
         var getUnreadIds = function (){
             PurcChange.getUnreadIds({}, "", function (message) {
@@ -3720,6 +3740,16 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             });
         };
 
+        $scope.setOrdersReadByState = function () {
+            if (!$scope.unread.replied || $scope.unread.replied == 0) {
+                return;
+            }
+            PurcInquiry.setReadByState({}, function () {
+                getUnreadIds();
+                getUnreadCount();
+            });
+        };
+
         var getUnreadIds = function () {
             PurcInquiry.getUnreadIds({}, "", function (message) {
                 $scope.unreadCode = message.content;
@@ -5519,6 +5549,16 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             });
         };
 
+        $scope.setOrdersReadByState = function () {
+            if (!$scope.unread.replied || $scope.unread.replied == 0) {
+                return;
+            }
+            PurcInquiry.setReadByState({}, function () {
+                getUnreadIds();
+                getUnreadCount();
+            });
+        };
+
         //获取未读单据id
         var getUnreadIds = function (){
             PurcInquiryMould.getUnreadIds({}, "", function (message) {
@@ -6594,6 +6634,16 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             });
         };
 
+        $scope.setOrdersReadByState = function () {
+            if (!$scope.unread.replied || $scope.unread.replied == 0) {
+                return;
+            }
+            PurcNotice.setReadByState({}, function () {
+                getUnreadIds();
+                getUnreadCount();
+            });
+        };
+
         var getUnreadIds = function () {
             PurcNotice.getUnreadIds({}, "", function (message) {
                 $scope.unreadCode = message.content;
@@ -11679,6 +11729,16 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 });
             };
 
+            $scope.setOrdersReadByState = function () {
+                if (!$scope.unread.replied || $scope.unread.replied == 0) {
+                    return;
+                }
+                MakeOrder.setReadByState({}, function () {
+                    getUnreadIds();
+                    getUnreadCount();
+                });
+            };
+
             var getUnreadIds = function () {
                 MakeOrder.getUnreadIds({}, "", function (message) {
                     $scope.unreadCode = message.content;

+ 4 - 0
src/main/webapp/resources/js/index/services/Make.js

@@ -51,6 +51,10 @@ define([ 'ngResource'], function() {
 				url: 'make/orders/setRead',
 				method: 'POST'
 			},
+			setReadByState:{
+				url: 'make/orders/setReadByState',
+				method: 'GET'
+			},
 			getUnreadIds:{
 				url: 'make/orders/getUnreadIds',
 				method: 'GET'

+ 20 - 0
src/main/webapp/resources/js/index/services/Purc.js

@@ -100,6 +100,10 @@ define([ 'ngResource'], function() {
 				url: 'sale/orders/setRead',
 				method: 'POST'
 			},
+			setReadByState:{
+				url: 'sale/orders/setReadByState',
+				method: 'GET'
+			},
 			getUnreadIds:{
 				url: 'sale/orders/getUnreadIds',
 				method: 'GET'
@@ -268,6 +272,10 @@ define([ 'ngResource'], function() {
 				url: 'sale/changes/setRead',
 				method: 'POST'
 			},
+			setReadByState:{
+				url: 'sale/changes/setReadByState',
+				method: 'GET'
+			},
 			getUnreadIds:{
 				url: 'sale/changes/getUnreadIds',
 				method: 'GET'
@@ -378,6 +386,10 @@ define([ 'ngResource'], function() {
 				url: 'sale/inquiry/setRead',
 				method: 'POST'
 			},
+			setReadByState:{
+				url: 'sale/inquiry/setReadByState',
+				method: 'GET'
+			},
 			exportXls: {
 				url: 'sale/inquiry/xls/permission',
 				method: 'GET'
@@ -772,6 +784,10 @@ define([ 'ngResource'], function() {
 				url: 'sale/mould/setRead',
 				method: 'POST'
 			},
+			setReadByState:{
+				url: 'sale/mould/setReadByState',
+				method: 'GET'
+			},
 			getUnreadIds:{
 				url: 'sale/mould/getUnreadIds',
 				method: 'GET'
@@ -845,6 +861,10 @@ define([ 'ngResource'], function() {
 				url: 'sale/notice/setRead',
 				method: 'POST'
 			},
+			setReadByState:{
+				url: 'sale/notice/setReadByState',
+				method: 'GET'
+			},
 			getUnreadIds:{
 				url: 'sale/notice/getUnreadIds',
 				method: 'GET'

+ 1 - 1
src/main/webapp/resources/tpl/index/make/order.html

@@ -149,7 +149,7 @@
 					</div>
 					<div class="btn-group btn-group-sm">
 						<button type="button" class="btn btn-default btn-line"
-							ng-class="{'btn-info':active=='done'}" ng-click="setActive('done')">
+							ng-class="{'btn-info':active=='done'}" ng-click="setActive('done');setOrdersReadByState()">
 							已回复<b class="new-dot" ng-if="unread.replied > 0">{{unread.replied>99?'99+':unread.replied}}</b>
 						</button>
 					</div>

+ 1 - 1
src/main/webapp/resources/tpl/index/sale/change.html

@@ -125,7 +125,7 @@
 					</div>
 					<div class="btn-group btn-group-sm">
 						<button type="button" class="btn btn-default btn-line"
-							ng-class="{'btn-info':active=='done'}" ng-click="setActive('done')">已处理
+							ng-class="{'btn-info':active=='done'}" ng-click="setActive('done');setOrdersReadByState()">已处理
 							<b class="new-dot" ng-if="unread.replied > 0">{{unread.replied>99?'99+':unread.replied}}</b>
 						</button>
 					</div>

+ 1 - 1
src/main/webapp/resources/tpl/index/sale/inquiry.html

@@ -156,7 +156,7 @@
 					</div>
 					<div class="btn-group btn-group-sm">
 						<button type="button" class="btn btn-default btn-line"
-								ng-class="{'btn-info':active=='done'}" ng-click="setActive('done')">已报价<b class="new-dot" ng-if="unread.replied>0">{{unread.replied>99?'99+':unread.replied}}</b></button>
+								ng-class="{'btn-info':active=='done'}" ng-click="setActive('done');setOrdersReadByState()">已报价<b class="new-dot" ng-if="unread.replied>0">{{unread.replied>99?'99+':unread.replied}}</b></button>
 					</div>
 					<div class="btn-group btn-group-sm">
 						<button type="button" class="btn btn-default btn-line"

+ 1 - 1
src/main/webapp/resources/tpl/index/sale/inquiry_mould.html

@@ -202,7 +202,7 @@ tbody td div.text-mould {
 					</div>
 					<div class="btn-group btn-group-sm">
 						<button type="button" class="btn btn-default btn-line"
-							ng-class="{'btn-info':active=='done'}" ng-click="setActive('done')">已报价
+							ng-class="{'btn-info':active=='done'}" ng-click="setActive('done');setOrdersReadByState()">已报价
 							<b class="new-dot" ng-if="unread.replied > 0">{{unread.replied>99?'99+':unread.replied}}</b>
 						</button>
 					</div>

+ 1 - 1
src/main/webapp/resources/tpl/index/sale/notice.html

@@ -203,7 +203,7 @@
                     </div>
                     <div class="btn-group btn-group-sm">
                         <button type="button" class="btn btn-default btn-line"
-                                ng-class="{'btn-info':active=='done'}" ng-click="setActive('done')">已发货
+                                ng-class="{'btn-info':active=='done'}" ng-click="setActive('done');setOrdersReadByState()">已发货
                             <b class="new-dot" ng-if="unread.replied > 0">{{unread.replied>99?'99+':unread.replied}}</b>
                         </button>
                     </div>

+ 1 - 1
src/main/webapp/resources/tpl/index/sale/order.html

@@ -167,7 +167,7 @@
 					</div>
 					<div class="btn-group btn-group-sm">
 						<button type="button" class="btn btn-default btn-line"
-							ng-class="{'btn-info':active=='done'}" ng-click="setActive('done')">已回复<b class="new-dot" ng-if="unread.replied > 0">{{unread.replied>99?'99+':unread.replied}}</b></button>
+							ng-class="{'btn-info':active=='done'}" ng-click="setActive('done');setOrdersReadByState()">已回复<b class="new-dot" ng-if="unread.replied > 0">{{unread.replied>99?'99+':unread.replied}}</b></button>
 					</div>
 					<div class="btn-group btn-group-sm">
 						<button type="button" class="btn btn-default btn-line"