Pārlūkot izejas kodu

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

administrator 11 gadi atpakaļ
vecāks
revīzija
c5612ee121

+ 17 - 2
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderChangeDao.java

@@ -29,10 +29,25 @@ public interface PurchaseOrderChangeDao extends JpaSpecificationExecutor<Purchas
 	 * 
 	 * @param vendUU
 	 *            卖方企业ID
-	 * @param status
-	 *            状态
+	 * @param sendStatus
+	 *            上传到卖家ERP的状态
 	 * @return
 	 */
 	@Query("from PurchaseOrderChange r where r.order.vendUU = :vendUU and r.sendStatus = :sendStatus")
 	public List<PurchaseOrderChange> findByVendUUAndSendStatus(@Param("vendUU") long vendUU, @Param("sendStatus") short sendStatus);
+
+	/**
+	 * 卖家按回复信息上传状态查找变更单
+	 * 
+	 * @param vendUU
+	 *            卖方企业ID
+	 * @param status
+	 *            是否已回复的状态
+	 * @param replySendStatus
+	 *            回复信息上传到卖家ERP的状态
+	 * @return
+	 */
+	@Query("from PurchaseOrderChange r where r.order.vendUU = :vendUU and r.status = :status and r.replySendStatus = :replySendStatus")
+	public List<PurchaseOrderChange> findByVendUUAndStatusAndReplySendStatus(@Param("vendUU") long vendUU, @Param("status") short status,
+			@Param("replySendStatus") short replySendStatus);
 }

+ 56 - 1
src/main/java/com/uas/platform/b2b/erp/controller/SaleDownChangeController.java

@@ -1,16 +1,21 @@
 package com.uas.platform.b2b.erp.controller;
 
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 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.ResponseBody;
 
 import com.uas.platform.b2b.erp.model.SaleDownChange;
+import com.uas.platform.b2b.erp.model.SaleDownChangeReply;
 import com.uas.platform.b2b.erp.service.SaleDownChangeService;
 import com.uas.platform.b2b.service.PurchaseOrderChangeService;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
 
 /**
  * 对卖家ERP的数据接口<br>
@@ -39,4 +44,54 @@ public class SaleDownChangeController {
 		return saleDownChangeService.convertPurchaseOrderChange(purchaseOrderChangeService.findNotUploadOrderChange());
 	}
 
-}
+	/**
+	 * 平台的变更单传到供应商ERP之后,修改平台里面的变更单的上传状态
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(method = RequestMethod.POST)
+	@ResponseBody
+	public void onSaleDownChangeSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		purchaseOrderChangeService.onSaleDownChangeSuccess(URLDecoder.decode(data, "UTF-8").split(","));
+	}
+
+	/**
+	 * 将卖家ERP的变更单回复信息写到平台
+	 * 
+	 * @param data
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value = "/reply", method = RequestMethod.POST)
+	@ResponseBody
+	public void saveChangeReplies(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<SaleDownChangeReply> replies = FlexJsonUtils.fromJsonArray(jsonStr, SaleDownChangeReply.class);
+		purchaseOrderChangeService.reply(replies);
+	}
+
+	/**
+	 * 卖家ERP从平台获取在平台回复的记录
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/reply", method = RequestMethod.GET)
+	@ResponseBody
+	public List<SaleDownChangeReply> getChangeReply() {
+		return saleDownChangeService.convertOrderChangeReply(purchaseOrderChangeService.findNotSendReply());
+	}
+
+	/**
+	 * 平台的回复信息传到供应商ERP之后,修改平台里面的变更单的回复信息上传状态
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value = "/reply/back", method = RequestMethod.POST)
+	@ResponseBody
+	public void onReplyDownSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		purchaseOrderChangeService.onSaleDownChangeReplySuccess(URLDecoder.decode(data, "UTF-8").split(","));
+	}
+
+}

+ 9 - 0
src/main/java/com/uas/platform/b2b/erp/service/SaleDownChangeService.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.erp.service;
 import java.util.List;
 
 import com.uas.platform.b2b.erp.model.SaleDownChange;
+import com.uas.platform.b2b.erp.model.SaleDownChangeReply;
 import com.uas.platform.b2b.model.PurchaseOrderChange;
 
 public interface SaleDownChangeService {
@@ -15,4 +16,12 @@ public interface SaleDownChangeService {
 	 */
 	List<SaleDownChange> convertPurchaseOrderChange(List<PurchaseOrderChange> orderChanges);
 
+	/**
+	 * 将供应商在平台的回复,转为ERP的变更单回复
+	 * 
+	 * @param changes
+	 * @return
+	 */
+	List<SaleDownChangeReply> convertOrderChangeReply(List<PurchaseOrderChange> changes);
+
 }

+ 11 - 1
src/main/java/com/uas/platform/b2b/erp/service/impl/SaleDownChangeServiceImpl.java

@@ -6,6 +6,7 @@ import java.util.List;
 import org.springframework.stereotype.Service;
 
 import com.uas.platform.b2b.erp.model.SaleDownChange;
