Pārlūkot izejas kodu

企业圈接口修改;客户采购询价分段数限制必须递增。

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@10829 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 8 gadi atpakaļ
vecāks
revīzija
b8f3b39690

+ 263 - 5
src/main/java/com/uas/platform/b2b/erp/controller/UserSpaceDetailController.java

@@ -1,23 +1,36 @@
 package com.uas.platform.b2b.erp.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.uas.account.entity.UserSpaceDetail;
 import com.uas.account.support.Page;
+import com.uas.platform.b2b.erp.model.B2BCustomer;
+import com.uas.platform.b2b.erp.model.B2BVendor;
 import com.uas.platform.b2b.erp.model.PageInfo;
 import com.uas.platform.b2b.model.InvitationRecord;
+import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.b2b.search.SearchService;
+import com.uas.platform.b2b.service.AddPartnerService;
+import com.uas.platform.b2b.service.InvitationRecordService;
+import com.uas.platform.b2b.service.PurcOrderService;
+import com.uas.platform.b2b.service.UserService;
 import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.temporary.model.BasePartnersInfo;
 import com.uas.platform.core.model.Constant;
+import com.uas.platform.core.model.Status;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import com.uas.search.b2b.model.MultiValue;
 import com.uas.search.b2b.model.PageParams;
 import com.uas.search.b2b.model.SPage;
+import com.uas.search.b2b.model.Sort;
+import com.uas.search.b2b.util.SearchConstants;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * erp查询企业圈数据接口
@@ -32,8 +45,20 @@ public class UserSpaceDetailController {
 	@Autowired
 	private SearchService searchService;
 
+	@Autowired
+	private InvitationRecordService invitationRecordService;
+
+	@Autowired
+	private PurcOrderService purcOrderService;
+
+	@Autowired
+	private AddPartnerService addPartnerService;
+
+	@Autowired
+	private UserService userService;
+
 	/**
-	 * 平台的应收对账传到供应商ERP之后,修改平台里面的订单的上传状态
+	 * 添加合作伙伴
 	 * 
 	 * @return
 	 * @throws UnsupportedEncodingException
@@ -99,4 +124,237 @@ public class UserSpaceDetailController {
 		}
 		return records;
 	}
+
+	/**
+	 * ERP获取供应商
+	 */
+	@RequestMapping(value = "/vendor", method = RequestMethod.GET)
+	@ResponseBody
+	public Page<B2BVendor> getVendors(@RequestParam("pageInfo") String pageInfo) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(pageInfo, "UTF-8");
+		PageInfo info = JSON.parseObject(jsonStr, PageInfo.class);
+		String keyword = info.getKeyword();
+		PageParams pageParams = new PageParams();
+		pageParams.setSize(info.getPageSize());
+		pageParams.setPage(info.getPageNumber());
+		ModelMap map = new ModelMap();
+		map.put("ve_myenuu", SystemSession.getUser().getEnterprise().getUu());
+		map.put("ve_vendswitch", Constant.YES);
+		ModelMap notMap = new ModelMap();
+		pageParams.setNotEqualFilters(notMap);
+		List<Sort> sortList = new ArrayList<>();
+		sortList.add(new Sort("ve_id", false, Sort.Type.LONG, new Long(1)));
+		map.put(SearchConstants.SORT_KEY, sortList);
+		pageParams.setFilters(map);
+		return searchService.searchVendorForErp(keyword, pageParams);
+	}
+
+	/**
+	 * ERP获取服务商
+	 */
+	@RequestMapping(value = "/servicer", method = RequestMethod.GET)
+	@ResponseBody
+	public Page<B2BVendor> getServicer(@RequestParam("pageInfo") String pageInfo) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(pageInfo, "UTF-8");
+		PageInfo info = JSON.parseObject(jsonStr, PageInfo.class);
+		String keyword = info.getKeyword();
+		PageParams pageParams = new PageParams();
+		pageParams.setSize(info.getPageSize());
+		pageParams.setPage(info.getPageNumber());
+		ModelMap map = new ModelMap();
+		map.put("ve_myenuu", SystemSession.getUser().getEnterprise().getUu());
+		map.put("ve_servicerswitch", Constant.YES);
+		ModelMap notMap = new ModelMap();
+		pageParams.setNotEqualFilters(notMap);
+		List<Sort> sortList = new ArrayList<>();
+		sortList.add(new Sort("ve_id", false, Sort.Type.LONG, new Long(1)));
+		map.put(SearchConstants.SORT_KEY, sortList);
+		pageParams.setFilters(map);
+		return searchService.searchVendorForErp(keyword, pageParams);
+	}
+
+
+	/**
+	 * 获取客户
+	 */
+	@RequestMapping(value = "/customer", method = RequestMethod.GET)
+	@ResponseBody
+	public Page<B2BCustomer> getCustomers(@RequestParam("pageInfo") String pageInfo) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(pageInfo, "UTF-8");
+		PageInfo info = JSON.parseObject(jsonStr, PageInfo.class);
+//		customer = URLDecoder.decode(customer, "UTF-8");
+//		List<Object> custUUs = JSON.parseArray(customer, Object.class);
+		String keyword = info.getKeyword();
+		com.uas.search.b2b.model.PageParams pageParams = new com.uas.search.b2b.model.PageParams();
+		pageParams.setSize(info.getPageSize());
+		pageParams.setPage(info.getPageNumber());
+		ModelMap map = new ModelMap();
+		map.put("ve_vendenuu", SystemSession.getUser().getEnterprise().getUu());
+		map.put("ve_custswitch", Constant.YES);
+		ModelMap notMap = new ModelMap();
+//        notMap.put("ve_myenuu", new MultiValue(custUUs, true));
+		pageParams.setNotEqualFilters(notMap);
+		List<Sort> sortList = new ArrayList<>();
+		SearchFilter filter = userService.distribute();
+		if (filter != null && filter.getDistribute() == null) {
+			return null;
+		}
+		if (filter != null && !org.springframework.util.CollectionUtils.isEmpty(filter.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			list.addAll(filter.getDistribute());
+			map.put("ve_myenuu", new MultiValue(list, true));
+		}
+		sortList.add(new Sort("ve_id", false, Sort.Type.LONG, new Long(1)));
+		map.put(SearchConstants.SORT_KEY, sortList);
+		pageParams.setFilters(map);
+		return searchService.searchCustomerForErp(keyword, pageParams);
+	}
+
+	/**
+	 * UAS合作伙伴<br>
+	 * 请求者的名义查看个人的发出的请求<br>
+	 * 已通过(全部合作伙伴)
+	 *
+	 * @param data
+	 * @return
+	 */
+	@RequestMapping(value = "/request", method = RequestMethod.GET)
+	@ResponseBody
+	public Page<BasePartnersInfo> getDoneRequest(@RequestParam("data") String data) throws Exception {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		PageInfo info = JSON.parseObject(jsonStr, PageInfo.class);
+//		vendor = URLDecoder.decode(vendor, "UTF-8");
+//		List<Long> vendUUs = JSON.parseArray(vendor, Long.class);
+//		customer = URLDecoder.decode(customer, "UTF-8");
+//		List<Long> custUUs = JSON.parseArray(customer, Long.class);
+		String keyword = info.getKeyword();
+		PageParams pageParams = new PageParams();
+		pageParams.setSize(info.getPageSize());
+		pageParams.setPage(info.getPageNumber());
+		return addPartnerService.findByBusCodeAndKeyWordForERP(keyword, Status.ENABLED.value(), pageParams.getSize(),
+				pageParams.getPage());
+	}
+
+
+	/**
+	 * 添加为供应商
+	 *
+	 * @param businessCode
+	 * @return
+	 */
+	@RequestMapping(value = "/addSupplier", method = RequestMethod.POST)
+	@ResponseBody
+	public ModelMap addSupplier(@RequestParam("businessCode") String businessCode) throws UnsupportedEncodingException {
+		businessCode = URLDecoder.decode(businessCode, "UTF-8");
+		return addPartnerService.addSupplier(businessCode);
+	}
+
+	/**
+	 * 添加为服务商
+	 *
+	 * @param businessCode
+	 * @return
+	 */
+	@RequestMapping(value = "/addServicer", method = RequestMethod.POST)
+	@ResponseBody
+	public ModelMap addServicer(@RequestParam("businessCode") String businessCode) throws UnsupportedEncodingException {
+		businessCode = URLDecoder.decode(businessCode, "UTF-8");
+		return addPartnerService.addServicer(businessCode);
+	}
+
+	/**
+	 * 添加为客户
+	 *
+	 * @param businessCode
+	 * @return
+	 */
+	@RequestMapping(value = "/addCust", method = RequestMethod.POST)
+	@ResponseBody
+	public ModelMap addCust(@RequestParam("businessCode") String businessCode) throws UnsupportedEncodingException {
+		businessCode = URLDecoder.decode(businessCode, "UTF-8");
+		return addPartnerService.addCust(businessCode);
+	}
+
+	/**
+	 * 解除供应商关系(禁用)
+	 *
+	 * @param id
+	 */
+	@RequestMapping(value = "/relieve", method = RequestMethod.POST)
+	@ResponseBody
+	private ModelMap relieve(@RequestParam("id") Long id) {
+		return purcOrderService.relieve(id);
+	}
+
+	/**
+	 * 启用供应商
+	 *
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping(value = "/activeVend", method = RequestMethod.POST)
+	@ResponseBody
+	private ModelMap activeVend(@RequestParam("id") Long id) {
+		return purcOrderService.activeVend(id);
+	}
+
+	/**
+	 * 解除服务商关系(禁用)
+	 *
+	 * @param id
+	 */
+	@RequestMapping(value = "/relieveServicer", method = RequestMethod.POST)
+	@ResponseBody
+	private ModelMap relieveServicer(@RequestParam("id") Long id) {
+		return purcOrderService.relieveServicer(id);
+	}
+
+	/**
+	 * 启用服务商
+	 *
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping(value = "/activeServicer", method = RequestMethod.POST)
+	@ResponseBody
+	private ModelMap activeServicer(@RequestParam("id") Long id) {
+		return purcOrderService.activeServicer(id);
+	}
+
+	/**
+	 * 禁用客户
+	 *
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping(value = "/disableCust", method = RequestMethod.POST)
+	@ResponseBody
+	private ModelMap disableCust(@RequestParam("id") Long id) {
+		return purcOrderService.disableCust(id);
+	}
+
+	/**
+	 * 启用客户
+	 *
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping(value = "/activeCust", method = RequestMethod.POST)
+	@ResponseBody
+	private ModelMap activeCust(@RequestParam("id") Long id) {
+		return purcOrderService.activeCust(id);
+	}
+
+	/**
+	 * 邀请开通平台
+	 *
+	 * @param data
+	 * @return
+	 */
+	@RequestMapping(value = "/invite", method = RequestMethod.POST)
+	private ModelMap invite(@RequestParam("data")String data) throws UnsupportedEncodingException {
+		String formStore = URLDecoder.decode(data, "UTF-8");
+		InvitationRecord record = FlexJsonUtils.fromJson(formStore, InvitationRecord.class);
+		return invitationRecordService.invite(record);
+	}
 }

