diff --git a/com.awspaas.user.apps.gpt_interface/lib/com.awspaas.user.apps.gpt_interface.jar b/com.awspaas.user.apps.gpt_interface/lib/com.awspaas.user.apps.gpt_interface.jar
new file mode 100644
index 00000000..418a4d2a
Binary files /dev/null and b/com.awspaas.user.apps.gpt_interface/lib/com.awspaas.user.apps.gpt_interface.jar differ
diff --git a/com.awspaas.user.apps.gpt_interface/manifest.xml b/com.awspaas.user.apps.gpt_interface/manifest.xml
new file mode 100644
index 00000000..62e9fcf0
--- /dev/null
+++ b/com.awspaas.user.apps.gpt_interface/manifest.xml
@@ -0,0 +1,29 @@
+
+
+
+ 伊利GPT接口对接
+ 1.0
+ 12
+ AWSPaaS-EndUser
+ true
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+ true
+ com.actionsoft.apps.coe.pal
+
+ 2024-09-30 15:25:40
+
+
+ 2024-09-30
+ 2024-09-29 12:00:57
+
diff --git a/com.awspaas.user.apps.gpt_interface/mobile/mobile-profile.xml b/com.awspaas.user.apps.gpt_interface/mobile/mobile-profile.xml
new file mode 100644
index 00000000..a93e3e64
--- /dev/null
+++ b/com.awspaas.user.apps.gpt_interface/mobile/mobile-profile.xml
@@ -0,0 +1,15 @@
+
+
+
+
+ universal
+
+ 1.0
+ common
+
+ sid
+ false
+ true
+ false
+
+
diff --git a/com.awspaas.user.apps.gpt_interface/repository/cc/_51d44dfa-b7c2-4422-9e51-fbd7b43e0218/51d44dfa-b7c2-4422-9e51-fbd7b43e0218.xml b/com.awspaas.user.apps.gpt_interface/repository/cc/_51d44dfa-b7c2-4422-9e51-fbd7b43e0218/51d44dfa-b7c2-4422-9e51-fbd7b43e0218.xml
new file mode 100644
index 00000000..e1f4dd72
--- /dev/null
+++ b/com.awspaas.user.apps.gpt_interface/repository/cc/_51d44dfa-b7c2-4422-9e51-fbd7b43e0218/51d44dfa-b7c2-4422-9e51-fbd7b43e0218.xml
@@ -0,0 +1,16 @@
+
+
+ 51d44dfa-b7c2-4422-9e51-fbd7b43e0218
+ admin
+ 2024-09-23 15:23:09
+ admin
+ 2024-09-23 15:23:52
+ tGOmxiTgjT/77UoYpSlq8Vc+hHPRoJWHdZexXc7zEpYuMNdhvSICeJnlc/RzRHGrnAnDbDtRxYtOiGaYhu68Qpdguiwbwk9rZfmMRYUv7FwmvS8qgI5pTyPJabB/ltDF
+ false
+ GPT初始化接口
+ httpApi
+ service
+ false
+ {"serviceId":"","serverType":"Java注解","ptype":"webapi","serviceImpl":"com.awspaas.user.apps.gpt_interface.restful.GPTRestFul","safetyCert":[],"flowControl":"","accessControl":"","desc":"","isSupportCors":true,"isAudit":true,"isLog":false,"apiData":[],"isSLA":false,"status.effect":true}
+
+
diff --git a/com.awspaas.user.apps.gpt_interface/src/com/awspaas/user/apps/gpt_interface/controller/GPTController.java b/com.awspaas.user.apps.gpt_interface/src/com/awspaas/user/apps/gpt_interface/controller/GPTController.java
index 84076ce1..159009a1 100644
--- a/com.awspaas.user.apps.gpt_interface/src/com/awspaas/user/apps/gpt_interface/controller/GPTController.java
+++ b/com.awspaas.user.apps.gpt_interface/src/com/awspaas/user/apps/gpt_interface/controller/GPTController.java
@@ -1,8 +1,15 @@
package com.awspaas.user.apps.gpt_interface.controller;
+import com.actionsoft.apps.coe.pal.pal.repository.dao.CoeProcessLevelDaoFacotory;
+import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
import com.actionsoft.bpms.commons.htmlframework.HtmlPageTemplate;
+import com.actionsoft.bpms.commons.login.constant.LoginConst;
+import com.actionsoft.bpms.org.model.UserModel;
+import com.actionsoft.bpms.server.SSOUtil;
import com.actionsoft.bpms.server.bind.annotation.Controller;
import com.actionsoft.bpms.server.bind.annotation.Mapping;
+import com.actionsoft.bpms.util.DBSql;
+import com.actionsoft.sdk.local.SDK;
import java.util.HashMap;
import java.util.Map;
@@ -20,6 +27,30 @@ public class GPTController {
public String openRepositoryHome(String repositoryId){
Map map = new HashMap<>();
map.put("repositoryId", repositoryId);
+
+ //获取用户会话ID
+ PALRepositoryModel plModel = CoeProcessLevelDaoFacotory.createCoeProcessLevel().getInstance(repositoryId);
+ String sid="";
+ if(plModel!=null){
+ String createUser = plModel.getCreateUser();
+ UserModel userModel=SDK.getORGAPI().getUser(createUser);
+ if(userModel.isClosed()==false){
+ sid = new SSOUtil().registerClientSessionNoPassword(userModel.getUID(), "cn", "", LoginConst.DEVICE_PC, null);
+ }else{
+ String modifyUser = plModel.getModifyUser();
+ UserModel modifyUserModel=SDK.getORGAPI().getUser(modifyUser);
+ if(modifyUserModel.isClosed()==false){
+ sid = new SSOUtil().registerClientSessionNoPassword(modifyUserModel.getUID(), "cn", "", LoginConst.DEVICE_PC, null);
+ }
+ }
+ }
+ String url = SDK.getPortalAPI().getPortalUrl()+"/r/w?cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open&uuid="+repositoryId+"&sid="+sid+"&taskId="+getLastPublishTaskIdByModelId(repositoryId);
+ map.put("linkUrl",url);
return HtmlPageTemplate.merge("com.awspaas.user.apps.gpt_interface", "repositoryHome.html", map);
}
+
+ public String getLastPublishTaskIdByModelId(String repositoryId) {
+ String sql = "SELECT pl.TASKID FROM APP_ACT_COE_PAL_PUBLISH p, APP_ACT_COE_PAL_PUBLISH_LIST pl WHERE pl.pid = p.id AND pl.palrepositoryid = ? ORDER BY publishdate DESC";
+ return DBSql.getString(sql,new Object[]{repositoryId});
+ }
}
diff --git a/com.awspaas.user.apps.gpt_interface/src/com/awspaas/user/apps/gpt_interface/restful/GPTRestFul.java b/com.awspaas.user.apps.gpt_interface/src/com/awspaas/user/apps/gpt_interface/restful/GPTRestFul.java
index 4e505e73..16587be1 100644
--- a/com.awspaas.user.apps.gpt_interface/src/com/awspaas/user/apps/gpt_interface/restful/GPTRestFul.java
+++ b/com.awspaas.user.apps.gpt_interface/src/com/awspaas/user/apps/gpt_interface/restful/GPTRestFul.java
@@ -28,6 +28,8 @@ import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import java.io.File;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
import java.util.List;
/**
@@ -57,19 +59,22 @@ public class GPTRestFul {
String queryListSql = "";
List maps = null;
if(UtilString.isNotEmpty(repositoryId)){//如果查询Id参数不为空
- queryListSql= " SELECT ID,PLNAME,PLORDERINDEX FROM APP_ACT_COE_PAL_REPOSITORY WHERE ISPUBLISH = '1' AND ISUSE = '1' AND ID = ?";
+ queryListSql= " SELECT ID,PLNAME,PLORDERINDEX FROM APP_ACT_COE_PAL_REPOSITORY WHERE ISPUBLISH = '1' AND ISUSE = '1' AND ID = ? AND PLMETHODID!='process.evc' AND PLMETHODID!='org.role' AND PLMETHODID!='control.kpi' ";
maps = DBSql.getMaps(queryListSql, new Object[]{repositoryId});
}else{
- queryListSql= " SELECT ID,PLNAME,PLORDERINDEX FROM APP_ACT_COE_PAL_REPOSITORY WHERE ISPUBLISH = '1' AND ISUSE = '1'";
+ queryListSql= " SELECT ID,PLNAME,PLORDERINDEX FROM APP_ACT_COE_PAL_REPOSITORY WHERE ISPUBLISH = '1' AND ISUSE = '1' AND PLMETHODID!='process.evc' AND PLMETHODID!='org.role' AND PLMETHODID!='control.kpi' ";
queryListSql = SQLPagination.getPaginitionSQL(queryListSql, (page - 1) * pageSize, pageSize);
maps = DBSql.getMaps(queryListSql, new Object[]{});
}
for (RowMap map : maps) {
JSONObject repositoryModel = new JSONObject();
String thisRepositoryId = map.getString("ID");
+ System.out.println("thisRepositoryId=========="+thisRepositoryId);
repositoryModel.put("id",thisRepositoryId);
repositoryModel.put("palName",map.getString("PLNAME"));
+ System.out.println("palName============"+map.getString("PLNAME"));
String taskId = getLastPublishTaskIdByModelId(thisRepositoryId);
+ System.out.println("taskId============"+taskId);
//String downloadUrlData= CallASLPUtil.callTranslateDocASLP(thisRepositoryId,taskId);
repositoryModel.put("fileDownLoadUrl",outputReportDownload(uc,taskId,thisRepositoryId));
repositoryModel.put("fileLinkText",map.getString("PLNAME"));
@@ -152,8 +157,16 @@ public class GPTRestFul {
}
String filename = docFile.getName();
DCContext sourceDc = new DCContext(_uc, DCProfileManager.getDCProfile(sourceAppId, "output"), sourceAppId, model.getWsId(), taskId, filename);
- String downUrl = SDK.getConfAPI().getPortalUrl() + "/r/" + sourceDc.getDownloadURL().replace("./", "");
- return downUrl;
+ String downUrl = SDK.getConfAPI().getPortalUrl() + "/r/" + sourceDc.getDownloadURL().replace("./", "").trim()+"&lastModified=0";
+
+ String downUrl2=SDK.getConfAPI().getPortalUrl() + "/r/df?groupValue="+sourceDc.getGroupValue()+"&fileValue="+ sourceDc.getFileValue().trim()+"&sid="+ _uc.getSessionId()+"&repositoryName=output&appId="+sourceAppId+"&attachment=true&fileNameShow="+sourceDc.getFileName()+"&fileName="+sourceDc.getFileName()+"&lastModified=0";
+
+
+ System.out.println("1111111111"+URLEncoder.encode(downUrl2,"UTF-8"));
+
+ //System.out.println("downUrl2====="+downUrl2);
+
+ return downUrl2;
}
}
@@ -168,4 +181,28 @@ public class GPTRestFul {
return result.toString();
}
+
+
+ /**
+ * 对中文字符进行UTF-8编码
+ * @param source 要转义的字符串
+ * @return
+ * @throws UnsupportedEncodingException
+ */
+ public static String tranformStyle(String source) throws UnsupportedEncodingException
+ {
+ char[] arr = source.toCharArray();
+ StringBuilder sb = new StringBuilder();
+ for(int i = 0; i < arr.length; i++)
+ {
+ char temp = arr[i];
+ sb.append(URLEncoder.encode("" + temp, "UTF-8"));
+ continue;
+ }
+ return sb.toString();
+ }
+
+
+
+
}
diff --git a/com.awspaas.user.apps.gpt_interface/template/page/repositoryHome.html b/com.awspaas.user.apps.gpt_interface/template/page/repositoryHome.html
new file mode 100644
index 00000000..9f967565
--- /dev/null
+++ b/com.awspaas.user.apps.gpt_interface/template/page/repositoryHome.html
@@ -0,0 +1,30 @@
+
+
+
+
+ 模型文件
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <#repositoryId>
+
+
+
+
\ No newline at end of file
diff --git a/com.awspaas.user.apps.gpt_interface/web/com.awspaas.user.apps.gpt_interface/css/gpt.css b/com.awspaas.user.apps.gpt_interface/web/com.awspaas.user.apps.gpt_interface/css/gpt.css
new file mode 100644
index 00000000..2496885e
--- /dev/null
+++ b/com.awspaas.user.apps.gpt_interface/web/com.awspaas.user.apps.gpt_interface/css/gpt.css
@@ -0,0 +1,42 @@
+/* style.css */
+#floatingChatIcon {
+ position: fixed;
+ bottom: 100px;
+ right: 20px;
+ cursor: pointer;
+ z-index: 1000; /* 确保图标在内容之上 */
+}
+
+#floatingChatIcon img {
+ width: 50px; /* 根据你的图标大小调整 */
+ height: auto;
+}
+
+#chatWindow {
+ position: fixed;
+ bottom: 100px; /* 根据需要调整 */
+ right: 20px;
+ width: 300px; /* 聊天窗口的宽度 */
+ background-color: white;
+ border: 1px solid #ccc;
+ padding: 20px;
+ box-shadow: 0 4px 8px rgba(0,0,0,0.1);
+ z-index: 1001; /* 确保聊天窗口在图标之上 */
+}
+
+.chatWindowContent {
+ /* 可以添加更多样式来美化聊天窗口 */
+}
+
+.sidebar {
+ position: fixed;
+ right: -300px; /* 初始位置在屏幕右侧之外 */
+ top: 0;
+ width: 300px;
+ height: 100%;
+ background-color: #fff;
+ transition: right 0.3s ease; /* 平滑过渡效果 */
+}
+.sidebar.visible {
+ right: 0; /* 滑入屏幕 */
+}
\ No newline at end of file
diff --git a/com.awspaas.user.apps.gpt_interface/web/com.awspaas.user.apps.gpt_interface/img/robot-icon.png b/com.awspaas.user.apps.gpt_interface/web/com.awspaas.user.apps.gpt_interface/img/robot-icon.png
new file mode 100644
index 00000000..205ea30a
Binary files /dev/null and b/com.awspaas.user.apps.gpt_interface/web/com.awspaas.user.apps.gpt_interface/img/robot-icon.png differ