认领处理单-字段补充-日志优化
This commit is contained in:
		
							parent
							
								
									c55394400f
								
							
						
					
					
						commit
						024ea6e161
					
				|  | @ -129,16 +129,20 @@ public class FeeControlApiPlugin extends AbstractFormPlugin implements Plugin { | |||
|             String supplierCode = supplier.getString("number"); | ||||
| 
 | ||||
|             HashMap<String, String> head = ApiUtils.buildHead(); | ||||
|             HashMap<String, Object> body = ApiUtils.buildBody(companyCode, this.getUserCode(), startDate.toString(), endDate.toString()); | ||||
|             HashMap<String, Object> body = ApiUtils.buildBody(companyCode, this.getUserCode(), startDate, endDate); | ||||
|             HashMap<String, Object> data = (HashMap<String, Object>) body.get("data"); | ||||
| 
 | ||||
|             // 添加额外的参数 | ||||
|             data.put("SupplierCode", supplierCode); | ||||
|             data.put("IsWriteOffDetail", true); | ||||
| 
 | ||||
|             //String response = ApiUtils.sendPost(head, body, "预付款清单接口地址", billNumber, "预付款清单接口", "Query"); | ||||
|             //handlePaymentApiResponse(response); | ||||
|             handlePaymentApiResponse(); | ||||
|             String response = ApiUtils.sendPost(head, body, "https://hipint-stg.jahwa.com.cn:6443/gateway/HIP_ReceiveFromFM/1.0/fm/send"); | ||||
|             if (response!=null){ | ||||
|                 Boolean result = parseResponse(response, billNumber, String.valueOf(body), "预付款单清单查询接口"); | ||||
|                 if (result){ | ||||
|                     handlePaymentApiResponse(response); | ||||
|                 } | ||||
|             } | ||||
|         } catch (Exception e) { | ||||
|             logger.error("Error in handlePaymentApi: " + e.getMessage(), e); | ||||
|             this.getView().showMessage("处理预付款清单接口时发生错误!"); | ||||
|  | @ -148,21 +152,24 @@ public class FeeControlApiPlugin extends AbstractFormPlugin implements Plugin { | |||
|     private void handleLoanApi(String companyCode, Date startDate, Date endDate, String billNumber) { | ||||
|         try { | ||||
|             HashMap<String, String> head = ApiUtils.buildHead(); | ||||
|             HashMap<String, Object> body = ApiUtils.buildBody(companyCode, this.getUserCode(), startDate.toString(), endDate.toString()); | ||||
|             //String response = ApiUtils.sendPost(head, body, "借款单清单接口地址", billNumber, "借款单清单接口", "Query"); | ||||
|             //handleLoanApiResponse(response); | ||||
|             handleLoanApiResponse(); | ||||
|             HashMap<String, Object> body = ApiUtils.buildBody(companyCode, this.getUserCode(), startDate, endDate); | ||||
|             String response = ApiUtils.sendPost(head, body, "https://hipint-stg.jahwa.com.cn:6443/gateway/HIP_ReceiveFromFM/1.0/fm/send"); | ||||
|             if (response!=null){ | ||||
|                 Boolean result = parseResponse(response, billNumber, String.valueOf(body), "借款单清单查询接口"); | ||||
|                 if (result){ | ||||
|                     handleLoanApiResponse(response); | ||||
|                 } | ||||
|             } | ||||
|         } catch (Exception e) { | ||||
|             logger.error("Error in handleLoanApi: " + e.getMessage(), e); | ||||
|             this.getView().showMessage("处理借款单清单接口时发生错误!"); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void handlePaymentApiResponse() { | ||||
|     private void handlePaymentApiResponse(String response) { | ||||
|         try { | ||||
|             hideLoanFields(); | ||||
|             //获取测试数据 | ||||
|             String response = getPaymentApiResponse(); | ||||
|             JSONObject root = JSONObject.parseObject(response); | ||||
|             JSONObject data = root.getJSONObject("data"); | ||||
|             JSONArray rows = data.getJSONArray("rows"); | ||||
|  | @ -180,105 +187,26 @@ public class FeeControlApiPlugin extends AbstractFormPlugin implements Plugin { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private String getPaymentApiResponse() { | ||||
|         return "{\n" + | ||||
|                 "  \"rootContextID\": \"8as6dfasd6f98as7d6f9a98sd76f\",\n" + | ||||
|                 "  \"code\": \"0\",\n" + | ||||
|                 "  \"msg\": \"成功\",\n" + | ||||
|                 "  \"data\": {\n" + | ||||
|                 "    \"total\": 2,\n" + | ||||
|                 "    \"rows\": [\n" + | ||||
|                 "      {\n" + | ||||
|                 "        \"ID\": \"fc7443ac-9f85-4d17-a7ee-5620330f28a6\",\n" + | ||||
|                 "        \"RequestCode\": \"YFK2025010900001\",\n" + | ||||
|                 "        \"RequestAmt\": 111,\n" + | ||||
|                 "        \"RequestDate\": \"2025-01-09 11:29:22\",\n" + | ||||
|                 "        \"GLDate\": \"2025-01-14 00:00:00\",\n" + | ||||
|                 "        \"RequestUserName\": \"余超\",\n" + | ||||
|                 "        \"AvailableAmt\": 111,\n" + | ||||
|                 "        \"SupplierId\": 89948,\n" + | ||||
|                 "        \"SupplierId_Name\": \"品销宝\",\n" + | ||||
|                 "        \"CompanyCode\": \"C021\",\n" + | ||||
|                 "        \"CompanyName\": \"上海家化电子商务有限公司\",\n" + | ||||
|                 "        \"RequestRemark\": \"测试\",\n" + | ||||
|                 "        \"LoanDetailInfo\": [\n" + | ||||
|                 "          {\n" + | ||||
|                 "            \"BillHeaderID\": \"fc7443ac-9f85-4d17-a7ee-5620330f28a6\",\n" + | ||||
|                 "            \"PoOrderNo\": null,\n" + | ||||
|                 "            \"PoOrderColNo\": null,\n" + | ||||
|                 "            \"DetailID\": \"d7bc66bf-11e7-4ef5-9d98-80881c1caff7\",\n" + | ||||
|                 "            \"ApplyAmt\": 111,\n" + | ||||
|                 "            \"ThisAmt\": null,\n" + | ||||
|                 "            \"AvailableAmt\": 111,\n" + | ||||
|                 "            \"RequestCode\": \"YFK2025010900001\",\n" + | ||||
|                 "            \"RequestName\": \"2025-01-09对公预付款单\",\n" + | ||||
|                 "            \"RequestAmt\": 111,\n" + | ||||
|                 "            \"InitialAmount\": 111,\n" + | ||||
|                 "            \"Remark\": \"测试\",\n" + | ||||
|                 "            \"CreatedDate\": \"2025-01-09 11:29:11\",\n" + | ||||
|                 "            \"ExpenseItemName\": \"会务费\",\n" + | ||||
|                 "            \"CurrencyId\": 10510,\n" + | ||||
|                 "            \"BillAvailableAmt\": 111\n" + | ||||
|                 "          }\n" + | ||||
|                 "        ]\n" + | ||||
|                 "      },\n" + | ||||
|                 "      {\n" + | ||||
|                 "        \"ID\": \"fc7443ac-9f65-4d17-a7ee-5620330f28a6\",\n" + | ||||
|                 "        \"RequestCode\": \"YFK2025010900002\",\n" + | ||||
|                 "        \"RequestAmt\": 100,\n" + | ||||
|                 "        \"RequestDate\": \"2025-02-18 11:29:22\",\n" + | ||||
|                 "        \"GLDate\": \"2025-01-14 00:00:00\",\n" + | ||||
|                 "        \"RequestUserName\": \"余超\",\n" + | ||||
|                 "        \"AvailableAmt\": 100,\n" + | ||||
|                 "        \"SupplierId\": 89949,\n" + | ||||
|                 "        \"SupplierId_Name\": \"雀氏\",\n" + | ||||
|                 "        \"CompanyCode\": \"C021\",\n" + | ||||
|                 "        \"CompanyName\": \"上海家化电子商务有限公司\",\n" + | ||||
|                 "        \"RequestRemark\": \"测试\",\n" + | ||||
|                 "        \"LoanDetailInfo\": [\n" + | ||||
|                 "          {\n" + | ||||
|                 "            \"BillHeaderID\": \"fc7443ac-9f65-4d17-a7ee-5620330f28a6\",\n" + | ||||
|                 "            \"PoOrderNo\": null,\n" + | ||||
|                 "            \"PoOrderColNo\": null,\n" + | ||||
|                 "            \"DetailID\": \"d7bc66bf-11e7-4ef5-9d98-80881c1caff3\",\n" + | ||||
|                 "            \"ApplyAmt\": 100,\n" + | ||||
|                 "            \"ThisAmt\": null,\n" + | ||||
|                 "            \"AvailableAmt\": 100,\n" + | ||||
|                 "            \"RequestCode\": \"YFK2025010900002\",\n" + | ||||
|                 "            \"RequestName\": \"2025-02-18对公预付款单\",\n" + | ||||
|                 "            \"RequestAmt\": 100,\n" + | ||||
|                 "            \"InitialAmount\": 100,\n" + | ||||
|                 "            \"Remark\": \"测试\",\n" + | ||||
|                 "            \"CreatedDate\": \"2025-02-18 11:29:11\",\n" + | ||||
|                 "            \"ExpenseItemName\": \"会务费\",\n" + | ||||
|                 "            \"CurrencyId\": 10511,\n" + | ||||
|                 "            \"BillAvailableAmt\": 100\n" + | ||||
|                 "          }\n" + | ||||
|                 "        ]\n" + | ||||
|                 "      }\n" + | ||||
|                 "    ]\n" + | ||||
|                 "  }\n" + | ||||
|                 "}\n"; | ||||
|     } | ||||
| 
 | ||||
|     private void setPaymentApiValues(JSONObject top, JSONObject detail, int i) { | ||||
|         try { | ||||
|             this.getModel().setValue("shjh_billno", top.getString("CompanyCode"), i); | ||||
|             this.getModel().setValue("shjh_prepaymentnum", top.getString("RequestCode"), i); | ||||
|             this.getModel().setValue("shjh_purchasenum", detail.getString("PoOrderNo"), i); | ||||
|             this.getModel().setValue("shjh_purchaselinenum", detail.getString("PoOrderColNo"), i); | ||||
|             this.getModel().setValue("shjh_billsubject", detail.getString("RequestName"), i); | ||||
|             this.getModel().setValue("shjh_prepaymentdate", detail.getDate("CreatedDate"), i); | ||||
|             this.getModel().setValue("shjh_paymentamount", top.getBigDecimal("RequestAmt"), i); | ||||
|             this.getModel().setValue("shjh_documentamount", top.getBigDecimal("AvailableAmt"), i); | ||||
|             this.getModel().setValue("shjh_verificationnum", top.getString("StrColumn20"), i); | ||||
|             this.getModel().setValue("shjh_fiscalyear", top.getString("GLDate").substring(0, 4), i); | ||||
|         } catch (Exception e) { | ||||
|             logger.error("预付单赋值异常: " + e.getMessage(), e); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void handleLoanApiResponse() { | ||||
|     private void handleLoanApiResponse(String response) { | ||||
|         try { | ||||
|             hidePaymentFields(); | ||||
|             String response = getLoanApiResponse(); | ||||
|             JSONObject root = JSONObject.parseObject(response); | ||||
|             JSONObject data = root.getJSONObject("data"); | ||||
|             JSONArray rows = data.getJSONArray("rows"); | ||||
|  | @ -294,38 +222,6 @@ public class FeeControlApiPlugin extends AbstractFormPlugin implements Plugin { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private String getLoanApiResponse() { | ||||
| 
 | ||||
|         return "{\n" + | ||||
|                 "  \"rootContextID\": \"8as6dfasd6f98as7d6f9a98sd76f\",\n" + | ||||
|                 "  \"code\": \"0\",\n" + | ||||
|                 "  \"msg\": \"成功\",\n" + | ||||
|                 "  \"data\": {\n" + | ||||
|                 "    \"total\": 1,\n" + | ||||
|                 "    \"rows\": [\n" + | ||||
|                 "      {\n" + | ||||
|                 "        \"ID\": \"a50547a4-d661-486b-a5c0-adecdbe958b9\",\n" + | ||||
|                 "        \"RequestCode\": \"JKY2025011400001\",\n" + | ||||
|                 "        \"RequestName\": \"财务及分销系统余超2025-01-14员工借款单员工借款员工借款\",\n" + | ||||
|                 "        \"RequestAmt\": 111,\n" + | ||||
|                 "        \"RequestDate\": \"2025-01-14 14:57:13\",\n" + | ||||
|                 "        \"GLDate\": \"2025-01-14 00:00:00\",\n" + | ||||
|                 "        \"RequestUserName\": \"余超\",\n" + | ||||
|                 "        \"AvailableAmt\": 111,\n" + | ||||
|                 "        \"CurrencyName\": \"人民币\",\n" + | ||||
|                 "        \"StrColumn6\": \"6217001180014130648\",\n" + | ||||
|                 "        \"StrColumn7\": \"建设银行\",\n" + | ||||
|                 "        \"CompanyCode\": \"C001\",\n" + | ||||
|                 "        \"CompanyName\": \"上海家化联合股份有限公司\",\n" + | ||||
|                 "        \"RequestRemark\": \"上传\",\n" + | ||||
|                 "        \"StrColumn20\": \"1600000001\",\n" + | ||||
|                 "        \"LoanDetailInfo\": null\n" + | ||||
|                 "      }\n" + | ||||
|                 "    ]\n" + | ||||
|                 "  }\n" + | ||||
|                 "}\n"; | ||||
|     } | ||||
| 
 | ||||
|     private void setLoanApiValues(JSONObject top, int i) { | ||||
|         try { | ||||
|             this.getModel().setValue("shjh_billno", top.getString("CompanyCode"), i); | ||||
|  | @ -410,4 +306,35 @@ public class FeeControlApiPlugin extends AbstractFormPlugin implements Plugin { | |||
| 
 | ||||
|         return number; | ||||
|     } | ||||
|     } | ||||
| 
 | ||||
|     private Boolean parseResponse(String response,String billNumber,String body,String apiName){ | ||||
|         JSONObject result = JSONObject.parseObject(response); | ||||
|         boolean success=false; | ||||
|         if (null!=result){ | ||||
|             String code = result.getString("code"); | ||||
|             switch (code){ | ||||
|                 case "0": | ||||
|                    success=true; | ||||
|                     EsbUtils.saveLog(billNumber,apiName,body,response,true,"ESBQueryApi","查询成功"); | ||||
|                     break; | ||||
|                 case "1": | ||||
|                     this.getView().showMessage("服务异常"); | ||||
|                    EsbUtils.saveLog(billNumber,apiName,body,response,false,"ESBQueryApi","服务异常"); | ||||
|                    break; | ||||
|                 case "2": | ||||
|                     this.getView().showMessage("三方服务异常"); | ||||
|                     EsbUtils.saveLog(billNumber,apiName,body,response,false,"ESBQueryApi","三方服务异常"); | ||||
|                     break; | ||||
|                 case "3": | ||||
|                     this.getView().showMessage("业务异常"); | ||||
|                     EsbUtils.saveLog(billNumber,apiName,body,response,false,"ESBQueryApi","业务异常"); | ||||
|                     break; | ||||
|                 default: | ||||
|                     this.getView().showMessage("未知异常"); | ||||
|                     EsbUtils.saveLog(billNumber,apiName,body,response,false,"ESBQueryApi","未知异常"); | ||||
|                     break; | ||||
|             } | ||||
|         } | ||||
|         return success; | ||||
|     } | ||||
| } | ||||
|  | @ -32,7 +32,7 @@ public class ApiUtils { | |||
|         return header; | ||||
|     } | ||||
| 
 | ||||
|     public static HashMap<String,Object> buildBody(String companyCode,String userCode,String queryBeginDate,String queryEndDate){ | ||||
|     public static HashMap<String,Object> buildBody(String companyCode,String userCode,Date queryBeginDate,Date queryEndDate){ | ||||
|         // 生成唯一事务ID | ||||
|         String rootContextId = UUID.randomUUID().toString(); | ||||
|         // 获取当前请求时间,格式为 yyyy-MM-dd HH:mm:ss.SSS | ||||
|  | @ -43,8 +43,8 @@ public class ApiUtils { | |||
|         body.put("requestTime",requestTime); | ||||
|         HashMap<String,Object> data = new HashMap<>(10); | ||||
|         data.put("UserCode",userCode); | ||||
|         data.put("QueryBeginDate",queryBeginDate); | ||||
|         data.put("QueryEndDate",queryEndDate); | ||||
|         data.put("QueryBeginDate",sdf.format(queryBeginDate)); | ||||
|         data.put("QueryEndDate",sdf.format(queryEndDate)); | ||||
|         data.put("page","1"); | ||||
|         data.put("rows","10"); | ||||
|         data.put("CompanyCode",companyCode); | ||||
|  | @ -60,7 +60,7 @@ public class ApiUtils { | |||
|      * @return | ||||
|      * @throws IOException | ||||
|      */ | ||||
|     public static String sendPost(HashMap header, HashMap body, String url ,String billNumber,String api,String processName) throws IOException { | ||||
|     public static String sendPost(HashMap header, HashMap body, String url) throws IOException { | ||||
|         String responseData = ""; | ||||
|         // 准备要发送的 JSON 数据 | ||||
|         // 使用 FastJSON 将 Map 转换为 JSON 字符串 | ||||
|  | @ -82,10 +82,8 @@ public class ApiUtils { | |||
|             // 获取响应数据 | ||||
|             responseData = EntityUtils.toString(response.getEntity()); | ||||
|             log.info("SendPost,Response: " + responseData); | ||||
|             EsbUtils.saveLog(billNumber,api,httpPost.toString(),response.toString(),true,processName); | ||||
|         } else { | ||||
|             log.info("SendPost,Error: " + response.getStatusLine().getStatusCode()); | ||||
|             EsbUtils.saveLog(billNumber,api,httpPost.toString(),response.toString(),false,processName); | ||||
|         } | ||||
|         return responseData; | ||||
|     } | ||||
|  |  | |||
|  | @ -184,4 +184,21 @@ public class EsbUtils { | |||
|         billinfo.set("creator",currUserId); | ||||
|         SaveServiceHelper.save(new DynamicObject[]{billinfo}); | ||||
|     } | ||||
| 
 | ||||
|     public static void saveLog(String billno,String jkname,String inputs,String outputs,boolean isSuccess,String operation,String responseCode){ | ||||
|         //保存星瀚与第三方接口调用之间的日志记录 | ||||
|         //参数说明:单据编号、接口名称、接口入参、接口返回值、接口执行结果是否成功、操作名称(audit、unaudit等)、响应码 | ||||
|         DynamicObject billinfo = BusinessDataServiceHelper.newDynamicObject(jklogEntityName); | ||||
|         billinfo.set("number",billno); | ||||
|         billinfo.set("name",jkname); | ||||
|         billinfo.set("shjh_inputs_tag",inputs); | ||||
|         billinfo.set("shjh_outputs_tag",outputs); | ||||
|         billinfo.set("shjh_issuccess",isSuccess); | ||||
|         billinfo.set("shjh_operation",operation); | ||||
|         billinfo.set("shjh_responsecode",responseCode); | ||||
|         billinfo.set("status","A"); | ||||
|         long currUserId = RequestContext.get().getCurrUserId(); | ||||
|         billinfo.set("creator",currUserId); | ||||
|         SaveServiceHelper.save(new DynamicObject[]{billinfo}); | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue