فهرست منبع

新增企业产品库 物料编辑与查看

shenjj 8 سال پیش
والد
کامیت
387b14bd8a

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

@@ -12,15 +12,48 @@ import com.uas.platform.b2c.core.constant.IntegerConstant;
 import com.uas.platform.b2c.core.constant.ShortConstant;
 import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.core.constant.Status;
-import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 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.*;
+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.MatchModelDao;
+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.ProductMatchResultDao;
+import com.uas.platform.b2c.prod.commodity.dao.ProductModifyHistoryDao;
+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.ProductReplaceDao;
+import com.uas.platform.b2c.prod.commodity.dao.ProductStandardPutOnInfoDao;
+import com.uas.platform.b2c.prod.commodity.dao.ProductStoreStatusDao;
+import com.uas.platform.b2c.prod.commodity.dao.StockInOutHistDao;
+import com.uas.platform.b2c.prod.commodity.dao.V_ProductPersonDao;
+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.GoodsHistory;
+import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
+import com.uas.platform.b2c.prod.commodity.model.MatchModel;
+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.ProductMatchResult;
+import com.uas.platform.b2c.prod.commodity.model.ProductModifyHistory;
+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.ProductReplace;
+import com.uas.platform.b2c.prod.commodity.model.ProductStandardPutOnInfo;
+import com.uas.platform.b2c.prod.commodity.model.ProductStoreStatus;
+import com.uas.platform.b2c.prod.commodity.model.StockInOutHist;
+import com.uas.platform.b2c.prod.commodity.model.UASBatchPutOnProperty;
+import com.uas.platform.b2c.prod.commodity.model.V_ProductPerson;
+import com.uas.platform.b2c.prod.commodity.model.V_ProductPrivate;
+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.ReleaseProductByBatchService;
+import com.uas.platform.b2c.prod.commodity.service.UASBatchPutOnPropertyService;
 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;
@@ -45,7 +78,6 @@ import com.uas.platform.b2c.trade.order.status.OrderStatus;
 import com.uas.platform.b2c.trade.presale.dao.CartDao;
 import com.uas.platform.b2c.trade.presale.dao.GoodsBrowsingHistoryDao;
 import com.uas.platform.b2c.trade.presale.model.Cart;
-import com.uas.platform.b2c.trade.presale.model.Collection;
 import com.uas.platform.b2c.trade.presale.model.GoodsBrowsingHistory;
 import com.uas.platform.b2c.trade.presale.service.CartService;
 import com.uas.platform.b2c.trade.support.CodeType;
@@ -57,6 +89,24 @@ import com.uas.platform.core.model.Type;
 import com.uas.platform.core.persistence.criteria.LogicalExpression;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.SimpleExpression;
+import java.lang.reflect.Field;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+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.concurrent.ConcurrentHashMap;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
 import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.log4j.Logger;
@@ -75,17 +125,6 @@ import org.springframework.transaction.annotation.Transactional;
 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.lang.reflect.Field;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-
 /**
  * Created by wangyc on 2017/5/26.
  */
@@ -383,7 +422,8 @@ public class ProductServiceImpl implements ProductService {
         }
         Date date = new Date();
         // 删除原有的替代料数据
-        productReplaceDao.deleteByProductId(productId);
+        List<ProductReplace> existReplaces = productReplaceDao.findByProductIdOrderByDetno(productId);
+        productReplaceDao.delete(existReplaces);
         for (ProductReplace productReplace : productReplaceList) {
             if (productReplace.getUserUU() == null) {
                 productReplace.setUserUU(SystemSession.getUser().getUserUU());

+ 12 - 15
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js

@@ -3083,7 +3083,10 @@ define(['app/app', 'jquery-uploadify'], function(app) {
       }, _productReplaceList, function(data) {
         $scope.setActiveIndex(-1);
         // loadDataReload();
-      }, function(response) {})
+        toaster.pop('success', '保存成功');
+      }, function(response) {
+        toaster.pop('error', '保存失败');
+      })
     }
     $scope.activeIndex = -1;
     // 编辑
