Browse Source

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

yangc 8 years ago
parent
commit
9adb20a9a9

+ 15 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/dao/V_ProductPrivateDao.java

@@ -1,7 +1,5 @@
 package com.uas.platform.b2c.prod.commodity.dao;
 
-import com.uas.platform.b2c.prod.commodity.model.V_ProductPerson;
-import com.uas.platform.b2c.prod.commodity.model.V_ProductPersonId;
 import com.uas.platform.b2c.prod.commodity.model.V_ProductPrivate;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -9,6 +7,21 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Repository
 public interface V_ProductPrivateDao extends JpaRepository<V_ProductPrivate, Long>, JpaSpecificationExecutor<V_ProductPrivate> {
+
+    /**
+     * 根据器件型号,品牌 、enuu
+     *
+     * @param pcmpcode the pcmpcode 器件型号
+     * @param pbranden the pbranden 器件品牌
+     * @param enUU     the en uu enuu
+     * @param standard the standard 标准状态
+     * @return list
+     */
+    @Query(value = "select p from V_ProductPrivate p where p.pcmpcode=:pcmpcode and p.pbranden=:pbranden and p.enUU=:enUU and p.standard=:standard and p.b2cEnabled=:enabled")
+    List<V_ProductPrivate> findProductByPcmpcodeAndPbrandenAndEnUUAndStandard(@Param("pcmpcode") String pcmpcode, @Param("pbranden") String pbranden,
+                                                                              @Param("enUU") Long enUU, @Param("standard") Integer standard, @Param("enabled") Integer enabled);
 }

+ 67 - 28
src/main/java/com/uas/platform/b2c/prod/commodity/model/ProductPerson.java

@@ -1,47 +1,78 @@
 package com.uas.platform.b2c.prod.commodity.model;
 
-import com.uas.platform.b2c.common.account.model.UserBaseInfo;
-
 import javax.persistence.*;
+import java.io.Serializable;
 import java.util.Date;
 
 /**
- * 个人物料库
- * @author wangdy
+ * 用户个人产品库
  *
+ * Created by hejq on 2017-11-08.
  */
+@Table(name = "product$users")
 @Entity