+import com.uas.platform.b2b.erp.model.SaleDownChangeReply;
 import com.uas.platform.b2b.erp.service.SaleDownChangeService;
 import com.uas.platform.b2b.model.PurchaseOrderChange;
 
@@ -20,4 +21,13 @@ public class SaleDownChangeServiceImpl implements SaleDownChangeService {
 		return changes;
 	}
 
-}
+	@Override
+	public List<SaleDownChangeReply> convertOrderChangeReply(List<PurchaseOrderChange> changes) {
+		List<SaleDownChangeReply> replies = new ArrayList<SaleDownChangeReply>();
+		for (PurchaseOrderChange change : changes) {
+			replies.add(new SaleDownChangeReply(change));
+		}
+		return replies;
+	}
+
+}

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

@@ -81,6 +81,12 @@ public class PurchaseOrderChange implements Serializable {
 	 */
 	@Column(name = "pc_sendstatus")
 	private Short sendStatus;
+	
+	/**
+	 * 从平台传回复内容到供应商ERP的状态
+	 */
+	@Column(name = "pc_replySendstatus")
+	private Short replySendStatus;
 
 	/**
 	 * 状态(未回复、已回复)
@@ -274,4 +280,12 @@ public class PurchaseOrderChange implements Serializable {
 		this.backStatus = backStatus;
 	}
 
+	public Short getReplySendStatus() {
+		return replySendStatus;
+	}
+
+	public void setReplySendStatus(Short replySendStatus) {
+		this.replySendStatus = replySendStatus;
+	}
+
 }

+ 29 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseOrderChangeService.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.service;
 
 import java.util.List;
 
+import com.uas.platform.b2b.erp.model.SaleDownChangeReply;
 import com.uas.platform.b2b.model.PurchaseOrderChange;
 import com.uas.platform.b2b.model.PurchaseOrderChangeItem;
 
@@ -36,4 +37,32 @@ public interface PurchaseOrderChangeService {
 	 */
 	public List<PurchaseOrderChange> findNotUploadOrderChange();
 
+	/**
+	 * 平台的变更单传到供应商ERP之后,修改平台里面的变更单的上传状态
+	 * 
+	 * @param idArray
+	 */
+	public void onSaleDownChangeSuccess(String[] idArray);
+
+	/**
+	 * 来自供应商ERP端的批量回复
+	 * 
+	 * @param replies
+	 */
+	public void reply(List<SaleDownChangeReply> replies);
+
+	/**
+	 * 查找所有在平台回复的,待上传到卖家ERP的回复记录
+	 * 
+	 * @return
+	 */
+	public List<PurchaseOrderChange> findNotSendReply();
+
+	/**
+	 * 平台的变更单回复传到供应商ERP之后,修改平台里面的变更单的回复信息上传状态
+	 * 
+	 * @param idArray
+	 */
+	public void onSaleDownChangeReplySuccess(String[] idArray);
+
 }

+ 43 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderChangeServiceImpl.java

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
 
 import com.uas.platform.b2b.dao.PurchaseOrderChangeDao;
 import com.uas.platform.b2b.dao.PurchaseOrderChangeItemDao;
+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;
@@ -68,4 +69,46 @@ public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeServic
 				(short) Status.NOT_UPLOAD.value());
 	}
 
+	@Override
+	public void onSaleDownChangeSuccess(String[] idArray) {
+		for (String id : idArray) {
+			PurchaseOrderChange order = purchaseOrderChangeDao.findOne(Long.parseLong(id));
+			if (order != null) {
+				order.setSendStatus((short) Status.DOWNLOADED.value());
+				purchaseOrderChangeDao.save(order);
+			}
+		}
+	}
+
+	@Override
+	public void reply(List<SaleDownChangeReply> replies) {
+		for (SaleDownChangeReply reply : replies) {
+			PurchaseOrderChange orderChange = purchaseOrderChangeDao.findOne(reply.getB2b_pc_id());
+			if (orderChange != null) {
+				orderChange.setAgreed(reply.getSc_agreed());
+				orderChange.setReplyRemark(reply.getSc_replyremark());
+				orderChange.setStatus((short) Status.REPLIED.value());
+				orderChange.setReplySendStatus((short) Status.DOWNLOADED.value());
+				purchaseOrderChangeDao.save(orderChange);
+			}
+		}
+	}
+
+	@Override
+	public List<PurchaseOrderChange> findNotSendReply() {
+		return purchaseOrderChangeDao.findByVendUUAndStatusAndReplySendStatus(SystemSession.getUser().getEnterprise().getUu(),
+				(short) Status.REPLIED.value(), (short) Status.NOT_UPLOAD.value());
+	}
+
+	@Override
+	public void onSaleDownChangeReplySuccess(String[] idArray) {
+		for (String id : idArray) {
+			PurchaseOrderChange change = purchaseOrderChangeDao.findOne(Long.parseLong(id));
+			if (change != null) {
+				change.setReplySendStatus((short) Status.DOWNLOADED.value());
+				purchaseOrderChangeDao.save(change);
+			}
+		}
+	}
+
 }