Przeglądaj źródła

【批量修改】表格模版按需求修改;测试bug问题处理

dongbw 7 lat temu
rodzic
commit
76f2fc9278

+ 17 - 0
src/main/java/com/uas/platform/b2c/core/constant/Status.java

@@ -495,6 +495,23 @@ public enum Status {
 		throw new IllegalArgumentException("没有与编号 [" + statusCode + "]匹配的状态");
 	}
 
+	/**
+	 * @param statusCode
+	 *            状态的编码
+	 * @return 状态描述
+	 * @throws IllegalArgumentException
+	 *             如果statusCode不存在的话
+	 * @date 2018年5月15日 17:31:47 dongbw
+	 */
+	public static String valueStringOf(int statusCode) {
+		for (Status status : values()) {
+			if (status.value == statusCode) {
+				return status.phrase;
+			}
+		}
+		throw new IllegalArgumentException("没有与编号 [" + statusCode + "]匹配的状态");
+	}
+
 	/**
 	 * 返回状态的编号
 	 */

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

@@ -536,7 +536,7 @@ public class ReleaseProductByBatch implements Serializable {
 		if (StringUtils.isEmpty(value)) {
 			addErrmsg(ErrorInfoConstant.BATCH_EMPTY.getInfo());
 		}
-		setBatchCode(StringUtilB2C.getStr(value));
+		setBatchCode(StringUtilB2C.getStr(value).trim());
 	}
 
 	public void setStatusByExcel(Object value) {

+ 68 - 7
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java

@@ -19,16 +19,39 @@ import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.DoubleArith;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.NumberUtil;
-import com.uas.platform.b2c.core.utils.PatternUtil;
 import com.uas.platform.b2c.core.utils.RegexConstant;
 import com.uas.platform.b2c.external.erp.commodity.util.ModelConverter;
 import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
 import com.uas.platform.b2c.prod.commodity.constant.IntegerConstant;
 import com.uas.platform.b2c.prod.commodity.constant.StringConstant;
-import com.uas.platform.b2c.prod.commodity.dao.*;
-import com.uas.platform.b2c.prod.commodity.model.*;
+import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
+import com.uas.platform.b2c.prod.commodity.dao.GoodsHistoryDao;
+import com.uas.platform.b2c.prod.commodity.dao.GoodsModifyInfoDao;
+import com.uas.platform.b2c.prod.commodity.dao.GoodsSimpleDao;
+import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
+import com.uas.platform.b2c.prod.commodity.dao.ProductDetailDao;
+import com.uas.platform.b2c.prod.commodity.dao.ProductPrivateDao;
+import com.uas.platform.b2c.prod.commodity.dao.ProductStandardPutOnInfoDao;
+import com.uas.platform.b2c.prod.commodity.model.Goods;
+import com.uas.platform.b2c.prod.commodity.model.GoodsFilter;
+import com.uas.platform.b2c.prod.commodity.model.GoodsHistory;
 import com.uas.platform.b2c.prod.commodity.model.GoodsHistory.OperateType;
-import com.uas.platform.b2c.prod.commodity.service.*;
+import com.uas.platform.b2c.prod.commodity.model.GoodsInfo;
+import com.uas.platform.b2c.prod.commodity.model.GoodsModifyInfo;
+import com.uas.platform.b2c.prod.commodity.model.GoodsPriceInfo;
+import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
+import com.uas.platform.b2c.prod.commodity.model.GoodsSimple;
+import com.uas.platform.b2c.prod.commodity.model.ModifyInfo;
+import com.uas.platform.b2c.prod.commodity.model.Product;
+import com.uas.platform.b2c.prod.commodity.model.ProductDetail;
+import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
+import com.uas.platform.b2c.prod.commodity.model.ProductStandardPutOnInfo;
+import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
+import com.uas.platform.b2c.prod.commodity.service.GoodsPriceInfoService;
+import com.uas.platform.b2c.prod.commodity.service.GoodsService;
+import com.uas.platform.b2c.prod.commodity.service.ProductService;
+import com.uas.platform.b2c.prod.commodity.service.ProductStandardPutOnInfoService;
+import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
 import com.uas.platform.b2c.prod.commodity.status.ModifyInfoStatus;
 import com.uas.platform.b2c.prod.commodity.type.ModifyConstant;
 import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
@@ -62,7 +85,11 @@ import com.uas.platform.b2c.trade.support.CodeType;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.b2c.trade.util.BoundedExecutor;
 import com.uas.platform.core.exception.IllegalOperatorException;
-import com.uas.platform.core.model.*;
+import com.uas.platform.core.model.Constant;
+import com.uas.platform.core.model.EncodingRulesConstant;
+import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.model.PageParams;
+import com.uas.platform.core.model.Type;
 import com.uas.platform.core.persistence.criteria.CriterionExpression;
 import com.uas.platform.core.persistence.criteria.CriterionExpression.Operator;
 import com.uas.platform.core.persistence.criteria.LogicalExpression;
@@ -99,7 +126,17 @@ import javax.persistence.criteria.Root;
 import java.math.BigInteger;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Date;
+import java.util.GregorianCalendar;
+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;
@@ -1470,6 +1507,17 @@ public class GoodsServiceImpl implements GoodsService {
             info.setBatchCode(beforeGoods.getBatchCode());
             infoList.add(info);
         }
+        Integer beforeGoodsStatus = beforeGoods.getStatus();
+        Integer afterGoodsStatus = afterGoods.getStatus();
+        if (!beforeGoodsStatus.equals(afterGoodsStatus)) {
+            ModifyInfo info = new ModifyInfo();
+            info.setModifyField(ModifyConstant.MODIFY_GOODS_STATUS.getPhrase());
+            info.setBefore(Status.valueStringOf(beforeGoodsStatus));
+            info.setAfter(Status.valueStringOf(afterGoodsStatus));
+            info.setType(ModifyInfo.TYPE_SALE);
+            info.setBatchCode(beforeGoods.getBatchCode());
+            infoList.add(info);
+        }
         Short beforeMaxDelivery = beforeGoods.getMaxDelivery();
         Short afterMaxDelivery = afterGoods.getMaxDelivery();
         if (!beforeMaxDelivery.equals(afterMaxDelivery)) {
@@ -1759,9 +1807,19 @@ public class GoodsServiceImpl implements GoodsService {
         if (resultMap.getCode() != CodeType.OK.code()) {
             return null;
         }
-
         GoodsHistory history = goodsHistoryService.converTGoodsHist(nowGoods,
                 OperateType.Update.getPhrase(), false);
+        // 修改上下架状态并产生上下架历史
+        GoodsHistory goodsHistory = null;
+        if (!nowGoods.getStatus().equals(oldGoods.getStatus())) {
+            nowGoods.setStatus(oldGoods.getStatus());
+            // 如果是下架
+            if (oldGoods.getStatus().equals(Status.REMOVED.value())) {
+                goodsHistory = goodsHistoryService.converTGoodsHist(nowGoods, OperateType.Down.getPhrase(), false);
+            } else if (oldGoods.getStatus().equals(Status.AVAILABLE.value())) {
+                goodsHistory = goodsHistoryService.converTGoodsHist(nowGoods, OperateType.Publish.getPhrase(), false);
+            }
+        }
         List<Order> orders = detailService.updateOrderDetailsByGoods(nowGoods);
         //更新购物车信息
         List<Cart> cartList = cartService.updateCartByGoods(nowGoods);
@@ -1770,6 +1828,9 @@ public class GoodsServiceImpl implements GoodsService {
 //		ProductStandardPutOnInfo putOnInfo = productStandardPutOnInfoService.updateProductStandardPutOnInfoByGoods(nowGoods);
 //		Product product = productService.updateProduct(putOnInfo);
 		updateGoodsRelateInfo(orders, cartList, browsingHistories, null, null, history, nowGoods);
+		if (null != goodsHistory) {
+            goodsHistoryService.save(goodsHistory);
+        }
 		//更新店铺推荐的信息
 		if(isChangeSaleType) { // 如果切换了销售方式
 			Set<String> uuids = new HashSet<>();

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

@@ -294,7 +294,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 
 			Object sellObj = readWorkBookCell(row.getCell(ModifyConstant.SALE_METHOD), Cell.CELL_TYPE_STRING,
 					r, ModifyConstant.SALE_METHOD);
-			aBatch.setSaleMethod(StringUtilB2C.getStr(sellObj));
+			aBatch.setSaleMethod(StringUtilB2C.getStr(sellObj).trim());
 			StoreIn storeIn = getModifyStoreInfo(sellObj, self, consignment);
 			if (storeIn == null) {
 				aBatch.addErrmsg(ErrorInfoConstant.STORE_ERROR.getInfo());
@@ -437,6 +437,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 		}
 		if (null != aBatch.getMinPackage()) {
 			goods.setMinPackQty(aBatch.getMinPackage());
+		} else {
+			goods.setMinPackQty(1d);
 		}
 		if (null != aBatch.getMinBuyQty()) {
 			goods.setMinBuyQty(aBatch.getMinBuyQty());
@@ -485,7 +487,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 				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(ModifyConstant.PRODUCE_DATE), Cell.CELL_TYPE_STRING,
@@ -541,7 +544,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 		Object tagValue = readWorkBookCell(row.getCell(ModifyConstant.CUSTOM_LABEL), Cell.CELL_TYPE_STRING,
 				rowNum, ModifyConstant.CUSTOM_LABEL);
         if (!StringUtils.isEmpty(tagValue)) {
-            aProduct.setTagByExcel(tagValue);
+            aProduct.setTagByExcel(tagValue.toString().trim());
         }
 		// 自定义标签不为null,则检查是否重复
 		if (aProduct.getCode() != null && aProduct.getBrandNameEn() != null && aProduct.getTag() != null) {
@@ -991,7 +994,8 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 					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,

+ 3 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/type/ModifyConstant.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2c.prod.commodity.type;
 /**
  * 商品修改常量
  * @author hulh 2017年12月14日 11点22分
+ * @version dongbw 2018年5月15日 16:49:02 增加在售状态
  */
 public enum  ModifyConstant {
     MODIFY_IMG(10, "产品图片"),
@@ -16,7 +17,8 @@ public enum  ModifyConstant {
     MODIFY_MAX_DELIVERY(18, "最大交期"),
     MODIFY_SALE_METHOD(19, "销售方式"),
     MODIFY_QTY_NUMBER(20, "分段数量"),
-    MODIFY_QTY_PRICE(21, "分段价格");
+    MODIFY_QTY_PRICE(21, "分段价格"),
+    MODIFY_GOODS_STATUS(22, "在售状态");
 
     ModifyConstant(int value, String phrase) {
         this.value = value;

BIN
src/main/resources/jxls-tpl/trade/goods.xls


BIN
src/main/resources/jxls-tpl/trade/products-error.xls


BIN
src/main/resources/jxls-tpl/trade/products.xls


+ 1 - 1
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_onSaleCtrl.js

@@ -10,7 +10,7 @@ define([ 'app/app' ], function(app) {
         var intPattern = /^[1-9]+$/;
 
         $scope.packageArray = ["Bulk-散装", "Reel-卷装", "Tape/Reel-编带", "Tray-盘装",
-            "Tube-管装", "盒装", "袋装", "罐装", "瓶装", "桶装", "箱装"];
+            "Tube-管装", "盒装", "袋装", "罐装", "瓶装", "桶装", "箱装", "其他"];
 
         //只包含中文和英文的字符
         var pattern = /^[\u4e00-\u9fa5a-zA-Z]+$/;