Browse Source

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

administrator 11 years ago
parent
commit
10aac47188

+ 26 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderChangeDao.java

@@ -0,0 +1,26 @@
+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.PurchaseOrderChange;
+
+@Repository
+public interface PurchaseOrderChangeDao extends JpaSpecificationExecutor<PurchaseOrderChange>, JpaRepository<PurchaseOrderChange, Long> {
+	/**
+	 * (买家)按回复的状态查找变更单回复信息
+	 * 
+	 * @param enUU
+	 * @param status
+	 * @param sendStatus
+	 * @return
+	 */
+	@Query("from PurchaseOrderChange r where r.order.enUU = :enUU and r.status = :status and r.backStatus = :backStatus")
+	public List<PurchaseOrderChange> findByEnUUAndStatusAndBackStatus(@Param("enUU") long enUU, @Param("status") short status,
+			@Param("sendStatus") short sendStatus);
+}

+ 27 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderChangeItemDao.java

@@ -0,0 +1,27 @@
+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.PurchaseOrderChangeItem;
+
+@Repository
+public interface PurchaseOrderChangeItemDao extends JpaSpecificationExecutor<PurchaseOrderChangeItem>,
+		JpaRepository<PurchaseOrderChangeItem, Long> {
+
+	/**
+	 * 按变更单明细状态查找变更单明细
+	 * 
+	 * @param changeId
+	 * @param status
+	 * @return
+	 */
+	@Query("from PurchaseOrderChangeItem d where d.orderChange.id = :changeId and d.status = :status")
+	public List<PurchaseOrderChangeItem> findByChangeIdAndStatus(@Param("changeId") long changeId, @Param("status") short status);
+
+}

+ 24 - 0
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseChangeController.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.uas.platform.b2b.erp.model.PurchaseChange;
+import com.uas.platform.b2b.erp.model.PurchaseChangeReply;
 import com.uas.platform.b2b.erp.service.PurchaseChangeService;
 import com.uas.platform.b2b.service.PurchaseOrderChangeService;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
@@ -48,4 +49,27 @@ public class PurchaseChangeController {
 		purchaseOrderChangeService.save(purchaseChangeService.convertPurchaseChange(changes));
 	}
 
+	/**
+	 * 从买家ERP获取平台的变更单的回复信息
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/reply", method = RequestMethod.GET)
+	@ResponseBody
+	public List<PurchaseChangeReply> getReply() {
+		return purchaseChangeService.convertPurchaseOrderChangeReply(purchaseOrderChangeService.findNotUploadReply());
+	}
+
+	/**
+	 * 平台的变更单回复信息传到ERP之后,修改平台里面的变更单的回复状态
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value = "/reply", method = RequestMethod.POST)
+	@ResponseBody
+	public void onReplySuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		purchaseOrderChangeService.onReplyUploadSuccess(URLDecoder.decode(data, "UTF-8").split(","));
+	}
+
 }

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

@@ -50,7 +50,7 @@ public class PurchaseController {
 	}
 
 	/**
-	 * 从ERP获取平台的订单回复
+	 * 从买家ERP获取平台的订单回复
 	 * 
 	 * @return
 	 */

+ 3 - 3
src/main/java/com/uas/platform/b2b/erp/controller/SaleController.java → src/main/java/com/uas/platform/b2b/erp/controller/SaleDownController.java

@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.uas.platform.b2b.erp.model.SaleDown;
 import com.uas.platform.b2b.erp.model.SaleReply;
-import com.uas.platform.b2b.erp.service.SaleService;
+import com.uas.platform.b2b.erp.service.SaleDownService;
 import com.uas.platform.b2b.service.PurchaseOrderService;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 
@@ -25,10 +25,10 @@ import com.uas.platform.core.util.serializer.FlexJsonUtils;
  */
 @Controller
 @RequestMapping("/erp/sale")
