Browse Source

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@529 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d

administrator 11 years ago
parent
commit
2e77e5130e

+ 20 - 1
src/main/java/com/uas/platform/b2b/controller/SaleNoticeController.java

@@ -17,7 +17,9 @@ import com.uas.platform.b2b.service.PurchaseNoticeService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.PageParams;
+import com.uas.platform.core.model.Status;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import com.uas.platform.core.web.bind.RequestState;
 
 
 /**
 /**
  * 卖家对送货提醒的操作
  * 卖家对送货提醒的操作
@@ -47,6 +49,23 @@ public class SaleNoticeController {
 		return purchaseNoticeService.findAllByPageInfo(info);
 		return purchaseNoticeService.findAllByPageInfo(info);
 	}
 	}
 
 
+	/**
+	 * 作为卖家,收到的送货提醒(待发货)
+	 * 
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(params = RequestState.TODO, method = RequestMethod.GET)
+	@ResponseBody
+	public Page<PurchaseNotice> getTodoPurchaseNotices(PageParams params) {
+		PageInfo info = new PageInfo(params);
+		// 询价单状态为未回复
+		info.filter("status", Status.NOT_REPLY.value());
+		// 我作为卖家,把我的企业ID作为供应商ID传入
+		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+		return purchaseNoticeService.findAllByPageInfo(info);
+	}
+
 	/**
 	/**
 	 * 作为卖家,针对送货提醒发货
 	 * 作为卖家,针对送货提醒发货
 	 * 
 	 * 
@@ -55,7 +74,7 @@ public class SaleNoticeController {
 	 * @return
 	 * @return
 	 */
 	 */
 	@RequestMapping(value = "/{noticeId}", method = RequestMethod.POST)
 	@RequestMapping(value = "/{noticeId}", method = RequestMethod.POST)
