Browse Source

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

administrator 11 years ago
parent
commit
25878c38ce

+ 10 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderItemDao.java

@@ -33,4 +33,14 @@ public interface PurchaseOrderItemDao extends JpaSpecificationExecutor<PurchaseO
 	@Query("from PurchaseOrderItem d where d.order.enUU = :enUU and d.order.code = :orderCode and d.number = :number")
 	public List<PurchaseOrderItem> findByEnUUAndOrderCodeAndNumber(@Param("enUU") long enUU, @Param("orderCode") String orderCode,
 			@Param("number") Short number);
+
+	/**
+	 * 按供应商ID和结案、反结案传输状态查找订单明细
+	 * 
+	 * @param vendUU
+	 * @param endStatus
+	 * @return
+	 */
+	@Query("from PurchaseOrderItem d where d.order.vendUU = :vendUU and d.endStatus = :endStatus")
+	public List<PurchaseOrderItem> findByVendUUAndEndStatus(@Param("vendUU") long vendUU, @Param("endStatus") short endStatus);
 }

+ 15 - 0
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseController.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.Purchase;
+import com.uas.platform.b2b.erp.model.PurchaseDetailEnd;
 import com.uas.platform.b2b.erp.model.PurchaseReply;
 import com.uas.platform.b2b.erp.service.PurchaseService;
 import com.uas.platform.b2b.service.PurchaseOrderService;
@@ -87,4 +88,18 @@ public class PurchaseController {
 		purchaseOrderService.onReplyUploadSuccess(URLDecoder.decode(data, "UTF-8").split(","));
 	}
 
+	/**
+	 * 买家结案、反结案采购单后,传到平台
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value = "/end", method = RequestMethod.POST)
+	@ResponseBody
+	public void end(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<PurchaseDetailEnd> ends = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseDetailEnd.class);
+		purchaseOrderService.saveItems(purchaseService.convertPurchaseEnd(ends));
+	}
+
 }

+ 25 - 1
src/main/java/com/uas/platform/b2b/erp/controller/SaleDownController.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.SaleDown;
+import com.uas.platform.b2b.erp.model.SaleDownDetailEnd;
 import com.uas.platform.b2b.erp.model.SaleReply;
 import com.uas.platform.b2b.erp.service.SaleDownService;
 import com.uas.platform.b2b.service.PurchaseOrderService;
@@ -81,7 +82,7 @@ public class SaleDownController {
 	public List<SaleReply> getReply() {
 		return saleDownService.convertOrderReply(purchaseOrderService.findNotSendReply());
 	}
-	
+
 	/**
 	 * 平台的回复记录传到供应商ERP之后,修改平台里面的回复记录的上传状态
 	 * 
@@ -94,4 +95,27 @@ public class SaleDownController {
 		purchaseOrderService.onReplyDownSuccess(URLDecoder.decode(data, "UTF-8").split(","));
 	}
 
+	/**
+	 * 卖家ERP从平台获取结案、反结案客户采购单
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/end", method = RequestMethod.GET)
+	@ResponseBody
+	public List<SaleDownDetailEnd> getSaleEnd() {
+		return saleDownService.convertOrderItemEnd(purchaseOrderService.findNotSendEnd());
+	}
+
+	/**
+	 * 平台的结案、反结案客户采购单传到供应商ERP之后,修改平台里面的上传状态
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value = "/end/back", method = RequestMethod.POST)
+	@ResponseBody
+	public void onEndDownSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		purchaseOrderService.onEndDownSuccess(URLDecoder.decode(data, "UTF-8").split(","));
+	}
+
 }

+ 39 - 0
src/main/java/com/uas/platform/b2b/erp/model/PurchaseDetailEnd.java

@@ -0,0 +1,39 @@
+package com.uas.platform.b2b.erp.model;
+
+/**
+ * ERP系统的采购订单明细(针对结案、反结案)
+ * 
+ * @author yingp
+ * 
+ */
+public class PurchaseDetailEnd {
+
+	private String pd_code;
+	private short pd_detno;
+	private short pd_ended;
+
+	public String getPd_code() {
+		return pd_code;
+	}
+
+	public void setPd_code(String pd_code) {
+		this.pd_code = pd_code;
+	}
+
+	public short getPd_detno() {
+		return pd_detno;
+	}
+
+	public void setPd_detno(short pd_detno) {
+		this.pd_detno = pd_detno;
+	}
+
+	public short getPd_ended() {
+		return pd_ended;
+	}
+
+	public void setPd_ended(short pd_ended) {
+		this.pd_ended = pd_ended;
+	}
+
+}

