Browse Source

销售订单批量回复增加时间选择,询价单增加公共询价类别

hejq 8 years ago
parent
commit
eb08f19b48

+ 73 - 7
src/main/java/com/uas/platform/b2b/controller/SaleInquiryController.java

@@ -65,6 +65,11 @@ public class SaleInquiryController {
 
 
 	private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
 	private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
 
 
+	/**
+	 * 询价种类
+	 */
+	private final String INQUIRYKIND = "publicInquiry";
+
 	/**
 	/**
 	 * 作为卖家,收到的采购询价(全部)- 搜索
 	 * 作为卖家,收到的采购询价(全部)- 搜索
 	 * 
 	 * 
@@ -74,7 +79,7 @@ public class SaleInquiryController {
 	@RequestMapping(value = "/info/search", method = RequestMethod.GET)
 	@RequestMapping(value = "/info/search", method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseBody
 	public SPage<PurchaseInquiryItem> getReceivedPurchaseInquiries(PageParams params, String searchFilter) {
 	public SPage<PurchaseInquiryItem> getReceivedPurchaseInquiries(PageParams params, String searchFilter) {
-		logger.log("客户询价单", "查看收到的客户询价单列表(全部)- 搜索");
+		logger.log("客户询价单", "搜索查看收到的客户询价单列表(全部)");
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		String keyword = jsonObject.getString("keyword");
 		String keyword = jsonObject.getString("keyword");
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
@@ -106,7 +111,7 @@ public class SaleInquiryController {
 	@RequestMapping(value = "/info/search", params = RequestState.TODO, method = RequestMethod.GET)
 	@RequestMapping(value = "/info/search", params = RequestState.TODO, method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseBody
 	public SPage<PurchaseInquiryItem> getTodoInquiries(PageParams params, String searchFilter) {
 	public SPage<PurchaseInquiryItem> getTodoInquiries(PageParams params, String searchFilter) {
-		logger.log("客户询价单", "查看收到的客户询价单列表(待报价)- 搜索");
+		logger.log("客户询价单", "搜索查看收到的客户询价单(待报价)");
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		String keyword = jsonObject.getString("keyword");
 		String keyword = jsonObject.getString("keyword");
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
@@ -139,7 +144,7 @@ public class SaleInquiryController {
 	@RequestMapping(value = "/info/search", params = RequestState.END, method = RequestMethod.GET)
 	@RequestMapping(value = "/info/search", params = RequestState.END, method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseBody
 	public SPage<PurchaseInquiryItem> getEndInquiries(PageParams params, String searchFilter) {
 	public SPage<PurchaseInquiryItem> getEndInquiries(PageParams params, String searchFilter) {
-		logger.log("客户询价单", "查看收到的客户询价单列表(已过期)- 搜索");
+		logger.log("客户询价单", "搜索查看收到的客户询价单(已过期)");
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		String keyword = jsonObject.getString("keyword");
 		String keyword = jsonObject.getString("keyword");
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
@@ -176,7 +181,7 @@ public class SaleInquiryController {
 	@RequestMapping(value = "/info/search", params = RequestState.DONE, method = RequestMethod.GET)
 	@RequestMapping(value = "/info/search", params = RequestState.DONE, method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseBody
 	public SPage<PurchaseInquiryItem> getDoneInquiries(PageParams params, String searchFilter) {
 	public SPage<PurchaseInquiryItem> getDoneInquiries(PageParams params, String searchFilter) {
-		logger.log("客户询价单", "查看收到的客户询价单列表(已报价)- 搜索");
+		logger.log("客户询价单", "搜索查看收到的客户询价单(已报价)");
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		String keyword = jsonObject.getString("keyword");
 		String keyword = jsonObject.getString("keyword");
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
@@ -211,7 +216,7 @@ public class SaleInquiryController {
 	@RequestMapping(value = "/info/search", params = RequestState.INVALID, method = RequestMethod.GET)
 	@RequestMapping(value = "/info/search", params = RequestState.INVALID, method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseBody
 	public SPage<PurchaseInquiryItem> getInvalidInquiries(PageParams params, String searchFilter) {
 	public SPage<PurchaseInquiryItem> getInvalidInquiries(PageParams params, String searchFilter) {
-		logger.log("客户询价单", "查看收到的客户询价单列表(已失效)- 搜索");
+		logger.log("客户询价单", "搜索查看收到的客户询价单(已失效)");
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		String keyword = jsonObject.getString("keyword");
 		String keyword = jsonObject.getString("keyword");
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
@@ -242,7 +247,7 @@ public class SaleInquiryController {
 	@RequestMapping(value = "/info/search", params = RequestState.AGREED, method = RequestMethod.GET)
 	@RequestMapping(value = "/info/search", params = RequestState.AGREED, method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseBody
 	public SPage<PurchaseInquiryItem> getAgreedInquiries(PageParams params, String searchFilter) {
 	public SPage<PurchaseInquiryItem> getAgreedInquiries(PageParams params, String searchFilter) {
-		logger.log("客户询价单", "查看收到的客户询价单列表(已采纳)- 搜索");
+		logger.log("客户询价单", "搜索查看收到的客户询价单(已采纳)");
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		String keyword = jsonObject.getString("keyword");
 		String keyword = jsonObject.getString("keyword");
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
@@ -279,12 +284,47 @@ public class SaleInquiryController {
 	@RequestMapping(value = "/info/search", params = RequestState.REFUSED, method = RequestMethod.GET)
 	@RequestMapping(value = "/info/search", params = RequestState.REFUSED, method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseBody
 	public SPage<PurchaseInquiryItem> getRefusedInquiries(PageParams params, String searchFilter) {
 	public SPage<PurchaseInquiryItem> getRefusedInquiries(PageParams params, String searchFilter) {
-		logger.log("客户询价单", "查看收到的客户询价单列表(未采纳)- 搜索");
+		logger.log("客户询价单", "搜索查看收到的客户询价单(未采纳)");
+		JSONObject jsonObject = JSON.parseObject(searchFilter);
+		String keyword = jsonObject.getString("keyword");
+		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
+		// 当前登录企业作为供应商
+		pageParams.getFilters().put("id_venduu", SystemSession.getUser().getEnterprise().getUu());
+		SearchFilter filter = userService.distribute();
+		if (filter != null && filter.getDistribute() == null) {
+			return null;
+		}
+		if (filter != null && !CollectionUtils.isEmpty(filter.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filter.getDistribute()) {
+				list.add(object);
+			}
+			pageParams.getFilters().put("id_inid", new MultiValue(list, true));
+		}
+		pageParams.getFilters().put("id_agreed", Constant.NO);
+		pageParams.getFilters().put("id_status", Status.REPLIED.value());
+		List<Sort> sortList = new ArrayList<>();
+		sortList.add(new Sort("id_id", false, Type.LONG, new Long(1)));
+		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
+		return searchService.searchPurchaseInquiryItemIds(keyword, pageParams);
+	}
+
+	/**
+	 * 已转报价的公共询价单--搜索
+	 *
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/info/search", params = RequestState.TEAMS, method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseInquiryItem> getPublicInquiry(PageParams params, String searchFilter) {
+		logger.log("客户询价单", "搜索已转报价的公共询价单");
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		JSONObject jsonObject = JSON.parseObject(searchFilter);
 		String keyword = jsonObject.getString("keyword");
 		String keyword = jsonObject.getString("keyword");
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
 		// 当前登录企业作为供应商
 		// 当前登录企业作为供应商
 		pageParams.getFilters().put("id_venduu", SystemSession.getUser().getEnterprise().getUu());
 		pageParams.getFilters().put("id_venduu", SystemSession.getUser().getEnterprise().getUu());
+		pageParams.getFilters().put("id_kind", INQUIRYKIND);
 		SearchFilter filter = userService.distribute();
 		SearchFilter filter = userService.distribute();
 		if (filter != null && filter.getDistribute() == null) {
 		if (filter != null && filter.getDistribute() == null) {
 			return null;
 			return null;
@@ -482,6 +522,32 @@ public class SaleInquiryController {
 		return purchaseInquiryService.findByPageInfo(pageInfo, null, filter);
 		return purchaseInquiryService.findByPageInfo(pageInfo, null, filter);
 	}
 	}
 
 
+	/**
+	 * 针对公共询价已报价的记录
+	 *
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/info/nosearch", params = RequestState.TEAMS, method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseInquiryItem> getPublicInquiryInfo(PageParams params, String searchFilter) {
+		logger.log("客户询价单", "查看收到已报价的公共询价单");
+		PageInfo pageInfo = new PageInfo(params);
+		pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+		pageInfo.filter("status", Status.REPLIED.value());
+		pageInfo.filter("invalid", Constant.NO);
+		pageInfo.filter("kind", INQUIRYKIND);
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+		SearchFilter distribute = userService.distribute();
+		if (distribute != null && distribute.getDistribute() == null) {
+			return null;
+		}
+		if (distribute != null && !CollectionUtils.isEmpty(distribute.getDistribute())) {
+			filter.setDistribute(distribute.getDistribute());
+		}
+		return purchaseInquiryService.findByPageInfo(pageInfo, null, filter);
+	}
+
 	/**
 	/**
 	 * 作为卖家,收到的采购询价明细(手机端)
 	 * 作为卖家,收到的采购询价明细(手机端)
 	 * 
 	 * 

+ 3 - 6
src/main/java/com/uas/platform/b2b/controller/SaleOrderController.java

@@ -38,10 +38,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.ModelAndView;
 
 
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 /**
 /**
  * 卖家对订单的操作
  * 卖家对订单的操作
@@ -696,8 +693,8 @@ public class SaleOrderController {
 	 * @return
 	 * @return
 	 */
 	 */
 	@RequestMapping(value = "/items/reply", method = RequestMethod.POST)
 	@RequestMapping(value = "/items/reply", method = RequestMethod.POST)
-	public ResponseEntity<String> replyOrderItems(@RequestBody String idString) {
-		List<PurchaseOrderReply> replies = purchaseOrderService.reply(idString.split(","));
+	public ResponseEntity<String> replyOrderItems(Long date, @RequestBody String idString) {
+		List<PurchaseOrderReply> replies = purchaseOrderService.reply(idString.split(","), date);
 		for (PurchaseOrderReply reply : replies)
 		for (PurchaseOrderReply reply : replies)
 			logger.log("客户采购单", "批量回复客户采购明细", reply.replyDescription(), reply.getOrderItem().getOrder().getCode(),
 			logger.log("客户采购单", "批量回复客户采购明细", reply.replyDescription(), reply.getOrderItem().getOrder().getCode(),
 					reply.getOrderItem().getId());
 					reply.getOrderItem().getId());

+ 13 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseInquiry.java

@@ -183,6 +183,12 @@ public class PurchaseInquiry implements Serializable {
 	@Column(name = "in_inquirytype")
 	@Column(name = "in_inquirytype")
 	private String inquirytype;
 	private String inquirytype;
 
 
+	/**
+	 * 询价种类(公共或其他)
+	 */
+	@Column(name = "in_kind")
+	private String kind;
+
 	public Long getId() {
 	public Long getId() {
 		return id;
 		return id;
 	}
 	}
@@ -361,4 +367,11 @@ public class PurchaseInquiry implements Serializable {
 		this.inquirytype = inquirytype;
 		this.inquirytype = inquirytype;
 	}
 	}
 
 
+	public String getKind() {
+		return kind;
+	}
+
+	public void setKind(String kind) {
+		this.kind = kind;
+	}
 }
 }

+ 15 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseInquiryItem.java

@@ -275,6 +275,12 @@ public class PurchaseInquiryItem {
 	@Column(name = "id_erpstatus")
 	@Column(name = "id_erpstatus")
     private Short erpstatus;
     private Short erpstatus;
 
 
+	/**
+	 * 询价种类
+	 */
+	@Column(name = "id_kind")
+	private String kind;
+
 	public Long getId() {
 	public Long getId() {
 		return id;
 		return id;
 	}
 	}
@@ -590,7 +596,15 @@ public class PurchaseInquiryItem {
 	    this.erpstatus = erpstatus ;
 	    this.erpstatus = erpstatus ;
     }
     }
 
 
-    /**
+	public String getKind() {
+		return kind;
+	}
+
+	public void setKind(String kind) {
+		this.kind = kind;
+	}
+
+	/**
 	 * 回复记录的描述
 	 * 回复记录的描述
 	 * 
 	 * 
 	 * @return
 	 * @return

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

@@ -222,7 +222,7 @@ public interface PurchaseOrderService {
 	 * @param orderItemIdString
 	 * @param orderItemIdString
 	 *            回复的明细ID的字符串数组
 	 *            回复的明细ID的字符串数组
 	 */
 	 */
-	public List<PurchaseOrderReply> reply(String[] orderItemIdString);
+	public List<PurchaseOrderReply> reply(String[] orderItemIdString, Long date);
 
 
 	/**
 	/**
 	 * 查找订单明细的回复记录
 	 * 查找订单明细的回复记录

+ 10 - 2
src/main/java/com/uas/platform/b2b/service/impl/PurcInquiryServiceImpl.java

@@ -52,6 +52,11 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 	 */
 	 */
 	private final String RMB = "RMB";
 	private final String RMB = "RMB";
 
 
+	/**
+	 * 询价种类
+	 */
+	private final String INQUIRYKIND = "publicInquiry";
+
 	@Autowired
 	@Autowired
 	private EnterpriseDao enterpriseDao;
 	private EnterpriseDao enterpriseDao;
 
 
@@ -627,6 +632,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 			saleInquiry.setRecorderUU(purcInquiry.getRecorderUU());
 			saleInquiry.setRecorderUU(purcInquiry.getRecorderUU());
 			saleInquiry.setAuditor(purcInquiry.getAuditor());
 			saleInquiry.setAuditor(purcInquiry.getAuditor());
 			saleInquiry.setSourceApp(SOURCERAPP);
 			saleInquiry.setSourceApp(SOURCERAPP);
+			saleInquiry.setKind(INQUIRYKIND);
 			saleInquiry.setSourceId(purcInquiry.getId());
 			saleInquiry.setSourceId(purcInquiry.getId());
 			saleInquiry.setPriceType(purcInquiry.getPriceType());
 			saleInquiry.setPriceType(purcInquiry.getPriceType());
 			saleInquiry.setInvoice(purcInquiry.getInvoice());
 			saleInquiry.setInvoice(purcInquiry.getInvoice());
@@ -678,6 +684,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 				replies.add(reply);
 				replies.add(reply);
 				item.setReplies(replies);
 				item.setReplies(replies);
 				item.setNeedquantity(purcInquiryItem.getNeedquantity());
 				item.setNeedquantity(purcInquiryItem.getNeedquantity());
+				item.setKind(INQUIRYKIND);
 				items.add(item);
 				items.add(item);
 				i++;
 				i++;
 			}
 			}
