Browse Source

导出错误模板时,增加位置提示。

yuj 7 years ago
parent
commit
230ab65fd5

+ 5 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/constant/StringConstant.java

@@ -61,4 +61,9 @@ public class StringConstant {
      * 空字符串
      */
     public static final String BLANK = " ";
+
+    /**
+     * 文档的位置
+     */
+    public static final String EXCEL_POSITION = "%d行%s列";
 }

+ 9 - 8
src/main/java/com/uas/platform/b2c/prod/commodity/model/ReleaseProductByBatch.java

@@ -7,6 +7,7 @@ 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.StringConstant;
 import com.uas.platform.b2c.prod.commodity.constant.UploadConstant;
 import com.uas.platform.b2c.prod.commodity.service.impl.ReleaseProductByBatchServiceImpl;
 import com.uas.platform.b2c.prod.commodity.type.ReleaseConstant;
@@ -573,11 +574,11 @@ public class ReleaseProductByBatch implements Serializable {
 
 	public void setBrandEnByExcel(Object value) {
 		if (StringUtils.isEmpty(value)) {
-			addErrmsg(ErrorInfoConstant.BRAND_EMPTY_INFO.getInfo());
+			addErrmsg(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.BRAND_EMPTY_INFO.getInfo(), num + 3, "A"));
 		} else {
 			try {
 				if (value.toString().getBytes("GBK").length > 50) {
-					addErrmsg(ErrorInfoConstant.BRAND_LENGTH_INFO.getInfo());
+					addErrmsg(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.BRAND_LENGTH_INFO.getInfo(), num + 3, "A"));
 				}
 			} catch (UnsupportedEncodingException e) {
 				throw new RuntimeException(e + "指定字符集不支持");
@@ -592,11 +593,11 @@ public class ReleaseProductByBatch implements Serializable {
 
 	public void setKindByExcel(Object value) {
 		if (StringUtils.isEmpty(value)) {
-			addErrmsg(ErrorInfoConstant.KIND_EMPTY_INFO.getInfo());
+			addErrmsg(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.KIND_EMPTY_INFO.getInfo(), num + 3, "B"));
 		} else {
 			try {
 				if (value.toString().getBytes("GBK").length > 20) {
-					addErrmsg(ErrorInfoConstant.KIND_LENGTH_INFO.getInfo());
+					addErrmsg(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.KIND_LENGTH_INFO.getInfo(), num + 3, "B"));
 				}
 			} catch (UnsupportedEncodingException e) {
 				throw new RuntimeException(e + "指定字符集不支持");
@@ -610,17 +611,17 @@ public class ReleaseProductByBatch implements Serializable {
 			String code = value.toString().trim();
 			Matcher matcher = codePattern.matcher(code);
 			if (!matcher.find()) {
-				addErrmsg(ErrorInfoConstant.CODE_PATTERN_INFO.getInfo());
+				addErrmsg(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.CODE_PATTERN_INFO.getInfo(), this.num + 3, "C"));
 			}
 			try {
 				if (code.getBytes("GBK").length > 100) {
-					addErrmsg(ErrorInfoConstant.CODE_LENGTH_INFO.getInfo());
+					addErrmsg(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.CODE_LENGTH_INFO.getInfo(), this.num + 3, "C"));
 				}
 			} catch (UnsupportedEncodingException e) {
 				throw new RuntimeException(e + "指定字符集不支持");
 			}
 		} else {
-			addErrmsg(ErrorInfoConstant.CODE_EMPTY_INFO.getInfo());
+			addErrmsg(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.CODE_EMPTY_INFO.getInfo(), this.num + 3, "C"));
 		}
 		setCode(StringUtilB2C.getStr(value));
 		setB2cCode(StringUtilB2C.getStr(value));
@@ -648,7 +649,7 @@ public class ReleaseProductByBatch implements Serializable {
 	public void setReserveByExcel(Object value) {
 		setReserveStr(StringUtilB2C.getStr(value));
 		if (StringUtils.isEmpty(value) || !RegexConstant.isNumber(value.toString())) {
-			addErrmsg(ErrorInfoConstant.RESERVE_NUMBER_INFO.getInfo());
+			addErrmsg(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.RESERVE_NUMBER_INFO.getInfo(), num + 3, "F"));
 		} else {
 			Double reserve = Double.valueOf(value.toString());
 			if (reserve % 1 != 0) {

+ 21 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -72,6 +72,8 @@ import com.uas.platform.b2c.prod.commodity.type.ProductConstant;
 import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
 import com.uas.platform.b2c.prod.product.brand.dao.BrandDao;
 import com.uas.platform.b2c.prod.product.brand.modal.Brand;
+import com.uas.platform.b2c.prod.product.common.dao.CreateNumberDao;
+import com.uas.platform.b2c.prod.product.common.model.CreateNumber;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentDao;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentSubmitDao;
@@ -253,6 +255,9 @@ public class ProductServiceImpl implements ProductService {
     @Autowired
     private CreateNumberService createNumberService;
 
+    @Autowired
+    private CreateNumberDao createNumberDao;
+
     @Autowired
     private MatchModelDao matchModelDao;
 
@@ -2545,7 +2550,22 @@ public class ProductServiceImpl implements ProductService {
         Double minBuyQty = productInfo.getMinOrder() == null ? productInfo.getMinPackQty() : productInfo.getMinOrder();
         productInfo.setMinOrder(minBuyQty);
         INFO_LOGGER.info("单个物料保存: " + FlexJsonUtils.toJson(productInfo));
-        productInfo = productDao.save(productInfo);
+        try {
+            productInfo = productDao.save(productInfo);
+        } catch (Exception e) {
+            //如果保存报错了,判断是否是唯一约束报错。
+            if (e.getMessage().contains("enuu_code")) {
+                CreateNumber tbname = createNumberDao.findByTbname("trade$product_import_num");
+                INFO_LOGGER.info("物料编号信息" + FlexJsonUtils.toJson(tbname));
+                List<Product> products = productDao.findByProdNum(productInfo.getProdNum());
+                if (CollectionUtils.isEmpty(products)) {
+                    INFO_LOGGER.info("重复编号,找不到对应物料" + productInfo.getProdNum());
+                } else {
+                    INFO_LOGGER.info("重复编号的product:" + FlexJsonUtils.toJson(products.get(0)));
+                }
+            }
+        }
+
         // 设置库存信息
         assignmentGoods(goods, productInfo);
         // 保存到商城私有库

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ReleaseProductByBatchServiceImpl.java

@@ -1271,7 +1271,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			if (kindInfo != null && kindInfo.getId() != null && (kindInfoDao.existsChildByParentId(UploadConstant.PCB_PARENTID, kindInfo.getId()) > 0)) {
 				aProduct.setKindUuid(kindInfo.getId());
 			} else {
-				aProduct.addErrmsg(ErrorInfoConstant.KIND_UNSTANDARD.getInfo());
+				aProduct.addErrmsg(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.KIND_UNSTANDARD.getInfo(), rowNum + 1, "B"));
 			}
 		}
 

+ 4 - 3
src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseProductServiceImpl.java

@@ -6,6 +6,7 @@ import com.uas.platform.b2c.core.support.SystemSession;
 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.StringConstant;
 import com.uas.platform.b2c.prod.commodity.constant.UploadConstant;
 import com.uas.platform.b2c.prod.commodity.dao.ProductPrivateDao;
 import com.uas.platform.b2c.prod.commodity.dao.ReleaseProductByBatchDao;
@@ -223,7 +224,7 @@ public class PurchaseProductServiceImpl implements PurchaseProductService {
                 rowNum, UploadConstant.BRAND_ENGLISH);
         if (StringUtils.isEmpty(brandValue)) {
             result += 1;
-            errMsg.append(ErrorInfoConstant.BRAND_EMPTY_INFO.getInfo());
+            errMsg.append(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.BRAND_EMPTY_INFO.getInfo(), rowNum + 1, "A"));
         }
         aProduct.setBrandEnByExcel(brandValue);
 
@@ -235,7 +236,7 @@ public class PurchaseProductServiceImpl implements PurchaseProductService {
             if (errMsg.length() > 0) {
                 errMsg.append(",");
             }
-            errMsg.append(ErrorInfoConstant.KIND_EMPTY_INFO.getInfo());
+            errMsg.append(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.KIND_EMPTY_INFO.getInfo(), rowNum + 1, "B"));
         }
         aProduct.setKindByExcel(kindValue);
 
@@ -247,7 +248,7 @@ public class PurchaseProductServiceImpl implements PurchaseProductService {
             if (errMsg.length() > 0) {
                 errMsg.append(",");
             }
-            errMsg.append(ErrorInfoConstant.CODE_EMPTY_INFO.getInfo());
+            errMsg.append(String.format(StringConstant.EXCEL_POSITION + ErrorInfoConstant.CODE_EMPTY_INFO.getInfo(), rowNum + 1, "C"));
         }
         aProduct.setCodeByExcel(codeValue);
 

BIN
src/main/resources/jxls-tpl/trade/releasePCBByBatchError-usd.xls


+ 8 - 0
src/test/java/com/uas/platform/b2c/javase/collection/ListTest.java

@@ -48,4 +48,12 @@ public class ListTest {
                 iterator.remove();
         }
     }
+
+    @Test
+    public void testString() {
+        String str = "%d行%s列:品牌不能为空";
+        String format = String.format(str, 1, "C");
+        System.out.println(format);
+
+    }
 }