GPT相关代码提交

This commit is contained in:
zhal 2024-10-11 16:12:01 +08:00
parent b9625a5207
commit 6f090d7ee3
9 changed files with 204 additions and 4 deletions

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<app xmlns="http://www.actionsoft.com.cn/app">
<name>伊利GPT接口对接</name>
<version>1.0</version>
<buildNo>12</buildNo>
<developer id="00000000000000000000000000000000" tablePrefix="EU" url="http://www.awspaas.com">AWSPaaS-EndUser</developer>
<categoryVisible>true</categoryVisible>
<description><![CDATA[对接伊利GPT接口应用]]></description>
<details><![CDATA[]]></details>
<installListener/>
<pluginListener/>
<startListener/>
<stopListener/>
<upgradeListener/>
<uninstallListener/>
<reloadable>true</reloadable>
<requires/>
<properties/>
<allowStartup>true</allowStartup>
<allowUpgradeByStore>true</allowUpgradeByStore>
<depend versions="6.5" env="">com.actionsoft.apps.coe.pal</depend>
<modelAdministrator/>
<installDate>2024-09-30 15:25:40</installDate>
<icon code="&amp;#xe64f;" color="#009688"/>
<productId/>
<releaseDate>2024-09-30</releaseDate>
<upgradeDate>2024-09-29 12:00:57</upgradeDate>
</app>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<mobile-profile xmlns="http://www.actionsoft.com.cn/app">
<osType></osType>
<deviceType>universal</deviceType>
<realAppId></realAppId>
<realVersion>1.0</realVersion>
<resourceType>common</resourceType>
<resourceURI></resourceURI>
<ssoType>sid</ssoType>
<backupable>false</backupable>
<cascadeRemove>true</cascadeRemove>
<autoDistribute>false</autoDistribute>
<trackId></trackId>
</mobile-profile>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccModel>
<id>51d44dfa-b7c2-4422-9e51-fbd7b43e0218</id>
<createUser>admin</createUser>
<createTime>2024-09-23 15:23:09</createTime>
<updateUser>admin</updateUser>
<updateTime>2024-09-23 15:23:52</updateTime>
<signature>tGOmxiTgjT/77UoYpSlq8Vc+hHPRoJWHdZexXc7zEpYuMNdhvSICeJnlc/RzRHGrnAnDbDtRxYtOiGaYhu68Qpdguiwbwk9rZfmMRYUv7FwmvS8qgI5pTyPJabB/ltDF</signature>
<managed>false</managed>
<name>GPT初始化接口</name>
<type>httpApi</type>
<group>service</group>
<log>false</log>
<properties>{"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}</properties>
<desc></desc>
</ccModel>

View File

@ -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<String,Object> 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});
}
}

View File

@ -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<RowMap> 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();
}
}

View File

@ -0,0 +1,30 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>模型文件</title>
<!-- JQuery -->
<script type="text/javascript" src="../commons/js/jquery/scripts/jquery.js"></script>
<script type="text/javascript" src="../commons/js/jquery/scripts/jquery.textchange.js"></script>
<script type="text/javascript" src="../commons/js/jquery/scripts/jquery.mousewheel.js"></script>
<!-- AWS UI -->
<link rel="stylesheet" type="text/css" href="../commons/css/awsui.css">
<script type="text/javascript" src="../commons/js/awsui.js"></script>
</script>
<script type="text/javascript">
var repositoryId = '<#repositoryId>';
var linkUrl='<#linkUrl>';
</script>
</head>
<body>
<div id="notificationCenterLayer" class="notification-container-outter">
<#repositoryId>
</div>
</body>
<script>
$(function () {
window.open(linkUrl);
})
</script>
</html>

View File

@ -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; /* 滑入屏幕 */
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B