Browse Source

商机接口增加返回报价详情内容;接口代码整理。

dongbw 7 years ago
parent
commit
930b116d52

+ 2 - 2
src/main/java/com/uas/ps/inquiry/AccessConfiguration.java

@@ -18,13 +18,13 @@ public class AccessConfiguration {
     private String PsProductUrl;
 
     /**
-     * 公共物料访问地址
+     * 消息中心访问地址
      */
     @Value("${ps.message.url}")
     private String PsMessageUrl;
 
     /**
-     * 公共物料访问地址
+     * 商城访问地址
      */
     @Value("${mall.url}")
     private String mallUrl;

+ 4 - 50
src/main/java/com/uas/ps/inquiry/controller/InquiryForBuyerController.java

@@ -15,7 +15,6 @@ import com.uas.ps.inquiry.service.InquiryService;
 import com.uas.ps.inquiry.support.InquiryBufferedLogger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Sort;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -70,7 +69,7 @@ public class InquiryForBuyerController {
     }
 
     /**
-     * 通过明细id对供应商报价进行审核操作
+     * 通过明细id采纳供应商报价
      *
      * @param id 报价明细id
      * @param status 状态
@@ -86,7 +85,7 @@ public class InquiryForBuyerController {
 
 
     /**
-     * 通过明细id对供应商报价进行审核操作
+     * 通过明细id拒绝供应商报价
      *
      * @param id 报价明细id
      * @param status 状态
@@ -96,7 +95,7 @@ public class InquiryForBuyerController {
     @HttpLog
     @RequestMapping(value = "/refuse", method = RequestMethod.POST)
     public void refuseQuote(Long id, Short status, Long enuu, Long useruu,String refusereason) throws Exception {
-        logger.log("公共询价", "通过明细id绝供应商报价", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());
+        logger.log("公共询价", "通过明细id绝供应商报价", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());
         inquiryService.refuseQuote(id, status,refusereason);
     }
 
@@ -124,24 +123,6 @@ public class InquiryForBuyerController {
     @HttpLog
     @RequestMapping(value = "/inquiryList", method = RequestMethod.GET)
     public Page<PurcInquiry> getInquiry(PageInfo pageInfo, SearchFilter searchFilter) {
-        if (pageInfo.getOffset() == 0) {
-            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-        }
-        Sort sort = new Sort(Sort.Direction.DESC, "date");
-        if (pageInfo.getPageNumber() == 0) {
-            pageInfo.setPageNumber(1);
-        }
-        if (pageInfo.getPageSize() == 0) {
-            pageInfo.setPageSize(5);
-        }
-        pageInfo.setSort(sort);
-        if (null != searchFilter.getUserUU()) {
-            pageInfo.filter("recorderUU", searchFilter.getUserUU());
-        } else if (null != searchFilter.getEnUU()) {
-            pageInfo.filter("enUU", searchFilter.getEnUU());
-        } else {
-            throw new IllegalAccessError("非法访问");
-        }
         logger.log("公共询价", "通过企业UU和分页参数获取已发布的询价信息", null, searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
         return inquiryService.findByPageInfo(pageInfo, searchFilter);
     }
@@ -158,18 +139,6 @@ public class InquiryForBuyerController {
     @HttpLog
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     public Page<PurcInquiryItemInfo> getInquiryList(PageInfo pageInfo, SearchFilter searchFilter, String state, Integer overdue) {
-        Sort sort = new Sort(Sort.Direction.DESC, "date");
-        if (pageInfo.getOffset() == 0) {
-            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-        }
-        pageInfo.setSort(sort);
-        if (null != searchFilter.getUserUU()) {
-            pageInfo.filter("userUU", searchFilter.getUserUU());
-        } else if (null != searchFilter.getEnUU()) {
-            pageInfo.filter("inquiry.enUU", searchFilter.getEnUU());
-        } else {
-            throw new IllegalAccessError("非法访问");
-        }
         logger.log("公共询价", "通过企业UU和分页参数获取已发布的询价信息", null, searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
         return inquiryService.findTodoByPageInfo(pageInfo, searchFilter, state, overdue);
     }
@@ -200,23 +169,8 @@ public class InquiryForBuyerController {
     @HttpLog
     @RequestMapping(value = "/quotations", method = RequestMethod.GET)
     public Page<PurcInquiryItemInfo> findQuotationsByPage(PageInfo pageInfo, SearchFilter searchFilter, Long enUU, Long userUU) {
-        if (enUU == null && userUU == null) {
-            throw new IllegalAccessError("非法访问");
-        }
-        Sort sort = new Sort(Sort.Direction.DESC, "date");
-        if (pageInfo.getOffset() == 0) {
-            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-        }
-        pageInfo.setSort(sort);
-        if (enUU != null) {
-            pageInfo.filter("inquiry.enUU", enUU);
-        } else {
-            if (userUU != null) {
-                pageInfo.filter("inquiry.recorderUU", userUU);
-            }
-        }
         logger.log("公共询价", "客户查询供应商报价信息", null, userUU, enUU, InquirySource.MALL.name());
-        return inquiryService.findQuotationsByPage(pageInfo, searchFilter);
+        return inquiryService.findQuotationsByPage(pageInfo, searchFilter, enUU, userUU);
     }
 
      /**

+ 7 - 20
src/main/java/com/uas/ps/inquiry/controller/InquiryForSaleController.java

@@ -8,14 +8,18 @@ import com.uas.ps.httplog.annotation.HttpLog;
 import com.uas.ps.inquiry.domain.IPage;
 import com.uas.ps.inquiry.entity.Constant;
 import com.uas.ps.inquiry.entity.InquirySource;
-import com.uas.ps.inquiry.model.*;
+import com.uas.ps.inquiry.model.Attach;
+import com.uas.ps.inquiry.model.InquiryEnRemind;
+import com.uas.ps.inquiry.model.InquiryRemind;
+import com.uas.ps.inquiry.model.PublicInquiry;
+import com.uas.ps.inquiry.model.PublicInquiryItem;
+import com.uas.ps.inquiry.model.PublicInquiryReply;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
 import com.uas.ps.inquiry.service.InquiryForSaleService;
 import com.uas.ps.inquiry.service.PublicInquiryService;
 import com.uas.ps.inquiry.support.InquiryBufferedLogger;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Sort;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -51,9 +55,6 @@ public class InquiryForSaleController {
     @HttpLog
     @RequestMapping(value = "/inquiry/detail", method = RequestMethod.GET)
     public PublicInquiryItem findById(Long itemId, Long en_uu) throws IllegalAccessException {
-        if (StringUtils.isEmpty(en_uu)) {
-            throw new IllegalAccessException("无访问权限");
-        }
         logger.log("公共询价", "查询已转报价的明细", "id: " + itemId, Constant.UU, en_uu, InquirySource.PLAIN.name());
         return saleService.findById(itemId, en_uu);
     }
@@ -116,9 +117,6 @@ public class InquiryForSaleController {
     @HttpLog
     @RequestMapping(value = "/item/save", method = RequestMethod.POST)
     public String saveInquiryItems(@RequestBody PublicInquiryItem item) throws Exception {
-        if (StringUtils.isEmpty(item.getVendUU()) || StringUtils.isEmpty(item.getVendUserUU())) {
-            throw new IllegalOperatorException("企业UU或用户UU不能为空");
-        }
         item = saleService.saveItem(item);
         logger.log("公共询价", "作为卖家,对公共询价进行报价操作", "sourceid: " + item.getSourceId() == null ? null : item.getSourceId() + ", id" + item.getId(),
                 item.getVendUserUU(), item.getVendUU(), item.getQutoApp());
@@ -158,8 +156,7 @@ public class InquiryForSaleController {
     @HttpLog
     @RequestMapping(value = "/quote", method = RequestMethod.GET)
     public PublicInquiryItem findBySourceId(Long id, Long en_uu) {
-        logger.log("公共询价", "查询公共询价单是否已报价", "id: " + id,
-                Constant.UU, en_uu, InquirySource.PLAIN.name());
+        logger.log("公共询价", "查询公共询价单是否已报价", "id: " + id, Constant.UU, en_uu, InquirySource.PLAIN.name());
         return saleService.findBySourceIdAndEnuu(id, en_uu);
     }
 
@@ -201,11 +198,6 @@ public class InquiryForSaleController {
         if (useruu == null || enuu == null) {
             throw new IllegalAccessError("非法访问");
         } else {
-            Sort sort = new Sort(Sort.Direction.DESC, "date");
-            if (pageInfo.getOffset() == 0) {
-                pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-            }
-            pageInfo.setSort(sort);
             pageInfo.filter("vendUU", enuu);
             pageInfo.filter("vendUserUU", useruu);
             logger.log("公共询价", "查询推荐询价信息", null, useruu, enuu, InquirySource.PLAIN.name());
@@ -227,11 +219,6 @@ public class InquiryForSaleController {
         if (useruu == null || enuu == null) {
             throw new IllegalAccessError("非法访问");
         } else {
-            Sort sort = new Sort(Sort.Direction.DESC, "date");
-            if (pageInfo.getOffset() == 0) {
-                pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-            }
-            pageInfo.setSort(sort);
             pageInfo.filter("vendUU", enuu);
             logger.log("公共询价", "查询企业推荐询价信息", null, useruu, enuu, InquirySource.PLAIN.name());
             return saleService.findEnRemindByPageInfo(pageInfo, searchFilter, isAll);

+ 29 - 52
src/main/java/com/uas/ps/inquiry/controller/PublicInquiryController.java

@@ -69,15 +69,14 @@ public class PublicInquiryController {
     @HttpLog
     @RequestMapping(method = RequestMethod.POST)
     public void saveInquiries(@RequestBody List<BatchInquiry> inquiries, Long enuu, String address) throws NotFoundException, UnsupportedEncodingException {
-        address = URLDecoder.decode(address, "UTF-8");
-        publicInquiryService.save(inquiries, enuu, address);
+        publicInquiryService.save(inquiries, enuu, URLDecoder.decode(address, "UTF-8"));
         logger.log("公共询价", "ERP上传公共询价", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
     }
 
     /**
      * erp的公共询价单提交待审核时,更新公共询价服务中心的单据设置为不能报价
      *
-     * @param data 封装的数据信息
+     * @param inquiries 封装的数据信息
      * @param enuu 询价企业UU
      * @throws UnsupportedEncodingException
      */
@@ -121,7 +120,7 @@ public class PublicInquiryController {
     /**
      * 买家在收到报价信息后,点击提交按钮后,状态传至公共询价服务中心,至此公共询价服务中心的供应商不能再对这张询价单进行报价
      *
-     * @param data 封装的data信息
+     * @param details 封装的data信息
      * @throws UnsupportedEncodingException
      */
     @HttpLog
@@ -186,11 +185,6 @@ public class PublicInquiryController {
     @HttpLog
     @RequestMapping(method = RequestMethod.GET)
     public IPage<PurcInquiryItemInfo> getInquiry(PageInfo pageInfo, SearchFilter searchFilter, String distributes) {
-        Sort sort = new Sort(Sort.Direction.DESC, "id", "date");
-        if (pageInfo.getOffset() == 0) {
-            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-        }
-        pageInfo.setSort(sort);
         if (!StringUtils.isEmpty(distributes)) {
             List<Long> distribute = JSONObject.parseArray(distributes, Long.class);
             searchFilter.setDistribute(distribute);
@@ -209,11 +203,6 @@ public class PublicInquiryController {
     @HttpLog
     @RequestMapping(value = "/inquiryList", method = RequestMethod.GET)
     public IPage<PurcInquiryItemInfo> getInquiryList(PageInfo pageInfo, SearchFilter searchFilter) {
-        Sort sort = new Sort(Sort.Direction.DESC, "date");
-        if (pageInfo.getOffset() == 0) {
-            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-        }
-        pageInfo.setSort(sort);
         if (null != searchFilter.getUserUU()) {
             pageInfo.filter("userUU", searchFilter.getUserUU());
         }
@@ -242,20 +231,7 @@ public class PublicInquiryController {
     public ModelMap publincInquiry(Integer page, Integer size, Long en_uu, String _state,
                                    String keyword, String user_tel, Long fromDate, Long endDate) {
         ModelMap map = new ModelMap();
-        PageInfo pageInfo = new PageInfo();
-        if (page == null || page == 0) {
-            pageInfo.setPageNumber(1);
-        } else {
-            pageInfo.setPageNumber(page);
-        }
-        if (size == null || size == 0) {
-            pageInfo.setPageSize(5);
-        } else {
-            pageInfo.setPageSize(size);
-        }
-        pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-        Sort sort = new Sort(Sort.Direction.DESC, "date");
-        pageInfo.setSort(sort);
+        PageInfo pageInfo = setPageInfo(page, size);
         SearchFilter filter = new SearchFilter();
         filter.setFromDate(fromDate);
         filter.setEndDate(endDate);
@@ -287,6 +263,30 @@ public class PublicInquiryController {
         return map;
     }
 
+    /**
+     * 设置分页信息
+     * @param page  页码
+     * @param size  条数
+     * @return
+     */
+    private PageInfo setPageInfo(Integer page, Integer size) {
+        PageInfo pageInfo = new PageInfo();
+        if (page == null || page == 0) {
+            pageInfo.setPageNumber(1);
+        } else {
+            pageInfo.setPageNumber(page);
+        }
+        if (size == null || size == 0) {
+            pageInfo.setPageSize(5);
+        } else {
+            pageInfo.setPageSize(size);
+        }
+        pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
+        Sort sort = new Sort(Sort.Direction.DESC, "date");
+        pageInfo.setSort(sort);
+        return pageInfo;
+    }
+
     /**
      * 移动端查询公共询价列表信息
      *
@@ -305,20 +305,7 @@ public class PublicInquiryController {
     public ModelMap publicInquiry(Integer page, Integer size, Long en_uu, String _state,
                                   String keyword, String user_tel, Long fromDate, Long endDate) {
         ModelMap map = new ModelMap();
-        PageInfo pageInfo = new PageInfo();
-        if (page == null || page == 0) {
-            pageInfo.setPageNumber(1);
-        } else {
-            pageInfo.setPageNumber(page);
-        }
-        if (size == null || size == 0) {
-            pageInfo.setPageSize(5);
-        } else {
-            pageInfo.setPageSize(size);
-        }
-        pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-        Sort sort = new Sort(Sort.Direction.DESC, "date");
-        pageInfo.setSort(sort);
+        PageInfo pageInfo = setPageInfo(page, size);
         SearchFilter filter = new SearchFilter();
         filter.setFromDate(fromDate);
         filter.setEndDate(endDate);
@@ -362,11 +349,6 @@ public class PublicInquiryController {
     @HttpLog
     @RequestMapping(value = "/quotation/list", method = RequestMethod.GET)
     public IPage<PublicInquiryItemInfo> getQuotation(PageInfo pageInfo, String filter, String _state, Short overdue) {
-        Sort sort = new Sort(Sort.Direction.DESC, "date");
-        if (pageInfo.getOffset() == 0) {
-            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-        }
-        pageInfo.setSort(sort);
         SearchFilter searchFilter = JSONObject.parseObject(filter, SearchFilter.class);
         if (null != searchFilter.getVendUU()) {
             pageInfo.filter("vendUU", searchFilter.getVendUU());
@@ -408,11 +390,6 @@ public class PublicInquiryController {
     @HttpLog
     @RequestMapping(value = "/quotationList", method = RequestMethod.GET)
     public Page<PublicInquiryItemInfo> getQuotationList(PageInfo pageInfo, String filter, String _state, Short overdue) {
-        Sort sort = new Sort(Sort.Direction.DESC, "date");
-        if (pageInfo.getOffset() == 0) {
-            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
-        }
-        pageInfo.setSort(sort);
         SearchFilter searchFilter = JSONObject.parseObject(filter, SearchFilter.class);
         if (null != _state) {
             pageInfo = publicInquiryService.covert(pageInfo, _state, overdue);

+ 18 - 0
src/main/java/com/uas/ps/inquiry/model/InquiryEnRemind.java

@@ -169,6 +169,12 @@ public class InquiryEnRemind implements Serializable {
     @Transient
     private Long remainingTime;
 
+    /**
+     * 报价单详情
+     */
+    @Transient
+    private PublicInquiryItem quotation;
+
     public String getInbrand() {
         return inbrand;
     }
@@ -351,4 +357,16 @@ public class InquiryEnRemind implements Serializable {
     public void setRemindStatus(Integer remindStatus) {
         this.remindStatus = remindStatus;
     }
+
+    public void setRemainingTime(Long remainingTime) {
+        this.remainingTime = remainingTime;
+    }
+
+    public PublicInquiryItem getQuotation() {
+        return quotation;
+    }
+
+    public void setQuotation(PublicInquiryItem quotation) {
+        this.quotation = quotation;
+    }
 }

+ 26 - 3
src/main/java/com/uas/ps/inquiry/model/InquiryRemind.java

@@ -1,8 +1,14 @@
 package com.uas.ps.inquiry.model;
 
-import com.uas.ps.inquiry.entity.Inquiry;
-
-import javax.persistence.*;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+import javax.persistence.Transient;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -168,6 +174,12 @@ public class InquiryRemind implements Serializable {
     @Transient
     private Long remainingTime;
 
+    /**
+     * 报价单详情
+     */
+    @Transient
+    private PublicInquiryItem quotation;
+
     public String getInbrand() {
         return inbrand;
     }
@@ -351,4 +363,15 @@ public class InquiryRemind implements Serializable {
         this.date = date;
     }
 
+    public void setRemainingTime(Long remainingTime) {
+        this.remainingTime = remainingTime;
+    }
+
+    public PublicInquiryItem getQuotation() {
+        return quotation;
+    }
+
+    public void setQuotation(PublicInquiryItem quotation) {
+        this.quotation = quotation;
+    }
 }

+ 14 - 0
src/main/java/com/uas/ps/inquiry/model/PurcInquiryItemInfo.java

@@ -343,6 +343,12 @@ public class PurcInquiryItemInfo {
 	@Transient
 	private List<PublicInquiryItem> qutations;
 
+	/**
+	 * 登录企业对该单据的报价
+	 */
+	@Transient
+	private PublicInquiryItem quotation;
+
 	/**
 	 * 买家发出公共询价单时录入的币别
 	 */
@@ -776,6 +782,14 @@ public class PurcInquiryItemInfo {
 		this.custCurrency = custCurrency;
 	}
 
+	public PublicInquiryItem getQuotation() {
+		return quotation;
+	}
+
+	public void setQuotation(PublicInquiryItem quotation) {
+		this.quotation = quotation;
+	}
+
 	@Override
     public String toString() {
         return "PurcInquiryItemInfo{" +

+ 1 - 1
src/main/java/com/uas/ps/inquiry/service/InquiryService.java

@@ -91,7 +91,7 @@ public interface InquiryService {
      * @param searchFilter 过滤条件
      * @return
      */
-    Page<PurcInquiryItemInfo> findQuotationsByPage(PageInfo pageInfo, SearchFilter searchFilter);
+    Page<PurcInquiryItemInfo> findQuotationsByPage(PageInfo pageInfo, SearchFilter searchFilter, Long enUU, Long userUU);
 
     /**
      * 针对客户单个公共询价,查询供应商报价信息

+ 42 - 5
src/main/java/com/uas/ps/inquiry/service/impl/InquiryForSaleServiceImpl.java

@@ -6,12 +6,27 @@ import com.uas.ps.core.util.ContextUtils;
 import com.uas.ps.entity.Product;
 import com.uas.ps.entity.Status;
 import com.uas.ps.inquiry.AccessConfiguration;
-import com.uas.ps.inquiry.dao.*;
+import com.uas.ps.inquiry.dao.AttachDao;
+import com.uas.ps.inquiry.dao.EnterpriseDao;
+import com.uas.ps.inquiry.dao.InquiryEnRemindDao;
+import com.uas.ps.inquiry.dao.InquiryRemindDao;
+import com.uas.ps.inquiry.dao.ProductDao;
+import com.uas.ps.inquiry.dao.PublicInquiryDao;
+import com.uas.ps.inquiry.dao.PublicInquiryItemDao;
+import com.uas.ps.inquiry.dao.PurcInquiryItemDao;
+import com.uas.ps.inquiry.dao.PurcInquiryItemInfoDao;
 import com.uas.ps.inquiry.domain.IPage;
 import com.uas.ps.inquiry.entity.Constant;
 import com.uas.ps.inquiry.entity.InquirySource;
-import com.uas.ps.inquiry.entity.MessageModel;
-import com.uas.ps.inquiry.model.*;
+import com.uas.ps.inquiry.model.Attach;
+import com.uas.ps.inquiry.model.Enterprise;
+import com.uas.ps.inquiry.model.InquiryEnRemind;
+import com.uas.ps.inquiry.model.InquiryRemind;
+import com.uas.ps.inquiry.model.PublicInquiry;
+import com.uas.ps.inquiry.model.PublicInquiryItem;
+import com.uas.ps.inquiry.model.PublicInquiryReply;
+import com.uas.ps.inquiry.model.PurcInquiryItem;
+import com.uas.ps.inquiry.model.PurcInquiryItemInfo;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
 import com.uas.ps.inquiry.page.criteria.CriterionExpression;
@@ -24,9 +39,9 @@ import com.uas.ps.inquiry.support.InquiryBufferedLogger;
 import com.uas.ps.inquiry.util.FlexJsonUtils;
 import com.uas.ps.inquiry.util.HttpUtil;
 import com.uas.ps.inquiry.util.IPageUtils;
-import com.uas.ps.inquiry.util.ThreadUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
@@ -39,7 +54,11 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * 针对卖家,对询价的相关操作
@@ -97,6 +116,9 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
      */
     @Override
     public PublicInquiryItem findById(Long id, Long enUU) throws IllegalAccessException {
+        if (StringUtils.isEmpty(enUU)) {
+            throw new IllegalAccessException("无访问权限");
+        }
         PublicInquiryItem item = infoDao.findOne(id);
         if (!enUU.equals(item.getVendUU())) {
             throw new IllegalAccessException("无法查询该条信息");
@@ -199,6 +221,9 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
      */
     @Override
     public PublicInquiryItem saveItem(PublicInquiryItem inquiryItem) throws Exception {
+        if (StringUtils.isEmpty(inquiryItem.getVendUU()) || StringUtils.isEmpty(inquiryItem.getVendUserUU())) {
+            throw new com.uas.ps.core.page.exception.IllegalOperatorException("企业UU或用户UU不能为空");
+        }
         PublicInquiryItem existInquiry = infoDao.findByVendUUAndSourceId(inquiryItem.getVendUU(), inquiryItem.getId());
         if (null != existInquiry) {
             throw new IllegalOperatorException("该单据已报价,不能重复报价");
@@ -493,6 +518,11 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
      */
     @Override
     public IPage<InquiryRemind> findRemindByPageInfo(final PageInfo pageInfo, final SearchFilter filter) {
+        Sort sort = new Sort(Sort.Direction.DESC, "date");
+        if (pageInfo.getOffset() == 0) {
+            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
+        }
+        pageInfo.setSort(sort);
         if (null != filter) {
             if (StringUtils.hasText(filter.getKeyword())) {
                 SimpleExpression title = new SimpleExpression("prodTitle", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
@@ -536,6 +566,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
                 PurcInquiryItem item1 = purcInquiryItemDao.findOne(remind.getItemId());
                 if (null != item) {
                     remind.setNewId(item.getId());
+                    remind.setQuotation(item);
                     remind.setStatus(Status.SUBMITTED.value());
                     if (null != item.getAgreed()) {
                         if (item.getAgreed().equals(Constant.YES)) {
@@ -556,6 +587,11 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
     }
 
     public IPage<InquiryEnRemind> findEnRemindByPageInfo(final PageInfo pageInfo, final SearchFilter filter, Integer isAll) {
+        Sort sort = new Sort(Sort.Direction.DESC, "date");
+        if (pageInfo.getOffset() == 0) {
+            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
+        }
+        pageInfo.setSort(sort);
         if (null != filter) {
             if (StringUtils.hasText(filter.getKeyword())) {
                 SimpleExpression title = new SimpleExpression("prodTitle", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
@@ -716,6 +752,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
                 PurcInquiryItem item1 = purcInquiryItemDao.findOne(remind.getItemId());
                 if (null != item) {
                     remind.setNewId(item.getId());
+                    remind.setQuotation(item);
                     remind.setStatus(Status.SUBMITTED.value());
                     if (null != item.getAgreed()) {
                         if (item.getAgreed().equals(Constant.YES)) {

+ 81 - 13
src/main/java/com/uas/ps/inquiry/service/impl/InquiryServiceImpl.java

@@ -7,9 +7,27 @@ import com.uas.ps.core.util.ContextUtils;
 import com.uas.ps.entity.Product;
 import com.uas.ps.entity.Status;
 import com.uas.ps.inquiry.AccessConfiguration;
-import com.uas.ps.inquiry.dao.*;
-import com.uas.ps.inquiry.entity.*;
-import com.uas.ps.inquiry.model.*;
+import com.uas.ps.inquiry.dao.EnterpriseDao;
+import com.uas.ps.inquiry.dao.InquiryRemindDao;
+import com.uas.ps.inquiry.dao.ProductDao;
+import com.uas.ps.inquiry.dao.PublicInquiryDao;
+import com.uas.ps.inquiry.dao.PublicInquiryItemDao;
+import com.uas.ps.inquiry.dao.PurcInquiryDao;
+import com.uas.ps.inquiry.dao.PurcInquiryItemDao;
+import com.uas.ps.inquiry.dao.PurcInquiryItemInfoDao;
+import com.uas.ps.inquiry.entity.Constant;
+import com.uas.ps.inquiry.entity.InquiryDetailInfo;
+import com.uas.ps.inquiry.entity.InquiryProductInfo;
+import com.uas.ps.inquiry.entity.InquirySource;
+import com.uas.ps.inquiry.entity.MessageModel;
+import com.uas.ps.inquiry.entity.OrderStatus;
+import com.uas.ps.inquiry.model.Enterprise;
+import com.uas.ps.inquiry.model.InquiryRemind;
+import com.uas.ps.inquiry.model.PublicInquiry;
+import com.uas.ps.inquiry.model.PublicInquiryItem;
+import com.uas.ps.inquiry.model.PurcInquiry;
+import com.uas.ps.inquiry.model.PurcInquiryItem;
+import com.uas.ps.inquiry.model.PurcInquiryItemInfo;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
 import com.uas.ps.inquiry.page.criteria.CriterionExpression;
@@ -19,14 +37,6 @@ import com.uas.ps.inquiry.page.criteria.SimpleExpression;
 import com.uas.ps.inquiry.page.exception.IllegalOperatorException;
 import com.uas.ps.inquiry.service.InquiryService;
 import com.uas.ps.inquiry.service.PublicInquiryService;
-
-import java.math.BigInteger;
-import java.util.*;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
 import com.uas.ps.inquiry.support.InquiryBufferedLogger;
 import com.uas.ps.inquiry.util.FlexJsonUtils;
 import com.uas.ps.inquiry.util.HttpUtil;
@@ -34,13 +44,25 @@ import com.uas.ps.inquiry.util.ThreadUtils;
 import javassist.NotFoundException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
-import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 /**
  * 针对转询价报价单的数据查询操作
  *
@@ -170,6 +192,18 @@ public class InquiryServiceImpl implements InquiryService {
      */
     @Override
     public Page<PurcInquiryItemInfo> findTodoByPageInfo(final PageInfo info, SearchFilter filter, String state, Integer overdue) {
+        Sort sort = new Sort(Sort.Direction.DESC, "date");
+        if (info.getOffset() == 0) {
+            info.setOffset(info.getPageSize() * (info.getPageNumber() - 1));
+        }
+        info.setSort(sort);
+        if (null != filter.getUserUU()) {
+            info.filter("userUU", filter.getUserUU());
+        } else if (null != filter.getEnUU()) {
+            info.filter("inquiry.enUU", filter.getEnUU());
+        } else {
+            throw new IllegalAccessError("非法访问");
+        }
         if (null != filter) {
             if (StringUtils.hasText(filter.getKeyword())) {
                 SimpleExpression cmpCode = new SimpleExpression("cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE);
@@ -626,6 +660,24 @@ public class InquiryServiceImpl implements InquiryService {
      */
     @Override
     public Page<PurcInquiry> findByPageInfo(final PageInfo info, SearchFilter filter) {
+        if (info.getOffset() == 0) {
+            info.setOffset(info.getPageSize() * (info.getPageNumber() - 1));
+        }
+        Sort sort = new Sort(Sort.Direction.DESC, "date");
+        if (info.getPageNumber() == 0) {
+            info.setPageNumber(1);
+        }
+        if (info.getPageSize() == 0) {
+            info.setPageSize(5);
+        }
+        info.setSort(sort);
+        if (null != filter.getUserUU()) {
+            info.filter("recorderUU", filter.getUserUU());
+        } else if (null != filter.getEnUU()) {
+            info.filter("enUU", filter.getEnUU());
+        } else {
+            throw new IllegalAccessError("非法访问");
+        }
         if (null != filter) {
             if (!StringUtils.isEmpty(filter.getKeyword())) {
                 SimpleExpression code = new SimpleExpression("remark", filter.getKeyword(), CriterionExpression.Operator.LIKE);
@@ -690,7 +742,22 @@ public class InquiryServiceImpl implements InquiryService {
      * @return
      */
     @Override
-    public Page<PurcInquiryItemInfo> findQuotationsByPage(final PageInfo pageInfo, final SearchFilter filter) {
+    public Page<PurcInquiryItemInfo> findQuotationsByPage(final PageInfo pageInfo, final SearchFilter filter, Long enUU, Long userUU) {
+        if (enUU == null && userUU == null) {
+            throw new IllegalAccessError("非法访问");
+        }
+        Sort sort = new Sort(Sort.Direction.DESC, "date");
+        if (pageInfo.getOffset() == 0) {
+            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
+        }
+        pageInfo.setSort(sort);
+        if (enUU != null) {
+            pageInfo.filter("inquiry.enUU", enUU);
+        } else {
+            if (userUU != null) {
+                pageInfo.filter("inquiry.recorderUU", userUU);
+            }
+        }
         if (StringUtils.hasText(filter.getKeyword())) {
             SimpleExpression cmpCode = new SimpleExpression("cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE);
             SimpleExpression inbrand = new SimpleExpression("inbrand", filter.getKeyword(), CriterionExpression.Operator.LIKE);
@@ -715,6 +782,7 @@ public class InquiryServiceImpl implements InquiryService {
             for (PurcInquiryItemInfo itemInfo : items.getContent()) {
                 List<PublicInquiryItem> itemList = itemDao.findBySourceId(itemInfo.getId());
                 itemInfo.setQutations(itemList);
+                itemInfo.setQuotation(itemList.get(0));
                 itemInfo.setAgreed(Constant.NO);
                 if (!CollectionUtils.isEmpty(itemList)) {
                     for (PublicInquiryItem i : itemList) {

+ 26 - 0
src/main/java/com/uas/ps/inquiry/service/impl/PublicInquiryServiceImpl.java

@@ -24,6 +24,7 @@ import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DataAccessException;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -968,6 +969,11 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
      */
     @Override
     public IPage<PublicInquiryItemInfo> findByPageInfo(final PageInfo info, final SearchFilter filter) {
+        Sort sort = new Sort(Sort.Direction.DESC, "date");
+        if (info.getOffset() == 0) {
+            info.setOffset(info.getPageSize() * (info.getPageNumber() - 1));
+        }
+        info.setSort(sort);
         if (null != filter) {
             if (StringUtils.hasText(filter.getKeyword())) {
                 SimpleExpression cmpCode = new SimpleExpression("cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
@@ -1022,6 +1028,11 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
 
     @Override
     public Page<PublicInquiryItemInfo> findListByPageInfo(final PageInfo info, SearchFilter filter) {
+        Sort sort = new Sort(Sort.Direction.DESC, "date");
+        if (info.getOffset() == 0) {
+            info.setOffset(info.getPageSize() * (info.getPageNumber() - 1));
+        }
+        info.setSort(sort);
         return itemInfoDao.findAll(new Specification<PublicInquiryItemInfo>() {
             public Predicate toPredicate(Root<PublicInquiryItemInfo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
                 query.where(info.getPredicates(root, query, builder));
@@ -1039,6 +1050,11 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
      */
     @Override
     public IPage<PurcInquiryItemInfo> findTodoByPageInfo(final PageInfo info, final SearchFilter filter) {
+        Sort sort = new Sort(Sort.Direction.DESC, "id", "date");
+        if (info.getOffset() == 0) {
+            info.setOffset(info.getPageSize() * (info.getPageNumber() - 1));
+        }
+        info.setSort(sort);
         Page<PurcInquiryItemInfo> orders = inquiryItemInfoDao.findAll(new Specification<PurcInquiryItemInfo>() {
             public Predicate toPredicate(Root<PurcInquiryItemInfo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
                 if (null != filter) {
@@ -1075,6 +1091,11 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                 return null;
             }
         }, info);
+        // 将当前企业报价信息设置进去
+        for (PurcInquiryItemInfo itemInfo : orders) {
+            PublicInquiryItem item = publicInquiryItemDao.findByVendUUAndSourceId(filter.getEnUU(), itemInfo.getId());
+            itemInfo.setQuotation(item);
+        }
         return covert(orders, filter.getEnUU());
     }
 
@@ -1123,6 +1144,11 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
      */
     @Override
     public PageInfo covert(PageInfo pageInfo, String state, Short overdue) {
+        Sort sort = new Sort(Sort.Direction.DESC, "date");
+        if (pageInfo.getOffset() == 0) {
+            pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
+        }
+        pageInfo.setSort(sort);
         if (state.equals(OrderStatus.todo.name())) {
             pageInfo.filter("status", Status.NOT_REPLY.value());
             pageInfo.filter("overdue", Constant.NO);