Browse Source

Merge remote-tracking branch 'origin/dev' into dev

liusw 8 years ago
parent
commit
69ede86022

+ 21 - 6
pom.xml

@@ -26,13 +26,24 @@
             <artifactId>ps-entity</artifactId>
         </dependency>
 
-        <!--<dependency>
-            <groupId>net.sf.json-lib</groupId>
-            <artifactId>json-lib</artifactId>
-            <classifier>jdk15</classifier>
-        </dependency>-->
+        <!-- httpClient -->
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpmime</artifactId>
+            <version>4.4</version>
+        </dependency>
+
+        <dependency>
+            <groupId>net.sf.flexjson</groupId>
+            <artifactId>flexjson</artifactId>
+            <version>3.3</version>
+        </dependency>
 
-        <!-- spring boot -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-actuator</artifactId>
@@ -49,6 +60,10 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-security</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-tx</artifactId>

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

@@ -0,0 +1,41 @@
+package com.uas.ps.inquiry;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 获取本地配置的相关信息
+ *
+ * Created by hejq on 2018-01-27.
+ */
+@Configuration
+public class AccessConfiguration {
+
+    /**
+     * 公共物料访问地址
+     */
+    @Value("${ps.product.url}")
+    private String PsProductUrl;
+
+    /**
+     * 公共物料访问地址
+     */
+    @Value("${ps.message.url}")
+    private String PsMessageUrl;
+
+    public String getPsProductUrl() {
+        return PsProductUrl;
+    }
+
+    public void setPsProductUrl(String psProductUrl) {
+        PsProductUrl = psProductUrl;
+    }
+
+    public String getPsMessageUrl() {
+        return PsMessageUrl;
+    }
+
+    public void setPsMessageUrl(String psMessageUrl) {
+        PsMessageUrl = psMessageUrl;
+    }
+}

+ 155 - 22
src/main/java/com/uas/ps/inquiry/DruidDBConfiguration.java

@@ -5,76 +5,58 @@ import com.alibaba.druid.support.http.StatViewServlet;
 import com.alibaba.druid.support.http.WebStatFilter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.boot.web.servlet.ServletRegistrationBean;
 import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Component;
 
 import javax.sql.DataSource;
 import java.sql.SQLException;
 