-@Table(name = "products_person")
-public class ProductPerson {
+public class ProductPerson implements Serializable {
 
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
     @Id
-    @GeneratedValue
-    @Column(name = "pp_id")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "pu_id")
     private Long id;
 
-    @Column(name = "user_uu")
+    /**
+     * 用户uu
+     */
+    @Column(name = "pu_useruu")
     private Long userUU;
 
-    @Column(name = "pr_id")
-    private Long productId;
-
-    @Column(name = "up_time")
-    private Date time;
+    /**
+     * 企业uu,方便统计处理
+     */
+    @Column(name = "pu_enuu")
+    private Long enuu;
 
     /**
-     * 物料拥有者
+     * 物料id
      */
-    @OneToOne(cascade = { CascadeType.REFRESH })
-    @JoinColumn(name = "user_uu", insertable = false, updatable = false)
-    private UserBaseInfo user;
+    @Column(name = "pu_prid")
+    private Long productId;
 
     /**
-     * 物料明细
+     * 产品
      */
     @OneToOne(cascade = { CascadeType.REFRESH })
-    @JoinColumn(name = "pr_id", insertable = false, updatable = false)
+    @JoinColumn(name = "pu_prid", insertable = false, updatable = false)
     private Product product;
 
+    /**
+     * 日期
+     */
+    @Column(name = "pu_date")
+    private Date time;
+
+    /**
+     * 存在ERP同步过来数据的情况,记录id
+     */
+    @Column(name = "pu_erpid")
+    private Long erpid;
+
+    public ProductPerson() {
+
+    }
+
+    public ProductPerson(Long enUU, Long userUU, Long productId) {
+        this.setEnuu(enUU);
+        this.setUserUU(userUU);
+        this.setProductId(productId);
+    }
+
     public Long getId() {
         return id;
     }
@@ -58,20 +89,20 @@ public class ProductPerson {
         this.userUU = userUU;
     }
 
-    public Long getProductId() {
-        return productId;
+    public Long getEnuu() {
+        return enuu;
     }
 
-    public void setProductId(Long productId) {
-        this.productId = productId;
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
     }
 
-    public UserBaseInfo getUser() {
-        return user;
+    public Long getProductId() {
+        return productId;
     }
 
-    public void setUser(UserBaseInfo user) {
-        this.user = user;
+    public void setProductId(Long productId) {
+        this.productId = productId;
     }
 
     public Product getProduct() {
@@ -89,4 +120,12 @@ public class ProductPerson {
     public void setTime(Date time) {
         this.time = time;
     }
+
+    public Long getErpid() {
+        return erpid;
+    }
+
+    public void setErpid(Long erpid) {
+        this.erpid = erpid;
+    }
 }

+ 22 - 12
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -68,7 +68,6 @@ import org.springframework.jdbc.core.StatementCallback;
 import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.ui.ModelMap;
 import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
 
@@ -725,6 +724,7 @@ public class ProductServiceImpl implements ProductService {
      */
     @Override
     public ResultMap matchNonStandardProduct() {
+        Map<String, Object> map = new HashMap<>();
         final Long uu = SystemSession.getUser().getUserUU();
         final Long enUU = SystemSession.getUser().getEnterprise().getUu();
         ProductStoreStatus status = productStoreStatusDao.findByEnuu(enUU);
@@ -751,16 +751,25 @@ public class ProductServiceImpl implements ProductService {
             status = productStoreStatusDao.save(storeStatus);
         }
 
-//        int total = productDao.getCountByEnuuAndStatusAndEnabled(enUU, ShortConstant.NO_SHORT, IntegerConstant.YES_SHORT);
-        int total = productDao.getCountByEnuuAndStatus(enUU, ShortConstant.NO_SHORT);
+        int total = productDao.getCountByEnuuAndStatusAndEnabled(enUU, ShortConstant.NO_SHORT, IntegerConstant.YES_SHORT);
         int success = 0;
         int fail = 0;
-        Map<String, Long> queryMap = new HashMap<>();
-        queryMap.put("enUU", enUU);
-        String successUrl = productServiceIp + "/product/match/nonProduct";
-        String result = restTemplate.postForEntity(successUrl, queryMap, String.class).getBody();
-        ModelMap map = FastjsonUtils.fromJson(result, ModelMap.class);
-        fail = total - (int) map.get("success");
+
+        String sql = "/*#mycat:db_type=master*/ call PRODUCT_MATCHES_V1(%s, %s, @out); select @out";
+        final String formatSql = String.format(sql, enUU, uu);
+        success = jdbcTemplate.execute(new StatementCallback<Integer>() {
+            @Override
+            public Integer doInStatement(Statement statement) throws SQLException, DataAccessException {
+                statement.execute(formatSql);
+                ResultSet rs = statement.getResultSet();
+                if (null != rs) {
+                    rs.next();
+                    return rs.getInt(1);
+                }
+                return 0;
+            }
+        });
+        fail = total - success;
 
         status.setStatus(Status.FINISH.value());
         productStoreStatusDao.save(status);
@@ -819,10 +828,10 @@ public class ProductServiceImpl implements ProductService {
         if (result == null) {
             return new ResultMap(CodeType.NO_INFO, "匹配结果信息丢失");
         }
-        List<Product> standardList = productDao.findProductByPcmpcodeAndPbrandenAndEnUUAndStandard(result.getCmpcode(), result.getBranden(), enUU, IntegerConstant.YES_SHORT);
+        List<V_ProductPrivate> standardList = v_productPrivateDao.findProductByPcmpcodeAndPbrandenAndEnUUAndStandard(result.getCmpcode(), result.getBranden(), enUU, IntegerConstant.YES_SHORT, IntegerConstant.YES_SHORT);
         Product standardProduct = null;
         if (!CollectionUtils.isEmpty(standardList)) {
-            standardProduct = standardList.get(0);
+            standardProduct = productDao.findOne(standardList.get(0).getId());
         }
         List<List<Goods>> repeatList = new ArrayList<>();
         // 已有对应标准信息,需要判断在售商品是否重复
@@ -864,7 +873,8 @@ public class ProductServiceImpl implements ProductService {
             productPrivate.setBatchCount(0);
             productPrivateDao.save(productPrivate);
         }
-        restTemplate.postForEntity(productServiceIp + "/product/update", afterProduct, String.class);
+//        restTemplate.postForEntity(productServiceIp + "/product/update", afterProduct, String.class);
+        productDao.save(afterProduct);
         updateInfoAfterTurnStandard(matchId, standardProduct);
         return ResultMap.success(null);
     }

+ 1 - 3
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ReleaseProductByBatchServiceImpl.java

@@ -1160,10 +1160,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
             // TODO 什么接口
 			String result = restTemplate.postForEntity(productServiceIp + "/product/update", products, String.class).getBody();
             List<Long> productIds = JSON.parseArray(result, Long.class);
-            Map<String,Object> requestMap = new HashMap<>();
-            requestMap.put("userUU",SystemSession.getUser().getUserUU());
             //添加个人关系
-            String res  = restTemplate.postForEntity(productServiceIp + "/product/assign/batch", productIds, String.class, requestMap).getBody();
+            String res  = restTemplate.postForEntity(productServiceIp + "/product/assign/batch?userUU=" + SystemSession.getUser().getUserUU(), productIds, String.class).getBody();
             // 默认为b2c Enable开启
             List<ProductPrivate> productPrivates = new ArrayList<>();
             for (Long prId : productIds) {