|
|
@@ -1,7 +1,5 @@
|
|
|
package com.uas.platform.b2c.prod.commodity.service.impl;
|
|
|
|
|
|
-import static com.uas.platform.b2c.core.utils.NumberUtil.fractionNumCeil;
|
|
|
-
|
|
|
import com.uas.platform.b2c.common.account.model.Enterprise;
|
|
|
import com.uas.platform.b2c.common.base.dao.CommonDao;
|
|
|
import com.uas.platform.b2c.core.config.SysConf;
|
|
|
@@ -13,31 +11,10 @@ import com.uas.platform.b2c.core.support.SystemSession;
|
|
|
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.DoubleConstant;
|
|
|
-import com.uas.platform.b2c.prod.commodity.constant.ErrorInfoConstant;
|
|
|
-import com.uas.platform.b2c.prod.commodity.constant.ModifyConstant;
|
|
|
-import com.uas.platform.b2c.prod.commodity.constant.ShortConstant;
|
|
|
-import com.uas.platform.b2c.prod.commodity.constant.UploadConstant;
|
|
|
-import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
|
|
|
-import com.uas.platform.b2c.prod.commodity.dao.PCBDao;
|
|
|
-import com.uas.platform.b2c.prod.commodity.dao.PcbPropertyvalueDao;
|
|
|
-import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
|
|
|
-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.ReleaseProductByBatchDao;
|
|
|
-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.GoodsQtyPrice;
|
|
|
-import com.uas.platform.b2c.prod.commodity.model.PCB;
|
|
|
-import com.uas.platform.b2c.prod.commodity.model.PCBPropertyValue;
|
|
|
-import com.uas.platform.b2c.prod.commodity.model.Product;
|
|
|
-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.ReleaseProductByBatch;
|
|
|
-import com.uas.platform.b2c.prod.commodity.service.GoodsService;
|
|
|
-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.ReleaseProductByBatchService;
|
|
|
+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.util.GoodsUtil;
|
|
|
import com.uas.platform.b2c.prod.commodity.util.SheetUtil;
|
|
|
import com.uas.platform.b2c.prod.product.brand.dao.BrandInfoDao;
|
|
|
@@ -58,41 +35,12 @@ import com.uas.platform.core.model.PageInfo;
|
|
|
import com.uas.platform.core.persistence.criteria.CriterionExpression;
|
|
|
import com.uas.platform.core.persistence.criteria.PredicateUtils;
|
|
|
import com.uas.platform.core.persistence.criteria.SimpleExpression;
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.sql.PreparedStatement;
|
|
|
-import java.sql.ResultSet;
|
|
|
-import java.sql.SQLException;
|
|
|
-import java.sql.Statement;
|
|
|
-import java.text.DateFormat;
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
-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.Set;
|
|
|
-import java.util.concurrent.ExecutorService;
|
|
|
-import java.util.concurrent.Executors;
|
|
|
-import java.util.regex.Matcher;
|
|
|
-import java.util.regex.Pattern;
|
|
|
-import javax.persistence.criteria.CriteriaBuilder;
|
|
|
-import javax.persistence.criteria.CriteriaQuery;
|
|
|
-import javax.persistence.criteria.Predicate;
|
|
|
-import javax.persistence.criteria.Root;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
|
import org.apache.log4j.Logger;
|
|
|
import org.apache.poi.hssf.usermodel.HSSFCell;
|
|
|
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
|
|
|
-import org.apache.poi.ss.usermodel.Cell;
|
|
|
-import org.apache.poi.ss.usermodel.DateUtil;
|
|
|
-import org.apache.poi.ss.usermodel.Row;
|
|
|
-import org.apache.poi.ss.usermodel.Sheet;
|
|
|
-import org.apache.poi.ss.usermodel.Workbook;
|
|
|
+import org.apache.poi.ss.usermodel.*;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.dao.DataAccessException;
|
|
|
@@ -107,6 +55,25 @@ import org.springframework.ui.ModelMap;
|
|
|
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.math.BigDecimal;
|
|
|
+import java.sql.PreparedStatement;
|
|
|
+import java.sql.ResultSet;
|
|
|
+import java.sql.SQLException;
|
|
|
+import java.sql.Statement;
|
|
|
+import java.text.DateFormat;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+import java.util.concurrent.ExecutorService;
|
|
|
+import java.util.concurrent.Executors;
|
|
|
+import java.util.regex.Matcher;
|
|
|
+import java.util.regex.Pattern;
|
|
|
+
|
|
|
+import static com.uas.platform.b2c.core.utils.NumberUtil.fractionNumCeil;
|
|
|
+
|
|
|
@Service
|
|
|
public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchService {
|
|
|
|
|
|
@@ -164,6 +131,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
@Autowired
|
|
|
private ProductService productService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private GoodsHistoryService goodsHistoryService;
|
|
|
+
|
|
|
/**
|
|
|
* 控制任务提交速度的线程池
|
|
|
*/
|
|
|
@@ -283,9 +253,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- System.out.println("获取订单信息缺失");
|
|
|
- long l1 = System.currentTimeMillis();
|
|
|
- System.err.println("l1--------------l testyuj" + (l1 - l));
|
|
|
Long enUU = SystemSession.getUser().getEnterprise().getUu();
|
|
|
if (!isAPerson) {
|
|
|
//1:比较品牌、型号、自定义标签是否重复,2:比较六要素是否重复
|
|
|
@@ -310,14 +277,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- long l2 = System.currentTimeMillis();
|
|
|
- System.err.println("l2--------------l1 testyuj" + (l2 - l1));
|
|
|
commonDao.save(releaseProductByBatchs, ReleaseProductByBatch.class);
|
|
|
- long l3 = System.currentTimeMillis();
|
|
|
- System.err.println("l3--------------l2 testyuj" + (l3 - l2));
|
|
|
releaseProductByBatchDao.callReleaseExistValidProcedure(batch, isAPerson, enUU);
|
|
|
- long l4 = System.currentTimeMillis();
|
|
|
- System.err.println("l4--------------l3 testyuj" + (l4 - l3));
|
|
|
if (isAPerson) {
|
|
|
for (ReleaseProductByBatch releaseProductByBatch : releaseProductByBatchs) {
|
|
|
Long productid = releaseProductByBatch.getProductid();
|
|
|
@@ -332,7 +293,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- Long l5 = 0l;
|
|
|
String strCount = "0";
|
|
|
if (isPcb) {
|
|
|
releaseProductByBatchDao.callValidProcedurePcb(enUU, batch);
|
|
|
@@ -348,14 +308,11 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
ResultSet rs = stmt.getResultSet();
|
|
|
if (null != rs) {
|
|
|
rs.next();
|
|
|
- System.err.println("测试结果---------" + rs.getString(1));
|
|
|
return rs.getString(1);
|
|
|
}
|
|
|
return "0";
|
|
|
}
|
|
|
});
|
|
|
- l5 = System.currentTimeMillis();
|
|
|
- System.err.println("l5--------------l4 testyuj" + (l5 - l4));
|
|
|
}
|
|
|
Integer filter = 0, failure = 0, success = 0;
|
|
|
if (!StringUtilB2C.isEmpty(strCount)) {
|
|
|
@@ -378,8 +335,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
modelMap.put("failure", failure);
|
|
|
modelMap.put("filter", filter);
|
|
|
modelMap.put("batch", batch);
|
|
|
- long l6 = System.currentTimeMillis();
|
|
|
- System.err.println("l6--------------l6 testyuj" + (l6 - l5));
|
|
|
return modelMap;
|
|
|
}
|
|
|
|
|
|
@@ -1779,7 +1734,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
System.err.println("l9 -------------------l8 " + (l9 - l8));
|
|
|
ArrayList<Long> list = new ArrayList<>();
|
|
|
list.addAll((Set<Long>)map.get("prIds"));
|
|
|
- afterPublishToGoodsDo(list, (Set<Long>)map.get("reIds"));
|
|
|
+ afterPublishToGoodsDo(list, (Set<Long>)map.get("reIds"), batch);
|
|
|
return StringUtilB2C.getStr(num);
|
|
|
}
|
|
|
|
|
|
@@ -1985,8 +1940,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
/**
|
|
|
* 批量发布之后,需要做的事情,内部使用线程,不需要让用户等结果
|
|
|
*/
|
|
|
- public void afterPublishToGoodsDo(final List<Long> productIds, final Set<Long> reIds) {
|
|
|
- if (CollectionUtils.isEmpty(productIds)) {
|
|
|
+ public void afterPublishToGoodsDo(final List<Long> productIds, final Set<Long> reIds, String batchid) {
|
|
|
+ final List<Goods> goodses = goodsService.findByBatchId(batchid);
|
|
|
+ if (CollectionUtils.isEmpty(productIds)) {
|
|
|
return ;
|
|
|
}
|
|
|
final Runnable afterPublishToGoodsRunnable = new Runnable() {
|
|
|
@@ -2012,7 +1968,16 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
List<Goods> goodses = goodsDao.findByProductIds(prIds);
|
|
|
goodsService.updateSpecByProducts(products, goodses);
|
|
|
}
|
|
|
- }
|
|
|
+
|
|
|
+ List<GoodsHistory> list = new ArrayList<>();
|
|
|
+ for (Goods goodse : goodses) {
|
|
|
+ GoodsHistory goodsHistory = goodsHistoryService.converTGoodsHist(goodse, GoodsHistory.OperateType.Publish.getPhrase(), false);
|
|
|
+ list.add(goodsHistory);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ commonDao.save(list, GoodsHistory.class);
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
try {
|
|
|
executor.submitTask(afterPublishToGoodsRunnable);
|