Browse Source

Merge branch 'dev-mysql' into feature_release-tomysql

wangyc 8 years ago
parent
commit
f0ae5ad74d

+ 23 - 14
src/main/java/com/uas/platform/b2c/external/erp/commodity/service/impl/ProductDetailERPServiceImpl.java

@@ -57,12 +57,16 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
     @Override
     public boolean uploadProductDetailERP(List<ProductDetailERP> productDetailERPList) {
         List<ProductDetail> productDetails = new ArrayList<ProductDetail>();
+        List<Product> productList = new ArrayList<Product>();
         Long enuu = SystemSession.getUser().getEnterprise().getUu();
         for (ProductDetailERP productDetailERP : productDetailERPList) {
             ProductDetail productDetail = ModelConverter.convert(productDetailERP);
 
             List<Product> products = productDao.getProductByEnUUAndProdNum(enuu, productDetail.getCode());
             if (!CollectionUtils.isEmpty(products)) {
+                products.get(0).setErpReserve(productDetailERP.getReserve());
+                productList.add(products.get(0));
+
                 productDetail.setProductId(products.get(0).getId());
             }
             // 如果已存在物料交易信息删除之前那一条,保存新的物料交易信息
@@ -72,6 +76,8 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
             }
             productDetails.add(productDetail);
         }
+
+        productDao.save(productList);
         productDetailDao.save(productDetails);
         logger.log("物料交易详情", "初始化交易详情,企业:" + SystemSession.getUser().getEnterprise().getEnName() + ",数量:" + productDetails.size());
         return true;
@@ -85,16 +91,16 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
 
     @Override
     public void updateReserve(List<ProductDetailERP> productDetailERPList) {
-        List<ProductDetail> productDetails = new ArrayList<ProductDetail>();
+        List<Product> productList = new ArrayList<Product>();
         Long enuu = SystemSession.getUser().getEnterprise().getUu();
         for (ProductDetailERP productDetailERP : productDetailERPList) {
             List<Product> products = productDao.getProductByEnUUAndProdNum(enuu, productDetailERP.getCode());// 获取对应商城物料信息
             if (!CollectionUtils.isEmpty(products)) {
-                ProductDetail productDetail = productDetailDao.findByProductId(products.get(0).getId());// 获取商城物料信息
-                if (productDetail == null) {// 如果物料交易详情为空,新增物料交易详情
-                    productDetail = new ProductDetail();
-                    productDetail.setProductId(products.get(0).getId());
-                }
+//                ProductDetail productDetail = productDetailDao.findByProductId(products.get(0).getId());// 获取商城物料信息
+//                if (productDetail == null) {// 如果物料交易详情为空,新增物料交易详情
+//                    productDetail = new ProductDetail();
+//                    productDetail.setProductId(products.get(0).getId());
+//                }
 
                 if (products.get(0).getCmpUuId() != null) {// 如果为标准器件,更新在售商品信息
                     Double b2cReserve = goodsDao.getSumReserveByEnUUAndUuidAndStatus(enuu, products.get(0).getCmpUuId(), Status.AVAILABLE.value());
@@ -117,8 +123,13 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
                                     good.setReserve(BigDecimal.valueOf(good.getReserve()).subtract(subtractDecimal).doubleValue());
                                     good.setSelfSale(sysConf.getStoreid().equals(good.getStoreid())? IntegerConstant.B2C_SALE.toString() : IntegerConstant.SELF_SALE.toString());// 设置自营寄售
                                     loggerInfo.info(SystemSession.getUser().getEnterprise().getEnName() + "更新库存: " + products.get(0).getProdNum() + ",self is" + good.getSelfSale());
-                                    goodsService.updateGoods(nowGood, good);
-                                    goodsService.updateComponentTradeInfos(nowGood.getUuid());
+                                    // 如果调整后的库存小于最小起订量直接下架
+                                    if (good.getReserve() < good.getMinBuyQty()) {
+                                        goodsService.offShelfGoodsByProvider(good.getBatchCode());
+                                    } else {
+                                        goodsService.updateGoods(nowGood, good);
+                                        goodsService.updateComponentTradeInfos(nowGood.getUuid());
+                                    }
                                     break;
                                 }
 
@@ -131,13 +142,11 @@ public class ProductDetailERPServiceImpl implements ProductDetailERPService {
                     }
                 }
 
-                if (productDetail != null) {
-                    productDetail.setReserve(productDetailERP.getReserve());
-                    productDetails.add(productDetail);
-                }
+                products.get(0).setErpReserve(productDetailERP.getReserve());
+                productList.add(products.get(0));
             }
         }
