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