Browse Source

物料详情增加单个匹配,单个更新

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@9163 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 8 years ago
parent
commit
d84e0f3728

+ 13 - 1
src/main/java/com/uas/platform/b2b/controller/ProductController.java

@@ -17,6 +17,7 @@ import org.springframework.web.servlet.ModelAndView;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2b.model.Component;
 import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.ProductMatchResult;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.ProductService;
 import com.uas.platform.b2b.support.JxlsExcelView;
@@ -298,11 +299,22 @@ public class ProductController {
 	 * @param ids
 	 * @return
 	 */
-	@RequestMapping(value = "updateall", method = RequestMethod.POST)
+	@RequestMapping(value = "/updateall", method = RequestMethod.POST)
 	@ResponseBody
 	public ModelMap updateall(@RequestBody String ids) {
 		List<Long> idStrings = JSONObject.parseArray(ids, Long.class);
 		return productService.updateall(idStrings);
 	}
 	
+	/**
+	 * 单个匹配
+	 * 
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping(value = "/matchone/{id}", method = RequestMethod.GET)
+	@ResponseBody
+	public List<ProductMatchResult> matchone(@PathVariable Long id) {
+		return productService.matchaone(id);
+	}
 }

+ 8 - 0
src/main/java/com/uas/platform/b2b/dao/ProductMatchResultDao.java

@@ -1,5 +1,7 @@
 package com.uas.platform.b2b.dao;
 
+import java.util.List;
+
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.stereotype.Repository;
@@ -10,4 +12,10 @@ import com.uas.platform.b2b.model.ProductMatchResult;
 public interface ProductMatchResultDao
 		extends JpaRepository<ProductMatchResult, Long>, JpaSpecificationExecutor<ProductMatchResult> {
 
+	/**
+	 * 
+	 * @param prid
+	 * @return
+	 */
+	List<ProductMatchResult> findByPrid(Long prid);
 }

+ 9 - 0
src/main/java/com/uas/platform/b2b/service/ProductService.java

@@ -7,6 +7,7 @@ import org.springframework.ui.ModelMap;
 
 import com.uas.platform.b2b.model.Component;
 import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.ProductMatchResult;
 import com.uas.platform.b2b.temporary.model.UpdateByBatchParameter;
 import com.uas.platform.core.model.PageInfo;
 
@@ -120,4 +121,12 @@ public interface ProductService {
 	 * @return
 	 */
 	public ModelMap updateall(List<Long> idStrings);
+
+	/**
+	 * 单个匹配
+	 * 
+	 * @param id
+	 * @return
+	 */
+	public List<ProductMatchResult> matchaone(Long id);
 }

+ 32 - 0
src/main/java/com/uas/platform/b2b/service/impl/ProductServiceImpl.java

@@ -334,4 +334,36 @@ public class ProductServiceImpl implements ProductService {
 		}
 		return map;
 	}
+
+	@Override
+	public List<ProductMatchResult> matchaone(Long id) {
+		List<ProductMatchResult> results = productMatchResultDao.findByPrid(id);
+		if (CollectionUtils.isEmpty(results)) {// 如果还没有匹配过,再次进行匹配
+			Product prod = productDao.findOne(id);
+			if (prod != null) {
+				List<Component> components = componentDao.findByCode(prod.getCmpCode());
+				short i = 1;
+				results = new ArrayList<ProductMatchResult>();
+				if (!CollectionUtils.isEmpty(components)) {
+					for (Component cmp : components) {
+						ProductMatchResult re = new ProductMatchResult();
+						re.setBrandcn(cmp.getBrand().getNameCn());
+						re.setBranden(cmp.getBrand().getNameEn());
+						re.setBrid(cmp.getBrandid());
+						re.setCmpcode(cmp.getCode());
+						re.setCmpid(cmp.getId());
+						re.setKindcn(cmp.getKind().getNameCn());
+						re.setKinden(cmp.getKind().getNameEn());
+						re.setKindid(cmp.getKindid());
+						re.setNumber(i);
+						re.setPrid(id);
+						re.setUuid(cmp.getUuid());
+						results.add(re);
+					}
+					results = productMatchResultDao.save(results);
+				}
+			}
+		}
+		return results;
+	}
 }