-        logger.log("物料详情", "更新物料库存信息,企业:" + SystemSession.getUser().getEnterprise().getEnName() + ",数量:" + productDetails.size());
-        productDetailDao.save(productDetails);
+        logger.log("物料详情", "更新物料库存信息,企业:" + SystemSession.getUser().getEnterprise().getEnName() + ",数量:" + productList.size());
+        productDao.save(productList);
     }
 }

+ 2 - 1
src/main/java/com/uas/platform/b2c/external/erp/commodity/util/ModelConverter.java

@@ -197,7 +197,8 @@ public class ModelConverter {
 		productDetail.setPackaging(productDetailERP.getPackaging());
 		productDetail.setPrice(productDetailERP.getPrice());
 		productDetail.setProduceDate(productDetailERP.getProduceDate());
-		productDetail.setReserve(productDetailERP.getReserve());
+		// 暂时将ERP空闲库存放置在product中
+//		productDetail.setReserve(productDetailERP.getReserve());
 		productDetail.setCode(productDetailERP.getCode());
 		productDetail.setBreakUp(productDetailERP.getBreakUp());
 		return productDetail;

+ 14 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/model/Product.java

@@ -73,6 +73,12 @@ public class Product {
 	@Column(name = "pr_stock")
 	private Double stock;
 
+	/**
+	 * ERP空闲库存
+	 */
+	@Column(name = "pr_reserve")
+	private Double erpReserve;
+
 	/**
 	 * 价格
 	 */
@@ -355,6 +361,14 @@ public class Product {
 		return this;
 	}
 
+	public Double getErpReserve() {
+		return erpReserve;
+	}
+
+	public void setErpReserve(Double erpReserve) {
+		this.erpReserve = erpReserve;
+	}
+
 	public Double getPrice() {
 		return price;
 	}

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

@@ -570,9 +570,9 @@ public class GoodsServiceImpl implements GoodsService {
 		ProductDetail productDetail = productDetailDao.findByProductId(product.getId());
 		if (productDetail == null) {
 			productDetail = new ProductDetail();
-		} else if (productDetail.getReserve() != null) {
+		} else if (product.getErpReserve() != null) {
 			ProductDetail newProductDetail = productService.findByProductId(product.getId());
-			if (productDetail.getReserve() < goods.getReserve() + newProductDetail.getB2cReserve()) {
+			if (product.getErpReserve() < goods.getReserve() + newProductDetail.getB2cReserve()) {
 				throw new IllegalOperatorException("本次上架数量和已上架数量之和不可超过ERP空闲库存数量");
 			}
 		}

+ 1 - 2
src/main/resources/dev/jdbc.properties

@@ -1,6 +1,5 @@
 jdbc.driverClassName=com.mysql.jdbc.Driver
-#jdbc.url=jdbc:oracle:thin:@192.168.253.6:1521:orcl
-jdbc.url=7e5ef205e2ff4ca4ac98c9f833880ec6e2fe1a4579ebe6946c98747cbe3897b66b5c4cb4985aa8f22aa1cbab4bc6bfe12e09403e6255e2fda2f113bc366bbfc5d9a2cf99c34ce47ba6bd752a9bf5f04c3faf83464996ab6930a84c7d3b9f62d759eb691bc8cd1fe3225f6e7efa5ab3a583896b06178e65c56c3c4e448a0ae4fe
+jdbc.url=7e5ef205e2ff4ca4ac98c9f833880ec6e2fe1a4579ebe694e129681326fc2cb1b5fe058042985e2f72b57c8be4fa3e1544065eabf2ab94ad017d02162675aa969997adc7fd7bd04c0eb8bcc3a1733fe6a27f40bcf87efef4566f5872030efe79859a9abb7cbad9c1aa1ae7c2bb1cb23007adc91d94a9369cec407809597189c5
 jdbc.username=474e1aeadeeecac5
 jdbc.password=48981af937f010627b96e886a0d38aad
 jdbc.initialSize=1

+ 0 - 4
src/main/resources/prod/jdbc.properties

@@ -1,7 +1,3 @@
-#jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
-#jdbc.url=jdbc:oracle:thin:@10.10.100.200:1521:orcl
-#jdbc.username=platform$b2b
-#jdbc.password=select*fromuu
 jdbc.driverClassName=com.mysql.jdbc.Driver
 jdbc.url=7e5ef205e2ff4ca46e29823f9c378880524d69d6c11d8c1c3688f4f0b3712ba1385b2cecff54843db21897fe0c75f0a36c7921cab8fadf398fa33412ca529b7f04233bf4ae6fd3870626fa79ef7f87cb7a8905195ea37bd042b530659d0e82dda7359ee0139e0d6fb23654ba47f5f4b8c682a3c72b9d81e7
 jdbc.username=73f3cd5578b9e08b

+ 1 - 2
src/main/resources/test/jdbc.properties

@@ -1,6 +1,5 @@
 jdbc.driverClassName=com.mysql.jdbc.Driver
-#jdbc.url=jdbc:oracle:thin:@192.168.253.6:1521:orcl
-jdbc.url=7e5ef205e2ff4ca4ac98c9f833880ec6e2fe1a4579ebe6946c98747cbe3897b66b5c4cb4985aa8f22aa1cbab4bc6bfe12e09403e6255e2fda2f113bc366bbfc5d9a2cf99c34ce47ba6bd752a9bf5f04c3faf83464996ab6930a84c7d3b9f62d759eb691bc8cd1fe3225f6e7efa5ab3a583896b06178e65c56c3c4e448a0ae4fe
+jdbc.url=7e5ef205e2ff4ca4ac98c9f833880ec6e2fe1a4579ebe694e129681326fc2cb1b5fe058042985e2f72b57c8be4fa3e1544065eabf2ab94ad017d02162675aa969997adc7fd7bd04c0eb8bcc3a1733fe6a27f40bcf87efef4566f5872030efe79859a9abb7cbad9c1aa1ae7c2bb1cb23007adc91d94a9369cec407809597189c5
 jdbc.username=474e1aeadeeecac5
 jdbc.password=48981af937f010627b96e886a0d38aad
 jdbc.initialSize=1

+ 14 - 0
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js

@@ -18,6 +18,20 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
             type : "standard"
         };
 
+        $scope.sortByERP = 'none';
+        $scope.sortByERPReserve = function () {
+			if ($scope.sortByERP == 'none') {
+				$scope.sortByERP = 'DESC'
+			} else if ($scope.sortByERP == 'DESC') {
+				$scope.sortByERP = 'ASC'
+			} else {
+				$scope.sortByERP = 'none'
+			}
+			$scope.param.sorting = $scope.sortByERP == 'none' ? {id : 'DESC'} : {'erpReserve': $scope.sortByERP};
+			// $scope.sortByERP = type == $scope.sortByERP ? 'none' : type;
+			loadData();
+		}
+
 		if ($location.$$path.endsWith('vendor_material_unstandard_erp')) {
 			$scope.tab = 'unstandard_material';
 			// $scope.standard_tab = 'unstandard';

+ 20 - 2
src/main/webapp/resources/view/vendor/forstore/erp/vendor_material_erp.html

@@ -96,6 +96,9 @@
 		font-size: 14px;
 		vertical-align: middle !important;
 	}
+	.public-tab.table tr th >div i.active {
+		color: #5078cb;
+	}
 	.public-tab.table>tbody+tbody{
 		border-top: none;
 	}
@@ -426,6 +429,13 @@
 	.com_tab ul li.active a {
 		color: #1687ff;
 	}
+	.pro_management .table tr th .erp-reserve {
+		cursor: pointer;
+	}
+	.pro_management .table tr th .erp-reserve .sort-area,
+	.pro_management .table tr th .erp-reserve .sort-area:hover{
+		color: inherit !important;
+	}
 </style>
 <div class="user_right fr">
 	<!--货品管理-->
@@ -465,7 +475,15 @@
 					<thead>
 					<tr>
 						<th width="80">序号</th>
-						<th width="80">ERP空闲库存</th>
+						<th width="80">
+							<div class="erp-reserve"  ng-click="sortByERPReserve()">
+								ERP空闲库存
+								<a class="sort-area" href="javascript:void(0)">
+									<i class=" fa fa-long-arrow-up" ng-class="{'active': sortByERP == 'ASC'}"></i>
+									<i class=" fa fa-long-arrow-down" ng-class="{'active': sortByERP == 'DESC'}"></i>
+								</a>
+							</div>
+						</th>
 						<th width="160">产品编号</th>
 						<th width="180">产品名称(类目)</th>
 						<th width="130">品牌</th>
@@ -485,7 +503,7 @@
 							<span ng-show="isBatch"><input type="checkbox" ng-checked="material.isChoosed"  ng-click="chooseOne(material)"  id="{{$index+1}}"/><label for="{{$index+1}}"></label><br/></span>
 							<span ng-show="!isBatch" ng-bind="(param.currentPage - 1) * 10 + $index + 1"></span>
 						</td>
-						<td>{{material.productDetail.reserve || 0}}</td>
+						<td>{{material.erpReserve || 0}}</td>
 						<td ng-bind="material.prodNum" title="{{material.prodNum}}"></td>
 						<td>
 							<span ng-if="material.kind" ng-bind="material.kind" title="{{material.kind}}"></span>