Browse Source

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

administrator 11 years ago
parent
commit
84b96fa2d5

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

@@ -1,5 +1,7 @@
 package com.uas.platform.b2b.controller;
 
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.http.HttpStatus;
@@ -74,6 +76,7 @@ public class SaleOrderController {
 	 * 作为卖家,回复收到的采购订单
 	 * 
 	 * @param json
+	 * @param orderItemId
 	 * @return
 	 */
 	@RequestMapping(value = "/orders/items/{orderItemId}/reply", method = RequestMethod.POST)
@@ -86,15 +89,26 @@ public class SaleOrderController {
 		return new ResponseEntity<String>(HttpStatus.OK);
 	}
 	
+	/**
+	 * 作为卖家,查看我的回复
+	 * 
+	 * @param orderItemId 订单明细行ID
+	 * @return
+	 */
+	@RequestMapping(value = "/orders/items/{orderItemId}/reply", method = RequestMethod.GET)
+	public List<PurchaseReply> getPurchaseReply(@PathVariable("orderItemId") Long orderItemId) {
+		return purchaseOrderService.findReplyByOrderItem(orderItemId);
+	}
+	
 	/**
 	 * 作为卖家,批量回复采购订单
 	 * 
-	 * @param json
+	 * @param idString
 	 * @return
 	 */
 	@RequestMapping(value = "/orders/items/reply", method = RequestMethod.POST)
-	public ResponseEntity<String> replyOrderItemByBatch(@RequestBody String idString) {
-		purchaseOrderService.replyByBatch(idString.split(","));
+	public ResponseEntity<String> replyOrderItems(@RequestBody String idString) {
+		purchaseOrderService.reply(idString.split(","));
 		return new ResponseEntity<String>(HttpStatus.OK);
 	}
 }

+ 14 - 3
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderAllDao.java

@@ -9,10 +9,21 @@ import org.springframework.stereotype.Repository;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 
 @Repository
-public interface PurchaseOrderAllDao extends JpaSpecificationExecutor<PurchaseOrderAll>, JpaRepository<PurchaseOrderAll, Long> {
+public interface PurchaseOrderAllDao extends JpaSpecificationExecutor<PurchaseOrderAll>,
+		JpaRepository<PurchaseOrderAll, Long> {
 
-	public List<PurchaseOrderAll> findPurchaseOrderAllByCode(String code);
+	/**
+	 * @param code
+	 *            订单号
+	 * @return
+	 */
+	public List<PurchaseOrderAll> findByCode(String code);
 
-	public List<PurchaseOrderAll> findPurchaseOrderAllById(Long id);
+	/**
+	 * @param id
+	 *            订单ID
+	 * @return
+	 */
+	public List<PurchaseOrderAll> findById(Long id);
 
 }

+ 13 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseReplyDao.java

@@ -1,12 +1,25 @@
 package com.uas.platform.b2b.dao;
 
+import java.util.List;
+
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import com.uas.platform.b2b.model.PurchaseReply;
 
 @Repository
 public interface PurchaseReplyDao extends JpaSpecificationExecutor<PurchaseReply>, JpaRepository<PurchaseReply, Long> {
+	
+	/**
+	 * 按订单明细状态查找订单明细
+	 * 
+	 * @param orderItemId
+	 * @return
+	 */
+	@Query("from PurchaseReply r where r.orderItem.id = :orderItemId")
+	public List<PurchaseReply> findByOrderItemId(@Param("orderItemId") long orderItemId);
 
 }

+ 3 - 41
src/main/java/com/uas/platform/b2b/model/PurchaseOrder.java

@@ -2,20 +2,13 @@ package com.uas.platform.b2b.model;
 
 import java.io.Serializable;
 import java.sql.Date;
-import java.util.List;
-
-//import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
-//import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
-//import javax.persistence.OneToMany;
-//import javax.persistence.OrderBy;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
-import javax.persistence.Transient;
 
 @Table(name = "purc$orders")
 @Entity
@@ -104,25 +97,11 @@ public class PurchaseOrder implements Serializable {
 	@Column(name = "pu_payments")
 	private String payments;
 
-	/**
-	 * 回复状态
-	 */
-	@Column(name = "pu_reply")
-	private String reply;
-	
 	/**
 	 * 采购单状态
 	 */
 	@Column(name = "pu_status")
-	private String status;
-
-	/**
-	 * 采购单明细
-	 */
-//	@OneToMany(cascade = CascadeType.ALL, mappedBy = "order", fetch=FetchType.EAGER)
-//	@OrderBy("pd_number")
-	@Transient
-	private List<PurchaseOrderItem> orderItems;
+	private Short status;
 
 	public Long getId() {
 		return id;
@@ -228,29 +207,12 @@ public class PurchaseOrder implements Serializable {
 		this.payments = payments;
 	}
 
-	public String getStatus() {
+	public Short getStatus() {
 		return status;
 	}
 
-	public void setStatus(String status) {
+	public void setStatus(Short status) {
 		this.status = status;
 	}
 
-	public List<PurchaseOrderItem> getOrderItems() {
-		return orderItems;
-	}
-
-	public void setOrderItems(List<PurchaseOrderItem> orderItems) {
-		this.orderItems = orderItems;
-	}
-
-	public String getReply() {
-		return reply;
-	}
-
-	public void setReply(String reply) {
-		this.reply = reply;
-	}
-	
-	
 }

+ 4 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseOrderAll.java

@@ -14,12 +14,14 @@ import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
 import javax.persistence.Table;
 
+import org.hibernate.annotations.Where;
+
 /**
  * 以供应商的角度来查看采购订单 <br>
  * 级联采购明细
  * 
  * @author yingp
- *
+ * 
  */
 @Table(name = "purc$orders")
 @Entity
@@ -112,6 +114,7 @@ public class PurchaseOrderAll {
 	 * 采购单明细
 	 */
 	@OneToMany(mappedBy = "order", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+	@Where(clause = "pd_status = 200")
 	@OrderBy("pd_number")
 	private Set<PurchaseOrderAllItem> orderItems;
 

+ 2 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseReply.java

@@ -11,6 +11,7 @@ import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
+import javax.persistence.OrderBy;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
@@ -40,6 +41,7 @@ public class PurchaseReply implements Serializable {
 	 * 回复时日期
 	 */
 	@Column(name = "pr_date")
+	@OrderBy
 	private Date date;
 
 	/**

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

@@ -1,5 +1,7 @@
 package com.uas.platform.b2b.service;
 
+import java.util.List;
+
 import org.springframework.data.domain.Page;
 
 import com.uas.platform.b2b.model.PurchaseOrder;
@@ -9,24 +11,60 @@ import com.uas.platform.core.model.PageInfo;
 
 public interface PurchaseOrderService {
 
+	/**
+	 * 分页查找订单
+	 * 
+	 * @param pageInfo
+	 * @return
+	 */
 	public Page<PurchaseOrder> findAllByPageInfo(PageInfo pageInfo);
-	
+
+	/**
+	 * 分页查找订单,包括明细
+	 * 
+	 * @param pageInfo
+	 * @return
+	 */
 	public Page<PurchaseOrderAll> findAllDetailByPageInfo(PageInfo pageInfo);
-	
+
+	/**
+	 * 用订单号查找订单
+	 * 
+	 * @param code
+	 * @return
+	 */
 	public PurchaseOrderAll findByCode(String code);
-	
+
+	/**
+	 * 用订单ID查找订单
+	 * 
+	 * @param id
+	 * @return
+	 */
 	public PurchaseOrderAll findById(Long id);
-	
+
 	/**
 	 * 回复单个明细
+	 * 
 	 * @param reply
 	 */
 	public void reply(PurchaseReply reply);
-	
+
 	/**
 	 * 批量回复
-	 * @param str 回复的明细ID的字符串数组
+	 * 
+	 * @param orderItemIdString
+	 *            回复的明细ID的字符串数组
+	 */
+	public void reply(String[] orderItemIdString);
+
+	/**
+	 * 查找订单明细的回复记录
+	 * 
+	 * @param orderItemId
+	 *            订单明细ID
+	 * @return
 	 */
-	public void replyByBatch(String[] str);
+	public List<PurchaseReply> findReplyByOrderItem(long orderItemId);
 
-}
+}

+ 22 - 19
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -11,7 +11,6 @@ import javax.persistence.criteria.Root;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -25,6 +24,7 @@ import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseReply;
 import com.uas.platform.b2b.service.PurchaseOrderService;
 import com.uas.platform.core.exception.IllegalOperatorException;
+import com.uas.platform.core.exception.NotFoundException;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
 
@@ -77,51 +77,54 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 		if (item.getReplyQty() > item.getQty())
 			throw new IllegalOperatorException("回复的数量合计超过了订单数量");
 		// 该行回复状态
-		item.setStatus((short) (Double.compare(item.getReplyQty(), item.getQty()) == 0 ? Status.REPLIED.value() : Status.NOT_REPLY.value()));
+		item.setStatus((short) (Double.compare(item.getReplyQty(), item.getQty()) == 0 ? Status.REPLIED.value()
+				: Status.NOT_REPLY.value()));
 		purchaseReplyDao.save(reply);
 		purchaseOrderItemDao.save(item);
 		// 订单主记录状态
-		List<PurchaseOrderItem> notReply = purchaseOrderItemDao.findByOrderIdAndStatus(item.getOrder().getId(), (short)Status.NOT_REPLY.value());
-//		PurchaseOrder order = purchaseOrderDao.findOne(item.getOrder().getId());
-//		order.setStatus((short) (notReply.size() > 0 ? Status.NOT_REPLY.value() : Status.REPLIED.value()));
-//		purchaseOrderAllDao.save(order);
+		List<PurchaseOrderItem> notReply = purchaseOrderItemDao.findByOrderIdAndStatus(item.getOrder().getId(),
+				(short) Status.NOT_REPLY.value());
+		PurchaseOrder order = purchaseOrderDao.findOne(item.getOrder().getId());
+		order.setStatus((short) (notReply.size() > 0 ? Status.NOT_REPLY.value() : Status.REPLIED.value()));
+		purchaseOrderDao.save(order);
 	}
 
 	@Override
 	public PurchaseOrderAll findByCode(String code) {
-		List<PurchaseOrderAll> purchaseOrderAlls = purchaseOrderAllDao.findPurchaseOrderAllByCode(code);
-		if (purchaseOrderAlls.size() == 0) {
-			throw new UsernameNotFoundException("没有找到对应单据号的PO-" + code);
-		}
+		List<PurchaseOrderAll> purchaseOrderAlls = purchaseOrderAllDao.findByCode(code);
+		if (purchaseOrderAlls.size() == 0)
+			throw new NotFoundException(code);
 		return purchaseOrderAlls.get(0);
 	}
 
 	@Override
 	public PurchaseOrderAll findById(Long id) {
-		List<PurchaseOrderAll> purchaseOrderAlls = purchaseOrderAllDao.findPurchaseOrderAllById(id);
-		if (purchaseOrderAlls.size() == 0) {
-			throw new UsernameNotFoundException("没有找到对应单据Id的PO-" + id);
-		}
+		List<PurchaseOrderAll> purchaseOrderAlls = purchaseOrderAllDao.findById(id);
+		if (purchaseOrderAlls.size() == 0)
+			throw new NotFoundException();
 		return purchaseOrderAlls.get(0);
 	}
 
 	@Override
-	public void replyByBatch(String[] str) {
+	public void reply(String[] orderItemIdString) {
 		PurchaseOrderItem orderItem;
-		for (String s : str) {
-			System.out.println(s);
-			orderItem = purchaseOrderItemDao.findOne(Long.parseLong(s));
+		for (String orderItemId : orderItemIdString) {
+			orderItem = purchaseOrderItemDao.findOne(Long.parseLong(orderItemId));
 			PurchaseReply purchaseReply = new PurchaseReply();
 			purchaseReply.setOrderItem(orderItem);
 			purchaseReply.setDelivery(orderItem.getDelivery());
 			purchaseReply.setRemark("批量回复");
 			if (orderItem.getReplyQty() == null)
 				orderItem.setReplyQty((double) 0);
-			System.out.println("orderItem.getReplyQty():" + orderItem.getReplyQty());
 			purchaseReply.setQty(orderItem.getQty() - orderItem.getReplyQty());
 			reply(purchaseReply);
 		}
 
 	}
 
+	@Override
+	public List<PurchaseReply> findReplyByOrderItem(long orderItemId) {
+		return purchaseReplyDao.findByOrderItemId(orderItemId);
+	}
+
 }

+ 4 - 0
src/main/webapp/WEB-INF/views/normal/index.html

@@ -12,6 +12,7 @@
 <link rel="stylesheet" href="static/lib/bootstrap/css/bootstrap.min.css" />
 <link rel="stylesheet"
 	href="static/lib/fontawesome/css/font-awesome.min.css" />
+<link rel="stylesheet" href="static/lib/angular/toaster.css" />
 <link rel="stylesheet" href="static/css/index.css" />
 </head>
 <body>
@@ -267,6 +268,9 @@
 		</div>
 	</div>
 	<!-- footer End -->
+	<!-- 消息提示框  Start-->
+	<toaster-container
+		toaster-options="{'position-class': 'toast-top-center'}"></toaster-container>
 	<script type="text/javascript" src="static/lib/require.js"
 		data-main="static/js/index/main.js"></script>
 </body>

+ 3 - 3
src/main/webapp/resources/js/index/app.js

@@ -336,9 +336,9 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/PurcOrder',
 				}
 				PurcOrderItem.reply({orderItemId: item.id}, reply, function(){
 					toaster.pop('info', '提示', '回复成功');
-//					$scope.tableParams.reload();
-				}, function(responseText){
-					toaster.pop('error', '回复失败', responseText);
+					$scope.tableParams.reload();
+				}, function(response){
+					toaster.pop('error', '回复失败', response.data);
 				});
 			}
 		};