Просмотр исходного кода

个人产品库 初步搭建6 -完善删除物料等控制

wangdy 8 лет назад
Родитель
Сommit
de5a643f5c

+ 2 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/controller/ProductController.java

@@ -140,13 +140,13 @@ public class ProductController {
      * @param ids the ids
      */
     @RequestMapping(value = "/{ids}", method = RequestMethod.DELETE)
-	public void deleteBatch(@PathVariable("ids") String ids) {
+	public void deleteBatch(@PathVariable("ids") String ids , Integer isPerson) {
 		String[] idstrs = ids.split(SplitChar.COMMA);
 		List<Long> idsLong = new ArrayList<Long>();
 		for (String id : idstrs) {
 			idsLong.add(Long.parseLong(id));
 		}
-		productService.deleteBatch(idsLong);
+		productService.deleteBatch(idsLong, isPerson);
 	}
 
     /**

+ 25 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductPersonDao.java

@@ -0,0 +1,25 @@
+package com.uas.platform.b2c.prod.commodity.dao;
+
+import com.uas.platform.b2c.prod.commodity.model.ProductPerson;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+import java.util.List;
+
+public interface ProductPersonDao extends JpaRepository<ProductPerson, Long>, JpaSpecificationExecutor<ProductPerson> {
+
+    /**
+     * 统计拥有该物料的人数
+     * @param productId
+     * @return
+     */
+    int countByProductId(Long productId);
+
+    /**
+     * 查找物料信息
+     * @param productId
+     * @param userUU
+     * @return
+     */
+    List<ProductPerson> findByProductIdAndUserUU(Long productId, Long userUU);
+}

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java

@@ -50,7 +50,7 @@ public interface ProductService {
      *
      * @param ids the ids 主键
      */
-    void deleteBatch(List<Long> ids);
+    void deleteBatch(List<Long> ids, Integer isPerson);
 
     /**
      * 批量删除产品

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

@@ -107,6 +107,9 @@ public class ProductServiceImpl implements ProductService {
     @Autowired
     private CartDao cartDao;
 
+    @Autowired
+    private ProductPersonDao productPersonDao;
+
     @Autowired
     private ProductModifyHistoryDao productModifyHistoryDao;
 
@@ -338,8 +341,16 @@ public class ProductServiceImpl implements ProductService {
     }
 
     @Override
-    public void deleteBatch(List<Long> ids) {
+    public void deleteBatch(List<Long> ids, Integer isPerson) {
         for (Long id : ids) {
+            if (null != isPerson && isPerson.intValue() == IntegerConstant.YES_SHORT.intValue()) {
+                List<ProductPerson> productPersonList = productPersonDao.findByProductIdAndUserUU(id,SystemSession.getUser().getUserUU());
+                if (!CollectionUtils.isEmpty(productPersonList)) {
+                    Long ppid = productPersonList.get(0).getId();
+                    productPersonDao.delete(ppid);
+                }
+                continue;
+            }
             Product product = productDao.findOne(id);
             if (product == null)
                 throw new IllegalOperatorException("选择的产品不存在,请重新选择");
@@ -366,6 +377,11 @@ public class ProductServiceImpl implements ProductService {
                     }
                 }
                 if (!isExistOrder) {
+                    //是否被个人物料库收录
+                    int count = productPersonDao.countByProductId(id);
+                    if ( count > 0 ){
+                        throw new IllegalOperatorException("该产品已被个人物料库收录,不能删除");
+                    }
                     //删除外键关联的匹配结果列表,不然删除product失败
                     Set<ProductMatchResult> productMatchResultSet =  product.getMatchresults();
                     productMatchResultDao.delete(productMatchResultSet);

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

@@ -305,7 +305,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 				}
 			} else {
 				var ids = $scope.choosedIds.join(',');
-				Material.deleteBatch({ids: ids}, function (data) {
+				Material.deleteBatch({ids: ids, isPerson: 1}, function (data) {
 					toaster.pop('success', '删除成功');
 					$scope.choosedIds = [];
 					$scope.deleteDiv = false;
@@ -2602,7 +2602,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
                         return ;
                     }
                     var idStr = $scope.ids.join(',');
-                    Material.deleteBatch({ids : idStr}, function (data) {
+                    Material.deleteBatch({ids : idStr, isPerson: 1}, function (data) {
                         toaster.pop('success', '删除成功');
 						$scope.deleteModal = false;
                         $modalInstance.close(data);

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

@@ -236,6 +236,9 @@ define([ 'app/app' ], function(app) {
 				toaster.pop('info', '提示', '上传完成');
 				$scope.relTableParams.page(1);
 				$scope.relTableParams.reload();
+                if ($rootScope.$$productOn.tab === 'bathOnPerson') {
+                    publicPersonProduct();
+                }
 			}).error(function(response) {
 				$scope.result = {};
 				$scope.result.total = 0;
@@ -245,9 +248,6 @@ define([ 'app/app' ], function(app) {
 				$scope.pageParams.totalPages = 0;
 				toaster.pop('error', response.data || response);
 			});
-			if ($rootScope.$$productOn.tab === 'bathOnPerson') {
-                publicPersonProduct();
-			}
 		};
 
 		// 下载模板

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

@@ -1521,7 +1521,7 @@
 					<a ng-click="download()">批量导出</a>
 				</div>
 				<div class="check fr">
-					<a ng-show="!isBatch && standard_tab == 'unstandard'" ng-click="matchAll()"><span ng-show="!isBatch && standard_tab == 'unstandard'">一键匹配</span></a>
+					<!--<a ng-show="!isBatch && standard_tab == 'unstandard'" ng-click="matchAll()"><span ng-show="!isBatch && standard_tab == 'unstandard'">一键匹配</span></a>-->
 					<a ng-show="!isBatch" ng-click="enterBatch()"><span ng-show="!isBatch">批量操作</span></a>
 					<span class="check-btn" ng-show="isBatch">
 						<label class="check-active">

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

@@ -406,7 +406,7 @@
                             </div>-->
                         </div>
                         <div class="txt-info" ng-if="result && result.total != 0 && !hadImport">成功导入 <span ng-bind="result.success + result.failure">600</span> 个产品(其中标准产品 <span ng-bind="result.success">200</span> 个,非标产品 <span ng-bind="result.failure">400</span> 个)<b class="success-hidden" ng-if="result.filter != 0">,下载 <a ng-click="downloadExcel()">导入失败产品</a></b></div>
-                        <table ng-table="relTableParams" class="public-tab table" ng-if="$$productOn.tab == 'bathOn'">
+                        <table ng-table="relTableParams" class="public-tab table" ng-show="$$productOn.tab == 'bathOn'">
                             <thead>
                                 <tr>
                                     <th width="60">序号</th>