Explorar o código

物料上传规格书及修改物料信息

yujia %!s(int64=7) %!d(string=hai) anos
pai
achega
275670ff6f

+ 12 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/controller/ProductController.java

@@ -245,7 +245,7 @@ public class ProductController {
 	}
 
     /**
-     * 保存对产品包装,包装数量,生产日期的修改
+     * 更新物料信息(品牌、物料名称(类目),型号、规格、规格书)
      *
      * @param product the product 修改的产品
      * @return the string
@@ -409,4 +409,15 @@ public class ProductController {
 	public ResultMap batchPutOn(Integer standard, String ids) {
 		return productService.batchPutOn(standard, ids);
 	}
+
+	/**
+	 * 更新物料信息(品牌、物料名称(类目),型号、规格、规格书)
+	 *
+	 * @param json 修改的产品
+	 * @Param attachUrl 规格书的url
+	 */
+	@RequestMapping(value = "/update/product", method = RequestMethod.POST)
+	public String updateProduct(@RequestBody String json, String attachUrl){
+		return productService.updateProduct(product);
+	}
 }

+ 16 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/model/ProductPrivate.java

@@ -32,7 +32,13 @@ public class ProductPrivate {
      * goods表信息中存在多少条数据
      */
     @Column(name = "pr_batchcount")
-    private Integer batchCount;
+    private Integer batchCount = 0;
+
+    /**
+     * 附件字段
+     */
+    @Column(name = "pr_attach")
+    private String attach = "";
 
     public Long getId() {
         return id;
@@ -65,4 +71,13 @@ public class ProductPrivate {
     public void setBatchCount(Integer batchCount) {
         this.batchCount = batchCount;
     }
+
+    public String getAttach() {
+        return attach;
+    }
+
+    public ProductPrivate setAttach(String attach) {
+        this.attach = attach;
+        return this;
+    }
 }

+ 20 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java

@@ -2,10 +2,10 @@ package com.uas.platform.b2c.prod.commodity.service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2c.prod.commodity.model.*;
+import com.uas.platform.b2c.prod.product.component.modal.Component;
 import com.uas.platform.b2c.trade.order.model.Purchase;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageInfo;
-import com.uas.platform.core.model.PageParams;
 import org.springframework.data.domain.Page;
 
 import java.util.List;
@@ -134,6 +134,16 @@ public interface ProductService {
      */
     public String updateProduct(Product product);
 
+
+    /**
+     * 修改非标物料的品牌、物料名称、型号、规格、规格书等信息
+     *
+     * @param json 修改的物料信息
+     * @param attachUrl 规格书的地址
+     * @return the string
+     */
+    ResultMap updateProduct(String json, String attachUrl);
+
     /**
      * 根据库存信息 保存对产品包装,包装数量,生产日期的修改
      *
@@ -264,4 +274,13 @@ public interface ProductService {
      */
     Double getQtyInOrderToBeUpload(List<String> batches);
 
+
+    /**
+     * 根据品牌和型号标准器件
+     * @param brName
+     * @param cmpCode
+     * @return
+     */
+    Component findBybrNameAndcmpCode(String brName, String cmpCode);
+
 }

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

@@ -19,44 +19,9 @@ import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
 import com.uas.platform.b2c.prod.commodity.constant.StringConstant;
-import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
-import com.uas.platform.b2c.prod.commodity.dao.GoodsHistoryDao;
-import com.uas.platform.b2c.prod.commodity.dao.MatchModelDao;
-import com.uas.platform.b2c.prod.commodity.dao.PCBDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductDetailDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductMatchResultDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductModifyHistoryDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductPersonDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductPrivateDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductReplaceDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductStandardPutOnInfoDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductStoreStatusDao;
-import com.uas.platform.b2c.prod.commodity.dao.StockInOutHistDao;
-import com.uas.platform.b2c.prod.commodity.dao.V_ProductPersonDao;
-import com.uas.platform.b2c.prod.commodity.dao.V_ProductPrivateDao;
-import com.uas.platform.b2c.prod.commodity.model.Goods;
-import com.uas.platform.b2c.prod.commodity.model.GoodsHistory;
-import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
-import com.uas.platform.b2c.prod.commodity.model.MatchModel;
-import com.uas.platform.b2c.prod.commodity.model.Product;
-import com.uas.platform.b2c.prod.commodity.model.ProductDetail;
-import com.uas.platform.b2c.prod.commodity.model.ProductMatchResult;
-import com.uas.platform.b2c.prod.commodity.model.ProductModifyHistory;
-import com.uas.platform.b2c.prod.commodity.model.ProductPerson;
-import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
-import com.uas.platform.b2c.prod.commodity.model.ProductReplace;
-import com.uas.platform.b2c.prod.commodity.model.ProductStandardPutOnInfo;
-import com.uas.platform.b2c.prod.commodity.model.ProductStoreStatus;
-import com.uas.platform.b2c.prod.commodity.model.StockInOutHist;
-import com.uas.platform.b2c.prod.commodity.model.UASBatchPutOnProperty;
-import com.uas.platform.b2c.prod.commodity.model.V_ProductPerson;
-import com.uas.platform.b2c.prod.commodity.model.V_ProductPrivate;
-import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
-import com.uas.platform.b2c.prod.commodity.service.GoodsService;
-import com.uas.platform.b2c.prod.commodity.service.ProductService;
-import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
-import com.uas.platform.b2c.prod.commodity.service.UASBatchPutOnPropertyService;
+import com.uas.platform.b2c.prod.commodity.dao.*;
+import com.uas.platform.b2c.prod.commodity.model.*;
+import com.uas.platform.b2c.prod.commodity.service.*;
 import com.uas.platform.b2c.prod.commodity.type.ProductConstant;
 import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
 import com.uas.platform.b2c.prod.product.brand.dao.BrandDao;
@@ -93,24 +58,7 @@ import com.uas.platform.core.model.Type;
 import com.uas.platform.core.persistence.criteria.LogicalExpression;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.SimpleExpression;
-import java.lang.reflect.Field;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.log4j.Logger;
@@ -129,6 +77,17 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.lang.reflect.Field;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+
 /**
  * Created by wangyc on 2017/5/26.
  */
@@ -1875,5 +1834,101 @@ public class ProductServiceImpl implements ProductService {
         }
 
     }
+
+
+    /**
+     * 修改非标物料的品牌、物料名称、型号、规格、规格书等信息
+     *
+     * @param json      修改的物料信息
+     * @param attachUrl 规格书的地址
+     * @return the string
+     */
+    @Override
+    public ResultMap updateProduct(String json, String attachUrl) {
+        if (StringUtils.isEmpty(json)) {
+            return new ResultMap(CodeType.NOT_COMPLETE_INFO, "信息不完善");
+        } else {
+            Product product = FlexJsonUtils.fromJson(json, Product.class);
+            //第一步 判断此产品是为非标
+            if (product != null) {
+                Long id = product.getId();
+                if (id == null) {
+                    return new ResultMap(CodeType.NOT_COMPLETE_INFO, "物料主键信息丢失");
+                }
+                Product persistProduct = productDao.findOne(id);
+                if (persistProduct == null) {
+                    return new ResultMap(CodeType.NOT_EXiST, "数据库找不到对应的信息,请重新操作");
+                }
+                Component component = findBybrNameAndcmpCode(persistProduct.getPbranden(), persistProduct.getPcmpcode());
+                if (component != null) {
+                    persistProduct.setPcmpcode(component.getCode());
+                    persistProduct.setPbranden(component.getBrand().getNameEn());
+                    persistProduct.setPbrand(component.getBrand().getNameCn());
+                    persistProduct.setPbranduuid(component.getBrand().getUuid());
+                    persistProduct.setPbrandid(component.getBrandid());
+                    persistProduct.setCmpUuId(component.getUuid());
+                    persistProduct.setCmpImg(component.getImg());
+                    persistProduct.setKinden(component.getKind().getNameEn());
+                    persistProduct.setKind(component.getKind().getNameCn());
+                    persistProduct.setKindid(component.getKindid());
+                    if (!StringUtils.isEmpty(component.getAttach())) {
+                        List<ProductPrivate> privateList = productPrivateDao.findByPrId(persistProduct.getId());
+                        if (CollectionUtils.isNotEmpty(privateList)) {
+                            ProductPrivate productPrivate = privateList.get(0);
+                            productPrivate.setAttach(component.getAttach());
+                        }
+                    } else {
+
+                    }
+                }
+
+                if (persistProduct.getB2cEnabled() != IntegerConstant.YES_SHORT) {
+                    return new ResultMap(CodeType.NOT_PERMIT, "该物料商城未启用,不能操作");
+                }
+                if (!persistProduct.getPbranden().equals(product.getPbranden())) {
+                    if (persistProduct.getStandard() == IntegerConstant.YES_SHORT) {
+                        return new ResultMap(CodeType.NOT_PERMIT, "该物料是标准器件,不能操作");
+                    }
+                }
+                if (!persistProduct.getPcmpcode().equals(product.getPcmpcode())) {
+                    if (persistProduct.getStandard() == IntegerConstant.YES_SHORT) {
+                        return new ResultMap(CodeType.NOT_PERMIT, "该物料是标准器件,不能操作");
+                    }
+                }
+
+            } else {
+                return new ResultMap(CodeType.NOT_COMPLETE_INFO, "物料信息丢失,请重新操作");
+            }
+        }
+        return null;
+    }
+
+
+    /**
+     * 根据品牌和型号找标准器件
+     *
+     * @param brName
+     * @param cmpCode
+     * @return
+     */
+    @Override
+    public Component findBybrNameAndcmpCode(String brName, String cmpCode) {
+        if (StringUtils.isEmpty(brName) || StringUtils.isEmpty(cmpCode)) {
+            return null;
+        } else {
+            List<Brand> brands = brandDao.findByName(brName);
+            if (CollectionUtils.isEmpty(brands)) {
+                return null;
+            } else {
+                Brand brand = brands.get(0);
+                List<Component> componentList = componentDao.findByCodeAndBrandid(cmpCode, brand.getId());
+                if (CollectionUtils.isEmpty(componentList)) {
+                    return null;
+                } else {
+                    return componentList.get(0);
+                }
+            }
+        }
+    }
 }
 

