|
|
@@ -1,5 +1,7 @@
|
|
|
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;
|
|
|
@@ -11,9 +13,27 @@ 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.*;
|
|
|
-import com.uas.platform.b2c.prod.commodity.dao.*;
|
|
|
-import com.uas.platform.b2c.prod.commodity.model.*;
|
|
|
+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;
|
|
|
@@ -38,12 +58,41 @@ 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.*;
|
|
|
+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.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.dao.DataAccessException;
|
|
|
@@ -58,25 +107,6 @@ 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 {
|
|
|
|
|
|
@@ -179,6 +209,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
*/
|
|
|
@Override
|
|
|
public ModelMap releaseByWorkbook(Workbook workbook, Boolean selfSale, String currency, Integer isPerson, Integer repeatImport, boolean isPcb) {
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
// 是否上传个人物料
|
|
|
boolean isAPerson = false;
|
|
|
boolean isImport = false;
|
|
|
@@ -210,7 +241,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
Row headerRow = sheet.getRow(0);
|
|
|
int total = 0;
|
|
|
int blankNum = 0;
|
|
|
- long l = System.currentTimeMillis();
|
|
|
if (headerRow != null) {
|
|
|
// 验证模板是否为商城模板
|
|
|
validateTemplate(headerRow, colNum, currency, isAPerson, isPcb);
|
|
|
@@ -303,9 +333,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
Long l5 = 0l;
|
|
|
- String strCount = "";
|
|
|
+ String strCount = "0";
|
|
|
if (isPcb) {
|
|
|
- strCount = releaseProductByBatchDao.callValidProcedurePcb(enUU, batch);
|
|
|
+ releaseProductByBatchDao.callValidProcedurePcb(enUU, batch);
|
|
|
} else {
|
|
|
final Object[] obj = new Object[]{enUU, batch};
|
|
|
String sql = "/*#mycat:db_type=master*/ set @enuu = %s; set @batch = '%s'; call PRODUCT_RELEASE_VALID_V5(@enuu, @batch, @out); select @out";
|
|
|
@@ -348,6 +378,8 @@ 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;
|
|
|
}
|
|
|
|
|
|
@@ -1065,7 +1097,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
aProduct.setBrandEnByExcel(brandValue);
|
|
|
// pcb模块判断类目是否为商城标准品牌
|
|
|
if (isPcb && !StringUtils.isEmpty(aProduct.getBrandNameEn())) {
|
|
|
- List<BrandInfo> brandInfos = brandInfoDao.findByNameEn(aProduct.getBrandNameEn());
|
|
|
+ List<BrandInfo> brandInfos = brandInfoDao.findByName(aProduct.getBrandNameEn());
|
|
|
if (CollectionUtils.isNotEmpty(brandInfos)) {
|
|
|
BrandInfo brandInfo = brandInfos.get(0);
|
|
|
if (brandInfo != null && brandInfo.getId() != null) {
|
|
|
@@ -1712,7 +1744,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
List<ReleaseProductByBatch> releaseProductByBatchList =
|
|
|
releaseProductByBatchDao.findByRelbatchid(batch);
|
|
|
long l1 = System.currentTimeMillis();
|
|
|
- System.err.println("l1 -------------------l " + (l1 - l));
|
|
|
if (CollectionUtils.isEmpty(releaseProductByBatchList)) {
|
|
|
return String.valueOf(IntegerConstant.NO_SHORT);
|
|
|
}
|
|
|
@@ -1777,11 +1808,14 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- List<PCBPropertyValue> propertyValues = (List<PCBPropertyValue>) map.get(product.getEnUU().toString().concat(product.getProdNum()));
|
|
|
- if (CollectionUtils.isNotEmpty(propertyValues)) {
|
|
|
- for (PCBPropertyValue propertyValue : propertyValues) {
|
|
|
- propertyValue.setProductid(prId);
|
|
|
- propertyValueList.add(propertyValue);
|
|
|
+ if (map.get("propertyvalues") != null) {
|
|
|
+ Map<String, List<PCBPropertyValue>> pcbPropertyValueMap = (Map<String, List<PCBPropertyValue>>) map.get("propertyvalues");
|
|
|
+ List<PCBPropertyValue> propertyValues = pcbPropertyValueMap.get(product.getEnUU().toString().concat(product.getProdNum()));
|
|
|
+ if (CollectionUtils.isNotEmpty(propertyValues)) {
|
|
|
+ for (PCBPropertyValue propertyValue : propertyValues) {
|
|
|
+ propertyValue.setProductid(prId);
|
|
|
+ propertyValueList.add(propertyValue);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1845,8 +1879,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
|
|
|
if (isPcb) {
|
|
|
List<PCBPropertyValue> propertyValues = new ArrayList<>();
|
|
|
- if (!StringUtils.isEmpty(releaseProductByBatch.getSize())) {
|
|
|
- PCBPropertyValue propertyValue = new PCBPropertyValue(sizeProId, releaseProductByBatch.getSize());
|
|
|
+ if (!StringUtils.isEmpty(releaseProductByBatch.getSizePcb())) {
|
|
|
+ PCBPropertyValue propertyValue = new PCBPropertyValue(sizeProId, releaseProductByBatch.getSizePcb());
|
|
|
propertyValues.add(propertyValue);
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(releaseProductByBatch.getColor())) {
|
|
|
@@ -1872,7 +1906,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
List<ReleaseProductByBatch> reList = new ArrayList<>();
|
|
|
if (productsfromRelease.size() != 0) {
|
|
|
productService.saveByJdbcTemplate(productsfromRelease);
|
|
|
- List<Product> productes = productService.findProductsByProdNums(proNums);
|
|
|
+ List<Product> productes = productService.findProductIdAndProdnumsByProdNums(proNums);
|
|
|
+ System.err.println("新增物料之后,获取物料的个数=" + productes.size() + "新增物料的个数 =" + productsfromRelease.size());
|
|
|
for (Product producte : productes) {
|
|
|
ProductPrivate productPrivate = new ProductPrivate();
|
|
|
productPrivate.setB2cEnabled(IntegerConstant.YES_SHORT);
|
|
|
@@ -1882,7 +1917,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
|
|
|
prIds.add(producte.getId());
|
|
|
|
|
|
- for (ReleaseProductByBatch releaseProductByBatch : releaseProductByBatchList) {
|
|
|
+ for (ReleaseProductByBatch releaseProductByBatch : productsfromRelease) {
|
|
|
if (StringUtilB2C.equals(releaseProductByBatch.getProductNum(), producte.getProdNum())) {
|
|
|
releaseProductByBatch.setProductid(producte.getId());
|
|
|
reList.add(releaseProductByBatch);
|