P15GEN2\59518
2025-10-18 56638c01bb2cc61a92f5e03c9a1001be5b5d3699
foundation.icall/src/foundation/icall/connector/KingdeeAIConn.java
@@ -24,6 +24,7 @@
import foundation.io.template.Template;
import foundation.util.MD5Utils;
import foundation.util.MapList;
import foundation.util.Util;
import foundation.workflow.WorkStep;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
@@ -62,8 +63,8 @@
   @Override
   public ICallRequest createRequest(String url) {
      String host = meta.getString("host");
      ICallRequest request = new ICallRequest(host + url);
      String host = meta.getString("url");
      ICallRequest request = new ICallRequest(host + url + "?access_token=" + token);
      request.addHeader("access_token", token);
      
      return request;
@@ -71,14 +72,15 @@
   @Override
   public IRequest buildBody(IRequest request, WorkStep step, ICall iCall) throws Exception {
      DataReader dataReader = step.getDataReader();
      String jsonBody = null;
      ContentType contentType = iCall.getContentType();
      if (ContentType.TextPlain == contentType) {
         FileRecord fileRecord = FileCenter.uploadOneFile(dataReader);
         File file = fileRecord.getFile();
      DataPackage dataPackage = step.getDataPackage();
      dataPackage.loadOneDataFromDB();
      String fileId = dataPackage.getString("file_id", null);
      if (!Util.isEmpty(fileId) && ContentType.TextPlain == contentType) {
         FileRecord fileRecord = FileCenter.getFile(dataPackage.getName(), fileId);
         File file = fileRecord.getFile();
         
         request.setDocDescription(new DocDescription(fileRecord.getIndexId(), fileRecord.getFileName()));
         jsonBody = imageToBase64(file);
@@ -87,10 +89,8 @@
            logger.error("无法对图片{}进行Base64编码,无法进行AI识别", file);
            return null;
         }
      }
      else {
         DataPackage dataPackage = step.getDataPackage();
         dataPackage.loadDataFromRequest();
         Entity master = dataPackage.getMasterEntity(DataSource.Request);
@@ -104,20 +104,20 @@
         if (master != null) {
            request.setDocDescription(new DocDescription(master.getId(), master.getString("code")));
         }
      }
      request.setContentType(contentType.getCode());
      request.setJSONBody(jsonBody);
      request.setContentType(contentType.getCode());
      return request;
   }
   
   private void getToken() throws Exception {
      long currentTimeStamp = System.currentTimeMillis();
      String client_id = meta.getString("client_id");
      String client_secret = meta.getString("client_secret");
      String host = meta.getString("host");
      String token_path = meta.getString("token_path");
      String client_id = meta.getString("clientid");
      String client_secret = meta.getString("clientsecret");
      String host = meta.getString("url");
      String token_path = meta.getString("tokenpath");
      String sign = MD5Utils.MD5Encode(client_id + client_secret + currentTimeStamp, "UTF-8");
      // 1. build request