| 
					
				 | 
			
			
				@@ -11,14 +11,19 @@ import kd.bos.list.BillList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import kd.bos.list.plugin.AbstractListPlugin; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import kd.bos.logging.Log; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import kd.bos.logging.LogFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.orm.ORM; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import kd.bos.orm.query.QCP; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import kd.bos.orm.query.QFilter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.servicehelper.AttachmentServiceHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import kd.bos.servicehelper.BusinessDataServiceHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.servicehelper.operation.SaveServiceHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.servicehelper.user.UserServiceHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.url.UrlService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.util.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import kd.fi.cas.util.EmptyUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import kd.sdk.plugin.Plugin; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Arrays; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 改造付款单列表查询 查询银行回单、交易明细 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -59,16 +64,12 @@ public class PayBillSearchListPlugin extends AbstractListPlugin implements Plugi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (operationResult != null && operationResult.isSuccess() && "elecreceipt".equals(operateKey)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            logger.info("-- 付款单联查电子回单开始 --"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.info("-- 付款单联查电子回单附件开始 --"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(EmptyUtil.isNoEmpty(payBillIdList)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String billId = payBillIdList.get(0).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Long  elebillId = getElecreceiptID(billId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String formId= "bei_elecreceipt"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                showParameter.setFormId(formId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                showParameter.setPkId(elebillId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                showParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                showParameter.setStatus(OperationStatus.VIEW); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                this.getView().showForm(showParameter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Map<String,Object>  fileMap = getElecreceiptByFile(billId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (fileMap == null) return ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.getView().previewAttachment(fileMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -90,16 +91,72 @@ public class PayBillSearchListPlugin extends AbstractListPlugin implements Plugi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param payBillId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Long getElecreceiptID(String payBillId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Map<String,Object> getElecreceiptByFile(String payBillId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long billId = Long.parseLong(payBillId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         QFilter qf = new QFilter("id", QCP.equals, billId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DynamicObject billDyn = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{qf}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String transdetailId = billDyn.getString("detailseqid"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(StringUtils.isEmpty(transdetailId)) return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         QFilter qf1 = new QFilter("billno", QCP.equals, transdetailId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DynamicObject transdetailDyn = BusinessDataServiceHelper.loadSingle("bei_transdetail", new QFilter[]{qf1}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(EmptyUtil.isEmpty(transdetailDyn)) return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String elecreceiptNo = transdetailDyn.getString("receiptno"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         QFilter qf2 = new QFilter("receiptno", QCP.equals, elecreceiptNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DynamicObject elecreceiptDyn = BusinessDataServiceHelper.loadSingle("bei_elecreceipt", new QFilter[]{qf2}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return elecreceiptDyn.getLong("id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(EmptyUtil.isEmpty(elecreceiptDyn)) return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Object> attachmentMap = getAttachmentFile(elecreceiptDyn.getLong("id")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(attachmentMap == null) return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String filepath = elecreceiptDyn.getString("filepath"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         * 获取持久化附件的预览url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         * @param path 持久化附件的downloadUrl相对路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         * @return 持久化附件的预览url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         *  入参示例: /tenant_devcore_dev/1402323749146986496/202305/1683569603244172288/5b3c272f9d5a42fdbecddf2d84bcdd56/Wo rd文档.docx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String previewUrl = UrlService.getAttachmentPreviewUrl(filepath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String downloadUrl = UrlService.getAttachmentDownloadUrl(filepath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        previewUrl = previewUrl.replace("http://127.0.0.1:8881","https://d-kd.jeyoupharma.com:8022"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        downloadUrl = downloadUrl.replace("http://127.0.0.1:8881","https://d-kd.jeyoupharma.com:8022"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String,Object> attMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        attMap.put("previewurl",previewUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        attMap.put("url",downloadUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        attMap.put("uid",attachmentMap.get("uid")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        attMap.put("type", attachmentMap.get("type")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        attMap.put("name",attachmentMap.get("name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        attMap.put("size", attachmentMap.get("size")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        attMap.put("status","success"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        attMap.put("visible","1000"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        attMap.put("downloadUrl", previewUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        attMap.put("fileExt", attachmentMap.get("type")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        attMap.put("fileId", attachmentMap.get("uid")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        attMap.put("fileName", attachmentMap.get("name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        attMap.put("fileSize", attachmentMap.get("size")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        attMap.put("fileTime", attachmentMap.get("createdate")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        attMap.put("filesource", "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        attMap.put("previewType", "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        attMap.put("previewUrl", previewUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        attMap.put("status", "success"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return attMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static Map<String, Object>  getAttachmentFile(Long billId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //创建一条基础资料数据-附件字段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取单据信息,并查询单据中的附件字段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        QFilter qf = new QFilter("id", QCP.equals, billId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        DynamicObject file =BusinessDataServiceHelper.loadSingle("bei_elecreceipt", "attachmentpanel",new QFilter[]{qf}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取单据中附件面板信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Map<String, Object>> atts = AttachmentServiceHelper.getAttachments("bei_elecreceipt", file.getPkValue().toString(), "attachmentpanel"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //遍历文件   电子回单只有一条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (Map<String, Object>  att: atts) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return att; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |