|
|
@@ -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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|