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

首页展示询价信息

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

+ 11 - 1
src/main/java/com/uas/platform/b2b/controller/SaleInquiryController.java

@@ -17,7 +17,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.ModelAndView;
 
 
-import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.model.PurchaseInquiryItem;
 import com.uas.platform.b2b.model.PurchaseInquiryItem;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.search.SearchService;
@@ -26,6 +25,7 @@ import com.uas.platform.b2b.service.UserService;
 import com.uas.platform.b2b.support.JxlsExcelView;
 import com.uas.platform.b2b.support.JxlsExcelView;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
+import com.uas.platform.b2b.temporary.model.InquiryMessage;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageInfo;
@@ -338,4 +338,14 @@ public class SaleInquiryController {
 		return modelAndView;
 		return modelAndView;
 	}
 	}
 
 
+	/**
+	 * 得到询价消息提示
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/messageList", method = RequestMethod.GET)
+	@ResponseBody
+	private List<InquiryMessage> getMessageList() {
+		return purchaseInquiryService.getMessageList();
+	}
 }
 }

+ 8 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseInquiryService.java

@@ -9,6 +9,7 @@ import com.uas.platform.b2b.erp.model.QuotationDown;
 import com.uas.platform.b2b.model.Attach;
 import com.uas.platform.b2b.model.Attach;
 import com.uas.platform.b2b.model.PurchaseInquiryItem;
 import com.uas.platform.b2b.model.PurchaseInquiryItem;
 import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.model.SearchFilter;
+import com.uas.platform.b2b.temporary.model.InquiryMessage;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageInfo;
 
 
 public interface PurchaseInquiryService {
 public interface PurchaseInquiryService {
@@ -190,4 +191,11 @@ public interface PurchaseInquiryService {
 	 * @return
 	 * @return
 	 */
 	 */
 	public Long getAllCount();
 	public Long getAllCount();
+
+	/**
+	 * 询价信息
+	 * 
+	 * @return
+	 */
+	public List<InquiryMessage> getMessageList();
 }
 }

+ 60 - 16
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java

@@ -1,16 +1,49 @@
 package com.uas.platform.b2b.service.impl;
 package com.uas.platform.b2b.service.impl;
 
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.ContextUtils;
-import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.dao.AttachDao;
+import com.uas.platform.b2b.dao.CommonDao;
+import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryItemDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryReplyDao;
+import com.uas.platform.b2b.dao.UserBaseInfoDao;
 import com.uas.platform.b2b.erp.model.QuotationDown;
 import com.uas.platform.b2b.erp.model.QuotationDown;
 import com.uas.platform.b2b.erp.model.QuotationDownDetail;
 import com.uas.platform.b2b.erp.model.QuotationDownDetail;
 import com.uas.platform.b2b.event.PurchaseInquiryItemSaveEvent;
 import com.uas.platform.b2b.event.PurchaseInquiryItemSaveEvent;
 import com.uas.platform.b2b.event.PurchaseInquiryItemSaveReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseInquiryItemSaveReleaseEvent;
-import com.uas.platform.b2b.model.*;
+import com.uas.platform.b2b.model.Attach;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.PurchaseInquiry;
+import com.uas.platform.b2b.model.PurchaseInquiryItem;
+import com.uas.platform.b2b.model.PurchaseInquiryReply;
+import com.uas.platform.b2b.model.SearchFilter;
+import com.uas.platform.b2b.model.UserBaseInfo;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.PurchaseInquiryService;
 import com.uas.platform.b2b.service.PurchaseInquiryService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.XingePusher;
 import com.uas.platform.b2b.support.XingePusher;
+import com.uas.platform.b2b.temporary.model.InquiryMessage;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.exception.IllegalStatusException;
 import com.uas.platform.core.exception.IllegalStatusException;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Constant;
@@ -18,20 +51,6 @@ import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.search.b2b.model.PageParams;
 import com.uas.search.b2b.model.PageParams;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Sort.Direction;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
-import org.springframework.ui.ModelMap;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import java.util.*;
 
 
 @Service
 @Service
 public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
@@ -54,6 +73,12 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 	@Autowired
 	@Autowired
 	private SearchService searchService;
 	private SearchService searchService;
 
 
