Browse Source

Merge branch 'master' into dev

yangc 7 years ago
parent
commit
170bb2505c

+ 1 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/constant/ErrorInfoConstant.java

@@ -39,6 +39,7 @@ public enum  ErrorInfoConstant {
     KIND_LENGTH_INFO("物料名称(类目)不能超过20个字符"),
     // PCB模块使用
     KIND_UNSTANDARD("物料名称(类目)不是商城标准类目"),
+    BRAND_UNSTANDARD("品牌不是商城标准品牌"),
     BREAK_UP_INFO("请选择可拆卖情况是或否"),
     RESERVE_NUMBER_INFO("库存须填写小于10亿的正整数"),
     PRODUCE_DATE_INFO("生产日期不能为空"),

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

@@ -1,5 +1,7 @@
 package com.uas.platform.b2c.prod.commodity.service.impl;
 
+import static com.uas.platform.b2c.core.utils.NumberUtil.fractionNumCeil;
+
 import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.service.EnterpriseService;
@@ -12,13 +14,34 @@ 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.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.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.ProductPrivateDao;
+import com.uas.platform.b2c.prod.commodity.dao.ReleaseProductByBatchDao;
+import com.uas.platform.b2c.prod.commodity.dao.V_ProductPrivateDao;
+import com.uas.platform.b2c.prod.commodity.model.Goods;
+import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
+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.model.V_ProductPrivate;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
 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;
+import com.uas.platform.b2c.prod.product.brand.modal.BrandInfo;
 import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
 import com.uas.platform.b2c.prod.product.kind.dao.KindInfoDao;
 import com.uas.platform.b2c.prod.product.kind.model.KindInfo;
@@ -33,11 +56,37 @@ import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.persistence.criteria.CriterionExpression;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.SimpleExpression;
+import java.math.BigDecimal;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+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.regex.Matcher;
+import java.util.regex.Pattern;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.map.HashedMap;
 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;
@@ -50,22 +99,6 @@ import org.springframework.ui.ModelMap;
 import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
 
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import java.math.BigDecimal;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import static com.uas.platform.b2c.core.utils.NumberUtil.fractionNumCeil;
-
 @Service
 public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchService {
 
@@ -123,6 +156,9 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 	@Autowired
 	private V_ProductPrivateDao v_productPrivateDao;
 
+	@Autowired
+	private BrandInfoDao brandInfoDao;
+
 	private static final String SIZE = "尺寸";
 	private static final String COLOR = "颜色";
 	private static final String THICKCOPPER = "铜厚";
@@ -975,6 +1011,19 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 			result += 1;
 		}
 		aProduct.setBrandEnByExcel(brandValue);
+		// pcb模块判断类目是否为商城标准品牌
+		if (isPcb && !StringUtils.isEmpty(aProduct.getBrandNameEn())) {
+			List<BrandInfo> brandInfos = brandInfoDao.findByNameEn(aProduct.getBrandNameEn());
+			if (CollectionUtils.isNotEmpty(brandInfos)) {
+				BrandInfo brandInfo = brandInfos.get(0);
+				if (brandInfo != null && brandInfo.getId() != null) {
+					aProduct.setBranduuid(brandInfo.getUuid());
+					aProduct.setBrandId(brandInfo.getId());
+				}
+			} else {
+				aProduct.addErrmsg(ErrorInfoConstant.BRAND_UNSTANDARD.getInfo());
+			}
+		}
 
 		Object kindValue = readWorkBookCell(row.getCell(UploadConstant.KIND), Cell.CELL_TYPE_STRING,
 				rowNum, UploadConstant.KIND);
@@ -1648,6 +1697,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 							pcb.setProductid(prId);
 							pcb.setBrandid(product.getPbrandid());
 							pcb.setKindid(product.getKindid());
+							pcb.setCreatetime(new Date());
 							pcbList.add(pcb);
 						}
 					}

+ 5 - 3
src/main/java/com/uas/platform/b2c/prod/product/property/dao/PropertyDao.java

@@ -1,10 +1,11 @@
 package com.uas.platform.b2c.prod.product.property.dao;
 
 import com.uas.platform.b2c.prod.product.property.model.Property;
