|
|
@@ -12,25 +12,13 @@ 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.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.model.Goods;
|
|
|
-import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
|
|
|
-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.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.GoodsService;
|
|
|
import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
|
|
|
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.common.service.CreateNumberService;
|
|
|
import com.uas.platform.b2c.prod.store.model.StoreIn;
|
|
|
import com.uas.platform.b2c.prod.store.model.StoreStatus;
|
|
|
@@ -45,11 +33,7 @@ import com.uas.platform.core.persistence.criteria.SimpleExpression;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
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;
|
|
|
@@ -72,16 +56,7 @@ 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.*;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
@@ -170,7 +145,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
throw new IllegalOperatorException("表格模板不正确!请重新下载最新模板");
|
|
|
}
|
|
|
}
|
|
|
- int rowNum = sheet.getLastRowNum();
|
|
|
+ int rowNum = SheetUtil.getSheetLastNum(sheet, UploadConstant.MAX_TOTAL_COLUMN);
|
|
|
if (rowNum > 2000) {
|
|
|
throw new IllegalOperatorException
|
|
|
("您上传的信息超过2000条,请拆分成2000以下再上传");
|
|
|
@@ -181,6 +156,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
Row headerRow = sheet.getRow(0);
|
|
|
int total = 0;
|
|
|
int blankNum = 0;
|
|
|
+ long time1 = new Date().getTime();
|
|
|
+ System.err.println();
|
|
|
if (headerRow != null) {
|
|
|
// 验证模板是否为商城模板
|
|
|
validateTemplate(headerRow, colNum, currency, isAPerson);
|
|
|
@@ -228,11 +205,15 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ long time2 = new Date().getTime();
|
|
|
+ System.err.println((time2 - time1) + "**********************************1");
|
|
|
Long userUU = SystemSession.getUser().getUserUU();
|
|
|
Long enUU = SystemSession.getUser().getEnterprise().getUu();
|
|
|
List<ReleaseProductByBatch> addList = new ArrayList<>(releaseProductByBatchs.size());
|
|
|
addList.addAll(releaseProductByBatchs);
|
|
|
resetRepeatData(addList, isImport, isAPerson);
|
|
|
+ long time3 = new Date().getTime();
|
|
|
+ System.err.println((time3 - time2) + "**********************************2");
|
|
|
if (isAPerson) {
|
|
|
for (ReleaseProductByBatch releaseProductByBatch : addList) {
|
|
|
List<Product> productList = productDao.findByEnUUAndPcmpcodeAndPbrandenAndB2cEnabled(enUU,releaseProductByBatch.getB2cCode(),
|
|
|
@@ -248,12 +229,23 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ long time4 = new Date().getTime();
|
|
|
+ System.err.println((time4 - time3) + "**********************************3");
|
|
|
commonDao.save(addList, ReleaseProductByBatch.class);
|
|
|
-
|
|
|
+ long time5 = new Date().getTime();
|
|
|
+ System.err.println((time5 - time4) + "**********************************4");
|
|
|
releaseProductByBatchDao.callValidProcedure(enUU, batch);
|
|
|
+ long time6 = new Date().getTime();
|
|
|
+ System.err.println((time6 - time5) + "**********************************5");
|
|
|
Integer filter = releaseProductByBatchDao.getCountOfImportFail(userUU, batch, failCode);
|
|
|
+ long time7 = new Date().getTime();
|
|
|
+ System.err.println((time7 - time6) + "**********************************6");
|
|
|
Integer failure = releaseProductByBatchDao.getCountPublisherUuAndBatchAndReleaseCode(userUU, batch, ReleaseStatus.failure.value());
|
|
|
+ long time8 = new Date().getTime();
|
|
|
+ System.err.println((time8 - time7) + "**********************************7");
|
|
|
Integer success = releaseProductByBatchDao.getCountPublisherUuAndBatchAndReleaseCode(userUU, batch, ReleaseStatus.success.value());
|
|
|
+ long time9 = new Date().getTime();
|
|
|
+ System.err.println((time9 - time8) + "**********************************8");
|
|
|
modelMap.put("total", total);
|
|
|
modelMap.put("success", success);
|
|
|
modelMap.put("failure", failure);
|
|
|
@@ -455,6 +447,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
} else {
|
|
|
goods.setSelfSale("1");
|
|
|
}
|
|
|
+ goods.setSpec(aBatch.getSpec());
|
|
|
goods.setStatus(aBatch.getStatus());
|
|
|
}
|
|
|
|
|
|
@@ -480,6 +473,10 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
rowNum, ModifyConstant.PRODUCT_CODE);
|
|
|
aProduct.setCode(StringUtilB2C.getStr(codeValue));
|
|
|
|
|
|
+ Object specValue = readWorkBookCell(row.getCell(ModifyConstant.PRODUCT_SPEC), Cell.CELL_TYPE_STRING,
|
|
|
+ rowNum, ModifyConstant.PRODUCT_SPEC);
|
|
|
+ aProduct.setSpec(StringUtilB2C.getStr(specValue));
|
|
|
+
|
|
|
Cell productCell = row.getCell(ModifyConstant.PRODUCE_DATE);
|
|
|
if (productCell != null && productCell.getCellType() == 0) {
|
|
|
if (HSSFDateUtil.isCellDateFormatted(productCell)) {
|