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

代采订单功能更改,增加付款企业信息

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@8180 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 8 лет назад
Родитель
Сommit
c7d8565a3e

+ 18 - 3
src/main/java/com/uas/platform/b2b/controller/DeputyOrderController.java

@@ -23,6 +23,7 @@ import com.alibaba.dubbo.common.utils.CollectionUtils;
 import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.model.DeputyEnterprise;
 import com.uas.platform.b2b.model.DeputyOrder;
+import com.uas.platform.b2b.model.DeputyPaymentCompany;
 import com.uas.platform.b2b.model.FileUpload;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.Vendor;
@@ -222,9 +223,11 @@ public class DeputyOrderController {
 	 *
 	 * @return
 	 */
-	@RequestMapping(value = "/vendorRate", method = RequestMethod.GET)
-	private Double vendorRate() {
-		return deputyOrderService.vendorRate();
+	@RequestMapping(value = "/vendorRate/{enuu}", method = RequestMethod.GET)
+	private ModelMap vendorRate(@PathVariable Long enuu) {
+		ModelMap map = new ModelMap();
+		map.put("rate", deputyOrderService.vendorRate(enuu));
+		return map;
 	}
 
 	/**
@@ -250,4 +253,16 @@ public class DeputyOrderController {
 		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
 		return searchService.searchVendorCheckIds(keyword, pageParams);
 	}
+	
+	/**
+	 * 获取付款企业
+	 * 
+	 * @param enuu
+	 * @return
+	 */
+	@RequestMapping(value = "/paycompanys/{enuu}", method = RequestMethod.GET)
+	@ResponseBody
+	public List<DeputyPaymentCompany> getList(@PathVariable Long enuu) {
+		return deputyOrderService.getList(enuu);
+	}
 }

+ 148 - 0
src/main/java/com/uas/platform/b2b/model/DeputyPaymentCompany.java

@@ -0,0 +1,148 @@
+package com.uas.platform.b2b.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+
+/**
+ * 代采企业的付款企业信息
+ * 
+ * @author hejq
+ * @time 创建时间:2017年5月5日
+ */
+@Table(name = "purc$deputypaymentcompany")
+@Entity
+public class DeputyPaymentCompany implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$deputypaymentcompany_gen")
+	@SequenceGenerator(name = "purc$deputypaymentcompany_gen", sequenceName = "purc$deputypaymentcompany_seq", allocationSize = 1)
+	@Column(name = "dpc_id")
+	private Long id;
+
+	/**
+	 * 归属于哪家代采企业(该uu不是付款企业uu,因为可能付款企业不是平台用户)
+	 */
+	@Column(name = "dpc_enuu")
+	private Long enuu;
+	
+	/**
+	 * 代采企业
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH, CascadeType.MERGE })
+	@JoinColumn(name = "dpc_enuu", insertable = false, updatable = false)
+	private Enterprise deputyEnterprise;
+
+	/**
+	 * 付款企业名称(因付款企业可能不属于平台,未设置uu)
+	 */
+	@Column(name = "dpc_enname")
+	private String enname;
+
+	/**
+	 * 付款企业地址
+	 */
+	@Column(name = "dpc_address")
+	private String address;
+
+	/**
+	 * 联系人
+	 */
+	@Column(name = "dpc_user")
+	private String user;
+
+	/**
+	 * 联系电话
+	 */
+	@Column(name = "dpc_usertel")
+	private String usertel;
+
+	/**
+	 * 数据维护时间
+	 */
+	@Column(name = "dpc_date")
+	private Date date;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getEnuu() {
+		return enuu;
+	}
+
+	public void setEnuu(Long enuu) {
+		this.enuu = enuu;
+	}
+
+	public Enterprise getDeputyEnterprise() {
+		return deputyEnterprise;
+	}
+
+	public void setDeputyEnterprise(Enterprise deputyEnterprise) {
+		this.deputyEnterprise = deputyEnterprise;
+	}
+
+	public String getEnname() {
+		return enname;
+	}
+
+	public void setEnname(String enname) {
+		this.enname = enname;
+	}
+
+	public String getAddress() {
+		return address;
+	}
+
+	public void setAddress(String address) {
+		this.address = address;
+	}
+
+	public String getUser() {
+		return user;
+	}
+
+	public void setUser(String user) {
+		this.user = user;
+	}
+
+	public String getUsertel() {
+		return usertel;
+	}
+
+	public void setUsertel(String usertel) {
+		this.usertel = usertel;
+	}
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+}