+ 75 - 0
src/main/java/com/uas/platform/b2b/erp/model/SaleDownDetailEnd.java

@@ -0,0 +1,75 @@
+package com.uas.platform.b2b.erp.model;
+
+import com.uas.platform.b2b.model.PurchaseOrderItem;
+
+/**
+ * 卖家ERP系统的客户采购订单明细(针对结案、反结案)
+ * 
+ * @author yingp
+ * 
+ */
+public class SaleDownDetailEnd {
+
+	private Long b2b_pd_id;
+	private long cu_uu;
+	private String sd_code;
+	private short sd_detno;
+	private Short sd_ended;
+
+	public String getSd_code() {
+		return sd_code;
+	}
+
+	public void setSd_code(String sd_code) {
+		this.sd_code = sd_code;
+	}
+
+	public short getSd_detno() {
+		return sd_detno;
+	}
+
+	public void setSd_detno(short sd_detno) {
+		this.sd_detno = sd_detno;
+	}
+
+	public Short getSd_ended() {
+		return sd_ended;
+	}
+
+	public void setSd_ended(Short sd_ended) {
+		this.sd_ended = sd_ended;
+	}
+
+	public Long getB2b_pd_id() {
+		return b2b_pd_id;
+	}
+
+	public void setB2b_pd_id(Long b2b_pd_id) {
+		this.b2b_pd_id = b2b_pd_id;
+	}
+
+	public long getCu_uu() {
+		return cu_uu;
+	}
+
+	public void setCu_uu(long cu_uu) {
+		this.cu_uu = cu_uu;
+	}
+
+	public SaleDownDetailEnd() {
+	}
+
+	/**
+	 * 转为卖家ERP的结案、反结案客户采购明细
+	 * 
+	 * @param orderItem
+	 */
+	public SaleDownDetailEnd(PurchaseOrderItem orderItem) {
+		this.b2b_pd_id = orderItem.getId();
+		this.cu_uu = orderItem.getOrder().getEnUU();
+		this.sd_code = orderItem.getOrder().getCode();
+		this.sd_detno = orderItem.getNumber();
+		this.sd_ended = orderItem.getEnd();
+	}
+
+}

+ 10 - 0
src/main/java/com/uas/platform/b2b/erp/model/SaleReply.java

