Explorar o código

Merge branch 'dev-reset-0914' into dev

# Conflicts:
#	src/main/java/com/uas/ps/inquiry/controller/InquiryForBuyerController.java
#	src/main/java/com/uas/ps/inquiry/model/PublicInquiryItem.java
#	src/main/java/com/uas/ps/inquiry/service/impl/InquiryForSaleServiceImpl.java
#	src/main/java/com/uas/ps/inquiry/service/impl/InquiryServiceImpl.java
#	src/main/resources/application.yml
dongbw %!s(int64=7) %!d(string=hai) anos
pai
achega
f2a904c0d4
Modificáronse 21 ficheiros con 420 adicións e 165 borrados
  1. 20 6
      src/main/java/com/uas/ps/inquiry/AccessConfiguration.java
  2. 0 2
      src/main/java/com/uas/ps/inquiry/WebAppConfiguration.java
  3. 3 17
      src/main/java/com/uas/ps/inquiry/controller/InquiryForBuyerController.java
  4. 1 23
      src/main/java/com/uas/ps/inquiry/controller/InquiryForSaleController.java
  5. 0 2
      src/main/java/com/uas/ps/inquiry/controller/PostDataController.java
  6. 30 5
      src/main/java/com/uas/ps/inquiry/controller/PublicApiController.java
  7. 0 14
      src/main/java/com/uas/ps/inquiry/controller/PublicInquiryController.java
  8. 36 0
      src/main/java/com/uas/ps/inquiry/dao/PublicInquiryItemDao.java
  9. 35 0
      src/main/java/com/uas/ps/inquiry/dao/PurcInquiryItemDao.java
  10. 22 0
      src/main/java/com/uas/ps/inquiry/model/Attach.java
  11. 1 1
      src/main/java/com/uas/ps/inquiry/model/PublicInquiryItem.java
  12. 18 0
      src/main/java/com/uas/ps/inquiry/service/PublicInquiryService.java
  13. 66 79
      src/main/java/com/uas/ps/inquiry/service/impl/InquiryForSaleServiceImpl.java
  14. 30 11
      src/main/java/com/uas/ps/inquiry/service/impl/InquiryServiceImpl.java
  15. 110 2
      src/main/java/com/uas/ps/inquiry/service/impl/PublicInquiryServiceImpl.java
  16. 38 0
      src/main/java/com/uas/ps/inquiry/util/SsoUtils.java
  17. 0 2
      src/main/resources/application.yml
  18. 3 0
      src/main/resources/config/application-cloud.properties
  19. 3 0
      src/main/resources/config/application-dev.properties
  20. 3 0
      src/main/resources/config/application-test.properties
  21. 1 1
      src/main/resources/config/application-txcloud.properties

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

