diff --git a/src/main/java/com/xly/service/XlyErpService.java b/src/main/java/com/xly/service/XlyErpService.java index aa512e9..c6f9693 100644 --- a/src/main/java/com/xly/service/XlyErpService.java +++ b/src/main/java/com/xly/service/XlyErpService.java @@ -273,11 +273,13 @@ public class XlyErpService { session.setDbType(StrUtil.EMPTY); sceneName = ObjectUtil.isNotEmpty(session.getCurrentScene())?session.getCurrentScene().getSSceneName():StrUtil.EMPTY; Map args = session.getArgs(); - String[] removeConditionA = removeCondition.split(","); - for(String one:removeConditionA){ - args.remove(one); + if(ObjectUtil.isNotEmpty(args)){ + String[] removeConditionA = removeCondition.split(","); + for(String one:removeConditionA){ + args.remove(one); + } + session.setArgs(args); } - session.setArgs(args); String sResponMessage = dynamicToolProvider.doDynamicTool(session.getCurrentTool(),session); return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(sResponMessage).dbType(session.getDbType()).dbCach(session.getDbCach()).sReturnType(ReturnTypeCode.HTML.getCode()).build(); } catch (Exception e) { diff --git a/src/main/java/com/xly/tool/DynamicToolProvider.java b/src/main/java/com/xly/tool/DynamicToolProvider.java index 0dec127..fcacfe9 100644 --- a/src/main/java/com/xly/tool/DynamicToolProvider.java +++ b/src/main/java/com/xly/tool/DynamicToolProvider.java @@ -215,9 +215,10 @@ public class DynamicToolProvider implements ToolProvider { args = applyDefaultValues(args, paramRuleData); //客户选择行号转sSLaveId if(ObjectUtil.isNotEmpty(args) - && args.containsKey("rowNumbers") - && ObjectUtil.isNotEmpty(args.get("rowNumbers")) - && ObjectUtil.isNotEmpty(session.getCurrentRowData()) + &&( + (args.containsKey("rowNumbers") && ObjectUtil.isNotEmpty(args.get("rowNumbers"))) + || (args.containsKey("operateType") && "全部确认".equals(args.get("operateType"))) + )&& ObjectUtil.isNotEmpty(session.getCurrentRowData()) ){ doSetSlaveIdToArgs( args, session); } @@ -239,16 +240,26 @@ public class DynamicToolProvider implements ToolProvider { private void doSetSlaveIdToArgs(Map args,UserSceneSession session){ Map> data = session.getCurrentRowData(); - List rowNumbers = (List) args.get("rowNumbers"); List sSlaveIds = new ArrayList<>(); - rowNumbers.forEach(one->{ - try{ - sSlaveIds.add(data.get(one).get("sSlaveId").toString()); - }catch (Exception e){ + try{ + if(args.containsKey("operateType") && "全部确认".equals(args.get("operateType"))){ + data.forEach((k,v)->{ + sSlaveIds.add(v.get("sSlaveId").toString()); + }); + return; } - }); - args.put("sSlaveId",String.join(",",sSlaveIds)); - args.remove("rowNumbers"); + List rowNumbers = (List) args.get("rowNumbers"); + rowNumbers.forEach(one->{ + try{ + sSlaveIds.add(data.get(one).get("sSlaveId").toString()); + }catch (Exception e){ + } + }); + + }finally { + args.put("sSlaveId",String.join(",",sSlaveIds)); + args.remove("rowNumbers"); + } } private void doSetToolAIshowfieldShow(ToolMeta meta){ @@ -390,7 +401,8 @@ public class DynamicToolProvider implements ToolProvider { } break; case "enum": - String constStr = getConstMeg(paramRule); + String constStr = getArrrayBySql(paramRule); +// String constStr = getConstMeg(paramRule); List constList = StrUtil.isNotBlank(constStr) ? Arrays.asList(constStr.split("/")) : new ArrayList<>(); if (constList.isEmpty()) { schemaBuilder.addStringProperty(paramDesc, paramDesc); @@ -460,7 +472,7 @@ public class DynamicToolProvider implements ToolProvider { Boolean bCheckArray2= !("array".equals(paramRule.getSType()) || "enum".equals(paramRule.getSType())); Boolean bCheckArray3= ObjectUtil.isEmpty(paramRule.getSParamConfig()); if(bCheckArray || bCheckArray2 || bCheckArray3){ - return StrUtil.EMPTY; + return getConstMeg(paramRule); } List> data = dynamicExeDbService.findSql(new HashMap<>(),paramRule.getSParamConfig()); StringBuffer sb = new StringBuffer();