+ 10 - 1
src/main/java/com/uas/platform/b2b/service/DeputyOrderService.java

@@ -7,6 +7,7 @@ import org.springframework.ui.ModelMap;
 
 import com.uas.platform.b2b.model.DeputyEnterprise;
 import com.uas.platform.b2b.model.DeputyOrder;
+import com.uas.platform.b2b.model.DeputyPaymentCompany;
 
 public interface DeputyOrderService {
 
@@ -55,7 +56,7 @@ public interface DeputyOrderService {
 	 *
 	 * @return
 	 */
-	public Double vendorRate();
+	public Double vendorRate(Long enuu);
 
 	/**
 	 * 打印次数
@@ -70,4 +71,12 @@ public interface DeputyOrderService {
 	 * @return
 	 */
 	public List<DeputyEnterprise> getList();
+
+	/**
+	 * 获取代采企业的
+	 * 
+	 * @param enuu
+	 * @return
+	 */
+	public List<DeputyPaymentCompany> getList(Long enuu);
 }

+ 22 - 12
src/main/java/com/uas/platform/b2b/service/impl/DeputyOrderServiceImpl.java

@@ -14,11 +14,13 @@ import org.springframework.ui.ModelMap;
 
 import com.uas.platform.b2b.dao.DeputyOrderDao;
 import com.uas.platform.b2b.dao.DeputyOrderItemDao;
+import com.uas.platform.b2b.dao.DeputyPaymentCompanyDao;
 import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.mobile.dao.DeputyEnterpriseDao;
 import com.uas.platform.b2b.model.DeputyEnterprise;
 import com.uas.platform.b2b.model.DeputyOrder;
 import com.uas.platform.b2b.model.DeputyOrderItem;
+import com.uas.platform.b2b.model.DeputyPaymentCompany;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.service.DeputyOrderService;
 import com.uas.platform.b2b.support.SystemSession;
@@ -44,6 +46,9 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 	@Autowired
 	private DeputyEnterpriseDao deputyEnterpriseDao;
 
+	@Autowired
+	private DeputyPaymentCompanyDao deputyPaymentCompanyDao;
+
 	@Override
 	public ModelMap releaseByWorkbook(Workbook workbook) {
 		ModelMap modelMap = new ModelMap();
@@ -101,14 +106,15 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 					if (alters.size() > 0) {
 						modelMap.put("alters", alters);
 					}
-					// 采购单价
-					Double rate = vendorRate();
-					if (rate != null) {
-						Double purcprice = info.getUnitprice() + info.getUnitprice() * vendorRate();
-						info.setPurcprice(purcprice);
-					} else {// 如果费率不存在,设为单价
-						info.setPurcprice(info.getUnitprice());
-					}
+					// // 采购单价
+					// Double rate = vendorRate(enuu);
+					// if (rate != null) {
+					// Double purcprice = info.getUnitprice() +
+					// info.getUnitprice() * vendorRate();
+					// info.setPurcprice(purcprice);
+					// } else {// 如果费率不存在,设为单价
+					// info.setPurcprice(info.getUnitprice());
+					// }
 					if (info.getProdcode() != null) {
 						modelMap.put("total", total);
 						modelMap.put("success", total - alters.size());
@@ -177,7 +183,7 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 		order.setDeputyuu(deorder.getDeputyuu());// TODO
 		order.setPaycomaddress(deorder.getPaycomaddress());
 		order.setPaycomname(deorder.getPaycomname());
-		order.setRate(vendorRate());
+		order.setRate(vendorRate(order.getDeputyuu()));
 		order.setCurrency(deorder.getCurrency());
 		order.setOtherdata(deorder.getOtherdata());
 		order.setPickupdate(deorder.getPickupdate());
@@ -242,9 +248,8 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 	}
 
 	@Override
-	public Double vendorRate() {
-		List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(SystemSession.getUser().getEnterprise().getUu(),
-				Long.valueOf(deputyEnterpriseDao.findAll().get(0).getDeputyenuu()));
+	public Double vendorRate(Long enuu) {
+		List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(SystemSession.getUser().getEnterprise().getUu(), enuu);
 		Double rate = 0.00;
 		if (!CollectionUtils.isEmpty(vendors)) {
 			rate = vendors.get(0).getRate();
@@ -257,4 +262,9 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 		return deputyEnterpriseDao.findAll();
 	}
 
+	@Override
+	public List<DeputyPaymentCompany> getList(Long enuu) {
+		return deputyPaymentCompanyDao.findByEnuu(enuu);
+	}
+
 }

+ 89 - 8
src/main/webapp/resources/js/index/app.js

@@ -10849,12 +10849,6 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 				orderamount: 0,
 				usdpayment: 0
 					};
-		// 费率
-		DeputyOrder.vendorRate({}, function(data) {
-			$scope.rate = data;
-		}, function(response){
-			
-		});
 		
 		$scope.deOrder.deputyOrderItems = [];
 		var item = {
@@ -10866,12 +10860,47 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 				remark: null,
 				orderprice: null,
 		};
+		$scope.deOrder.deputyOrderItems.push(item);
+		
 		// 代采企业列表
 		DeputyOrder.deputyEnterprise({}, function(data) {
 			$scope.deputyEnterprises = data;
 			$scope.deOrder.deputyuu = $scope.deputyEnterprises[0].deputyEnterprise.uu;
+			// 费率
+			DeputyOrder.vendorRate( {enuu: $scope.deOrder.deputyuu}, {}, function(data) {
+				$scope.rate = data;
+			}, function(response){
+				
+			});
 		});
-		$scope.deOrder.deputyOrderItems.push(item);
+		
+		// 更新代采企业时更新费率
+		$scope.change = function(deputyuu) {
+			// 费率
+			DeputyOrder.vendorRate( {enuu: deputyuu}, {}, function(data) {
+				$scope.rate = data;
+			}, function(response){
+				
+			});
+		}
+		
+		// 查找付款企业
+		$scope.dbfindPayCompany = function(deputyuu) {
+			var modalInstance = $modal.open({
+				templateUrl: 'static/tpl/index/purc/modal/payCompany.html',
+				controller: 'DbfindDeputyPayCompanyCtrl',
+				size: 'lg',
+				resolve: {
+					deputyuu: function() {return deputyuu}
+				}
+			});
+			
+			modalInstance.result.then(function(data) {
+				$scope.deOrder.paymentcomenname = data.enname;
+				$scope.deOrder.paycomaddress = data.address;
+			})
+		}
+		
 		//增加商品
 		$scope.add = function(index) {
 			if($scope.deOrder.deputyOrderItems[index].prodcode == null) {
@@ -10932,7 +10961,6 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 			});
 			
 			modalInstance.result.then(function(data) {
-				console.log(data);
 				$scope.deOrder.customer = data.vendorEnterprise.enName;
 				$scope.deOrder.legalrepresent = data.vendorUser.userName;
 				$scope.deOrder.enaddress = data.vendorEnterprise.enAddress;
@@ -11035,6 +11063,26 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
   			$modalInstance.close(vendor);
   		}
 	}]);