@@ -714,6 +721,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 						item.setCustLap(Constant.NO);
 						item.setCustLap(Constant.NO);
 						item.setSendStatus((short) Status.NOT_UPLOAD.value());
 						item.setSendStatus((short) Status.NOT_UPLOAD.value());
 						item.setSourceId(id);
 						item.setSourceId(id);
+						item.setKind(INQUIRYKIND);
 						item.setNeedquantity(purcInquiryItem.getNeedquantity());
 						item.setNeedquantity(purcInquiryItem.getNeedquantity());
 						Set<PurchaseInquiryReply> replies = new HashSet<PurchaseInquiryReply>();
 						Set<PurchaseInquiryReply> replies = new HashSet<PurchaseInquiryReply>();
 						List<PurchaseInquiryReply> purcReplies = new ArrayList<PurchaseInquiryReply>();
 						List<PurchaseInquiryReply> purcReplies = new ArrayList<PurchaseInquiryReply>();
@@ -727,11 +735,11 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 						try {
 						try {
 							jdbcTemplate.update(
 							jdbcTemplate.update(
 									"insert into purc$inquiryitems(id_id,id_number,id_currency,id_fromdate,id_todate,id_taxrate,id_prid,id_venduu,"
 									"insert into purc$inquiryitems(id_id,id_number,id_currency,id_fromdate,id_todate,id_taxrate,id_prid,id_venduu,"
-											+ "id_venduseruu,id_sourceapp,id_status,id_custlap,id_sendstatus,id_sourceid,id_inid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
+											+ "id_venduseruu,id_sourceapp,id_status,id_custlap,id_sendstatus,id_sourceid,id_inid,id_kind) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
 									idid, item.getNumber(), item.getCurrency(), item.getFromDate(), item.getToDate(),
 									idid, item.getNumber(), item.getCurrency(), item.getFromDate(), item.getToDate(),
 									item.getTaxrate(), item.getProductId(), item.getVendUU(), item.getVendUserUU(),
 									item.getTaxrate(), item.getProductId(), item.getVendUU(), item.getVendUserUU(),
 									item.getSourceApp(), item.getStatus(), item.getCustLap(), item.getSendStatus(),
 									item.getSourceApp(), item.getStatus(), item.getCustLap(), item.getSendStatus(),
-									item.getSourceId(), inquiry.getId());
+									item.getSourceId(), inquiry.getId(), inquiry.getKind());
 						} catch (DataAccessException e) {
 						} catch (DataAccessException e) {
 							e.printStackTrace();
 							e.printStackTrace();
 						}
 						}

