Commit 1f930e91ee09f5c52fe436b1843e1ecef7c7fd5c
1 parent
c784f262
AI 对于时间的处理
Showing
4 changed files
with
37 additions
and
13 deletions
src/main/java/com/xly/exception/dto/BusinessException.java
src/main/java/com/xly/service/XlyErpService.java
| ... | ... | @@ -219,7 +219,7 @@ public class XlyErpService { |
| 219 | 219 | private void doCleanUserMemory(UserSceneSession session,String userId){ |
| 220 | 220 | operableChatMemoryProvider.clearSpecifiedMemory(userId); |
| 221 | 221 | session.setCurrentTool(null); |
| 222 | - session.setSceneSelected(false); | |
| 222 | +// session.setSceneSelected(false); | |
| 223 | 223 | UserSceneSessionService.ERP_AGENT_CACHE.remove(userId); |
| 224 | 224 | UserSceneSessionService.CHAT_AGENT_CACHE.remove(userId); |
| 225 | 225 | session.setBCleanMemory(false); | ... | ... |
src/main/java/com/xly/tool/DynamicToolProvider.java
| ... | ... | @@ -576,7 +576,18 @@ public class DynamicToolProvider implements ToolProvider { |
| 576 | 576 | sRowData = (List<Map<String, Object>>) sRowDataMap.get("sRowData"); |
| 577 | 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 | 592 | List<String> missingAfter = checkConfirmAfterParam(args, paramRuleData); |
| 582 | 593 | if (!missingAfter.isEmpty()) { |
| ... | ... | @@ -589,9 +600,10 @@ public class DynamicToolProvider implements ToolProvider { |
| 589 | 600 | return executeTool(toolExecutionRequest, meta, args, paramRuleData, memoryId.toString(), session); |
| 590 | 601 | } |
| 591 | 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 | 607 | askconfirmMsg = doGetFromData( meta,args,session); |
| 596 | 608 | // session.setSFunPrompts(askconfirmMsg); |
| 597 | 609 | // operableChatMemoryProvider.get(memoryId).add(UserMessage.from("SYSTEM: 等待用户确认或选择部分数据操作")); |
| ... | ... | @@ -867,7 +879,8 @@ public class DynamicToolProvider implements ToolProvider { |
| 867 | 879 | String sReturn ="执行成功"; |
| 868 | 880 | try{ |
| 869 | 881 | sReturn = executeToolAfter(meta, args,toolExecutionRequest,paramRuleData,session); |
| 870 | - }catch (Exception e) { | |
| 882 | + }catch (BusinessException e) { | |
| 883 | + return e.getMessage(); | |
| 871 | 884 | } |
| 872 | 885 | if(meta.getIActionType()==1){ |
| 873 | 886 | session.setBCleanMemory(true); |
| ... | ... | @@ -892,17 +905,29 @@ public class DynamicToolProvider implements ToolProvider { |
| 892 | 905 | args.put("sBrId", session.getSBrandsId()); |
| 893 | 906 | args.put("sBrandsId", session.getSBrandsId()); |
| 894 | 907 | args.put("sSuId", session.getSSubsidiaryId()); |
| 908 | + args.put("sSrcFormId", meta.getSSrcFormId()); | |
| 909 | + args.put("sControlName", meta.getSControlName()); | |
| 910 | + args.put("iBizType", iBizType); | |
| 895 | 911 | args.put("sSubsidiaryId", session.getSSubsidiaryId()); |
| 912 | + args.put("sToolId", meta.getSId()); | |
| 896 | 913 | if (iBizType == 1 || iBizType == 4) { |
| 897 | 914 | Map<String, Object> data = new HashMap<>(args); |
| 898 | 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 | 923 | Map<String, Object> searMap = this.dynamicExeDbService.getDoProMap(sBizContent, data); |
| 900 | 924 | Map<String, Object> sReturn = this.dynamicExeDbService.getCallPro(searMap, sBizContent); |
| 901 | 925 | Integer sCode = ObjectUtil.isNotEmpty(sReturn.get(ProcedureConstant.SCODE)) ? Integer.valueOf(sReturn.get(ProcedureConstant.SCODE).toString()) : 0; |
| 902 | 926 | String sMsgText = ObjectUtil.isNotEmpty(sReturn.get(ProcedureConstant.SRETURN)) ? sReturn.get(ProcedureConstant.SRETURN).toString() : "操作成功"; |
| 903 | 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 | 932 | session.setSFunPrompts(sMsgText); |
| 908 | 933 | return sMsgText; |
| ... | ... | @@ -933,8 +958,9 @@ public class DynamicToolProvider implements ToolProvider { |
| 933 | 958 | } |
| 934 | 959 | return String.valueOf(successResult(toolExecutionRequest, sb.toString())); |
| 935 | 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 | 966 | } else if (iBizType == 3) { | ... | ... |
src/main/resources/templates/chat.html
| ... | ... | @@ -468,8 +468,7 @@ |
| 468 | 468 | let subsidiaryid= "1111111111"; |
| 469 | 469 | let usertype= "sysadmin"; |
| 470 | 470 | // let usertype= "General"; |
| 471 | - let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1DD20808D80550B390B6BE6ECDCFF597F4D8668502224FF2D5675E74B8CDD2ABFB538155B7ADAEE71E899235DC1122F426"; | |
| 472 | - //"1EDB99C9BF070115F7A57AC43D8CB09F0B8C49F979DAB63A2AEA84B372B2B42BF3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1DC16A7526DEC4395CF09285C2BD330B9FD8668502224FF2D5675E74B8CDD2ABFB538155B7ADAEE71E899235DC1122F426"; | |
| 471 | + let authorization="CE444885A9BCFDDE1FD793F8A0931301E9D7DE6CEDD9DE4B83ECE2219C7829A8F3419238942A93E9AD666629E18D159AF7FE144A6407DE745BA0AEC8B235FC1DFAA0AB1345E95AFF7B0EAF75448070A329D9BB4A0103841ED6E33C9191B264BF538155B7ADAEE71E899235DC1122F426"; | |
| 473 | 472 | let hrefLock = window.location.origin+"/xlyAi"; |
| 474 | 473 | // ==================== 配置部分 ==================== |
| 475 | 474 | const CONFIG = { | ... | ... |