Explorar el Código

新增可发货状态轮询接口和字段

Hu Jie hace 7 años
padre
commit
0e483ab65f

+ 21 - 0
src/main/java/com/uas/platform/b2b/dao/PurcOrderInfoItemDao.java

@@ -1,13 +1,34 @@
 package com.uas.platform.b2b.dao;
 package com.uas.platform.b2b.dao;
 
 
+import com.uas.platform.b2b.erp.model.PurchaseDetail;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
 import com.uas.platform.b2b.model.PurcOrderInfoItem;
 import com.uas.platform.b2b.model.PurcOrderInfoItem;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
 
 
 @Repository
 @Repository
 public interface PurcOrderInfoItemDao
 public interface PurcOrderInfoItemDao
 		extends JpaRepository<PurcOrderInfoItem, Long>, JpaSpecificationExecutor<PurcOrderInfoItem> {
 		extends JpaRepository<PurcOrderInfoItem, Long>, JpaSpecificationExecutor<PurcOrderInfoItem> {
 
 
+	/**
+	 * 根据采购客户uu和可发货下载状态查找
+	 * @return
+	 */
+	@Query("from PurcOrderInfoItem p where p.acceptCustuu = :acceptCustuu and p.issuedStatus = :issuedStatus")
+	List<PurcOrderInfoItem> findByAcceptCustuuAndIssuedStatus(@Param("acceptCustuu") Long acceptCustuu,@Param("issuedStatus") Short issuedStatus);
+
+	/**
+	 * 更新状态
+	 */
+	@Modifying
+	@Transactional
+	@Query("update PurcOrderInfoItem set issuedStatus = 203 where custPurchaseCode = :custPurchaseCode and custPurchaseDetno = :custPurchaseDetno and acceptCustuu = :acceptCustuu")
+	void updateIssuedStatus(@Param("custPurchaseCode") String custPurchaseCode,@Param("custPurchaseDetno") Short custPurchaseDetno,@Param("acceptCustuu") Long acceptCustuu);
 }
 }

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

@@ -10,10 +10,7 @@ import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 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 org.springframework.web.bind.annotation.*;
 
 
 import java.io.UnsupportedEncodingException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.net.URLDecoder;
@@ -71,6 +68,30 @@ public class PurchaseController {
         return replies;
         return replies;
     }
     }
 
 
+	/**
+	 * 买家ERP获取代采订单的可发货状态
+	 * @return
+	 */
+	@RequestMapping(value = "/issued",method = RequestMethod.GET)
+	@ResponseBody
+    public List<PurchaseDetail> getIssued() {
+		List<PurchaseDetail> issued = purchaseService.convertIssued(purchaseOrderService.findNotUploadIssued());
+		logger.log("代采订单","更新erp可发货状态",issued.size());
+		return issued;
+	}
+
+	/**
+	 * 回执
+	 * @return
+	 */
+	@RequestMapping(value = "/issued/back",method = RequestMethod.POST)
+	@ResponseBody
+	public void onIssuedSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<PurchaseDetail> details = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseDetail.class);
+		purchaseOrderService.onIssuedSucess(details);
+	}
+
 	/**
 	/**
 	 * 买家ERP主动回复的记录上传到平台 <br>
 	 * 买家ERP主动回复的记录上传到平台 <br>
 	 * 买卖双方直接电话沟通之后,结果由买家填写到ERP系统的情况
 	 * 买卖双方直接电话沟通之后,结果由买家填写到ERP系统的情况

+ 36 - 0
src/main/java/com/uas/platform/b2b/erp/model/PurchaseDetail.java

@@ -1,10 +1,12 @@
 package com.uas.platform.b2b.erp.model;
 package com.uas.platform.b2b.erp.model;
 
 
+import com.uas.platform.b2b.core.util.StringUtil;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.model.PurcOrderInfoItem;
 import com.uas.platform.b2b.model.PurcOrderInfoItem;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.model.Status;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.CollectionUtils;
+import org.springframework.util.StringUtils;
 
 
 import java.util.Date;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.HashSet;
@@ -42,6 +44,10 @@ public class PurchaseDetail {
 	private String pd_acceptcustname;
 	private String pd_acceptcustname;
 	//收货地址
 	//收货地址
 	private String pd_acceptcustaddress;
 	private String pd_acceptcustaddress;
+	//收货客户uu
+	private Long pd_acceptcustuu;
+	//是否能发货
+	private String pd_hasissued;
 	private List<Attach> attaches;
 	private List<Attach> attaches;
 
 
 	public String getPd_vendspec() {
 	public String getPd_vendspec() {
@@ -188,6 +194,22 @@ public class PurchaseDetail {
 		this.pd_acceptcustaddress = pd_acceptcustaddress;
 		this.pd_acceptcustaddress = pd_acceptcustaddress;
 	}
 	}
 
 
+	public Long getPd_acceptcustuu() {
+		return pd_acceptcustuu;
+	}
+
+	public void setPd_acceptcustuu(Long pd_acceptcustuu) {
+		this.pd_acceptcustuu = pd_acceptcustuu;
+	}
+
+	public String getPd_hasissued() {
+		return pd_hasissued;
+	}
+
+	public void setPd_hasissued(String pd_hasissued) {
+		this.pd_hasissued = pd_hasissued;
+	}
+
 	/**
 	/**
 	 * 转为平台的采购订单明细
 	 * 转为平台的采购订单明细
 	 * 
 	 * 
@@ -212,6 +234,11 @@ public class PurchaseDetail {
 		item.setCustPurchaseDetno(this.pd_custpurchasedetno);
 		item.setCustPurchaseDetno(this.pd_custpurchasedetno);
 		item.setAcceptCustName(this.pd_acceptcustname);
 		item.setAcceptCustName(this.pd_acceptcustname);
 		item.setAcceptCustAddress(this.pd_acceptcustaddress);
 		item.setAcceptCustAddress(this.pd_acceptcustaddress);
+		item.setAcceptCustuu(this.pd_acceptcustuu);
+		item.setHasIssued(this.pd_hasissued);
+		if (!StringUtils.isEmpty(pd_hasissued)) {
+			item.setIssuedStatus((short)Status.NOT_UPLOAD.value());
+		}
 		if (!CollectionUtils.isEmpty(this.attaches)) {
 		if (!CollectionUtils.isEmpty(this.attaches)) {
 			Set<com.uas.platform.b2b.model.Attach> b2bAttaches = new HashSet<com.uas.platform.b2b.model.Attach>();
 			Set<com.uas.platform.b2b.model.Attach> b2bAttaches = new HashSet<com.uas.platform.b2b.model.Attach>();
 			for(Attach attach : this.attaches) {
 			for(Attach attach : this.attaches) {
@@ -223,4 +250,13 @@ public class PurchaseDetail {
 		return item;
 		return item;
 	}
 	}
 
 
+	/**
+	 * 转为erp明细
+	 * @param infoItem
+	 */
+	public PurchaseDetail(PurcOrderInfoItem infoItem) {
+		this.pd_custpurchasecode = infoItem.getCustPurchaseCode();
+		this.pd_custpurchasedetno = infoItem.getCustPurchaseDetno();
+	}
+
 }
 }

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

