Source/UBCS-WEB/dist/cdn/animate/3.5.2/animate.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/avue/2.9.12/avue.min.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/avue/2.9.12/index.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/axios/1.0.0/axios.min.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/index.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/theme-chalk/fonts/element-icons.ttfBinary files differ
Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/theme-chalk/fonts/element-icons.woffBinary files differ
Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/theme-chalk/index.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.eotBinary files differ
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.json
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.svg
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.ttfBinary files differ
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.woffBinary files differ
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.woff2Binary files differ
Source/UBCS-WEB/dist/cdn/iconfont/index.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.eotBinary files differ
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.json
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.svg
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.ttfBinary files differ
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.woffBinary files differ
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.woff2Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.08b5f281.eotBinary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.3c4c9f45.woff2Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.acbc6cbd.woffBinary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.f922519e.ttfBinary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/codicon.22349029.ttfBinary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.674f50d2.eotBinary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.af7ae505.woff2Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.b06871f2.ttfBinary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.fee66e71.woffBinary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/img/bpmn.1381b44e.svg
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/img/fontawesome-webfont.912ec66d.svg
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/index.umd.min.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/vue-router/3.0.1/vue-router.min.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/vue/2.6.10/vue.min.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/vuex/3.1.1/vuex.min.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/xlsx/FileSaver.min.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/cdn/xlsx/xlsx.full.min.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/css/app.e15388da.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/css/chunk-52e4de1b.08feee72.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/css/chunk-vendors.e41156d0.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/css/fontSize.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/css/page.e84a6fd9.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/css/views.a44fd8f5.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/favicon.pngBinary files differ
Source/UBCS-WEB/dist/img/bg/403.svg
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/img/bg/404.svg
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/img/bg/500.svg
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/img/bg/bg.jpgBinary files differ
Source/UBCS-WEB/dist/img/bg/bg1.jpgBinary files differ
Source/UBCS-WEB/dist/img/bg/bg2.jpgBinary files differ
Source/UBCS-WEB/dist/img/bg/bg3.jpgBinary files differ
Source/UBCS-WEB/dist/img/bg/bg4.jpgBinary files differ
Source/UBCS-WEB/dist/img/bg/cloud.jpgBinary files differ
Source/UBCS-WEB/dist/img/bg/img-logo.pngBinary files differ
Source/UBCS-WEB/dist/img/bg/login.pngBinary files differ
Source/UBCS-WEB/dist/img/bg/logo.pngBinary files differ
Source/UBCS-WEB/dist/img/bg/star-squashed.jpgBinary files differ
Source/UBCS-WEB/dist/img/bg/vip1.pngBinary files differ
Source/UBCS-WEB/dist/img/bg/vip2.pngBinary files differ
Source/UBCS-WEB/dist/img/bg/vip3.pngBinary files differ
Source/UBCS-WEB/dist/img/bg/vip4.pngBinary files differ
Source/UBCS-WEB/dist/img/logo.pngBinary files differ
Source/UBCS-WEB/dist/img/mock/card/card-1.jpgBinary files differ
Source/UBCS-WEB/dist/img/mock/card/card-2.jpgBinary files differ
Source/UBCS-WEB/dist/img/mock/card/card-3.jpgBinary files differ
Source/UBCS-WEB/dist/img/mock/card/card-4.jpgBinary files differ
Source/UBCS-WEB/dist/img/mock/cli/1.pngBinary files differ
Source/UBCS-WEB/dist/img/mock/cli/2.pngBinary files differ
Source/UBCS-WEB/dist/img/mock/cli/3.pngBinary files differ
Source/UBCS-WEB/dist/img/mock/iconfont.pngBinary files differ
Source/UBCS-WEB/dist/img/pageLogo.jpegBinary files differ
Source/UBCS-WEB/dist/index.html
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/js/app.0e2190b6.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/js/chunk-2d0e4caf.f1e21f7e.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/js/chunk-52e4de1b.1353e6c4.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/js/chunk-vendors.cf283b97.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/js/page.60eb566f.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/js/views.92f4ee1f.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/src/router/avue-router.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/svg/loading-spin.svg
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/util/aes.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/util/font_4017492_2d1qk52m7xp.ttfBinary files differ
Source/UBCS-WEB/dist/util/font_4017492_2d1qk52m7xp.woffBinary files differ
Source/UBCS-WEB/dist/util/font_4017492_2d1qk52m7xp.woff2Binary files differ
Source/UBCS-WEB/dist/util/screen/guge.pngBinary files differ
Source/UBCS-WEB/dist/util/screen/huohu.pngBinary files differ
Source/UBCS-WEB/dist/util/screen/screen.css
ÎļþÒÑɾ³ý Source/UBCS-WEB/dist/util/screen/screen.js
ÎļþÒÑɾ³ý Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -800,32 +800,32 @@ }, //å¢å ä¿å AddSumbit(val) { this.addvisible = false; addSaveCode(val).then(res => { this.$nextTick(() => { this.$message.warning("ä¿åæå"); this.addvisible = false; this.$message.success("ä¿åæå"); this.onLoad() }) }) }, //ä¿®æ¹åè° EditSumbit(val) { this.editvisible = false; editSaveCode(val).then(res => { this.$nextTick(() => { this.$message.warning("ä¿åæå"); this.editvisible = false; this.$message.success("ä¿åæå"); this.onLoad() }) }) }, //æ°æ®æ´æ¹åè° updataSumbit(val) { this.DataVisible = false; val.copyFromVersion = this.rowOid; val.oid = ''; upSaveCode(val).then(res => { this.$nextTick(() => { this.$message.warning("ä¿åæå"); this.DataVisible = false; this.$message.success("ä¿åæå"); this.onLoad() }) }) Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
@@ -1,6 +1,6 @@ <template> <div v-if="display"> <vciWebReferTree v-if="refertype=='tree'" @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferTree> <vciWebReferTree ref="vciWebReferTree" v-if="refertype=='tree'" @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferTree> <vciWebReferTable v-else-if="refertype=='table'" @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferTable> <vciWebReferDefalut v-else @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferDefalut> Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
@@ -96,6 +96,7 @@ this.page.currentPage=this.referConfig.options.page.page || this.referConfig.options.page.currentPage; } }, computed:{ valueInfo:function (){ return this.text ? ("已设置çå¼ä¸º[" + this.text + "]"): 'æªè®¾ç½®å¼' Source/UBCS-WEB/src/views/docking/data.vue
@@ -122,7 +122,7 @@ value: "key" }, formatter : function (row, column) { return row.sendFlag == 'true' || row.sendFlag == '1' ? '<i class="el-icon-check" style="color: limegreen"></i>' : '<i class="el-icon-close" style="color: red"></i>' return row.sendFlag == 'true' || row.sendFlag == '1' ? '<i class="el-icon-check" style="color: limegreen;font-size: 20px;font-weight: 800"></i>' : '<i class="el-icon-close" style="color: red;font-size: 20px;font-weight: 800" ></i>' } } ] Source/UBCS-WEB/src/views/docking/info.vue
@@ -402,7 +402,7 @@ onLoad(page, params = {}) { this.loading = true; getList(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => { console.log(res) // console.log(res) const data = res.data.data; this.page.total = data.total; this.data = data.records; Source/UBCS-WEB/src/views/docking/infoForm.vue
@@ -203,7 +203,6 @@ </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitAttribute">ç¡®å®</el-button> <el-button @click="cancelSubmit">åæ¶</el-button> </div> </el-dialog> @@ -394,7 +393,7 @@ watch:{ formData: { handler(newval, oldval) { console.log(newval) // console.log(newval) if (newval && newval.type === 'edit') { if (this.formData.dataFlowType == 'accept') { this.pushTypeList = [ @@ -559,7 +558,7 @@ }) const apiCall = that.formData.type == 'edit' ? edit : add; const Message = that.formData.type == 'edit' ? "ä¿®æ¹æå" : "ä¿åæå"; console.log( that.formData) // console.log( that.formData) apiCall(that.formData).then(res => { that.$message.success(Message); that.showSubmitDialog = false; Source/UBCS-WEB/src/views/docking/loge.vue
@@ -135,7 +135,7 @@ value: "key" }, formatter : function (row, column) { return row.interFaceStatus == 'true' || row.interFaceStatus == '1' ? '<i class="el-icon-check" style="color: limegreen"></i>' : '<i class="el-icon-close" style="color: red"></i>' return row.interFaceStatus == 'true' || row.interFaceStatus == '1' ? '<i class="el-icon-check" style="color: limegreen;font-size: 20px;font-weight: 800"></i>' : '<i class="el-icon-close" style="color: red;font-size: 20px;font-weight: 800"></i>' } }, ] Source/UBCS-WEB/src/views/docking/task.vue
@@ -144,7 +144,7 @@ value: "key" }, formatter : function (row, column) { return row.sendFlag == 'true' || row.sendFlag == '1' ? '<i class="el-icon-check" style="color: limegreen"></i>' : '<i class="el-icon-close" style="color: red"></i>' return row.sendFlag == 'true' || row.sendFlag == '1' ? '<i class="el-icon-check" style="color: limegreen;font-size: 20px;font-weight: 800"></i>' : '<i class="el-icon-close" style="color: red;font-size: 20px;font-weight: 800"></i>' } }, ] Source/UBCS-WEB/src/views/work/process/leave/handle.vue
@@ -53,7 +53,7 @@ <el-button v-if="!isRefuse" type="primary" size="mini" @click="handelAgree">åæ</el-button> <el-button v-if="!isAgree" type="primary" size="mini" @click="handelRefuse">ä¸åæ</el-button> --> <el-button type="primary" size="mini" @click="handelExecute(item)" v-for="(item, index) in btnList" :key="index">{{ item.toName === 'åæ' ? item.toName : `${item.toName}å°${item.taskName}` }}</el-button> :key="index">{{ item.toName }}</el-button> <!-- <el-button v-if="isRefuse" type="primary" size="mini" @click="handelExecute">æ§è¡</el-button> --> </div> </el-card> Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java
@@ -294,18 +294,6 @@ // å®æä»»å¡ taskService.complete(taskId, variables); // //设置ä¸ä¸æ¥å®¡æ ¸äºº // Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();//ä¸ä¸æ¥èç¹ // String taskKey = task.getTaskDefinitionKey();//å°±æ¯æµç¨é ç½®çèç¹id // Object to = getVar(processInstanceId,taskKey); // if(to==null){ // throw new ServiceException(taskKey+"没æè®¾ç½®å®¡æ ¸äºº"); // } // String assignee = to.toString(); // // if(StringUtils.isNotEmpty(assignee)) { // task.setAssignee(assignee); // } return true; } Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java
@@ -199,17 +199,21 @@ flowTaskUserCi.setToTaskName(targetFlow.getName()); taskList.add(flowTaskUserCi); } // 妿ä¸ä¸ªå®¡æ¹èç¹ä¸ºæä»ç½å ³ if (targetFlow instanceof ExclusiveGateway) { // 妿ä¸ä¸ªå®¡æ¹èç¹ä¸ºç½å ³ if (targetFlow instanceof Gateway) { ExclusiveGateway exclusiveGateway = (ExclusiveGateway) targetFlow; List<SequenceFlow> exclusiveGatewayOutgoingFlows = exclusiveGateway.getOutgoingFlows(); for (SequenceFlow nexti:exclusiveGatewayOutgoingFlows){ String conditionExpression = nexti.getConditionExpression();//condition String taskId = nexti.getTargetRef();//taskId String name = nexti.getName();//toName,驳åãåæ String taskName = taskMap.get(targetFlow.getId()); String taskName = taskMap.get(taskId); //ExclusiveGateway if(StringUtils.isEmpty(conditionExpression)){//æ¤æ¶æä»ç½å ³æ²¡æé ç½®æµè½¬æ¡ä»¶ continue; } for (FlowTaskDTO flowTaskUserCi:mis){ if(taskId.equals(flowTaskUserCi.getTaskId())){ flowTaskUserCi.setCondition(conditionExpression); Source/UBCS/ubcs-service-api/ubcs-system-api/pom.xml
@@ -19,6 +19,10 @@ <groupId>org.springblade</groupId> <artifactId>blade-starter-cache</artifactId> </dependency> <dependency> <groupId>org.springblade</groupId> <artifactId>blade-starter-log</artifactId> </dependency> </dependencies> </project> Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/cache/NacosConfigCache.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ package com.vci.ubcs.system.cache; import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.core.env.Environment; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; /** * redisä¸åå¨çnacosä¸é ç½®çè¶ ç®¡é ç½®ä¿¡æ¯ * @author ludc * @date 2023/8/31 13:02 */ @Component public class NacosConfigCache { private static final String NACOS_CONFIG_CACHE = "nacos:config"; private static final String ADMIN_INFO_CODE = "admin:info:"; @Autowired private Environment environment; /** * è·ååå ¥redisä¸ * nacosä¸é ç½®çè¶ ç®¡ä¿¡æ¯ * @return */ public BladeUser getAdminUserInfo() { try { BladeUser user = CacheUtil.getCache(NACOS_CONFIG_CACHE).get(ADMIN_INFO_CODE,BladeUser.class); //ä»ç¼å䏿ªè·åå°è¶ 级管çåé 置信æ¯ï¼ä»nacosä¸éæ°è·åå¹¶åå ¥ç¼åã if(Func.isEmpty(user)){ BladeUser adminUser = new BladeUser(); adminUser.setTenantId(environment.getProperty("user-info.tenant-id", "000000")); adminUser.setUserName(environment.getProperty("user-info.user-name","admin")); adminUser.setUserId(Func.toLong(environment.getProperty("user-info.id","0"))); CacheUtil.getCache(NACOS_CONFIG_CACHE).put(ADMIN_INFO_CODE,adminUser); return adminUser; } return user; }catch (Exception e){ throw new ServiceException("ä»nacosä¸è·åè¶ çº§ç®¡çåé 置失败ï¼"); } } } Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/config/NacosConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ package com.vci.ubcs.system.config; import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.utils.Func; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; /** * nacosä¸é ç½®çè¶ ç®¡ä¿¡æ¯ * @author ludc * @date 2023/8/31 13:02 */ @Component @RefreshScope public class NacosConfig { @Autowired private Environment environment; private static final String NACOS_CONFIG_CACHE = "nacos:config"; private static final String ADMIN_INFO_CODE = "admin:info:"; @PostConstruct public void init() { BladeUser adminUser = new BladeUser(); adminUser.setTenantId(environment.getProperty("user-info.tenant-id", "000000")); adminUser.setUserName(environment.getProperty("user-info.user-name","admin")); adminUser.setUserId(Func.toLong(environment.getProperty("user-info.id","0"))); CacheUtil.getCache(NACOS_CONFIG_CACHE).put(ADMIN_INFO_CODE,adminUser); } } Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StrategyMapper.java
@@ -23,7 +23,7 @@ * @param page å页对象 * @return 对象å表 */ IPage<Strategy> queryAllByPage(IPage page); IPage<Strategy> queryAllByPage(IPage page,@Param("tenantId") String tenantId); /** * ç»è®¡æ»è¡æ° Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StrategyServiceImpl.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vci.ubcs.common.constant.CommonConstant; import com.vci.ubcs.system.cache.NacosConfigCache; import com.vci.ubcs.system.entity.Strategy; import com.vci.ubcs.system.mapper.StrategyMapper; import com.vci.ubcs.system.service.IStrategyService; @@ -12,6 +13,7 @@ import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.Func; import org.springframework.data.domain.PageImpl; import org.springframework.stereotype.Service; @@ -40,6 +42,9 @@ @Resource private IUserClient userClient; @Resource private NacosConfigCache nacosConfigCache; /** * éè¿IDæ¥è¯¢åæ¡æ°æ® @@ -70,7 +75,17 @@ @Override public IPage<Strategy> queryAllByPage(Query query) { Page<Strategy> strategyPage = new Page<>(query.getCurrent(), query.getSize()); return this.strategyMapper.queryAllByPage(strategyPage); // æ·»å ç§æ·æ¥è¯¢æ¡ä»¶ IPage<Strategy> strategyIPage = this.strategyMapper.queryAllByPage( strategyPage, AuthUtil.getTenantId() .equals( nacosConfigCache .getAdminUserInfo() .getTenantId() ) ? null:AuthUtil.getTenantId() ); return strategyIPage; } /** Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/StrategyMapper.xml
@@ -25,10 +25,15 @@ <!--æ¥è¯¢æå®è¡æ°æ®--> <select id="queryAllByPage" resultMap="StrategyMap"> select pss.*, (SELECT listagg(psc.NAME,',') within GROUP BY(ORDER BY psc.NAME asc) (SELECT listagg(psc.NAME,',') within GROUP(ORDER BY psc.NAME asc) from PL_SYS_COMBINATION psc where instr(pss.COMBINATION_IDS,psc.ID) > 0) COMBINATIONNAMES from PL_SYS_PWDSTRATEGY pss <where> <if test="tenantId != null and tenantId != ''"> and TENANT_ID = #{tenantId} </if> </where> </select> <!--ç»è®¡æ»è¡æ°-->