+	@Autowired
+	private CommonDao commonDao;
+
+	@Autowired
+	private ProductDao productDao;
+
 	@Override
 	@Override
 	public void save(List<PurchaseInquiryItem> inquiryItems) {
 	public void save(List<PurchaseInquiryItem> inquiryItems) {
 		inquiryItems = purchaseInquiryItemDao.save(inquiryItems);
 		inquiryItems = purchaseInquiryItemDao.save(inquiryItems);
@@ -335,4 +360,23 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 	public Long getNotOfferCountByEnUU(Long enUU) {
 	public Long getNotOfferCountByEnUU(Long enUU) {
 		return purchaseInquiryItemDao.getNotOfferCountByEnUU(enUU);
 		return purchaseInquiryItemDao.getNotOfferCountByEnUU(enUU);
 	}
 	}
+
+	@Override
+	public List<InquiryMessage> getMessageList() {
+		String sql = "select p.id_id id,p.id_prid productId from purc$inquiryitems p where id_venduu = "
+				+ SystemSession.getUser().getEnterprise().getUu()
+				+ " and id_status =200 and rownum <=5 order by id_id desc";
+		List<PurchaseInquiryItem> items = commonDao.query(sql, PurchaseInquiryItem.class);
+		List<InquiryMessage> messages = new ArrayList<InquiryMessage>();
+		if (!CollectionUtils.isEmpty(items)) {
+			for (PurchaseInquiryItem item : items) {
+				InquiryMessage message = new InquiryMessage();
+				Product prod = productDao.findOne(item.getProductId());
+				message.setInid(item.getId());
+				message.setPordName(prod.getTitle());
+				messages.add(message);
+			}
+		}
+		return messages;
+	}
 }
 }

+ 24 - 0
src/main/java/com/uas/platform/b2b/temporary/model/InquiryMessage.java

@@ -0,0 +1,24 @@
+package com.uas.platform.b2b.temporary.model;
+
+public class InquiryMessage {
+
+	private Long inid; // 询价详情id
+	private String pordName; // 物料名
+
+	public Long getInid() {
+		return inid;
+	}
+
+	public void setInid(Long inid) {
+		this.inid = inid;
+	}
+
+	public String getPordName() {
+		return pordName;
+	}
+
+	public void setPordName(String pordName) {
+		this.pordName = pordName;
+	}
+
+}

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

@@ -164,6 +164,11 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
             url : "/makeoutorder/:id",
             url : "/makeoutorder/:id",
             templateUrl : "static/tpl/index/make/outorder_detail.html",
             templateUrl : "static/tpl/index/make/outorder_detail.html",
             controller: 'MakeOutOrderDetailCtrl'
             controller: 'MakeOutOrderDetailCtrl'
+            /*平台新增询价单*/
+        }).state('purc.inquiry_new', {
+            url : "/purcinquiry",
+            templateUrl : "static/tpl/index/purc/inquiry_new.html",
+            controller: 'PurcInquiryCtrl'
         }).state('sale.tenderlist', {
         }).state('sale.tenderlist', {
             url : "/tender",
             url : "/tender",
             templateUrl : "static/tpl/index/sale/tenderlist.html",
             templateUrl : "static/tpl/index/sale/tenderlist.html",
@@ -2231,6 +2236,14 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 					$scope.tableParams.page(1);
 					$scope.tableParams.page(1);
 			}
 			}
 		};
 		};
+		
+		// 得到消息
+		PurcInquiry.getMessage({}, function(data){
+			console.log(data);
+			$scope.message = data;
+		}, function(response) {
+			
+		});
 		var getService = function() {
 		var getService = function() {
 			return $scope.condition.dateZone ? PurcInquiry : PurcInquiryHis;
 			return $scope.condition.dateZone ? PurcInquiry : PurcInquiryHis;
 		};
 		};
@@ -2466,6 +2479,166 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 		};
 		};
 	}]);
 	}]);
 	
 	
