فهرست منبع

Merge branch 'dev-mysql' into erp_batchToGoods_20180117

yujia 8 سال پیش
والد
کامیت
7ad628aad9

+ 24 - 0
src/main/java/com/uas/platform/b2c/external/erp/prod/service/impl/ProdServiceImpl.java

@@ -2,13 +2,18 @@ package com.uas.platform.b2c.external.erp.prod.service.impl;
 
 import com.uas.api.b2c_erp.seller.model.Prod;
 import com.uas.api.b2c_erp.seller.service.ProdService;
+import com.uas.platform.b2c.core.constant.IntegerConstant;
 import com.uas.platform.b2c.core.constant.Status;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.support.log.ErpB2cBufferedLogger;
 import com.uas.platform.b2c.external.erp.product.util.ModelConverter;
+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.ProductPrivateDao;
 import com.uas.platform.b2c.prod.commodity.model.Product;
+import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
 import com.uas.platform.b2c.prod.commodity.service.ProductService;
+import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
 import com.uas.platform.b2c.prod.store.dao.StoreInDao;
 import com.uas.platform.b2c.prod.store.model.StoreIn;
 import com.uas.platform.core.logging.BufferedLoggerManager;
@@ -37,6 +42,15 @@ public class ProdServiceImpl implements ProdService {
     @Autowired
     private StoreInDao storeInDao;
 
+    @Autowired
+    private GoodsDao goodsDao;
+
+    @Autowired
+    private ProductPrivateDao productPrivateDao;
+
+    @Autowired
+    private ReleaseProductByBatchService releaseProductByBatchService;
+
     private static final ErpB2cBufferedLogger logger = BufferedLoggerManager.getLogger(ErpB2cBufferedLogger.class);
 
     private final Logger loggerOut = Logger.getLogger(getClass());
@@ -56,6 +70,16 @@ public class ProdServiceImpl implements ProdService {
             } else {
                 products.add(product);
             }
+            ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(prod.getPr_id());
+            if (null == productPrivate) {
+                productPrivate = new ProductPrivate();
+                productPrivate.setPrId(prod.getPr_id());
+            }
+            productPrivate.setB2cEnabled(IntegerConstant.YES_SHORT);
+            // 统计现在有多少在售信息
+            int batchCount = goodsDao.findCountByProductid(prod.getPr_id());
+            productPrivate.setBatchCount(batchCount);
+            productPrivateDao.save(productPrivate);
         }
         productDao.save(products);// 保存上传的物料
 

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductPrivateDao.java

@@ -10,7 +10,7 @@ import java.util.List;
 
 public interface ProductPrivateDao  extends JpaRepository<ProductPrivate, Long>, JpaSpecificationExecutor<ProductPrivate> {
 
-    public ProductPrivate findByPrId(Long prId);
+    public List<ProductPrivate> findByPrId(Long prId);
 
 
     /**

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

@@ -17,7 +17,7 @@ public class ProductPrivate {
     /**
      * 物料主键
      */
-    @Column(name = "pr_id", unique = true)
+    @Column(name = "pr_id" ,unique = true)
     private Long prId;
 
     /**

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

@@ -591,10 +591,12 @@ public class ReleaseProductByBatch implements Serializable {
 			}
 		}
 		String packagingData = StringUtilB2C.replaceLineBreak(StringUtilB2C.getStr(value));
-		try {
-			packagingData = com.uas.platform.b2c.fa.payment.utils.StringUtils.cutOutString(packagingData, 10);
-		} catch (UnsupportedEncodingException e) {
-			throw new RuntimeException(e + "指定字符集不支持");
+		if (!isAPerson) {
+			try {
+				packagingData = com.uas.platform.b2c.fa.payment.utils.StringUtils.cutOutString(packagingData, 10);
+			} catch (UnsupportedEncodingException e) {
+				throw new RuntimeException(e + "指定字符集不支持");
+			}
 		}
 		setPackaging(packagingData);
 	}

+ 9 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/ReleaseProductByBatchService.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2c.prod.commodity.service;
 
+import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
 import com.uas.platform.b2c.prod.commodity.model.ReleaseProductByBatch;
 import com.uas.platform.core.model.PageInfo;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -94,4 +95,12 @@ public interface ReleaseProductByBatchService {
      */
     public List<ReleaseProductByBatch> findFailureReleaseProductByBatch(String batch);
 
+
+    /**
+     * 查找私有字段根据pr_id
+     * @param prId
+     * @return
+     */
+    public ProductPrivate findByPrId(Long prId);
+
 }

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

