Commit 1f930e91ee09f5c52fe436b1843e1ecef7c7fd5c

Authored by qianbao
1 parent c784f262

AI 对于时间的处理

src/main/java/com/xly/exception/dto/BusinessException.java
@@ -13,7 +13,6 @@ public class BusinessException extends BaseException { @@ -13,7 +13,6 @@ public class BusinessException extends BaseException {
13 public BusinessException(ErrorCode errorCode) { 13 public BusinessException(ErrorCode errorCode) {
14 super(errorCode); 14 super(errorCode);
15 } 15 }
16 -  
17 public BusinessException(ErrorCode errorCode, String message) { 16 public BusinessException(ErrorCode errorCode, String message) {
18 super(errorCode, message); 17 super(errorCode, message);
19 } 18 }
src/main/java/com/xly/service/XlyErpService.java
@@ -219,7 +219,7 @@ public class XlyErpService { @@ -219,7 +219,7 @@ public class XlyErpService {
219 private void doCleanUserMemory(UserSceneSession session,String userId){ 219 private void doCleanUserMemory(UserSceneSession session,String userId){
220 operableChatMemoryProvider.clearSpecifiedMemory(userId); 220 operableChatMemoryProvider.clearSpecifiedMemory(userId);
221 session.setCurrentTool(null); 221 session.setCurrentTool(null);
222 - session.setSceneSelected(false); 222 +// session.setSceneSelected(false);
223 UserSceneSessionService.ERP_AGENT_CACHE.remove(userId); 223 UserSceneSessionService.ERP_AGENT_CACHE.remove(userId);
224 UserSceneSessionService.CHAT_AGENT_CACHE.remove(userId); 224 UserSceneSessionService.CHAT_AGENT_CACHE.remove(userId);
225 session.setBCleanMemory(false); 225 session.setBCleanMemory(false);
src/main/java/com/xly/tool/DynamicToolProvider.java
@@ -576,7 +576,18 @@ public class DynamicToolProvider implements ToolProvider { @@ -576,7 +576,18 @@ public class DynamicToolProvider implements ToolProvider {
576 sRowData = (List<Map<String, Object>>) sRowDataMap.get("sRowData"); 576 sRowData = (List<Map<String, Object>>) sRowDataMap.get("sRowData");
577 sHandleType = sRowDataMap.get("sHandleType").toString(); 577 sHandleType = sRowDataMap.get("sHandleType").toString();
578 } 578 }
579 - if((isConfirmed || 0== meta.getIActionType()) && 5!= meta.getIBizType()){ 579 + //{"1":"存储过程","2":"SQL查询","3":"第三方API","4":"ERP未清","5":"ERP列表(报表)","6":"ERP单据","7":"其它","8":"自然语言TEXT2SQL"}
  580 +
  581 + if((isConfirmed && 4== meta.getIBizType())
  582 + || 1== meta.getIBizType()
  583 + || 2== meta.getIBizType()
  584 + || 3== meta.getIBizType()
  585 + || 5== meta.getIBizType()
  586 + || 6== meta.getIBizType()
  587 + || 7== meta.getIBizType()
  588 + || 8== meta.getIBizType()
  589 + )
  590 + {
580 // 确认后必填项校验 591 // 确认后必填项校验
581 List<String> missingAfter = checkConfirmAfterParam(args, paramRuleData); 592 List<String> missingAfter = checkConfirmAfterParam(args, paramRuleData);
582 if (!missingAfter.isEmpty()) { 593 if (!missingAfter.isEmpty()) {
@@ -589,9 +600,10 @@ public class DynamicToolProvider implements ToolProvider { @@ -589,9 +600,10 @@ public class DynamicToolProvider implements ToolProvider {
589 return executeTool(toolExecutionRequest, meta, args, paramRuleData, memoryId.toString(), session); 600 return executeTool(toolExecutionRequest, meta, args, paramRuleData, memoryId.toString(), session);
590 } 601 }
591 String askconfirmMsg =StrUtil.EMPTY; 602 String askconfirmMsg =StrUtil.EMPTY;
592 - if(0== meta.getIActionType() && 4!= meta.getIBizType() && 5!= meta.getIBizType()){  
593 - askconfirmMsg = buildConfirmUserMessage(meta, args);  
594 - }else if(4== meta.getIBizType() || meta.getIBizType()==5){ 603 +// if(0== meta.getIActionType() && 4!= meta.getIBizType() && 5!= meta.getIBizType()){
  604 +// askconfirmMsg = buildConfirmUserMessage(meta, args);
  605 +// }else
  606 + if(4== meta.getIBizType() || meta.getIBizType()==5){
595 askconfirmMsg = doGetFromData( meta,args,session); 607 askconfirmMsg = doGetFromData( meta,args,session);
596 // session.setSFunPrompts(askconfirmMsg); 608 // session.setSFunPrompts(askconfirmMsg);
597 // operableChatMemoryProvider.get(memoryId).add(UserMessage.from("SYSTEM: 等待用户确认或选择部分数据操作")); 609 // operableChatMemoryProvider.get(memoryId).add(UserMessage.from("SYSTEM: 等待用户确认或选择部分数据操作"));
@@ -867,7 +879,8 @@ public class DynamicToolProvider implements ToolProvider { @@ -867,7 +879,8 @@ public class DynamicToolProvider implements ToolProvider {
867 String sReturn ="执行成功"; 879 String sReturn ="执行成功";
868 try{ 880 try{
869 sReturn = executeToolAfter(meta, args,toolExecutionRequest,paramRuleData,session); 881 sReturn = executeToolAfter(meta, args,toolExecutionRequest,paramRuleData,session);
870 - }catch (Exception e) { 882 + }catch (BusinessException e) {
  883 + return e.getMessage();
871 } 884 }
872 if(meta.getIActionType()==1){ 885 if(meta.getIActionType()==1){
873 session.setBCleanMemory(true); 886 session.setBCleanMemory(true);
@@ -892,17 +905,29 @@ public class DynamicToolProvider implements ToolProvider { @@ -892,17 +905,29 @@ public class DynamicToolProvider implements ToolProvider {
892 args.put("sBrId", session.getSBrandsId()); 905 args.put("sBrId", session.getSBrandsId());
893 args.put("sBrandsId", session.getSBrandsId()); 906 args.put("sBrandsId", session.getSBrandsId());
894 args.put("sSuId", session.getSSubsidiaryId()); 907 args.put("sSuId", session.getSSubsidiaryId());
  908 + args.put("sSrcFormId", meta.getSSrcFormId());
  909 + args.put("sControlName", meta.getSControlName());
  910 + args.put("iBizType", iBizType);
895 args.put("sSubsidiaryId", session.getSSubsidiaryId()); 911 args.put("sSubsidiaryId", session.getSSubsidiaryId());
  912 + args.put("sToolId", meta.getSId());
896 if (iBizType == 1 || iBizType == 4) { 913 if (iBizType == 1 || iBizType == 4) {
897 Map<String, Object> data = new HashMap<>(args); 914 Map<String, Object> data = new HashMap<>(args);
898 data.put("sData", JSONObject.toJSONString(data)); 915 data.put("sData", JSONObject.toJSONString(data));
  916 + if(ObjectUtil.isEmpty(sBizContent) && iBizType == 4){
  917 + sBizContent ="Sp_Ai_AddCommonAfter";
  918 + }else{
  919 + String sMsgText = "未配置业务处理逻辑的方法";
  920 + session.setSFunPrompts(sMsgText);
  921 + throw new BusinessException(-1,sMsgText);
  922 + }
899 Map<String, Object> searMap = this.dynamicExeDbService.getDoProMap(sBizContent, data); 923 Map<String, Object> searMap = this.dynamicExeDbService.getDoProMap(sBizContent, data);
900 Map<String, Object> sReturn = this.dynamicExeDbService.getCallPro(searMap, sBizContent); 924 Map<String, Object> sReturn = this.dynamicExeDbService.getCallPro(searMap, sBizContent);
901 Integer sCode = ObjectUtil.isNotEmpty(sReturn.get(ProcedureConstant.SCODE)) ? Integer.valueOf(sReturn.get(ProcedureConstant.SCODE).toString()) : 0; 925 Integer sCode = ObjectUtil.isNotEmpty(sReturn.get(ProcedureConstant.SCODE)) ? Integer.valueOf(sReturn.get(ProcedureConstant.SCODE).toString()) : 0;
902 String sMsgText = ObjectUtil.isNotEmpty(sReturn.get(ProcedureConstant.SRETURN)) ? sReturn.get(ProcedureConstant.SRETURN).toString() : "操作成功"; 926 String sMsgText = ObjectUtil.isNotEmpty(sReturn.get(ProcedureConstant.SRETURN)) ? sReturn.get(ProcedureConstant.SRETURN).toString() : "操作成功";
903 if (sCode < 0) { 927 if (sCode < 0) {
904 - String msg = ObjectUtil.isEmpty(sMsgText) ? "调用过程sCode:" + Integer.valueOf(searMap.get(ProcedureConstant.SCODE).toString()) : sMsgText;  
905 - return String.valueOf(askUserResult(toolExecutionRequest, msg)); 928 + sMsgText = ObjectUtil.isEmpty(sMsgText) ? "调用过程sCode:" + Integer.valueOf(searMap.get(ProcedureConstant.SCODE).toString()) : sMsgText;
  929 + session.setSFunPrompts(sMsgText);
  930 + throw new BusinessException(sCode,sMsgText);
906 } 931 }
907 session.setSFunPrompts(sMsgText); 932 session.setSFunPrompts(sMsgText);
908 return sMsgText; 933 return sMsgText;
@@ -933,8 +958,9 @@ public class DynamicToolProvider implements ToolProvider { @@ -933,8 +958,9 @@ public class DynamicToolProvider implements ToolProvider {
933 } 958 }
934 return String.valueOf(successResult(toolExecutionRequest, sb.toString())); 959 return String.valueOf(successResult(toolExecutionRequest, sb.toString()));
935 } else { 960 } else {
936 - session.setSFunPrompts("未找到对应的数据");  
937 - return "未找到对应的数据"; 961 + String sMsgText = "未找到对应的数据";
  962 + session.setSFunPrompts(sMsgText);
  963 + throw new BusinessException(-1,sMsgText);
938 } 964 }
939 } 965 }
940 } else if (iBizType == 3) { 966 } else if (iBizType == 3) {
src/main/resources/templates/chat.html
@@ -468,8 +468,7 @@ @@ -468,8 +468,7 @@
468 let subsidiaryid= "1111111111"; 468 let subsidiaryid= "1111111111";
469 let usertype= "sysadmin"; 469 let usertype= "sysadmin";
470 // let usertype= "General"; 470 // let usertype= "General";
471 - let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1DD20808D80550B390B6BE6ECDCFF597F4D8668502224FF2D5675E74B8CDD2ABFB538155B7ADAEE71E899235DC1122F426";  
472 - //"1EDB99C9BF070115F7A57AC43D8CB09F0B8C49F979DAB63A2AEA84B372B2B42BF3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1DC16A7526DEC4395CF09285C2BD330B9FD8668502224FF2D5675E74B8CDD2ABFB538155B7ADAEE71E899235DC1122F426"; 471 + let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1DFAA0AB1345E95AFF7B0EAF75448070A329D9BB4A0103841ED6E33C9191B264BF538155B7ADAEE71E899235DC1122F426";
473 let hrefLock = window.location.origin+"/xlyAi"; 472 let hrefLock = window.location.origin+"/xlyAi";
474 // ==================== 配置部分 ==================== 473 // ==================== 配置部分 ====================
475 const CONFIG = { 474 const CONFIG = {