-public class SaleController {
+public class SaleDownController {
 
 	@Autowired
-	private SaleService saleService;
+	private SaleDownService saleService;
 
 	@Autowired
 	private PurchaseOrderService purchaseOrderService;

+ 58 - 0
src/main/java/com/uas/platform/b2b/erp/model/PurchaseChangeReply.java

@@ -0,0 +1,58 @@
+package com.uas.platform.b2b.erp.model;
+
+import com.uas.platform.b2b.model.PurchaseOrderChange;
+
+public class PurchaseChangeReply {
+
+	private long b2b_pc_id;
+	private String pc_code;
+
+	public long getB2b_pc_id() {
+		return b2b_pc_id;
+	}
+
+	public void setB2b_pc_id(long b2b_pc_id) {
+		this.b2b_pc_id = b2b_pc_id;
+	}
+
+	/**
+	 * 供应商是否同意了我的变更请求(1,0)
+	 */
+	private Short pc_agreed;
+	/**
+	 * 供应商的回复备注
+	 */
+	private String pc_replyremark;
+
+	public String getPc_code() {
+		return pc_code;
+	}
+
+	public void setPc_code(String pc_code) {
+		this.pc_code = pc_code;
+	}
+
+	public Short getPc_agreed() {
+		return pc_agreed;
+	}
+
+	public void setPc_agreed(Short pc_agreed) {
+		this.pc_agreed = pc_agreed;
+	}
+
+	public String getPc_replyremark() {
+		return pc_replyremark;
+	}
+
+	public void setPc_replyremark(String pc_replyremark) {
+		this.pc_replyremark = pc_replyremark;
+	}
+
+	public PurchaseChangeReply(PurchaseOrderChange orderChange) {
+		this.b2b_pc_id = orderChange.getId();
+		this.pc_code = orderChange.getCode();
+		this.pc_agreed = orderChange.getAgreed();
+		this.pc_replyremark = orderChange.getReplyRemark();
+	}
+
+}

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

@@ -91,7 +91,6 @@ public class PurchaseReply {
 	public void setB2b_pr_id(long b2b_pr_id) {
 		this.b2b_pr_id = b2b_pr_id;
 	}
-
 	/**
 	 * 从平台的回复记录转到买家ERP的回复记录
 	 * 

+ 10 - 0
src/main/java/com/uas/platform/b2b/erp/service/PurchaseChangeService.java

@@ -3,6 +3,8 @@ package com.uas.platform.b2b.erp.service;
 import java.util.List;
 
 import com.uas.platform.b2b.erp.model.PurchaseChange;
+import com.uas.platform.b2b.erp.model.PurchaseChangeReply;
+import com.uas.platform.b2b.model.PurchaseOrderChange;
 import com.uas.platform.b2b.model.PurchaseOrderChangeItem;
 
 public interface PurchaseChangeService {
@@ -15,4 +17,12 @@ public interface PurchaseChangeService {
 	 */
 	List<PurchaseOrderChangeItem> convertPurchaseChange(List<PurchaseChange> changes);
 
+	/**
+	 * 将平台的订单变更单回复信息,转为ERP的变更单回复信息
+	 * 
+	 * @param changes
+	 * @return
+	 */
+	List<PurchaseChangeReply> convertPurchaseOrderChangeReply(List<PurchaseOrderChange> changes);
+
 }

+ 1 - 1
src/main/java/com/uas/platform/b2b/erp/service/SaleService.java → src/main/java/com/uas/platform/b2b/erp/service/SaleDownService.java

@@ -7,7 +7,7 @@ import com.uas.platform.b2b.erp.model.SaleReply;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 
-public interface SaleService {
+public interface SaleDownService {
 
 	/**
 	 * 将平台里面的采购订单,转为供应商ERP的订单下达

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

@@ -11,6 +11,7 @@ import com.uas.platform.b2b.dao.ProductDao;
 import com.uas.platform.b2b.dao.PurchaseOrderDao;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.erp.model.PurchaseChange;
+import com.uas.platform.b2b.erp.model.PurchaseChangeReply;
 import com.uas.platform.b2b.erp.service.PurchaseChangeService;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.model.PurchaseOrder;
@@ -61,4 +62,12 @@ public class PurchaseChangeServiceImpl implements PurchaseChangeService {
 		return changeItems;
 	}
 
+	@Override
+	public List<PurchaseChangeReply> convertPurchaseOrderChangeReply(List<PurchaseOrderChange> changes) {
+		List<PurchaseChangeReply> replies = new ArrayList<PurchaseChangeReply>();
+		for (PurchaseOrderChange change : changes)
+			replies.add(new PurchaseChangeReply(change));
+		return replies;
+	}
+
 }

+ 2 - 2
src/main/java/com/uas/platform/b2b/erp/service/impl/SaleServiceImpl.java

@@ -10,13 +10,13 @@ import org.springframework.util.CollectionUtils;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.erp.model.SaleDown;
 import com.uas.platform.b2b.erp.model.SaleReply;
-import com.uas.platform.b2b.erp.service.SaleService;
+import com.uas.platform.b2b.erp.service.SaleDownService;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 
 @Service
-public class SaleServiceImpl implements SaleService {
+public class SaleServiceImpl implements SaleDownService {
 
 	@Autowired
 	private PurchaseOrderItemDao purchaseOrderItemDao;

+ 19 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrder.java

@@ -2,9 +2,13 @@ package com.uas.platform.b2b.model;
 
 import java.io.Serializable;
 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.OneToOne;
 import javax.persistence.Table;
 
 /**
@@ -31,6 +35,13 @@ public class PurchaseOrder implements Serializable {
 	 */
 	@Column(name = "pu_enuu")
 	private Long enUU;
+	
+	/**
+	 * 采购企业
+	 */
+	@OneToOne(cascade = { CascadeType.MERGE })
+	@JoinColumn(name = "pu_enuu", insertable = false, updatable = false)
+	private Enterprise enterprise;
 
 	/**
 	 * 采购单所属采购员UU
@@ -258,4 +269,12 @@ public class PurchaseOrder implements Serializable {
 		this.sendStatus = sendStatus;
 	}
 
+	public Enterprise getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(Enterprise enterprise) {
+		this.enterprise = enterprise;
+	}
+
 }

+ 15 - 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.model.PurchaseOrderChange;
 import com.uas.platform.b2b.model.PurchaseOrderChangeItem;
 
 public interface PurchaseOrderChangeService {
@@ -14,4 +15,18 @@ public interface PurchaseOrderChangeService {
 	 */
 	public void save(List<PurchaseOrderChangeItem> changeItems);
 
+	/**
+	 * 已回复,未上传到买家ERP的变更单回复信息
+	 * 
+	 * @return
+	 */
+	public List<PurchaseOrderChange> findNotUploadReply();
+	
+	/**
+	 * 回复信息成功传到买家ERP之后
+	 * 
+	 * @param idArray
+	 */
+	public void onReplyUploadSuccess(String[] idArray);
+
 }

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

@@ -0,0 +1,65 @@
+package com.uas.platform.b2b.service.impl;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.uas.platform.b2b.dao.PurchaseOrderChangeDao;
+import com.uas.platform.b2b.dao.PurchaseOrderChangeItemDao;
+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.service.PurchaseOrderChangeService;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.support.XingePusher;
+import com.uas.platform.core.model.Status;
+
+@Service
+public class PurchaseOrderChangeServiceImpl implements PurchaseOrderChangeService {
+
+	@Autowired
+	private PurchaseOrderChangeDao purchaseOrderChangeDao;
+
+	@Autowired
+	private PurchaseOrderChangeItemDao purchaseOrderChangeItemDao;
+
+	@Override
+	public void save(List<PurchaseOrderChangeItem> changeItems) {
+		purchaseOrderChangeItemDao.save(changeItems);
+		// 将采购变更单信息推送通知供应商管理员UU号
+		Set<Long> orderId = new HashSet<Long>();
+		for (PurchaseOrderChangeItem orderItem : changeItems) {
+			if (!orderId.contains(orderItem.getOrderChange().getId())) {
+				PurchaseOrder order = orderItem.getOrderChange().getOrder();
+				// Android
+				XingePusher.pushSingleAccountAndroid(order.getVendUserUU().toString(), "新增一条客户采购变更单-", "单号:"
+						+ orderItem.getOrderChange().getCode() + ",客户:" + order.getEnterprise().getEnName());
+				// IOS
+				XingePusher.pushSingleAccountIOS(order.getVendUserUU().toString(), "新增一条客户采购变更单-" + "单号:"
+						+ orderItem.getOrderChange().getCode() + ",客户:" + order.getEnterprise().getEnName());
+				orderId.add(orderItem.getOrderChange().getId());
+			}
+		}
+	}
+
+	@Override
+	public List<PurchaseOrderChange> findNotUploadReply() {
+		return purchaseOrderChangeDao.findByEnUUAndStatusAndBackStatus(SystemSession.getUser().getEnterprise().getUu(),
+				(short) Status.REPLIED.value(), (short) Status.NOT_UPLOAD.value());
+	}
+
+	@Override
+	public void onReplyUploadSuccess(String[] idArray) {
+		for (String id : idArray) {
+			PurchaseOrderChange change = purchaseOrderChangeDao.findOne(Long.parseLong(id));
+			if (change != null) {
+				change.setBackStatus((short) Status.DOWNLOADED.value());
+				purchaseOrderChangeDao.save(change);
+			}
+		}
+	}
+
+}

+ 0 - 1
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -73,7 +73,6 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 				orderId.add(orderItem.getOrder().getId());
 			}
 		}
-		
 	}
 
 	public Page<PurchaseOrder> findAllByPageInfo(final PageInfo pageInfo) {