+ 12 - 5
src/main/java/com/uas/platform/b2c/prod/product/brand/dao/BrandDao.java

@@ -1,8 +1,6 @@
 package com.uas.platform.b2c.prod.product.brand.dao;
 
-import java.util.List;
-
-import com.uas.platform.b2c.prod.product.brand.modal.BrandMostSimpleInfo;
+import com.uas.platform.b2c.prod.product.brand.modal.Brand;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -11,10 +9,10 @@ import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
-
-import com.uas.platform.b2c.prod.product.brand.modal.Brand;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
+
 /**
  * 品牌
  * 
@@ -107,4 +105,13 @@ public interface BrandDao extends JpaSpecificationExecutor<Brand>, JpaRepository
 	 */
 	@Query(nativeQuery = true , value = "select * from product$brand order by br_search_count desc LIMIT 2")
 	public List<Brand> findMostSearchBrands();
+
+
+	/**
+	 * 根据品牌名称获取品牌信息
+	 * @param brandName
+	 * @return
+	 */
+	@Query(value = "select b from product$brand b where upper(b.br_name_cn) = upper(:brandName) or upper(b.br_name_en) = upper(:brandName)")
+	List<Brand> findByName(String brandName);
 }

+ 5 - 7
src/main/java/com/uas/platform/b2c/prod/product/component/dao/ComponentDao.java

@@ -1,16 +1,14 @@
 package com.uas.platform.b2c.prod.product.component.dao;
 
-import java.util.List;
-
-import javax.persistence.QueryHint;
-
+import com.uas.platform.b2c.prod.product.component.modal.Component;
 import org.springframework.data.jpa.repository.*;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
-
-import com.uas.platform.b2c.prod.product.component.modal.Component;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.persistence.QueryHint;
+import java.util.List;
+
 @Repository
 public interface ComponentDao extends JpaSpecificationExecutor<Component>, JpaRepository<Component, Long> {
 
@@ -57,7 +55,7 @@ public interface ComponentDao extends JpaSpecificationExecutor<Component>, JpaRe
 	 * @param brandid 品牌id
 	 * @return  器件信息
 	 */
-	@Query("select c from Component c where c.code = :code and c.brandid = :brandid")
+	@Query("select c from Component c where c.brandid = :brandid and upper(c.code) = upper(:code)")
 	@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })
 	public List<Component> findByCodeAndBrandid(@Param("code") String code, @Param("brandid") Long brandid);