Browse Source

把客户收料单收料状态传到平台

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@1050 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
suntg 11 years ago
parent
commit
433b768444

+ 9 - 0
src/main/java/com/uas/platform/b2b/dao/SaleSendItemDao.java

@@ -41,5 +41,14 @@ public interface SaleSendItemDao extends JpaSpecificationExecutor<SaleSendItem>,
 	@Modifying(clearAutomatically = true)
 	@Modifying(clearAutomatically = true)
 	@Query("update SaleSendItem s set s.qty = :qty,s.replyRemark = :remark where s.id= :id")
 	@Query("update SaleSendItem s set s.qty = :qty,s.replyRemark = :remark where s.id= :id")
 	public void updateByReply(@Param("id") long id, @Param("qty") double qty, @Param("remark") String remark);
 	public void updateByReply(@Param("id") long id, @Param("qty") double qty, @Param("remark") String remark);
+	
+	/**
+	 * 更新客户收料数量
+	 * @param id
+	 * @param verifyQty
+	 */
+	@Modifying(clearAutomatically = true)
+	@Query("update SaleSendItem s set s.verifyQty = :verifyQty where s.id= :id")
+	public void updateByVerify(@Param("id") long id, @Param("verifyQty") double verifyQty);
 
 
 }
 }

+ 31 - 0
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseNotifyController.java

@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 
 import com.uas.platform.b2b.erp.model.AcceptNotify;
 import com.uas.platform.b2b.erp.model.AcceptNotify;
 import com.uas.platform.b2b.erp.model.AcceptNotifyConfirm;
 import com.uas.platform.b2b.erp.model.AcceptNotifyConfirm;
+import com.uas.platform.b2b.erp.model.AcceptNotifyVerify;
 import com.uas.platform.b2b.erp.model.PurchaseNotify;
 import com.uas.platform.b2b.erp.model.PurchaseNotify;
 import com.uas.platform.b2b.erp.service.PurchaseNotifyService;
 import com.uas.platform.b2b.erp.service.PurchaseNotifyService;
 import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
 import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
@@ -126,4 +127,34 @@ public class PurchaseNotifyController {
 		logger.log("送货提醒", "上传收料通知的确认数量", confirms.size());
 		logger.log("送货提醒", "上传收料通知的确认数量", confirms.size());
 	}
 	}
 
 
+	/**
+	 * 买家收料通知转收料单的数量,写回到平台
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value = "/accept/verify", method = RequestMethod.POST)
+	@ResponseBody
+	public void onVerify(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<AcceptNotifyVerify> verifies = FlexJsonUtils.fromJsonArray(jsonStr, AcceptNotifyVerify.class);
+		purchaseNoticeService.onVerify(purchaseNotifyService.convertAcceptNotifyVerify(verifies));
+		logger.log("送货提醒", "上传转收料单的数量", verifies.size());
+	}
+
+	/**
+	 * 买家反审核收料单的数量,写回到平台
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value = "/accept/unverify", method = RequestMethod.POST)
+	@ResponseBody
+	public void onUnVerify(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<AcceptNotifyVerify> verifies = FlexJsonUtils.fromJsonArray(jsonStr, AcceptNotifyVerify.class);
+		purchaseNoticeService.onVerify(purchaseNotifyService.convertAcceptUnauditVerify(verifies));
+		logger.log("送货提醒", "上传反审核收料单的数量", verifies.size());
+	}
+
 }
 }

+ 42 - 0
src/main/java/com/uas/platform/b2b/erp/model/AcceptNotifyVerify.java

@@ -0,0 +1,42 @@
+package com.uas.platform.b2b.erp.model;
+
+/**
+ * 收料单
+ * @author suntg
+ *
+ */
+public class AcceptNotifyVerify {
+
+	private Long va_id;
+	private Long b2b_ss_id;
+	private short and_detno;
+	private Double vad_qty;
+	
+	public Long getVa_id() {
+		return va_id;
+	}
+	public void setVa_id(Long va_id) {
+		this.va_id = va_id;
+	}
+	public Long getB2b_ss_id() {
+		return b2b_ss_id;
+	}
+	public void setB2b_ss_id(Long b2b_ss_id) {
+		this.b2b_ss_id = b2b_ss_id;
+	}
+	public short getAnd_detno() {
+		return and_detno;
+	}
+	public void setAnd_detno(short and_detno) {
+		this.and_detno = and_detno;
+	}
+	public Double getVad_qty() {
+		return vad_qty;
+	}
+	public void setVad_qty(Double vad_qty) {
+		this.vad_qty = vad_qty;
+	}
+
+	
+
+}

+ 17 - 0
src/main/java/com/uas/platform/b2b/erp/service/PurchaseNotifyService.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 
 import com.uas.platform.b2b.erp.model.AcceptNotify;
 import com.uas.platform.b2b.erp.model.AcceptNotify;
 import com.uas.platform.b2b.erp.model.AcceptNotifyConfirm;
 import com.uas.platform.b2b.erp.model.AcceptNotifyConfirm;