@@ -15,13 +15,19 @@ public class AccessConfiguration {
      * 公共物料访问地址
      */
     @Value("${ps.product.url}")
-    private String PsProductUrl;
+    private String psProductUrl;
 
     /**
      * 消息中心访问地址
      */
     @Value("${ps.message.url}")
-    private String PsMessageUrl;
+    private String psMessageUrl;
+
+    /**
+     * 账户中心地址
+     */
+    @Value("${sso.url}")
+    private String ssoUrl;
 
     /**
      * 商城访问地址
@@ -66,18 +72,26 @@ public class AccessConfiguration {
     }
 
     public String getPsProductUrl() {
-        return PsProductUrl;
+        return psProductUrl;
     }
 
     public void setPsProductUrl(String psProductUrl) {
-        PsProductUrl = psProductUrl;
+        psProductUrl = psProductUrl;
     }
 
     public String getPsMessageUrl() {
-        return PsMessageUrl;
+        return psMessageUrl;
     }
 
     public void setPsMessageUrl(String psMessageUrl) {
-        PsMessageUrl = psMessageUrl;
+        psMessageUrl = psMessageUrl;
+    }
+
+    public String getSsoUrl() {
+        return ssoUrl;
+    }
+
+    public void setSsoUrl(String ssoUrl) {
+        this.ssoUrl = ssoUrl;
     }
 }

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

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.alibaba.fastjson.support.config.FastJsonConfig;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
 import com.uas.ps.core.intercept.ExceptionHandlerAdvice;
-import com.uas.ps.httplog.config.EnableHttpLog;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
@@ -25,7 +24,6 @@ import java.util.List;
  */
 @Configuration
 @ComponentScan
-@EnableHttpLog
 public class WebAppConfiguration extends WebMvcConfigurerAdapter {
 
     @Override

+ 3 - 17
src/main/java/com/uas/ps/inquiry/controller/InquiryForBuyerController.java

@@ -1,7 +1,7 @@
 package com.uas.ps.inquiry.controller;
 
+import com.uas.ps.inquiry.entity.Constant;
 import com.alibaba.fastjson.JSON;
-import com.uas.ps.httplog.annotation.HttpLog;
 import com.uas.ps.inquiry.entity.InquiryDetailInfo;
 import com.uas.ps.inquiry.entity.InquiryProductInfo;
 import com.uas.ps.inquiry.model.PurcInquiry;
@@ -39,13 +39,12 @@ public class InquiryForBuyerController {
      * @param enuu 企业UU
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/detail", method = RequestMethod.GET)
     public InquiryDetailInfo findById(Long id, Long enuu) {
         long start = System.currentTimeMillis();
         log.info("/inquiry/buyer/save, 客户查询供应商报价详情, id: {}, enuu: {}, ", id, enuu);
         InquiryDetailInfo detailInfo = inquiryService.findById(id, enuu);
-        log.info("/inquiry/buyer/save, 耗时: {}", (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/detail, 耗时: {}", (System.currentTimeMillis() - start));
         return detailInfo;
     }
 
@@ -56,7 +55,6 @@ public class InquiryForBuyerController {
      * @param searchFilter 过滤条件
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/inquiryList", method = RequestMethod.GET)
     public Page<PurcInquiry> getInquiry(PageInfo pageInfo, SearchFilter searchFilter) {
         long start = System.currentTimeMillis();
@@ -76,7 +74,6 @@ public class InquiryForBuyerController {
      * @param overdue 是否过期 1、过期;0、 未过期
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     public Page<PurcInquiryItemInfo> getInquiryList(PageInfo pageInfo, SearchFilter searchFilter, String state, Integer overdue) {
         long start = System.currentTimeMillis();
@@ -93,7 +90,6 @@ public class InquiryForBuyerController {
      * @param enuu 当前企业UU
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/product/detail", method = RequestMethod.GET)
     public InquiryProductInfo findInquiryDetailById(Long id, Long enuu) {
         long start = System.currentTimeMillis();
@@ -112,7 +108,6 @@ public class InquiryForBuyerController {
      * @param userUU 用户UU
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/quotations", method = RequestMethod.GET)
     public Page<PurcInquiryItemInfo> findQuotationsByPage(PageInfo pageInfo, SearchFilter searchFilter, Long enUU, Long userUU, Short overdue) {
         /* logger.log("公共询价", "客户查询供应商报价信息", null, userUU, enUU, InquirySource.MALL.name());*/
@@ -129,7 +124,6 @@ public class InquiryForBuyerController {
      * @param id 询价明细id
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/quotation", method = RequestMethod.GET)
     public PurcInquiryItemInfo findQuotationById(Long id) {
         long start = System.currentTimeMillis();
@@ -145,18 +139,13 @@ public class InquiryForBuyerController {
      * @param inquiry 询价信息
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     public PurcInquiry saveInquiry(@RequestBody PurcInquiry inquiry) throws Exception {
         long start = System.currentTimeMillis();
         log.info("/inquiry/buyer/save post, 新增公共询价信息,  inquiry: {}",  JSON.toJSON(inquiry));
         inquiry = inquiryService.saveInquiry(inquiry);
         log.info("/inquiry/buyer/save post, 耗时: {}", (System.currentTimeMillis() - start));
-        if (null != inquiry.getId()) {
-            return inquiry;
-        } else {
-            throw new Exception("保存失败");
-        }
+        return inquiry;
     }
 
     /**
@@ -167,7 +156,6 @@ public class InquiryForBuyerController {
      * @return
      * @throws Exception
      */
-    @HttpLog
     @RequestMapping(value = "/decide", method = RequestMethod.POST)
     public void decideQuote(Long id, Short status, Long enuu, Long useruu) throws Exception {
         long start = System.currentTimeMillis();
@@ -184,7 +172,6 @@ public class InquiryForBuyerController {
      * @return
      * @throws Exception
      */
-    @HttpLog
     @RequestMapping(value = "/adopt", method = RequestMethod.POST)
     public void adoptQuote(Long id, Short status, Long enuu, Long useruu) throws Exception {
         long start = System.currentTimeMillis();
@@ -202,7 +189,6 @@ public class InquiryForBuyerController {
      * @return
      * @throws Exception
      */
-    @HttpLog
     @RequestMapping(value = "/refuse", method = RequestMethod.POST)
     public void refuseQuote(Long id, Short status, Long enuu, Long useruu,String refusereason) throws Exception {
         long start = System.currentTimeMillis();

+ 1 - 23
src/main/java/com/uas/ps/inquiry/controller/InquiryForSaleController.java

@@ -3,7 +3,6 @@ package com.uas.ps.inquiry.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.ps.core.page.exception.IllegalOperatorException;
-import com.uas.ps.httplog.annotation.HttpLog;
 import com.uas.ps.inquiry.domain.IPage;
 import com.uas.ps.inquiry.entity.InquirySource;
 import com.uas.ps.inquiry.model.*;
@@ -46,23 +45,14 @@ public class InquiryForSaleController {
      * 后续统一使用
      * @param publicInquiryItem 报价单内容
      * @return
-     * @throws Exception
      */
-    @HttpLog
     @RequestMapping(value = "/item/saveQuote", method = RequestMethod.POST)
-    public ModelMap saveQuote(@RequestBody PublicInquiryItem publicInquiryItem) throws Exception {
+    public ModelMap saveQuote(@RequestBody PublicInquiryItem publicInquiryItem) {
         Long start = System.currentTimeMillis();
         log.info("/inquiry/sale/item/saveQuote post,保存报价接口, publciInquiryItem: {}", JSON.toJSON(publicInquiryItem));
         ModelMap result = saleService.saveQuote(publicInquiryItem);
         log.info("/inquiry/sale/item/saveQuote post, 耗时: {}", (System.currentTimeMillis() - start));
         publicInquiryService.ReceiveMessage(publicInquiryItem, InquirySource.MALL.name());
-//        if (null != item) {
-//            PublicInquiry inquiry = item.getInquiry();
-//            inquiry.setQuteId(item.getId());
-//            return JSON.toJSONString(inquiry);
-//        } else {
-//            throw new Exception("保存失败");
-//        }
         return result;
     }
 
@@ -72,7 +62,6 @@ public class InquiryForSaleController {
      * @param itemId 已转报价的明细id
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/inquiry/detail", method = RequestMethod.GET)
     public PublicInquiryItem findById(Long itemId, Long en_uu) throws IllegalAccessException {
         long start = System.currentTimeMillis();
@@ -89,7 +78,6 @@ public class InquiryForSaleController {
      * @param enuu 企业UU号
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/publicInquiry/detail", method = RequestMethod.GET)
     public ModelMap findInquiryById(Long id, Long enuu) {
         long start = System.currentTimeMillis();
@@ -106,7 +94,6 @@ public class InquiryForSaleController {
      * @return
      * @throws Exception
      */
-    @HttpLog
     @RequestMapping(value = "/attach", method = RequestMethod.POST)
     public String addAttachs(@RequestBody Attach attach) throws Exception {
         long start = System.currentTimeMillis();
@@ -130,7 +117,6 @@ public class InquiryForSaleController {
      * @throws Exception
      */
     @Deprecated
-    @HttpLog
     @RequestMapping(value = "/renew", method = RequestMethod.POST)
     public String saveItem(@RequestBody PublicInquiryItem inquiryItem) throws Exception {
         long start = System.currentTimeMillis();
@@ -147,7 +133,6 @@ public class InquiryForSaleController {
      * @param en_uu 当前企业UU
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/quote", method = RequestMethod.GET)
     public PublicInquiryItem findBySourceId(Long id, Long en_uu) {
         long start = System.currentTimeMillis();
@@ -166,7 +151,6 @@ public class InquiryForSaleController {
      * @param searchFilter 过滤条件
      * @return page<T>
      */
-    @HttpLog
     @RequestMapping(value = "/remind", method = RequestMethod.GET)
     public IPage<InquiryRemind> findByUserInfo(Long useruu, Long enuu, PageInfo pageInfo, SearchFilter searchFilter) {
         long start = System.currentTimeMillis();
@@ -191,7 +175,6 @@ public class InquiryForSaleController {
      * @param searchFilter
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/enremind", method = RequestMethod.GET)
     public IPage<InquiryEnRemind> findEnRemind(Long useruu, Long enuu, PageInfo pageInfo, SearchFilter searchFilter) {
         long start = System.currentTimeMillis();
@@ -213,7 +196,6 @@ public class InquiryForSaleController {
      * @param enRemindId
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/allot/enremind", method = RequestMethod.POST)
     public ModelMap allotEnRemind(Long userUU, Long enRemindId) {
         long start = System.currentTimeMillis();
@@ -231,7 +213,6 @@ public class InquiryForSaleController {
      * @param itemId
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/allot/inquiry", method = RequestMethod.POST)
     public ModelMap allotInquiry(Long userUU, Long enUU, Long itemId) {
         long start = System.currentTimeMillis();
@@ -253,7 +234,6 @@ public class InquiryForSaleController {
      * @return
      */
     @Deprecated
-    @HttpLog
     @RequestMapping(value = "/mobile/quote", method = RequestMethod.POST)
     public ModelMap quote(Long inquiryItemId, Long en_uu, Long useruu, Long leadtime, Double minPackQty, Double minOrderQty, String replies, String currency, Float taxrate) throws Exception {
         long start = System.currentTimeMillis();
@@ -275,7 +255,6 @@ public class InquiryForSaleController {
      * @return
      */
     @Deprecated
-    @HttpLog
     @RequestMapping(value = "/item/add", method = RequestMethod.POST)
     public String saveInquiryItem(@RequestBody PublicInquiryItem item) throws Exception {
         long start = System.currentTimeMillis();
@@ -297,7 +276,6 @@ public class InquiryForSaleController {
      *   报价后续统一调用  /item/saveQuote 2018年7月10日 之后不在维护
      */
     @Deprecated
-    @HttpLog
     @RequestMapping(value = "/item/save", method = RequestMethod.POST)
     public String saveInquiryItems(@RequestBody PublicInquiryItem item) throws Exception {
         long start = System.currentTimeMillis();

+ 0 - 2
src/main/java/com/uas/ps/inquiry/controller/PostDataController.java

@@ -1,7 +1,6 @@
 package com.uas.ps.inquiry.controller;
 
 import com.alibaba.fastjson.JSONObject;
-import com.uas.ps.httplog.annotation.HttpLog;
 import com.uas.ps.inquiry.entity.MessageModel;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -24,7 +23,6 @@ public class PostDataController {
      * @param model
      * @return
      */
-    @HttpLog
     @RequestMapping(method = RequestMethod.POST)
     public ModelMap getPostInfo(@RequestBody MessageModel model) {
         return new ModelMap("info", JSONObject.toJSON(model));

+ 30 - 5
src/main/java/com/uas/ps/inquiry/controller/PublicApiController.java

@@ -1,6 +1,5 @@
 package com.uas.ps.inquiry.controller;
 
-import com.uas.ps.httplog.annotation.HttpLog;
 import com.uas.ps.inquiry.service.PublicInquiryService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -11,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Date;
+import java.util.HashMap;
 
 /**
  * 询价服务供其他应用调用的接口
@@ -34,7 +34,6 @@ public class PublicApiController {
      * @param endtime  结束时间
      * @return 数量结果
      */
-    @HttpLog
     @RequestMapping(value = "/sum/publish/personal", method = RequestMethod.GET)
     public ModelMap sumPersonalPublish(Long enuu, Long useruu, Long starttime, Long endtime) {
         long start = System.currentTimeMillis();
@@ -52,7 +51,6 @@ public class PublicApiController {
      * @param endtime  结束时间
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/sum/publish/enterprise", method = RequestMethod.GET)
     public ModelMap sumEnterprisePublish(Long enuu, Long starttime, Long endtime) {
         long start = System.currentTimeMillis();
@@ -71,7 +69,6 @@ public class PublicApiController {
      * @param endtime  结束时间
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/sum/reply/personal", method = RequestMethod.GET)
     public ModelMap sumPersonalReply(Long enuu, Long useruu, Long starttime, Long endtime) {
         long start = System.currentTimeMillis();
@@ -89,7 +86,6 @@ public class PublicApiController {
      * @param endtime  结束时间
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/sum/reply/enterprise", method = RequestMethod.GET)
     public ModelMap sumEnterpriseReply(Long enuu, Long starttime, Long endtime) {
         long start = System.currentTimeMillis();
@@ -99,4 +95,33 @@ public class PublicApiController {
         log.info("/api/sum/reply/enterprise get 耗时: {}", (System.currentTimeMillis() - start));
         return map;
     }
+
+    /**
+     * 获取今天和昨天的询价和报价统计
+     * @param time 时间
+     * @return 统计结果
+     */
+    @RequestMapping(value = "/sum/all/time", method = RequestMethod.GET)
+    public HashMap<String, Object> sumRecentPublishWithTime(Long time) throws Exception {
+        long start = System.currentTimeMillis();
+        log.info("/api/sum/publish/time get 参数:time{}", new Date(time));
+        HashMap<String, Object> map = publicInquiryService.sumRecentPublishWithTime(time);
+        log.info("/api/sum/publish/time get 耗时: {}", (System.currentTimeMillis() - start));
+        return map;
+    }
+
+    /**
+     * 获取区间时间内的询价和报价统计
+     * @param starttime 起始时间
+     * @param endtime 起始时间
+     * @return 统计结果
+     */
+    @RequestMapping(value = "/sum/all/scope", method = RequestMethod.GET)
+    public ModelMap sumPublishWithTimeScope(Long starttime, Long endtime) throws Exception {
+        long start = System.currentTimeMillis();
+        log.info("/api/sum/publish/scope get 参数:starttime{}, endtime:{}", new Date(starttime), new Date(endtime));
+        ModelMap map = publicInquiryService.sumPublishWithTimeScope(starttime, endtime);
+        log.info("/api/sum/publish/scope get 耗时: {}", (System.currentTimeMillis() - start));
+        return map;
+    }
 }

+ 0 - 14
src/main/java/com/uas/ps/inquiry/controller/PublicInquiryController.java

@@ -3,7 +3,6 @@ package com.uas.ps.inquiry.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.ps.entity.Status;
-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.InquiryMessage;
@@ -66,7 +65,6 @@ public class PublicInquiryController {
      * @author hejq
      * @date 2018-01-17 10:27
      */
-    @HttpLog
     @RequestMapping(method = RequestMethod.GET)
     public IPage<PurcInquiryItemInfo> getInquiry(PageInfo pageInfo, SearchFilter searchFilter, String distributes) {
         long start = System.currentTimeMillis();
@@ -94,7 +92,6 @@ public class PublicInquiryController {
      * @param searchFilter 过滤条件
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/inquiryList", method = RequestMethod.GET)
     public IPage<PurcInquiryItemInfo> getInquiryList(PageInfo pageInfo, SearchFilter searchFilter) {
         long start = System.currentTimeMillis();
@@ -121,7 +118,6 @@ public class PublicInquiryController {
      * @author hejq
      * @date 2018-01-18 15:36
      */
-    @HttpLog
     @RequestMapping(value = "/quotation/list", method = RequestMethod.GET)
     public IPage<PublicInquiryItemInfo> getQuotation(PageInfo pageInfo, String filter, String _state, Short overdue) {
         long start = System.currentTimeMillis();
@@ -153,7 +149,6 @@ public class PublicInquiryController {
      * @param id
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/quotation/one", method = RequestMethod.GET)
     public PublicInquiryItemInfo getQuotationById(Long id, Long enuu, Long useruu) throws AccessException {
         long start = System.currentTimeMillis();
@@ -175,7 +170,6 @@ public class PublicInquiryController {
      * @param _state
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/quotationList", method = RequestMethod.GET)
     public Page<PublicInquiryItemInfo> getQuotationList(PageInfo pageInfo, String filter, String _state, Short overdue) {
         long start = System.currentTimeMillis();
@@ -197,7 +191,6 @@ public class PublicInquiryController {
      * @param size 大小
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/messageList", method = RequestMethod.GET)
     public List<InquiryMessage> getList(Long enuu, Integer size) {
         long start = System.currentTimeMillis();
@@ -218,7 +211,6 @@ public class PublicInquiryController {
      * @author hejq
      * @date 2018-01-14 15:20
      */
-    @HttpLog
     @RequestMapping(value = "/turntoInquiry", method = RequestMethod.POST)
     private ModelMap transtoInquiry(Long id, Long enuu, Long useruu) {
         long start = System.currentTimeMillis();
@@ -235,7 +227,6 @@ public class PublicInquiryController {
      * @param id 附件id
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/attachUrl", method = RequestMethod.GET)
     public com.uas.ps.inquiry.model.Attach getAttach(Long id) {
         long start = System.currentTimeMillis();
@@ -252,7 +243,6 @@ public class PublicInquiryController {
      * @param id 主表id
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/findInquiryById", method = RequestMethod.GET)
     public PurcInquiry findById(Long id, Long enuu) {
         long start = System.currentTimeMillis();
@@ -269,7 +259,6 @@ public class PublicInquiryController {
      *
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/findCodeRankingList", method = RequestMethod.GET)
     public List<Map<String, Object>> findCodeRankingList() {
         long start = System.currentTimeMillis();
@@ -286,7 +275,6 @@ public class PublicInquiryController {
      * @param enuu   enuu
      * @return
      */
-    @HttpLog
     @RequestMapping(value = "/findItemByItemId", method = RequestMethod.GET)
     public PurcInquiryItemInfo findItemByItemId(Long itemId, Long enuu) {
         long start = System.currentTimeMillis();
@@ -389,7 +377,6 @@ public class PublicInquiryController {
      * @return
      */
     @Deprecated
-    @HttpLog
     @RequestMapping(value = "/mobile", method = RequestMethod.GET)
     public ModelMap publincInquiry(Integer page, Integer size, Long en_uu, String _state,
                                    String keyword, String user_tel, Long fromDate, Long endDate) {
@@ -471,7 +458,6 @@ public class PublicInquiryController {
      * @return
      */
     @Deprecated
-    @HttpLog
     @RequestMapping(value = "/mobile/v2", method = RequestMethod.GET)
     public ModelMap publicInquiry(Integer page, Integer size, Long en_uu, String _state,
                                   String keyword, String user_tel, Long fromDate, Long endDate) {

+ 36 - 0
src/main/java/com/uas/ps/inquiry/dao/PublicInquiryItemDao.java

@@ -163,4 +163,40 @@ public interface PublicInquiryItemDao extends JpaRepository<PublicInquiryItem, L
      */
     @Query(value = "select sum(sumprice) from (select min(id_sumprice) as sumprice from public$inquiryitems,(select min(id_leadtime) as leadtime,id_sourceid as sourceid from public$inquiryitems where id_sourceid in :itemIds group by id_sourceid) a where id_sourceid = a.sourceid and id_leadtime = a.leadtime group by id_sourceid) b", nativeQuery = true)
     Double getMinDeliverySumBySourceId(@Param("itemIds") Long[] itemIds);
+
+    /**
+     * 根据上周最后注册用户UU获取老用户报价数量
+     * @param userUU  上周最后注册用户uu
+     * @param dateParams 日期
+     * @return 查询结果
+     */
+    @Query(value = "select count(1) from public$inquiryitems where date(id_date) = :dateParams and id_venduseruu <= :userUU", nativeQuery = true)
+    Integer sumOldReplyCountByUserUUAndDate(@Param("userUU")Integer userUU, @Param("dateParams")String dateParams);
+
+    /**
+     * 根据上周最后注册用户UU获取老用户报价数量
+     * @param dateParams 日期
+     * @return 查询结果
+     */
+    @Query(value = "select count(1) from public$inquiryitems where date(id_date) = :dateParams ", nativeQuery = true)
+    Integer sumReplyCountByDate(@Param("dateParams")String dateParams);
+
+    /**
+     * 日期区间内,老客户的报价数量
+     * @param startDate 开始时间 yyyy-MM-dd
+     * @param endDate 结束时间 yyyy-MM-dd
+     * @param userUU 上周注册最大用户UU
+     * @return 查询结果
+     */
+    @Query(value = "select count(1) from public$inquiryitems where date(id_date) between :startDate and :endDate and id_venduseruu <= :userUU", nativeQuery = true)
+    Integer sumOldReplyCountWithDateScope(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("userUU") Integer userUU);
+
+    /**
+     * 日期区间内,所有报价价数量
+     * @param startDate 开始时间 yyyy-MM-dd
+     * @param endDate 结束时间 yyyy-MM-dd
+     * @return 查询结果
+     */
+    @Query(value = "select count(1) from public$inquiryitems where date(id_date) between :startDate and :endDate", nativeQuery = true)
+    Integer sumReplyCountWithTimeScope(@Param("startDate") String startDate, @Param("endDate") String endDate);
 }

+ 35 - 0
src/main/java/com/uas/ps/inquiry/dao/PurcInquiryItemDao.java

@@ -124,4 +124,39 @@ public interface PurcInquiryItemDao extends JpaSpecificationExecutor<PurcInquiry
     @Query(value = "select count(1) from public$inquiryitems where id_venduu = :enuu and id_offertime between :starttime and :endtime", nativeQuery = true)
     Integer sumEnterpriseReply(@Param("enuu") Long enuu, @Param("starttime") Date starttime, @Param("endtime")Date endtime);
 
+    /**
+     * 根据上周最后注册用户UU获取老用户询价数量
+     * @param userUU  上周最后注册用户uu
+     * @param dateParams 日期
+     * @return 查询结果
+     */
+    @Query(value = "select count(1) from (select 1 from purc$puinquiryitems where date(id_date) = :dateParams and id_useruu <= :userUU group by id_inbrand, id_cmpcode) a", nativeQuery = true)
+    Integer sumOldInquiryCountByUserUUAndDate(@Param("userUU") Integer userUU, @Param("dateParams") String dateParams);
+
+    /**
+     * 根据日期内获取所有询价数量
+     * @param dateParams 日期
+     * @return 查询结果
+     */
+    @Query(value = "select count(1) from (select 1 from purc$puinquiryitems where date(id_date) = :dateParams group by id_inbrand, id_cmpcode) a", nativeQuery = true)
+    Integer sumInquiryCountByDate(@Param("dateParams") String dateParams);
+
+    /**
+     * 日期区间内,老客户的询价数量
+     * @param startDate 开始时间 yyyy-MM-dd
+     * @param endDate 结束时间 yyyy-MM-dd
+     * @param userUU  上周注册用户最大UU
+     * @return 查询结果
+     */
+    @Query(value = "select count(1) from (select 1 from purc$puinquiryitems where date(id_date) between :startDate and :endDate and id_useruu <= :userUU group by id_inbrand, id_cmpcode) a", nativeQuery = true)
+    Integer sumOldInquiryCountWithDateScope(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("userUU") Integer userUU);
+
+    /**
+     * 日期区间内,所有询价数量
+     * @param startDate 开始时间 yyyy-MM-dd
+     * @param endDate 结束时间 yyyy-MM-dd
+     * @return 查询结果
+     */
+    @Query(value = "select count(1) from (select 1 from purc$puinquiryitems where date(id_date) between :startDate and :endDate group by id_inbrand, id_cmpcode) a", nativeQuery = true)
+    Integer sumInquiryCountWithTimeScope(@Param("startDate") String startDate, @Param("endDate") String endDate);
 }

+ 22 - 0
src/main/java/com/uas/ps/inquiry/model/Attach.java

@@ -3,6 +3,7 @@ package com.uas.ps.inquiry.model;
 import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.Objects;
 
 /**
  * 附件
@@ -127,6 +128,27 @@ public class Attach implements Serializable {
         this.date = date;
     }
 
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        Attach attach = (Attach) o;
+        return Objects.equals(id, attach.id) &&
+                Objects.equals(path, attach.path) &&
+                Objects.equals(description, attach.description) &&
+                Objects.equals(name, attach.name) &&
+                Objects.equals(size, attach.size) &&
+                Objects.equals(relatedTable, attach.relatedTable) &&
+                Objects.equals(relatedKey, attach.relatedKey) &&
+                Objects.equals(date, attach.date);
+    }
+
+    @Override
+    public int hashCode() {
+
+        return Objects.hash(id, path, description, name, size, relatedTable, relatedKey, date);
+    }
+
     @Override
     public String toString() {
         return "Attach{" +

+ 1 - 1
src/main/java/com/uas/ps/inquiry/model/PublicInquiryItem.java

@@ -1065,7 +1065,7 @@ public class PublicInquiryItem implements Serializable {
 							&& (this.inquiry.getCheck() == null || this.inquiry.getCheck() != Constant.YES)
 							&& this.agreed == null) && this.erpstatus != Constant.NO);
 		}
-		return null != this.status && (this.status == Status.NOT_REPLY.value() || (this.status == Status.REPLIED.value()
+		return null != status && (this.status == Status.NOT_REPLY.value() || (this.status == Status.REPLIED.value()
 				&& (null != this.inquiry && (this.inquiry.getCheck() == null || this.inquiry.getCheck() != Constant.YES))
 				&& this.agreed == null) && this.erpstatus != Constant.NO);
 	}

+ 18 - 0
src/main/java/com/uas/ps/inquiry/service/PublicInquiryService.java

@@ -9,6 +9,7 @@ import javassist.NotFoundException;
 import org.springframework.data.domain.Page;
 import org.springframework.ui.ModelMap;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -397,5 +398,22 @@ public interface PublicInquiryService {
      * @return 查询结果
      */
     ModelMap sumEnterpriseReply(Long enuu, Long starttime, Long endtime);
+
+    /**
+     * 获取今天和昨天的询价和报价统计
+     * @param time 时间
+     * @return 统计结果
+     * @exception Exception 接口异常
+     */
+    HashMap<String, Object> sumRecentPublishWithTime(Long time) throws Exception;
+
+    /**
+     * 获取区间时间内的询价和报价统计
+     * @param starttime 起始时间
+     * @param endtime 起始时间
+     * @return 统计结果
+     * @exception Exception 接口异常
+     */
+    ModelMap sumPublishWithTimeScope(Long starttime, Long endtime) throws Exception;
 }
 

+ 66 - 79
src/main/java/com/uas/ps/inquiry/service/impl/InquiryForSaleServiceImpl.java

@@ -250,7 +250,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
                 }
                 inquiry = inquiryDao.save(inquiry);
 
-                PublicInquiryItem item = SaveInquiryItems(inquiry, inquiryItem);
+                PublicInquiryItem item = saveInquiryItems(inquiry, inquiryItem);
                 // 报价成功后保存到个人物料库中
                 if (null != item && !StringUtils.isEmpty(item.getInbrand()) && !StringUtils.isEmpty(item.getCmpCode())) {
                     saveInquiryItemProduct(item);
@@ -258,7 +258,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
                 return item;
             } else {// 插入
                 inquiry = saleInquiries.get(0);
-                PublicInquiryItem item = SaveInquiryItems(inquiry, inquiryItem);
+                PublicInquiryItem item = saveInquiryItems(inquiry, inquiryItem);
                 // 报价成功后保存到个人物料库中
                 if (null != item && !StringUtils.isEmpty(item.getInbrand()) && !StringUtils.isEmpty(item.getCmpCode())) {
                     saveInquiryItemProduct(item);
@@ -287,7 +287,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
         product.setSourceApp(inquiryItem.getQutoApp());
         product.setSpec(StringUtils.isEmpty(inquiryItem.getSpec()) ? inquiryItem.getCmpCode() : inquiryItem.getSpec());
         product.setKind(inquiryItem.getProdTitle());
-        product.setSpec((inquiryItem.getSpec() == null || inquiryItem.getSpec().equals("")) ? inquiryItem.getCmpCode() : inquiryItem.getSpec());
+        product.setSpec((inquiryItem.getSpec() == null || "".equals(inquiryItem.getSpec())) ? inquiryItem.getCmpCode() : inquiryItem.getSpec());
         // 调用公共物料服务的接口
         try {
             String url = PS_PRODUCT_URL + "/product/save/inquiry";
@@ -299,7 +299,6 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
             long start = System.currentTimeMillis();
             String res = HttpUtil.doPost(url, FlexJsonUtils.toJsonDeep(product));
             log.info("/product/save/inquiry 耗时:{}", (System.currentTimeMillis() - start));
-            log.info("替代料报价,添加替代物料返回{}", res);
             JSONObject result = JSONObject.parseObject(res);
             Boolean success = (Boolean) result.get("success");
             if (success) {
@@ -310,7 +309,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
         } catch (Exception e) {
             log.info("/product/save/inquiry 报价成功后保存到个人物料库中 出错:{}", e.getMessage());
             e.printStackTrace();
-            String reason = e.getMessage().length() > 10 ? e.getMessage().substring(0, 999).concat("") : e.getMessage();
+            String reason = e.getMessage().length() > 999 ? e.getMessage().substring(0, 999).concat("") : e.getMessage();
             log.info("报价成功后保存到个人物料库,保存报价id【{}】到个人物料库失败,原因:{},UserUU:{}, EnUU:{},保存询价的应用:{}", inquiryItem.getId(), reason, product.getUserUU(), product.getEnUU(), inquiryItem.getSource());
         }
     }
@@ -322,7 +321,37 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
      * @return
      * @throws Exception
      */
-    private PublicInquiryItem SaveInquiryItems(PublicInquiry inquiry, PublicInquiryItem inquiryItem) throws Exception {
+    private PublicInquiryItem saveInquiryItems(PublicInquiry inquiry, PublicInquiryItem inquiryItem) {
+        long start = System.currentTimeMillis();
+        // 设置报价明细信息
+        setPublicInquiryItemWithInquiry(inquiry, inquiryItem);
+
+        inquiryItem = infoDao.save(inquiryItem);
+        System.out.println("save publicInquiryItem耗时:" + (System.currentTimeMillis() - start));
+        start = System.currentTimeMillis();
+
+        // 更新原表的报价条数
+        purcInquiryItemDao.updateAmount(inquiryItem.getSourceId(), 1);
+        System.out.println("更新报价条数耗时:" + (System.currentTimeMillis() - start));
+        start = System.currentTimeMillis();
+
+        // 更新推荐表中的相关信息
+        remindDao.updateStatus(inquiryItem.getId(), inquiryItem.getSourceId(), Status.SUBMITTED.value(), inquiryItem.getVendUU());
+        System.out.println("更新个人推荐耗时:" + (System.currentTimeMillis() - start));
+        start = System.currentTimeMillis();
+
+        // 更新企业推荐中的相关信息
+        inquiryEnRemindDao.updateStatus(inquiryItem.getId(), inquiryItem.getSourceId(), Status.SUBMITTED.value(), inquiryItem.getVendUU());
+        System.out.println("更新企业推荐耗时:" + (System.currentTimeMillis() - start));
+        return inquiryItem;
+    }
+
+    /**
+     * 设置报价明细信息
+     * @param inquiry  报价单
+     * @param inquiryItem  报价明细
+     */
+    private void setPublicInquiryItemWithInquiry(PublicInquiry inquiry, PublicInquiryItem inquiryItem) {
         // 计算合计价格 dongbw  2018年9月5日 15:08:24  bom求购明细价格分析需要
         Double sumPrice = 0d;
         Double needQty = null != inquiryItem.getNeedquantity() ? inquiryItem.getNeedquantity() : 1;
@@ -345,59 +374,35 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
             sumPrice = maxPrice * needQty;
         }
         inquiryItem.setSumPrice(sumPrice);
-        long start = System.currentTimeMillis();
-        Set<PublicInquiryItem> items = new HashSet<PublicInquiryItem>();
         int number = 1;
         if (null != inquiryItem.getInquiry() && null != inquiryItem.getInquiry().getId()) {
             number = infoDao.countByInquiryId(inquiryItem.getInquiry().getId()) + 1;
         }
-        if (null != inquiryItem) {
-            Enterprise enterprise = enterpriseDao.findOne(inquiryItem.getVendUU());
-            if (null != inquiryItem.getProduct()) {
-                inquiryItem.setProdTitle(inquiryItem.getProduct().getTitle());
-                inquiryItem.setSpec(inquiryItem.getProduct().getSpec());
-                inquiryItem.setInbrand(inquiryItem.getProduct().getBrand());
-                inquiryItem.setProdCode(inquiryItem.getProduct().getCode());
-            }
-            inquiryItem.setVendName(enterprise.getEnName());
-            if (StringUtils.isEmpty(inquiryItem.getEndDate())) {
-                inquiryItem.setEndDate(inquiry.getEndDate());
-            }
-            inquiryItem.setBusinessCode(enterprise.getBusinesscode());
-            inquiryItem.setDate(inquiry.getDate());
-            inquiryItem.setOfferTime(new Date(System.currentTimeMillis()));
-            inquiryItem.setInquiry(inquiry);
-            inquiryItem.setNumber((short) number);
-            inquiryItem.setCustLap(Constant.NO);
-            inquiryItem.setSendStatus((short) Status.NOT_UPLOAD.value());
-            inquiryItem.setSourceId(inquiryItem.getId());
-            inquiryItem.setId(null);
-            inquiryItem.setStatus((short) Status.REPLIED.value());
-            inquiryItem.setBackStatus((short) Status.NOT_UPLOAD.value());
-            inquiryItem.setReplySendStatus((short) Status.NOT_UPLOAD.value());
-            // 将采纳状态设置成申请状态,方便过滤
-            inquiryItem.setDecideStatus((short) Status.UNAUDIT.value());
-            items.add(inquiryItem);
-        }
-        final List<PublicInquiryItem> publicInquiryItems = infoDao.save(items);
-        System.out.println("save publicInquiryItem耗时:" + (System.currentTimeMillis() - start));
-        start = System.currentTimeMillis();
-        // 更新原表的报价条数
-        purcInquiryItemDao.updateAmount(publicInquiryItems.get(0).getSourceId(), publicInquiryItems.size());
-        System.out.println("更新报价条数耗时:" + (System.currentTimeMillis() - start));
-        start = System.currentTimeMillis();
-        // 更新推荐表中的相关信息
-        remindDao.updateStatus(publicInquiryItems.get(0).getId(), inquiryItem.getSourceId(), Status.SUBMITTED.value(), inquiryItem.getVendUU());
-        System.out.println("更新个人推荐耗时:" + (System.currentTimeMillis() - start));
-        start = System.currentTimeMillis();
-        // 更新企业推荐中的相关信息
-        inquiryEnRemindDao.updateStatus(publicInquiryItems.get(0).getId(), inquiryItem.getSourceId(), Status.SUBMITTED.value(), inquiryItem.getVendUU());
-        System.out.println("更新企业推荐耗时:" + (System.currentTimeMillis() - start));
-        if (publicInquiryItems.get(0).getId() != null) {
-            return publicInquiryItems.get(0);
-        } else {
-            throw new Exception("转询价报价单失败");
+        Enterprise enterprise = enterpriseDao.findOne(inquiryItem.getVendUU());
+        if (null != inquiryItem.getProduct()) {
+            inquiryItem.setProdTitle(inquiryItem.getProduct().getTitle());
+            inquiryItem.setSpec(inquiryItem.getProduct().getSpec());
+            inquiryItem.setInbrand(inquiryItem.getProduct().getBrand());
+            inquiryItem.setProdCode(inquiryItem.getProduct().getCode());
         }
+        inquiryItem.setVendName(enterprise.getEnName());
+        if (StringUtils.isEmpty(inquiryItem.getEndDate())) {
+            inquiryItem.setEndDate(inquiry.getEndDate());
+        }
+        inquiryItem.setBusinessCode(enterprise.getBusinesscode());
+        inquiryItem.setDate(inquiry.getDate());
+        inquiryItem.setOfferTime(new Date(System.currentTimeMillis()));
+        inquiryItem.setInquiry(inquiry);
+        inquiryItem.setNumber((short) number);
+        inquiryItem.setCustLap(Constant.NO);
+        inquiryItem.setSendStatus((short) Status.NOT_UPLOAD.value());
+        inquiryItem.setSourceId(inquiryItem.getId());
+        inquiryItem.setId(null);
+        inquiryItem.setStatus((short) Status.REPLIED.value());
+        inquiryItem.setBackStatus((short) Status.NOT_UPLOAD.value());
+        inquiryItem.setReplySendStatus((short) Status.NOT_UPLOAD.value());
+        // 将采纳状态设置成申请状态,方便过滤
+        inquiryItem.setDecideStatus((short) Status.UNAUDIT.value());
     }
 
     /**
@@ -508,7 +513,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
             inquiry = inquiryDao.save(inquiry);
             inquiryItem.setVendUU(enuu);
             inquiryItem.setVendUserUU(useruu);
-            inquiryItem = SaveInquiryItems(inquiry, inquiryItem);
+            inquiryItem = saveInquiryItems(inquiry, inquiryItem);
             if (null != inquiryItem.getId()) {
                 map.put("content", inquiryItem.getId());
             } else {
@@ -526,7 +531,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
                 inquiryItem.setOfferTime(new Date(System.currentTimeMillis()));
                 inquiryItem.setVendUU(enuu);
                 inquiryItem.setVendUserUU(useruu);
-                inquiryItem = SaveInquiryItems(inquiry, inquiryItem);
+                inquiryItem = saveInquiryItems(inquiry, inquiryItem);
                 if (null != inquiryItem.getId()) {
                     map.put("content", inquiryItem.getId());
                 } else {
@@ -749,7 +754,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
             return result;
         }
         // 验证是否重复
-        if (validateRepeat(publicInquiryItem, result)) {
+        if (validateRepeat(publicInquiryItem, result, itemId)) {
             return result;
         }
 
@@ -763,8 +768,8 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
         return replyInquiry(result, inquiry, inquiryItem);
     }
 
-    private boolean validateRepeat(PublicInquiryItem publicInquiryItem, ModelMap result) {
-        PublicInquiryItem existInquiry = infoDao.findByVendUUAndSourceId(publicInquiryItem.getVendUU(), publicInquiryItem.getId());
+    private boolean validateRepeat(PublicInquiryItem publicInquiryItem, ModelMap result, Long itemId) {
+        PublicInquiryItem existInquiry = infoDao.findByVendUUAndSourceId(publicInquiryItem.getVendUU(), itemId);
         // 是否重复报价
         if (null != existInquiry) {
             result.put("message", "该单据已报价,不能重复报价");
@@ -774,7 +779,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
     }
 
     private boolean validatePurcInquiryItem(PublicInquiryItem publicInquiryItem, ModelMap result, PurcInquiryItemInfo item) {
-        if (StringUtils.isEmpty(item)) {
+        if (null == item) {
             result.put("message", "找不到当前公共询价");
             return true;
         }
@@ -808,7 +813,7 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
     private ModelMap replyInquiry(ModelMap result, PublicInquiry inquiry, PublicInquiryItem inquiryItem) {
         try {
             long start = System.currentTimeMillis();
-            inquiryItem = SaveInquiryItems(inquiry, inquiryItem);
+            inquiryItem = saveInquiryItems(inquiry, inquiryItem);
             System.out.println("报价总耗时:" + (System.currentTimeMillis() - start));
             start = System.currentTimeMillis();
             // 报价成功后保存到个人物料库中
@@ -887,24 +892,6 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
         inquiryItem.setReplaceBrand(publicInquiryItem.getReplaceBrand());
         inquiryItem.setReplaceSpec(publicInquiryItem.getReplaceSpec());
         inquiryItem.setIsReplace(publicInquiryItem.getIsReplace());
-//        // 计算合计价格 dongbw  2018年9月5日 15:08:24  bom求购明细价格分析需要
-//        Double sumPrice = 0d;
-//        Double needQty = inquiryItem.getNeedquantity();
-//        List<PublicInquiryReply> replies = inquiryItem.getReplies();
-//        for (int i = 0; i < replies.size(); i++) {
-//            needQty = needQty - replies.get(i).getLapQty();
-//            if (needQty > 0) {
-//                if (i == 0) {
-//                    sumPrice += replies.get(i).getPrice() * replies.get(i).getLapQty();
-//                } else {
-//                    sumPrice += replies.get(i).getPrice() * (replies.get(i).getLapQty() - replies.get(i - 1).getLapQty());
-//                }
-//            } else {
-//                sumPrice += replies.get(i).getPrice() * needQty;
-//                break;
-//            }
-//        }
-//        inquiryItem.setSumPrice(sumPrice);
         return inquiryItem;
     }
 

+ 30 - 11
src/main/java/com/uas/ps/inquiry/service/impl/InquiryServiceImpl.java

@@ -93,6 +93,17 @@ public class InquiryServiceImpl implements InquiryService {
     private final String INQUIRY_TYPE_SELLER_MALL = "MALL跳转卖家待报价页面";
 
 
+    /**
+     * 是有效状态
+     */
+    private static final Integer IS_VALID = 1;
+
+    /**
+     * 初始化已报价数
+     */
+    private static final Integer INITIALISE_AMOUNT = 0;
+
+
     /**
      * 询价统计通知发送人UU
      */
@@ -240,8 +251,9 @@ public class InquiryServiceImpl implements InquiryService {
      *
      * @param currentInquiry 询价信息
      */
+    @Transactional(rollbackFor = Exception.class)
     @Override
-    public PurcInquiry saveInquiry(PurcInquiry currentInquiry) throws NotFoundException {
+    public PurcInquiry saveInquiry(PurcInquiry currentInquiry) throws NotFoundException,RuntimeException {
         // amount,code,date设置
         if (StringUtils.isEmpty(currentInquiry.getAmount())) {
             currentInquiry.setAmount(currentInquiry.getInquiryItems().size());
@@ -249,17 +261,20 @@ public class InquiryServiceImpl implements InquiryService {
         if (StringUtils.isEmpty(currentInquiry.getCode())) {
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddsss");
             try {
-                currentInquiry.setCode("MALL" + sdf.parse(sdf.format(new Date())).getTime() + StringUtil.getRandomNumber(3) + StringUtil.getRandomNumber(3));
+                currentInquiry.setCode(currentInquiry.getSourceapp() + sdf.parse(sdf.format(new Date())).getTime() + StringUtil.getRandomNumber(3) + StringUtil.getRandomNumber(3));
             } catch (ParseException e) {
                 e.printStackTrace();
             }
         }
+        if (null == currentInquiry.getEnUU()) {
+            throw new IllegalOperatorException("未传入询价企业UU");
+        }
         //通过流水号和企业号找到公共询价单
         List<PurcInquiry> existInquiryList = purcInquiryDao.findByCodeAndEnUU(currentInquiry.getCode(), currentInquiry.getEnUU());
         if (!CollectionUtils.isEmpty(existInquiryList)) {
             throw new IllegalOperatorException("单号重复");
         } else {
-            if (null != currentInquiry.getEnUU()) {
+            if (null == currentInquiry.getEnName()) {
                 Enterprise e = enterpriseDao.findOne(currentInquiry.getEnUU());
                 if (null != e) {
                     currentInquiry.setEnName(e.getEnName());
@@ -267,6 +282,8 @@ public class InquiryServiceImpl implements InquiryService {
                     throw new NotFoundException("询价企业不存在");
                 }
             }
+            Date submitDate = new Date(System.currentTimeMillis());
+            currentInquiry.setDate(submitDate);
             //保存询价单
             PurcInquiry inquiry = purcInquiryDao.save(currentInquiry);
             //判断询价明细单是否为空
@@ -275,15 +292,12 @@ public class InquiryServiceImpl implements InquiryService {
                 //给询价明细单属性设置初始值
                 for (PurcInquiryItem item : currentInquiry.getInquiryItems()) {
                     item.setInquiry(inquiry);
-                    item.setValid(1);
-                    item.setOfferAmount(0);
+                    item.setValid(IS_VALID);
+                    item.setOfferAmount(INITIALISE_AMOUNT);
                     item.setStatus((short) Status.NOT_REPLY.value());
                     item.setIsOpen(Constant.YES);
                     item.setEnuu(inquiry.getEnUU());
-                    if (null == item.getDate()) {
-                        //设置提交时间
-                        item.setDate(new Date(System.currentTimeMillis()));
-                    }
+                    item.setDate(submitDate);
                     // 这里设置物料信息的冗余字段
                     if (null != item.getProduct()) {
                         item.setProdTitle(item.getProduct().getTitle());
@@ -292,7 +306,7 @@ public class InquiryServiceImpl implements InquiryService {
                         item.setInbrand(item.getProduct().getBrand());
                         item.setCmpCode(item.getProduct().getCmpCode());
                     }
-                    if (null == item.getCmpCode() || item.getCmpCode().equals("无")) {
+                    if (null == item.getCmpCode() || "无".equals(item.getCmpCode())) {
                         item.setCmpCode(item.getSpec());
                     }
                     if (null == item.getEndDate()) {
@@ -322,7 +336,11 @@ public class InquiryServiceImpl implements InquiryService {
                     });
                 }
             }
-            return inquiry;
+            if (null != inquiry.getId()) {
+                return inquiry;
+            } else {
+                throw new RuntimeException("保存失败");
+            }
         }
     }
 
@@ -359,6 +377,7 @@ public class InquiryServiceImpl implements InquiryService {
             product.setCreateTime(new Date());
             product.setSourceApp(sourceApp);
             product.setSpec(StringUtils.isEmpty(item.getSpec()) ? item.getCmpCode() : item.getSpec());
+            product.setTitle(item.getProdTitle());
             products.add(product);
         }
         // 调用公共物料服务的接口

+ 110 - 2
src/main/java/com/uas/ps/inquiry/service/impl/PublicInquiryServiceImpl.java

@@ -256,6 +256,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                 formData.put("cmpCode", cmpCode);
                 try {
                     long start = System.currentTimeMillis();
+                    log.info("根据企业UU和原厂型号获取个人库记录,enUU:{}, cmpCode:{}", item.getInquiry().getEnUU(), cmpCode);
                     HttpUtil.Response res = HttpUtil.sendGetRequest(url, formData);
                     log.info("/productuser/getProductUsersByEnUUAndCmpCode,耗时:{}", (System.currentTimeMillis() - start));
                     if (res.getStatusCode() == 200) {
@@ -304,7 +305,6 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                                 model.setMailTemplate(MAIL_TEMP_ID);
                                 model.setSmTemplate(SMS_TEMP_ID);
                                 models.add(model);
-//                                log.info("公共询价产生消息", "根据物料型号【{}】查询接收人,关联询价单明细【{}】,UserUU:{},Enuu:{},报价的应用来源:{}", cmpCode, item.getId(), user.getUseruu(), user.getEnuu(), InquirySource.ERP.name());
                             }
                             if (!CollectionUtils.isEmpty(models)) {
                                 sendMessage(models);
@@ -315,7 +315,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                         remindInquiry(item, users);
                     }
                 } catch (Exception e) {
-                    String reason = e.getMessage().length() > 10 ? e.getMessage().substring(0, 1000).concat("") : e.getMessage();
+                    String reason = e.getMessage().length() > 999 ? e.getMessage().substring(0, 999).concat("") : e.getMessage();
                     log.info("公共询价产生消息,根据物料型号【{}】查询接收人失败,id:{},原因:{}, Constant:{}, 报价的应用来源:{}", cmpCode, item.getId(), reason, Constant.UU, InquirySource.ERP.name());
                     e.printStackTrace();
                 }
@@ -446,6 +446,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                     formData.put("enUU", item.getInquiry().getEnUU());
                     formData.put("pCmpCode", item.getCmpCode());
                     long start = System.currentTimeMillis();
+                    log.info("enUU和cmpCode获取其他有相同物料的企业号, enUU:{}, code:{]", item.getInquiry().getEnUU(), item.getCmpCode());
                     HttpUtil.Response res = HttpUtil.sendGetRequest(url, formData);
                     log.info("/product/businessOpportunity , 型号:{}, 耗时:{}", item.getCmpCode(), (System.currentTimeMillis() - start));
                     if (res.getStatusCode() == HttpStatus.OK.value()) {
@@ -1885,4 +1886,111 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
         return map;
     }
 
+    /**
+     * 获取今天和昨天的询价和报价统计
+     *
+     * @param time 时间
+     * @return 统计结果
+     */
+    @Override
+    public HashMap<String, Object> sumRecentPublishWithTime(Long time) throws Exception {
+        HashMap<String, Object> result = new HashMap<>();
+        // 获取上周用户最大uu号
+        ModelMap user = SsoUtils.getLastWeekMaxUU();
+        if (null == user) {
+            throw new RuntimeException("未获取到上周最后注册用户UU");
+        }
+        Integer userUU = (Integer) user.get("content");
+        if (null == userUU) {
+            throw new RuntimeException("获取到上周最后注册用户UU为空");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        // 今天
+        String date = sdf.format(new Date(time));
+        // 昨天
+        String yesterdayString = sdf.format(new Date(time - 1000 * 60 * 60 * 24));
+        // 昨天统计
+        ModelMap yesterday = new ModelMap();
+        // 今天统计
+        ModelMap today = new ModelMap();
+        // 前一天老用户统计
+        Integer yesterdayOldPublish = purcInquiryItemDao.sumOldInquiryCountByUserUUAndDate(userUU, yesterdayString);
+        Integer yesterdayOldReply = publicInquiryItemDao.sumOldReplyCountByUserUUAndDate(userUU, yesterdayString);
+        // 前一天全部
+        Integer yesterdayTotalPublish = purcInquiryItemDao.sumInquiryCountByDate(yesterdayString);
+        Integer yesterdayTotalReply = publicInquiryItemDao.sumReplyCountByDate(yesterdayString);
+        // 日期当天老用户统计
+        Integer todayOldPublish = purcInquiryItemDao.sumOldInquiryCountByUserUUAndDate(userUU, date);
+        Integer todayOldReply = publicInquiryItemDao.sumOldReplyCountByUserUUAndDate(userUU, date);
+        // 日期当天全部
+        Integer todayPublishTotal = purcInquiryItemDao.sumInquiryCountByDate(date);
+        Integer todayTotalReply = publicInquiryItemDao.sumReplyCountByDate(date);
+
+        // 前一天新老用户 发布数量设置
+        yesterday.put("yesterdayOldPublish", yesterdayOldPublish);
+        yesterday.put("yesterdayNewPublish", yesterdayTotalPublish - yesterdayOldPublish);
+        yesterday.put("yesterdayTotalPublish", yesterdayTotalPublish);
+
+        // 前一天新老用户 报价数量设置
+        yesterday.put("yesterdayOldReply", yesterdayOldReply);
+        yesterday.put("yesterdayNewReply", yesterdayTotalReply - yesterdayOldReply);
+        yesterday.put("yesterdayTotalReply", yesterdayTotalReply);
+
+        // 日期当天新老用户 发布和报价数量设置
+        today.put("todayOldPublish", todayOldPublish);
+        today.put("todayNewPublish", todayPublishTotal - todayOldPublish);
+        today.put("todayTotalPublish", todayPublishTotal);
+
+        // 日期当天新老用户 报价数量设置
+        today.put("todayOldReply", todayOldReply);
+        today.put("todayNewReply", todayTotalReply - todayOldReply);
+        today.put("todayTotalReply", todayTotalReply);
+        result.put("yesterday", yesterday);
+        result.put("today", today);
+        return result;
+    }
+
+    /**
+     * 获取区间时间内的询价和报价统计
+     *
+     * @param starttime 起始时间
+     * @param endtime   起始时间
+     * @return 统计结果
+     */
+    @Override
+    public ModelMap sumPublishWithTimeScope(Long starttime, Long endtime) throws Exception {
+        ModelMap map = new ModelMap();
+        // 获取上周用户最大uu号
+        ModelMap user = SsoUtils.getLastWeekMaxUU();
+        if (null == user) {
+            throw new RuntimeException("未获取到上周最后注册用户UU");
+        }
+        Integer userUU = (Integer) user.get("content");
+        if (null == userUU) {
+            throw new RuntimeException("获取到上周最后注册用户UU为空");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        // 今天
+        String startDate = sdf.format(new Date(starttime));
+        // 昨天
+        String endDate = sdf.format(new Date(endtime));
+        // 老用户统计
+        Integer oldPublish = purcInquiryItemDao.sumOldInquiryCountWithDateScope(startDate, endDate, userUU);
+        Integer oldReply = publicInquiryItemDao.sumOldReplyCountWithDateScope(startDate, endDate, userUU);
+        // 全部
+        Integer totalPublish = purcInquiryItemDao.sumInquiryCountWithTimeScope(startDate, endDate);
+        Integer totalReply = publicInquiryItemDao.sumReplyCountWithTimeScope(startDate, endDate);
+
+        // 新老用户 发布数量设置
+        map.put("oldPublish", oldPublish);
+        map.put("newPublish", totalPublish - oldPublish);
+        map.put("totalPublish", totalPublish);
+
+        // 新老用户 报价数量设置
+        map.put("oldReply", oldReply);
+        map.put("newReply", totalReply - oldReply);
+        map.put("totalReply", totalReply);
+        return map;
+    }
+
 }

+ 38 - 0
src/main/java/com/uas/ps/inquiry/util/SsoUtils.java

@@ -0,0 +1,38 @@
+package com.uas.ps.inquiry.util;
+
+import com.alibaba.fastjson.JSON;
+import com.uas.ps.core.util.ContextUtils;
+import com.uas.ps.inquiry.AccessConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.ui.ModelMap;
+
+/**
+ * 对接账户服务的接口
+ *
+ * @author dongbw
+ * @version 2018年9月18日 17:30:07
+ */
+public class SsoUtils {
+
+
+    private static final String SSO_URL = ContextUtils.getBean(AccessConfiguration.class).getSsoUrl();
+
+    private static final Logger log = LoggerFactory.getLogger(SsoUtils.class);
+
+
+    /**
+     * 获取上周最后注册用户UU
+     * @return 查询结果
+     * @throws Exception http请求异常
+     */
+    public static ModelMap getLastWeekMaxUU() throws Exception {
+        HttpUtil.Response res = HttpUtil.sendGetRequest(SSO_URL + "/api/user/maxuu/lastWeek", null);
+        if (HttpStatus.OK.value() == res.getStatusCode()) {
+            return JSON.parseObject(res.getResponseText(), ModelMap.class);
+        } else {
+            throw new RuntimeException("未获取到最近注册用户UU");
+        }
+    }
+}

+ 0 - 2
src/main/resources/application.yml

@@ -7,8 +7,6 @@ spring:
     dialect: org.hibernate.dialect.MySQL5Dialect
     hbm2ddl:
      auto: update
- profiles:
-   active: dev
 
 sso:
  secretKey: 0taQcW073Z7G628g5H

+ 3 - 0
src/main/resources/config/application-cloud.properties

@@ -30,6 +30,9 @@ ps.product.url=https://api-product.usoftmall.com/
 ps.message.url=http://api-message.ubtob.com/
 mall.url = http://10.10.0.10
 
+# sso
+sso.url=https://sso.ubtob.com/
+
 #message
 message.senderuu=1000010022
 message.senderEnuu=10042875

+ 3 - 0
src/main/resources/config/application-dev.properties

@@ -34,6 +34,9 @@ ps.message.url=http://192.168.253.12:24000/message/
 #ps.message.url=http://192.168.253.131:20000/
 mall.url = http://192.168.253.12:23400/
 
+# sso
+sso.url=http://192.168.253.6:32323
+
 #message
 message.senderuu=1000010022
 message.senderEnuu=10043516

+ 3 - 0
src/main/resources/config/application-test.properties

@@ -30,6 +30,9 @@ ps.product.url=http://218.17.158.219:24000/
 ps.message.url=http://218.17.158.219:24000/message/
 mall.url = http://192.168.253.12:23400/
 
+# sso
+sso.url=http://192.168.253.6:32323
+
 #message
 message.senderuu=1000010022
 message.senderEnuu=10043516

+ 1 - 1
src/main/resources/config/application-txcloud.properties

@@ -26,7 +26,7 @@ spring.rabbitmq.cache.channel.size=100
 spring.rabbitmq.cache.channel.checkout-timeout=10000
 spring.rabbitmq.requested-heartbeat=30
 # Access path
-ps.product.url=https://172.21.0.47:8080/
+ps.product.url=http://172.21.0.47:8080/
 ps.message.url=http://api-message.ubtob.com/
 mall.url = http://172.21.0.100