@@ -180,7 +180,7 @@ public class PurchaseNotify extends KeyEntity {
 		notice.setRemark(pn_remark);
 		notice.setRemark(pn_remark);
 		if ((!StringUtils.isEmpty(pn_terminalvenduu)) && (pn_terminalvenduu != 0)) {
 		if ((!StringUtils.isEmpty(pn_terminalvenduu)) && (pn_terminalvenduu != 0)) {
 			notice.setVendUU(pn_terminalvenduu);
 			notice.setVendUU(pn_terminalvenduu);
-			notice.setEnUU(10001255L);
+			notice.setEnUU(SystemSession.getUser().getEnterprise().getUu());
 		} else {
 		} else {
 			notice.setVendUU(ve_uu);
 			notice.setVendUU(ve_uu);
 			notice.setEnUU(SystemSession.getUser().getEnterprise().getUu());
 			notice.setEnUU(SystemSession.getUser().getEnterprise().getUu());

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

@@ -26,6 +26,13 @@ public interface PurchaseService {
 	 */
 	 */
 	List<PurchaseReply> convertPurchaseOrderReply(List<PurchaseOrderReply> replies);
 	List<PurchaseReply> convertPurchaseOrderReply(List<PurchaseOrderReply> replies);
 
 
+	/**
+	 * 平台的采购明细转化为erp明细(可发货状态)
+	 * @param items
+	 * @return
+	 */
+	List<PurchaseDetail> convertIssued(List<PurcOrderInfoItem> items);
+
 	/**
 	/**
 	 * 将买家在ERP的主动回复,转为平台的回复记录
 	 * 将买家在ERP的主动回复,转为平台的回复记录
 	 * 
 	 * 

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

@@ -146,6 +146,16 @@ public class PurchaseServiceImpl implements PurchaseService {
 		return replies;
 		return replies;
 	}
 	}
 
 
+	@Override
+	public List<PurchaseDetail> convertIssued(List<PurcOrderInfoItem> items) {
+		List<PurchaseDetail> details = new ArrayList<>();
+		for (PurcOrderInfoItem infoItem : items) {
+			details.add(new PurchaseDetail(infoItem));
+		}
+		return details;
+	}
+
+
 	/**
 	/**
 	 * 添加供应商资料
 	 * 添加供应商资料
 	 * 
 	 * 

+ 43 - 0
src/main/java/com/uas/platform/b2b/model/PurcOrderInfoItem.java

@@ -190,6 +190,25 @@ public class PurcOrderInfoItem extends AbstractOrderProduct {
 	 */
 	 */
 	@Column(name = "pd_acceptcustaddress")
 	@Column(name = "pd_acceptcustaddress")
 	private  String acceptCustAddress;
 	private  String acceptCustAddress;
+
+	/**
+	 * 收货客户uu
+	 */
+	@Column(name="pd_pd_acceptcustuu")
+	private Long acceptCustuu;
+
+	/**
+	 * 是否能发货
+	 */
+	@Column(name = "pd_pd_hasissued")
+	private String hasIssued;
+
+	/**
+	 * hasIssued下载到代采买家状态
+	 */
+	@Column(name = "pd_issuedStatus")
+	private Short IssuedStatus;
+
 	/**
 	/**
 	 * 关键词查询相关
 	 * 关键词查询相关
 	 */
 	 */
@@ -451,6 +470,30 @@ public class PurcOrderInfoItem extends AbstractOrderProduct {
 		this.acceptCustAddress = acceptCustAddress;
 		this.acceptCustAddress = acceptCustAddress;
 	}
 	}
 
 
+	public Long getAcceptCustuu() {
+		return acceptCustuu;
+	}
+
+	public void setAcceptCustuu(Long acceptCustuu) {
+		this.acceptCustuu = acceptCustuu;
+	}
+
+	public String getHasIssued() {
+		return hasIssued;
+	}
+
+	public void setHasIssued(String hasIssued) {
+		this.hasIssued = hasIssued;
+	}
+
+	public Short getIssuedStatus() {
+		return IssuedStatus;
+	}
+
+	public void setIssuedStatus(Short issuedStatus) {
+		IssuedStatus = issuedStatus;
+	}
+
 	public double getBalance() {
 	public double getBalance() {
 		double qtyNum, returnQtyNum, acceptQtyNum;
 		double qtyNum, returnQtyNum, acceptQtyNum;
 		qtyNum = qty == null ? 0 : qty;
 		qtyNum = qty == null ? 0 : qty;

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

@@ -1,5 +1,6 @@
 package com.uas.platform.b2b.service;
 package com.uas.platform.b2b.service;
 
 
+import com.uas.platform.b2b.erp.model.PurchaseDetail;
 import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.model.*;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.search.b2b.model.SPage;
 import com.uas.search.b2b.model.SPage;
@@ -224,6 +225,12 @@ public interface PurchaseOrderService {
 	 */
 	 */
 	public List<PurchaseOrderReply> findNotUploadReply();
 	public List<PurchaseOrderReply> findNotUploadReply();
 
 
+	/**
+	 * 查找所有待上传的可发货状态(代采订单)
+	 * @return
+	 */
+	List<PurcOrderInfoItem> findNotUploadIssued();
+
 	/**
 	/**
 	 * 查找所有待上传到卖家的回复记录
 	 * 查找所有待上传到卖家的回复记录
 	 * 
 	 * 
@@ -238,6 +245,12 @@ public interface PurchaseOrderService {
 	 */
 	 */
 	public void onReplyUploadSuccess(String[] idArray);
 	public void onReplyUploadSuccess(String[] idArray);
 
 
+	/**
+	 * 更新平台状态
+	 * @param items
+	 */
+	void onIssuedSucess(List<PurchaseDetail> items);
+
 	/**
 	/**
 	 * 回复记录成功传到卖家ERP之后
 	 * 回复记录成功传到卖家ERP之后
 	 * 
 	 * 

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

@@ -4,6 +4,7 @@ import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.SplitArray;
 import com.uas.platform.b2b.core.util.SplitArray;
 import com.uas.platform.b2b.core.util.ThreadTask;
 import com.uas.platform.b2b.core.util.ThreadTask;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.erp.model.PurchaseDetail;
 import com.uas.platform.b2b.event.PurchaseOrderEndReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseOrderEndReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseOrderReplyReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseOrderReplyReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseOrderSaveReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseOrderSaveReleaseEvent;
@@ -400,6 +401,12 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 				(short) Status.NOT_UPLOAD.value());
 				(short) Status.NOT_UPLOAD.value());
 	}
 	}
 
 
+	@Override
+	public List<PurcOrderInfoItem> findNotUploadIssued() {
+		return purcOrderInfoItemDao.findByAcceptCustuuAndIssuedStatus(SystemSession.getUser().getEnterprise().getUu(),
+				(short) Status.NOT_UPLOAD.value());
+	}
+
 	@Override
 	@Override
 	public void onReplyUploadSuccess(String[] idArray) {
 	public void onReplyUploadSuccess(String[] idArray) {
 		for (String id : idArray) {
 		for (String id : idArray) {
@@ -411,6 +418,14 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 		}
 		}
 	}
 	}
 
 
+	@Override
+	public void onIssuedSucess(List<PurchaseDetail> details) {
+		for (PurchaseDetail detail : details) {
+			purcOrderInfoItemDao.updateIssuedStatus(detail.getPd_custpurchasecode(),detail.getPd_custpurchasedetno(),
+					SystemSession.getUser().getEnterprise().getUu());
+		}
+	}
+
 	@Override
 	@Override
 	public void onReplyDownSuccess(String[] idArray) {
 	public void onReplyDownSuccess(String[] idArray) {
 		for (String id : idArray) {
 		for (String id : idArray) {