Browse Source

Merge branch 'feature-201814-dongbw' into dev

liusw 7 years ago
parent
commit
c27fa1cafe

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

@@ -168,9 +168,9 @@ public class InquiryForBuyerController {
      */
     @HttpLog
     @RequestMapping(value = "/quotations", method = RequestMethod.GET)
-    public Page<PurcInquiryItemInfo> findQuotationsByPage(PageInfo pageInfo, SearchFilter searchFilter, Long enUU, Long userUU) {
+    public Page<PurcInquiryItemInfo> findQuotationsByPage(PageInfo pageInfo, SearchFilter searchFilter, Long enUU, Long userUU, Short overdue) {
         logger.log("公共询价", "客户查询供应商报价信息", null, userUU, enUU, InquirySource.MALL.name());
-        return inquiryService.findQuotationsByPage(pageInfo, searchFilter, enUU, userUU);
+        return inquiryService.findQuotationsByPage(pageInfo, searchFilter, enUU, userUU, overdue);
     }
 
      /**

+ 8 - 0
src/main/java/com/uas/ps/inquiry/dao/InquiryEnRemindDao.java

@@ -66,6 +66,14 @@ public interface InquiryEnRemindDao extends JpaRepository<InquiryEnRemind, Long>
      */
     InquiryEnRemind findByItemIdAndEnUU(Long itemId, Long enUU);
 
+    /**
+     * 通过明细id和供应商uu查询企业推荐信息
+     * @param itemId
+     * @param vendUU
+     * @return
+     */
+    List<InquiryEnRemind> findByItemIdAndVendUU(Long itemId, Long vendUU);
+
     /**
      * 通过企业uu查询企业推荐信息
      * @param vendUU

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

@@ -355,6 +355,20 @@ public class PurcInquiryItemInfo {
 	@Column(name = "id_cust_currency")
 	private String custCurrency;
 
+	/**
+	 * 分配状态  1为已分配 0 为未分配
+	 */
+	@Transient
+	private Short allotStatus;
+
+	public Short getAllotStatus() {
+		return allotStatus;
+	}
+
+	public void setAllotStatus(Short allotStatus) {
+		this.allotStatus = allotStatus;
+	}
+
 	public Long getId() {
 		return id;
 	}

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

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

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

@@ -235,14 +235,17 @@ public class InquiryServiceImpl implements InquiryService {
         }
         if (null != overdue) {
             // 已超过截止日期
-            if (overdue.equals(Constant.YES)) {
+            if (overdue.equals((int)Constant.YES)) {
                 SimpleExpression date = new SimpleExpression("endDate", new Date(System.currentTimeMillis()), CriterionExpression.Operator.LT);
                 SimpleExpression[] simpleExpressions = new SimpleExpression[]{date};
                 LogicalExpression logicalExpression = PredicateUtils.and(simpleExpressions);
                 info.expression(logicalExpression);
+            } else if (overdue.equals((int)Constant.NO)) {
+                info.expression(PredicateUtils.gte("endDate", new Date(System.currentTimeMillis()), false));
             }
         }
         return inquiryItemDao.findAll(new Specification<PurcInquiryItemInfo>() {
+            @Override
             public Predicate toPredicate(Root<PurcInquiryItemInfo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
                 query.where(info.getPredicates(root, query, builder));
                 return null;
@@ -621,6 +624,7 @@ public class InquiryServiceImpl implements InquiryService {
         LogicalExpression logicalExpression = PredicateUtils.and(simpleExpressions);
         info.expression(logicalExpression);
         return purcInquiryDao.findAll(new Specification<PurcInquiry>() {
+            @Override
             public Predicate toPredicate(Root<PurcInquiry> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
                 query.where(info.getPredicates(root, query, builder));
                 return null;
@@ -666,7 +670,7 @@ public class InquiryServiceImpl implements InquiryService {
      * @return
      */
     @Override
-    public Page<PurcInquiryItemInfo> findQuotationsByPage(final PageInfo pageInfo, final SearchFilter filter, Long enUU, Long userUU) {
+    public Page<PurcInquiryItemInfo> findQuotationsByPage(final PageInfo pageInfo, final SearchFilter filter, Long enUU, Long userUU, Short overdue) {
         if (enUU == null && userUU == null) {
             throw new IllegalAccessError("非法访问");
         }
@@ -696,8 +700,17 @@ public class InquiryServiceImpl implements InquiryService {
         if (filter.getEndDate() != null) {
             pageInfo.expression(PredicateUtils.lte("date", new Date(filter.getEndDate()), false));
         }
+        if (null != overdue) {
+            // 已超过截止日期
+            if (overdue.equals(Constant.YES)) {
+                pageInfo.expression(PredicateUtils.lt("endDate", new Date(System.currentTimeMillis()), false));
+            } else if (overdue.equals(Constant.NO)) {
+                pageInfo.expression(PredicateUtils.gte("endDate", new Date(System.currentTimeMillis()), false));
+            }
+        }
         pageInfo.expression(PredicateUtils.gt("offerAmount", Constant.NO, false));
         Page<PurcInquiryItemInfo> items = inquiryItemDao.findAll(new Specification<PurcInquiryItemInfo>() {
+            @Override
             public Predicate toPredicate(Root<PurcInquiryItemInfo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
                 query.where(pageInfo.getPredicates(root, query, builder));
                 return null;
@@ -813,7 +826,7 @@ public class InquiryServiceImpl implements InquiryService {
     }
 
     /**
-     * 发送消息推送
+     * 发送消息推送 (定时任务使用)
      *
      */
     @Override
@@ -848,16 +861,18 @@ public class InquiryServiceImpl implements InquiryService {
                             model.setSmsType(SMS_TYPE);
                             model.setSmTemplate(SMS_TEMP_ID);
                             models.add(model);
-                            log.info("此次" + company + "公司新增" + remind.getCounts() + "张公共询价(发送信息前)");
+                            log.info("此次" + company + "公司新增" + remind.getCounts() + "张公共询价(发送信息前),接收人UU:" + model.getReceiverUu());
                         }
                         if (models.size() >= 500) {
                             String res = HttpUtil.doPost(PS_MESSAGE_URL + "/messages", FlexJsonUtils.toJsonDeep(models));
+                            log.info("消息中心生成消息接口返回日志" + res);
                             log.info("发送消息" + models.size());
                             models = new ArrayList<>();
                         }
                     }
                     if (!CollectionUtils.isEmpty(models)) {
                         String res = HttpUtil.doPost(PS_MESSAGE_URL + "/messages", FlexJsonUtils.toJsonDeep(models));
+                        log.info("消息中心生成消息接口返回日志" + res);
                         log.info("发送消息" + models.size());
                     }
                     log.info("发送消息全部完成");

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

@@ -1079,51 +1079,59 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
             info.setOffset(info.getPageSize() * (info.getPageNumber() - 1));
         }
         info.setSort(sort);
+        Long enUU = null;
+        if (null != filter) {
+            if (filter.getFromDate() != null) {
+                info.expression(PredicateUtils.gte("date", new Date(filter.getFromDate()), false));
+            }
+            if (filter.getEndDate() != null) {
+                info.expression(PredicateUtils.lte("date", new Date(filter.getEndDate()), false));
+            }
+            if (!CollectionUtils.isEmpty(filter.getDistribute())) {
+                info.expression(PredicateUtils.in("inquiry.enUU", filter.getDistribute(), false));
+            }
+            if (!StringUtils.isEmpty(filter.getIsAll()) && filter.getIsAll() == 0 && !StringUtils.isEmpty(filter.getEnUU())) {
+                info.expression(PredicateUtils.ne("inquiry.enUU", filter.getEnUU(), false));
+                enUU = filter.getEnUU();
+            }
+            if (!StringUtils.isEmpty(filter.getKeyword())) {
+                SimpleExpression cmpCode = new SimpleExpression("cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
+                SimpleExpression brand = new SimpleExpression("inbrand", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
+                SimpleExpression title = new SimpleExpression("prodTitle", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
+                SimpleExpression spec = new SimpleExpression("spec", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
+                SimpleExpression code = new SimpleExpression("inquiry.code", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
+                SimpleExpression enName = new SimpleExpression("inquiry.enName", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
+                SimpleExpression[] simpleExpressions = null;
+                if (!StringUtils.isEmpty(filter.getIsLogin()) && filter.getIsLogin() == 0) {
+                    simpleExpressions = new SimpleExpression[]{cmpCode, brand, code, title, spec};
+                } else {
+                    simpleExpressions = new SimpleExpression[]{cmpCode, brand, code, title, enName, spec};
+                }
+                LogicalExpression logical = new LogicalExpression(simpleExpressions, CriterionExpression.Operator.OR);
+                info.expression(logical);
+            }
+        }
         Page<PurcInquiryItemInfo> orders = inquiryItemInfoDao.findAll(new Specification<PurcInquiryItemInfo>() {
             @Override
             public Predicate toPredicate(Root<PurcInquiryItemInfo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-                if (null != filter) {
-                    if (filter.getFromDate() != null) {
-                        info.expression(PredicateUtils.gte("date", new Date(filter.getFromDate()), false));
-                    }
-                    if (filter.getEndDate() != null) {
-                        info.expression(PredicateUtils.lte("date", new Date(filter.getEndDate()), false));
-                    }
-                    if (!CollectionUtils.isEmpty(filter.getDistribute())) {
-                        info.expression(PredicateUtils.in("inquiry.enUU", filter.getDistribute(), false));
-                    }
-                    if (!StringUtils.isEmpty(filter.getIsAll()) && filter.getIsAll() == 0 && !StringUtils.isEmpty(filter.getEnUU())) {
-                        info.expression(PredicateUtils.ne("inquiry.enUU", filter.getEnUU(), false));
-                        List<Long> ids = inquiryEnRemindDao.findIdsByVendUU(filter.getEnUU());
-                        info.expression(PredicateUtils.notIn("id", ids, false));
-                    }
-                    if (!StringUtils.isEmpty(filter.getKeyword())) {
-                        SimpleExpression cmpCode = new SimpleExpression("cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                        SimpleExpression brand = new SimpleExpression("inbrand", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                        SimpleExpression title = new SimpleExpression("prodTitle", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                        SimpleExpression spec = new SimpleExpression("spec", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                        SimpleExpression code = new SimpleExpression("inquiry.code", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                        SimpleExpression enName = new SimpleExpression("inquiry.enName", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                        SimpleExpression[] simpleExpressions = null;
-                        if (!StringUtils.isEmpty(filter.getIsLogin()) && filter.getIsLogin() == 0) {
-                            simpleExpressions = new SimpleExpression[]{cmpCode, brand, code, title, spec};
-                        } else {
-                            simpleExpressions = new SimpleExpression[]{cmpCode, brand, code, title, enName, spec};
-                        }
-                        LogicalExpression logical = new LogicalExpression(simpleExpressions, CriterionExpression.Operator.OR);
-                        info.expression(logical);
-                    }
-                }
                 query.where(info.getPredicates(root, query, builder));
                 return null;
             }
         }, info);
         // 将当前企业报价信息设置进去
-        for (PurcInquiryItemInfo itemInfo : orders) {
-            PublicInquiryItem item = publicInquiryItemDao.findByVendUUAndSourceId(filter.getEnUU(), itemInfo.getId());
-            itemInfo.setQuotation(item);
+        if (null != filter && !StringUtils.isEmpty(enUU)) {
+            for (PurcInquiryItemInfo itemInfo : orders) {
+                PublicInquiryItem item = publicInquiryItemDao.findByVendUUAndSourceId(filter.getEnUU(), itemInfo.getId());
+                List<InquiryEnRemind> inquiryEnRemind = inquiryEnRemindDao.findByItemIdAndVendUU(itemInfo.getId(), filter.getEnUU());
+                if (!CollectionUtils.isEmpty(inquiryEnRemind) && inquiryEnRemind.size() > 0) {
+                    itemInfo.setAllotStatus((short) 1);
+                } else {
+                    itemInfo.setAllotStatus((short) 0);
+                }
+                itemInfo.setQuotation(item);
+            }
         }
-        return covert(orders, filter.getEnUU());
+        return covert(orders, enUU);
     }
 
     /**
@@ -1444,7 +1452,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
 
     @Override
     public Page<MessageModel> ReceiveMessage(PublicInquiryItem item, String sourceApp) {
-        if (null != item.getVendUU() && null != item.getVendUserUU()) {
+        if (null != item.getVendUU() && null != item.getVendUserUU() && !StringUtils.isEmpty(item.getCmpCode())) {
             final String SMS_TYPE = "SM"; //发送信息
             final String CONSUMERAPP = "MALL";
             List<MessageModel> models = new ArrayList<MessageModel>();