@@ -3223,7 +3226,7 @@ define(['app/app', 'jquery-uploadify'], function(app) {
           toaster.pop('error', '请填完整信息');
           return
         }
-      } else if (type === 'sub' && $scope.replaceMaterialList.length > 1) {
+      } else if (type === 'sub' && $scope.replaceMaterialList.length > 1 && $scope.linearLength > 1) {
         $scope.linearLength--;
         $scope.replaceMaterialList.splice(index, 1);
         $scope.errorObj.splice(index, 1);
@@ -3413,26 +3416,20 @@ define(['app/app', 'jquery-uploadify'], function(app) {
     })
 
     function caleUllist($event,type,key,el){
-      var _scrollTop = angular.element('.edit-replace-box .content2').scrollTop()
+      var _scrollTop = angular.element('.edit-replace-box .content').scrollTop()
       var Y, X;
+      var _hl = angular.element('.edit-replace-box .content .content-line')[key] ? angular.element('.edit-replace-box .content .content-line')[key].offsetTop : 0
+      var _wl = (angular.element('body').width() - angular.element('.edit-replace-box').width()) / 2
+      var _bl = angular.element(window).height() * 0.2  + angular.element('.edit-replace-box .title').height()
+      var Y = _bl + _hl + 28 - _scrollTop
       if(type == 'brand') {
-        var _t  = angular.element(window).height() * 0.2 + angular.element('.edit-replace-box .title').height() + angular.element('.edit-replace-box .content .content-line')[key].offsetTop + 28
-        Y = _t - _scrollTop
-        X = (angular.element('body').width() - angular.element('.edit-replace-box').width()) / 2 + $event.currentTarget.offsetLeft - 11
+        X = _wl + $event.currentTarget.offsetLeft - 11
         el.css({
           right: X,
           top: Y
         })
       }else {
-        var _t = angular.element(window).height() * 0.2
-            + angular.element('.edit-replace-box .title').height()
-            + angular.element(
-                '.edit-replace-box .content .content-line')[key].offsetTop
-            + 28
-        Y = _t - _scrollTop
-        X = (angular.element('body').width() - angular.element(
-            '.edit-replace-box').width()) / 2
-            + $event.currentTarget.offsetLeft
+        X = _wl + $event.currentTarget.offsetLeft
         el.css({
           left: X,
           top: Y

+ 10 - 15
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialPersonCtrl.js

@@ -1042,9 +1042,11 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
       //
       // }
       Material.setProductReplacesByPerson({productId:$scope.replaceMaterialId}, productReplaceList , function (data) {
-        loadDataReload();
         $scope.setActiveIndex(-1);
+        loadDataReload();
+        toaster.pop('success', '保存成功');
       }, function (response) {
+        toaster.pop('error', '保存失败');
       })
     }
 
@@ -2593,7 +2595,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
         } else {
           toaster.pop('error', '请填完整信息');
         }
-      } else if (type === 'sub' && $scope.replaceMaterialList.length > 1) {
+      } else if (type === 'sub' && $scope.replaceMaterialList.length > 1 && $scope.linearLength > 1) {
         $scope.linearLength--;
         $scope.replaceMaterialList.splice(index, 1);
         $scope.errorObj.splice(index, 1);
@@ -2770,25 +2772,18 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 
     function caleUllist($event,type,key,el){
       var _scrollTop = angular.element('.edit-replace-box .content').scrollTop()
-      var Y, X;
+      var _hl = angular.element('.edit-replace-box .content .content-line')[key] ? angular.element('.edit-replace-box .content .content-line')[key].offsetTop : 0
+      var _wl = (angular.element('body').width() - angular.element('.edit-replace-box').width()) / 2
+      var _bl = angular.element(window).height() * 0.2  + angular.element('.edit-replace-box .title').height()
+      var Y = _bl + _hl + 28 - _scrollTop, X
       if(type == 'brand') {
-        var _t  = angular.element(window).height() * 0.2 + angular.element('.edit-replace-box .title').height() + angular.element('.edit-replace-box .content .content-line')[key].offsetTop + 28
-        Y = _t - _scrollTop
-        X = (angular.element('body').width() - angular.element('.edit-replace-box').width()) / 2 + $event.currentTarget.offsetLeft - 11
+        X = _wl + $event.currentTarget.offsetLeft - 11
         el.css({
           right: X,
           top: Y
         })
       }else {
-        var _t = angular.element(window).height() * 0.2
-            + angular.element('.edit-replace-box .title').height()
-            + angular.element(
-                '.edit-replace-box .content .content-line')[key].offsetTop
-            + 28
-        Y = _t - _scrollTop
-        X = (angular.element('body').width() - angular.element(
-            '.edit-replace-box').width()) / 2
-            + $event.currentTarget.offsetLeft
+        X = _wl + $event.currentTarget.offsetLeft
         el.css({
           left: X,
           top: Y

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

@@ -2515,7 +2515,7 @@
 		</div>
 
 		<div class="operate">
-			<div class="reminfo" ng-if="ShowReminfo">
+			<div class="reminfo">
 				<a>*</a>您无权编辑和删除的替代型号,请联系贵公司管理员进行处理。
 			</div>
 			<span ng-click="setProductReplacesByPerson(replaceMaterialList)">确定</span>