-@Configuration
+@Component
+@ConfigurationProperties(prefix = "datasource")
 public class DruidDBConfiguration {
 
     private Logger logger = LoggerFactory.getLogger(DruidDBConfiguration.class);
 
-    @Value("${datasource.url}")
     private String url;
 
-    @Value("${datasource.username}")
     private String username;
 
-    @Value("${datasource.password}")
     private String password;
 
-    @Value("${datasource.driverClassName}")
     private String driverClassName;
 
-    @Value("${datasource.initialSize}")
     private int initialSize;
 
-    @Value("${datasource.minIdle}")
     private int minIdle;
 
-    @Value("${datasource.maxActive}")
     private int maxActive;
 
-    @Value("${datasource.maxWait}")
     private int maxWait;
 
-    @Value("${datasource.timeBetweenEvictionRunsMillis}")
     private int timeBetweenEvictionRunsMillis;
 
-    @Value("${datasource.minEvictableIdleTimeMillis}")
     private int minEvictableIdleTimeMillis;
 
-    @Value("${datasource.validationQuery}")
     private String validationQuery;
 
-    @Value("${datasource.testWhileIdle}")
     private boolean testWhileIdle;
 
-    @Value("${datasource.testOnBorrow}")
     private boolean testOnBorrow;
 
-    @Value("${datasource.testOnReturn}")
     private boolean testOnReturn;
 
-    @Value("${datasource.timeBetweenLogStatsMillis}")
     private int timeBetweenLogStatsMillis;
 
-    @Value("${datasource.poolPreparedStatements}")
     private boolean poolPreparedStatements;
 
-    @Value("${datasource.maxPoolPreparedStatementPerConnectionSize}")
     private int maxPoolPreparedStatementPerConnectionSize;
 
-    @Value("${datasource.filters}")
     private String filters;
 
-    @Value("${datasource.connectionProperties}")
     private String connectionProperties;
 
     @Bean
@@ -125,4 +107,155 @@ public class DruidDBConfiguration {
         return filterRegistrationBean;
     }
 
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getDriverClassName() {
+        return driverClassName;
+    }
+
+    public void setDriverClassName(String driverClassName) {
+        this.driverClassName = driverClassName;
+    }
+
+    public int getInitialSize() {
+        return initialSize;
+    }
+
+    public void setInitialSize(int initialSize) {
+        this.initialSize = initialSize;
+    }
+
+    public int getMinIdle() {
+        return minIdle;
+    }
+
+    public void setMinIdle(int minIdle) {
+        this.minIdle = minIdle;
+    }
+
+    public int getMaxActive() {
+        return maxActive;
+    }
+
+    public void setMaxActive(int maxActive) {
+        this.maxActive = maxActive;
+    }
+
+    public int getMaxWait() {
+        return maxWait;
+    }
+
+    public void setMaxWait(int maxWait) {
+        this.maxWait = maxWait;
+    }
+
+    public int getTimeBetweenEvictionRunsMillis() {
+        return timeBetweenEvictionRunsMillis;
+    }
+
+    public void setTimeBetweenEvictionRunsMillis(int timeBetweenEvictionRunsMillis) {
+        this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
+    }
+
+    public int getMinEvictableIdleTimeMillis() {
+        return minEvictableIdleTimeMillis;
+    }
+
+    public void setMinEvictableIdleTimeMillis(int minEvictableIdleTimeMillis) {
+        this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
+    }
+
+    public String getValidationQuery() {
+        return validationQuery;
+    }
+
+    public void setValidationQuery(String validationQuery) {
+        this.validationQuery = validationQuery;
+    }
+
+    public boolean isTestWhileIdle() {
+        return testWhileIdle;
+    }
+
+    public void setTestWhileIdle(boolean testWhileIdle) {
+        this.testWhileIdle = testWhileIdle;
+    }
+
+    public boolean isTestOnBorrow() {
+        return testOnBorrow;
+    }
+
+    public void setTestOnBorrow(boolean testOnBorrow) {
+        this.testOnBorrow = testOnBorrow;
+    }
+
+    public boolean isTestOnReturn() {
+        return testOnReturn;
+    }
+
+    public void setTestOnReturn(boolean testOnReturn) {
+        this.testOnReturn = testOnReturn;
+    }
+
+    public int getTimeBetweenLogStatsMillis() {
+        return timeBetweenLogStatsMillis;
+    }
+
+    public void setTimeBetweenLogStatsMillis(int timeBetweenLogStatsMillis) {
+        this.timeBetweenLogStatsMillis = timeBetweenLogStatsMillis;
+    }
+
+    public boolean isPoolPreparedStatements() {
+        return poolPreparedStatements;
+    }
+
+    public void setPoolPreparedStatements(boolean poolPreparedStatements) {
+        this.poolPreparedStatements = poolPreparedStatements;
+    }
+
+    public int getMaxPoolPreparedStatementPerConnectionSize() {
+        return maxPoolPreparedStatementPerConnectionSize;
+    }
+
+    public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) {
+        this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize;
+    }
+
+    public String getFilters() {
+        return filters;
+    }
+
+    public void setFilters(String filters) {
+        this.filters = filters;
+    }
+
+    public String getConnectionProperties() {
+        return connectionProperties;
+    }
+
+    public void setConnectionProperties(String connectionProperties) {
+        this.connectionProperties = connectionProperties;
+    }
 }

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

@@ -3,6 +3,9 @@ package com.uas.ps.inquiry;
 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.core.intercept.WebLogAspect;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.MediaType;
