Ver Fonte

Merge remote-tracking branch 'origin/release-201831-wangcz' into release-201831-wangcz

wangcz há 7 anos atrás
pai
commit
cb68f406f7

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

@@ -12,17 +12,57 @@ import com.uas.platform.b2c.common.search.rpc.service.SearchService;
 import com.uas.platform.b2c.common.search.util.SPage;
 import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.constant.IntegerConstant;
-import com.uas.platform.b2c.core.constant.*;
+import com.uas.platform.b2c.core.constant.ReleaseStatus;
 import com.uas.platform.b2c.core.constant.ShortConstant;
+import com.uas.platform.b2c.core.constant.SplitChar;
+import com.uas.platform.b2c.core.constant.Status;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.core.utils.RegexConstant;
 import com.uas.platform.b2c.core.utils.StringUtilB2C;
-import com.uas.platform.b2c.prod.commodity.constant.*;
-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.constant.DoubleConstant;
+import com.uas.platform.b2c.prod.commodity.constant.ErrorInfoConstant;
+import com.uas.platform.b2c.prod.commodity.constant.PublicProductUrl;
+import com.uas.platform.b2c.prod.commodity.constant.StringConstant;
+import com.uas.platform.b2c.prod.commodity.constant.UploadConstant;
+import com.uas.platform.b2c.prod.commodity.dao.CommodityInOutboundDao;
+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.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.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.ProductStoreStatusDao;
+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.CommodityInOutbound;
+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.InOutboundDetail;
+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.ProductAttachSubmit;
+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.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.ProductStoreStatus;
+import com.uas.platform.b2c.prod.commodity.model.ReleaseProductByBatch;
+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.ProductAttachService;
+import com.uas.platform.b2c.prod.commodity.service.ProductPrivateService;
+import com.uas.platform.b2c.prod.commodity.service.ProductService;
+import com.uas.platform.b2c.prod.commodity.service.UASBatchPutOnPropertyService;
 import com.uas.platform.b2c.prod.commodity.type.InOutBoundType;
 import com.uas.platform.b2c.prod.commodity.type.ProductConstant;
 import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
@@ -84,13 +124,23 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-import java.io.UnsupportedEncodingException;
+import java.io.*;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.regex.Matcher;
@@ -2339,22 +2389,28 @@ public class ProductServiceImpl implements ProductService {
     @Override
     public ResultMap editOne(JSONObject jsonObject) {
         // 物料信息
-        Product product = (Product)jsonObject.get("product");
-        if (null == product) {
+        Object productObject = jsonObject.get("product");
+        if (null == productObject) {
             return ResultMap.error(new IllegalOperatorException("物料信息不能为空"));
         }
+        Product product = JSONObject.parseObject(productObject.toString(), Product.class);
         // 检验物料信息
         ResultMap resultMap = checkProductInfo(product);
         if (Objects.equals(CodeType.ERROR.code(), resultMap.getCode())) {
             return resultMap;
         }
         // 库存信息
-        Goods goods = (Goods)jsonObject.get("goods");
-        if (null == goods) {
+        Object goodsObject = jsonObject.get("goods");
+        if (null == goodsObject) {
             return ResultMap.error(new IllegalOperatorException("库存信息不能为空"));
         }
+        Goods goods = JSONObject.parseObject(goodsObject.toString(), Goods.class);
         // PCB
-        Integer isPcb = (Integer)jsonObject.get("isPcb");
+        Object pcbObject = jsonObject.get("isPcb");
+        Integer isPcb = null;
+        if (null != pcbObject) {
+            isPcb = Integer.valueOf(pcbObject.toString());
+        }
         Long enUU = SystemSession.getUser().getEnterprise().getUu();
         Long userUU = SystemSession.getUser().getUserUU();
         product.setPbrand(product.getBrand());
@@ -2400,6 +2456,9 @@ public class ProductServiceImpl implements ProductService {
         productPrivateDao.save(productPrivate);
         // 保存出入库信息
         if (null != inOutbound) {
+            for (InOutboundDetail detail : inOutbound.getInOutboundDetails()) {
+                detail.setCommodityInOutbound(inOutbound);
+            }
             inOutbound = commodityInOutboundDao.save(inOutbound);
             logger.info("出入库历史", "卖家中心单个物料上传进行入库操作", inOutbound.getType(), "", inOutbound.getId());
         }
@@ -2463,7 +2522,7 @@ public class ProductServiceImpl implements ProductService {
             String str = com.uas.platform.b2c.fa.payment.utils.StringUtils.cutOutStringIgnoreEncode(product.getSpec(), UploadConstant.SPEC_MAX_BYTE);
             product.setSpec(str);
         }
-        if (!StringUtils.isEmpty(errMsg)) {
+        if (!StringUtils.isEmpty(errMsg.toString())) {
             return ResultMap.error(new IllegalOperatorException(errMsg.toString()));
         }
         return ResultMap.success();
@@ -2494,7 +2553,8 @@ public class ProductServiceImpl implements ProductService {
         // 入库
         String type;
         CommodityInOutbound inOutbound;
-        if (product.getErpReserve() > existProduct.getErpReserve()) {
+        // 原库存不存在或者当前库存大于原库存,入库
+        if (existProduct.getErpReserve() == null || product.getErpReserve() > existProduct.getErpReserve()) {
             type = InOutBoundType.OTHER_INBOUND;
             inOutbound = new CommodityInOutbound(type);
             goodsInventory(product.getErpReserve(), type, existProduct.getId());
@@ -2593,7 +2653,7 @@ public class ProductServiceImpl implements ProductService {
         if (CollectionUtils.isEmpty(productPersonList)) {
             ProductPerson productPerson = new ProductPerson(userUU, enUU, productInfo.getId());
             productPerson = productPersonDao.save(productPerson);
-            logger.info("个人物料", "新增个人物料", "通过卖家中心单个物料上传绑定个人物料", productPerson.getProduct().getProdNum(), productPerson.getId());
+            logger.info("个人物料", "新增个人物料", "通过卖家中心单个物料上传绑定个人物料", "", productPerson.getId());
         }
     }