| 
					
				 | 
			
			
				@@ -32,6 +32,9 @@ import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 交易明细API插件类 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 用于处理交易明细相关的操作,如保存交易明细信息。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @author turborao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @date 2025/05/24 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @ApiController(value = "nstc", desc = "对接九恒星交易明细") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @ApiMapping("/nstc") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -167,17 +170,23 @@ public class TransDetailApiPlugin implements Serializable { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * 资金组织判断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String company  = jsonObject.getString("company"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        DynamicObject companyByn = BusinessDataServiceHelper.loadSingle("bos_org",new QFilter[]{new QFilter("number", QCP.equals, company)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(EmptyUtils.isEmpty(companyByn)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            errMsg.append("资金组织不存在;"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            transDetail.set(BeiTransdetailConstantInfo.COMPANY, companyByn); // 资金组织Number 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //String company  = jsonObject.getString("company"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        JSONObject companyObj =  jsonObject.getJSONObject("company"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (EmptyUtils.isNotEmpty(companyObj)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String company = companyObj.getString("id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            DynamicObject companyByn = BusinessDataServiceHelper.loadSingle("bos_org", new QFilter[]{new QFilter("number", QCP.equals, company)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (EmptyUtils.isEmpty(companyByn)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                errMsg.append("资金组织不存在;"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                transDetail.set(BeiTransdetailConstantInfo.COMPANY, companyByn); // 资金组织Number 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            errMsg.append("组织不能为空;"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * 银行账号Number 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String bankAccount = jsonObject.getString("bankAccount"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String bankAccount = jsonObject.getString("bankAccountNumber"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         DynamicObject bankAccountByn = BusinessDataServiceHelper.loadSingle("bd_accountbanks",new QFilter[]{new QFilter("number", QCP.equals, bankAccount)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (EmptyUtils.isEmpty(bankAccountByn)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             errMsg.append("银行账号不存在;"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -188,12 +197,16 @@ public class TransDetailApiPlugin implements Serializable { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * 币种ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String currency = jsonObject.getString("currency"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        DynamicObject currencyByn = BusinessDataServiceHelper.loadSingle("bd_currency",new QFilter[]{new QFilter("number", QCP.equals, currency)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (EmptyUtils.isEmpty(currencyByn)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            errMsg.append("币种不存在;"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            transDetail.set(BeiTransdetailConstantInfo.CURRENCY, currencyByn); // 币种Number 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //String currency = jsonObject.getString("currency"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        JSONObject currencyObj =  jsonObject.getJSONObject("currency"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (EmptyUtils.isNotEmpty(currencyObj)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String currency = currencyObj.getString("id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            DynamicObject currencyByn = BusinessDataServiceHelper.loadSingle("bd_currency", new QFilter[]{new QFilter("number", QCP.equals, currency)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (EmptyUtils.isEmpty(currencyByn)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                errMsg.append("币种不存在;"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                transDetail.set(BeiTransdetailConstantInfo.CURRENCY, currencyByn); // 币种Number 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String bizTimeStr =  jsonObject.getString("bizTime"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Date bizTime = DateUtils.parseDateTime(bizTimeStr, "yyyy-MM-dd HH:mm:ss"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -228,17 +241,21 @@ public class TransDetailApiPlugin implements Serializable { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * 入账状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * 待入账=0,已入账=1,无需入账=2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String isReced = jsonObject.getString("isReced"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        switch (isReced) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case "0": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                transDetail.set(BeiTransdetailConstantInfo.RECEREDTYPE, "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case "1": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                transDetail.set(BeiTransdetailConstantInfo.RECEREDTYPE, "3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                errMsg.append("入账状态不存在;"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //String isReced = jsonObject.getString("isReced"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        JSONObject isRecedObj =  jsonObject.getJSONObject("isReced"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (EmptyUtils.isNotEmpty(isRecedObj)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String isReced = isRecedObj.getString("value"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            switch (isReced) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "0": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    transDetail.set(BeiTransdetailConstantInfo.RECEREDTYPE, "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "1": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    transDetail.set(BeiTransdetailConstantInfo.RECEREDTYPE, "3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    errMsg.append("入账状态不存在;"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -260,22 +277,26 @@ public class TransDetailApiPlugin implements Serializable { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * 存款结息	15 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * 定期收益	16 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String bizType = jsonObject.getString("bizType"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        switch (bizType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case "1": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case "2": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                transDetail.set(BeiTransdetailConstantInfo.ISTRANSUP, true); // 是否上划 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case "3": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                transDetail.set(BeiTransdetailConstantInfo.ISTRANSDOWN, true); // 是否下拨 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                errMsg.append("业务类型不存在;"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        JSONObject bizTypeObj =  jsonObject.getJSONObject("bizType"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (EmptyUtils.isNotEmpty(bizTypeObj)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String bizType = jsonObject.getString("value"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            switch (bizType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "1": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "2": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    transDetail.set(BeiTransdetailConstantInfo.ISTRANSUP, true); // 是否上划 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "3": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    transDetail.set(BeiTransdetailConstantInfo.BIZTYPE, "3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    transDetail.set(BeiTransdetailConstantInfo.ISTRANSDOWN, true); // 是否下拨 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    errMsg.append("业务类型不存在;"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(EmptyUtils.isNotEmpty(errMsg)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return errMsg.toString(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -330,6 +351,14 @@ public class TransDetailApiPlugin implements Serializable { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return errMsg.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 保存电子回单信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param transDetail 交易明细对象,包含交易的详细信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param elecreceipt 电子回单对象,如果已存在则不为空 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param electricAddress 电子回单的地址,用于从FTP服务器下载文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 返回错误信息,如果没有错误则返回空字符串 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private String saveElecreceipt( DynamicObject transDetail,DynamicObject elecreceipt,String electricAddress) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         StringBuilder errMsg = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |