Browse Source

单据消息相关方法修改

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@10004 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 8 years ago
parent
commit
8e637a5eb4

+ 41 - 0
src/main/java/com/uas/platform/b2b/controller/PagingReleaseController.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2b.model.PagingReleaseDetail;
+import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.PagingReleaseDetailService;
 import com.uas.platform.b2b.service.PagingReleaseService;
@@ -10,6 +11,7 @@ import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
+import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.platform.core.web.bind.RequestState;
@@ -90,6 +92,44 @@ public class PagingReleaseController {
         return searchService.searchPagingReleaseDetailIds(keyword, pageParams);
     }
 
+    /**
+     *  分页查找消息(未读)
+     * @param params
+     * @return
+     */
+    @RequestMapping(value="/info", params = RequestState.TODO, method = RequestMethod.GET)
+    @ResponseBody
+    public SPage<PagingReleaseDetail> getTodoPagingReleaseBySql(PageParams params, String searchFilter) {
+        SearchFilter filter = new SearchFilter();
+        SearchFilter filters = JSONObject.parseObject(searchFilter, SearchFilter.class);
+        filter.setEndDate(filters.getEndDate());
+        filter.setFromDate(filters.getFromDate());
+        PageInfo pageInfo = new PageInfo(params);
+        pageInfo.filter("readStatus", Constant.NO);
+        pageInfo.filter("vendUserUU", SystemSession.getUser().getUserUU());
+        pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+        return pagingReleaseService.findPagingReleaseByPageInfo(filter, filters.getKeyword(), pageInfo);
+    }
+
+    /**
+     *  分页查找消息(已读)
+     * @param params
+     * @return
+     */
+    @RequestMapping(value="/info", params = RequestState.DONE, method = RequestMethod.GET)
+    @ResponseBody
+    public SPage<PagingReleaseDetail> getDonePagingReleaseBySql(PageParams params, String searchFilter) {
+        SearchFilter filter = new SearchFilter();
+        SearchFilter filters = JSONObject.parseObject(searchFilter, SearchFilter.class);
+        filter.setEndDate(filters.getEndDate());
+        filter.setFromDate(filters.getFromDate());
+        PageInfo pageInfo = new PageInfo(params);
+        pageInfo.filter("readStatus", Constant.YES);
+        pageInfo.filter("vendUserUU", SystemSession.getUser().getUserUU());
+        pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+        return pagingReleaseService.findPagingReleaseByPageInfo(filter, filters.getKeyword(), pageInfo);
+    }
+
     /**
      *  选中标为已读
      *
@@ -100,4 +140,5 @@ public class PagingReleaseController {
         List<PagingReleaseDetail> releaseDetails = FlexJsonUtils.fromJsonArray(releases, PagingReleaseDetail.class);
         pagingReleaseDetailService.setRead(releaseDetails);
     }
+
 }

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

@@ -1,20 +1,13 @@
 package com.uas.platform.b2b.controller;
 
+import com.uas.platform.b2b.core.util.ThreadUtils;
+import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.service.*;
+import com.uas.platform.b2b.support.SystemSession;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.uas.platform.b2b.core.util.ThreadUtils;
-import com.uas.platform.b2b.model.User;
-import com.uas.platform.b2b.support.SystemSession;
-
-import static com.uas.platform.b2b.model.UpdateType.purchase;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * 平台消息、任务快照

+ 38 - 0
src/main/java/com/uas/platform/b2b/dao/PagingReleaseDetailDao.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.dao;
 import com.uas.platform.b2b.model.PagingReleaseDetail;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.jpa.repository.query.Procedure;
 import org.springframework.stereotype.Repository;
 
@@ -25,4 +26,41 @@ public interface PagingReleaseDetailDao extends JpaRepository<PagingReleaseDetai
      */
     @Procedure(procedureName = "PAGINGRELEASE_SAVE")
     void saveDetails(Long prId, Long vendUU, Long userUU, Long orderStatus);
+
+    /**
+     *  修改消息阅读状态时调用,用来更新消息数量统计表(有setReadStatus()时调用)
+     * @param vendUU  接收企业uu
+     * @param vendUserUU   接收人uu
+     * @param table  单据表名
+     * @param category  单据分类
+     */
+    @Procedure(procedureName = "PURC_PRC_BY_PRD")
+    void updateReleaseCountBySetReadStatus(Long vendUU, Long vendUserUU, String table, String category);
+
+    /**
+     *  单据状态改变时调用,更新消息数量统计表(单据的setStatus()时调用)
+     * @param table   单据表名
+     * @param category   单据分类
+     * @param oldOrderStatus  单据旧的状态
+     */
+    @Procedure(procedureName = "PURC_PRC_BY_PR")
+    void updateReleaseCountBySetOrderStatus(String table, String category, Short oldOrderStatus);
+
+    /**
+     * 查找当前用户未读消息
+     * @param userUU
+     * @param uu
+     * @param no
+     * @return
+     */
+    List<PagingReleaseDetail> findByVendUserUUAndVendUUAndReadStatus(Long userUU, Long uu, Short no);
+
+    /**
+     *  获取未读消息数量
+     * @param userUU
+     * @param vendUU
+     * @return
+     */
+    @Query("select count(*) from PagingReleaseDetail o where o.vendUU = :vendUU and o.vendUserUU = :userUU and o.readStatus = 0")
+    Integer GetToReadCountByVendUserUUAndVendUU(Long userUU, Long vendUU);
 }

+ 24 - 43
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseProdInOutServiceImpl.java

@@ -1,39 +1,18 @@
 package com.uas.platform.b2b.erp.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
+import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.erp.model.PurchaseProdInOut;
+import com.uas.platform.b2b.erp.service.PurchaseProdInOutService;
+import com.uas.platform.b2b.model.*;
+import com.uas.platform.b2b.support.SystemSession;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import com.uas.platform.b2b.dao.EnterpriseDao;
-import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.PurchaseAcceptDao;
-import com.uas.platform.b2b.dao.PurchaseBadInDao;
-import com.uas.platform.b2b.dao.PurchaseBadInItemDao;
-import com.uas.platform.b2b.dao.PurchaseBadOutDao;
-import com.uas.platform.b2b.dao.PurchaseBadOutItemDao;
-import com.uas.platform.b2b.dao.PurchaseOrderDao;
-import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
-import com.uas.platform.b2b.dao.PurchaseReturnDao;
-import com.uas.platform.b2b.dao.PurchaseReturnItemDao;
-import com.uas.platform.b2b.erp.model.PurchaseProdInOut;
-import com.uas.platform.b2b.erp.service.PurchaseProdInOutService;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.PurchaseAccept;
-import com.uas.platform.b2b.model.PurchaseAcceptItem;
-import com.uas.platform.b2b.model.PurchaseBadIn;
-import com.uas.platform.b2b.model.PurchaseBadInItem;
-import com.uas.platform.b2b.model.PurchaseBadOut;
-import com.uas.platform.b2b.model.PurchaseBadOutItem;
-import com.uas.platform.b2b.model.PurchaseOrderItem;
-import com.uas.platform.b2b.model.PurchaseReturn;
-import com.uas.platform.b2b.model.PurchaseReturnItem;
-import com.uas.platform.b2b.support.SystemSession;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
 
 @Service
 public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService {
@@ -205,19 +184,21 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService {
 			Enterprise vendor = enterpriseDao.findEnterpriseByUu(badOut.getVendUU());
 			// 不良品出库单不存在,供应商UU号存在对应供应商
 			if (badOuts.size() == 0 && vendor != null) {
-				for (Iterator<PurchaseBadOutItem> it = badOut.getBadOutItems().iterator(); it.hasNext();) {// 设置明细对应的采购单明细
-					PurchaseBadOutItem badOutItem = it.next();
-					List<PurchaseOrderItem> purchaseOrderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(
-							enUU, badOutItem.getOrderItem().getOrder().getCode(),
-							badOutItem.getOrderItem().getNumber());
-					if (purchaseOrderItems.size() > 0) {// 对应的采购单存在
-						badOutItem.setOrderItem(purchaseOrderItems.get(0));// 对应的采购单明细set进去
-						badOutItem.setOrderItemId(purchaseOrderItems.get(0).getId());
-						badOutItem.setBadOut(badOut);// 设置主记录
-						badOutItem.setErpDate(new Date());
-						badOutItems.add(badOutItem);
-					} else {
-						it.remove();
+				if (badOut.getBadOutItems() != null) {
+					for (Iterator<PurchaseBadOutItem> it = badOut.getBadOutItems().iterator(); it.hasNext();) {// 设置明细对应的采购单明细
+						PurchaseBadOutItem badOutItem = it.next();
+						List<PurchaseOrderItem> purchaseOrderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(
+								enUU, badOutItem.getOrderItem().getOrder().getCode(),
+								badOutItem.getOrderItem().getNumber());
+						if (purchaseOrderItems.size() > 0) {// 对应的采购单存在
+							badOutItem.setOrderItem(purchaseOrderItems.get(0));// 对应的采购单明细set进去
+							badOutItem.setOrderItemId(purchaseOrderItems.get(0).getId());
+							badOutItem.setBadOut(badOut);// 设置主记录
+							badOutItem.setErpDate(new Date());
+							badOutItems.add(badOutItem);
+						} else {
+							it.remove();
+						}
 					}
 				}
 			}

+ 9 - 10
src/main/java/com/uas/platform/b2b/event/PurchaseOrderEndReleaseEvent.java

@@ -1,12 +1,9 @@
 package com.uas.platform.b2b.event;
 
-import com.uas.platform.b2b.dao.UserDao;
 import com.uas.platform.b2b.model.PagingRelease;
 import com.uas.platform.b2b.model.PagingReleaseDetail;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
-import com.uas.platform.b2b.model.User;
 import com.uas.platform.core.model.Constant;
-import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.Date;
 import java.util.List;
@@ -18,9 +15,6 @@ import java.util.List;
  */
 public class PurchaseOrderEndReleaseEvent extends SaveReleaseEvent<PagingReleaseDetail, PurchaseOrderItem> {
 
-    @Autowired
-    private UserDao userDao;
-
     public PurchaseOrderEndReleaseEvent(List<PurchaseOrderItem> savedList) {
         super(savedList);
     }
@@ -46,18 +40,23 @@ public class PurchaseOrderEndReleaseEvent extends SaveReleaseEvent<PagingRelease
         String type = "新增采购订单";
         String title = "B2B商务提醒";
         String context = "";
+        Short isReply = Constant.NO; // 是由采购方结案,所以不是供应商回复操作
+        String category = "sale"; // 对接收方来说,该单据类型
+        String table = "purc$orders";
+        Long sourceId = item.getOrder().getId();
+        Short orderStatus = item.getOrder().getStatus();
+        Short toVendor = Constant.YES;
         if (item.getEnd() == Constant.YES) {
             context = item.getOrder().getEnterprise().getEnName() + "的" + emName + "结案了采购单(" + codeValue + "),请及时确认!";
         } else if (item.getEnd() == Constant.NO) {
             context = item.getOrder().getEnterprise().getEnName() + "的" + emName + "反结案了采购单(" + codeValue + "),请及时确认!";
         }
-        PagingRelease release = new PagingRelease(emUU, emName, enUU, date, codeValue, from, title, context, type);
+        PagingRelease release = new PagingRelease(emUU, emName, enUU, date, codeValue, from, title, context, type, isReply, category,table, sourceId, orderStatus, toVendor);
         Long vendUU = item.getOrder().getVendUU();
         Long vendUserUU = item.getOrder().getVendUserUU();
         String vendUserName = "操作员";
-        if (null != vendUserUU) {
-            User vendUser = userDao.findOne(vendUserUU);
-            vendUserName = vendUser.getUserName();
+        if (null != item.getOrder().getVenduser()) {
+            vendUserName = item.getOrder().getVenduser();
         }
         PagingReleaseDetail releaseDetail = new PagingReleaseDetail(vendUU, vendUserUU, vendUserName);
         releaseDetail.setPagingRelease(release);

+ 7 - 7
src/main/java/com/uas/platform/b2b/mobile/service/impl/MobileReleaseServiceImpl.java

@@ -175,7 +175,8 @@ public class MobileReleaseServiceImpl implements MobileReleaseService {
         ModelMap map = new ModelMap();
         String countSql = "select count(*) from purc$pagingrelease pr left join purc$pagingreleasedetail prd on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and prd.prd_status = 0 and prd.prd_readstatus = 0";
         Integer allCount = commonDao.queryForObject(countSql, Integer.class);
-        String idSql = "select pr.pr_id from purc$pagingrelease pr left join purc$pagingreleasedetail prd on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and prd.prd_status = 0 and prd.prd_readstatus = 0";
+        // 因为单挑消息针对多个人,这里一个用户已读之后,只设置该用户的消息详情为已读
+        String idSql = "select prd.prd_id from purc$pagingreleasedetail prd left join purc$pagingrelease pr on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + vendUseruu + " and prd.prd_venduu = " + venduu + " and prd.prd_status = 0 and prd.prd_readstatus = 0";
         List<Integer> ids = commonDao.queryForList(idSql, Integer.class);
         String idString = "";
         for (Integer id : ids) {
@@ -198,20 +199,19 @@ public class MobileReleaseServiceImpl implements MobileReleaseService {
         ModelMap map = new ModelMap();
         boolean success = false;
         String[] idArray = ids.split(",");
-        List<PagingReleaseDetail> saveDetails = new ArrayList<>();
         for (String id : idArray) {
-            PagingRelease release = pagingReleaseDao.findOne(Long.valueOf(id));
-            Set<PagingReleaseDetail> releaseDetails = release.getPagingReleaseDetails();
-            for (PagingReleaseDetail detail : releaseDetails) {
+            PagingReleaseDetail detail = pagingReleaseDetailDao.findOne(Long.valueOf(id));
+            if (detail != null) {
                 detail.setTotalStatus(Constant.YES);
                 detail.setStatus(Constant.YES);
                 detail.setReadStatus(Constant.YES);
                 detail.setReadDate(new Date());
-                saveDetails.add(detail);
                 success = true;
+                // 每条消息更新之后都需要调用存储过程去更新消息数量表的对应记录,所以这里单条保存
+                detail = pagingReleaseDetailDao.save(detail);
+                pagingReleaseDetailDao.updateReleaseCountBySetReadStatus(detail.getVendUU(), detail.getVendUserUU(), detail.getPagingRelease().getTable(), detail.getPagingRelease().getCategory());
             }
         }
-        pagingReleaseDetailDao.save(saveDetails);
         map.put("success", success);
         return map;
     }

+ 11 - 11
src/main/java/com/uas/platform/b2b/model/PagingRelease.java

@@ -161,17 +161,17 @@ public class PagingRelease implements Serializable {
         this.toVendor = toVendor;
     }
 
-    public PagingRelease(Long emUU, String emName, Long vendUU, Date date, String codeValue, String from, String title, String context, String type) {
-        this.emUU = emUU;
-        this.emName = emName;
-        this.enUU = enUU;
-        this.date = date;
-        this.code = codeValue;
-        this.from = from;
-        this.title = title;
-        this.context = context;
-        this.type = type;
-    }
+//    public PagingRelease(Long emUU, String emName, Long vendUU, Date date, String codeValue, String from, String title, String context, String type) {
+//        this.emUU = emUU;
+//        this.emName = emName;
+//        this.enUU = enUU;
+//        this.date = date;
+//        this.code = codeValue;
+//        this.from = from;
+//        this.title = title;
+//        this.context = context;
+//        this.type = type;
+//    }
 
     public Long getId() {
         return id;

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

@@ -1,5 +1,10 @@
 package com.uas.platform.b2b.service;
 
+import com.uas.platform.b2b.model.PagingReleaseDetail;
+import com.uas.platform.b2b.model.SearchFilter;
+import com.uas.platform.core.model.PageInfo;
+import com.uas.search.b2b.model.SPage;
+
 /**
  * Created by dongbw
  * 17/03/23 9:41.
@@ -11,5 +16,14 @@ public interface PagingReleaseService {
      *
      * @return
      */
-    Long getToReadCount();
+    Object getToReadCount();
+
+    /**
+     * 分页获取消息列表
+     * @param filter
+     * @param keyword
+     * @param pageInfo
+     * @return
+     */
+    SPage<PagingReleaseDetail> findPagingReleaseByPageInfo(SearchFilter filter, String keyword, PageInfo pageInfo);
 }

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

@@ -3,9 +3,11 @@ package com.uas.platform.b2b.service.impl;
 import com.uas.platform.b2b.dao.PagingReleaseDetailDao;
 import com.uas.platform.b2b.model.PagingReleaseDetail;
 import com.uas.platform.b2b.service.PagingReleaseDetailService;
+import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.Constant;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.Date;
 import java.util.List;
@@ -18,10 +20,15 @@ public class PagingReleaseDetailServiceImpl implements PagingReleaseDetailServic
 
     @Override
     public void setRead(List<PagingReleaseDetail> releaseDetails) {
-        for (PagingReleaseDetail releaseDetail : releaseDetails) {
-            releaseDetail.setReadStatus(Constant.YES);
-            releaseDetail.setReadDate(new Date());
+        if (!CollectionUtils.isEmpty(releaseDetails)) {
+            for (PagingReleaseDetail releaseDetail : releaseDetails) {
+                releaseDetail.setReadStatus(Constant.YES);
+                releaseDetail.setReadDate(new Date());
+                pagingReleaseDetailDao.save(releaseDetail);
+                PagingReleaseDetail detail = pagingReleaseDetailDao.findOne(releaseDetail.getId());
+                // 调用存储过程更新消息数量表,每条参数不一样所以需要单条保存
+                pagingReleaseDetailDao.updateReleaseCountBySetReadStatus(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), detail.getPagingRelease().getTable(), detail.getPagingRelease().getCategory());
+            }
         }
-        pagingReleaseDetailDao.save(releaseDetails);
     }
 }

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

@@ -1,11 +1,25 @@
 package com.uas.platform.b2b.service.impl;
 
 import com.uas.platform.b2b.dao.CommonDao;
+import com.uas.platform.b2b.dao.PagingReleaseDetailDao;
+import com.uas.platform.b2b.model.PagingReleaseDetail;
+import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.service.PagingReleaseService;
 import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.persistence.criteria.PredicateUtils;
+import com.uas.search.b2b.model.SPage;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.Date;
+
 /**
  * Created by dongbw
  * 17/03/24 11:28.
@@ -15,16 +29,41 @@ public class PagingReleaseServiceImpl implements PagingReleaseService {
 
     @Autowired
     private CommonDao commonDao;
+
+    @Autowired
+    private PagingReleaseDetailDao pagingReleaseDetailDao;
     /**
      * 获取未读消息数量
      *
      * @return
      */
     @Override
-    public Long getToReadCount() {
-        Long count = commonDao.queryForObject(
+    public Integer getToReadCount() {
+        Integer count = commonDao.queryForObject(
                 "select count(*) from purc$pagingrelease pr left join purc$pagingreleasedetail prd on pr.pr_id = prd.prd_prid where prd.prd_emuu = " + SystemSession.getUser().getUserUU() + " and prd.prd_venduu = " + SystemSession.getUser().getEnterprise().getUu() + " and prd.prd_readstatus = 0",
-                Long.class);
+                Integer.class);
         return count;
     }
+
+    @Override
+    public SPage<PagingReleaseDetail> findPagingReleaseByPageInfo(final SearchFilter filter,final String keyword, final PageInfo pageInfo) {
+        SPage<PagingReleaseDetail> details = new SPage<>();
+        if (filter != null) {
+            if (filter.getFromDate() != null)
+                pageInfo.expression(PredicateUtils.gte("pagingRelease.date", new Date(filter.getFromDate()), false));
+            if (filter.getEndDate() != null)
+                pageInfo.expression(PredicateUtils.lte("pagingRelease.date", new Date(filter.getEndDate()), false));
+        }
+        Page<PagingReleaseDetail> pagingReleaseDetails = pagingReleaseDetailDao.findAll(new Specification<PagingReleaseDetail>() {
+            public Predicate toPredicate(Root<PagingReleaseDetail> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+                return query.where(pageInfo.getPredicates(root, query, builder)).getRestriction();
+            }
+        }, pageInfo);
+        details.setContent(pagingReleaseDetails.getContent());
+        details.setPage(pagingReleaseDetails.getNumber());
+        details.setSize(pagingReleaseDetails.getSize());
+        details.setTotalElement(pagingReleaseDetails.getTotalElements());
+        details.setTotalPage(pagingReleaseDetails.getTotalPages());
+        return details;
+    }
 }

+ 14 - 4
src/main/webapp/resources/js/index/app.js

@@ -797,7 +797,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 		};
 
 		$scope.showMessage = function() {
-            var $modalInstance = $modal.open({
+            $modal.open({
                 templateUrl: 'static/tpl/index/home/pagingRelease.html',
                 controller: 'PagingReleaseCtrl'
             });
@@ -833,9 +833,10 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
         }
 	}]);
 
-    app.controller('PagingReleaseCtrl', ['$scope', 'PagingRelease', 'BaseService', 'ngTableParams', 'toaster', '$modalInstance', function($scope, PagingRelease, BaseService, ngTableParams, toaster, $modalInstance){
+    app.controller('PagingReleaseCtrl', ['$scope', 'PagingRelease', 'BaseService', 'ngTableParams', 'toaster', '$modalInstance', 'PagingReleaseInfo', function($scope, PagingRelease, BaseService, ngTableParams, toaster, $modalInstance, PagingReleaseInfo){
     	BaseService.scrollBackToTop();
     	$scope.active = "todo";
+        $scope.searchStatus = false; // 默认从数据库直接获取
         $scope.setActive = function(state) {
             if($scope.active != state) {
                 $scope.active = state;
@@ -846,11 +847,19 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             }
         };
 
+        var getService = function() {
+            if ($scope.searchStatus) {
+                return PagingRelease;
+            } else {
+                return PagingReleaseInfo;
+            }
+        };
+
         $scope.tableParams = new ngTableParams({
             page : 1,
             count : 20,
             sorting: {
-                'releaseDetail.release.date': 'desc'
+                'pagingRelease.date': 'desc'
             }
         }, {
             total : 0,
@@ -868,7 +877,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 //     $scope.loading = false;
                 //     $scope.currentEn = data;
                 // });
-                PagingRelease[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function(page){
+                getService()[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function(page){
                     $scope.loading = false;
                     if(page) {
                         params.total(page.totalElement);
@@ -932,6 +941,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 
         // 搜索框回车
         $scope.onSearch = function() {
+            $scope.searchStatus = true;
             $scope.tableParams.page(1);
             $scope.tableParams.reload();
         };

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

@@ -792,6 +792,19 @@ define([ 'ngResource'], function() {
                 method: 'POST'
             }
 		});
+    }]).factory('PagingReleaseInfo', ['$resource', function($resource){
+        return $resource('api/paging/info', {}, {
+            getTodo: {
+                params: {
+                    _state: 'todo'
+                }
+            },
+            getDone:{
+                params: {
+                    _state: 'done'
+                }
+            }
+        });
 	}]).factory('Product', ['$resource', function($resource){
 		return $resource('product', {}, {});
 	}]).factory('Vendor', ['$resource', function($resource){