-	public ResponseEntity<String> send(@PathVariable("noticeId") Long noticeId,@RequestBody String json) {
+	public ResponseEntity<String> send(@PathVariable("noticeId") Long noticeId, @RequestBody String json) {
 		SaleSend send = FlexJsonUtils.fromJson(json, SaleSend.class);
 		SaleSend send = FlexJsonUtils.fromJson(json, SaleSend.class);
 		purchaseNoticeService.send(noticeId, send);
 		purchaseNoticeService.send(noticeId, send);
 		return new ResponseEntity<String>(HttpStatus.OK);
 		return new ResponseEntity<String>(HttpStatus.OK);

+ 20 - 1
src/main/java/com/uas/platform/b2b/controller/SaleOrderChangeController.java

@@ -16,7 +16,9 @@ import com.uas.platform.b2b.service.PurchaseOrderChangeService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.PageParams;
+import com.uas.platform.core.model.Status;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import com.uas.platform.core.web.bind.RequestState;
 
 
 /**
 /**
  * 卖家对变更单的操作
  * 卖家对变更单的操作
@@ -39,13 +41,30 @@ public class SaleOrderChangeController {
 	 */
 	 */
 	@RequestMapping(method = RequestMethod.GET)
 	@RequestMapping(method = RequestMethod.GET)
 	@ResponseBody
 	@ResponseBody
-	public Page<PurchaseOrderChange> getReceivedPurchaseOrders(PageParams params) {
+	public Page<PurchaseOrderChange> getReceivedPurchaseOrderChanges(PageParams params) {
 		PageInfo info = new PageInfo(params);
 		PageInfo info = new PageInfo(params);
 		// 我作为卖家,把我的企业ID作为供应商ID传入
 		// 我作为卖家,把我的企业ID作为供应商ID传入
 		info.filter("order.vendUU", SystemSession.getUser().getEnterprise().getUu());
 		info.filter("order.vendUU", SystemSession.getUser().getEnterprise().getUu());
 		return purchaseOrderChangeService.findAllByPageInfo(info);
 		return purchaseOrderChangeService.findAllByPageInfo(info);
 	}
 	}
 
 
+	/**
+	 * 作为卖家,收到的采购变更单
+	 * 
+	 * @param json
+	 * @return
+	 */
+	@RequestMapping(params = RequestState.TODO, method = RequestMethod.GET)
+	@ResponseBody
+	public Page<PurchaseOrderChange> getTodoPurchaseOrderChanges(PageParams params) {
+		PageInfo info = new PageInfo(params);
+		// 变更单状态为未回复
+		info.filter("status", Status.NOT_REPLY.value());
+		// 我作为卖家,把我的企业ID作为供应商ID传入
+		info.filter("order.vendUU", SystemSession.getUser().getEnterprise().getUu());
+		return purchaseOrderChangeService.findAllByPageInfo(info);
+	}
+
 	/**
 	/**
 	 * 作为卖家,根据变更单ID查找采购变更单(含明细)
 	 * 作为卖家,根据变更单ID查找采购变更单(含明细)
 	 * 
 	 * 

+ 33 - 0
src/main/java/com/uas/platform/b2b/controller/SaleOrderController.java

@@ -15,13 +15,16 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 
 import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
+import com.uas.platform.b2b.model.PurchaseOrderEnd;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
+import com.uas.platform.b2b.model.PurchaseOrderTodo;
 import com.uas.platform.b2b.service.PurchaseOrderService;
 import com.uas.platform.b2b.service.PurchaseOrderService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import com.uas.platform.core.web.bind.RequestState;
 
 
 /**
 /**
  * 卖家对订单的操作
  * 卖家对订单的操作
@@ -78,6 +81,36 @@ public class SaleOrderController {
 		return purchaseOrderService.findAllDetailByPageInfo(info);
 		return purchaseOrderService.findAllDetailByPageInfo(info);
 	}
 	}
 
 
+	/**
+	 * 作为卖家,收到的采购订单(含明细)(待回复)
+	 * 
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/items", params = RequestState.TODO, method = RequestMethod.GET)
+	@ResponseBody
+	public Page<PurchaseOrderTodo> getTodoPurchaseOrderItems(PageParams params) {
+		PageInfo info = new PageInfo(params);
+		// 我作为卖家,把我的企业ID作为供应商ID传入
+		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+		return purchaseOrderService.findTodoByPageInfo(info);
+	}
+
+	/**
+	 * 作为卖家,收到的采购订单(含明细)(已回复)
+	 * 
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/items", params = RequestState.END, method = RequestMethod.GET)
+	@ResponseBody
+	public Page<PurchaseOrderEnd> getEndPurchaseOrderItems(PageParams params) {
+		PageInfo info = new PageInfo(params);
+		// 我作为卖家,把我的企业ID作为供应商ID传入
+		info.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+		return purchaseOrderService.findEndByPageInfo(info);
+	}
+
 	/**
 	/**
 	 * 作为卖家,回复收到的采购订单
 	 * 作为卖家,回复收到的采购订单
 	 * 
 	 * 

+ 12 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderEndDao.java

@@ -0,0 +1,12 @@
+package com.uas.platform.b2b.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+import com.uas.platform.b2b.model.PurchaseOrderEnd;
+
+@Repository
+public interface PurchaseOrderEndDao extends JpaSpecificationExecutor<PurchaseOrderEnd>, JpaRepository<PurchaseOrderEnd, Long> {
+
+}

+ 12 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderTodoDao.java

@@ -0,0 +1,12 @@
+package com.uas.platform.b2b.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+import com.uas.platform.b2b.model.PurchaseOrderTodo;
+
+@Repository
+public interface PurchaseOrderTodoDao extends JpaSpecificationExecutor<PurchaseOrderTodo>, JpaRepository<PurchaseOrderTodo, Long> {
+
+}

+ 0 - 3
src/main/java/com/uas/platform/b2b/model/PurchaseOrderAll.java

@@ -17,8 +17,6 @@ import javax.persistence.OrderBy;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import javax.persistence.Table;
 
 
-import org.hibernate.annotations.Where;
-
 /**
 /**
  * 平台里面,以供应商的角度来查看采购订单 <br>
  * 平台里面,以供应商的角度来查看采购订单 <br>
  * 级联采购明细
  * 级联采购明细
@@ -150,7 +148,6 @@ public class PurchaseOrderAll {
 	 * 采购单明细
 	 * 采购单明细
 	 */
 	 */
 	@OneToMany(mappedBy = "order", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
 	@OneToMany(mappedBy = "order", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
-	@Where(clause = "pd_status = 200")
 	@OrderBy("number")
 	@OrderBy("number")
 	private Set<PurchaseOrderAllItem> orderItems;
 	private Set<PurchaseOrderAllItem> orderItems;
 
 

+ 312 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderEnd.java

@@ -0,0 +1,312 @@
+package com.uas.platform.b2b.model;
+
+import java.util.Date;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.OrderBy;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.Where;
+
+/**
+ * 平台里面,以供应商的角度来查看采购订单 <br>
+ * 级联采购明细<br>
+ * 已结案采购单
+ * 
+ * @author yingp
+ * 
+ */
+@Table(name = "purc$orders")
+@Entity
+public class PurchaseOrderEnd {
+
+	@Id
+	@Column(name = "pu_id")
+	private Long id;
+
+	/**
+	 * 采购企业UU
+	 */
+	@Column(name = "pu_enuu")
+	private Long enUU;
+
+	/**
+	 * 采购企业
+	 */
+	@OneToOne(cascade = { CascadeType.MERGE })
+	@JoinColumn(name = "pu_enuu", insertable = false, updatable = false)
+	private Enterprise enterprise;
+
+	/**
+	 * 采购单所属采购员
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "pu_useruu", insertable = false, updatable = false)
+	private User user;
+
+	/**
+	 * 采购单所属采购员UU
+	 */
+	@Column(name = "pu_useruu")
+	private Long userUU;
+
+	/**
+	 * 采购单号
+	 */
+	@Column(name = "pu_code")
+	private String code;
+
+	/**
+	 * 采购类型
+	 */
+	@Column(name = "pu_type")
+	private String type;
+
+	/**
+	 * 单据归属日期
+	 */
+	@Column(name = "pu_date")
+	private Date date;
+
+	/**
+	 * 录单人
+	 */
+	@Column(name = "pu_recorder")
+	private String recorder;
+
+	/**
+	 * 审核人
+	 */
+	@Column(name = "pu_auditor")
+	private String auditor;
+
+	/**
+	 * 供应商UU
+	 */
+	@Column(name = "pu_venduu")
+	private Long vendUU;
+
+	/**
+	 * 供应商联系人UU
+	 */
+	@Column(name = "pu_venduseruu")
+	private Long vendUserUU;
+
+	/**
+	 * 收货地址
+	 */
+	@Column(name = "pu_shipaddress")
+	private String shipAddress;
+
+	/**
+	 * 备注
+	 */
+	@Column(name = "pu_remark")
+	private String remark;
+
+	/**
+	 * 付款币种
+	 */
+	@Column(name = "pu_currency")
+	private String currency;
+
+	/**
+	 * 汇率
+	 */
+	@Column(name = "pu_rate")
+	private Float rate;
+
+	/**
+	 * 付款方式
+	 */
+	@Column(name = "pu_payments")
+	private String payments;
+
+	/**
+	 * 处理状态(已回复、未回复),全部回复后改为已回复
+	 */
+	@Column(name = "pu_status")
+	private Short status;
+
+	/**
+	 * 从平台传到供应商ERP的状态
+	 */
+	@Column(name = "pu_sendstatus")
+	private Short sendStatus;
+
+	/**
+	 * 采购单明细
+	 */
+	@OneToMany(mappedBy = "order", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
+	@OrderBy("number")
+	@Where(clause = "pd_end=1")
+	private Set<PurchaseOrderEndItem> orderItems;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
+	public Enterprise getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(Enterprise enterprise) {
+		this.enterprise = enterprise;
+	}
+
+	public User getUser() {
+		return user;
+	}
+
+	public void setUser(User user) {
+		this.user = user;
+	}
+
+	public Long getUserUU() {
+		return userUU;
+	}
+
+	public void setUserUU(Long userUU) {
+		this.userUU = userUU;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+	public String getRecorder() {
+		return recorder;
+	}
+
+	public void setRecorder(String recorder) {
+		this.recorder = recorder;
+	}
+
+	public String getAuditor() {
+		return auditor;
+	}
+
+	public void setAuditor(String auditor) {
+		this.auditor = auditor;
+	}
+
+	public Long getVendUU() {
+		return vendUU;
+	}
+
+	public void setVendUU(Long vendUU) {
+		this.vendUU = vendUU;
+	}
+
+	public Long getVendUserUU() {
+		return vendUserUU;
+	}
+
+	public void setVendUserUU(Long vendUserUU) {
+		this.vendUserUU = vendUserUU;
+	}
+
+	public String getShipAddress() {
+		return shipAddress;
+	}
+
+	public void setShipAddress(String shipAddress) {
+		this.shipAddress = shipAddress;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Float getRate() {
+		return rate;
+	}
+
+	public void setRate(Float rate) {
+		this.rate = rate;
+	}
+
+	public String getPayments() {
+		return payments;
+	}
+
+	public void setPayments(String payments) {
+		this.payments = payments;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+	public Short getSendStatus() {
+		return sendStatus;
+	}
+
+	public void setSendStatus(Short sendStatus) {
+		this.sendStatus = sendStatus;
+	}
+
+	public Set<PurchaseOrderEndItem> getOrderItems() {
+		return orderItems;
+	}
+
+	public void setOrderItems(Set<PurchaseOrderEndItem> orderItems) {
+		this.orderItems = orderItems;
+	}
+}

+ 258 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderEndItem.java

@@ -0,0 +1,258 @@
+package com.uas.platform.b2b.model;
+
+import java.util.Date;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+import org.codehaus.jackson.annotate.JsonIgnore;
+
+@Table(name = "purc$orderitems")
+@Entity
+public class PurchaseOrderEndItem {
+
+	@Id
+	@Column(name = "pd_id")
+	private Long id;
+
+	/**
+	 * 序号
+	 */
+	@Column(name = "pd_number")
+	private Short number;
+
+	/**
+	 * 采购订单
+	 */
+	@ManyToOne(cascade = CascadeType.ALL, optional = true)
+	@JoinColumn(name = "pd_puid", nullable = false)
+	private PurchaseOrderEnd order;
+
+	/**
+	 * 产品ID
+	 */
+	@Column(name = "pd_prid")
+	private Long productId;
+
+	/**
+	 * 产品
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "pd_prid", insertable = false, updatable = false)
+	private Product product;
+
+	/**
+	 * 数量
+	 */
+	@Column(name = "pd_qty")
+	private Double qty;
+
+	/**
+	 * 已回复的数量
+	 */
+	@Column(name = "pd_replyqty")
+	private Double replyQty;
+
+	/**
+	 * (最近一次)回复的交期
+	 */
+	@Column(name = "pd_replydelivery")
+	private Date replyDelivery;
+
+	/**
+	 * (最近一次)回复的备注
+	 */
+	@Column(name = "pd_replyremark")
+	private String replyRemark;
+
+	/**
+	 * 备注
+	 */
+	@Column(name = "pd_remark")
+	private String remark;
+
+	/**
+	 * 含税单价
+	 */
+	@Column(name = "pd_price")
+	private Double price;
+
+	/**
+	 * 税率
+	 */
+	@Column(name = "pd_taxrate")
+	private Float taxrate;
+
+	/**
+	 * 处理状态(已回复、未回复),全部回复后改为已回复
+	 */
+	@Column(name = "pd_status", insertable = false, updatable = false)
+	private Short status;
+
+	/**
+	 * 含税金额
+	 */
+	@Column(name = "pd_amount", insertable = false, updatable = false)
+	private Double amount;
+
+	/**
+	 * 不含税单价
+	 */
+	@Column(name = "pd_notaxprice", insertable = false, updatable = false)
+	private Double noTaxPrice;
+
+	/**
+	 * 不含税金额
+	 */
+	@Column(name = "pd_notaxamount", insertable = false, updatable = false)
+	private Double noTaxAmount;
+
+	/**
+	 * 交货日期
+	 */
+	@Column(name = "pd_delivery")
+	private Date delivery;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Short getNumber() {
+		return number;
+	}
+
+	public void setNumber(Short number) {
+		this.number = number;
+	}
+
+	public Long getProductId() {
+		return productId;
+	}
+
+	public void setProductId(Long productId) {
+		this.productId = productId;
+	}
+
+	public Product getProduct() {
+		return product;
+	}
+
+	public void setProduct(Product product) {
+		this.product = product;
+	}
+
+	@JsonIgnore
+	public PurchaseOrderEnd getOrder() {
+		return order;
+	}
+
+	public void setOrder(PurchaseOrderEnd order) {
+		this.order = order;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+
+	public Double getReplyQty() {
+		return replyQty;
+	}
+
+	public void setReplyQty(Double replyQty) {
+		this.replyQty = replyQty;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public Float getTaxrate() {
+		return taxrate;
+	}
+
+	public void setTaxrate(Float taxrate) {
+		this.taxrate = taxrate;
+	}
+
+	public Double getAmount() {
+		return amount;
+	}
+
+	public void setAmount(Double amount) {
+		this.amount = amount;
+	}
+
+	public Double getNoTaxPrice() {
+		return noTaxPrice;
+	}
+
+	public void setNoTaxPrice(Double noTaxPrice) {
+		this.noTaxPrice = noTaxPrice;
+	}
+
+	public Double getNoTaxAmount() {
+		return noTaxAmount;
+	}
+
+	public void setNoTaxAmount(Double noTaxAmount) {
+		this.noTaxAmount = noTaxAmount;
+	}
+
+	public Date getDelivery() {
+		return delivery;
+	}
+
+	public void setDelivery(Date delivery) {
+		this.delivery = delivery;
+	}
+
+	public Date getReplyDelivery() {
+		return replyDelivery;
+	}
+
+	public void setReplyDelivery(Date replyDelivery) {
+		this.replyDelivery = replyDelivery;
+	}
+
+	public String getReplyRemark() {
+		return replyRemark;
+	}
+
+	public void setReplyRemark(String replyRemark) {
+		this.replyRemark = replyRemark;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+}

+ 313 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderTodo.java

@@ -0,0 +1,313 @@
+package com.uas.platform.b2b.model;
+
+import java.util.Date;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.OrderBy;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.Where;
+
+/**
+ * 平台里面,以供应商的角度来查看采购订单 <br>
+ * 级联采购明细<br>
+ * 待回复采购单
+ * 
+ * @author yingp
+ * 
+ */
+@Table(name = "purc$orders")
+@Entity
+@Where(clause = "pu_status=200")
+public class PurchaseOrderTodo {
+
+	@Id
+	@Column(name = "pu_id")
+	private Long id;
+
+	/**
+	 * 采购企业UU
+	 */
+	@Column(name = "pu_enuu")
+	private Long enUU;
+
+	/**
+	 * 采购企业
+	 */
+	@OneToOne(cascade = { CascadeType.MERGE })
+	@JoinColumn(name = "pu_enuu", insertable = false, updatable = false)
+	private Enterprise enterprise;
+
+	/**
+	 * 采购单所属采购员
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "pu_useruu", insertable = false, updatable = false)
+	private User user;
+
+	/**
+	 * 采购单所属采购员UU
+	 */
+	@Column(name = "pu_useruu")
+	private Long userUU;
+
+	/**
+	 * 采购单号
+	 */
+	@Column(name = "pu_code")
+	private String code;
+
+	/**
+	 * 采购类型
+	 */
+	@Column(name = "pu_type")
+	private String type;
+
+	/**
+	 * 单据归属日期
+	 */
+	@Column(name = "pu_date")
+	private Date date;
+
+	/**
+	 * 录单人
+	 */
+	@Column(name = "pu_recorder")
+	private String recorder;
+
+	/**
+	 * 审核人
+	 */
+	@Column(name = "pu_auditor")
+	private String auditor;
+
+	/**
+	 * 供应商UU
+	 */
+	@Column(name = "pu_venduu")
+	private Long vendUU;
+
+	/**
+	 * 供应商联系人UU
+	 */
+	@Column(name = "pu_venduseruu")
+	private Long vendUserUU;
+
+	/**
+	 * 收货地址
+	 */
+	@Column(name = "pu_shipaddress")
+	private String shipAddress;
+
+	/**
+	 * 备注
+	 */
+	@Column(name = "pu_remark")
+	private String remark;
+
+	/**
+	 * 付款币种
+	 */
+	@Column(name = "pu_currency")
+	private String currency;
+
+	/**
+	 * 汇率
+	 */
+	@Column(name = "pu_rate")
+	private Float rate;
+
+	/**
+	 * 付款方式
+	 */
+	@Column(name = "pu_payments")
+	private String payments;
+
+	/**
+	 * 处理状态(已回复、未回复),全部回复后改为已回复
+	 */
+	@Column(name = "pu_status")
+	private Short status;
+
+	/**
+	 * 从平台传到供应商ERP的状态
+	 */
+	@Column(name = "pu_sendstatus")
+	private Short sendStatus;
+
+	/**
+	 * 采购单明细
+	 */
+	@OneToMany(mappedBy = "order", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
+	@Where(clause = "pd_status = 200")
+	@OrderBy("number")
+	private Set<PurchaseOrderTodoItem> orderItems;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
+	public Enterprise getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(Enterprise enterprise) {
+		this.enterprise = enterprise;
+	}
+
+	public User getUser() {
+		return user;
+	}
+
+	public void setUser(User user) {
+		this.user = user;
+	}
+
+	public Long getUserUU() {
+		return userUU;
+	}
+
+	public void setUserUU(Long userUU) {
+		this.userUU = userUU;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+	public String getRecorder() {
+		return recorder;
+	}
+
+	public void setRecorder(String recorder) {
+		this.recorder = recorder;
+	}
+
+	public String getAuditor() {
+		return auditor;
+	}
+
+	public void setAuditor(String auditor) {
+		this.auditor = auditor;
+	}
+
+	public Long getVendUU() {
+		return vendUU;
+	}
+
+	public void setVendUU(Long vendUU) {
+		this.vendUU = vendUU;
+	}
+
+	public Long getVendUserUU() {
+		return vendUserUU;
+	}
+
+	public void setVendUserUU(Long vendUserUU) {
+		this.vendUserUU = vendUserUU;
+	}
+
+	public String getShipAddress() {
+		return shipAddress;
+	}
+
+	public void setShipAddress(String shipAddress) {
+		this.shipAddress = shipAddress;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Float getRate() {
+		return rate;
+	}
+
+	public void setRate(Float rate) {
+		this.rate = rate;
+	}
+
+	public String getPayments() {
+		return payments;
+	}
+
+	public void setPayments(String payments) {
+		this.payments = payments;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+	public Short getSendStatus() {
+		return sendStatus;
+	}
+
+	public void setSendStatus(Short sendStatus) {
+		this.sendStatus = sendStatus;
+	}
+
+	public Set<PurchaseOrderTodoItem> getOrderItems() {
+		return orderItems;
+	}
+
+	public void setOrderItems(Set<PurchaseOrderTodoItem> orderItems) {
+		this.orderItems = orderItems;
+	}
+}

+ 258 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderTodoItem.java

@@ -0,0 +1,258 @@
+package com.uas.platform.b2b.model;
+
+import java.util.Date;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+import org.codehaus.jackson.annotate.JsonIgnore;
+
+@Table(name = "purc$orderitems")
+@Entity
+public class PurchaseOrderTodoItem {
+
+	@Id
+	@Column(name = "pd_id")
+	private Long id;
+
+	/**
+	 * 序号
+	 */
+	@Column(name = "pd_number")
+	private Short number;
+
+	/**
+	 * 采购订单
+	 */
+	@ManyToOne(cascade = CascadeType.ALL, optional = true)
+	@JoinColumn(name = "pd_puid", nullable = false)
+	private PurchaseOrderTodo order;
+
+	/**
+	 * 产品ID
+	 */
+	@Column(name = "pd_prid")
+	private Long productId;
+
+	/**
+	 * 产品
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "pd_prid", insertable = false, updatable = false)
+	private Product product;
+
+	/**
+	 * 数量
+	 */
+	@Column(name = "pd_qty")
+	private Double qty;
+
+	/**
+	 * 已回复的数量
+	 */
+	@Column(name = "pd_replyqty")
+	private Double replyQty;
+
+	/**
+	 * (最近一次)回复的交期
+	 */
+	@Column(name = "pd_replydelivery")
+	private Date replyDelivery;
+
+	/**
+	 * (最近一次)回复的备注
+	 */
+	@Column(name = "pd_replyremark")
+	private String replyRemark;
+
+	/**
+	 * 备注
+	 */
+	@Column(name = "pd_remark")
+	private String remark;
+
+	/**
+	 * 含税单价
+	 */
+	@Column(name = "pd_price")
+	private Double price;
+
+	/**
+	 * 税率
+	 */
+	@Column(name = "pd_taxrate")
+	private Float taxrate;
+
+	/**
+	 * 处理状态(已回复、未回复),全部回复后改为已回复
+	 */
+	@Column(name = "pd_status", insertable = false, updatable = false)
+	private Short status;
+
+	/**
+	 * 含税金额
+	 */
+	@Column(name = "pd_amount", insertable = false, updatable = false)
+	private Double amount;
+
+	/**
+	 * 不含税单价
+	 */
+	@Column(name = "pd_notaxprice", insertable = false, updatable = false)
+	private Double noTaxPrice;
+
+	/**
+	 * 不含税金额
+	 */
+	@Column(name = "pd_notaxamount", insertable = false, updatable = false)
+	private Double noTaxAmount;
+
+	/**
+	 * 交货日期
+	 */
+	@Column(name = "pd_delivery")
+	private Date delivery;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Short getNumber() {
+		return number;
+	}
+
+	public void setNumber(Short number) {
+		this.number = number;
+	}
+
+	@JsonIgnore
+	public PurchaseOrderTodo getOrder() {
+		return order;
+	}
+
+	public void setOrder(PurchaseOrderTodo order) {
+		this.order = order;
+	}
+
+	public Long getProductId() {
+		return productId;
+	}
+
+	public void setProductId(Long productId) {
+		this.productId = productId;
+	}
+
+	public Product getProduct() {
+		return product;
+	}
+
+	public void setProduct(Product product) {
+		this.product = product;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+
+	public Double getReplyQty() {
+		return replyQty;
+	}
+
+	public void setReplyQty(Double replyQty) {
+		this.replyQty = replyQty;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public Float getTaxrate() {
+		return taxrate;
+	}
+
+	public void setTaxrate(Float taxrate) {
+		this.taxrate = taxrate;
+	}
+
+	public Double getAmount() {
+		return amount;
+	}
+
+	public void setAmount(Double amount) {
+		this.amount = amount;
+	}
+
+	public Double getNoTaxPrice() {
+		return noTaxPrice;
+	}
+
+	public void setNoTaxPrice(Double noTaxPrice) {
+		this.noTaxPrice = noTaxPrice;
+	}
+
+	public Double getNoTaxAmount() {
+		return noTaxAmount;
+	}
+
+	public void setNoTaxAmount(Double noTaxAmount) {
+		this.noTaxAmount = noTaxAmount;
+	}
+
+	public Date getDelivery() {
+		return delivery;
+	}
+
+	public void setDelivery(Date delivery) {
+		this.delivery = delivery;
+	}
+
+	public Date getReplyDelivery() {
+		return replyDelivery;
+	}
+
+	public void setReplyDelivery(Date replyDelivery) {
+		this.replyDelivery = replyDelivery;
+	}
+
+	public String getReplyRemark() {
+		return replyRemark;
+	}
+
+	public void setReplyRemark(String replyRemark) {
+		this.replyRemark = replyRemark;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+}

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

@@ -7,8 +7,10 @@ import org.springframework.data.domain.Page;
 import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderAllItem;
 import com.uas.platform.b2b.model.PurchaseOrderAllItem;
+import com.uas.platform.b2b.model.PurchaseOrderEnd;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
+import com.uas.platform.b2b.model.PurchaseOrderTodo;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageInfo;
 
 
 public interface PurchaseOrderService {
 public interface PurchaseOrderService {
@@ -45,6 +47,22 @@ public interface PurchaseOrderService {
 	 */
 	 */
 	public Page<PurchaseOrderAll> findAllDetailByPageInfo(PageInfo pageInfo);
 	public Page<PurchaseOrderAll> findAllDetailByPageInfo(PageInfo pageInfo);
 
 
+	/**
+	 * 分页查找待回复订单,包括明细
+	 * 
+	 * @param pageInfo
+	 * @return
+	 */
+	public Page<PurchaseOrderTodo> findTodoByPageInfo(PageInfo pageInfo);
+	
+	/**
+	 * 分页查找已结案订单明细
+	 * 
+	 * @param pageInfo
+	 * @return
+	 */
+	public Page<PurchaseOrderEnd> findEndByPageInfo(PageInfo pageInfo);
+
 	/**
 	/**
 	 * 用订单号查找订单
 	 * 用订单号查找订单
 	 * 
 	 * 

+ 35 - 3
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -20,13 +20,17 @@ import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.PurchaseOrderAllDao;
 import com.uas.platform.b2b.dao.PurchaseOrderAllDao;
 import com.uas.platform.b2b.dao.PurchaseOrderAllItemDao;
 import com.uas.platform.b2b.dao.PurchaseOrderAllItemDao;
 import com.uas.platform.b2b.dao.PurchaseOrderDao;
 import com.uas.platform.b2b.dao.PurchaseOrderDao;
+import com.uas.platform.b2b.dao.PurchaseOrderEndDao;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.dao.PurchaseOrderReplyDao;
 import com.uas.platform.b2b.dao.PurchaseOrderReplyDao;
+import com.uas.platform.b2b.dao.PurchaseOrderTodoDao;
 import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderAllItem;
 import com.uas.platform.b2b.model.PurchaseOrderAllItem;
+import com.uas.platform.b2b.model.PurchaseOrderEnd;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
+import com.uas.platform.b2b.model.PurchaseOrderTodo;
 import com.uas.platform.b2b.service.PurchaseOrderService;
 import com.uas.platform.b2b.service.PurchaseOrderService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.XingePusher;
 import com.uas.platform.b2b.support.XingePusher;
@@ -44,6 +48,12 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 	@Autowired
 	@Autowired
 	private PurchaseOrderAllDao purchaseOrderAllDao;
 	private PurchaseOrderAllDao purchaseOrderAllDao;
 
 
+	@Autowired
+	private PurchaseOrderTodoDao purchaseOrderTodoDao;
+
+	@Autowired
+	private PurchaseOrderEndDao purchaseOrderEndDao;
+
 	@Autowired
 	@Autowired
 	private PurchaseOrderReplyDao purchaseOrderReplyDao;
 	private PurchaseOrderReplyDao purchaseOrderReplyDao;
 
 
@@ -63,9 +73,9 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 		for (PurchaseOrderAllItem orderItem : newOrderItems) {
 		for (PurchaseOrderAllItem orderItem : newOrderItems) {
 			if (!orderId.contains(orderItem.getOrder().getId())) {
 			if (!orderId.contains(orderItem.getOrder().getId())) {
 				if (orderItem.getOrder().getVendUserUU() != null) {
 				if (orderItem.getOrder().getVendUserUU() != null) {
-					//如果采购单单据存在客户联系人UU且UU正确--->客户联系人UU
-					//如果不存在,但是平台中企业供应商资料存在供应商联系人UU--->平台中供应商资料中的联系人UU
-					//否则不推送
+					// 如果采购单单据存在客户联系人UU且UU正确--->客户联系人UU
+					// 如果不存在,但是平台中企业供应商资料存在供应商联系人UU--->平台中供应商资料中的联系人UU
+					// 否则不推送
 					// Android
 					// Android
 					XingePusher.pushSingleAccountAndroid(orderItem.getOrder().getVendUserUU().toString(), "新增一条客户采购单", "单号:"
 					XingePusher.pushSingleAccountAndroid(orderItem.getOrder().getVendUserUU().toString(), "新增一条客户采购单", "单号:"
 							+ orderItem.getOrder().getCode() + ",客户:" + orderItem.getOrder().getEnterprise().getEnName(),
 							+ orderItem.getOrder().getCode() + ",客户:" + orderItem.getOrder().getEnterprise().getEnName(),
@@ -269,4 +279,26 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 				.getCountByVendUUAndStatus(SystemSession.getUser().getEnterprise().getUu(), (short) Status.NOT_REPLY.value());
 				.getCountByVendUUAndStatus(SystemSession.getUser().getEnterprise().getUu(), (short) Status.NOT_REPLY.value());
 	}
 	}
 
 
+	@Override
+	public Page<PurchaseOrderTodo> findTodoByPageInfo(final PageInfo pageInfo) {
+		return purchaseOrderTodoDao.findAll(new Specification<PurchaseOrderTodo>() {
+
+			public Predicate toPredicate(Root<PurchaseOrderTodo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+				query.where(pageInfo.getPredicates(root, builder));
+				return null;
+			}
+		}, pageInfo);
+	}
+
+	@Override
+	public Page<PurchaseOrderEnd> findEndByPageInfo(final PageInfo pageInfo) {
+		return purchaseOrderEndDao.findAll(new Specification<PurchaseOrderEnd>() {
+
+			public Predicate toPredicate(Root<PurchaseOrderEnd> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+				query.where(pageInfo.getPredicates(root, builder));
+				return null;
+			}
+		}, pageInfo);
+	}
+
 }
 }

+ 4 - 13
src/main/webapp/resources/js/index/app.js

@@ -344,16 +344,13 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ui.
 			count : 5, // count per page
 			count : 5, // count per page
 			sorting: {
 			sorting: {
                 date: 'desc' 
                 date: 'desc' 
-            },
-            filter: {
-            	'status' : 200
             }
             }
 		}, {
 		}, {
 			total : 0, 
 			total : 0, 
 			counts: [5, 10, 25, 50],
 			counts: [5, 10, 25, 50],
 			getData : function($defer, params) {
 			getData : function($defer, params) {
 				$scope.loading = true;
 				$scope.loading = true;
-				PurcOrderItem.get(parseParams(params.url()), function(page){
+				PurcOrderItem.getTodo(parseParams(params.url()), function(page){
 					$scope.loading = false;
 					$scope.loading = false;
 					if(page) {
 					if(page) {
 						params.total(page.totalElements);
 						params.total(page.totalElements);
@@ -422,16 +419,13 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ui.
 			count : 5,
 			count : 5,
 			sorting: {
 			sorting: {
                 date: 'desc' 
                 date: 'desc' 
-            },
-            filter: {
-            	'status' : 200
             }
             }
 		}, {
 		}, {
 			total : 0, 
 			total : 0, 
 			counts: [5, 10, 25, 50],
 			counts: [5, 10, 25, 50],
 			getData : function($defer, params) {
 			getData : function($defer, params) {
 				$scope.loading = true;
 				$scope.loading = true;
-				PurcChange.get(parseParams(params.url()), function(page){
+				PurcChange.getTodo(parseParams(params.url()), function(page){
 					$scope.loading = false;
 					$scope.loading = false;
 					if(page) {
 					if(page) {
 						params.total(page.totalElements);
 						params.total(page.totalElements);
@@ -569,16 +563,13 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ui.
 			count : 5,
 			count : 5,
 			sorting: {
 			sorting: {
                 'date': 'desc'
                 'date': 'desc'
-            },
-            filter: {
-            	'status' : 200
             }
             }
 		}, {
 		}, {
 			total : 0, 
 			total : 0, 
 			counts: [5, 10, 25, 50],
 			counts: [5, 10, 25, 50],
 			getData : function($defer, params) {
 			getData : function($defer, params) {
 				$scope.loading = true;
 				$scope.loading = true;
-				PurcNotice.get(parseParams(params.url()), function(page){
+				PurcNotice.getTodo(parseParams(params.url()), function(page){
 					$scope.loading = false;
 					$scope.loading = false;
 					if(page) {
 					if(page) {
 						params.total(page.totalElements);
 						params.total(page.totalElements);
@@ -596,7 +587,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ui.
 			} else {
 			} else {
 				var send = {code: notice.send.code, sendItems: [{qty: notice.send.qty}]};
 				var send = {code: notice.send.code, sendItems: [{qty: notice.send.qty}]};
 				PurcNotice.save({id: notice.id}, send, function(){
 				PurcNotice.save({id: notice.id}, send, function(){
-					toaster.pop('info', '提示', '货成功');
+					toaster.pop('info', '提示', '货成功');
 					$scope.tableParams.reload();
 					$scope.tableParams.reload();
 				}, function(response){
 				}, function(response){
 					toaster.pop('error', '失败', response);
 					toaster.pop('error', '失败', response);