@@ -135,6 +135,9 @@ public class GoodsServiceImpl implements GoodsService {
     @Autowired
     private CreateNumberService createNumberService;
 
+    @Autowired
+    private ReleaseProductByBatchService releaseProductByBatchService;
+
     @Autowired
     private ComponentDao componentDao;
 
@@ -1419,7 +1422,7 @@ public class GoodsServiceImpl implements GoodsService {
         if(persistGoods.getProductid() != null) {
             Product product = productDao.findOne(persistGoods.getProductid());
             if(product != null) {
-                ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                 if (productPrivate == null) {
                     productPrivate = new ProductPrivate();
                 }
@@ -2904,7 +2907,7 @@ public class GoodsServiceImpl implements GoodsService {
         if(goods.getProductid() != null) {
             Product product = productDao.findOne(goods.getProductid());
             if(product != null) {
-                ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                 if (productPrivate == null) {
                     productPrivate = new ProductPrivate();
                 }
@@ -2974,12 +2977,16 @@ public class GoodsServiceImpl implements GoodsService {
             if (goods.getProductid() != null) {
                 Product product = productDao.findOne(goods.getProductid());
                 if (product != null) {
-                    ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                    ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                     if (productPrivate == null) {
                         productPrivate = new ProductPrivate();
                     }
                     Integer count = productPrivate.getBatchCount();
-                    productPrivate.setBatchCount(--count);
+                    if (null == count){
+                        productPrivate.setBatchCount(0);
+                    }else {
+                        productPrivate.setBatchCount(--count);
+                    }
                     productPrivateDao.save(productPrivate);
                     products.add(product);
                 }
@@ -3077,7 +3084,7 @@ public class GoodsServiceImpl implements GoodsService {
                 }
                 goodsDao.save(tagEmptyGoods);
                 goodsDao.save(goods);
-                ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                 if (productPrivate == null) {
                     productPrivate = new ProductPrivate();
                 }

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

@@ -15,10 +15,7 @@ import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
 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.service.GoodsHistoryService;
-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.UASBatchPutOnPropertyService;
+import com.uas.platform.b2c.prod.commodity.service.*;
 import com.uas.platform.b2c.prod.commodity.type.ProductConstant;
 import com.uas.platform.b2c.prod.product.brand.dao.BrandDao;
 import com.uas.platform.b2c.prod.product.brand.modal.Brand;
@@ -126,6 +123,9 @@ public class ProductServiceImpl implements ProductService {
     @Autowired
     private ProductModifyHistoryDao productModifyHistoryDao;
 
+    @Autowired
+    private ReleaseProductByBatchService releaseProductByBatchService;
+
     @Autowired
     private GoodsHistoryService goodsHistoryService;
 
@@ -242,7 +242,7 @@ public class ProductServiceImpl implements ProductService {
                 }
             }
             // 拿私有物料信息
-            ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+            ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
             if (null != productPrivate) {
                 product.setB2cEnabled(productPrivate.getB2cEnabled());
                 product.setBatchCount(productPrivate.getBatchCount());
@@ -414,7 +414,7 @@ public class ProductServiceImpl implements ProductService {
                     if (CollectionUtils.isNotEmpty(goodses)) {
                         goodsService.deleteGoods(goodses);
                     }
-                    ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                    ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                     if (productPrivate == null) {
                         productPrivate = new ProductPrivate();
                     }
@@ -440,6 +440,7 @@ public class ProductServiceImpl implements ProductService {
         List<ProductPerson> personList = new ArrayList<>();
         Integer fail = 0;
         Integer success = 0;
+        Integer isHave = 0;
         Long uu = SystemSession.getUser().getEnterprise().getUu();
         if(ProductConstant.STANDARD.equals(type)) {
             standard = IntegerConstant.YES_SHORT;
@@ -491,13 +492,18 @@ public class ProductServiceImpl implements ProductService {
                     productMatchResultDao.delete(productMatchResultSet);
                     goodsService.deleteGoods(goodses);
                     //productDao.delete(product.getId());
-                    ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                    ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
+                    if (productPrivate.getB2cEnabled().equals(IntegerConstant.NO_SHORT)) {
+                        fail++;
+                        isHave++;
+                    } else {
+                        success++;
+                    }
                     productPrivate.setB2cEnabled(IntegerConstant.NO_SHORT);
                     productPrivateDao.save(productPrivate);
                     if (!StringUtils.isEmpty(product.getCmpUuId())) {
                         uuids.add(product.getCmpUuId());
                     }
-                    success++;
                 }else {
                     fail++;
                 }
@@ -515,7 +521,7 @@ public class ProductServiceImpl implements ProductService {
             if(success != 0) {
                 message += ",";
             }
-            message += "删除失败" + fail + "条,原因:该产品可能已经被其他单据引用,无法删除";
+            message += "删除失败" + (fail-isHave) + "条,原因:该产品可能已经被其他单据或个人物料库引用,无法删除";
         }
         //如果是全部都不能删除,才能设置失败的状态码
         if((products.size() != 0) && (products.size() ==  fail.intValue())) {
@@ -880,7 +886,7 @@ public class ProductServiceImpl implements ProductService {
         if (standardProduct == null) {
             standardProduct = afterProduct;
         } else {
-            ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+            ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
             if (productPrivate == null) {
                 productPrivate = new ProductPrivate();
             }
@@ -908,7 +914,7 @@ public class ProductServiceImpl implements ProductService {
         }
         goodsHistoryDao.save(goodsHistoryList);
         Product beforeProduct = productDao.findOne(beforeId);
-        ProductPrivate productPrivate = productPrivateDao.findByPrId(beforeProduct.getId());
+        ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(beforeProduct.getId());
         if (productPrivate == null) {
             productPrivate = new ProductPrivate();
         }
@@ -920,7 +926,8 @@ public class ProductServiceImpl implements ProductService {
             return new ResultMap(CodeType.NO_INFO, "匹配结果信息丢失");
         }
         Product standardProduct = updateProductAfterMatch(beforeProduct, result);
-        restTemplate.postForEntity(productServiceIp + "/product/update", standardProduct, String.class);
+//        restTemplate.postForEntity(productServiceIp + "/product/update", standardProduct, String.class);
+        productDao.save(standardProduct);
 
         Product afterProduct = productDao.findOne(afterId);
         updateInfoAfterTurnStandard(beforeId, afterProduct);
@@ -981,7 +988,7 @@ public class ProductServiceImpl implements ProductService {
             }
         }
         goodsDao.save(saveList);
-        ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+        ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
         if (productPrivate == null) {
             productPrivate = new ProductPrivate();
         }
@@ -1130,7 +1137,7 @@ public class ProductServiceImpl implements ProductService {
                         product.setKinden(matchResult.getKinden());
                         product.setKindid(matchResult.getKindid());
                         List<Product> products = productDao.findProductByPcmpcodeAndPbrandenAndEnUUAndStandard(product.getPcmpcode(), product.getPbranden(), product.getEnUU(), IntegerConstant.YES_SHORT);
-                        ProductPrivate productPrivate = productPrivateDao.findByPrId(product.getId());
+                        ProductPrivate productPrivate = releaseProductByBatchService.findByPrId(product.getId());
                         if (productPrivate == null) {
                             productPrivate = new ProductPrivate();
                         }

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

@@ -1050,9 +1050,10 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			// TODO 什么接口
 			String result = restTemplate.postForEntity(productServiceIp + "/product/update", products, String.class).getBody();
 			productIds = JSON.parseArray(result, Long.class);
+			Set<Long> idSet = new HashSet<>(productIds);
 			List<ProductPrivate> productPrivates = new ArrayList<>();
-			for (Long prId : productIds) {
-				ProductPrivate productPrivate = productPrivateDao.findByPrId(prId);
+			for (Long prId : idSet) {
+				ProductPrivate productPrivate = findByPrId(prId);
 				if (null == productPrivate) {
 					productPrivate = new ProductPrivate();
 					productPrivate.setPrId(prId);
@@ -1173,8 +1174,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
             String res  = restTemplate.postForEntity(productServiceIp + "/product/assign/batch?userUU=" + SystemSession.getUser().getUserUU(), productIds, String.class).getBody();
             // 默认为b2c Enable开启
             List<ProductPrivate> productPrivates = new ArrayList<>();
-            for (Long prId : productIds) {
-                ProductPrivate productPrivate = productPrivateDao.findByPrId(prId);
+			Set<Long> idSet = new HashSet<>(productIds);
+            for (Long prId : idSet) {
+                ProductPrivate productPrivate = findByPrId(prId);
                 if (null == productPrivate) {
                     productPrivate = new ProductPrivate();
 					productPrivate.setPrId(prId);
@@ -1208,4 +1210,15 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 //		});
 		return null;
 	}
+
+	@Override
+	public ProductPrivate findByPrId(Long prId) {
+		List<ProductPrivate> productPrivates = productPrivateDao.findByPrId(prId);
+		if (!CollectionUtils.isEmpty(productPrivates)) {
+			ProductPrivate productPrivate = productPrivates.get(0);
+			return productPrivate;
+		} else {
+			return null;
+		}
+	}
 }

+ 3 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/util/GoodsUtil.java

@@ -104,6 +104,9 @@ public class GoodsUtil {
 	 * @return
 	 */
 	public static Boolean compareWithQtyPrice(List<GoodsQtyPrice> qtyPriceList, List<GoodsQtyPrice> targetList, String currency) {
+		if (CollectionUtils.isEmpty(qtyPriceList) || CollectionUtils.isEmpty(targetList)) {
+			return false;
+		}
 		if (qtyPriceList.size() != targetList.size()) {
 			return false;
 		}

+ 4 - 4
src/main/webapp/resources/js/usercenter/controllers/forstore/account_manager_ctrl.js

@@ -881,8 +881,8 @@ define(['app/app'], function (app) {
           //校验验证码
           $scope.validCheckCode = function (checkCode) {
             if(!checkCode){
-              $scope.checkSuccess2 = false;
-              $scope.checkFailed2 = true;
+              // $scope.checkSuccess2 = false;
+              $scope.checkFailed2 = false;
                 return false;
             }
             User.validCheckCode({checkCode: checkCode,newUserEmail:$scope.user.newUserEmail}, function (data) {
@@ -1051,8 +1051,8 @@ define(['app/app'], function (app) {
           //校验验证码
           $scope.validTelCheckCode = function (telCheckCode) {
             if(!telCheckCode){
-              $scope.checkSuccess2 = false;
-              $scope.checkFailed2 = true;
+              // $scope.checkSuccess2 = false;
+              $scope.checkFailed2 = false;
               return false;
             }
             User.validTelCheckCode({telCheckCode: telCheckCode,newUserTel:$scope.user.newUserTel},

+ 2 - 2
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_account_management_ctrl.js

@@ -821,7 +821,7 @@ define(['app/app'], function(app) {
           $scope.validCheckCode = function (checkCode) {
             if(!checkCode){
               // $scope.checkSuccess2 = false;
-              // $scope.checkFailed2 = true;
+              $scope.checkFailed2 = false;
               return false;
             }
             User.validCheckCode({checkCode: checkCode,newUserEmail:$scope.user.newUserEmail}, function (data) {
@@ -991,7 +991,7 @@ define(['app/app'], function(app) {
           $scope.validTelCheckCode = function (telCheckCode) {
             if(!telCheckCode){
               // $scope.checkSuccess2 = false;
-              // $scope.checkFailed2 = true;
+              $scope.checkFailed2 = false;
               return false;
             }
             User.validTelCheckCode({telCheckCode: telCheckCode,newUserTel:$scope.user.newUserTel},

+ 2 - 2
src/main/webapp/resources/view/usercenter/forstore/account_manager.html

@@ -299,7 +299,7 @@
 					<a ng-switch-when="1">审核通过</a>
 					<a ng-switch-when="2">待审核</a>
 			</li>
-			<li>
+			<!--<li>
 				<span>
 					<h5 ng-show="userInfo.havePayPwd"><img class="ok-icon" src="static/img/user/images/ok-account.png"/></h5>
 					<h5 ng-hide="userInfo.havePayPwd"><img src="static/img/user/images/safe.png"/></h5>
@@ -308,7 +308,7 @@
 				</span>
 				<a ng-hide="userInfo.havePayPwd" ng-click="updateUserPay()" class="mall-btn-default">立即设置</a>
 				<a ng-show="userInfo.havePayPwd" ng-click="updateUserPay()">修改</a>
-			</li>
+			</li>-->
 		</ul>
 	</div>
 

+ 2 - 2
src/main/webapp/resources/view/vendor/forstore/vendor_account_management.html

@@ -678,7 +678,7 @@
           <a ng-switch-when="1">审核通过</a>
           <a ng-switch-when="2">待审核</a>
         </li>
-        <li>
+       <!-- <li>
 				<span>
 					<h5 ng-show="userInfo.havePayPwd"><img class="ok-icon" src="static/img/user/images/ok-account.png"/></h5>
 					<h5 ng-hide="userInfo.havePayPwd"><img src="static/img/user/images/safe.png"/></h5>
@@ -687,7 +687,7 @@
 				</span>
           <a ng-hide="userInfo.havePayPwd" ng-click="updateUserPay()" class="mall-btn-default">立即设置</a>
           <a ng-show="userInfo.havePayPwd" ng-click="updateUserPay()">修改</a>
-        </li>
+        </li>-->
       </ul>
     </div>
     <!--权限管理-->

+ 3 - 1
src/main/webapp/resources/view/vendor/modal/updateUserEmail.html

@@ -50,6 +50,8 @@
         background: #5078cb;
         color: #fff;
         cursor: pointer;
+        float: right;
+        margin-top: 3px;
     }
     .userEmail .modal-body .row.validate-code .col-md-8 .code-btn[disabled] {
         cursor: not-allowed;
@@ -111,7 +113,7 @@
             <label class="col-md-3 col-sm-3 col text-right" ng-show="userInfo.userEmail==null?true:false">邮箱地址:</label>
             <div class="col-md-8 col-sm-8 col">
                 <input ng-model="user.newUserEmail"
-                       class="form-control input-sm" type="newUserEmail" ng-change="emailEnable(user.newUserEmail)" placeholder="新邮箱地址">
+                       class="form-control input-sm" type="newUserEmail" ng-blur="emailEnable(user.newUserEmail)" placeholder="新邮箱地址">
                 <!-- <div>密码复杂度</div> -->
             </div>
             <div class="col">

+ 3 - 1
src/main/webapp/resources/view/vendor/modal/updateUserTel.html

@@ -50,6 +50,8 @@
         background: #5078cb;
         color: #fff;
         cursor: pointer;
+        float: right;
+        margin-top: 3px;
     }
     .userTel .modal-body .row.validate-code .col-md-8 .code-btn[disabled] {
         cursor: not-allowed;
@@ -110,7 +112,7 @@
             <label class="col-md-3 col-sm-3 col text-right">新手机号:</label>
             <div class="col-md-8 col-sm-8 col">
                 <input ng-model="user.newUserTel"
-                       class="form-control input-sm" type="newUserTel" ng-change="telEnable(user.newUserTel)">
+                       class="form-control input-sm" type="newUserTel" ng-blur="telEnable(user.newUserTel)">
                 <!-- <div>密码复杂度</div> -->
             </div>
             <div class="col">