@@ -40,4 +43,19 @@ public class WebAppConfiguration extends WebMvcConfigurerAdapter {
         super.configureMessageConverters(converters);
     }
 
+    /**
+     * 打印 HTTP 请求信息
+     */
+    @Bean
+    public WebLogAspect webLog() {
+        return new WebLogAspect();
+    }
+
+    /**
+     * 异常处理
+     */
+    @Bean
+    public ExceptionHandlerAdvice exceptionHandlerAdvice() {
+        return new ExceptionHandlerAdvice();
+    }
 }

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

@@ -2,16 +2,17 @@ package com.uas.ps.inquiry.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.uas.ps.inquiry.entity.InquiryDetailInfo;
+import com.uas.ps.inquiry.entity.InquiryProductInfo;
 import com.uas.ps.inquiry.model.PublicInquiryItem;
 import com.uas.ps.inquiry.model.PurcInquiry;
 import com.uas.ps.inquiry.model.PurcInquiryItemInfo;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
 import com.uas.ps.inquiry.service.InquiryService;
+import com.uas.ps.inquiry.service.PublicInquiryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Sort;
-import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -96,4 +97,37 @@ public class InquiryForBuyerController {
         }
         return inquiryService.findByPageInfo(pageInfo, searchFilter);
     }
+
+    /**
+     * 通过企业UU和分页参数获取已发布的询价信息
+     *
+     * @param pageInfo 分页参数
+     * @param searchFilter 过滤条件
+     * @return
+     */
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    public Page<PurcInquiryItemInfo> getInquiryList(PageInfo pageInfo, SearchFilter searchFilter, String state) {
+        Sort sort = new Sort(Sort.Direction.DESC, "date");
+        pageInfo.setSort(sort);
+        if (null != searchFilter.getUserUU()) {
+            pageInfo.filter("userUU", searchFilter.getUserUU());
+        } else if (null != searchFilter.getEnUU()) {
+            pageInfo.filter("inquiry.enUU", searchFilter.getEnUU());
+        } else {
+            throw new IllegalAccessError("非法访问");
+        }
+        return inquiryService.findTodoByPageInfo(pageInfo, searchFilter, state);
+    }
+
+    /**
+     * 针对客户查询单个物料明细的报价情况
+     *
+     * @param id 来源id
+     * @param enuu 当前企业UU
+     * @return
+     */
+    @RequestMapping(value = "/product/detail", method = RequestMethod.GET)
+    public InquiryProductInfo findInquiryDetailById(Long id, Long enuu) {
+        return inquiryService.findInquiryDetailById(id, enuu);
+    }
 }

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

@@ -76,4 +76,12 @@ public interface PublicInquiryItemDao extends JpaRepository<PublicInquiryItem, L
      */
     @Query("select count(1) from PublicInquiryItem i where i.inquiry.id = :id")
     Integer countByInquiryId(@Param("id") Long id);
+
+    /**
+     * 通过来源id查询报价信息
+     *
+     * @param sourceId
+     * @return
+     */
+    List<PublicInquiryItem> findBySourceId(Long sourceId);
 }

+ 5 - 5
src/main/java/com/uas/ps/inquiry/entity/BatchInProduct.java

