ソースを参照

处理批量导入的功能

yujia 7 年 前
コミット
c41e255840

+ 1 - 1
src/main/java/com/uas/platform/b2c/core/utils/NumberUtil.java

@@ -350,7 +350,7 @@ public class NumberUtil {
 	}
 	}
 
 
 	/**
 	/**
-	 * 传入double数据,根据需要保留的位数,采用进一法则。
+	 * 传入double数据,根据需要保留的位数,四舍五入原则。
 	 */
 	 */
 	public static Double fractionNumHalfUp(Double value, Integer fraction) {
 	public static Double fractionNumHalfUp(Double value, Integer fraction) {
 		if(value == null) {
 		if(value == null) {

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

@@ -60,7 +60,7 @@ public final class UploadConstant {
     /**
     /**
      * 生产日期
      * 生产日期
      */
      */
-    public static final int PRODUCE_DATE = 6;
+    public static final int COST_PRICE = 6;
 
 
     /**
     /**
      * 包装方式
      * 包装方式
@@ -144,22 +144,22 @@ public final class UploadConstant {
     /**
     /**
      * 导入表的最大列数
      * 导入表的最大列数
      */
      */
-    public static final int TOTAL_COLUMN = 18;
+    public static final int TOTAL_COLUMN = 17;
 
 
     /**
     /**
      * 导入pcb表的最大列数
      * 导入pcb表的最大列数
      */
      */
-    public static final int TOTAL_COLUMN_PCB = 22;
+    public static final int TOTAL_COLUMN_PCB = 21;
 
 
     /**
     /**
      * 用户可能直接用导入失败的表格进行导入
      * 用户可能直接用导入失败的表格进行导入
      */
      */
-    public static final int MAX_TOTAL_COLUMN = 19;
+    public static final int MAX_TOTAL_COLUMN = 18;
 
 
     /**
     /**
      * 用户可能直接用导入失败的pcb表格进行导入
      * 用户可能直接用导入失败的pcb表格进行导入
      */
      */
-    public static final int MAX_TOTAL_COLUMN_PCB = 23;
+    public static final int MAX_TOTAL_COLUMN_PCB = 22;
 
 
     /**
     /**
      * 个人导入表的最大列数
      * 个人导入表的最大列数

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/model/Product.java

@@ -86,7 +86,7 @@ public class Product {
 	private Double erpReserve;
 	private Double erpReserve;
 
 
 	/**
 	/**
-	 * 价
+	 * 成本单
 	 */
 	 */
 	@Column(name = "pr_price")
 	@Column(name = "pr_price")
 	private Double price;
 	private Double price;

+ 49 - 10
src/main/java/com/uas/platform/b2c/prod/commodity/model/ReleaseProductByBatch.java

@@ -9,6 +9,7 @@ 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.DoubleConstant;
 import com.uas.platform.b2c.prod.commodity.constant.ErrorInfoConstant;
 import com.uas.platform.b2c.prod.commodity.constant.ErrorInfoConstant;
 import com.uas.platform.b2c.prod.commodity.constant.UploadConstant;
 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;
 import com.uas.platform.b2c.prod.commodity.type.ReleaseConstant;
 import com.uas.platform.b2c.trade.order.StringConstant.Currency;
 import com.uas.platform.b2c.trade.order.StringConstant.Currency;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.CollectionUtils;
@@ -208,6 +209,18 @@ public class ReleaseProductByBatch implements Serializable {
 	@Column(name = "rel_manufacturedate")
 	@Column(name = "rel_manufacturedate")
 	private String productDate;
 	private String productDate;
 
 
+	/**
+	 * 成本单价字符串
+	 */
+	@Column(name = "rel_cost_price_str")
+	private String costPriceStr;
+
+	/**
+	 * 成本单价
+	 */
+	@Column(name = "rel_cost_price")
+	private Double costPrice;
+
 	/**
 	/**
 	 * 上传时间
 	 * 上传时间
 	 */
 	 */
@@ -628,8 +641,11 @@ public class ReleaseProductByBatch implements Serializable {
 				throw new RuntimeException(e + "指定字符集不支持");
 				throw new RuntimeException(e + "指定字符集不支持");
 			}
 			}
 		}
 		}
-		setBrandNameEn(StringUtilB2C.toEnglish(StringUtilB2C.getStr(value)));
-		setB2cBranden(StringUtilB2C.toEnglish(StringUtilB2C.getStr(value)));
+		String brand = StringUtilB2C.toEnglish(StringUtilB2C.getStr(value));
+		setBrandNameCn(brand);
+		setBrandNameEn(brand);
+		setB2cBranden(brand);
+		setB2cBrandcn(brand);
 	}
 	}
 
 
 	public void setKindByExcel(Object value) {
 	public void setKindByExcel(Object value) {
@@ -670,21 +686,26 @@ public class ReleaseProductByBatch implements Serializable {
 
 
 	public void setBreakUpByExcel(Object value) {
 	public void setBreakUpByExcel(Object value) {
 		setBreakUpStr(StringUtilB2C.getStr(value));
 		setBreakUpStr(StringUtilB2C.getStr(value));
-		if (!StringUtils.isEmpty(value) && (ReleaseConstant.YES.equals(value.toString()))) {
-			setBreakUp(Boolean.TRUE);
-		} else if (!StringUtils.isEmpty(value) && ReleaseConstant.NO.equals(value.toString())) {
+		if (!StringUtils.isEmpty(value) && ReleaseConstant.NO.equals(value.toString())) {
 			setBreakUp(Boolean.FALSE);
 			setBreakUp(Boolean.FALSE);
 		} else {
 		} else {
-			addErrmsg(ErrorInfoConstant.BREAK_UP_INFO.getInfo());
+			setBreakUp(Boolean.TRUE);
+		}
+	}
+
+	public void setCostPriceByExcel(Object value) {
+		setCostPriceStr(StringUtilB2C.getStr(value));
+		if (value != null && RegexConstant.isNumber(value.toString())) {
+			Double price = Double.valueOf(value.toString());
+			if (ReleaseProductByBatchServiceImpl.validatePrice(price)) {
+				setCostPrice(NumberUtil.fractionNumHalfUp(price, 6));
+			}
 		}
 		}
 	}
 	}
 
 
 	public void setReserveByExcel(Object value) {
 	public void setReserveByExcel(Object value) {
 		setReserveStr(StringUtilB2C.getStr(value));
 		setReserveStr(StringUtilB2C.getStr(value));
-		if (value == null || !RegexConstant.isNumber(value.toString())) {
-			addErrmsg(ErrorInfoConstant.RESERVE_NUMBER_INFO.getInfo());
-		}
-		if (value == null || StringUtils.isEmpty(value) || !RegexConstant.isNumber(value.toString())) {
+		if (StringUtils.isEmpty(value) || !RegexConstant.isNumber(value.toString())) {
 			addErrmsg(ErrorInfoConstant.RESERVE_NUMBER_INFO.getInfo());
 			addErrmsg(ErrorInfoConstant.RESERVE_NUMBER_INFO.getInfo());
 		} else {
 		} else {
 			Double reserve = Double.valueOf(value.toString());
 			Double reserve = Double.valueOf(value.toString());
@@ -1093,6 +1114,24 @@ public class ReleaseProductByBatch implements Serializable {
 		this.productDate = productDate;
 		this.productDate = productDate;
 	}
 	}
 
 
+	public String getCostPriceStr() {
+		return costPriceStr;
+	}
+
+	public ReleaseProductByBatch setCostPriceStr(String costPriceStr) {
+		this.costPriceStr = costPriceStr;
+		return this;
+	}
+
+	public Double getCostPrice() {
+		return costPrice;
+	}
+
+	public ReleaseProductByBatch setCostPrice(Double costPrice) {
+		this.costPrice = costPrice;
+		return this;
+	}
+
 	public Date getCreateDate() {
 	public Date getCreateDate() {
 		return createDate;
 		return createDate;
 	}
 	}

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

@@ -1113,22 +1113,27 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			}
 			}
 			aProduct.setReserveByExcel(reserveValue);
 			aProduct.setReserveByExcel(reserveValue);
 
 
-			Cell productCell = row.getCell(UploadConstant.PRODUCE_DATE);
-			if (productCell != null && productCell.getCellType() == 0) {
-				if (HSSFDateUtil.isCellDateFormatted(productCell)) {
-					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-					String productStr = sdf.format(productCell.getDateCellValue());
-					aProduct.setProductDateByExcel(productStr);
-				} else {
-					aProduct.setProductDateByExcel("");
-					aProduct.setProductDateByExcel(readWorkBookCell(row.getCell(ModifyConstant.PRODUCE_DATE), Cell.CELL_TYPE_STRING,
-							rowNum, ModifyConstant.PRODUCE_DATE));
-				}
-			} else {
-				Object produceValue = readWorkBookCell(row.getCell(UploadConstant.PRODUCE_DATE), Cell.CELL_TYPE_STRING,
-						rowNum, UploadConstant.PRODUCE_DATE);
-				aProduct.setProductDateByExcel(produceValue);
-			}
+			Object costPrice = readWorkBookCell(row.getCell(UploadConstant.COST_PRICE), Cell.CELL_TYPE_STRING,
+					rowNum, UploadConstant.COST_PRICE);
+			aProduct.setCostPriceByExcel(costPrice);
+
+			// 生产日期暂时做了隐藏
+//			Cell productCell = row.getCell(UploadConstant.PRODUCE_DATE);
+//			if (productCell != null && productCell.getCellType() == 0) {
+//				if (HSSFDateUtil.isCellDateFormatted(productCell)) {
+//					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//					String productStr = sdf.format(productCell.getDateCellValue());
+//					aProduct.setProductDateByExcel(productStr);
+//				} else {
+//					aProduct.setProductDateByExcel("");
+//					aProduct.setProductDateByExcel(readWorkBookCell(row.getCell(ModifyConstant.PRODUCE_DATE), Cell.CELL_TYPE_STRING,
+//							rowNum, ModifyConstant.PRODUCE_DATE));
+//				}
+//			} else {
+//				Object produceValue = readWorkBookCell(row.getCell(UploadConstant.PRODUCE_DATE), Cell.CELL_TYPE_STRING,
+//						rowNum, UploadConstant.PRODUCE_DATE);
+//				aProduct.setProductDateByExcel(produceValue);
+//			}
 
 
 			Object packageMethodValue = readWorkBookCell(row.getCell(UploadConstant.PACKAGE_METHOD), Cell.CELL_TYPE_STRING,
 			Object packageMethodValue = readWorkBookCell(row.getCell(UploadConstant.PACKAGE_METHOD), Cell.CELL_TYPE_STRING,
 					rowNum, UploadConstant.PACKAGE_METHOD);
 					rowNum, UploadConstant.PACKAGE_METHOD);
@@ -1151,13 +1156,13 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 					rowNum, UploadConstant.BUY_MIN_QTY);
 					rowNum, UploadConstant.BUY_MIN_QTY);
 			aProduct.setMinBuyQtyByExcel(buyQtyValue);
 			aProduct.setMinBuyQtyByExcel(buyQtyValue);
 
 
-			Object tagValue = readWorkBookCell(row.getCell(UploadConstant.CUSTOM_LABEL), Cell.CELL_TYPE_STRING,
-					rowNum, UploadConstant.CUSTOM_LABEL);
-			aProduct.setTagByExcel(tagValue);
-			// 自定义标签不为null,则检查是否重复
-			if (aProduct.getCode() != null && aProduct.getBrandNameEn() != null && aProduct.getTag() != null) {
-				resetTag(aProduct);
-			}
+//			Object tagValue = readWorkBookCell(row.getCell(UploadConstant.CUSTOM_LABEL), Cell.CELL_TYPE_STRING,
+//					rowNum, UploadConstant.CUSTOM_LABEL);
+//			aProduct.setTagByExcel(tagValue);
+//			// 自定义标签不为null,则检查是否重复
+//			if (aProduct.getCode() != null && aProduct.getBrandNameEn() != null && aProduct.getTag() != null) {
+//				resetTag(aProduct);
+//			}
 
 
 			// 如果是pcb模块,解析尺寸、颜色、铜厚、厚度
 			// 如果是pcb模块,解析尺寸、颜色、铜厚、厚度
 			if (isPcb) {
 			if (isPcb) {
@@ -1284,7 +1289,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 	 * @param price
 	 * @param price
 	 * @return
 	 * @return
 	 */
 	 */
-	private boolean validatePrice(Double price) {
+	public static boolean validatePrice(Double price) {
 		if (price == null) {
 		if (price == null) {
 			return false;
 			return false;
 		}
 		}

BIN
src/main/resources/jxls-tpl/trade/releaseByBatch-rmb.xls


BIN
src/main/resources/jxls-tpl/trade/releaseByBatchError-rmb.xls


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


BIN
src/main/resources/jxls-tpl/trade/releasePCBByBatch-rmb.xls


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


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


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


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