+ 11 - 4
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -382,7 +382,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 	}
 	}
 
 
 	@Override
 	@Override
-	public List<PurchaseOrderReply> reply(String[] orderItemIdString) {
+	public List<PurchaseOrderReply> reply(String[] orderItemIdString, Long date) {
 		List<PurchaseOrderReply> replies = new ArrayList<PurchaseOrderReply>();
 		List<PurchaseOrderReply> replies = new ArrayList<PurchaseOrderReply>();
 		List<PurchaseOrderItem> itemList = new ArrayList<>();
 		List<PurchaseOrderItem> itemList = new ArrayList<>();
 		for (String orderItemId : orderItemIdString) {
 		for (String orderItemId : orderItemIdString) {
@@ -390,14 +390,21 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 			itemList.add(orderItem);
 			itemList.add(orderItem);
 			PurchaseOrderReply reply = new PurchaseOrderReply();
 			PurchaseOrderReply reply = new PurchaseOrderReply();
 			reply.setOrderItem(orderItem);
 			reply.setOrderItem(orderItem);
-			reply.setDelivery(orderItem.getDelivery());
+			// 指定交货日期
+			if (date != null) {
+				reply.setDelivery(new Date(date));
+			} else { // 默认交货日期
+				reply.setDelivery(orderItem.getDelivery());
+			}
 			reply.setRemark("批量回复");
 			reply.setRemark("批量回复");
-			if (orderItem.getReplyQty() == null)
+			if (orderItem.getReplyQty() == null) {
 				orderItem.setReplyQty((double) 0);
 				orderItem.setReplyQty((double) 0);
+			}
 			reply.setQty(orderItem.getQty() - orderItem.getReplyQty());
 			reply.setQty(orderItem.getQty() - orderItem.getReplyQty());
 			reply = reply(reply, true);
 			reply = reply(reply, true);
-			if (reply != null)
+			if (reply != null) {
 				replies.add(reply);
 				replies.add(reply);
+			}
 		}
 		}
 		// 触发回复事件  批量回复只产生一条消息
 		// 触发回复事件  批量回复只产生一条消息
 		ContextUtils.publishEvent(new PurchaseOrderReplyReleaseEvent(PurchaseOrderItem.distinct(itemList)));
 		ContextUtils.publishEvent(new PurchaseOrderReplyReleaseEvent(PurchaseOrderItem.distinct(itemList)));

+ 46 - 14
src/main/webapp/resources/js/index/app.js

@@ -1,6 +1,6 @@
 define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives', 'service/Purc', 'service/Make', 'service/Fa', 'service/Account', 'service/Alert', 'service/CheckTel', 'ui.router', 'ui.bootstrap', 'file-upload', 'ngSanitize', 'service/BaseInfo', 'service/Cart', 'service/ApprovalFlow', 'service/DeputyOrder', 'service/Product', 'service/Token', 'service/ProductUsers'], function () {
 define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives', 'service/Purc', 'service/Make', 'service/Fa', 'service/Account', 'service/Alert', 'service/CheckTel', 'ui.router', 'ui.bootstrap', 'file-upload', 'ngSanitize', 'service/BaseInfo', 'service/Cart', 'service/ApprovalFlow', 'service/DeputyOrder', 'service/Product', 'service/Token', 'service/ProductUsers'], function () {
     'use strict';
     'use strict';
-    var app = angular.module('myApp', ['toaster', 'angularCharts', 'ngTable', 'ui.router', 'common.services', 'common.directives', 'PurcServices', 'MakeServices', 'FaServices', 'AccountServices', 'AlertServices', 'ui.bootstrap', 'angularFileUpload', 'ngSanitize', 'CheckTelModule', 'ProductServices', 'CartServices', 'ApprvoalFlowService', 'DeputyOrderService', 'ProductInfoServices', 'TokenService', 'ProductUserService', 'ui.tour']);
+    var app = angular.module('myApp', ['toaster', 'angularCharts', 'ngTable', 'ui.router', 'common.services', 'common.directives', 'PurcServices', 'MakeServices', 'FaServices', 'AccountServices', 'AlertServices', 'ui.bootstrap', 'angularFileUpload', 'ngSanitize', 'CheckTelModule', 'ProductServices', 'CartServices', 'ApprvoalFlowService', 'DeputyOrderService', 'ProductInfoServices', 'TokenService', 'ProductUserService']);
     app.init = function () {
     app.init = function () {
         angular.bootstrap(document, ['myApp']);
         angular.bootstrap(document, ['myApp']);
     };
     };
@@ -3263,20 +3263,23 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                     animation: true,
                     animation: true,
                     templateUrl: 'static/tpl/index/sale/modal/reply_bybatch.html',
                     templateUrl: 'static/tpl/index/sale/modal/reply_bybatch.html',
                     controller: 'ReplyByBatchCtrl',
                     controller: 'ReplyByBatchCtrl',
-                    resolve: {
-                        enname: function () {
-                            return name
-                        }
+                    resolve: {}
+                });
+                modalInstance.result.then(function(data) {
+                    var reply = data;
+                    var date = null;
+                    if (reply.date) {
+                        date = reply.date.getTime();
                     }
                     }
+                    PurcOrderItem.replyByBatch({date: date}, str, function () {
+                        $scope.loading = false;
+                        $scope.tableParams.reload();
+                        toaster.pop('success', '提示', '批量回复成功');
+                    }, function (response) {
+                        $scope.loading = false;
+                        toaster.pop('error', '提示', '批量回复失败');
+                    });
                 });
                 });