@@ -50,7 +50,7 @@ public class BatchInProduct {
     /**
      * 联系人姓名
      */
-    private String em_name;
+    private String bip_buyername;
 
     public Long getBip_id() {
         return bip_id;
@@ -116,11 +116,11 @@ public class BatchInProduct {
         this.bip_mobile = bip_mobile;
     }
 
-    public String getEm_name() {
-        return em_name;
+    public String getBip_buyername() {
+        return bip_buyername;
     }
 
-    public void setEm_name(String em_name) {
-        this.em_name = em_name;
+    public void setBip_buyername(String bip_buyername) {
+        this.bip_buyername = bip_buyername;
     }
 }

+ 28 - 0
src/main/java/com/uas/ps/inquiry/entity/InquiryProductInfo.java

@@ -38,6 +38,11 @@ public class InquiryProductInfo {
 	 */
 	private String unit;
 
+	/**
+	 * 原厂型号
+	 */
+	private String cmpCode;
+
 	/**
 	 * 询价详情
 	 */
@@ -92,6 +97,14 @@ public class InquiryProductInfo {
 		return unit;
 	}
 
+	public String getCmpCode() {
+		return cmpCode;
+	}
+
+	public void setCmpCode(String cmpCode) {
+		this.cmpCode = cmpCode;
+	}
+
 	public void setUnit(String unit) {
 		this.unit = unit;
 	}
@@ -111,4 +124,19 @@ public class InquiryProductInfo {
 	public void setPublicInquiryItemInfos(Set<PublicInquiryItemInfo> publicInquiryItemInfos) {
 		this.publicInquiryItemInfos = publicInquiryItemInfos;
 	}
+
+    @Override
+    public String toString() {
+        return "InquiryProductInfo{" +
+                "id=" + id +
+                ", title='" + title + '\'' +
+                ", code='" + code + '\'' +
+                ", spec='" + spec + '\'' +
+                ", brand='" + brand + '\'' +
+                ", unit='" + unit + '\'' +
+                ", cmpCode='" + cmpCode + '\'' +
+                ", inquiryItems=" + inquiryItems +
+                ", publicInquiryItemInfos=" + publicInquiryItemInfos +
+                '}';
+    }
 }

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

@@ -1,6 +1,7 @@
 package com.uas.ps.inquiry.service;
 
 import com.uas.ps.inquiry.entity.InquiryDetailInfo;
+import com.uas.ps.inquiry.entity.InquiryProductInfo;
 import com.uas.ps.inquiry.model.*;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
@@ -15,11 +16,12 @@ public interface InquiryService {
 
     /**
      * 查询公共询价列表信息
-     * @param info
-     * @param filter
+     * @param info 分页新
+     * @param filter 过滤条件
+     * @param state 过滤状态
      * @return
      */
-    Page<PurcInquiryItemInfo> findTodoByPageInfo(PageInfo info, SearchFilter filter);
+    Page<PurcInquiryItemInfo> findTodoByPageInfo(PageInfo info, SearchFilter filter, String state);
 
     /**
      * 保存公共询价
@@ -53,4 +55,13 @@ public interface InquiryService {
      * @return
      */
     Page<PurcInquiry> findByPageInfo(PageInfo pageInfo, SearchFilter searchFilter);
+
+    /**
+     * 针对客户,查询单个物料的报价情况
+     *
+     * @param id 明细id
+     * @param enuu 当前企业UU
+     * @return
+     */
+    InquiryProductInfo findInquiryDetailById(Long id, Long enuu);
 }

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

@@ -3,8 +3,10 @@ package com.uas.ps.inquiry.service.impl;
 import com.uas.ps.core.util.CollectionUtils;
 import com.uas.ps.entity.Product;
 import com.uas.ps.inquiry.dao.*;
+import com.uas.ps.inquiry.entity.Constant;
 import com.uas.ps.inquiry.entity.InquiryDetailInfo;
 import com.uas.ps.inquiry.entity.InquiryProductInfo;
+import com.uas.ps.inquiry.entity.OrderStatus;
 import com.uas.ps.inquiry.model.*;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
@@ -56,23 +58,21 @@ public class InquiryServiceImpl implements InquiryService {
     /**
      * 查询公共询价列表信息
      *
-     * @param info
-     * @param filter
+     * @param info 分页新
+     * @param filter 过滤条件
+     * @param state 过滤状态
      * @return
      */
     @Override
-    public Page<PurcInquiryItemInfo> findTodoByPageInfo(final PageInfo info, SearchFilter filter) {
+    public Page<PurcInquiryItemInfo> findTodoByPageInfo(final PageInfo info, SearchFilter filter, String state) {
         if (null != filter) {
-            int k = 1;
-            SimpleExpression[] simpArrs = new SimpleExpression[5];
-            simpArrs[0] = new SimpleExpression("inquiry.enUU", filter.getEnUU(), CriterionExpression.Operator.NE, true);
             if (StringUtils.hasText(filter.getKeyword())) {
-                simpArrs[k] = new SimpleExpression("product.title", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                simpArrs[k + 1] = new SimpleExpression("product.code", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                simpArrs[k + 2] = new SimpleExpression("product.spec", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                simpArrs[k + 3] = new SimpleExpression("product.brand", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                LogicalExpression logical = new LogicalExpression(simpArrs, CriterionExpression.Operator.OR);
-                info.expression(logical);
+                SimpleExpression cmpCode = new SimpleExpression("cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE);
+                SimpleExpression brand = new SimpleExpression("inbrand", filter.getKeyword(), CriterionExpression.Operator.LIKE);
+                SimpleExpression code = new SimpleExpression("product.cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE);
+                SimpleExpression[] simpleExpressions = new SimpleExpression[]{cmpCode, brand, code};
+                LogicalExpression logicalExpression = PredicateUtils.or(simpleExpressions);
+                info.expression(logicalExpression);
             }
             if (filter.getFromDate() != null) {
                 info.expression(PredicateUtils.gte("date", new Date(filter.getFromDate()), false));
@@ -81,6 +81,29 @@ public class InquiryServiceImpl implements InquiryService {
                 info.expression(PredicateUtils.lte("date", new Date(filter.getEndDate()), false));
             }
         }
+        if (null != state) {
+            // 待报价
+            if (state.equals(OrderStatus.todo.name())) {
+                SimpleExpression amount = new SimpleExpression("offerAmount", Constant.NO, CriterionExpression.Operator.EQ);
+                SimpleExpression[] simpleExpressions = new SimpleExpression[]{amount};
+                LogicalExpression logicalExpression = PredicateUtils.and(simpleExpressions);
+                info.expression(logicalExpression);
+            }
+            // 已报价
+            if (state.equals(OrderStatus.done.name())) {
+                SimpleExpression amount = new SimpleExpression("offerAmount", Constant.YES, CriterionExpression.Operator.GTE);
+                SimpleExpression[] simpleExpressions = new SimpleExpression[]{amount};
+                LogicalExpression logicalExpression = PredicateUtils.and(simpleExpressions);
+                info.expression(logicalExpression);
+            }
+            // 已超过截止日期
+            if (state.equals(OrderStatus.end.name())) {
+                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);
+            }
+        }
         return inquiryItemDao.findAll(new Specification<PurcInquiryItemInfo>() {
             public Predicate toPredicate(Root<PurcInquiryItemInfo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
                 query.where(info.getPredicates(root, query, builder));
@@ -108,10 +131,16 @@ public class InquiryServiceImpl implements InquiryService {
                     if (null == item.getDate()) {
                         item.setDate(new Date(System.currentTimeMillis()));
                     }
+                    // 这里设置物料信息的冗余字段
+                    if (null!= item.getProduct()) {
+                        item.setProdTitle(item.getProduct().getTitle());
+                        item.setProdCode(item.getProduct().getCode());
+                        item.setSpec(item.getProduct().getSpec());
+                        item.setInbrand(item.getProduct().getBrand());
+                    }
                     items.add(item);
                 }
-                items = purcInquiryItemDao.save(items);
-                System.out.println(items);
+                purcInquiryItemDao.save(items);
             }
             return inquiry;
         }
@@ -227,4 +256,29 @@ public class InquiryServiceImpl implements InquiryService {
             }
         }, info);
     }
+
+    /**
+     * 针对客户,查询单个物料的报价情况
+     *
+     * @param id   明细id
+     * @param enuu 当前企业UU
+     * @return
+     */
+    @Override
+    public InquiryProductInfo findInquiryDetailById(Long id, Long enuu) {
+        List<PublicInquiryItem> items = itemDao.findBySourceId(id);
+        InquiryProductInfo productInfo = new InquiryProductInfo();
+        if (!CollectionUtils.isEmpty(items)) {
+            Long prId = items.get(0).getProductId();
+            Product product = productDao.findOne(prId);
+            productInfo.setBrand(product.getBrand());
+            productInfo.setCode(product.getCode());
+            productInfo.setTitle(product.getTitle());
+            productInfo.setSpec(product.getSpec());
+            productInfo.setUnit(product.getUnit());
+            productInfo.setCmpCode(productInfo.getCmpCode());
+            productInfo.setInquiryItems(new HashSet<PublicInquiryItem>(items));
+        }
+        return productInfo;
+    }
 }

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

@@ -1,9 +1,11 @@
 package com.uas.ps.inquiry.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.uas.ps.core.util.ContextUtils;
 import com.uas.ps.entity.Product;
 import com.uas.ps.entity.ProductUsers;
 import com.uas.ps.entity.Status;
+import com.uas.ps.inquiry.AccessConfiguration;
 import com.uas.ps.inquiry.dao.*;
 import com.uas.ps.inquiry.entity.*;
 import com.uas.ps.inquiry.model.*;
@@ -30,10 +32,7 @@ import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
+import javax.persistence.criteria.*;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -118,6 +117,16 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
      */
     private final String CONSUMERAPP = "B2B,MALL,ERP";
 
+    /**
+     * 公共物料访问地址
+     */
+    private final String PS_PRODUCT_URL = ContextUtils.getBean(AccessConfiguration.class).getPsProductUrl();
+
+    /**
+     * 公共消息访问地址
+     */
+    private final String PS_MESSAGE_URL = ContextUtils.getBean(AccessConfiguration.class).getPsMessageUrl();
+
     /**
      * 保存公共询价信息
      *
@@ -160,7 +169,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
      */
     private void notify(List<PurcInquiryItem> inquiryItems) {
         for (PurcInquiryItem item : inquiryItems) {
-            String url = "http://192.168.253.12:24000/productuser/getProductUsersByEnUUAndCmpCode";
+            String url = PS_PRODUCT_URL + "/productuser/getProductUsersByEnUUAndCmpCode";
             JSONObject formData = new JSONObject();
             formData.put("enUU", item.getInquiry().getEnUU());
             formData.put("cmpCode", item.getCmpCode());
@@ -173,7 +182,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                         for (ProductUsers user : users) {
                             User u = userDao.findOne(user.getUseruu());
                             Enterprise e = enterpriseDao.findOne(user.getEnuu());
-                            String content = "发布公共询价信息,邀请您参与报价";
+                            String content = "发布关于“" + item.getProduct().getTitle() + "”的公共询价信息,邀请您参与报价";
                             if (null != e) {
                                 u.setEnterprise(e);
                                 content = e.getEnName() + content;
@@ -216,7 +225,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
             @Override
             public void run() {
                 try {
-                    HttpUtil.doPost("http://192.168.253.131:8080", FlexJsonUtils.toJsonDeep(models));
+                    HttpUtil.doPost(PS_MESSAGE_URL, FlexJsonUtils.toJsonDeep(models));
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -236,15 +245,15 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
     public List<PurcInquiry> covert(List<BatchInquiry> inquiries, Long enuu, String address) throws NotFoundException {
         List<PurcInquiry>  purcInquiries = new ArrayList<PurcInquiry>();
         if (!CollectionUtils.isEmpty(inquiries)) {
-            for(BatchInquiry inquiry : inquiries) {
+            for (BatchInquiry inquiry : inquiries) {
                 PurcInquiry old = purcInquiryDao.findByCodeAndEnUU(inquiry.getBi_code(), enuu);
                 //先判断是否已经存在,不存在才进行存储
-                if(null == old) {
+                if (null == old) {
                     PurcInquiry purcInquiry = inquiry.covert();
                     purcInquiry.setEnUU(enuu);
                     purcInquiry.setShip(address);
                     Set<PurcInquiryItem> purcInquiryItems = new HashSet<PurcInquiryItem>();
-                    if(!CollectionUtils.isEmpty(inquiry.getInProducts())) {
+                    if (!CollectionUtils.isEmpty(inquiry.getInProducts())) {
                         for(BatchInProduct batch : inquiry.getInProducts()) {
                             PurcInquiryItem item = new PurcInquiryItem();
                             item.setIsOpen(Constant.YES);
@@ -268,15 +277,16 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                             item.setSource("ERP");
                             item.setSourceid(batch.getBip_id());
                             item.setCurrency(batch.getBip_currency());
-                            item.setUserName(batch.getEm_name());
+                            item.setUserName(batch.getBip_buyername());
                             item.setUserTel(batch.getBip_mobile());
                             item.setUserCode(batch.getBip_buyercode());
-                            if(null != inquiry.getBi_date()) {
+                            item.setOfferAmount(0);
+                            if (null != inquiry.getBi_date()) {
                                 item.setDate(inquiry.getBi_date());
                             } else {
-                                item.setDate(new Date());
+                                item.setDate(new Date(System.currentTimeMillis()));
                             }
-                            if(item.getCurrency() == null) {
+                            if (item.getCurrency() == null) {
                                 item.setCurrency("RMB");
                             }
                             purcInquiryItems.add(item);
@@ -632,14 +642,13 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
     @Override
     public Page<PublicInquiryItemInfo> findByPageInfo(final PageInfo info, final SearchFilter filter) {
         if (null != filter) {
-            int k = 0;
-            SimpleExpression[] simpArrs = new SimpleExpression[4];
             if (StringUtils.hasText(filter.getKeyword())) {
-                simpArrs[k] = new SimpleExpression("product.title", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                simpArrs[k + 1] = new SimpleExpression("product.code", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                simpArrs[k + 2] = new SimpleExpression("product.spec", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                simpArrs[k + 3] = new SimpleExpression("product.brand", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
-                LogicalExpression logical = new LogicalExpression(simpArrs, CriterionExpression.Operator.OR);
+                SimpleExpression title = new SimpleExpression("product.title", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
+                SimpleExpression code = new SimpleExpression("product.code", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
+                SimpleExpression spec = new SimpleExpression("product.spec", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
+                SimpleExpression brand = new SimpleExpression("product.brand", filter.getKeyword(), CriterionExpression.Operator.LIKE, true);
+                SimpleExpression[] simpleExpressions = new SimpleExpression[]{title, brand, code, spec};
+                LogicalExpression logical = new LogicalExpression(simpleExpressions, CriterionExpression.Operator.OR);
                 info.expression(logical);
             }
             if (filter.getFromDate() != null) {
@@ -676,9 +685,10 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                         info.expression(PredicateUtils.lte("date", new Date(filter.getEndDate()), false));
                     }
                     if (!StringUtils.isEmpty(filter.getKeyword())) {
-                        SimpleExpression code = new SimpleExpression("cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE);
+                        SimpleExpression cmpCode = new SimpleExpression("cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE);
                         SimpleExpression brand = new SimpleExpression("inbrand", filter.getKeyword(), CriterionExpression.Operator.LIKE);
-                        SimpleExpression[] simpleExpressions = new SimpleExpression[]{code, brand};
+                        SimpleExpression code = new SimpleExpression("product.cmpCode", filter.getKeyword(), CriterionExpression.Operator.LIKE);
+                        SimpleExpression[] simpleExpressions = new SimpleExpression[]{cmpCode, brand, code};
                         LogicalExpression logicalExpression = PredicateUtils.or(simpleExpressions);
                         info.expression(logicalExpression);
                     }

+ 0 - 32
src/main/java/com/uas/ps/inquiry/test/MessageTest.java

@@ -1,32 +0,0 @@
-package com.uas.ps.inquiry.test;
-
-import com.uas.ps.core.util.HttpUtil;
-import com.uas.ps.core.util.exception.FlexJsonUtils;
-import com.uas.ps.inquiry.entity.MessageModel;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by hejq on 2018-01-24.
- */
-public class MessageTest {
-    public static void main(String[] args) throws Exception {
-        MessageModel model = new MessageModel();
-        model.setProducerApp("ERP");
-        model.setConsumeType("MULTI");
-        model.setConsumerApp("B2B,MALL");
-        model.setContent("发布公共询价信息,邀请您参与报价");
-        model.setReceiverEnuu(10041559l);
-        model.setReceiverUu(1000003217l);
-        model.setSenderEnuu(10041166l);
-        model.setSenderUu(1000003217l);
-        model.setSmsType("MAIL_AND_SM_AND_IM");
-        model.setMailTemplate("d94e931b-b699-46d7-8bb2-94604a3352c0");
-        model.setSmTemplate("8cf71d56-09bb-4d60-993e-ed87ce72ec3b");
-        List<MessageModel> modelList = new ArrayList<>();
-        modelList.add(model);
-        String response = HttpUtil.doPost("http://192.168.253.12:24000/message/messages", FlexJsonUtils.toJsonDeep(modelList));
-        System.out.println(response);
-    }
-}

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

@@ -0,0 +1,23 @@
+datasource.url=jdbc:mysql://10.10.0.208:3306/mall_prod?characterEncoding=utf-8&useSSL=false
+datasource.username=sa
+datasource.password=Select123!#%*(
+datasource.driverClassName=com.mysql.jdbc.Driver
+datasource.initialSize=1
+datasource.minIdle=1
+datasource.maxActive=100
+datasource.maxWait=60000
+datasource.timeBetweenEvictionRunsMillis=60000
+datasource.minEvictableIdleTimeMillis=300000
+datasource.validationQuery=SELECT 1 FROM DUAL
+datasource.testWhileIdle=true
+datasource.testOnBorrow=true
+datasource.testOnReturn=false
+datasource.poolPreparedStatements=true
+datasource.timeBetweenLogStatsMillis=300000
+datasource.maxPoolPreparedStatementPerConnectionSize=20
+datasource.filters=stat,slf4j
+datasource.connectionProperties=druid.stat.mergeSql=false;druid.stat.slowSqlMillis=5000
+
+# Access path
+ps.product.url=https://api-product.usoftmall.com/
+ps.message.url=https://api-message.ubtob.com/

+ 5 - 1
src/main/resources/config/application-dev.properties

@@ -16,4 +16,8 @@ datasource.poolPreparedStatements=true
 datasource.timeBetweenLogStatsMillis=60000
 datasource.maxPoolPreparedStatementPerConnectionSize=20
 datasource.filters=stat,slf4j
-datasource.connectionProperties=druid.stat.mergeSql=false;druid.stat.slowSqlMillis=5000
+datasource.connectionProperties=druid.stat.mergeSql=false;druid.stat.slowSqlMillis=5000
+
+# Access path
+ps.product.url=http://192.168.253.12:24000/product/
+ps.message.url=http://192.168.253.12:24000/message/

+ 5 - 1
src/main/resources/config/application-test.properties

@@ -16,4 +16,8 @@ datasource.poolPreparedStatements=true
 datasource.timeBetweenLogStatsMillis=60000
 datasource.maxPoolPreparedStatementPerConnectionSize=20
 datasource.filters=stat,slf4j
-datasource.connectionProperties=druid.stat.mergeSql=false;druid.stat.slowSqlMillis=5000
+datasource.connectionProperties=druid.stat.mergeSql=false;druid.stat.slowSqlMillis=5000
+
+# Access path
+ps.product.url=http://192.168.253.12:24000/product/
+ps.message.url=http://192.168.253.12:24000/message/