+	
+	// 代采企业付款企业
+	app.controller('DbfindDeputyPayCompanyCtrl', ['$scope', 'toaster', '$upload', '$modalInstance', 'deputyuu', 'DeputyOrder', 'BaseService', 'ngTableParams', function($scope, toaster, $upload, $modalInstance, deputyuu, DeputyOrder, BaseService, ngTableParams) {
+		$scope.prod = false;
+		BaseService.scrollBackToTop();
+		DeputyOrder.paycompanys({enuu: deputyuu}, {}, function(data) {
+			$scope.paycompanys = data;
+		}, function(response) {
+			toaster.pop('error', '提示', response.data);
+		});
+		
+  		$scope.cancel = function() {
+    		$modalInstance.dismiss();
+  		};
+  		
+  		$scope.checkVendor = function(company) { // 直接选择
+  			$modalInstance.close(company);
+  		}
+	}]);
+	
 	/**
 	 * 代采订单批量导入
 	 */
@@ -11101,8 +11149,41 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 		DeputyOrder.deputyEnterprise({}, function(data) {
 			$scope.deputyEnterprises = data;
 			$scope.deOrder.deputyuu = $scope.deputyEnterprises[0].deputyEnterprise.uu;
+			// 费率
+			DeputyOrder.vendorRate( {enuu: $scope.deOrder.deputyuu}, {}, function(data) {
+				$scope.rate = data;
+			}, function(response){
+				
+			});
 		});
 		