+import com.uas.platform.b2b.erp.model.AcceptNotifyVerify;
 import com.uas.platform.b2b.erp.model.PurchaseNotify;
 import com.uas.platform.b2b.erp.model.PurchaseNotify;
 import com.uas.platform.b2b.model.PurchaseNotice;
 import com.uas.platform.b2b.model.PurchaseNotice;
 import com.uas.platform.b2b.model.SaleSend;
 import com.uas.platform.b2b.model.SaleSend;
@@ -43,4 +44,20 @@ public interface PurchaseNotifyService {
 	 */
 	 */
 	List<SaleSendItem> convertAcceptNotifyDetail(List<AcceptNotifyConfirm> confirms);
 	List<SaleSendItem> convertAcceptNotifyDetail(List<AcceptNotifyConfirm> confirms);
 
 
+	/**
+	 * 将买家ERP填写的收料通知转收料单的信息,转为平台的发货单明细
+	 * 
+	 * @param confirms
+	 * @return
+	 */
+	List<SaleSendItem> convertAcceptNotifyVerify(List<AcceptNotifyVerify> verifies);
+
+	/**
+	 * 将买家ERP收料单反审核的信息,转为平台的发货单明细
+	 * 
+	 * @param confirms
+	 * @return
+	 */
+	List<SaleSendItem> convertAcceptUnauditVerify(List<AcceptNotifyVerify> verifies);
+
 }
 }

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

@@ -13,6 +13,7 @@ import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.dao.SaleSendItemDao;
 import com.uas.platform.b2b.dao.SaleSendItemDao;
 import com.uas.platform.b2b.erp.model.AcceptNotify;
 import com.uas.platform.b2b.erp.model.AcceptNotify;
 import com.uas.platform.b2b.erp.model.AcceptNotifyConfirm;
 import com.uas.platform.b2b.erp.model.AcceptNotifyConfirm;
+import com.uas.platform.b2b.erp.model.AcceptNotifyVerify;
 import com.uas.platform.b2b.erp.model.PurchaseNotify;
 import com.uas.platform.b2b.erp.model.PurchaseNotify;
 import com.uas.platform.b2b.erp.service.PurchaseNotifyService;
 import com.uas.platform.b2b.erp.service.PurchaseNotifyService;
 import com.uas.platform.b2b.model.PurchaseNotice;
 import com.uas.platform.b2b.model.PurchaseNotice;
@@ -90,4 +91,46 @@ public class PurchaseNotifyServiceImpl implements PurchaseNotifyService {
 		return sendItems;
 		return sendItems;
 	}
 	}
 
 
+	/**
+	 * 转收料单,增加客户收料数量
+	 */
+	@Override
+	public List<SaleSendItem> convertAcceptNotifyVerify(
+			List<AcceptNotifyVerify> verifies) {
+		System.out.println("convert : " + verifies.size());
+		List<SaleSendItem> sendItems = new ArrayList<SaleSendItem>();
+		for(AcceptNotifyVerify verify : verifies) {
+			List<SaleSendItem> items = saleSendItemDao.findBySendAndNumber(verify.getB2b_ss_id(), verify.getAnd_detno());
+			if(items.size() > 0) {
+				SaleSendItem item = items.get(0);
+				Double verifyQty = (item.getVerifyQty() == null ? 0 : item.getVerifyQty()) + verify.getVad_qty();
+				if(verifyQty > item.getQty())
+					verifyQty = item.getQty();
+				item.setVerifyQty(verifyQty);
+				sendItems.add(item);
+			}
+		}
+		return sendItems;
+	}
+
+	/**
+	 * 收料单反审核,减少客户收料数量
+	 */
+	@Override
+	public List<SaleSendItem> convertAcceptUnauditVerify(
+			List<AcceptNotifyVerify> verifies) {
+		List<SaleSendItem> sendItems = new ArrayList<SaleSendItem>();
+		for(AcceptNotifyVerify verify : verifies) {
+			List<SaleSendItem> items = saleSendItemDao.findBySendAndNumber(verify.getB2b_ss_id(), verify.getAnd_detno());
+			if(items.size() > 0) {
+				SaleSendItem item = items.get(0);
+				Double verifyQty = (item.getVerifyQty() == null ? 0 : item.getVerifyQty()) - verify.getVad_qty();
+				if(verifyQty < 0) verifyQty = (double) 0;
+				item.setVerifyQty(verifyQty);
+				sendItems.add(item);
+			}
+		}
+		return sendItems;
+	}
+
 }
 }

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