-                // PurcOrderItem.replyByBatch(str, function () {
-                //     $scope.loading = false;
-                //     $scope.tableParams.reload();
-                //     toaster.pop('success', '提示', '批量回复成功');
-                // }, function (response) {
-                //     $scope.loading = false;
-                //     toaster.pop('error', '批量回复失败', response.data);
-                // });
             } else {//没有勾选其中的明细
             } else {//没有勾选其中的明细
                 toaster.pop('error', '提示', '请先选择需要回复的单据');
                 toaster.pop('error', '提示', '请先选择需要回复的单据');
                 $scope.loading = false;
                 $scope.loading = false;
@@ -3338,8 +3341,37 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
     /**
     /**
      * 批量回复模态框
      * 批量回复模态框
      */
      */
-    app.controller('ReplyByBatchCtrl', ['$scope', '$modalInstance', function($scope, $modalInstance) {
+    app.controller('ReplyByBatchCtrl', ['$scope', '$modalInstance', '$filter', 'toaster', function($scope, $modalInstance, $filter, toaster) {
         $scope.activeTab = 'default';
         $scope.activeTab = 'default';
+
+        $scope.getMinDate = function () {
+            return $filter('date')(new Date, 'yyyy-MM-dd');
+        };
+
+        $scope.openDatePicker = function ($event, openParam) {
+            $event.preventDefault();
+            $event.stopPropagation();
+            $scope.$dateOpen = !openParam;
+        };
+
+
+        // 取消
+        $scope.cancel = function () {
+            $modalInstance.dismiss();
+        }
+
+        // 提交
+        $scope.submit = function () {
+            if ($scope.reply.method == 0) {
+                $modalInstance.close($scope.reply);
+            } else if ($scope.reply.method == 1) {
+                if (angular.isUndefined($scope.reply.date)) {
+                    toaster.pop('error', '提示', '请先选择日期')
+                } else {
+                    $modalInstance.close($scope.reply);
+                }
+            }
+        }
     }]);
     }]);
 
 
     app.controller('SaleOrderDetailCtrl', ['$scope', '$stateParams', 'PurcOrder', 'PurcOrderItem', 'toaster', 'ReportService', 'CurrentRole', 'token',function ($scope, $stateParams, PurcOrder, PurcOrderItem, toaster, ReportService, CurrentRole, token) {
     app.controller('SaleOrderDetailCtrl', ['$scope', '$stateParams', 'PurcOrder', 'PurcOrderItem', 'toaster', 'ReportService', 'CurrentRole', 'token',function ($scope, $stateParams, PurcOrder, PurcOrderItem, toaster, ReportService, CurrentRole, token) {

+ 10 - 0
src/main/webapp/resources/js/index/services/Purc.js

@@ -67,6 +67,11 @@ define([ 'ngResource'], function() {
 					_state: 'waiting'
 					_state: 'waiting'
 				}
 				}
 			},
 			},
+            getPublicInquiry: {
+                params: {
+                    _state: 'teams'
+                }
+            },
 			replyByBatch: {
 			replyByBatch: {
 				url: 'sale/orders/items/reply',
 				url: 'sale/orders/items/reply',
 				method: 'POST',
 				method: 'POST',
@@ -144,6 +149,11 @@ define([ 'ngResource'], function() {
 					_state: 'waiting'
 					_state: 'waiting'
 				}
 				}
 			},
 			},
+			getPublicInquiry: {
+                params: {
+                    _state: 'teams'
+                }
+			},
 			getUnreadIds:{
 			getUnreadIds:{
 				url: 'sale/orders/getUnreadIds',
 				url: 'sale/orders/getUnreadIds',
 				method: 'GET'
 				method: 'GET'

+ 20 - 6
src/main/webapp/resources/tpl/index/sale/modal/reply_bybatch.html

@@ -102,26 +102,40 @@
 <div class="modal-body">
 <div class="modal-body">
     <div class="top">
     <div class="top">
         <div class="form-group">
         <div class="form-group">
-            <input type="radio" id="default" ng-click="activeTab = 'default'">
+            <input type="radio" id="default" ng-click="activeTab = 'default'" ng-model="reply.method" ng-value=0 name="method">
             <label for="default" ng-class="{'active': activeTab == 'default'}">默认交期</label>
             <label for="default" ng-class="{'active': activeTab == 'default'}">默认交期</label>
         </div>
         </div>
         <div class="form-group">
         <div class="form-group">
-            <input type="radio" id="custom" ng-click="activeTab = 'custom'">
+            <input type="radio" id="custom" ng-click="activeTab = 'custom'" ng-model="reply.method" ng-value=1 name="method">
             <label for="custom" ng-class="{'active': activeTab == 'custom'}">自定义交期</label>
             <label for="custom" ng-class="{'active': activeTab == 'custom'}">自定义交期</label>
         </div>
         </div>
     </div>
     </div>
     <!--默认交期-->
     <!--默认交期-->
-    <div class="bottom" ng-if="activeTab == 'default'">
+    <div class="bottom" ng-show="activeTab == 'default'">
         <span>对选中的单据按照满足客户需求的数量和交期默认回复</span>
         <span>对选中的单据按照满足客户需求的数量和交期默认回复</span>
     </div>
     </div>
     <!--自定义交期-->
     <!--自定义交期-->
-    <div class="bottom" ng-if="activeTab == 'custom'">
+    <div class="bottom" ng-show="activeTab == 'custom'">
         <span>对选中的单据按照满足客户需求的数量和交期默认回复</span>
         <span>对选中的单据按照满足客户需求的数量和交期默认回复</span>
         <div class="choose">
         <div class="choose">
-            dddd
+            <div class="input-group">
+                <input ng-model="reply.date" type="text" class="form-control"
+                       placeholder="点击选择时间" datepicker-popup="yyyy-MM-dd" is-open="$dateOpen"
+                       min-date="getMinDate()" ng-required="true"
+                       current-text="今天" clear-text="清除" close-text="关闭"
+                       datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+                       ng-focus="openDatePicker($event, $dateOpen)" readonly>
+                <span class="input-group-btn">
+                    <button type="button" class="btn btn-default btn-sm"
+                            ng-click="openDatePicker($event, $dateOpen)">
+                        <i class="fa fa-calendar fa-lg"></i>
+                    </button>
+                </span>
+            </div>
         </div>
         </div>
     </div>
     </div>
 </div>
 </div>
 <div class="modal-footer">
 <div class="modal-footer">
-    <button>确定</button><button>取消</button>
+    <button ng-disabled = "reply.method == null" ng-click="submit()">确定</button>
+    <button ng-click="cancel()">取消</button>
 </div>
 </div>