Browse Source

送样单附件

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

+ 21 - 0
src/main/java/com/uas/platform/b2b/erp/controller/SaleSampleDownController.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.erp.controller;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.List;
+import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -15,6 +16,9 @@ import com.uas.platform.b2b.erp.model.SaleSampleApproval;
 import com.uas.platform.b2b.erp.model.SaleSampleDown;
 import com.uas.platform.b2b.erp.model.SaleSampleSend;
 import com.uas.platform.b2b.erp.service.SaleSampleDownService;
+import com.uas.platform.b2b.model.Attach;
+import com.uas.platform.b2b.model.FileUpload;
+import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.PurchaseProofingService;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 
@@ -35,6 +39,9 @@ public class SaleSampleDownController {
 	@Autowired
 	private PurchaseProofingService purchaseProofingService;
 
+	@Autowired
+	private AttachService attachService;
+
 	/**
 	 * 卖家ERP从平台获取客户送货提醒
 	 * 
@@ -96,6 +103,20 @@ public class SaleSampleDownController {
 		purchaseProofingService.backSampleSendSuccess(URLDecoder.decode(data, "UTF-8").split(","));
 	}
 	
+	/**
+	 * 卖家ERP的送样单附件
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/sampleSend/attach", method = RequestMethod.POST)
+	@ResponseBody
+	public void uploadApprovalPpdAttach(String data, FileUpload uploadItem) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		Map<String, Map<String, Object>> fileList = FlexJsonUtils.fromJson(jsonStr);
+		List<Attach> attachs = attachService.uploadZipAndSave(uploadItem, "purchaseProofing", "送样单附件", fileList);
+		purchaseProofingService.saveSendAttach(attachs);
+	}
+	
 	/**
 	 * 卖家ERP从平台获取在平台的送样认定单
 	 * 

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

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.erp.model;
 
 import java.util.Date;
+import java.util.List;
 
 import com.uas.platform.b2b.model.PurchaseProofingItem;
 import com.uas.platform.b2b.model.PurchaseProofingSend;
@@ -36,7 +37,13 @@ public class SaleSampleSend {
 	private String ss_pscode;
 	private Short ss_pddetno;
 	private Long ss_useruu;
-
+	private List<RemoteFile> files;
+	public List<RemoteFile> getFiles() {
+		return files;
+	}
+	public void setFiles(List<RemoteFile> files) {
+		this.files = files;
+	}
 	public Long getSs_useruu() {
 		return ss_useruu;
 	}

+ 16 - 1
src/main/java/com/uas/platform/b2b/erp/service/impl/SaleSampleDownServiceImpl.java

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
 import com.uas.platform.b2b.dao.AttachDao;
+import com.uas.platform.b2b.dao.PurchaseProofingSendDao;
 import com.uas.platform.b2b.erp.model.RemoteFile;
 import com.uas.platform.b2b.erp.model.SaleSampleApproval;
 import com.uas.platform.b2b.erp.model.SaleSampleDown;
@@ -24,6 +25,8 @@ public class SaleSampleDownServiceImpl implements SaleSampleDownService {
 	
 	@Autowired
 	private AttachDao attachDao;
+	@Autowired
+	private PurchaseProofingSendDao purchaseProofingSendDao;
 
 	@Override
 	public List<SaleSampleDown> convertPurchaseProofingItems(
@@ -55,7 +58,19 @@ public class SaleSampleDownServiceImpl implements SaleSampleDownService {
 		List<SaleSampleSend> saleSampleSends = new ArrayList<SaleSampleSend>();
 		if(!CollectionUtils.isEmpty(proofingSends)) {
 			for(PurchaseProofingSend proofingSend : proofingSends){
-				saleSampleSends.add(new SaleSampleSend(proofingSend));
+				SaleSampleSend sampleSend = new SaleSampleSend(proofingSend);
+				if (StringUtils.hasText(proofingSend.getAttach())) {
+					String[] attachIds = proofingSend.getAttach().split(",");
+					List<RemoteFile> files = new ArrayList<RemoteFile>();
+					for (String attachId : attachIds) {
+						Attach attach = attachDao.findOne(Long.parseLong(attachId));
+						if (attach != null) {
+							files.add(new RemoteFile(attach));
+						}
+					}
+					sampleSend.setFiles(files);
+				}
+				saleSampleSends.add(sampleSend);
 			}
 		}
 		return saleSampleSends;

+ 6 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseProofingService.java

@@ -127,4 +127,10 @@ public interface PurchaseProofingService {
 	 * @param attachs
 	 */
 	public void saveApprovalPpdattach(List<Attach> attachs);
+
+	/**
+	 * 保存从ERP传输过来的送样单的附件
+	 * @param attachs
+	 */
+	public void saveSendAttach(List<Attach> attachs);
 }

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

@@ -83,6 +83,27 @@ public class PurchaseProofingServiceImpl implements PurchaseProofingService{
 			}
 		}
 	}
+	
+	@Override
+	public void saveSendAttach(List<Attach> attachs) {
+		if (!CollectionUtils.isEmpty(attachs)) {
+			long enUU = SystemSession.getUser().getEnterprise().getUu();
+			for (Attach attach : attachs) {
+				List<PurchaseProofingSend> proofingSends = purchaseProofingSendDao.findByProofingItemVendUUAndCode(enUU, attach.getSourceId());
+				if (!CollectionUtils.isEmpty(proofingSends)) {
+					PurchaseProofingSend proofingSend = proofingSends.get(0);
+					String atId = proofingSend.getAttach();
+					if (!StringUtils.hasText(atId))
+						atId = "";
+					else
+						atId += ",";
+					atId += attach.getId();
+					proofingSend.setAttach(atId);
+					purchaseProofingSendDao.save(proofingSend);
+				}
+			}
+		}
+	}
 
 	@Override
 	public void saveApprovalAttach(List<Attach> attachs) {
@@ -233,6 +254,14 @@ public class PurchaseProofingServiceImpl implements PurchaseProofingService{
 			else //卖方ERP的操作数据上传过来,忽略
 				return;
 		}
+		List<PurchaseProofingSend> proofingSends = purchaseProofingSendDao.findByProofingItemVendUUAndCode(
+				SystemSession.getUser().getEnterprise().getUu(), proofingSend.getCode());
+		if(proofingSends.size() > 0) {
+			if(isB2b)//b2B上操作,报错
+				throw new IllegalOperatorException("送样单号已存在");
+			else //卖方ERP的操作数据上传过来,忽略
+				return;
+		}
 		proofingItem.setStatus((short) Status.SEND.value());
 		proofingSend.setProofingItem(proofingItem);
 		proofingSend.setSendQty(proofingItem.getQty());