+ 2 - 204
src/main/java/com/uas/platform/b2b/erp/controller/VendorRateController.java

@@ -1,30 +1,15 @@
 package com.uas.platform.b2b.erp.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.uas.account.support.Page;
 import com.uas.platform.b2b.dao.VendorDao;
-import com.uas.platform.b2b.erp.model.*;
+import com.uas.platform.b2b.erp.model.VendorInfo;
+import com.uas.platform.b2b.erp.model.VendorRate;
 import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
-import com.uas.platform.b2b.model.InvitationRecord;
 import com.uas.platform.b2b.model.Vendor;
-import com.uas.platform.b2b.search.SearchService;
-import com.uas.platform.b2b.service.AddPartnerService;
-import com.uas.platform.b2b.service.InvitationRecordService;
-import com.uas.platform.b2b.service.PurcOrderService;
-import com.uas.platform.b2b.support.SystemSession;
-import com.uas.platform.b2b.temporary.model.BasePartnersInfo;
 import com.uas.platform.core.logging.BufferedLoggerManager;
-import com.uas.platform.core.model.Status;
-import com.uas.platform.core.util.serializer.FlexJsonUtils;
-import com.uas.search.b2b.model.MultiValue;
-import com.uas.search.b2b.model.PageParams;
-import com.uas.search.b2b.model.Sort;
-import com.uas.search.b2b.util.SearchConstants;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -32,7 +17,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
-import java.util.ArrayList;
 import java.util.List;
 
 @Controller