+ 19 - 1
src/main/webapp/resources/js/index/app.js

@@ -10117,7 +10117,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 	/**
 	 * 物料详情
 	 */
-	app.controller('ProductDetailCtrl', ['$scope', 'GetProductInfo', '$upload', 'ngTableParams', '$stateParams', 'toaster', 'AuthenticationService', '$filter', 'BaseService', '$rootScope', '$modal', function($scope, GetProductInfo, $upload, ngTableParams, $stateParams, toaster, AuthenticationService, $filter, BaseService, $rootScope, $modal) {
+	app.controller('ProductDetailCtrl', ['$scope', 'GetProductInfo', '$upload', 'ngTableParams', '$stateParams', 'toaster', 'AuthenticationService', '$filter', 'BaseService', '$rootScope', '$modal', 'Products', function($scope, GetProductInfo, $upload, ngTableParams, $stateParams, toaster, AuthenticationService, $filter, BaseService, $rootScope, $modal, Products) {
 		BaseService.scrollBackToTop();
 		// 录入人
 		AuthenticationService.getAuthentication().success(function(data) {
@@ -10145,6 +10145,13 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 					})
 				}
 				$scope.prodInfo = data;
+				if($scope.prodInfo.standard != 1 ) {// 非标准的先进行匹配
+					Products.matchone({id: $scope.prodInfo.id}, {}, function(data) {
+						$scope.matchresults = data;
+					}, function(response) {
+						toaster.pop('error', '提示', response.data);
+					});
+				}
 				if ($rootScope.isProductEdit) { // 是否点击编辑
                     $scope.prodInfo.$editing = true;
                 } else {
@@ -10156,6 +10163,17 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 		};
 		loadData();
 
+		//更新为标准器件
+		$scope.updateone = function(id) {
+			Products.updateone({id: id}, {}, function(data) {
+				if(data.success) {
+					toaster.pop('success', '提示', data.success);
+				}
+			}, function(response) {
+				toaster.pop('error', '提示', response.data);
+			});
+		}
+		
 		// 选择类目
 	    $scope.selectKind = function(cmpcode) {
 	    	if(cmpcode == null) {

+ 9 - 0
src/main/webapp/resources/js/index/services/Product.js

@@ -51,6 +51,15 @@ define([ 'ngResource'], function() {
 			updateall: {
 				url: 'product/updateall',
 				method: 'POST'
+			},
+			matchone: {
+				url: 'product/matchone/:id',
+				method: 'GET',
+				isArray: true
+			},
+			updateone: {
+				url: 'product/refreshproduct/:id',
+				method: 'POST'
 			}
 		});
 	}]).factory('PurcProduct', ['$resource', function($resource) {

+ 14 - 0
src/main/webapp/resources/tpl/index/baseInfo/productDetail.html

@@ -191,6 +191,20 @@
                         </span>
                     </div>
                 </dd> -->
+            </dl>
+             <div class="com_title01"><span>图片和详细说明</span></div>
+            <dl ng-repeat="result in matchresults">
+            	<dd>
+            		 <div class="fl">类目:</div>
+            		 <div class="fr">{{result.kindcn}}</div>
+            		 <div class="fl">品牌:</div>
+            		 <div class="fr">{{result.branden}}</div>
+            		 <div class="fl">原厂型号:</div>
+            		 <div class="fr">{{result.cmpcode}}</div>
+            		  <div class="fl">标准料号:</div>
+            		 <div class="fr">{{result.uuid}}</div>
+            		 <div class="fr"><a ng-click="updateone(result.id)">匹配</a></div>
+            	</dd>
             </dl>
             <div class="many-file-btn">
                 <button class="btn01" ng-if="!prodInfo.$editing" ng-click="update()">修改</button>