|
|
@@ -10,10 +10,36 @@ 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.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.ModifyConstant;
|
|
|
+import com.uas.platform.b2c.prod.commodity.constant.ShortConstant;
|
|
|
+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.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.ReleaseProductByBatchDao;
|
|
|
+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.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.CommodityInOutboundService;
|
|
|
+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.InOutboundDetailService;
|
|
|
+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.util.GoodsUtil;
|
|
|
import com.uas.platform.b2c.prod.commodity.util.SheetUtil;
|
|
|
import com.uas.platform.b2c.prod.product.brand.dao.BrandInfoDao;
|
|
|
@@ -38,10 +64,13 @@ import com.uas.platform.core.persistence.criteria.PredicateUtils;
|
|
|
import com.uas.platform.core.persistence.criteria.SimpleExpression;
|
|
|
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;
|
|
|
@@ -68,7 +97,16 @@ import java.sql.SQLException;
|
|
|
import java.sql.Statement;
|
|
|
import java.text.DateFormat;
|
|
|
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.Set;
|
|
|
import java.util.concurrent.ExecutorService;
|
|
|
import java.util.concurrent.Executors;
|
|
|
import java.util.regex.Matcher;
|
|
|
@@ -109,9 +147,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
@Autowired
|
|
|
private RestTemplate restTemplate;
|
|
|
|
|
|
- @Autowired
|
|
|
- private ProductPrivateDao productPrivateDao;
|
|
|
-
|
|
|
@Autowired
|
|
|
private ProductPersonDao productPersonDao;
|
|
|
|
|
|
@@ -127,9 +162,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
@Autowired
|
|
|
private PcbPropertyvalueDao pcbPropertyvalueDao;
|
|
|
|
|
|
- @Autowired
|
|
|
- private V_ProductPrivateDao v_productPrivateDao;
|
|
|
-
|
|
|
@Autowired
|
|
|
private ProductService productService;
|
|
|
|
|
|
@@ -145,9 +177,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
@Autowired
|
|
|
private InOutboundDetailService inOutboundDetailService;
|
|
|
|
|
|
-
|
|
|
- private final Logger logger = Logger.getLogger(getClass());
|
|
|
-
|
|
|
/**
|
|
|
* 控制任务提交速度的线程池
|
|
|
*/
|
|
|
@@ -286,38 +315,52 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
} else {
|
|
|
strCount = productReleaseValid(enUU, batch);
|
|
|
}
|
|
|
- Integer filter = 0, failure = 0, success = 0;
|
|
|
if (!StringUtilB2C.isEmpty(strCount)) {
|
|
|
- String[] split = strCount.split(SplitChar.HYPHEN);
|
|
|
- if (split.length == 3) {
|
|
|
- filter = Integer.valueOf(split[0]);
|
|
|
- failure = Integer.valueOf(split[1]);
|
|
|
- success = Integer.valueOf(split[2]);
|
|
|
- } else {
|
|
|
- //上面的代码只能在正式上获取到返回值,为了在测试上执行,增加获取结果的代码
|
|
|
- Long userUU = SystemSession.getUser().getUserUU();
|
|
|
- filter = releaseProductByBatchDao.getCountOfImportFail(userUU, batch, failCode);
|
|
|
- failure = releaseProductByBatchDao.getCountPublisherUuAndBatchAndReleaseCode(userUU, batch, ReleaseStatus.failure.value());
|
|
|
- success = releaseProductByBatchDao.getCountPublisherUuAndBatchAndReleaseCode(userUU, batch, ReleaseStatus.success.value());
|
|
|
- }
|
|
|
+ checkReleaseCount(modelMap, strCount, batch);
|
|
|
}
|
|
|
if (!isAPerson && !isPcb) {
|
|
|
String publish = publishByBatch(batch, isPcb, ignoreImport);
|
|
|
modelMap.put("publish", publish);
|
|
|
}
|
|
|
modelMap.put("total", total);
|
|
|
- modelMap.put("success", success);
|
|
|
- modelMap.put("failure", failure);
|
|
|
- modelMap.put("filter", filter);
|
|
|
modelMap.put("batch", batch);
|
|
|
return modelMap;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 统计批量上传数据相关
|
|
|
+ *
|
|
|
+ * @param modelMap ModelMap
|
|
|
+ * @param strCount
|
|
|
+ * @param batch
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void checkReleaseCount(ModelMap modelMap, String strCount, String batch) {
|
|
|
+ Integer filter, failure, success;
|
|
|
+ String[] split = strCount.split(SplitChar.HYPHEN);
|
|
|
+ int splitIndex = 3;
|
|
|
+ if (split.length == splitIndex) {
|
|
|
+ filter = Integer.valueOf(split[0]);
|
|
|
+ failure = Integer.valueOf(split[1]);
|
|
|
+ success = Integer.valueOf(split[2]);
|
|
|
+ } else {
|
|
|
+ //上面的代码只能在正式上获取到返回值,为了在测试上执行,增加获取结果的代码
|
|
|
+ Long userUU = SystemSession.getUser().getUserUU();
|
|
|
+ filter = releaseProductByBatchDao.getCountOfImportFail(userUU, batch, failCode);
|
|
|
+ failure = releaseProductByBatchDao.getCountPublisherUuAndBatchAndReleaseCode(userUU, batch, ReleaseStatus.failure.value());
|
|
|
+ success = releaseProductByBatchDao.getCountPublisherUuAndBatchAndReleaseCode(userUU, batch, ReleaseStatus.success.value());
|
|
|
+ }
|
|
|
+ modelMap.put("success", success);
|
|
|
+ modelMap.put("failure", failure);
|
|
|
+ modelMap.put("filter", filter);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 判断是存在相同的信息
|
|
|
* @param releaseProductByBatchs
|
|
|
*/
|
|
|
- private void judgeSameReleaseProductByBatch(List<ReleaseProductByBatch> releaseProductByBatchs) {
|
|
|
+ @Override
|
|
|
+ public void judgeSameReleaseProductByBatch(List<ReleaseProductByBatch> releaseProductByBatchs) {
|
|
|
if (CollectionUtils.isEmpty(releaseProductByBatchs)) {
|
|
|
return ;
|
|
|
}
|
|
|
@@ -339,7 +382,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 根据上传的信息,查看是否在个人物料库已存在。
|
|
|
* @param releaseProductByBatchs
|
|
|
@@ -380,7 +422,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
* @param batch 批次
|
|
|
* @return 验证结果
|
|
|
*/
|
|
|
- private String productReleaseValid(Long enUU, String batch) {
|
|
|
+ @Override
|
|
|
+ public String productReleaseValid(Long enUU, String batch) {
|
|
|
if (enUU == null || StringUtilB2C.isEmpty(batch)) {
|
|
|
return "0";
|
|
|
}
|
|
|
@@ -857,21 +900,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 验证该产品自定义标签是否重复
|
|
|
- * @param aProduct 单个产品
|
|
|
- * @param productSet 产品列表
|
|
|
- */
|
|
|
- private Boolean validateTagInfo(ReleaseProductByBatch aProduct, List<ReleaseProductByBatch> productSet) {
|
|
|
- for (ReleaseProductByBatch each : productSet) {
|
|
|
- if (aProduct.getBrandNameEn().equals(each.getBrandNameEn()) && aProduct.getCode().equals(each.getCode())
|
|
|
- && aProduct.getTag().equals(each.getTag())) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 验证该模板是否是商城模板
|
|
|
* @param headerRow 首行
|
|
|
@@ -879,7 +907,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
* @param currency 币别
|
|
|
* @param isPcb 是否pcb模块
|
|
|
*/
|
|
|
- private void validateTemplate(Row headerRow, int colNum, String currency, boolean isAPerson, boolean isPcb) {
|
|
|
+ @Override
|
|
|
+ public void validateTemplate(Row headerRow, int colNum, String currency, boolean isAPerson, boolean isPcb) {
|
|
|
if (isAPerson) {
|
|
|
if (colNum == UploadConstant.MAX_TOTAL_COLUMN_PERSON) {
|
|
|
Cell errorCell = headerRow.getCell(UploadConstant.MAX_TOTAL_COLUMN_PERSON - 1);
|
|
|
@@ -939,11 +968,17 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
* @param rowNum 行号
|
|
|
* @return
|
|
|
*/
|
|
|
- private boolean validateExcelData(Row row, int rowNum) {
|
|
|
+ @Override
|
|
|
+ public boolean validateExcelData(Row row, int rowNum) {
|
|
|
Object codeValue = readWorkBookCell(row.getCell(UploadConstant.PRODUCT_CODE), Cell.CELL_TYPE_STRING,
|
|
|
rowNum, UploadConstant.PRODUCT_CODE);
|
|
|
- if ("只能填数字、英文、英文特殊符号".equals(StringUtilB2C.getStr(codeValue)) || "SJ-S-112DMH(举例)".equals(StringUtilB2C.getStr(codeValue)))
|
|
|
- return false;
|
|
|
+ // 内容格式提示
|
|
|
+ String formatTip = "只能填数字、英文、英文特殊符号";
|
|
|
+ // 举例提示
|
|
|
+ String exampleTip = "SJ-S-112DMH(举例)";
|
|
|
+ if (formatTip.equals(StringUtilB2C.getStr(codeValue)) || exampleTip.equals(StringUtilB2C.getStr(codeValue))) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@@ -982,52 +1017,13 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 分析分段的价格
|
|
|
- */
|
|
|
- private List<GoodsQtyPrice> setPricesQty(List<GoodsQtyPrice> prices, ReleaseProductByBatch productByBatch) {
|
|
|
- GoodsQtyPrice[] array = new GoodsQtyPrice[prices.size()];
|
|
|
- prices.toArray(array);
|
|
|
- Arrays.sort(array, new Comparator<GoodsQtyPrice>() {
|
|
|
- @Override
|
|
|
- public int compare(GoodsQtyPrice o1, GoodsQtyPrice o2) {
|
|
|
- return NumberUtil.compare(o1.getEnd(), o2.getEnd());
|
|
|
- }
|
|
|
- });
|
|
|
- List<GoodsQtyPrice> prices1 = Arrays.asList(array);
|
|
|
- List<GoodsQtyPrice> prices2 = new ArrayList<>();
|
|
|
- for (int j = 0; j < prices1.size(); j++) {
|
|
|
- GoodsQtyPrice price = prices1.get(j);
|
|
|
- if (j == 0) {
|
|
|
- if(NumberUtil.compare(price.getEnd(), DoubleConstant.minReserve) > -1) {
|
|
|
- price.setStart(DoubleConstant.minReserve);
|
|
|
- prices2.add(price);
|
|
|
- }
|
|
|
- } else if (j < prices1.size() - 1) {
|
|
|
- GoodsQtyPrice qtyPrice = prices1.get(j - 1);
|
|
|
- if(NumberUtil.compare(qtyPrice.getEnd(), price.getEnd()) < 0 ) {
|
|
|
- price.setStart(NumberUtil.add(qtyPrice.getEnd(), 1.0d));
|
|
|
- prices2.add(price);
|
|
|
- }
|
|
|
- } else if (j == prices1.size() - 1) {
|
|
|
- price.setEnd(DoubleConstant.maxMinPackageQty);
|
|
|
- if (prices1.size() == 1) {
|
|
|
- price.setStart(DoubleConstant.minReserve);
|
|
|
- } else {
|
|
|
- price.setStart(NumberUtil.add(prices1.get(j - 1).getEnd(), 1.0d));
|
|
|
- }
|
|
|
- prices2.add(price);
|
|
|
- }
|
|
|
- }
|
|
|
- return prices2;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 获取店铺的信息
|
|
|
* @param selfSale
|
|
|
* @return
|
|
|
*/
|
|
|
- private StoreIn getStoreInfo(Boolean selfSale) {
|
|
|
+ @Override
|
|
|
+ public StoreIn getStoreInfo(Boolean selfSale) {
|
|
|
StoreIn storeIn = null;
|
|
|
if(selfSale) {
|
|
|
storeIn = storeInService.findByEnUU(SystemSession.getUser().getEnterprise().getUu());
|
|
|
@@ -1046,7 +1042,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
* @return
|
|
|
*/
|
|
|
private StoreIn getStoreIn(Boolean selfSale) {
|
|
|
- StoreIn storeIn = null;
|
|
|
+ StoreIn storeIn;
|
|
|
if (selfSale) {
|
|
|
storeIn = storeInService.findByEnUU(SystemSession.getUser().getEnterprise().getUu());
|
|
|
if((storeIn == null) || (storeIn.getStatus() != StoreStatus.OPENED)) {
|
|
|
@@ -1116,41 +1112,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 当分段价格为空时,设置默认分段价格
|
|
|
- * 其中分段1价格为必填项,这个是否还需要
|
|
|
- *
|
|
|
- * @param aProduct 单行数据
|
|
|
- * @param priceMaxMinPrice 最大和最小价格
|
|
|
- * @return
|
|
|
- */
|
|
|
- private GoodsQtyPrice getDefaultQtyPrice(ReleaseProductByBatch aProduct, Double[] priceMaxMinPrice) {
|
|
|
- GoodsQtyPrice qtyPrice = new GoodsQtyPrice();
|
|
|
- qtyPrice.setStart(aProduct.getMinBuyQty());
|
|
|
- if (Currency.USD.equals(aProduct.getCurrency())) {
|
|
|
- Double usdMinPackPrice = aProduct.getUsdMinPackPrice();
|
|
|
- if (usdMinPackPrice != null) {
|
|
|
- qtyPrice.setUSDPrice(usdMinPackPrice);
|
|
|
- qtyPrice.setUSDNTPrice(usdMinPackPrice);
|
|
|
- priceMaxMinPrice[0] = usdMinPackPrice;
|
|
|
- priceMaxMinPrice[1] = usdMinPackPrice;
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
- Double rmbMinPackPrice = aProduct.getRmbMinPackPrice();
|
|
|
- if (rmbMinPackPrice != null) {
|
|
|
- qtyPrice.setRMBPrice(rmbMinPackPrice);
|
|
|
- BigDecimal priceNum = new BigDecimal(rmbMinPackPrice);
|
|
|
- BigDecimal taxNum = new BigDecimal(aProduct.getRmbTaxRate() + 1);
|
|
|
- qtyPrice.setRMBNTPrice(priceNum.divide(taxNum, 6, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
- priceMaxMinPrice[0] = rmbMinPackPrice;
|
|
|
- priceMaxMinPrice[1] = rmbMinPackPrice;
|
|
|
- }
|
|
|
- }
|
|
|
- qtyPrice.setEnd(DoubleConstant.maxMinPackageQty);
|
|
|
- return qtyPrice;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 初始化product信息,将excel内容转换为product字段值
|
|
|
* @param row 行对象
|
|
|
@@ -1158,7 +1119,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
* @param rowNum 行数
|
|
|
* @param isPcb 是否pcb模块
|
|
|
*/
|
|
|
- private int convertValueToProduct(Row row, ReleaseProductByBatch aProduct, int rowNum, boolean isAPerson, boolean isPcb) {
|
|
|
+ @Override
|
|
|
+ public int convertValueToProduct(Row row, ReleaseProductByBatch aProduct, int rowNum, boolean isAPerson, boolean isPcb) {
|
|
|
// 统计为空的个数
|
|
|
int result = 0;
|
|
|
aProduct.setNum(rowNum - 2);
|
|
|
@@ -1266,10 +1228,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
aProduct.setMinBuyQtyByExcel(buyQtyValue);
|
|
|
|
|
|
aProduct.setTagByExcel("");
|
|
|
-// // 自定义标签不为null,则检查是否重复
|
|
|
-// if (aProduct.getCode() != null && aProduct.getBrandNameEn() != null && aProduct.getTag() != null) {
|
|
|
-// resetTag(aProduct);
|
|
|
-// }
|
|
|
|
|
|
// 如果是pcb模块,解析尺寸、颜色、铜厚、厚度
|
|
|
if (isPcb) {
|
|
|
@@ -1298,38 +1256,6 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 重新设置tag标签
|
|
|
- * @param aProduct
|
|
|
- */
|
|
|
- private void resetTag(ReleaseProductByBatch aProduct) {
|
|
|
- Long enuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
- int count = 0;
|
|
|
- List<Product> productList = productDao.findMatchStandard(enuu, aProduct.getBrandNameEn(), aProduct.getCode(), IntegerConstant.YES_SHORT);
|
|
|
- if (!CollectionUtils.isEmpty(productList)) {
|
|
|
- if (aProduct.getBatchCode() != null) {
|
|
|
- count = goodsDao.findCountByTagNotBatch(enuu, aProduct.getBatchCode(), productList.get(0).getPbranden(),
|
|
|
- productList.get(0).getPcmpcode(), aProduct.getTag());
|
|
|
- } else {
|
|
|
- count = goodsDao.findCountByTagInGoods(enuu, productList.get(0).getPbranden(),
|
|
|
- productList.get(0).getPcmpcode(), aProduct.getTag());
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
- if (aProduct.getBatchCode() != null) {
|
|
|
- count = goodsDao.findCountByTagNotBatch(enuu, aProduct.getBatchCode(), aProduct.getBrandNameEn(),
|
|
|
- aProduct.getCode(), aProduct.getTag());
|
|
|
- } else {
|
|
|
- count = goodsDao.findCountByTagInGoods(enuu, aProduct.getBrandNameEn(),
|
|
|
- aProduct.getCode(), aProduct.getTag());
|
|
|
- }
|
|
|
- }
|
|
|
- // 如果在该型号品牌已有重复,则忽略该自定义标签
|
|
|
- if (count != 0) {
|
|
|
- aProduct.setTag(null);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 初始化产品导入分段价格
|
|
|
* @param row 行对象
|