@@ -44,192 +28,6 @@ public class VendorRateController {
 	@Autowired
 	private VendorDao vendorDao;
 
-	@Autowired
-	private SearchService searchService;
-
-	@Autowired
-	private InvitationRecordService invitationRecordService;
-
-	@Autowired
-	private PurcOrderService purcOrderService;
-
-	@Autowired
-	private AddPartnerService addPartnerService;
-
-	/**
-	 * ERP获取供应商
-	 */
-	@RequestMapping(method = RequestMethod.POST)
-	@ResponseBody
-	public Page<B2BVendor> getVendors(@RequestParam("pageInfo") String pageInfo, @RequestParam("vendUUs") String vendor) throws UnsupportedEncodingException {
-		String jsonStr = URLDecoder.decode(pageInfo, "UTF-8");
-		PageInfo info = JSON.parseObject(jsonStr, PageInfo.class);
-		vendor = URLDecoder.decode(vendor, "UTF-8");
-		List<Object> vendUUs = JSON.parseArray(vendor, Object.class);
-		String keyword = info.getKeyword();
-		PageParams pageParams = new PageParams();
-		pageParams.setSize(info.getPageSize());
-		pageParams.setPage(info.getPageNumber());
-		ModelMap map = new ModelMap();
-		map.put("ve_myenuu", SystemSession.getUser().getEnterprise().getUu());
-        ModelMap notMap = new ModelMap();
-		notMap.put("ve_vendenuu", new MultiValue(vendUUs, true));
-        pageParams.setNotEqualFilters(notMap);
-		List<Sort> sortList = new ArrayList<>();
-		sortList.add(new Sort("ve_id", false, Sort.Type.LONG, new Long(1)));
-		map.put(SearchConstants.SORT_KEY, sortList);
-		pageParams.setFilters(map);
-		return searchService.searchVendorForErp(keyword, pageParams);
-	}
-
-
-	/**
-	 * 获取客户
-	 */
-	@RequestMapping(value = "/customer", method = RequestMethod.POST)
-	@ResponseBody
-	public Page<B2BCustomer> getCustomers(@RequestParam("pageInfo") String pageInfo, @RequestParam("custUUs") String customer) throws UnsupportedEncodingException {
-		String jsonStr = URLDecoder.decode(pageInfo, "UTF-8");
-		PageInfo info = JSON.parseObject(jsonStr, PageInfo.class);
-		customer = URLDecoder.decode(customer, "UTF-8");
-		List<Object> custUUs = JSON.parseArray(customer, Object.class);
-		String keyword = info.getKeyword();
-		com.uas.search.b2b.model.PageParams pageParams = new com.uas.search.b2b.model.PageParams();
-		pageParams.setSize(info.getPageSize());
-		pageParams.setPage(info.getPageNumber());
-		ModelMap map = new ModelMap();
-		map.put("ve_vendenuu", SystemSession.getUser().getEnterprise().getUu());
-		ModelMap notMap = new ModelMap();
-        notMap.put("ve_myenuu", new MultiValue(custUUs, true));
-        pageParams.setNotEqualFilters(notMap);
-		List<Sort> sortList = new ArrayList<>();
-		// SearchFilter filter = userService.distribute();
-//		if (filter != null && filter.getDistribute() == null) {
-//			return null;
-//		}
-//		if (filter != null && !org.springframework.util.CollectionUtils.isEmpty(filter.getDistribute())) {
-//			List<Object> list = new ArrayList<>();
-//			list.addAll(filter.getDistribute());
-//			map.put("ve_myenuu", new MultiValue(list, true));
-//		}
-		sortList.add(new Sort("ve_id", false, Sort.Type.LONG, new Long(1)));
-		map.put(SearchConstants.SORT_KEY, sortList);
-		pageParams.setFilters(map);
-		return searchService.searchCustomerForErp(keyword, pageParams);
-	}
-
-	/**
-	 * UAS新的合作伙伴<br>
-	 * 请求者的名义查看个人的发出的请求<br>
-	 * 已通过(全部合作伙伴)
-	 *
-	 * @param data
-	 * @return
-	 */
-	@RequestMapping(value = "/request", method = RequestMethod.POST)
-	@ResponseBody
-	public Page<BasePartnersInfo> getDoneRequest(@RequestParam("data") String data, @RequestParam("vendUUs") String vendor, @RequestParam("custUUs") String customer) throws Exception {
-		String jsonStr = URLDecoder.decode(data, "UTF-8");
-		PageInfo info = JSON.parseObject(jsonStr, PageInfo.class);
-		vendor = URLDecoder.decode(vendor, "UTF-8");
-		List<Long> vendUUs = JSON.parseArray(vendor, Long.class);
-		customer = URLDecoder.decode(customer, "UTF-8");
-		List<Long> custUUs = JSON.parseArray(customer, Long.class);
-		String keyword = info.getKeyword();
-		PageParams pageParams = new PageParams();
-		pageParams.setSize(info.getPageSize());
-		pageParams.setPage(info.getPageNumber());
-		return addPartnerService.findByBusCodeAndKeyWordForERP(keyword, Status.ENABLED.value(), pageParams.getSize(),
-				pageParams.getPage(), vendUUs, custUUs);
-	}
-
-
-	/**
-	 * 添加为供应商
-	 *
-	 * @param businessCode
-	 * @return
-	 */
-	@RequestMapping(value = "/addSupplier", method = RequestMethod.POST)
-	@ResponseBody
-	public ModelMap addSupplier(@RequestParam("businessCode") String businessCode) throws UnsupportedEncodingException {
-		businessCode = URLDecoder.decode(businessCode, "UTF-8");
-		return addPartnerService.addSupplier(businessCode);
-	}
-
-	/**
-	 * 添加为客户
-	 *
-	 * @param businessCode
-	 * @return
-	 */
-	@RequestMapping(value = "/addCust", method = RequestMethod.POST)
-	@ResponseBody
-	public ModelMap addCust(@RequestParam("businessCode") String businessCode) throws UnsupportedEncodingException {
-		businessCode = URLDecoder.decode(businessCode, "UTF-8");
-		return addPartnerService.addCust(businessCode);
-	}
-
-	/**
-	 * 解除供应商关系(禁用)
-	 *
-	 * @param id
-	 */
-	@RequestMapping(value = "/relieve", method = RequestMethod.POST)
-	@ResponseBody
-	private ModelMap relieve(@RequestParam("id") Long id) {
-		return purcOrderService.relieve(id);
-	}
-
-	/**
-	 * 启用供应商
-	 *
-	 * @param id
-	 * @return
-	 */
-	@RequestMapping(value = "/activeVend", method = RequestMethod.POST)
-	@ResponseBody
-	private ModelMap activeVend(@RequestParam("id") Long id) {
-		return purcOrderService.activeVend(id);
-	}
-
-	/**
-	 * 禁用客户
-	 *
-	 * @param id
-	 * @return
-	 */
-	@RequestMapping(value = "/disableCust", method = RequestMethod.POST)
-	@ResponseBody
-	private ModelMap disableCust(@RequestParam("id") Long id) {
-		return purcOrderService.disableCust(id);
-	}
-
-	/**
-	 * 启用客户
-	 *
-	 * @param id
-	 * @return
-	 */
-	@RequestMapping(value = "/activeCust", method = RequestMethod.POST)
-	@ResponseBody
-	private ModelMap activeCust(@RequestParam("id") Long id) {
-		return purcOrderService.activeCust(id);
-	}
-
-	/**
-	 * 邀请开通平台
-	 *
-	 * @param data
-	 * @return
-	 */
-	@RequestMapping(value = "/invite", method = RequestMethod.POST)
-	private ModelMap invite(@RequestParam("data")String data) throws UnsupportedEncodingException {
-		String formStore = URLDecoder.decode(data, "UTF-8");
-		InvitationRecord record = FlexJsonUtils.fromJson(formStore, InvitationRecord.class);
-		return invitationRecordService.invite(record);
-	}
-
 	/**
 	 * 上传供应商费率
 	 * 

+ 30 - 1
src/main/java/com/uas/platform/b2b/erp/model/B2BCustomer.java

@@ -1,6 +1,6 @@
 package com.uas.platform.b2b.erp.model;
 
-/**
+import com.uas.platform.b2b.model.Vendor; /**
  * Created by dongbw
  * 17/07/12 19:54.
  */
@@ -56,6 +56,27 @@ public class B2BCustomer {
      */
     private Long b2b_vendor_id;
 
+    /**
+     * 客户开关
+     */
+    private Short customerswitch;
+
+    public B2BCustomer(Vendor vendor) {
+        this.setB2b_vendor_id(vendor.getId());
+        this.setCustomerswitch(vendor.getCustswitch());
+        if (vendor.getMyEnterprise() != null) {
+            this.setCu_name(vendor.getMyEnterprise().getEnName());
+            this.setCu_add1(vendor.getMyEnterprise().getEnAddress());
+            this.setCu_shortname(vendor.getMyEnterprise().getEnShortname());
+            this.setCu_businesscode(vendor.getMyEnterprise().getEnBussinessCode());
+            this.setCu_tel(vendor.getMyEnterprise().getEnTel());
+        }
+        this.setCu_uu(String.valueOf(vendor.getMyEnUU()));
+        if (vendor.getVendorUser() != null) {
+            this.setCu_contact(vendor.getMyUser().getUserName());
+        }
+    }
+
     public Integer getCu_id() {
         return cu_id;
     }
@@ -143,4 +164,12 @@ public class B2BCustomer {
     public void setB2b_vendor_id(Long b2b_vendor_id) {
         this.b2b_vendor_id = b2b_vendor_id;
     }
+
+    public Short getCustomerswitch() {
+        return customerswitch;
+    }
+
+    public void setCustomerswitch(Short customerswitch) {
+        this.customerswitch = customerswitch;
+    }
 }

+ 49 - 6
src/main/java/com/uas/platform/b2b/erp/model/B2BVendor.java

@@ -1,6 +1,6 @@
 package com.uas.platform.b2b.erp.model;
 
-/**
+import com.uas.platform.b2b.model.Vendor; /**
  * Created by dongbw
  * 17/07/12 17:22.
  */
@@ -59,7 +59,34 @@ public class B2BVendor {
     /**
      * B2B vendorId
      */
-    private Long b2b_ve_id;
+    private Long b2b_vendor_id;
+
+    /**
+     * 供应商开关
+     */
+    private Short vendorSwitch;
+
+    /**
+     * 服务商开关
+     */
+    private Short servicerSwitch;
+
+    public B2BVendor(Vendor vendor) {
+        this.setB2b_vendor_id(vendor.getId());
+        this.setVendorSwitch(vendor.getVendswitch());
+        this.setServicerSwitch(vendor.getServicerswitch());
+        if (vendor.getVendorEnterprise() != null) {
+            this.setVe_name(vendor.getVendorEnterprise().getEnName());
+            this.setVe_add1(vendor.getVendorEnterprise().getEnAddress());
+            this.setVe_shortname(vendor.getVendorEnterprise().getEnShortname());
+            this.setVe_webserver(vendor.getVendorEnterprise().getEnBussinessCode());
+            this.setVe_tel(vendor.getVendorEnterprise().getEnTel());
+        }
+        this.setVe_uu(String.valueOf(vendor.getVendEnUU()));
+        if (vendor.getVendorUser() != null) {
+            this.setVe_contact(vendor.getVendorUser().getUserName());
+        }
+    }
 
     public Integer getVe_id() {
         return ve_id;
@@ -141,11 +168,27 @@ public class B2BVendor {
         this.ve_uu = ve_uu;
     }
 
-    public Long getB2b_ve_id() {
-        return b2b_ve_id;
+    public Long getB2b_vendor_id() {
+        return b2b_vendor_id;
+    }
+
+    public void setB2b_vendor_id(Long b2b_vendor_id) {
+        this.b2b_vendor_id = b2b_vendor_id;
+    }
+
+    public Short getVendorSwitch() {
+        return vendorSwitch;
+    }
+
+    public void setVendorSwitch(Short vendorSwitch) {
+        this.vendorSwitch = vendorSwitch;
+    }
+
+    public Short getServicerSwitch() {
+        return servicerSwitch;
     }
 
-    public void setB2b_ve_id(Long b2b_ve_id) {
-        this.b2b_ve_id = b2b_ve_id;
+    public void setServicerSwitch(Short servicerSwitch) {
+        this.servicerSwitch = servicerSwitch;
     }
 }

+ 57 - 54
src/main/java/com/uas/platform/b2b/erp/service/impl/TenderServiceImpl.java

@@ -500,6 +500,9 @@ public class TenderServiceImpl implements TenderService {
                 saveList.add(saleTender);
             }
             saleTenderDao.save(saveList);
+            for (SaleTender saleTender : saveList) {
+                saveUserOrders(saleTender, tender);
+            }
         }
         map.put("success", true);
         return map;
@@ -716,60 +719,6 @@ public class TenderServiceImpl implements TenderService {
         }
     }
 
-    /**
-     * 添加供应商资料
-     *
-     * @param saleTender
-     */
-    private Vendor addVendor(SaleTender saleTender) {
-        Enterprise enterprise = enterpriseDao.findOne(saleTender.getVendUU());
-        if (enterprise != null) {
-            Vendor vendor = new Vendor();
-            vendor.setMyEnUU(saleTender.getEnUU());
-            vendor.setMyEnterprise(saleTender.getEnterprise());
-            vendor.setMyUserUU(saleTender.getRecorderuu());
-            vendor.setVendorEnterprise(enterprise);
-            vendor.setVendEnUU(enterprise.getUu());
-            if (saleTender.getUseruu() != null) {
-                List<User> users = userDao.findByEnUUAndUserUU(enterprise.getUu(), saleTender.getUseruu());
-                if (users.size() > 0) {
-                    vendor.setVendUserUU(saleTender.getUseruu());
-                }
-            }
-            return vendorDao.save(vendor);
-        }
-        return null;
-    }
-
-    /**
-     * 添加合作伙伴关系
-     * @param vendor
-     */
-    private void addPartnerShipRecord(Vendor vendor) {
-        PartnershipRecord shipRecord = new PartnershipRecord("uas", vendor);
-        com.uas.account.entity.PartnershipRecord record = new com.uas.account.entity.PartnershipRecord();
-        record.setAppId(shipRecord.getAppId());
-        record.setCustName(shipRecord.getCustName());
-        record.setCustUID(shipRecord.getCustUID());
-        record.setCustUserCode(shipRecord.getCustUserCode());
-        record.setCustUserEmail(shipRecord.getCustUserEmail());
-        record.setCustUserName(shipRecord.getCustUserName());
-        record.setCustUserTel(shipRecord.getCustUserTel());
-        record.setVendName(shipRecord.getVendName());
-        record.setVendUID(shipRecord.getVendUID());
-        record.setVendUserCode(shipRecord.getVendUserCode());
-        record.setVendUserEmail(shipRecord.getVendUserEmail());
-        record.setVendUserName(shipRecord.getVendUserName());
-        record.setVendUserTel(shipRecord.getVendUserTel());
-        try {
-            AccountUtils.synchronizeRecord(record);
-            vendor.setSynchStatus(Constant.YES);
-            vendorDao.save(vendor);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
     /**
      * 保存
      *
@@ -825,6 +774,60 @@ public class TenderServiceImpl implements TenderService {
         });
     }
 
+    /**
+     * 添加供应商资料
+     *
+     * @param saleTender
+     */
+    private Vendor addVendor(SaleTender saleTender) {
+        Enterprise enterprise = enterpriseDao.findOne(saleTender.getVendUU());
+        if (enterprise != null) {
+            Vendor vendor = new Vendor();
+            vendor.setMyEnUU(saleTender.getEnUU());
+            vendor.setMyEnterprise(saleTender.getEnterprise());
+            vendor.setMyUserUU(saleTender.getRecorderuu());
+            vendor.setVendorEnterprise(enterprise);
+            vendor.setVendEnUU(enterprise.getUu());
+            if (saleTender.getUseruu() != null) {
+                List<User> users = userDao.findByEnUUAndUserUU(enterprise.getUu(), saleTender.getUseruu());
+                if (users.size() > 0) {
+                    vendor.setVendUserUU(saleTender.getUseruu());
+                }
+            }
+            return vendorDao.save(vendor);
+        }
+        return null;
+    }
+
+    /**
+     * 添加合作伙伴关系
+     * @param vendor
+     */
+    private void addPartnerShipRecord(Vendor vendor) {
+        PartnershipRecord shipRecord = new PartnershipRecord("uas", vendor);
+        com.uas.account.entity.PartnershipRecord record = new com.uas.account.entity.PartnershipRecord();
+        record.setAppId(shipRecord.getAppId());
+        record.setCustName(shipRecord.getCustName());
+        record.setCustUID(shipRecord.getCustUID());
+        record.setCustUserCode(shipRecord.getCustUserCode());
+        record.setCustUserEmail(shipRecord.getCustUserEmail());
+        record.setCustUserName(shipRecord.getCustUserName());
+        record.setCustUserTel(shipRecord.getCustUserTel());
+        record.setVendName(shipRecord.getVendName());
+        record.setVendUID(shipRecord.getVendUID());
+        record.setVendUserCode(shipRecord.getVendUserCode());
+        record.setVendUserEmail(shipRecord.getVendUserEmail());
+        record.setVendUserName(shipRecord.getVendUserName());
+        record.setVendUserTel(shipRecord.getVendUserTel());
+        try {
+            AccountUtils.synchronizeRecord(record);
+            vendor.setSynchStatus(Constant.YES);
+            vendorDao.save(vendor);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
     /**
      * 删除产品明细
      *

+ 21 - 100
src/main/java/com/uas/platform/b2b/search/SearchServiceImpl.java

@@ -16,6 +16,7 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 
+import com.uas.platform.b2b.model.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.jpa.domain.Specification;
@@ -75,50 +76,6 @@ import com.uas.platform.b2b.erp.model.B2BCustomer;
 import com.uas.platform.b2b.erp.model.B2BVendor;
 import com.uas.platform.b2b.erp.model.SaleTenderErp;
 import com.uas.platform.b2b.erp.model.SaleTenderItemErp;
-import com.uas.platform.b2b.model.Brand;
-import com.uas.platform.b2b.model.Cart;
-import com.uas.platform.b2b.model.Component;
-import com.uas.platform.b2b.model.DeputyOrder;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.InvitationRecord;
-import com.uas.platform.b2b.model.Kind;
-import com.uas.platform.b2b.model.MakeAccept;
-import com.uas.platform.b2b.model.MakeOrder;
-import com.uas.platform.b2b.model.MakeOrderChangeItem;
-import com.uas.platform.b2b.model.MakeReturn;
-import com.uas.platform.b2b.model.PagingReleaseDetail;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.PurcInquiry;
-import com.uas.platform.b2b.model.PurcInquiryItemInfo;
-import com.uas.platform.b2b.model.PurchaseAccept;
-import com.uas.platform.b2b.model.PurchaseApBill;
-import com.uas.platform.b2b.model.PurchaseApBillOut;
-import com.uas.platform.b2b.model.PurchaseApCheck;
-import com.uas.platform.b2b.model.PurchaseBadIn;
-import com.uas.platform.b2b.model.PurchaseBadOut;
-import com.uas.platform.b2b.model.PurchaseForecastAll;
-import com.uas.platform.b2b.model.PurchaseInquiryItem;
-import com.uas.platform.b2b.model.PurchaseInquiryMould;
-import com.uas.platform.b2b.model.PurchaseMRB;
-import com.uas.platform.b2b.model.PurchaseNotice;
-import com.uas.platform.b2b.model.PurchaseOrderAll;
-import com.uas.platform.b2b.model.PurchaseOrderChange;
-import com.uas.platform.b2b.model.PurchaseOrderDone;
-import com.uas.platform.b2b.model.PurchaseOrderEnd;
-import com.uas.platform.b2b.model.PurchaseOrderReceived;
-import com.uas.platform.b2b.model.PurchaseOrderTodo;
-import com.uas.platform.b2b.model.PurchaseOrderWaiting;
-import com.uas.platform.b2b.model.PurchaseProofingApproval;
-import com.uas.platform.b2b.model.PurchaseProofingItem;
-import com.uas.platform.b2b.model.PurchaseProofingSend;
-import com.uas.platform.b2b.model.PurchaseReturn;
-import com.uas.platform.b2b.model.PurchaseTender;
-import com.uas.platform.b2b.model.PurchaseTenderProd;
-import com.uas.platform.b2b.model.SaleARCheck;
-import com.uas.platform.b2b.model.SaleQuotationAll;
-import com.uas.platform.b2b.model.SaleQuotationDone;
-import com.uas.platform.b2b.model.SaleSendAll;
-import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.persistence.criteria.PredicateFactory;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
@@ -959,36 +916,18 @@ public class SearchServiceImpl implements com.uas.platform.b2b.search.SearchServ
 	 */
 	@Override
 	public Page<B2BVendor> searchVendorForErp(String keyword, PageParams pageParams) {
-		Integer pageNum = pageParams.getPage();
-		pageParams.setPage(1);
 		SPage<Long> idsPage = searchService.searchIds(keyword, Table_name.PURC$VENDORS, pageParams);
 		Page<B2BVendor> vendorPage = new Page<>();
-		if (pageNum <= idsPage.getTotalPage()) { // 在可用页码内,就去获取一次
-			pageParams.setPage(pageNum);
-			idsPage = searchService.searchIds(keyword, Table_name.PURC$VENDORS, pageParams);
-			List<Vendor> content = vendorDao.findAll(idsPage.getContent());
-			sortByProperty(content, Vendor.class, "id", idsPage.getContent());
-			List<B2BVendor> b2bVendors = new ArrayList<>();
-			for (Vendor vendor : content) {
-				B2BVendor b2BVendor = new B2BVendor();
-				b2BVendor.setB2b_ve_id(vendor.getId());
-				if (vendor.getVendorEnterprise() != null) {
-					b2BVendor.setVe_name(vendor.getVendorEnterprise().getEnName());
-					b2BVendor.setVe_add1(vendor.getVendorEnterprise().getEnAddress());
-					b2BVendor.setVe_shortname(vendor.getVendorEnterprise().getEnShortname());
-					b2BVendor.setVe_webserver(vendor.getVendorEnterprise().getEnBussinessCode());
-					b2BVendor.setVe_tel(vendor.getVendorEnterprise().getEnTel());
-				}
-				b2BVendor.setVe_uu(String.valueOf(vendor.getVendEnUU()));
-				if (vendor.getVendorUser() != null) {
-					b2BVendor.setVe_contact(vendor.getVendorUser().getUserName());
-				}
-				b2bVendors.add(b2BVendor);
-			}
-			vendorPage.setContent(b2bVendors);
+		List<Vendor> content = vendorDao.findAll(idsPage.getContent());
+		sortByProperty(content, Vendor.class, "id", idsPage.getContent());
+		List<B2BVendor> b2bVendors = new ArrayList<>();
+		for (Vendor vendor : content) {
+			B2BVendor b2BVendor = new B2BVendor(vendor);
+			b2bVendors.add(b2BVendor);
 		}
+		vendorPage.setContent(b2bVendors);
 		vendorPage.setTotalElements(idsPage.getTotalElement());
-		vendorPage.setNumber(pageNum);
+		vendorPage.setNumber(idsPage.getPage());
 		vendorPage.setSize(idsPage.getSize());
 		return vendorPage;
 	}
@@ -999,38 +938,20 @@ public class SearchServiceImpl implements com.uas.platform.b2b.search.SearchServ
 	 */
 	@Override
 	public Page<B2BCustomer> searchCustomerForErp(String keyword, PageParams pageParams) {
-		Integer pageNum = pageParams.getPage();
-		pageParams.setPage(1);
 		SPage<Long> idsPage = searchService.searchIds(keyword, Table_name.PURC$VENDORS_CUST, pageParams);
-		Page<B2BCustomer> vendorPage = new Page<>();
-		if (pageNum <= idsPage.getTotalPage()) { // 在可用页码内,就去获取一次
-			pageParams.setPage(pageNum);
-			idsPage = searchService.searchIds(keyword, Table_name.PURC$VENDORS_CUST, pageParams);
-			List<Vendor> content = vendorDao.findAll(idsPage.getContent());
-			sortByProperty(content, Vendor.class, "id", idsPage.getContent());
-			List<B2BCustomer> b2BCustomers = new ArrayList<>();
-			for (Vendor vendor : content) {
-				B2BCustomer b2BCustomer = new B2BCustomer();
-				b2BCustomer.setB2b_vendor_id(vendor.getId());
-				if (vendor.getMyEnterprise() != null) {
-					b2BCustomer.setCu_name(vendor.getMyEnterprise().getEnName());
-					b2BCustomer.setCu_add1(vendor.getMyEnterprise().getEnAddress());
-					b2BCustomer.setCu_shortname(vendor.getMyEnterprise().getEnShortname());
-					b2BCustomer.setCu_businesscode(vendor.getMyEnterprise().getEnBussinessCode());
-					b2BCustomer.setCu_tel(vendor.getMyEnterprise().getEnTel());
-				}
-				b2BCustomer.setCu_uu(String.valueOf(vendor.getMyEnUU()));
-				if (vendor.getVendorUser() != null) {
-					b2BCustomer.setCu_contact(vendor.getMyUser().getUserName());
-				}
-				b2BCustomers.add(b2BCustomer);
-			}
-			vendorPage.setContent(b2BCustomers);
+		Page<B2BCustomer> customerPage = new Page<>();
+		List<Vendor> content = vendorDao.findAll(idsPage.getContent());
+		sortByProperty(content, Vendor.class, "id", idsPage.getContent());
+		List<B2BCustomer> b2BCustomers = new ArrayList<>();
+		for (Vendor vendor : content) {
+			B2BCustomer b2BCustomer = new B2BCustomer(vendor);
+			b2BCustomers.add(b2BCustomer);
 		}
-		vendorPage.setTotalElements(idsPage.getTotalElement());
-		vendorPage.setNumber(pageNum);
-		vendorPage.setSize(idsPage.getSize());
-		return vendorPage;
+		customerPage.setContent(b2BCustomers);
+		customerPage.setTotalElements(idsPage.getTotalElement());
+		customerPage.setNumber(idsPage.getPage());
+		customerPage.setSize(idsPage.getSize());
+		return customerPage;
 	}
 
 	/**

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

@@ -93,7 +93,7 @@ public interface AddPartnerService {
 	 * @return
 	 * @throws Exception
 	 */
-    Page<BasePartnersInfo> findByBusCodeAndKeyWordForERP(String keyword, Integer statusCode, int pageSize, int pageNumber, List<Long> vendUUs, List<Long> custUUs) throws Exception;
+    Page<BasePartnersInfo> findByBusCodeAndKeyWordForERP(String keyword, Integer statusCode, int pageSize, int pageNumber) throws Exception;
 
     ModelMap addServicer(String businessCode);
 }

+ 30 - 15
src/main/java/com/uas/platform/b2b/service/impl/AddPartnerServiceImpl.java

@@ -290,22 +290,19 @@ public class AddPartnerServiceImpl implements AddPartnerService {
 	 */
 	@Override
 	public Page<BasePartnersInfo> findByBusCodeAndKeyWordForERP(String keyword, Integer statusCode, int pageSize,
-			int pageNumber, List<Long> vendUUs, List<Long> custUUs) throws Exception {
+			int pageNumber) throws Exception {
 	    // 供应商或客户存在一个即过滤
-		List<Long> partnerUUs = new ArrayList<>();
-		partnerUUs.addAll(vendUUs);
-		partnerUUs.addAll(custUUs);
 		String businessCode = SystemSession.getUser().getEnterprise().getEnBussinessCode();
-		Page<PartnershipRecord> pageRecords = AccountUtils.getRequestFilterByPartnerUUs(businessCode, statusCode, keyword, partnerUUs, pageNumber,
+		Page<PartnershipRecord> pageRecords = AccountUtils.getAllRequest(businessCode, statusCode, keyword, pageNumber,
 				pageSize);
-		Page<BasePartnersInfo> partnerRecords = new Page<BasePartnersInfo>();
+		Page<BasePartnersInfo> partnerRecords = new Page<>();
 		List<PartnershipRecord> records = pageRecords != null ? pageRecords.getContent() : null;
-		List<BasePartnersInfo> baseInfos = new ArrayList<BasePartnersInfo>();
+		List<BasePartnersInfo> baseInfos = new ArrayList<>();
 		if (!CollectionUtils.isEmpty(records)) {
 			for (PartnershipRecord record : records) {
 				BasePartnersInfo partner = new BasePartnersInfo();
-				List<Vendor> vendor = new ArrayList<Vendor>();
-				List<Vendor> customer = new ArrayList<Vendor>();
+				List<Vendor> vendor;
+				List<Vendor> customer;
 				// cust为当前企业,发出申请
 				if (record.getCustUID().equals(businessCode)) {
 					partner.setRequestDate(record.getRequestDate());
@@ -331,11 +328,15 @@ public class AddPartnerServiceImpl implements AddPartnerService {
 					// 供应商
 					vendor = vendorDao.findByMyEnBusinessCodeAndVendBusinessCode(businessCode, record.getVendUID());
 					if (!CollectionUtils.isEmpty(vendor)) {
-						partner.setVendor(Constant.YES);
+						// 开关为null时,表示未添加,为0表示关闭,为1表示开启
+						partner.setVendor((short) (vendor.get(0).getVendswitch() == null ? 0 : 1));
 						partner.setVendorId(vendor.get(0).getId());
 						partner.setVendswitch(vendor.get(0).getVendswitch());
+						partner.setServicer((short) (vendor.get(0).getServicerswitch() == null ? 0 : 1));
+						partner.setServicerswitch(vendor.get(0).getServicerswitch());
 					} else {
 						partner.setVendor(Constant.NO);
+						partner.setServicer(Constant.NO);
 					}
 					// 客户
 					customer = vendorDao.findByMyEnBusinessCodeAndVendBusinessCode(record.getVendUID(), businessCode);
@@ -346,6 +347,12 @@ public class AddPartnerServiceImpl implements AddPartnerService {
 					} else {
 						partner.setCustomer(Constant.NO);
 					}
+					Enterprise enterprise = enterpriseDao.findEnterpriseByEnBussinessCode(record.getVendUID());
+					partner.setEnterprise(enterprise);
+					if (null != enterprise && null != enterprise.getEnAdminuu()) {
+						UserBaseInfo admin = userBaseInfoDao.findOne(enterprise.getEnAdminuu());
+						partner.setContact(admin);
+					}
 					baseInfos.add(partner);
 				}
 				// vend为当前企业,收到申请
@@ -374,9 +381,11 @@ public class AddPartnerServiceImpl implements AddPartnerService {
 					// 供应商
 					vendor = vendorDao.findByMyEnBusinessCodeAndVendBusinessCode(businessCode, record.getCustUID());
 					if (!CollectionUtils.isEmpty(vendor)) {
-						partner.setVendor(Constant.YES);
+						partner.setVendor((short) (vendor.get(0).getVendswitch() == null ? 0 : 1));
 						partner.setVendorId(vendor.get(0).getId());
 						partner.setVendswitch(vendor.get(0).getVendswitch());
+						partner.setServicerswitch(vendor.get(0).getServicerswitch());
+						partner.setServicer((short) (vendor.get(0).getServicerswitch() == null ? 0 : 1));
 					} else {
 						partner.setVendor(Constant.NO);
 					}
@@ -389,6 +398,12 @@ public class AddPartnerServiceImpl implements AddPartnerService {
 					} else {
 						partner.setCustomer(Constant.NO);
 					}
+					Enterprise enterprise = enterpriseDao.findEnterpriseByEnBussinessCode(record.getCustUID());
+					partner.setEnterprise(enterprise);
+					if (null != enterprise && null != enterprise.getEnAdminuu()) {
+						UserBaseInfo admin = userBaseInfoDao.findOne(enterprise.getEnAdminuu());
+						partner.setContact(admin);
+					}
 					baseInfos.add(partner);
 				}
 			}
@@ -413,14 +428,14 @@ public class AddPartnerServiceImpl implements AddPartnerService {
 		String businessCode = SystemSession.getUser().getEnterprise().getEnBussinessCode();
 		Page<PartnershipRecord> pageRecords = AccountUtils.getAllRequest(businessCode, statusCode, keyword, pageNumber,
 				pageSize);
-		SPage<BasePartnersInfo> partnerRecords = new SPage<BasePartnersInfo>();
+		SPage<BasePartnersInfo> partnerRecords = new SPage<>();
 		List<PartnershipRecord> records = pageRecords != null ? pageRecords.getContent() : null;
-		List<BasePartnersInfo> baseInfos = new ArrayList<BasePartnersInfo>();
+		List<BasePartnersInfo> baseInfos = new ArrayList<>();
 		if (!CollectionUtils.isEmpty(records)) {
 			for (PartnershipRecord record : records) {
 				BasePartnersInfo partner = new BasePartnersInfo();
-				List<Vendor> vendor = new ArrayList<Vendor>();
-				List<Vendor> customer = new ArrayList<Vendor>();
+				List<Vendor> vendor;
+				List<Vendor> customer;
 				// cust为当前企业,发出申请
 				if (record.getCustUID().equals(businessCode)) {
 					partner.setRequestDate(record.getRequestDate());

+ 61 - 16
src/main/webapp/resources/js/index/app.js

@@ -3609,16 +3609,6 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             }
         };
 
-        $scope.isValid = function (item, withSteps) {
-            var bool = item.leadtime && item.replies && item.replies[0].price > 0;
-            if (!withSteps || !bool)
-                return bool;
-            angular.forEach(item.replies, function (r, i) {
-                bool = (i > 0 ? r.lapQty : 1) && r.price;
-            });
-            return bool;
-        };
-
         // 获取token信息
         $scope.getToken = function() {
     		token.info({userType: 'salenotice'}, {}, function(data) {
@@ -3677,10 +3667,29 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 });
             }
         };
-        $scope.verifylapQty = function (value, type) {
+
+        $scope.isValid = function (item, withSteps) {
+            var bool = item.leadtime && item.replies && item.replies[0].price > 0;
+            if (!withSteps || !bool)
+                return bool;
+            angular.forEach(item.replies, function (r, i) {
+                $scope.verifylapQty(r.lapQty, i, item);
+                bool = (i > 0 ? r.lapQty : 1) && r.price && $scope.replylapQtys[i];
+            });
+            return bool;
+        };
+
+        $scope.verifylapQty = function (value, index, inquiryItem) {
+            value = parseInt(value);
             var regex = /^\d+(.\d{1,5})?$/;
-            $scope.replylapQtys[type] = regex.test(value);
-        }
+            var valid = true;
+            angular.forEach(inquiryItem.replies, function(reply, $index) {
+                if (reply.lapQty != null && (($index < index && reply.lapQty >= value) || ($index > index && reply.lapQty <= value))) {
+                    valid = false;
+                }
+            });
+            $scope.replylapQtys[index] = regex.test(value) && valid;
+        };
 
         $scope.minOrderQtyVerify = $scope.minPackQtyVerify = $scope.leadtimeVerify = true;
         $scope.verify = function (value, type) {
@@ -3736,6 +3745,10 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             return $filter('date')(item.inquiry.date, 'yyyy-MM-dd');
         };
 
+        $scope.replyPrices = [];
+        $scope.replylapQtys = [];
+        $scope.replyPrices.push(true);
+        $scope.replylapQtys.push(true);
         $scope.addStep = function (inquiryItem) {
             if (inquiryItem.replies.length >= 10) {
                 toaster.pop('warning', '提示', '最多支持10个分段!');
@@ -3761,12 +3774,44 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             }
         };
 
+        $scope.minOrderQtyVerify = $scope.minPackQtyVerify = $scope.leadtimeVerify = true;
+        $scope.verify = function (value, type) {
+            var regex = /^\d+(.\d{1,5})?$/;//
+            switch (type) {
+                case 'minOrderQty':
+                    $scope.minOrderQtyVerify = regex.test(value);
+                    break;
+                case 'minPackQty':
+                    $scope.minPackQtyVerify = regex.test(value);
+                    break;
+                case 'leadtime':
+                    $scope.leadtimeVerify = regex.test(value);
+                    break;
+                default:
+                    $scope.replyPrices[type] = regex.test(value);
+                    break;
+            }
+        }
+
+        $scope.verifylapQty = function (value, index, inquiryItem) {
+            value = parseInt(value);
+            var regex = /^\d+(.\d{1,5})?$/;
+            var valid = true;
+            angular.forEach(inquiryItem.replies, function(reply, $index) {
+                if (reply.lapQty != null && (($index < index && reply.lapQty >= value) || ($index > index && reply.lapQty <= value))) {
+                    valid = false;
+                }
+            });
+            $scope.replylapQtys[index] = regex.test(value) && valid;
+        };
+
         $scope.isValid = function (item, withSteps) {
             var bool = item.leadtime && item.replies && item.replies[0].price > 0;
             if (!withSteps || !bool)
                 return bool;
             angular.forEach(item.replies, function (r, i) {
-                bool = (i > 0 ? r.lapQty : 1) && r.price;
+                $scope.verifylapQty(r.lapQty, i, item);
+                bool = (i > 0 ? r.lapQty : 1) && r.price && $scope.replylapQtys[i];
             });
             return bool;
         };
@@ -17236,9 +17281,9 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             // var minDate = angular.copy($scope.tender.endDate);
             // minDate = minDate.setDate(minDate.getDate() + 1);
             if ($scope.tender.endDate instanceof Date) {
-                var minDate = new Date($scope.tender.endDate.getTime() + 24 * 60 * 60 * 1000 + 1); // 不能选相同一天
+                var minDate = new Date($scope.tender.endDate.getTime() + 2 * 24 * 60 * 60 * 1000 + 1); // 公布结果日期与截止报价日期至少隔一天
             }
-            return $scope.tender.endDate ? $filter('date')(minDate, 'yyyy-MM-dd') : $filter('date')(new Date(), 'yyyy-MM-dd');
+            return $scope.tender.endDate ? $filter('date')(minDate, 'yyyy-MM-dd') : $filter('date')(new Date(new Date().getTime() + 24 * 60 * 60 * 1000 + 1), 'yyyy-MM-dd');
         };
 
         $scope.getMaxDate = function () {

+ 1 - 1
src/main/webapp/resources/tpl/index/baseInfo/customersInfo.html

@@ -125,7 +125,7 @@
 				<div class="col-xs-9">
 					<div class="search">
 						<div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick" on-toggle="searchAdvance=open">
-							<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch()" placeholder="输入企业名称、联系人" />
+							<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch()" placeholder="企业名称/营业执照/法人/联系人/企业UU" />
 							<a class="btn input-group-addon" ng-click="onSearch()">搜索</a>
 						</div>
 					</div>

+ 1 - 1
src/main/webapp/resources/tpl/index/baseInfo/myRequest.html

@@ -346,7 +346,7 @@
 				<div class="col-xs-9">
 					<div class="search">
 						<div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick" on-toggle="searchAdvance=open">
-							<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch()" placeholder="输入企业名称、营业执照号、申请人或审核人" />
+							<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch()" placeholder="企业名称/营业执照/法人/联系人/企业UU" />
 							<a class="btn input-group-addon" ng-click="onSearch()">搜索</a>
 						</div>
 					</div>

+ 1 - 1
src/main/webapp/resources/tpl/index/baseInfo/newPartner.html

@@ -344,7 +344,7 @@
                 <div class="col-xs-9">
                     <div class="search">
                         <div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick" on-toggle="searchAdvance=open">
-                            <input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch()" placeholder="输入企业名称、营业执照号、申请人或审核人" />
+                            <input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch()" placeholder="企业名称/营业执照/法人/联系人/企业UU" />
                             <a class="btn input-group-addon" ng-click="onSearch()">搜索</a>
                         </div>
                     </div>

+ 1 - 1
src/main/webapp/resources/tpl/index/baseInfo/searchresult.html

@@ -314,7 +314,7 @@
 				<div class="col-xs-9">
 					<div class="search">
 						<div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick" on-toggle="searchAdvance=open">
-							<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch(keyword)" placeholder="输入企业名称、简称、营业执照号" />
+							<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch(keyword)" placeholder="企业名称/营业执照/法人/联系人/企业UU" />
 							<a class="btn input-group-addon" ng-click="onSearch(keyword)">搜索</a>
 						</div>
 					</div>

+ 1 - 1
src/main/webapp/resources/tpl/index/baseInfo/servicerInfo.html

@@ -159,7 +159,7 @@
 				<div class="col-xs-9">
 					<div class="search">
 						<div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick" on-toggle="searchAdvance=open">
-							<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch(keyword)" placeholder="输入企业名称、联系人" />
+							<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch(keyword)" placeholder="企业名称/营业执照/法人/联系人/企业UU" />
 							<a class="btn input-group-addon" ng-click="onSearch(keyword)">搜索</a>
 						</div>
 					</div>

+ 1 - 1
src/main/webapp/resources/tpl/index/baseInfo/vendorsInfo.html

@@ -159,7 +159,7 @@
 				<div class="col-xs-9">
 					<div class="search">
 						<div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick" on-toggle="searchAdvance=open">
-							<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch(keyword)" placeholder="输入企业名称、联系人" />
+							<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch(keyword)" placeholder="企业名称/营业执照/法人/联系人/企业UU" />
 							<a class="btn input-group-addon" ng-click="onSearch(keyword)">搜索</a>
 						</div>
 					</div>

+ 6 - 28
src/main/webapp/resources/tpl/index/sale/inquiry.html

@@ -170,37 +170,14 @@
 						<button type="button" class="btn btn-default btn-line"
 								ng-class="{'btn-info':active=='refused'}" ng-click="setActive('refused')">未采纳</button>
 					</div>
-					<!--<div class="btn-group btn-group-sm">
-						<button type="button" class="btn btn-default btn-line"
-								ng-class="{'btn-info':active=='end'}" ng-click="setActive('end')">已过期</button>
-					</div>
-					<div class="btn-group btn-group-sm">
-						<button type="button" class="btn btn-default btn-line"
-								ng-class="{'btn-info':active=='invalid'}" ng-click="setActive('invalid')">已作废</button>
-					</div>-->
 					<div class="btn-group btn-group-sm">
 						<button type="button" class="btn btn-default btn-line"
 								ng-class="{'btn-info':active=='invalid'}" ng-click="setActive('invalid')">已失效</button>
 					</div>
 				</div>
 			</div>
-			<!--<div class="col-xs-5">
-				<div class="search">
-					<div class="form-group form-group-sm has-feedback">
-						<input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch()" placeholder="输入商品、客户名称或单据流水号搜索" /><span
-							class="form-control-feedback text-simple"><i
-							class="fa fa-search"></i></span>
-					</div>
-				</div>
-			</div>
-			<div class="col-xs-1">
-				<div class="text-default f14 total">
-					共 <span ng-bind="tableParams.total()" class="text-num"></span>
-				</div>
-			</div>-->
 		</div>
 	</div>
-	<!--<div class="height10">&nbsp;</div>-->
 	<div class="condition block">
 		<div class="search-bg condition block" style="padding: 10px 15px;">
 			<div class="row">
@@ -414,9 +391,9 @@
 				<div style="margin: 0 auto;" ng-if="inquiryItem.$editing">
 					<div ng-repeat="reply in inquiryItem.replies">
 						<div class="form-group input-group input-group-xs">
-							<input type="text" class="form-control input-xs" ng-change="verifylapQty(reply.lapQty,$index)"
-								   ng-model="reply.lapQty" min="{{reply.lapQty == 0 ? 0 : 1}}"
-								   ng-Readonly="$index == 0"  placeholder="数量" ng-change="qty"/> 
+							<input type="text" class="form-control input-xs" ng-change="verifylapQty(reply.lapQty,$index, inquiryItem)"
+								   ng-model="reply.lapQty" min="{{$index == 0 ? 0 :(inquiryItem.replies[$index - 1].lapQty + 1)}}"
+								   ng-Readonly="$index == 0"  placeholder="数量" />
 								   <span class="input-group-btn" ng-show="$index != 0">
 									<button class="btn btn-default" type="button"
 											ng-click="removeStep(inquiryItem, $index)">
@@ -424,8 +401,9 @@
 									</button>
 								</span>
 						</div>
-						<div class="text-bold text-inverse" style="margin-top:-15px" ng-show="!replylapQtys[$index]">请填数字!</div>
+						<!--<div class="text-bold text-inverse" style="margin-top:-15px" ng-show="!replylapQtys[$index]">请填数字,且分段数应递增!</div>-->
 					</div>
+					<div class="text-muted" style="margin-top:-15px" >*分段数量递增!</div>
 					<a ng-click="addStep(inquiryItem)" class="btn btn-default btn-xs"
 					   ng-show="!inquiryItem.custLap">添加分段</a>
 				</div>
@@ -550,7 +528,7 @@
 					<span class="text-trans warning">已报价</span>
 					<div ng-if="inquiryItem.inquiry.overdue == 0 && inquiryItem.inquiry.check != 1" style="padding-top: 50px;">
 						<div ng-show="!inquiryItem.$editing">
-							<a ng-click="inquiryItem.$editing=!inquiryItem.$editing;  getToken()">修改报价</a>
+							<a ng-click="inquiryItem.$editing=!inquiryItem.$editing;  getToken();">修改报价</a>
 						</div>
 						<div ng-show="inquiryItem.$editing">
 							<div>

+ 31 - 33
src/main/webapp/resources/tpl/index/sale/inquiry_detail.html

@@ -143,12 +143,11 @@
 								<input type="text" class="form-control input-xs"
 									ng-model="inquiryItem.vendorprodcode" placeholder="供应商物料编号">
 							</div>
-							<div class="form-group" ng-if="inquiryItem.$editing"
-								style="width: 220px;">
-								<input type="text" class="form-control input-xs" ng-pattern="/^\+?[1-9]\d*$/"
-									ng-model="inquiryItem.leadtime" placeholder="交货周期(确切天数)"
-									style="display: inline-block; width: 180px;"> <span
-									ng-if="!inquiryItem.leadtime" class="text-inverse" style="width: 30px;"> 必填*</span>
+							<div class="form-group" ng-if="inquiryItem.$editing" style="width: 220px;">
+								<input type="text" class="form-control input-xs" ng-change="verify(inquiryItem.leadtime,'leadtime')" ng-pattern="/^\+?[1-9]\d*$/"
+									   ng-model="inquiryItem.leadtime" placeholder="交货周期(确切天数)" style="display: inline-block;width: 180px;">
+								<span ng-if="!inquiryItem.leadtime" class="text-inverse"> 必填*</span>
+								<div style="margin-left: 50px;" class="text-bold text-inverse" ng-show="!leadtimeVerify">请填数字!</div>
 							</div>
 							<div class="input-group form-group" ng-if="inquiryItem.$editing && !inquiryItem.attaches.length" style="width: 300px;">
 								<div class="input-group-addon">上传附件:</div>
@@ -168,43 +167,42 @@
 							<div style="margin: 0 auto;" ng-if="inquiryItem.$editing">
 								<div ng-repeat="reply in inquiryItem.replies">
 									<div class="form-group input-group input-group-xs">
-										<input type="text" class="form-control input-xs"
-											ng-model="reply.lapQty" min="{{reply.lapQty == 0 ? 0 : 1}}"
-											ng-readonly="inquiryItem.custLap == 1 || reply.lapQty == 0 ? true : false"
-											placeholder="数量" /> <span class="input-group-btn"
-											ng-show="!inquiryItem.custLap && (reply.lapQty == null || reply.lapQty > 0)">
-											<button class="btn btn-default" type="button"
-												ng-click="removeStep(inquiryItem, $index)">
-												<i class="fa fa-trash-o"></i>
-											</button>
-										</span>
+										<input type="text" class="form-control input-xs" ng-change="verifylapQty(reply.lapQty,$index, inquiryItem)"
+											   ng-model="reply.lapQty" min="{{$index == 0 ? 0 :(inquiryItem.replies[$index - 1].lapQty + 1)}}"
+											   ng-Readonly="$index == 0"  placeholder="数量" />
+										<span class="input-group-btn" ng-show="$index != 0">
+									<button class="btn btn-default" type="button"
+											ng-click="removeStep(inquiryItem, $index)">
+										<i class="fa fa-trash-o"></i>
+									</button>
+								</span>
 									</div>
+									<!--<div class="text-bold text-inverse" style="margin-top:-15px" ng-show="!replylapQtys[$index]">分段数递增!</div>-->
 								</div>
-								<a ng-click="addStep(inquiryItem)"
-									class="btn btn-default btn-xs" ng-show="!inquiryItem.custLap">添加分段</a>
+								<div class="text-muted" style="margin-top:-15px" >*分段数量递增!</div>
+								<a ng-click="addStep(inquiryItem)" class="btn btn-default btn-xs"
+								   ng-show="!inquiryItem.custLap">添加分段</a>
 							</div>
 						</td>
-						<td class="text-center" width="100">
+						<td class="text-center br-l" width="100">
 							<div ng-show="!inquiryItem.$editing">
 								<div ng-repeat="reply in inquiryItem.replies">
 									<span ng-bind="reply.price | number:6"></span> <span
 										ng-show="reply.price == null" class="text-muted">-</span>
 								</div>
 								<div class="dropdown">
-									<a href="javascript:void(0);"
-										class="dropdown-toggle text-default"
-										ng-mouseover="getHistory(inquiryItem)">历史报价<i
-										class="fa fa-fw fa-angle-down"></i></a>
+									<a href="javascript:void(0);" class="dropdown-toggle text-default"
+									   ng-mouseover="getHistory(inquiryItem)">历史报价<i
+											class="fa fa-fw fa-angle-down"></i></a>
 									<div class="dropdown-menu pane" style="width: 270px;">
 										<div class="pane-body">
 											<ul class="list-unstyled list-menu">
 												<li ng-repeat="historyItem in ::inquiryItem.history">
 													<div ng-class="{'text-inverse': $index==0}">
 														<div class="row row-sm"
-															ng-repeat="historyReply in historyItem.replies">
+															 ng-repeat="historyReply in historyItem.replies">
 															<div class="col-xs-5">≥{{historyReply.lapQty}}</div>
-															<div class="col-xs-5">价格{{historyReply.price |
-																number:6}}</div>
+															<div class="col-xs-5">价格{{historyReply.price | number:6}}</div>
 														</div>
 													</div>
 													<div class="text-muted">{{historyItem.inquiry.date |
@@ -212,9 +210,8 @@
 													</div>
 												</li>
 											</ul>
-											<div
-												ng-show="!inquiryItem.history || inquiryItem.history.length == 0"
-												class="text-center text-muted">暂无历史报价</div>
+											<div ng-show="!inquiryItem.history || inquiryItem.history.length == 0"
+												 class="text-center text-muted">暂无历史报价</div>
 										</div>
 									</div>
 								</div>
@@ -222,8 +219,9 @@
 							<div style="margin: 0 auto;" ng-if="inquiryItem.$editing">
 								<div ng-repeat="reply in inquiryItem.replies">
 									<div class="form-group">
-										<input type="text" class="form-control input-xs"
-											ng-model="reply.price" placeholder="价格" />
+										<input type="text" class="form-control input-xs " ng-class="{'input-error': !replyPrices[$index]}" ng-model="reply.price"
+											   ng-change="verify(reply.price,$index)" placeholder="单价(必填)"  />
+										<div class="text-bold text-inverse" style="margin-bottom:-15px" ng-show="!replyPrices[$index]">请填数字!</div>
 									</div>
 								</div>
 							</div>
@@ -237,7 +235,7 @@
 									ng-show="inquiryItem.minOrderQty == null" class="text-muted">-</span>
 							</div>
 							<div ng-if="inquiryItem.$editing">
-								<input type="text" class="form-control input-xs"
+								<input type="text" class="form-control input-xs" ng-change="verify(inquiryItem.minOrderQty,'minOrderQty')"
 									ng-model="inquiryItem.minOrderQty" placeholder="最小订购">
 							</div>
 						</td>
@@ -247,7 +245,7 @@
 									ng-show="inquiryItem.minPackQty == null" class="text-muted">-</span>
 							</div>
 							<div ng-if="inquiryItem.$editing">
-								<input type="text" class="form-control input-xs"
+								<input type="text" class="form-control input-xs" ng-change="verify(inquiryItem.minPackQty,'minPackQty')"
 									ng-model="inquiryItem.minPackQty" placeholder="最小包装">
 							</div>
 						</td>

+ 137 - 111
src/main/webapp/resources/tpl/index/sale/tenderlist.html

@@ -116,9 +116,11 @@
     .tender-table > tbody.not-done > tr:nth-child(odd) {
         height: 140px;
     }
-    .tender-table > tbody.not-done > tr td div{
+
+    .tender-table > tbody.not-done > tr td div {
         line-height: 25px;
     }
+
     .tender-table tbody.not-done > tr:nth-child(odd):hover {
         border: 2px solid #D32526;
 
@@ -127,13 +129,16 @@
     .tender-table > tbody.is-done:hover {
         border: 2px solid #D32526;
     }
+
     .tender-table > tbody.is-done > tr:first-child {
         background-color: #f5f5f5;
         border-bottom: 1px solid #e8e8e8;
     }
-    .tender-table > tbody.is-done > tr:first-child td{
+
+    .tender-table > tbody.is-done > tr:first-child td {
         padding: 10px 0;
     }
+
     .tender-table > tbody.is-done > tr {
         border-bottom: 1px solid #e8e8e8;
     }
@@ -161,31 +166,40 @@
         text-align: left;
         padding-left: 20px;
     }
-    .list-notnum div{
+
+    .list-notnum div {
         padding-left: 5px;
     }
+
     .list-num {
         text-align: right;
     }
-    .pro-line-sty01 td div{
+
+    .pro-line-sty01 td div {
         padding-left: 10px;
     }
-    .pro-line-sty02{
+
+    .pro-line-sty02 {
         height: 120px;
     }
-    .pro-line-sty02 td div{
+
+    .pro-line-sty02 td div {
         line-height: 25px;
     }
-    .main-content{
+
+    .main-content {
         border: #e8e8e8 1px solid;
     }
-    .div-menu{
+
+    .div-menu {
         border-bottom: 0;
     }
-    #public .menu{
+
+    #public .menu {
         border-bottom: 0 !important;
     }
-    .menu .new-dot{
+
+    .menu .new-dot {
         width: 20px;
         height: 20px;
         line-height: 20px;
@@ -218,11 +232,13 @@
                     </div>
                     <div class="btn-group btn-group-sm">
                         <button type="button" class="btn btn-default btn-line"
-                                ng-class="{'btn-info':active=='end'}" ng-click="setActive('end')">已结标</button>
+                                ng-class="{'btn-info':active=='end'}" ng-click="setActive('end')">已结标
+                        </button>
                     </div>
                     <div class="btn-group btn-group-sm">
                         <button type="button" class="btn btn-default btn-line"
-                                ng-class="{'btn-info':active=='waiting'}" ng-click="setActive('waiting')">待评标</button>
+                                ng-class="{'btn-info':active=='waiting'}" ng-click="setActive('waiting')">待评标
+                        </button>
                     </div>
                     <div class="btn-group btn-group-sm">
                         <button type="button" class="btn btn-default btn-line"
@@ -232,12 +248,14 @@
                     <div class="btn-group btn-group-sm">
                         <button type="button" class="btn btn-default btn-line"
                                 ng-class="{'btn-info':active=='todo'}" ng-click="setActive('todo')">待投标
-                            <b class="new-dot" ng-if="unread.notReply > 0">{{unread.notReply>99?'99+':unread.notReply}}</b>
+                            <b class="new-dot"
+                               ng-if="unread.notReply > 0">{{unread.notReply>99?'99+':unread.notReply}}</b>
                         </button>
                     </div>
                     <div class="btn-group btn-group-sm">
                         <button type="button" class="btn btn-default btn-line"
-                                ng-class="{'btn-info':active=='invalid'}" ng-click="setActive('invalid')">已过期</button>
+                                ng-class="{'btn-info':active=='invalid'}" ng-click="setActive('invalid')">已过期
+                        </button>
                     </div>
                 </div>
             </div>
@@ -250,10 +268,14 @@
                 <div class="search-bg condition block" style="padding: 10px 15px;">
                     <div class="row">
                         <div id="topSearch" style="float: left">
-                            <a ng-click="changeDateZone(1);condition.$open=false" title="最近一个月" ng-class="{'active':condition.dateZone=='1'}">最近一个月</a>
-                            <a ng-click="changeDateZone(3);condition.$open=false" title="最近三个月" ng-class="{'active':condition.dateZone=='3'}">最近三个月</a>
-                            <a ng-click="changeDateZone(6);condition.$open=false" title="最近六个月" ng-class="{'active':condition.dateZone=='6'}">最近六个月</a>
-                            <a ng-click="condition.$open=!condition.$open;changeDateZone(-1)" title="自定义" ng-class="{'active':condition.dateZone=='-1'}" >自定义</a>
+                            <a ng-click="changeDateZone(1);condition.$open=false" title="最近一个月"
+                               ng-class="{'active':condition.dateZone=='1'}">最近一个月</a>
+                            <a ng-click="changeDateZone(3);condition.$open=false" title="最近三个月"
+                               ng-class="{'active':condition.dateZone=='3'}">最近三个月</a>
+                            <a ng-click="changeDateZone(6);condition.$open=false" title="最近六个月"
+                               ng-class="{'active':condition.dateZone=='6'}">最近六个月</a>
+                            <a ng-click="condition.$open=!condition.$open;changeDateZone(-1)" title="自定义"
+                               ng-class="{'active':condition.dateZone=='-1'}">自定义</a>
                         </div>
                         <div class="col-xs-6" style="float: right;">
                             <div class="search">
@@ -281,7 +303,7 @@
                                     <input type="text" ng-model="condition.dateFrom"
                                            class="form-control" placeholder="从"
                                            datepicker-popup="yyyy-MM-dd" is-open="condition.$fromOpened"
-                                           ng-required="true" max-date = "condition.dateTo"
+                                           ng-required="true" max-date="condition.dateTo"
                                            current-text="今天" clear-text="清除" close-text="关闭"
                                            datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
                                            ng-focus="openFilterDatePicker($event, condition, '$fromOpened')">
@@ -296,7 +318,7 @@
                                     <input type="text" ng-model="condition.dateTo"
                                            class="form-control" placeholder="到"
                                            datepicker-popup="yyyy-MM-dd" is-open="condition.$toOpened"
-                                           ng-required="true" min-date = "condition.dateFrom"
+                                           ng-required="true" min-date="condition.dateFrom"
                                            current-text="今天" clear-text="清除" close-text="关闭"
                                            datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
                                            ng-focus="openFilterDatePicker($event, condition, '$toOpened')">
@@ -316,101 +338,102 @@
         <!-- 除已评标的显示 -->
         <table class="tender-table block" ng-table="tableParams">
             <thead ng-show="active != 'end' && active != 'waiting'">
-            <tr class="header">
-                <th width="300">招标信息</th>
-                <th width="80">联系人</th>
-                <th width="100">联系电话</th>
-                <th width="150">投标截止时间</th>
-                <th width="150">公布结果时间</th>
-                <th width="150">状态</th>
-            </tr>
+                <tr class="header">
+                    <th width="300">招标信息</th>
+                    <th width="80">联系人</th>
+                    <th width="100">联系电话</th>
+                    <th width="150">投标截止时间</th>
+                    <th width="150">公布结果时间</th>
+                    <th width="150">状态</th>
+                </tr>
             </thead>
             <tbody ng-if="tableParams.total() == 0">
-            <tr>
-                <td colspan="6">
-                    <div class="row text-muted info-container" style="padding: 50px 10px;">
-                        <div class="col-md-4 text-center">
-                            <br>
-                            <br>
-                            <div><img src="static/img/all/info.png" width="130px" height="90px"></div>
-                            <div class="f16">当前没有对应的招标单!</div>
-                        </div>
-                        <div class="col-md-8 br-l">
-                            <div class="f16">
-                                <p>为什么我没有接收到客户的招标单?</p>
+                <tr>
+                    <td colspan="6">
+                        <div class="row text-muted info-container" style="padding: 50px 10px;">
+                            <div class="col-md-4 text-center">
+                                <br>
+                                <br>
+                                <div><img src="static/img/all/info.png" width="130px" height="90px"></div>
+                                <div class="f16">当前没有对应的招标单!</div>
                             </div>
-                            <div class="f14">
-                                <div class="info">
-                                    <p>1、您的客户还没有发布招标单<br>
-                                        解决:与您的客户沟通确认单据是否已经发布</p>
+                            <div class="col-md-8 br-l">
+                                <div class="f16">
+                                    <p>为什么我没有接收到客户的招标单?</p>
                                 </div>
-                                <div class="info">
-                                    <p>2、客户指定的投标供应商不包括您<br>
-                                        解决:与您的客户沟通确认是否添加了您为指定投标供应商</p>
+                                <div class="f14">
+                                    <div class="info">
+                                        <p>1、您的客户还没有发布招标单<br>
+                                            解决:与您的客户沟通确认单据是否已经发布</p>
+                                    </div>
+                                    <div class="info">
+                                        <p>2、客户指定的投标供应商不包括您<br>
+                                            解决:与您的客户沟通确认是否添加了您为指定投标供应商</p>
+                                    </div>
                                 </div>
+                                <br>
+                                <br>
                             </div>
-                            <br>
-                            <br>
                         </div>
-                    </div>
-                </td>
-            </tr>
+                    </td>
+                </tr>
             </tbody>
             <tbody class="not-done" ng-repeat="tender in $data | orderBy:'-id'" ng-show="active != 'end' && active != 'waiting'">
-            <tr>
-                <td class="list-notnum" width=300">
-                    <div>
-                        <a href="javascript:void(0)" ng-if="!isUnread(tender.id)">
-                            <i class="fa fa-circle-thin"></i>
-                        </a>
-                        <a href="javascript:void(0)" ng-if="isUnread(tender.id)">
-                            <i class="fa fa-circle" style="color: #f40;"></i>
-                        </a>&nbsp;&nbsp;
-                        招标企业:{{tender.enterprise.enName}}
-                    </div>
-                    <div>
-                        招标标题:{{tender.title}}
-                    </div>
-                    <div>
-                        单号:<a class="order-detail" ui-sref="sale.tender({id:tender.id})" target="_self" title="点击查看详情" ng-click="setOrdersRead(tender.id)">{{tender.code}}</a>
-                    </div>
-                    <div>
-                        <strong ng-if="tender.ifOpen == 0">指定招标</strong>
-                        <strong ng-if="tender.ifOpen == 1">公开招标</strong>
-                    </div>
-                </td>
-                <td class="list-notnum" width="80">
-                    <div>{{tender.user}}</div>
-                </td>
-                <td class="list-notnum" width="100">{{tender.userTel}}</td>
-                <td width="150">{{tender.endDate | date:'yyyy-MM-dd'}}</td>
-                <td width="150">{{tender.publishDate | date:'yyyy-MM-dd'}}</td>
-                <td width="150">
-                    <div ng-if="tender.status == '已结标'">
-                        <img src="static/img/tender/yijiebiao.png">
-                    </div>
-                    <div ng-if="(tender.status == '待评标' && tender.overdue == 1 && tender.result == 1) || (tender.status == '待投标' && tender.overdue == 1) || tender.status == '流标'">
-                        <!-- 没人报、报了到期没评、评了没有采纳 -->
-                        <img src="static/img/tender/liubiao.png">
-                    </div>
-                    <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result != 1">
-                        <img src="static/img/tender/daipingbiao.png">
-                    </div>
-                    <div ng-if="tender.overdue != 1 && tender.vendorHasBid">
-                        <img src="static/img/tender/yitoubiao.png">
-                    </div>
-                    <div ng-if="tender.overdue != 1 && !tender.vendorHasBid">
-                        <img src="static/img/tender/daitoubiao.png">
-                    </div>
-                </td>
-            </tr>
-            <tr>
-                <td colspan="6">
-                    <div style="height: 16px; background-color: #f5f5f5;">
-                        <!-- 间隙 -->
-                    </div>
-                </td>
-            </tr>
+                <tr>
+                    <td class="list-notnum" width=300">
+                        <div>
+                            <a href="javascript:void(0)" ng-if="!isUnread(tender.id)">
+                                <i class="fa fa-circle-thin"></i>
+                            </a>
+                            <a href="javascript:void(0)" ng-if="isUnread(tender.id)">
+                                <i class="fa fa-circle" style="color: #f40;"></i>
+                            </a>&nbsp;&nbsp;
+                            招标企业:{{tender.enterprise.enName}}
+                        </div>
+                        <div>
+                            招标标题:{{tender.title}}
+                        </div>
+                        <div>
+                            单号:<a class="order-detail" ui-sref="sale.tender({id:tender.id})" target="_self" title="点击查看详情"
+                                  ng-click="setOrdersRead(tender.id)">{{tender.code}}</a>
+                        </div>
+                        <div>
+                            <strong ng-if="tender.ifOpen == 0">指定招标</strong>
+                            <strong ng-if="tender.ifOpen == 1">公开招标</strong>
+                        </div>
+                    </td>
+                    <td class="list-notnum" width="80">
+                        <div>{{tender.user}}</div>
+                    </td>
+                    <td class="list-notnum" width="100">{{tender.userTel}}</td>
+                    <td width="150">{{tender.endDate | date:'yyyy-MM-dd'}}</td>
+                    <td width="150">{{tender.publishDate | date:'yyyy-MM-dd'}}</td>
+                    <td width="150">
+                        <div ng-if="tender.status == '已结标'">
+                            <img src="static/img/tender/yijiebiao.png">
+                        </div>
+                        <div ng-if="(tender.status == '待评标' && tender.overdue == 1 && tender.result == 1) || (tender.status == '待投标' && tender.overdue == 1) || tender.status == '流标'">
+                            <!-- 没人报、报了到期没评、评了没有采纳 -->
+                            <img src="static/img/tender/liubiao.png">
+                        </div>
+                        <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result != 1">
+                            <img src="static/img/tender/daipingbiao.png">
+                        </div>
+                        <div ng-if="tender.overdue != 1 && tender.vendorHasBid">
+                            <img src="static/img/tender/yitoubiao.png">
+                        </div>
+                        <div ng-if="tender.overdue != 1 && !tender.vendorHasBid">
+                            <img src="static/img/tender/daitoubiao.png">
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="6">
+                        <div style="height: 16px; background-color: #f5f5f5;">
+                            <!-- 间隙 -->
+                        </div>
+                    </td>
+                </tr>
             </tbody>
             <!-- 已评标和已投标显示 -->
             <thead ng-show="active == 'end' || active == 'waiting'">
@@ -422,7 +445,8 @@
                 <th width="150">状态</th>
             </tr>
             </thead>
-            <tbody class="is-done" ng-repeat="tender in $data  | orderBy:'-id'" ng-show="active == 'end' || active == 'waiting'">
+            <tbody class="is-done" ng-repeat="tender in $data  | orderBy:'-id'"
+                   ng-show="active == 'end' || active == 'waiting'">
             <tr class="pro-line-sty01">
                 <td class="list-notnum" width="350">
                     <div>招标标题:{{tender.title}}</div>
@@ -441,7 +465,9 @@
                     <div>联系人:{{tender.user}}&nbsp;&nbsp{{tender.userTel}}</div>
                 </td>
             </tr>
-            <tr ng-repeat="tenderProd in tender.purchaseTenderProds | orderBy : '- id'" ng-show="tenderProd.currentItem.price && tenderProd.currentItem.saleTender.auditStatus != 0" class="pro-line-sty02"><!--  ng-show="tenderProd.currentItem.price" -->
+            <tr ng-repeat="tenderProd in tender.purchaseTenderProds | orderBy : '- id'"
+                ng-show="tenderProd.currentItem.price && tenderProd.currentItem.saleTender.auditStatus != 0"
+                class="pro-line-sty02"><!--  ng-show="tenderProd.currentItem.price" -->
                 <td class="list-notnum" width="350">
                     <div>产品名称:{{tenderProd.prodTitle}}</div>
                     <div>产品型号:{{tenderProd.prodCode}}</div>
@@ -451,8 +477,8 @@
                 <td class="list-num" width="150">
                     <div>{{tenderProd.qty}}</div>
                 </td>
-                <td  class="list-notnum" width="150">{{tender.endDate | date:'yyyy-MM-dd'}}</td>
-                <td  class="list-notnum" width="150">{{tender.publishDate | date:'yyyy-MM-dd'}}</td>
+                <td class="list-notnum" width="150">{{tender.endDate | date:'yyyy-MM-dd'}}</td>
+                <td class="list-notnum" width="150">{{tender.publishDate | date:'yyyy-MM-dd'}}</td>
                 <td>
                     <!-- 投标单状态 -->
                     <!-- 已评标 start -->
@@ -469,7 +495,7 @@
                         <img src="static/img/tender/daipingbiao.png">
                     </div>
                     <!--<div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result != 1 && !tenderProd.currentItem.price">-->
-                        <!--<img src="static/img/tender/weitoubiao.png">-->
+                    <!--<img src="static/img/tender/weitoubiao.png">-->
                     <!--</div>-->
                     <div ng-if="tender.status == '待评标' && tender.overdue != 1 && (tenderProd.currentItem.price && tenderProd.currentItem.saleTender.auditStatus != 0)">
                         <img src="static/img/tender/yitoubiao.png">