Browse Source

日志使用占位符方式,配置http连接池,修改httpUtil

liuam 7 years ago
parent
commit
8ab16a6176

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

@@ -167,7 +167,7 @@ public class DeadlineTask {
                     e.printStackTrace();
                 }
             }
-        }).run();
+        });
     }
 
     /**

+ 13 - 13
src/main/java/com/uas/ps/inquiry/controller/ErpDownloadController.java

@@ -59,7 +59,7 @@ public class ErpDownloadController {
     public void saveInquiries(@RequestBody List<BatchInquiry> inquiries, Long enuu, String address) throws NotFoundException, UnsupportedEncodingException {
         long start = System.currentTimeMillis();
         publicInquiryService.save(inquiries, enuu, URLDecoder.decode(address, "UTF-8"));
-        log.info("/inquiry/public post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public post 耗时:{}", (System.currentTimeMillis() - start));
         log.info("公共询价, ERP上传公共询价, size: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
 
     }
@@ -76,7 +76,7 @@ public class ErpDownloadController {
     public void updateInquiryStatus(@RequestBody List<BatchInquiry> inquiries, Long enuu) throws UnsupportedEncodingException {
         long start = System.currentTimeMillis();
         publicInquiryService.updateStatus(inquiries, enuu);
-        log.info("/inquiry/public/check post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/check post 耗时:{}", (System.currentTimeMillis() - start));
         log.info("公共询价, ERP设置公共询价不能报价, size: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
 
     }
@@ -93,7 +93,7 @@ public class ErpDownloadController {
     public List<InquiryDetail> getReply(Long enuu) {
         long start = System.currentTimeMillis();
         List<InquiryDetail> details = publicInquiryService.findNotUploadReply(enuu);
-        log.info("/inquiry/public/quotation 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/quotation 耗时:{}", (System.currentTimeMillis() - start));
         log.info("公共询价, ERP获取供应商报价信息, size: {}, Constant: {}, enuu: {}, 报价的应用来源: {}",details.size(), Constant.UU, enuu, InquirySource.ERP.name());
         return details;
     }
@@ -112,7 +112,7 @@ public class ErpDownloadController {
         String[] idArray = URLDecoder.decode(data, "UTF-8").split(",");
         log.info("公共询价, ERP获取报价信息返回id, id: {}, Constant: {}, enuu: {}, 报价的应用来源: {}",idArray, Constant.UU, enuu, InquirySource.ERP.name());
         publicInquiryService.onReplyUploadSuccess(idArray);
-        log.info("/inquiry/public/reply/back post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/reply/back post 耗时:{}", (System.currentTimeMillis() - start));
     }
 
     /**
@@ -127,7 +127,7 @@ public class ErpDownloadController {
         long start = System.currentTimeMillis();
         log.info("公共询价, ERP提交报价信息应用禁止报价, size: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", details.size(), Constant.UU, enuu, InquirySource.ERP.name());
         publicInquiryService.updateInquiryStatus(details, enuu);
-        log.info("/inquiry/public/checking post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/checking post 耗时:{}", (System.currentTimeMillis() - start));
     }
 
     /**
@@ -142,7 +142,7 @@ public class ErpDownloadController {
         long start = System.currentTimeMillis();
         log.info("公共询价, ERP针对供应报价信息进行(不)采纳操作, size: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", decides.size(), Constant.UU, enuu, InquirySource.ERP.name());
         publicInquiryService.onReplyDecide(decides, enuu);
-        log.info("/inquiry/public/reply/decide post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/reply/decide post 耗时:{}", (System.currentTimeMillis() - start));
     }
 
     /**
@@ -158,7 +158,7 @@ public class ErpDownloadController {
         long start = System.currentTimeMillis();
         log.info("公共询价, ERP作废公共询价单返回数据到公共服务, size: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
         publicInquiryService.onReplyInvalid(inquiries, enuu);
-        log.info("/inquiry/public/invalid post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/invalid post 耗时:{}", (System.currentTimeMillis() - start));
     }
 
     /**
@@ -173,7 +173,7 @@ public class ErpDownloadController {
     public List<PublicInquiryItem> downloadDecide(Long enUU) {
         long start = System.currentTimeMillis();
         List<PublicInquiryItem> items = publicInquiryService.findDecideNotUploadReply(enUU);
-        log.info("/inquiry/public/down/decide 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/down/decide 耗时:{}", (System.currentTimeMillis() - start));
         log.info("公共询价, 买家采纳或拒绝之后,上传到报价方UAS, size: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", items.size(), Constant.UU, enUU, InquirySource.ERP.name());
         return items;
     }
@@ -196,7 +196,7 @@ public class ErpDownloadController {
             idList.add(Long.valueOf(id));
         }
         ModelMap map = publicInquiryService.downloadDecideBack(idList, enUU);
-        log.info("/inquiry/public/down/decide/back 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/down/decide/back 耗时:{}", (System.currentTimeMillis() - start));
         log.info("公共询价, 买家采纳或拒绝之后,上传到报价方UAS的回调, size: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", idList.size(), Constant.UU, enUU, InquirySource.ERP.name());
         return map;
     }
@@ -213,7 +213,7 @@ public class ErpDownloadController {
     public List<PublicInquiryItem> downReply(Long enUU) {
         long start = System.currentTimeMillis();
         List<PublicInquiryItem> details = publicInquiryService.findNotUploadToUas(enUU);
-        log.info("/inquiry/public/down/reply 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/down/reply 耗时:{}", (System.currentTimeMillis() - start));
         log.info("公共询价, ERP获取供应商报价信息, size: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", details.size(), Constant.UU, enUU, InquirySource.ERP.name());
         return details;
     }
@@ -233,7 +233,7 @@ public class ErpDownloadController {
         String[] idArray = URLDecoder.decode(ids, "UTF-8").split(",");
         log.info("公共询价, 将报价方在商城报价的单据同步到报价方UAS之后回调修改状态, id: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", idArray, Constant.UU, enUU, InquirySource.ERP.name());
         publicInquiryService.onReplyDownLoadSuccess(idArray);
-        log.info("/inquiry/public/down/reply/back post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/down/reply/back post 耗时:{}", (System.currentTimeMillis() - start));
     }
 
     /**
@@ -248,7 +248,7 @@ public class ErpDownloadController {
     public List<InquiryEnRemind> downEnRemind(Long vendUU) {
         long start = System.currentTimeMillis();
         List<InquiryEnRemind> details = publicInquiryService.findNotUploadEnRemind(vendUU);
-        log.info("/inquiry/public/enremind 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/enremind 耗时:{}", (System.currentTimeMillis() - start));
         log.info("公共询价, UAS获取商城账套下企业商机, size: {}, Constant: {}, vendUU: {}, 报价的应用来源: {}", details.size(), Constant.UU, vendUU, InquirySource.ERP.name());
         return details;
     }
@@ -268,6 +268,6 @@ public class ErpDownloadController {
         String[] idArray = URLDecoder.decode(ids, "UTF-8").split(",");
         log.info("公共询价, UAS获取商城账套下企业商机之后 之后 回调 修改状态, id: {}, Constant: {}, vendUU: {}, 报价的应用来源: {}", Arrays.toString(idArray), Constant.UU, vendUU, InquirySource.ERP.name());
         publicInquiryService.downEnRemindSuccess(idArray, vendUU);
-        log.info("/inquiry/public/enremind/back post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/enremind/back post 耗时:{}", (System.currentTimeMillis() - start));
     }
 }

+ 10 - 11
src/main/java/com/uas/ps/inquiry/controller/InquiryForBuyerController.java

@@ -1,6 +1,5 @@
 package com.uas.ps.inquiry.controller;
 
-import com.alibaba.fastjson.JSONObject;
 import com.uas.ps.httplog.annotation.HttpLog;
 import com.uas.ps.inquiry.entity.Constant;
 import com.uas.ps.inquiry.entity.InquiryDetailInfo;
@@ -47,7 +46,7 @@ public class InquiryForBuyerController {
         log.info("公共询价, 客户查询供应商报价详情, id: {}, Constant: {}, enuu: {}, 报价的应用来源: {}", id, Constant.UU, enuu, InquirySource.PLAIN.name());
         long start = System.currentTimeMillis();
         InquiryDetailInfo detailInfo = inquiryService.findById(id, enuu);
-        log.info("/inquiry/buyer/save 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/save 耗时:{}", (System.currentTimeMillis() - start));
         return detailInfo;
     }
 
@@ -65,7 +64,7 @@ public class InquiryForBuyerController {
         long start = System.currentTimeMillis();
         Page<PurcInquiry> page = inquiryService.findByPageInfo(pageInfo, searchFilter);
         page = inquiryService.setQuotedAmount(page);
-        log.info("/inquiry/buyer/inquiryList 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/inquiryList 耗时:{}", (System.currentTimeMillis() - start));
         return page;
     }
 
@@ -84,7 +83,7 @@ public class InquiryForBuyerController {
         log.info("公共询价, 通过企业UU和分页参数获取已发布的询价明细, UserUU: {}, enuu: {}, 报价的应用来源: {}",  searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
         long start = System.currentTimeMillis();
         Page<PurcInquiryItemInfo> page = inquiryService.findTodoByPageInfo(pageInfo, searchFilter, state, overdue);
-        log.info("/inquiry/buyer/list 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/list 耗时:{}", (System.currentTimeMillis() - start));
         return page;
     }
 
@@ -102,7 +101,7 @@ public class InquiryForBuyerController {
         /*logger.log("公共询价", "针对客户查询单个物料明细的报价情况", null, Constant.UU, enuu, InquirySource.PLAIN.name());*/
         long start = System.currentTimeMillis();
         InquiryProductInfo info = inquiryService.findInquiryDetailById(id, enuu);