+		// 更新代采企业时更新费率
+		$scope.change = function(deputyuu) {
+			// 费率
+			DeputyOrder.vendorRate( {enuu: deputyuu}, {}, function(data) {
+				$scope.rate = data;
+			}, function(response){
+				
+			});
+		}
+		
+		// 查找付款企业
+		$scope.dbfindPayCompany = function(deputyuu) {
+			var modalInstance = $modal.open({
+				templateUrl: 'static/tpl/index/purc/modal/payCompany.html',
+				controller: 'DbfindDeputyPayCompanyCtrl',
+				size: 'lg',
+				resolve: {
+					deputyuu: function() {return deputyuu}
+				}
+			});
+			
+			modalInstance.result.then(function(data) {
+				$scope.deOrder.paymentcomenname = data.enname;
+				$scope.deOrder.paycomaddress = data.address;
+			})
+		}
+		
 		var getService = function() {
 			return DeputyOrder.getProdList;
 		};

+ 6 - 1
src/main/webapp/resources/js/index/services/DeputyOrder.js

@@ -18,7 +18,7 @@ define(['ngResource'], function() {
 				method: 'DELETE'
 			},
 			vendorRate: {
-				url: 'deputyOrder/vendorRate',
+				url: 'deputyOrder/vendorRate/:enuu',
 				method: 'GET'
 			},
             printCount: {
@@ -33,6 +33,11 @@ define(['ngResource'], function() {
             vendors: {
             	url: 'deputyOrder/vendors',
                 method: 'GET'
+            },
+            paycompanys: {
+            	url: 'deputyOrder/paycompanys/:enuu',
+            	method: 'GET',
+            	isArray: true
             }
 		})
 	}]).factory('getDeOrder', ['$resource', function($resource) {

+ 14 - 5
src/main/webapp/resources/tpl/index/purc/deputyOrder_detail.html

@@ -264,7 +264,7 @@
                          	<div class="fl">
                                 <em>代采企业:</em>
                                <span>
-                               		<select name="" class="select" ng-model="deOrder.deputyuu"
+                               		<select name="" class="select" ng-model="deOrder.deputyuu"  style="width: 200px" 
                                			ng-options="deputyEn.deputyEnterprise.uu as deputyEn.deputyEnterprise.enName for deputyEn in deputyEnterprises"  ng-disabled="!deOrder.$editing">
                                		<option value="">请选择代采企业</option>
                                		</select>
@@ -295,7 +295,7 @@
                             <span><input type="text" class="text-center" ng-model="item.prodspec"></span>
                             <span><input type="text" class="text-center" ng-model="item.amount"></span>
                             <span><input type="text" class="text-center" ng-model="item.unitprice"></span>
-                            <span>{{item.unitprice + item.unitprice* rate| number: 2}}</span>
+                            <span>{{item.unitprice + item.unitprice* rate.rate| number: 2}}</span>
                             <span>{{item.unitprice * item.amount | number: 2}}</span>
                             <span><input type="text" class="text-center" ng-model="item.remark"></span>
                             <span><a ng-click="add($index)" style="color: #1f4fb2">添加</a><a ng-click="del($index)" style="color: #d32526"> 删除</a></span>
@@ -320,7 +320,7 @@
                             </div>
                             <div class="fr">
                             	 <em>订单总价款({{deOrder.currency}}):</em>
-                                <span >{{deOrder.orderamount}}</span>
+                                <span >{{deOrder.orderamount*(1+rate.rate)}}</span>
                             </div>
                         </li>
                         <li>
@@ -450,9 +450,18 @@
                 <div class="purchase_form01 clearfix">
                     <ul>
                         <li>
-                        	<div class="fl">
+                        	<!-- <div class="fl">
                                 <em>供应商:</em>
                                 <span><input type="text" class="input01" ng-model="deOrder.customer" ng-click="dbfindVendor(deOrder.deputyuu)" ng-readonly="!deOrder.$editing"></span>
+                            </div> -->
+                             <div class="fl">
+                                <em>供应商:</em>
+                               <span>
+                               		<select name="" class="select" ng-model="deOrder.customer" style="width: 200px" ng-readonly="!deOrder.$editing"
+                               			ng-options="deputyEn.deputyEnterprise.enName as deputyEn.deputyEnterprise.enName for deputyEn in deputyEnterprises">
+                               		<option value="">请选择供应商</option>
+                               		</select>
+                               </span>
                             </div>
                             <div class="fr">
                                 <em>供应商方法定代表人: </em>
@@ -478,7 +487,7 @@
                          <li>
                             <div class="fl">
                                 <em>付款公司: </em>
-                                <span><input type="text" class="input01" ng-model="deOrder.paymentcomenname" ng-readonly="!deOrder.$editing"></span>
+                                <span><input type="text" class="input01" ng-model="deOrder.paymentcomenname" ng-readonly="!deOrder.$editing" ng-click="dbfindPayCompany(deOrder.deputyuu)"></span>
                             </div>
                             <div class="fr">
                                 <em>付款公司地址:</em>

+ 14 - 5
src/main/webapp/resources/tpl/index/purc/deputyOrder_new.html

@@ -272,7 +272,7 @@
                          	<div class="fl">
                                 <em>代采企业:</em>
                                <span>
-                               		<select name="" class="select" ng-model="deOrder.deputyuu"
+                               		<select name="" class="select" ng-model="deOrder.deputyuu" style="width: 200px" ng-change="change(deOrder.deputyuu)"
                                			ng-options="deputyEn.deputyEnterprise.uu as deputyEn.deputyEnterprise.enName for deputyEn in deputyEnterprises">
                                		<option value="">请选择代采企业</option>
                                		</select>
@@ -303,7 +303,7 @@
                             <span><input type="text" class="text-center" ng-model="item.prodspec"></span>
                             <span><input type="text" class="text-center" ng-model="item.amount"></span>
                             <span><input type="text" class="text-center" ng-model="item.unitprice"></span>
-                            <span>{{item.unitprice + item.unitprice* rate| number: 2}}</span>
+                            <span>{{item.unitprice*(1+rate.rate)| number: 2}}</span>
                             <span>{{item.unitprice * item.amount | number: 2}}</span>
                             <span><input type="text" class="text-center" ng-model="item.remark"></span>
                             <span><a ng-click="add($index)" style="color: #1f4fb2">添加</a><a ng-click="del($index)" style="color: #d32526"> 删除</a></span>
@@ -328,7 +328,7 @@
                             </div>
                             <div class="fr">
                             	 <em>订单总价款({{deOrder.currency}}):</em>
-                                <span >{{deOrder.orderamount}}</span>
+                                <span >{{deOrder.orderamount*(1+rate.rate)}}</span>
                             </div>
                         </li>
                         <li>
@@ -458,9 +458,18 @@
                 <div class="purchase_form01 clearfix">
                     <ul>
                         <li>
-                        	<div class="fl">
+                        	<!-- <div class="fl">
                                 <em>供应商:</em>
                                 <span><input type="text" class="input01" ng-model="deOrder.customer" ng-click="dbfindVendor(deOrder.deputyuu)"></span>
+                            </div> -->
+                            <div class="fl">
+                                <em>供应商:</em>
+                               <span>
+                               		<select name="" class="select" ng-model="deOrder.customer" style="width: 200px"
+                               			ng-options="deputyEn.deputyEnterprise.enName as deputyEn.deputyEnterprise.enName for deputyEn in deputyEnterprises">
+                               		<option value="">请选择供应商</option>
+                               		</select>
+                               </span>
                             </div>
                             <div class="fr">
                                 <em>供应商方法定代表人: </em>
@@ -486,7 +495,7 @@
                          <li>
                             <div class="fl">
                                 <em>付款公司: </em>
-                                <span><input type="text" class="input01" ng-model="deOrder.paymentcomenname"></span>
+                                <span><input type="text" class="input01" ng-model="deOrder.paymentcomenname" ng-click="dbfindPayCompany(deOrder.deputyuu)"></span>
                             </div>
                             <div class="fr">
                                 <em>付款公司地址:</em>

+ 26 - 0
src/main/webapp/resources/tpl/index/purc/modal/payCompany.html

@@ -0,0 +1,26 @@
+<div class="modal-header">
+	<h3 class="modal-title">
+		<i class="fa fa-user fa-fw text-default"></i>客户名称
+	</h3>
+</div>
+<div class="modal-body">
+	<div>
+		<table width="50%"
+			class="block table table-bordered table-striped table-hover">
+			<thead>
+				<th width="120px;" class="text-center">客户名称</th>
+			</thead>
+			<tbody>
+				<div style="overflow-y: scroll; width: 100%; max-height: 500px">
+					<tr ng-repeat="company in paycompanys">
+						<td width="80px;"><a style="text-decoration: none"
+							ng-bind="::company.enname" ng-click="select(company)"></a></td>
+					</tr>
+				</div>
+			<tbody>
+		</table>
+	</div>
+</div>
+<div class="modal-footer">
+	<button class="btn btn-default" ng-click="close(false)" type="button">取消</button>
+</div>