+	// 平台新增的询价单
+	app.controller('PurcInquiryCtrl', ['$scope', 'PurchaseInquiry', 'toaster', 'BaseService', '$upload', '$filter', '$modal', '$rootScope', 'ngTableParams', 'GetProductInfo', function($scope, PurchaseInquiry, toaster, BaseService, $upload, $filter, $modal, $rootScope, ngTableParams, GetProductInfo) {
+		BaseService.scrollBackToTop();
+		$scope.active = 'all';
+		var getService = function() {
+			return GetProductInfo;
+		};
+		$scope.inquiry = {
+				code: 'XJ' + $filter('date')(new Date(), 'yyMMddsss'),
+				showdate: $filter('date')(new Date, 'yyyy-MM-dd')
+		};
+		
+	    $scope.currentDay = function() {
+            return $filter('date')(new Date(), 'yyyy-MM-dd');
+        };
+        
+        $scope.vendors = [];
+        // 查找供应商
+        $scope.dbfindVendor = function(){
+            var modalInstance = $modal.open({
+                templateUrl: 'static/tpl/index/purc/tender_vendor.html',
+                controller: 'DbfindVendorCtrl',
+                size: 'lg',
+                resolve: {
+
+                }
+            });
+
+            modalInstance.result.then(function(data){
+            	  var ifPush = true;
+                  modalInstance.result.then(function(data){
+                      angular.forEach(data, function(vendor) {
+                          if (!$scope.vendors) {// 不存在就先创建
+                              $scope.vendors = [{}];
+                              $scope.vendors.splice(0, 1, vendor.vendorEnterprise);
+                          } else {
+                              for (var i = 0;i<$scope.vendors.length; i++) {
+                                  ifPush = true;
+                                  if ($scope.vendors[i].enName == vendor.vendorEnterprise.enName) {
+                                      ifPush = false;
+                                      break; // 判定到已存在供应商,就终止循环。
+                                  }
+                              }
+                              if (ifPush) {
+                                  $scope.vendors.push({enName: vendor.vendorEnterprise.enName, enuu: vendor.vendorEnterprise.uu});
+                              }
+                          }
+                      });
+                      $rootScope.tenderVendor = $scope.vendors;
+                  }, function(){
+
+                  });
+            }, function(){
+
+            });
+        };
+        // 删除一个供应商
+        $scope.removeVendor = function(index) {
+            $scope.vendors.splice(index, 1);
+        };
+
+		// 物料信息
+		$scope.tableParams = new ngTableParams({
+			page : 1, 
+			count : 5,
+			sorting: {
+            }
+		}, {
+			total : 0, 
+			counts: [5, 10, 25, 50],
+			getData : function($defer, params) {
+				$scope.loading = true;
+				var pageParams = params.url();
+				pageParams.keyword = $scope.keyword;
+				pageParams.searchFilter = $scope.searchFilter;
+				getService()[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function(page){
+					$scope.loading = false;
+					if(page) {
+						params.total(page.totalElement);
+						$defer.resolve(page.content);
+					}
+				}, function(response) {
+					$scope.loading = false;
+					toaster.pop('error', '数据加载失败', response.data);
+				});
+			}
+		});
+
+		// 搜索框回车
+		$scope.onSearch = function() {
+			$scope.tableParams.page(1);
+			$scope.tableParams.reload();
+		};
+	        
+		$scope.inquiry.inquiryItems = [];
+        //删除商品
+        $scope.del = function(index) {
+        	$scope.inquiry.inquiryItems.splice(index, 1);
+        };
+        
+		$scope.check = function(product) {
+			$scope.inquiry.inquiryItems.push({prodCode: product.code, prodTitle: product.title, spec: product.spec, unit: product.unit,
+                currency: null, toDate: null,  productId: product.id});
+		}	
+		
+		$scope.getMinDate = function(item) {
+			return $filter('date')(new Date, 'yyyy-MM-dd');
+		};
+		
+		$scope.openDatePicker = function($event, openParam, index) {
+			$event.preventDefault();
+		    $event.stopPropagation();
+		    $scope.inquiry.inquiryItems[index].$toDateOpen = !openParam;
+		};
+		
+        $scope.openEndDatePicker = function($event, item, openParam) {
+            $event.preventDefault();
+            $event.stopPropagation();
+            item[openParam] = !item[openParam];
+        };
+        
+        // 保存
+        $scope.save = function() {
+//        	var file = $scope.myFiles, file = file && file.length > 0 ? file[0] : null;// 可以不传附件
+//    		$upload.upload({
+//    			url: 'product/baseInfo/updateProdInfo',
+//    			file: file,
+//    			method: 'POST',
+//    			data: {
+//    				prodInfo: $scope.prodInfo
+//    			},
+//    		}).success(function(data) {
+//    			if(data.success) {
+//    				toaster.pop('success', '提示', data.success);
+//    				window.location.reload();
+//    			}
+//    			if(data.error) {
+//    				toaster.pop('error', '提示', data.error);
+//    			}
+//    		}).error(function(data) {
+//    			$scope.loadingShow = false;
+//    			toaster.pop('error', '操作失败', data.error);
+//    		});    
+        	PurchaseInquiry.save({inquiry: $scope.inquiry}, $scope.vendors, function(data) {
+        		
+        	}, function(response) {
+        		
+        	});
+    	}
+        
+        // 保存并提交
+        $scope.submit = function() {
+        	PurchaseInquiry.submit({inquiry: $scope.inquiry}, $scope.vendors, function(data) {
+        		
+        	}, function(response) {
+        		
+        	});
+    	}
+	}]);
+
 	// 模具询价管理 
 	// 模具询价管理 
 	app.controller('SaleInquiryMouldCtrl',['$scope', '$filter', 'PurcInquiryMould', 'ngTableParams', 'toaster', 'BaseService', '$upload', function($scope, $filter, PurcInquiryMould, ngTableParams, toaster, BaseService, $upload){
 	app.controller('SaleInquiryMouldCtrl',['$scope', '$filter', 'PurcInquiryMould', 'ngTableParams', 'toaster', 'BaseService', '$upload', function($scope, $filter, PurcInquiryMould, ngTableParams, toaster, BaseService, $upload){
 		BaseService.scrollBackToTop();
 		BaseService.scrollBackToTop();
@@ -7697,7 +7870,6 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 		
 		
 		$scope.submit = function(prodInfo) {
 		$scope.submit = function(prodInfo) {
 			var file = $scope.myFiles, file = file && file.length > 0 ? file[0] : null;// 可以不传附件
 			var file = $scope.myFiles, file = file && file.length > 0 ? file[0] : null;// 可以不传附件
-			console.log(file);
 			$upload.upload({
 			$upload.upload({
 				url: 'product/baseInfo/updateProdInfo',
 				url: 'product/baseInfo/updateProdInfo',
 				file: file,
 				file: file,
@@ -9139,6 +9311,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 			page : 1, 
 			page : 1, 
 			count : 5,
 			count : 5,
 			sorting: {
 			sorting: {
+				date: 'desc',
             }
             }
 		}, {
 		}, {
 			total : 0, 
 			total : 0, 

+ 54 - 1
src/main/webapp/resources/js/index/services/Purc.js

@@ -165,6 +165,11 @@ define([ 'ngResource'], function() {
                     itemId: 'itemId'
                     itemId: 'itemId'
                 },
                 },
                 isArray: true
                 isArray: true
+            },
+            getMessage: {
+            	url: 'sale/inquiry/messageList',
+            	isArray: true,
+            	method: 'GET'
             }
             }
         });
         });
     }]).factory('PurcTender', ['$resource', function($resource) {
     }]).factory('PurcTender', ['$resource', function($resource) {
@@ -767,5 +772,53 @@ define([ 'ngResource'], function() {
                 method: 'GET'
                 method: 'GET'
             }
             }
         });
         });
-    }]);
+    }])}]).factory('PurchaseInquiry', ['$resource', function($resource){
+		return $resource('purc/inquiry', {}, {
+			getTodo: {
+                params: {
+                    _state: 'todo'
+                },
+                method: 'GET'
+			},
+			getDone: {
+                params: {
+                    _state: 'done'
+                },
+                method: 'GET'
+			},
+			getEnd: {
+                params: {
+                    _state: 'end'
+                },
+                method: 'GET'
+			},
+			getAll: {
+				method: 'GET'
+			},
+			getWaiting: {
+               url: 'purc/inquiry/unapply',
+               method: 'GET'
+			},
+			deleteById: {
+				url: 'purc/inquiry/deleteById/:id',
+				method: 'DELETE'
+			},
+			clearOrder: {
+				url: 'purc/inquiry/clearOrder/:id',
+				method: 'DELETE'
+			},
+			save: {
+				url: 'purc/inqiury/save',
+				method: 'POST'
+			},
+			detail: {
+				url: 'purc/inquiry/detail/:id',
+				method: 'GET'
+			},
+			submit: {
+				url: 'purc/inqiury/saveAndSubmit',
+				method: 'POST'
+			}
+		});
+	}]);
 });
 });