Преглед на файлове

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

administrator преди 11 години
родител
ревизия
14d5a3b83a

+ 16 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderChange.java

@@ -19,6 +19,7 @@ import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 import org.codehaus.jackson.annotate.JsonIgnore;
+import org.springframework.util.StringUtils;
 
 import com.uas.platform.core.model.Constant;
 
@@ -308,4 +309,19 @@ public class PurchaseOrderChange implements Serializable {
 		return this.agreed != null && Constant.YES == this.agreed;
 	}
 
+	/**
+	 * 变更信息转入到采购订单
+	 * 
+	 * @return
+	 */
+	public PurchaseOrder convert() {
+		if (StringUtils.hasText(this.newPayments))
+			this.order.setPayments(this.newPayments);
+		if (StringUtils.hasText(this.newCurrency)) {
+			this.order.setCurrency(this.newCurrency);
+			this.order.setRate(this.newRate);
+		}
+		return this.order;
+	}
+
 }

+ 21 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderChangeItem.java

@@ -192,4 +192,25 @@ public class PurchaseOrderChangeItem {
 		this.remark = remark;
 	}
 
+	/**
+	 * 变更明细转入到采购订单明细
+	 * 
+	 * @return
+	 */
+	public PurchaseOrderItem convert() {
+		if (this.newDelivery != null)
+			this.orderItem.setDelivery(this.newDelivery);
+		if (this.newPrice != null)
+			this.orderItem.setPrice(this.newPrice);
+		if (this.newQty != null && this.newQty > 0)
+			this.orderItem.setQty(this.newQty);
+		if (this.newTaxrate != null)
+			this.orderItem.setTaxrate(this.newTaxrate);
+		if (this.newProduct != null) {
+			this.orderItem.setProduct(this.newProduct);
+			this.orderItem.setProductId(this.newProductId);
+		}
+		return this.orderItem;
+	}
+
 }

+ 5 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java

@@ -26,6 +26,7 @@ import com.uas.platform.b2b.model.PurchaseInquiryReply;
 import com.uas.platform.b2b.service.PurchaseInquiryService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.XingePusher;
+import com.uas.platform.core.exception.IllegalStatusException;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
 
@@ -106,6 +107,7 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 				item.setMinPackQty(down.getQu_minqty());
 				item.setVendFromDate(down.getQu_fromdate());
 				item.setVendToDate(down.getQu_todate());
+				item.setStatus((short) Status.REPLIED.value());
 				item.setBackStatus((short) Status.NOT_UPLOAD.value());
 				item.setReplySendStatus((short) Status.DOWNLOADED.value());
 				item.setRemark(String.valueOf(System.currentTimeMillis()));
@@ -184,6 +186,9 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 
 	@Override
 	public void reply(PurchaseInquiryItem inquiryItem) {
+		PurchaseInquiryItem item = purchaseInquiryItemDao.findOne(inquiryItem.getId());
+		if (item.getStatus() == Status.REPLIED.value() || item.getReplySendStatus() == Status.DOWNLOADED.value())
+			throw new IllegalStatusException("该询价单已经报价,不允许再次报价");
 		inquiryItem.setStatus((short) Status.REPLIED.value());
 		inquiryItem.setBackStatus((short) Status.NOT_UPLOAD.value());
 		inquiryItem.setReplySendStatus((short) Status.NOT_UPLOAD.value());

+ 4 - 17
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderChangeServiceImpl.java

@@ -24,7 +24,6 @@ import com.uas.platform.b2b.erp.model.SaleDownChangeReply;
 import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrderChange;
 import com.uas.platform.b2b.model.PurchaseOrderChangeItem;
-import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.service.PurchaseOrderChangeService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.XingePusher;
@@ -98,22 +97,10 @@ public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeServic
 	 * @param change
 	 */
 	private void changeOrder(PurchaseOrderChange change) {
-		PurchaseOrder order = change.getOrder();
-		order.setCurrency(change.getNewCurrency());
-		order.setRate(change.getNewRate());
-		order.setPayments(change.getNewPayments());
-		purchaseOrderDao.save(order);
+		purchaseOrderDao.save(change.convert());
 		if (!CollectionUtils.isEmpty(change.getOrderChangeItems())) {
-			for (PurchaseOrderChangeItem changeItem : change.getOrderChangeItems()) {
-				PurchaseOrderItem orderItem = changeItem.getOrderItem();
-				orderItem.setDelivery(changeItem.getNewDelivery());
-				orderItem.setPrice(changeItem.getNewPrice());
-				orderItem.setQty(changeItem.getNewQty());
-				orderItem.setTaxrate(changeItem.getNewTaxrate());
-				orderItem.setProductId(changeItem.getNewProductId());
-				orderItem.setProduct(changeItem.getNewProduct());
-				purchaseOrderItemDao.save(orderItem);
-			}
+			for (PurchaseOrderChangeItem changeItem : change.getOrderChangeItems())
+				purchaseOrderItemDao.save(changeItem.convert());
 		}
 	}
 
@@ -194,8 +181,8 @@ public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeServic
 		if (isB2b)
 			orderChange.setReplySendStatus((short) Status.NOT_UPLOAD.value());
 		purchaseOrderChangeDao.save(orderChange);
-		// 将回复信息推送给采购企业采购员(或管理员)
 		PurchaseOrder order = orderChange.getOrder();
+		// 将回复信息推送给采购企业采购员(或管理员)
 		if (order.getUserUU() != null) {
 			// Android
 			XingePusher.pushSingleAccountAndroid(order.getUserUU().toString(), "新增采购变更单回复", "单号:" + order.getCode() + ",供应商:"