-        log.info("/inquiry/buyer/product/detail 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/product/detail 耗时:{}", (System.currentTimeMillis() - start));
         return info;
     }
 
@@ -122,7 +121,7 @@ public class InquiryForBuyerController {
         /* logger.log("公共询价", "客户查询供应商报价信息", null, userUU, enUU, InquirySource.MALL.name());*/
         long start = System.currentTimeMillis();
         Page<PurcInquiryItemInfo> page = inquiryService.findQuotationsByPage(pageInfo, searchFilter, enUU, userUU, overdue);
-        log.info("/inquiry/buyer/quotations 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/quotations 耗时:{}", (System.currentTimeMillis() - start));
         return page;
     }
 
@@ -137,7 +136,7 @@ public class InquiryForBuyerController {
     public PurcInquiryItemInfo findQuotationById(Long id) {
         long start = System.currentTimeMillis();
         PurcInquiryItemInfo itemInfo = inquiryService.findQuotationById(id);
-        log.info("/inquiry/buyer/quotation 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/quotation 耗时:{}", (System.currentTimeMillis() - start));
         return itemInfo;
     }
 
@@ -152,7 +151,7 @@ public class InquiryForBuyerController {
     public PurcInquiry saveInquiry(@RequestBody PurcInquiry inquiry) throws Exception {
         long start = System.currentTimeMillis();
         inquiry = inquiryService.saveInquiry(inquiry);
-        log.info("/inquiry/buyer/save post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/save post 耗时:{}", (System.currentTimeMillis() - start));
         if (null != inquiry.getId()) {
             log.info("公共询价, 新增公共询价信息, 单号: {}, 生成id: {}, RecorderUU: {}, EnUU: {}, 报价的应用来源: {}",  inquiry.getCode(), inquiry.getId(), inquiry.getRecorderUU(), inquiry.getEnUU(), InquirySource.PLAIN.name());
             /*logger.log("公共询价", "新增公共询价信息", "单号: " + inquiry.getCode() + "生成id: " + inquiry.getId(), inquiry.getRecorderUU(), inquiry.getEnUU(), InquirySource.PLAIN.name());*/
@@ -179,7 +178,7 @@ public class InquiryForBuyerController {
        /* logger.log("公共询价", "通过明细id对供应商报价进行审核操作", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());*/
         long start = System.currentTimeMillis();
         inquiryService.decideQuote(id, status);
-        log.info("/inquiry/buyer/decide post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/decide post 耗时:{}", (System.currentTimeMillis() - start));
     }
 
     /**
@@ -197,7 +196,7 @@ public class InquiryForBuyerController {
 /*        logger.log("公共询价", "通过明细id采纳供应商报价", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());*/
         long start = System.currentTimeMillis();
         inquiryService.adpotQuote(id, status);
-        log.info("/inquiry/buyer/adopt post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/adopt post 耗时:{}", (System.currentTimeMillis() - start));
     }
 
 
@@ -216,7 +215,7 @@ public class InquiryForBuyerController {
       /*  logger.log("公共询价", "通过明细id拒绝供应商报价", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());*/
         long start = System.currentTimeMillis();
         inquiryService.refuseQuote(id, status, refusereason);
-        log.info("/inquiry/buyer/refuse post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/buyer/refuse post 耗时:{}", (System.currentTimeMillis() - start));
     }
 
 

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

@@ -54,7 +54,7 @@ public class InquiryForSaleController {
     public ModelMap saveQuote(@RequestBody PublicInquiryItem publicInquiryItem) throws Exception {
         Long start = System.currentTimeMillis();
         ModelMap result = saleService.saveQuote(publicInquiryItem);
-        log.info("/inquiry/sale/item/saveQuote post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/item/saveQuote post 耗时:{}", (System.currentTimeMillis() - start));
         publicInquiryService.ReceiveMessage(publicInquiryItem, InquirySource.MALL.name());
 //        if (null != item) {
 //            PublicInquiry inquiry = item.getInquiry();
@@ -78,7 +78,7 @@ public class InquiryForSaleController {
         log.info("公共询价, 查询已转报价的明细, id: {}, Constant: {}, en_uu: {}, 报价的应用来源: {}", itemId, Constant.UU, en_uu, InquirySource.PLAIN.name());
         long start = System.currentTimeMillis();
         PublicInquiryItem item = saleService.findById(itemId, en_uu);
-        log.info("/inquiry/sale/inquiry/detail 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/inquiry/detail 耗时:{}", (System.currentTimeMillis() - start));
         return item;
     }
 
@@ -95,7 +95,7 @@ public class InquiryForSaleController {
         log.info("公共询价, 通过id查询公共询价详情, id: {}, Constant: {}, en_uu: {}, 报价的应用来源: {}", id, Constant.UU, enuu, InquirySource.PLAIN.name());
         long start = System.currentTimeMillis();
         ModelMap map = saleService.findByIdAndEnuu(id, enuu);
-        log.info("/inquiry/sale/publicInquiry/detail 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/publicInquiry/detail 耗时:{}", (System.currentTimeMillis() - start));
         return map;
     }
 
@@ -111,7 +111,7 @@ public class InquiryForSaleController {
     public String addAttachs(@RequestBody Attach attach) throws Exception {
         long start = System.currentTimeMillis();
         attach = saleService.addAttachs(attach);
-        log.info("/inquiry/sale/attach post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/attach post 耗时:{}", (System.currentTimeMillis() - start));
         if (null != attach.getId()) {
             return JSONObject.toJSONString(attach);
         } else {
@@ -134,7 +134,7 @@ public class InquiryForSaleController {
     public String saveItem(@RequestBody PublicInquiryItem inquiryItem) throws Exception {
         long start = System.currentTimeMillis();
         inquiryItem = saleService.save(inquiryItem);
-        log.info("/inquiry/sale/rnew post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/rnew post 耗时:{}", (System.currentTimeMillis() - start));
         return JSONObject.toJSONString(inquiryItem);
     }
 
@@ -151,7 +151,7 @@ public class InquiryForSaleController {
         log.info("公共询价, 查询公共询价单是否已报价, id: {}, Constant: {}, en_uu: {}, 报价的应用来源: {}", id, Constant.UU, en_uu, InquirySource.PLAIN.name());
         long start = System.currentTimeMillis();
         PublicInquiryItem item = saleService.findBySourceIdAndEnuu(id, en_uu);
-        log.info("/inquiry/sale/quote 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/quote 耗时:{}", (System.currentTimeMillis() - start));
         return item;
     }
 
@@ -175,7 +175,7 @@ public class InquiryForSaleController {
             pageInfo.filter("vendUserUU", useruu);
             log.info("公共询价, 查询推荐询价信息, useruu: {}, enuu: {}, 报价的应用来源: {}", useruu, enuu, InquirySource.PLAIN.name());
             IPage<InquiryRemind> remindIPage = saleService.findRemindByPageInfo(pageInfo, searchFilter);
-            log.info("/inquiry/sale/remind 耗时:" + (System.currentTimeMillis() - start));
+            log.info("/inquiry/sale/remind 耗时:{}", (System.currentTimeMillis() - start));
             return remindIPage;
         }
     }
@@ -199,7 +199,7 @@ public class InquiryForSaleController {
             pageInfo.filter("vendUU", enuu);
             log.info("公共询价, 查询企业推荐询价信息, useruu: {}, enuu: {}, 报价的应用来源: {}", useruu, enuu, InquirySource.PLAIN.name());
             IPage<InquiryEnRemind> enRemindIPage = saleService.findEnRemindByPageInfo(pageInfo, searchFilter);
-            log.info("/inquiry/sale/enremind 耗时:" + (System.currentTimeMillis() - start));
+            log.info("/inquiry/sale/enremind 耗时:{}", (System.currentTimeMillis() - start));
             return enRemindIPage;
         }
     }
@@ -216,7 +216,7 @@ public class InquiryForSaleController {
     public ModelMap allotEnRemind(Long userUU, Long enRemindId) {
         long start = System.currentTimeMillis();
         ModelMap modelMap = saleService.allotEnRemind(userUU, enRemindId);
-        log.info("/inquiry/sale/allot/enremind post  耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/allot/enremind post  耗时:{}", (System.currentTimeMillis() - start));
         return modelMap;
     }
 
@@ -233,7 +233,7 @@ public class InquiryForSaleController {
     public ModelMap allotInquiry(Long userUU, Long enUU, Long itemId) {
         long start = System.currentTimeMillis();
         ModelMap map = saleService.allotInquiry(userUU, enUU, itemId);
-        log.info("/inquiry/sale/allot/inquiry post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/allot/inquiry post 耗时:{}", (System.currentTimeMillis() - start));
         return map;
     }
 
@@ -260,7 +260,7 @@ public class InquiryForSaleController {
         log.info("公共询价, 作为卖家,对公共询价进行报价操作, sourceid: {}, useruu: {}, en_uu, 报价的应用来源: {}", inquiryItemId,
                 useruu, en_uu, InquirySource.UU.name());
         ModelMap map = saleService.quoteInquiry(inquiryItemId, en_uu, useruu, replyList, leadtime, minPackQty, minOrderQty, currency, taxrate);
-        log.info("/inquiry/sale/mobile/quote post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/mobile/quote post 耗时:{}", (System.currentTimeMillis() - start));
         return map;
     }
 
@@ -276,7 +276,7 @@ public class InquiryForSaleController {
     public String saveInquiryItem(@RequestBody PublicInquiryItem item) throws Exception {
         long start = System.currentTimeMillis();
         item = saleService.add(item);
-        log.info("/inquiry/sale/item/add post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/item/add post 耗时:{}", (System.currentTimeMillis() - start));
         if (null != item.getId()) {
             return JSONObject.toJSONString(item);
         } else {
@@ -297,7 +297,7 @@ public class InquiryForSaleController {
     public String saveInquiryItems(@RequestBody PublicInquiryItem item) throws Exception {
         long start = System.currentTimeMillis();
         item = saleService.saveItem(item);
-        log.info("/inquiry/sale/item/save post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/sale/item/save post 耗时:{}", (System.currentTimeMillis() - start));
         log.info("公共询价, 作为卖家,对公共询价进行报价操作, sourceid: {}, id: {}, VendUserUU: {}, VendUU: {} , QutoApp: {}", item.getSourceId() == null ? null : item.getSourceId(), item.getId(), item.getVendUserUU(), item.getVendUU(), item.getQutoApp());
         publicInquiryService.ReceiveMessage(item,InquirySource.MALL.name());
         if (null != item) {

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

@@ -72,7 +72,7 @@ public class PublicInquiryController {
         }
         IPage<PurcInquiryItemInfo> page = publicInquiryService.findTodoByPageInfo(pageInfo, searchFilter);
         log.info("公共询价, 查询公共询价信息, UserUU: {}, EnUU: {}, 报价的应用来源: {}",  searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
-        log.info("/inquiry/public 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public 耗时:{}", (System.currentTimeMillis() - start));
         return page;
     }
 
@@ -95,7 +95,7 @@ public class PublicInquiryController {
         }
         IPage<PurcInquiryItemInfo> infoIPage = publicInquiryService.findTodoByPageInfo(pageInfo, searchFilter);
         log.info("公共询价, 查询公共询价信息, UserUU: {}, EnUU: {}, 报价的应用来源: {}",  searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.MALL.name());
-        log.info("/inquiry/public/inquiryList 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/inquiryList 耗时:{}", (System.currentTimeMillis() - start));
         return infoIPage;
     }
 
@@ -129,7 +129,7 @@ public class PublicInquiryController {
         }
         log.info("公共询价, 查询已转报价询价列表信息, 状态:{}, UserUU: {}, EnUU: {}, 报价的应用来源: {}",  (_state == null ? "all" : _state), searchFilter != null ? searchFilter.getUserUU() : null, searchFilter != null ? searchFilter.getEnUU() : null, InquirySource.PLAIN.name());
         IPage<PublicInquiryItemInfo> inquiryItemInfoIPage = publicInquiryService.findByPageInfo(pageInfo, searchFilter);
-        log.info("/inquiry/public/quotation/list 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/quotation/list 耗时:{}", (System.currentTimeMillis() - start));
         return inquiryItemInfoIPage;
     }
 
@@ -147,7 +147,7 @@ public class PublicInquiryController {
             throw new IllegalAccessError("暂无访问权限");
         }
         PublicInquiryItemInfo info = publicInquiryService.findOneInfo(id, enuu, useruu);
-        log.info("/inquiry/public/quotation/one 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/quotation/one 耗时:{}", (System.currentTimeMillis() - start));
         return info;
     }
 
@@ -168,7 +168,7 @@ public class PublicInquiryController {
             pageInfo = publicInquiryService.covert(pageInfo, _state, overdue);
         }
         Page<PublicInquiryItemInfo> itemInfoPage = publicInquiryService.findListByPageInfo(pageInfo, searchFilter);
-        log.info("/inquiry/public/quotationList 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/quotationList 耗时:{}", (System.currentTimeMillis() - start));
         return itemInfoPage;
     }
 
@@ -185,7 +185,7 @@ public class PublicInquiryController {
         long start = System.currentTimeMillis();
         log.info("公共询价, 获取最新的公共询价, size:{}, Constant: {}, EnUU: {}, 报价的应用来源: {}", size, Constant.UU, enuu, InquirySource.PLAIN.name());
         List<InquiryMessage> messages = publicInquiryService.getMessageList(enuu, size);
-        log.info("/inquiry/public/messageList 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/messageList 耗时:{}", (System.currentTimeMillis() - start));
         return messages;
     }
 
@@ -204,7 +204,7 @@ public class PublicInquiryController {
     private ModelMap transtoInquiry(Long id, Long enuu, Long useruu) {
         long start = System.currentTimeMillis();
         ModelMap map = publicInquiryService.transtoInquiry(id, enuu, useruu);
-        log.info("/inquiry/public/turntoInquiry post 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/turntoInquiry post 耗时:{}", (System.currentTimeMillis() - start));
         return map;
     }
 
@@ -219,7 +219,7 @@ public class PublicInquiryController {
     public com.uas.ps.inquiry.model.Attach getAttach(Long id) {
         long start = System.currentTimeMillis();
         Attach attach = attachService.findById(id);
-        log.info("/inquiry/public/atatchUrl 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/atatchUrl 耗时:{}", (System.currentTimeMillis() - start));
         return attach;
     }
 
@@ -236,7 +236,7 @@ public class PublicInquiryController {
         log.info("公共询价, 获取询价信息, id:{}, Constant: {}, EnUU: {}, 报价的应用来源: {}", id, Constant.UU, enuu, InquirySource.PLAIN.name());
         PurcInquiry inquiry = publicInquiryService.findInquiryById(id);
         inquiry = publicInquiryService.getQuotedDetail(inquiry);
-        log.info("/inquiry/public/findInquiryById 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/findInquiryById 耗时:{}", (System.currentTimeMillis() - start));
         return inquiry;
     }
 
@@ -250,7 +250,7 @@ public class PublicInquiryController {
     public List<Map<String, Object>> findCodeRankingList() {
         long start = System.currentTimeMillis();
         List<Map<String, Object>> list = publicInquiryService.findCodeRankingList();
-        log.info("/inquiry/public/findCodeRankingList 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/findCodeRankingList 耗时:{}", (System.currentTimeMillis() - start));
         return list;
     }
 
@@ -267,7 +267,7 @@ public class PublicInquiryController {
         long start = System.currentTimeMillis();
         PurcInquiryItemInfo itemInfo = publicInquiryService.findItemByItemId(itemId, enuu);
         log.info("公共询价, 获取询价信息, id:{}, Constant: {}, EnUU: {}, 报价的应用来源: {}", itemId, Constant.UU, enuu, InquirySource.B2B.name());
-        log.info("/inquiry/public/findItemByItemId 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/findItemByItemId 耗时:{}", (System.currentTimeMillis() - start));
         return itemInfo;
     }
 
@@ -280,7 +280,7 @@ public class PublicInquiryController {
     public ModelMap getPurcInquiryItemCount() {
         long start = System.currentTimeMillis();
         ModelMap map = publicInquiryService.getPurcInquiryItemCount();
-        log.info("/inquiry/public/getPurcInquiryItemCount 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/getPurcInquiryItemCount 耗时:{}", (System.currentTimeMillis() - start));
         return map;
     }
 
@@ -294,7 +294,7 @@ public class PublicInquiryController {
     public ModelMap getPurcInquiryItemCountByMonth(Integer year, Integer month) {
         long start = System.currentTimeMillis();
         ModelMap map = publicInquiryService.countByMonth(year, month);
-        log.info("/inquiry/public/getPurcInquiryItemCountByMonth 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/getPurcInquiryItemCountByMonth 耗时:{}", (System.currentTimeMillis() - start));
         return map;
     }
 
@@ -307,7 +307,7 @@ public class PublicInquiryController {
     public ModelMap getPurcInquiryItemCountByMonth() {
         long start = System.currentTimeMillis();
         ModelMap map = publicInquiryService.getCountOfLastAndThisMonth();
-        log.info("/inquiry/public/getCountOfLastAndThisMonth 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/getCountOfLastAndThisMonth 耗时:{}", (System.currentTimeMillis() - start));
         return map;
     }
 
@@ -362,7 +362,7 @@ public class PublicInquiryController {
             map.put("content", publicInquiryService.findTodoByPageInfo(pageInfo, filter).getContent());
             return map;
         }
-        log.info("/inquiry/mobile 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/mobile 耗时:{}", (System.currentTimeMillis() - start));
         return map;
     }
 
@@ -440,7 +440,7 @@ public class PublicInquiryController {
             map.put("content", publicInquiryService.covertRemindToInquiry(saleService.findRemindByPageInfo(pageInfo, filter).getContent()));
             return map;
         }
-        log.info("/inquiry/public/mobile/v2 耗时:" + (System.currentTimeMillis() - start));
+        log.info("/inquiry/public/mobile/v2 耗时:{}", (System.currentTimeMillis() - start));
         return map;
     }
     /* ===========================================app接口end============================================================ */

+ 33 - 0
src/main/java/com/uas/ps/inquiry/http/HttpAsyncCallback.java

@@ -0,0 +1,33 @@
+package com.uas.ps.inquiry.http;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.concurrent.FutureCallback;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 异步 http 请求回调
+ * @author liuam
+ * @since 2018/8/28 0028 上午 0:00
+ */
+@Component
+public class HttpAsyncCallback implements FutureCallback<HttpResponse> {
+
+    private static final Logger logger = LoggerFactory.getLogger(HttpAsyncCallback.class);
+
+    @Override
+    public void completed(HttpResponse response) {
+
+    }
+
+    @Override
+    public void failed(Exception e) {
+
+    }
+
+    @Override
+    public void cancelled() {
+
+    }
+}

+ 55 - 32
src/main/java/com/uas/ps/inquiry/config/HttpClientSpringFactory.java → src/main/java/com/uas/ps/inquiry/http/HttpClientSpringFactory.java

@@ -1,4 +1,4 @@
-package com.uas.ps.inquiry.config;
+package com.uas.ps.inquiry.http;
 
 import org.apache.http.client.config.RequestConfig;
 import org.apache.http.impl.client.CloseableHttpClient;
@@ -13,52 +13,69 @@ import org.apache.http.nio.reactor.ConnectingIOReactor;
 import org.apache.http.nio.reactor.IOReactorException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.context.annotation.Bean;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
 
 /**
+ * http 同步连接池、http 异步连接池,与spring集成
  * @author liuam
  * @since 2018/8/27 0027 下午 15:58
  */
+@Component
 public class HttpClientSpringFactory {
 
     private static final Logger logger = LoggerFactory.getLogger(HttpClientSpringFactory.class);
 
+    @Value("${http.asyncConnectTimeout}")
     private Integer asyncConnectTimeout;
 
+    @Value("${http.asyncSocketTimeout}")
     private Integer asyncSocketTimeout;
 
+    @Value("${http.asyncConnectionRequestTimeout}")
     private Integer asyncConnectionRequestTimeout;
 
-    private Boolean asyncSoKeepAlive;
-
+    @Value("${http.asyncConnectNum}")
     private Integer asyncConnectNum;
 
+    @Value("${http.asyncConnectPerRoute}")
     private Integer asyncConnectPerRoute;
 
+    @Value("${http.asyncIoThreadCount}")
     private Integer asyncIoThreadCount;
 
+    @Value("${http.syncConnectTimeout}")
     private Integer syncConnectTimeout;
 
+    @Value("${http.syncSocketTimeout}")
     private Integer syncSocketTimeout;
 
+    @Value("${http.syncConnectionRequestTimeout}")
     private Integer syncConnectionRequestTimeout;
 
+    @Value("${http.syncConnectPerRoute}")
     private Integer syncConnectPerRoute;
 
+    @Value("${http.syncConnectNum}")
     private Integer syncConnectNum;
 
-    /**
-     * 异步 http 连接
-     * @return
-     */
-    @Bean
-    public CloseableHttpAsyncClient httpAsyncClient() {
-        RequestConfig requestConfig = RequestConfig.custom()
+    private RequestConfig asyncRequestConfig;
+
+    private PoolingNHttpClientConnectionManager asyncConnManager;
+
+    private RequestConfig syncRequestConfig;
+
+    private PoolingHttpClientConnectionManager syncConnManager;
+
+    @PostConstruct
+    public void init() {
+        asyncRequestConfig = RequestConfig.custom()
                 .setConnectionRequestTimeout(asyncConnectionRequestTimeout)
                 .setConnectTimeout(asyncConnectTimeout)
                 .setSocketTimeout(asyncSocketTimeout)
                 .build();
-
         //配置io线程
         IOReactorConfig ioReactorConfig = IOReactorConfig.custom()
                 .setIoThreadCount(asyncIoThreadCount)
@@ -73,38 +90,44 @@ public class HttpClientSpringFactory {
             e.printStackTrace();
         }
 
-        PoolingNHttpClientConnectionManager connManager = new PoolingNHttpClientConnectionManager(ioReactor);
-        connManager.setMaxTotal(asyncConnectNum);
-        connManager.setDefaultMaxPerRoute(asyncConnectPerRoute);
+        asyncConnManager = new PoolingNHttpClientConnectionManager(ioReactor);
+        asyncConnManager.setMaxTotal(asyncConnectNum);
+        asyncConnManager.setDefaultMaxPerRoute(asyncConnectPerRoute);
 
 
 
-        final CloseableHttpAsyncClient client = HttpAsyncClients.custom()
-                .setConnectionManager(connManager)
-                .setDefaultRequestConfig(requestConfig)
+        syncRequestConfig = RequestConfig.custom()
+                .setConnectionRequestTimeout(syncConnectionRequestTimeout)
+                .setConnectTimeout(syncConnectTimeout)
+                .setSocketTimeout(syncSocketTimeout)
                 .build();
-        return client;
+
+        syncConnManager = new PoolingHttpClientConnectionManager();
+        syncConnManager.setDefaultMaxPerRoute(syncConnectPerRoute);
+        syncConnManager.setMaxTotal(syncConnectNum);
     }
 
     /**
-     * 步 http 连接
+     * 步 http 连接
      * @return
      */
-    @Bean
-    public CloseableHttpClient httpSyncClient() {
-        RequestConfig requestConfig = RequestConfig.custom()
-                .setConnectionRequestTimeout(syncConnectionRequestTimeout)
-                .setConnectTimeout(syncConnectTimeout)
-                .setSocketTimeout(syncSocketTimeout)
-                .build();
+    public CloseableHttpAsyncClient getHttpAsyncClient() {
 
-        PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
-        cm.setDefaultMaxPerRoute(syncConnectPerRoute);
-        cm.setMaxTotal(syncConnectNum);
+        CloseableHttpAsyncClient client = HttpAsyncClients.custom()
+                .setConnectionManager(asyncConnManager)
+                .setDefaultRequestConfig(asyncRequestConfig)
+                .build();
+        return client;
+    }
 
+    /**
+     * 同步 http 连接
+     * @return
+     */
+    public CloseableHttpClient getHttpSyncClient() {
         CloseableHttpClient httpClient = HttpClients.custom()
-                .setConnectionManager(cm)
-                .setDefaultRequestConfig(requestConfig)
+                .setConnectionManager(syncConnManager)
+                .setDefaultRequestConfig(syncRequestConfig)
                 .build();
         return httpClient;
     }

+ 11 - 32
src/main/java/com/uas/ps/inquiry/service/impl/InquiryForSaleServiceImpl.java

@@ -5,27 +5,11 @@ 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.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.dao.*;
 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.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.model.*;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
 import com.uas.ps.inquiry.page.criteria.CriterionExpression;
@@ -34,7 +18,6 @@ import com.uas.ps.inquiry.page.criteria.PredicateUtils;
 import com.uas.ps.inquiry.page.criteria.SimpleExpression;
 import com.uas.ps.inquiry.page.exception.IllegalOperatorException;
 import com.uas.ps.inquiry.service.InquiryForSaleService;
-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;
@@ -56,11 +39,7 @@ import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * 针对卖家,对询价的相关操作
@@ -317,20 +296,20 @@ 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);
+            log.info("/product/save/inquiry 耗时:{}", (System.currentTimeMillis() - start));
+            log.info("替代料报价,添加替代物料返回{}", res);
             JSONObject result = JSONObject.parseObject(res);
             Boolean success = (Boolean) result.get("success");
             if (success) {
-                log.info("报价成功后保存到个人物料库", "保存报价id【" + inquiryItem.getId() + "】到个人物料库成功", "保存成功", "UserUU:" + product.getUserUU(), "EnUU:" + product.getEnUU(), "保存询价的应用:" + inquiryItem.getSource());
+                log.info("报价成功后保存到个人物料库,保存报价id【{}】到个人物料库成功,保存成功,UserUU:{},EnUU:{},保存询价的应用:{}", inquiryItem.getId(), product.getUserUU(), product.getEnUU(), inquiryItem.getSource());
             } else {
-                log.info("报价成功后保存到个人物料库", "保存报价id【" + inquiryItem.getId() + "】到个人物料库失败", result.get("message").toString(), "UserUU:" + product.getUserUU(), "EnUU:" + product.getEnUU(), "保存询价的应用:" + inquiryItem.getSource());
+                log.info("报价成功后保存到个人物料库,保存报价id【{}】到个人物料库失败{},UserUU:{},EnUU:{},保存询价的应用:{}", inquiryItem.getId(), result.get("message").toString(), product.getUserUU(), product.getEnUU(), inquiryItem.getSource());
             }
         } catch (Exception e) {
-            log.info("/product/save/inquiry 报价成功后保存到个人物料库中 出错:" + e.getMessage());
+            log.info("/product/save/inquiry 报价成功后保存到个人物料库中 出错:{}", e.getMessage());
             e.printStackTrace();
             String reason = e.getMessage().length() > 10 ? e.getMessage().substring(0, 999).concat("") : e.getMessage();
-            log.info("报价成功后保存到个人物料库", "保存报价id【" + inquiryItem.getId() + "】到个人物料库失败", "原因:" + reason, "UserUU:" + product.getUserUU(), "EnUU:" + product.getEnUU(), "保存询价的应用:" + inquiryItem.getSource());
+            log.info("报价成功后保存到个人物料库,保存报价id【{}】到个人物料库失败,原因:{},UserUU:{}, EnUU:{},保存询价的应用:{}", inquiryItem.getId(), reason, product.getUserUU(), product.getEnUU(), inquiryItem.getSource());
         }
     }
 
@@ -413,8 +392,8 @@ public class InquiryForSaleServiceImpl implements InquiryForSaleService {
             }
             if (!CollectionUtils.isEmpty(products)) {
                 long start = System.currentTimeMillis();
-                HttpUtil.doPost(PS_PRODUCT_URL + "product/update/b2b", FlexJsonUtils.toJsonDeep(products));
-                log.info("product/update/b2b 耗时:" + (System.currentTimeMillis() - start) + ",物料数:" + products.size());
+                HttpUtil.doPostAsync(PS_PRODUCT_URL + "product/update/b2b", FlexJsonUtils.toJsonDeep(products));
+                log.info("product/update/b2b 耗时:{},物料数:{}", (System.currentTimeMillis() - start), products.size());
             }
         }
     }

+ 17 - 19
src/main/java/com/uas/ps/inquiry/service/impl/InquiryServiceImpl.java

@@ -315,7 +315,7 @@ public class InquiryServiceImpl implements InquiryService {
                                 e.printStackTrace();
                             }
                         }
-                    }).run();
+                    });
                 }
             }
             return inquiry;
@@ -327,9 +327,9 @@ public class InquiryServiceImpl implements InquiryService {
      */
     @Override
     public List<InquiryRemind> testMessage(Date startTime, Date endTime, Long useruu, Long enuu){
-        log.info("公共询价","9点定时统计询价单总数服务开启");
+        log.info("公共询价9点定时统计询价单总数服务开启");
         List<InquiryRemind> list = inquiryRemindDao.findTestInfo(startTime,endTime,useruu,enuu);
-        log.info("公共询价","9点定时统计询价单总数服务结束");
+        log.info("公共询价9点定时统计询价单总数服务结束");
         return list;
     }
 
@@ -361,13 +361,13 @@ public class InquiryServiceImpl implements InquiryService {
             String url = PS_PRODUCT_URL + "/product/save/inquiry/batch";
             long start = System.currentTimeMillis();
             String res = HttpUtil.doPost(url, FlexJsonUtils.toJsonDeep(products));
-            log.info("/product/save/inquiry/batch 耗时:" + (System.currentTimeMillis() - start) + "物料数:" + products.size());
+            log.info("/product/save/inquiry/batch 耗时:{},物料数:{}", (System.currentTimeMillis() - start), products.size());
             JSONObject result = JSONObject.parseObject(res);
             Boolean success = (Boolean) result.get("success");
             if (success) {
-                log.info("保存询价单后,批量保存物料成功:" + products.size());
+                log.info("保存询价单后,批量保存物料成功:{}", products.size());
             } else {
-                log.info("保存询价单后,批量保存物料失败,返回:" + result.get("message"));
+                log.info("保存询价单后,批量保存物料失败,返回:{}", result.get("message"));
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -482,10 +482,10 @@ public class InquiryServiceImpl implements InquiryService {
                 }
                 long start = System.currentTimeMillis();
                 String res = HttpUtil.doPost(url, FlexJsonUtils.toJsonDeep(product));
-                log.info("/product/save/inquiry 耗时:" + (System.currentTimeMillis() - start));
-                log.info("采纳替代物料报价,添加替代物料返回" + res);
+                log.info("/product/save/inquiry 耗时:{}", (System.currentTimeMillis() - start));
+                log.info("采纳替代物料报价,添加替代物料返回{}", res);
             } catch (Exception e) {
-                log.info("/product/save/inquiry 替代料报价采纳之后保存到个人物料库中 出错:" + e.getMessage());
+                log.info("/product/save/inquiry 替代料报价采纳之后保存到个人物料库中 出错:{}", e.getMessage());
                 e.printStackTrace();
             }
         }
@@ -871,16 +871,14 @@ public class InquiryServiceImpl implements InquiryService {
                     model.setSmTemplate(SMS_TEMP_ID);
                     models.add(model);
                     long start = System.currentTimeMillis();
-                    String res = HttpUtil.doPost(PS_MESSAGE_URL + "/messages", FlexJsonUtils.toJsonDeep(models));
-                    log.info("/message 耗时:" + (System.currentTimeMillis() - start) + "消息数:" + models.size());
-                    System.out.println(FlexJsonUtils.toJsonDeep(models));
-                    System.out.println(res);
-                    log.info("公共询价", "此次"+company+"公司新增"+count+"张公共询价");
+                    HttpUtil.doPostAsync(PS_MESSAGE_URL + "/messages", FlexJsonUtils.toJsonDeep(models));
+                    log.info("/message 耗时:{},消息数:{}", (System.currentTimeMillis() - start), models.size());
+                    log.info("公共询价", "此次{}公司新增{}张公共询价", company, count);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
             }
-        }).run();
+        });
     }
 
     /**
@@ -919,13 +917,13 @@ public class InquiryServiceImpl implements InquiryService {
                             model.setSmsType(SMS_TYPE);
                             model.setSmTemplate(SMS_TEMP_ID);
                             models.add(model);
-                            log.info("此次" + company + "公司新增" + remind.getCounts() + "张公共询价(发送信息前),接收人UU:" + model.getReceiverUu());
+                            log.info("此次{}公司新增{}张公共询价(发送信息前),接收人UU:{}", company, remind.getCounts(), model.getReceiverUu());
                         }
                         if (models.size() >= 500) {
                             long start = System.currentTimeMillis();
                             String res = HttpUtil.doPost(PS_MESSAGE_URL + "/messages", FlexJsonUtils.toJsonDeep(models));
                             log.info("消息中心生成消息");
-                            log.info("发送消息" + models.size() + ",耗时:" + (System.currentTimeMillis() - start));
+                            log.info("发送消息{},耗时:{}", models.size(), (System.currentTimeMillis() - start));
                             models = new ArrayList<>();
                         }
                     }
@@ -933,14 +931,14 @@ public class InquiryServiceImpl implements InquiryService {
                         long start = System.currentTimeMillis();
                         String res = HttpUtil.doPost(PS_MESSAGE_URL + "/messages", FlexJsonUtils.toJsonDeep(models));
                         log.info("消息中心生成消息");
-                        log.info("发送消息" + models.size() + ",耗时:" + (System.currentTimeMillis() - start));
+                        log.info("发送消息{},耗时:{}", models.size(), (System.currentTimeMillis() - start));
                     }
                     log.info("发送消息全部完成");
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
             }
-        }).run();
+        });
     }
 
     /**

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

@@ -217,7 +217,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                                     e.printStackTrace();
                                 }
                             }
-                        }).run();
+                        });
                     }
 
                 } catch (Exception e) {
@@ -251,7 +251,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                 try {
                     long start = System.currentTimeMillis();
                     HttpUtil.Response res = HttpUtil.sendGetRequest(url, formData);
-                    log.info("/productuser/getProductUsersByEnUUAndCmpCode,耗时:" + (System.currentTimeMillis() - start));
+                    log.info("/productuser/getProductUsersByEnUUAndCmpCode,耗时:{}", (System.currentTimeMillis() - start));
                     if (res.getStatusCode() == 200) {
                         List<ProductUsers> users = FlexJsonUtils.fromJsonArray(res.getResponseText(), ProductUsers.class);
                         users = getProductReplaceByEnUUAndCmpCode(item.getInquiry().getRecorderUU(), cmpCode, users);
@@ -299,7 +299,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                                 model.setMailTemplate(MAIL_TEMP_ID);
                                 model.setSmTemplate(SMS_TEMP_ID);
                                 models.add(model);
-                                log.info("公共询价产生消息", "根据物料型号【" + cmpCode + "】查询接收人", "关联询价单明细【" + item.getId() + "】", "UserUU:" + user.getUseruu(), "Enuu:" + user.getEnuu(), "报价的应用来源:" + InquirySource.ERP.name());
+                                log.info("公共询价产生消息", "根据物料型号【{}】查询接收人,关联询价单明细【{}】,UserUU:{},Enuu:{},报价的应用来源:{}", cmpCode, item.getId(), user.getUseruu(), user.getEnuu(), InquirySource.ERP.name());
                             }
                             if (!CollectionUtils.isEmpty(models)) {
                                 sendMessage(models);
@@ -311,7 +311,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                     }
                 } catch (Exception e) {
                     String reason = e.getMessage().length() > 10 ? e.getMessage().substring(0, 1000).concat("") : e.getMessage();
-                    log.info("公共询价产生消息", "根据物料型号【" + cmpCode + "】查询接收人失败,id" + item.getId(), "原因:" + reason,"Constant:" + Constant.UU, "报价的应用来源:" + InquirySource.ERP.name());
+                    log.info("公共询价产生消息,根据物料型号【{}】查询接收人失败,id:{},原因:{}, Constant:{}, 报价的应用来源:{}", cmpCode, item.getId(), reason, Constant.UU, InquirySource.ERP.name());
                     e.printStackTrace();
                 }
             }
@@ -328,15 +328,15 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
             public void run() {
                 try {
                     long start = System.currentTimeMillis();
-                    log.info("发送微信消息实体" + JSON.toJSONString(models));
+                    log.info("发送微信消息实体{}", JSON.toJSONString(models));
                     String res = HttpUtil.doPost(USOFTMALL_URL + "/wx/sendTemplateMessage", FlexJsonUtils.toJsonDeep(models));
-                    log.info("微信消息请求发送日志" + res);
-                    log.info("微信消息请求发送,数量: " + models.size() + ",耗时:" + (System.currentTimeMillis() - start));
+                    log.info("微信消息请求发送日志, {}", res);
+                    log.info("微信消息请求发送,数量:{}, 耗时:{}", models.size(), (System.currentTimeMillis() - start));
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
             }
-        }).run();
+        });
     }
 
     /**
@@ -438,7 +438,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                     formData.put("pCmpCode", item.getCmpCode());
                     long start = System.currentTimeMillis();
                     HttpUtil.Response res = HttpUtil.sendGetRequest(url, formData);
-                    log.info("/product/businessOpportunity , 型号: " + item.getCmpCode() + ",耗时:" + (System.currentTimeMillis() - start));
+                    log.info("/product/businessOpportunity , 型号:{}, 耗时:{}", item.getCmpCode(), (System.currentTimeMillis() - start));
                     if (res.getStatusCode() == HttpStatus.OK.value()) {
                         Map<String, Object> result = FlexJsonUtils.fromJson(res.getResponseText());
                         if (!StringUtils.isEmpty(result.get("enUUs"))) {
@@ -490,7 +490,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                     e.printStackTrace();
                 }
             }
-        }).run();
+        });
     }
 
     /**
@@ -528,15 +528,15 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
             public void run() {
                 try {
                     long start = System.currentTimeMillis();
-                    log.info("发送消息实体" + JSON.toJSONString(models));
+                    log.info("发送消息实体{}", JSON.toJSONString(models));
                     String res = HttpUtil.doPost(PS_MESSAGE_URL + "/messages", FlexJsonUtils.toJsonDeep(models));
                     log.info("消息请求发送");
-                    log.info("/messages , 条数: " + models.size() + ",耗时:" + (System.currentTimeMillis() - start));
+                    log.info("/messages , 条数:{},耗时:{}", models.size(), (System.currentTimeMillis() - start));
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
             }
-        }).run();
+        });
     }
 
     /**
@@ -957,7 +957,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                 }
             }
 
-        }, inquiries).run();
+        }, inquiries);
     }
 
     /**

+ 127 - 52
src/main/java/com/uas/ps/inquiry/util/HttpUtil.java

@@ -1,21 +1,23 @@
 package com.uas.ps.inquiry.util;
 
+import com.uas.ps.core.util.ContextUtils;
+import com.uas.ps.inquiry.http.HttpAsyncCallback;
+import com.uas.ps.inquiry.http.HttpClientSpringFactory;
 import org.apache.http.Consts;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.NameValuePair;
 import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.HttpClient;
 import org.apache.http.client.entity.UrlEncodedFormEntity;
 import org.apache.http.client.methods.*;
+import org.apache.http.concurrent.FutureCallback;
 import org.apache.http.entity.ContentType;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.entity.mime.MultipartEntityBuilder;
 import org.apache.http.entity.mime.content.FileBody;
 import org.apache.http.entity.mime.content.StringBody;
 import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.protocol.HTTP;
 import org.apache.http.util.EntityUtils;
@@ -44,6 +46,85 @@ import java.util.Set;
  */
 public class HttpUtil {
 
+	private static HttpClientSpringFactory clientSpringFactory;
+
+	private static HttpAsyncCallback httpAsyncCallback;
+
+	static {
+		clientSpringFactory = ContextUtils.getBean(HttpClientSpringFactory.class);
+		httpAsyncCallback = ContextUtils.getBean(HttpAsyncCallback.class);
+	}
+
+	/**
+	 * 异步 get 请求,使用默认callback
+	 * @param url
+	 * @param params
+	 */
+	public static void doGetAsync(String url, Map<String, ?> params) {
+		doGetAsync(url, params, false, httpAsyncCallback);
+	}
+
+	/**
+	 * 异步 get 请求,使用自定义callback
+	 * @param url
+	 * @param params
+	 */
+	public static void doGetAsync(String url, Map<String, ?> params, FutureCallback<HttpResponse> callback) {
+		doGetAsync(url, params, false, callback);
+	}
+
+	public static void doGetAsync(String url, Map<String, ?> params, boolean sign, FutureCallback<HttpResponse> callback) {
+		HttpGet httpGet = null;
+		try {
+			httpGet = new HttpGet(getRequestUrl(url, (Map<String, Object>) params, sign));
+			CloseableHttpAsyncClient httpAsyncClient = clientSpringFactory.getHttpAsyncClient();
+			httpAsyncClient.start();
+			httpAsyncClient.execute(httpGet, callback);
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			if (httpGet != null) {
+				httpGet.releaseConnection();
+			}
+		}
+
+	}
+
+	/**
+	 * 异步 post 请求,默认使用 HttpAsyncCallback 回调
+	 * @param postUrl
+	 * @param formData
+	 */
+	public static void doPostAsync(String postUrl, String formData) {
+
+		doPostAsync(postUrl, formData, httpAsyncCallback);
+	}
+
+	/**
+	 * 异步 post 请求,自定义回调
+	 * @param postUrl
+	 * @param formData
+	 */
+	public static void doPostAsync(String postUrl, String formData, FutureCallback<HttpResponse> callback) {
+
+		HttpPost post = null;
+		try {
+			CloseableHttpAsyncClient httpAsyncClient = clientSpringFactory.getHttpAsyncClient();
+			httpAsyncClient.start();
+			post = new HttpPost(postUrl);
+			StringEntity postingString = new StringEntity(formData,  HTTP.UTF_8);
+			post.setEntity(postingString);
+			post.setHeader("Content-type", "application/json");
+			httpAsyncClient.execute(post, callback);
+
+		} finally {
+			if (post != null) {
+				post.releaseConnection();
+			}
+		}
+	}
+
+
 	/**
 	 * 发送GET请求
 	 * 
@@ -175,14 +256,23 @@ public class HttpUtil {
 	 * @throws Exception
 	 */
 	public static String doPost(String postUrl, String formData) throws Exception {
-		HttpClient httpClient = new DefaultHttpClient();
-		HttpPost post = new HttpPost(postUrl);
-		StringEntity postingString = new StringEntity(formData,  HTTP.UTF_8);
-		post.setEntity(postingString);
-		post.setHeader("Content-type", "application/json");
-		HttpResponse response = httpClient.execute(post);
-		String content = EntityUtils.toString(response.getEntity());
-		return content;
+		HttpPost post = null;
+		try {
+			CloseableHttpClient httpClient = clientSpringFactory.getHttpSyncClient();
+			post = new HttpPost(postUrl);
+			StringEntity postingString = new StringEntity(formData,  HTTP.UTF_8);
+			post.setEntity(postingString);
+			post.setHeader("Content-type", "application/json");
+			HttpResponse response = httpClient.execute(post);
+			String content = EntityUtils.toString(response.getEntity());
+			return content;
+		} finally {
+			if (post != null) {
+				post.releaseConnection();
+			}
+		}
+
+
 	}
 
 	/**
@@ -251,21 +341,14 @@ public class HttpUtil {
 	 * @throws Exception
 	 */
 	public static Response sendHttpUriRequest(HttpRequestBase request) throws Exception {
-		CloseableHttpClient httpClient = HttpClients.createDefault();
+		CloseableHttpClient httpClient = clientSpringFactory.getHttpSyncClient();
 		CloseableHttpResponse response = null;
 		try {
 			response = httpClient.execute(request);
 			return Response.getResponse(response);
 		} finally {
-			try {
-				httpClient.close();
-			} catch (IOException e) {
-			}
-			if (response != null) {
-				try {
-					response.close();
-				} catch (IOException e) {
-				}
+			if (request != null) {
+				request.releaseConnection();
 			}
 		}
 	}
@@ -280,7 +363,7 @@ public class HttpUtil {
 	 */
 	public static Response sendHttpEntityEnclosingRequest(HttpEntityEnclosingRequestBase request,
                                                           Map<String, Object> params, boolean encode) throws Exception {
-		CloseableHttpClient httpClient = HttpClients.createDefault();
+		CloseableHttpClient httpClient = clientSpringFactory.getHttpSyncClient();
 		CloseableHttpResponse response = null;
 		try {
 			if (!encode) {
@@ -305,16 +388,8 @@ public class HttpUtil {
 			response = httpClient.execute(request);
 			return Response.getResponse(response);
 		} finally {
-			request.releaseConnection();
-			try {
-				httpClient.close();
-			} catch (IOException e) {
-			}
-			if (response != null) {
-				try {
-					response.close();
-				} catch (IOException e) {
-				}
+			if (request != null) {
+				request.releaseConnection();
 			}
 		}
 	}
@@ -460,11 +535,13 @@ public class HttpUtil {
 	 */
 	public static Response upload(String postUrl, String filePath, Map<String, String> params)
 			throws IllegalStateException, IOException, Exception {
-		CloseableHttpClient httpClient = null;
+
+		CloseableHttpClient httpClient = clientSpringFactory.getHttpSyncClient();
 		CloseableHttpResponse response = null;
+		HttpPost httpPost = null;
 		try {
-			httpClient = HttpClients.createDefault();
-			HttpPost httpPost = new HttpPost(postUrl);
+
+			httpPost = new HttpPost(postUrl);
 			FileBody fileBody = new FileBody(new File(filePath));
 			MultipartEntityBuilder builder = MultipartEntityBuilder.create();
 			builder.addPart("file", fileBody);
@@ -479,20 +556,10 @@ public class HttpUtil {
 			httpPost.setEntity(reqEntity);
 			response = httpClient.execute(httpPost);
 		} finally {
-			try {
-				if (response != null) {
-					response.close();
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			try {
-				if (httpClient != null) {
-					httpClient.close();
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
+			if (httpPost != null) {
+				httpPost.releaseConnection();
 			}
+
 		}
 		return Response.getResponse(response);
 	}
@@ -506,10 +573,18 @@ public class HttpUtil {
 	 * @throws IOException
 	 */
 	public static InputStream download(String postUrl) throws ClientProtocolException, IOException {
-		CloseableHttpClient httpClient = HttpClients.createDefault();
-		HttpGet httpGet = new HttpGet(postUrl);
-		CloseableHttpResponse response = httpClient.execute(httpGet);
-		return response.getEntity().getContent();
+		HttpGet httpGet = null;
+		try {
+			CloseableHttpClient httpClient = clientSpringFactory.getHttpSyncClient();
+			httpGet = new HttpGet(postUrl);
+			CloseableHttpResponse response = httpClient.execute(httpGet);
+			return response.getEntity().getContent();
+		} finally {
+			if (httpGet != null) {
+				httpGet.releaseConnection();
+			}
+		}
+
 	}
 
 	/**

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

@@ -28,3 +28,17 @@ mall.url = http://192.168.253.12:23400/
 #message
 message.senderuu=1000010022
 message.senderEnuu=10043516
+
+http.asyncConnectTimeout=30000
+http.asyncSocketTimeout=30000
+http.asyncConnectionRequestTimeout=10000
+http.asyncConnectNum=50
+http.asyncConnectPerRoute=10
+http.asyncIoThreadCount=50
+http.syncConnectTimeout=30000
+http.syncSocketTimeout=30000
+http.syncConnectionRequestTimeout=10000
+http.syncConnectPerRoute=10
+http.syncConnectNum=50
+
+