+import java.util.List;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-
-import java.util.List;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 
 public interface PropertyDao extends JpaSpecificationExecutor<Property>, JpaRepository<Property, Long> {
 
@@ -29,5 +30,6 @@ public interface PropertyDao extends JpaSpecificationExecutor<Property>, JpaRepo
 	 * @param labelCn
 	 * @return
 	 */
-	public Long findIdByLabelCn(String labelCn);
+	@Query(value = "select p.id from Property p where p.labelCn = :labelCn")
+	public Long findIdByLabelCn(@Param("labelCn") String labelCn);
 }

+ 5 - 0
src/main/webapp/resources/js/common/query/releaseProInfo.js

@@ -17,6 +17,11 @@ define([ 'ngResource' ], function() {
 				url: 'release/product/batchRelease',
 				method: 'POST',
 			},
+			// 批量发布PCB产品
+			batchReleasePcb: {
+				url: 'release/product/batchRelease/pcb',
+				method: 'POST',
+			},
             // 批量上架个人产品
             batchReleasePerson: {
                 url: 'release/product/batchRelease/person',

+ 20 - 17
src/main/webapp/resources/js/vendor/controllers/forstore/seek_purchase_ctrl.js

@@ -18,7 +18,7 @@ define(['app/app'], function (app) {
           }
           $scope.initInquiryItem();
 
-            //卖家待报价推送信息,self为与我相关,all为全部
+            //卖家待报价推送信息,self为我的商机,all为公司商机
             if ($location.search().type === '1') {
               $scope.vendorType = 'self';
               console.log(1)
@@ -48,18 +48,21 @@ define(['app/app'], function (app) {
                 params.page(1);
                 $scope.isSearch = false;
               }
-              var isSelf = $scope.vendorType == 'self';
-              // if (!isSelf) {
-              //   param.enUU = $scope.userInfo.enterprise.uu;
-              //   param.userUU = $scope.userInfo.userUU;
-              // } else {
-              //   param.enuu = $scope.userInfo.enterprise.uu;
-              //   param.useruu = $scope.userInfo.userUU;
-              // }
-              param.enuu = $scope.userInfo.enterprise.uu;
-              param.useruu = $scope.userInfo.userUU;
-              param.enableOffer = 1;
-              var target = isSelf ? '/inquiry/sale/remind' : '/inquiry/sale/enremind';
+              // var isSelf = $scope.vendorType == 'self';
+              var target = ''
+              if ($scope.vendorType == 'noOppor') {
+                param.enUU = $scope.userInfo.enterprise.uu;
+                param.userUU = $scope.userInfo.userUU;
+                target = '/inquiry/public';
+              } else {
+                param.enuu = $scope.userInfo.enterprise.uu;
+                param.useruu = $scope.userInfo.userUU;
+                param.enableOffer = 1;
+                target = $scope.vendorType == 'self' ? '/inquiry/sale/remind' : '/inquiry/sale/enremind';
+              }
+              // param.enuu = $scope.userInfo.enterprise.uu;
+              // param.useruu = $scope.userInfo.userUU;
+              // var target = isSelf ? '/inquiry/sale/remind' : '/inquiry/sale/enremind';
               $http({
                 method: 'get',
                 dataType: 'json',
@@ -204,10 +207,10 @@ define(['app/app'], function (app) {
               if (!$scope.inquiryItem.currency) {
                 $scope.inquiryItem.currency = $scope.seekCurrency[0];
               }
-              // if ($scope.vendorType == 'self') {
-              //     $scope.inquiryItem.id = $scope.inquiryItem.itemId;
-              // }
-              $scope.inquiryItem.id = $scope.inquiryItem.itemId;
+              if ($scope.vendorType !== 'noOppor') {
+                  $scope.inquiryItem.id = $scope.inquiryItem.itemId;
+              }
+              // $scope.inquiryItem.id = $scope.inquiryItem.itemId;
               if (seekUrl == 'https://api-inquiry.usoftmall.com') {
                 seekPurchase.saveOfferProd($scope.inquiryItem, function (data) {
                   toaster.pop('success', '感谢您参与报价,敬请期待回复');

+ 40 - 29
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_upload_ctrl.js

@@ -250,7 +250,7 @@ define([ 'app/app' ], function(app) {
 			} else {
                 var param = {selfSale : $scope.batch.sellType == 'self', currency : $scope.batch.currency, repeatImport : $scope.repeatImport};
 			}
-			var uploadUrl = $rootScope.isPcbStore ? '/release/product/release/excel/pcb' : 'release/product/release/excel';
+			var uploadUrl = $rootScope.isPcbStore ? 'release/product/release/excel/pcb' : 'release/product/release/excel';
 			$upload.upload({
 				url: uploadUrl,
 				file: file,
@@ -307,7 +307,7 @@ define([ 'app/app' ], function(app) {
         // 下载模板
         $scope.download = function() {
             var show = SessionService.get($scope.userInfo.userUU + "-releasetip");
-            var downloadUrl = $rootScope.isPcbStore ? '/release/product/release/template/pcb' : '/release/product/release/template'
+            var downloadUrl = $rootScope.isPcbStore ? 'release/product/release/template/pcb' : 'release/product/release/template'
             if (!show) {
                 var modalInstance = $modal.open({
                     animation: true,
@@ -323,36 +323,47 @@ define([ 'app/app' ], function(app) {
             }
         };
 
+        var afterPublish = function () {
+            $modal.open({
+                animation : true,
+                templateUrl : 'static/view/common/modal/product_upload_modal.html',
+                controller : 'rule_tip_ctrl',
+                resolve : {
+                    type : function() {
+                        return 'upload';
+                    },
+                    tipModal : function() {
+                        return true;
+                    },
+                    success : function () {
+                        return $scope.needShowTip;
+                    },
+                    uuid: function () {
+                        return $scope.storeUuid;
+                    }
+                }
+            });
+            $scope.relTableParams.page(1);
+            $scope.relTableParams.reload();
+            $scope.result.success = 0;//设置成0,让前端用户不能点击
+            $scope.hadImport = true; //上架后隐藏提示语
+        }
         //批量发布
         $scope.publish = function(event) {
             if ($scope.pageParams.totalElements > 0) {
-                ReleaseProductByBatch.batchRelease({batch : $scope.result.batch}, null, function(data) {
-                    $modal.open({
-                        animation : true,
-                        templateUrl : 'static/view/common/modal/product_upload_modal.html',
-                        controller : 'rule_tip_ctrl',
-                        resolve : {
-                            type : function() {
-                                return 'upload';
-                            },
-                            tipModal : function() {
-                                return true;
-                            },
-                            success : function () {
-                                return $scope.needShowTip;
-                            },
-                            uuid: function () {
-                                return $scope.storeUuid;
-                            }
-                        }
+                if ($rootScope.isPcbStore) {
+                    ReleaseProductByBatch.batchReleasePcb({batch : $scope.result.batch}, null, function(data) {
+                        afterPublish();
+                    }, function(res) {
+                        toaster.pop("error", "发布失败", res.data);
                     });
-                    $scope.relTableParams.page(1);
-                    $scope.relTableParams.reload();
-                    $scope.result.success = 0;//设置成0,让前端用户不能点击
-                    $scope.hadImport = true; //上架后隐藏提示语
-                }, function(res) {
-                    toaster.pop("error", "发布失败", res.data);
-                });
+                } else {
+                    ReleaseProductByBatch.batchRelease({batch : $scope.result.batch}, null, function(data) {
+                        afterPublish();
+                    }, function(res) {
+                        toaster.pop("error", "发布失败", res.data);
+                    });
+                }
             } else {
                 event.stopPropagation();//阻止冒泡事件
                 event.preventDefault();//阻止默认的事件。
@@ -405,7 +416,7 @@ define([ 'app/app' ], function(app) {
             } else {
                 var datatem = {isAjax : true, batch : $scope.result.batch};
             }
-            var downloadFailureUrl = $rootScope.isPcbStore ? '/release/product/release/failure/pcb/xls' : 'release/product/release/failure/xls';
+            var downloadFailureUrl = $rootScope.isPcbStore ? 'release/product/release/failure/pcb/xls' : 'release/product/release/failure/xls';
             if($scope.result && $scope.result.batch && $scope.result.filter) {
                 var form = document.getElementById('load-error');
                 form.action= downloadFailureUrl;

+ 1 - 0
src/main/webapp/resources/view/vendor/forstore/seekPurchase.html

@@ -747,6 +747,7 @@
                 <select class="form-control select-adder vendor-type" ng-model="vendorType" ng-change="onVendorTypeChange(vendorType)">
                     <option value="all">公司商机</option>
                     <option value="self">我的商机</option>
+                    <option value="noOppor">全部</option>
                 </select>
                 <span>发布时间&nbsp;</span>
                 <div class="date fl">