@@ -21,6 +21,7 @@ public class SaleReply {
 	private Date sr_date;
 	private String sr_recorder;
 	private long cu_uu;
+	private Long b2b_pd_id;
 	private Long b2b_pr_id;
 	private String sr_type;
 
@@ -88,6 +89,14 @@ public class SaleReply {
 		this.cu_uu = cu_uu;
 	}
 
+	public Long getB2b_pd_id() {
+		return b2b_pd_id;
+	}
+
+	public void setB2b_pd_id(Long b2b_pd_id) {
+		this.b2b_pd_id = b2b_pd_id;
+	}
+
 	public Long getB2b_pr_id() {
 		return b2b_pr_id;
 	}
@@ -136,6 +145,7 @@ public class SaleReply {
 		this.sr_remark = reply.getRemark();
 		this.sr_sacode = reply.getOrderItem().getOrder().getCode();
 		this.sr_sddetno = reply.getOrderItem().getNumber();
+		this.b2b_pd_id = reply.getOrderItem().getId();
 		this.b2b_pr_id = reply.getId();
 		this.sr_type = reply.getType();
 	}

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

@@ -3,8 +3,10 @@ package com.uas.platform.b2b.erp.service;
 import java.util.List;
 
 import com.uas.platform.b2b.erp.model.Purchase;
+import com.uas.platform.b2b.erp.model.PurchaseDetailEnd;
 import com.uas.platform.b2b.erp.model.PurchaseReply;
 import com.uas.platform.b2b.model.PurchaseOrderAllItem;
+import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 
 public interface PurchaseService {
@@ -33,4 +35,12 @@ public interface PurchaseService {
 	 */
 	List<PurchaseOrderReply> convertPurchaseReply(List<PurchaseReply> replies);
 
+	/**
+	 * 将买家在ERP的结案、反结案采购单,转为平台的结案、反结案客户采购单
+	 * 
+	 * @param ends
+	 * @return
+	 */
+	List<PurchaseOrderItem> convertPurchaseEnd(List<PurchaseDetailEnd> ends);
+
 }

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

@@ -3,8 +3,10 @@ package com.uas.platform.b2b.erp.service;
 import java.util.List;
 
 import com.uas.platform.b2b.erp.model.SaleDown;
+import com.uas.platform.b2b.erp.model.SaleDownDetailEnd;
 import com.uas.platform.b2b.erp.model.SaleReply;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
+import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 
 public interface SaleDownService {
@@ -33,4 +35,12 @@ public interface SaleDownService {
 	 */
 	List<SaleReply> convertOrderReply(List<PurchaseOrderReply> replies);
 
+	/**
+	 * 将平台里面的结案、反结案客户采购单,转为供应商ERP的结案、反结案客户采购单
+	 * 
+	 * @param replies
+	 * @return
+	 */
+	List<SaleDownDetailEnd> convertOrderItemEnd(List<PurchaseOrderItem> orderItems);
+
 }

+ 18 - 0
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseServiceImpl.java

@@ -14,6 +14,7 @@ import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.dao.UserDao;
 import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.erp.model.Purchase;
+import com.uas.platform.b2b.erp.model.PurchaseDetailEnd;
 import com.uas.platform.b2b.erp.model.PurchaseReply;
 import com.uas.platform.b2b.erp.service.PurchaseService;
 import com.uas.platform.b2b.model.Enterprise;
@@ -26,6 +27,7 @@ import com.uas.platform.b2b.model.PurchaseOrderReply;
 import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.model.Status;
 
 @Service
 public class PurchaseServiceImpl implements PurchaseService {
@@ -127,4 +129,20 @@ public class PurchaseServiceImpl implements PurchaseService {
 		}
 		return orderReplies;
 	}
+
+	@Override
+	public List<PurchaseOrderItem> convertPurchaseEnd(List<PurchaseDetailEnd> ends) {
+		List<PurchaseOrderItem> orderItems = new ArrayList<PurchaseOrderItem>();
+		long enUU = SystemSession.getUser().getEnterprise().getUu();
+		for (PurchaseDetailEnd end : ends) {
+			List<PurchaseOrderItem> items = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(enUU, end.getPd_code(), end.getPd_detno());
+			if (!CollectionUtils.isEmpty(items)) {
+				PurchaseOrderItem orderItem = items.get(0);
+				orderItem.setEnd(end.getPd_ended());
+				orderItem.setEndStatus((short) Status.NOT_UPLOAD.value());
+				orderItems.add(orderItem);
+			}
+		}
+		return orderItems;
+	}
 }

+ 14 - 3
src/main/java/com/uas/platform/b2b/erp/service/impl/SaleDownServiceImpl.java

@@ -9,6 +9,7 @@ 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.SaleDownDetailEnd;
 import com.uas.platform.b2b.erp.model.SaleReply;
 import com.uas.platform.b2b.erp.service.SaleDownService;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
@@ -20,11 +21,11 @@ public class SaleDownServiceImpl implements SaleDownService {
 
 	@Autowired
 	private PurchaseOrderItemDao purchaseOrderItemDao;
-	
+
 	@Override
 	public List<SaleDown> convertPurchaseOrder(List<PurchaseOrderAll> orders) {
 		List<SaleDown> sales = new ArrayList<SaleDown>();
-		for(PurchaseOrderAll order:orders)
+		for (PurchaseOrderAll order : orders)
 			sales.add(new SaleDown(order));
 		return sales;
 	}
@@ -47,10 +48,20 @@ public class SaleDownServiceImpl implements SaleDownService {
 	@Override
 	public List<SaleReply> convertOrderReply(List<PurchaseOrderReply> replies) {
 		List<SaleReply> saleReplies = new ArrayList<SaleReply>();
-		for(PurchaseOrderReply reply:replies) {
+		for (PurchaseOrderReply reply : replies) {
 			saleReplies.add(new SaleReply(reply));
 		}
 		return saleReplies;
 	}
 
+	@Override
+	public List<SaleDownDetailEnd> convertOrderItemEnd(List<PurchaseOrderItem> orderItems) {
+		List<SaleDownDetailEnd> ends = new ArrayList<SaleDownDetailEnd>();
+		if (!CollectionUtils.isEmpty(orderItems)) {
+			for (PurchaseOrderItem orderItem : orderItems)
+				ends.add(new SaleDownDetailEnd(orderItem));
+		}
+		return ends;
+	}
+
 }

+ 35 - 7
src/main/java/com/uas/platform/b2b/model/PurchaseOrderItem.java

@@ -58,31 +58,31 @@ public class PurchaseOrderItem {
 	 */
 	@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;
-	
+
 	/**
 	 * 含税单价
 	 */
@@ -118,13 +118,25 @@ public class PurchaseOrderItem {
 	 */
 	@Column(name = "pd_delivery")
 	private Date delivery;
-	
+
 	/**
 	 * 回复状态
 	 */
-	@Column(name="pd_status")
+	@Column(name = "pd_status")
 	private Short status;
 
+	/**
+	 * 是否已结案
+	 */
+	@Column(name = "pd_end")
+	private Short end;
+
+	/**
+	 * 结案状态是否已传输到卖家ERP的情况
+	 */
+	@Column(name = "pd_endstatus")
+	private Short endStatus;
+
 	public Long getId() {
 		return id;
 	}
@@ -262,4 +274,20 @@ public class PurchaseOrderItem {
 		this.status = status;
 	}
 
+	public Short getEnd() {
+		return end;
+	}
+
+	public void setEnd(Short end) {
+		this.end = end;
+	}
+
+	public Short getEndStatus() {
+		return endStatus;
+	}
+
+	public void setEndStatus(Short endStatus) {
+		this.endStatus = endStatus;
+	}
+
 }

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

@@ -7,11 +7,20 @@ import org.springframework.data.domain.Page;
 import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderAllItem;
+import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 import com.uas.platform.core.model.PageInfo;
 
 public interface PurchaseOrderService {
 
+	/**
+	 * 批量保存、修改采购订单明细
+	 * 
+	 * @param items
+	 * @return
+	 */
+	public void saveItems(List<PurchaseOrderItem> items);
+
 	/**
 	 * 批量保存、修改采购订单
 	 * 
@@ -124,4 +133,18 @@ public interface PurchaseOrderService {
 	 * @param idArray
 	 */
 	public void onSaleDownSuccess(String[] idArray);
+
+	/**
+	 * 查找所有待上传到卖家的结案、反结案客户采购单
+	 * 
+	 * @return
+	 */
+	public List<PurchaseOrderItem> findNotSendEnd();
+
+	/**
+	 * 结案、反结案客户采购单成功传到卖家ERP之后
+	 * 
+	 * @param idArray
+	 */
+	public void onEndDownSuccess(String[] idArray);
 }

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

@@ -243,4 +243,26 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 		}
 	}
 
+	@Override
+	public List<PurchaseOrderItem> findNotSendEnd() {
+		return purchaseOrderItemDao.findByVendUUAndEndStatus(SystemSession.getUser().getEnterprise().getUu(),
+				(short) Status.NOT_UPLOAD.value());
+	}
+
+	@Override
+	public void onEndDownSuccess(String[] idArray) {
+		for (String id : idArray) {
+			PurchaseOrderItem orderItem = purchaseOrderItemDao.findOne(Long.parseLong(id));
+			if (orderItem != null) {
+				orderItem.setEndStatus((short) Status.DOWNLOADED.value());
+				purchaseOrderItemDao.save(orderItem);
+			}
+		}
+	}
+
+	@Override
+	public void saveItems(List<PurchaseOrderItem> items) {
+		purchaseOrderItemDao.save(items);
+	}
+
 }