@@ -88,6 +88,12 @@ public class SaleSendItem {
 	 */
 	 */
 	@Column(name = "si_replyremark")
 	@Column(name = "si_replyremark")
 	private String replyRemark;
 	private String replyRemark;
+	
+	/**
+	 * 客户收料数
+	 */
+	@Column(name = "si_verifyqty")
+	private Double verifyQty;
 
 
 	public Long getId() {
 	public Long getId() {
 		return id;
 		return id;
@@ -179,6 +185,14 @@ public class SaleSendItem {
 		this.replyRemark = replyRemark;
 		this.replyRemark = replyRemark;
 	}
 	}
 
 
+	public Double getVerifyQty() {
+		return verifyQty;
+	}
+
+	public void setVerifyQty(Double verifyQty) {
+		this.verifyQty = verifyQty;
+	}
+
 	public void modify(double oldQty, double newQty) {
 	public void modify(double oldQty, double newQty) {
 		setReplyRemark("客户修改数量:" + oldQty + "改为" + newQty);
 		setReplyRemark("客户修改数量:" + oldQty + "改为" + newQty);
 		setQty(newQty);
 		setQty(newQty);

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

@@ -82,6 +82,12 @@ public class SaleSendItemAll {
 	 */
 	 */
 	@Column(name = "si_remark")
 	@Column(name = "si_remark")
 	private String remark;
 	private String remark;
+	
+	/**
+	 * 客户收料数
+	 */
+	@Column(name = "si_verifyqty")
+	private Double vefifyQty;
 
 
 	public Long getId() {
 	public Long getId() {
 		return id;
 		return id;
@@ -167,4 +173,12 @@ public class SaleSendItemAll {
 		this.orderItemId = orderItemId;
 		this.orderItemId = orderItemId;
 	}
 	}
 
 
+	public Double getVefifyQty() {
+		return vefifyQty;
+	}
+
+	public void setVefifyQty(Double vefifyQty) {
+		this.vefifyQty = vefifyQty;
+	}
+
 }
 }

+ 12 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseNoticeService.java

@@ -12,6 +12,18 @@ import com.uas.platform.b2b.model.SaleSendItem;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageInfo;
 
 
 public interface PurchaseNoticeService {
 public interface PurchaseNoticeService {
+	
+	/**
+	 * 转收料单
+	 * @param saleSendItems
+	 */
+	public void onVerify(List<SaleSendItem> saleSendItems);
+
+	/**
+	 * 反审核收料单
+	 * @param saleSendItems
+	 */
+	public void unVerify(List<SaleSendItem> saleSendItems);
 
 
 	/**
 	/**
 	 * 批量保存、修改客户送货提醒
 	 * 批量保存、修改客户送货提醒

+ 25 - 4
src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.java

@@ -8,6 +8,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import javax.persistence.criteria.Root;
+import javax.transaction.Transactional;
 
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -258,10 +259,10 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 	@Override
 	@Override
 	public SaleSend send(SaleSend saleSend) {
 	public SaleSend send(SaleSend saleSend) {
 		if (saleSend != null) {
 		if (saleSend != null) {
-			// //限制同一个供应商发货单号不可以重复,(限制被去掉 -- 2015年6月5日15:23:52)
-			// List<SaleSend> saleSends = saleSendDao.findByEnUUAndCode(SystemSession.getUser().getEnterprise().getUu(), saleSend.getCode());
-			// if (saleSends.size() > 0)
-			// throw new IllegalOperatorException("发货单号重复,无法发货!提示:多个物料一起发货请选择批量发货。");
+//			//限制同一个供应商发货单号不可以重复,(限制被去掉 -- 2015年6月5日15:23:52)
+//			List<SaleSend> saleSends = saleSendDao.findByEnUUAndCode(SystemSession.getUser().getEnterprise().getUu(), saleSend.getCode());
+//			if (saleSends.size() > 0)
+//			throw new IllegalOperatorException("发货单号重复,无法发货!提示:多个物料一起发货请选择批量发货。");
 			saleSend.setBackStatus((short) Status.NOT_UPLOAD.value());
 			saleSend.setBackStatus((short) Status.NOT_UPLOAD.value());
 			saleSend.setSendStatus((short) Status.NOT_UPLOAD.value());
 			saleSend.setSendStatus((short) Status.NOT_UPLOAD.value());
 			saleSend.setEnUU(SystemSession.getUser().getEnterprise().getUu());
 			saleSend.setEnUU(SystemSession.getUser().getEnterprise().getUu());
@@ -329,5 +330,25 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 	public List<PurchaseNotice> findById(Long[] ids) {
 	public List<PurchaseNotice> findById(Long[] ids) {
 		return purchaseNoticeDao.findUnEndByIds(ids);
 		return purchaseNoticeDao.findUnEndByIds(ids);
 	}
 	}
+	
+	@Override
+	@Transactional
+	public void onVerify(List<SaleSendItem> saleSendItems) {
+		System.out.println("save : " + saleSendItems.size());
+		for(SaleSendItem item : saleSendItems) {
+			System.out.println("id: " + item.getId() + ", qty: " + item.getVerifyQty());
+			saleSendItemDao.updateByVerify(item.getId(), item.getVerifyQty());
+		}
+	}
+
+	@Override
+	@Transactional
+	public void unVerify(List<SaleSendItem> saleSendItems) {
+		System.out.println("save : " + saleSendItems.size());
+		for(SaleSendItem item : saleSendItems) {
+			System.out.println("id: " + item.getId() + ", qty: " + item.getVerifyQty());
+		}
+		saleSendItemDao.save(saleSendItems);
+	}
 
 
 }
 }