diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java index 7be4693..e17c5f2 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java @@ -1,5 +1,6 @@ package com.nu.modules.servicedirective.controller; +import cn.hutool.core.collection.ListUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -7,12 +8,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nu.dto.DirectiveAsyncMQDto; import com.nu.modules.servicedirective.entity.ConfigServiceDirective; +import com.nu.modules.servicedirective.entity.TreeNode; import com.nu.modules.servicedirective.service.IConfigServiceDirectiveService; import com.nu.modules.sysconfig.ISysConfigApi; import com.nu.utils.RabbitMQUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.jeecg.common.api.vo.Result; @@ -52,6 +55,12 @@ public class ConfigServiceDirectiveController extends JeecgController> getTree() { + List data = service.getTreeData(); + return Result.ok(data); + } + /** * 分页列表查询 * @@ -173,7 +182,7 @@ public class ConfigServiceDirectiveController extends JeecgController queryById(@RequestParam(name = "id", required = true) String id) { - ConfigServiceDirective configServiceDirective = configServiceDirectiveService.getById(id); - if (configServiceDirective == null) { + ConfigServiceDirective configServiceDirective = new ConfigServiceDirective(); + configServiceDirective.setId(id); + List param = Lists.newArrayList(); + param.add(configServiceDirective); + Page page = new Page(1, 10); + page.setRecords(param); + List result = configServiceDirectiveService.pageList(configServiceDirective, page); + if (result == null || result.size() < 1) { return Result.error("未找到对应数据"); + } else { + return Result.OK(result.get(0)); } - return Result.OK(configServiceDirective); } /** diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/TreeNode.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/TreeNode.java new file mode 100644 index 0000000..7f44904 --- /dev/null +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/entity/TreeNode.java @@ -0,0 +1,41 @@ +package com.nu.modules.servicedirective.entity; + +import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; +import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class TreeNode { + + private String key; + private String title; + private String cycleTypeName;//周期类型 + private int level; + private String instructionId; + private String categoryId; + private String typeId; + private String izEnabled; + private Integer sort; + private boolean canAdd; + private List children = new ArrayList<>(); + private List bodyTagList; + private List emotionTagList; + + public TreeNode(String instructionId,String categoryId,String typeId,String key, String title,int level,String cycleTypeName,String izEnabled,Integer sort,boolean canAdd) { + this.instructionId = instructionId; + this.categoryId = categoryId; + this.typeId = typeId; + this.key = key; + this.title = title; + this.level = level; + this.cycleTypeName = cycleTypeName; + this.izEnabled = izEnabled; + this.sort = sort; + this.canAdd = canAdd; + } + + public void addChild(TreeNode node) { children.add(node); } +} diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/ConfigServiceDirectiveMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/ConfigServiceDirectiveMapper.java index 8152a39..ea6f036 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/ConfigServiceDirectiveMapper.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/ConfigServiceDirectiveMapper.java @@ -2,6 +2,11 @@ package com.nu.modules.servicedirective.mapper; import java.util.List; +import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; +import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag; +import com.nu.modules.instructiontag.entity.InstructionTag; +import com.nu.modules.servicecategory.entity.ConfigServiceCategory; +import com.nu.modules.servicetype.entity.ConfigServiceType; import org.apache.ibatis.annotations.Param; import com.nu.modules.servicedirective.entity.ConfigServiceDirective; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -63,4 +68,12 @@ public interface ConfigServiceDirectiveMapper extends BaseMapper tagIds); int removeAll(); + + + List getActiveDirectivesWithTags(); + List getUsedInstructionTags(); + List getUsedCategories(); + List getUsedTypes(); + List getBodyTagsByDirective(@Param("id") String directiveId); + List getEmotionTagsByDirective(@Param("id") String directiveId); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/xml/ConfigServiceDirectiveMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/xml/ConfigServiceDirectiveMapper.xml index 84f8be1..715cdbe 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/xml/ConfigServiceDirectiveMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/mapper/xml/ConfigServiceDirectiveMapper.xml @@ -147,4 +147,62 @@ delete from nu_config_service_directive + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/IConfigServiceDirectiveService.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/IConfigServiceDirectiveService.java index 09cd543..9614dd0 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/IConfigServiceDirectiveService.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/IConfigServiceDirectiveService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.nu.dto.DirectiveAsyncMQDto; import com.nu.modules.servicedirective.entity.ConfigServiceDirective; +import com.nu.modules.servicedirective.entity.TreeNode; import java.util.List; @@ -60,4 +61,7 @@ public interface IConfigServiceDirectiveService extends IService getTreeData(); + } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/impl/ConfigServiceDirectiveServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/impl/ConfigServiceDirectiveServiceImpl.java index c26c682..4cf7f0b 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/impl/ConfigServiceDirectiveServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/service/impl/ConfigServiceDirectiveServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Maps; import com.nu.dto.DirectiveAsyncMQDto; import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; import com.nu.modules.directivetag.body.service.IDirectiveBodyTagService; @@ -15,6 +16,7 @@ import com.nu.modules.instructiontag.service.IInstructionTagService; import com.nu.modules.servicecategory.entity.ConfigServiceCategory; import com.nu.modules.servicecategory.service.IConfigServiceCategoryService; import com.nu.modules.servicedirective.entity.ConfigServiceDirective; +import com.nu.modules.servicedirective.entity.TreeNode; import com.nu.modules.servicedirective.mapper.ConfigServiceDirectiveMapper; import com.nu.modules.servicedirective.service.IConfigServiceDirectiveService; import com.nu.modules.servicetype.entity.ConfigServiceType; @@ -23,6 +25,7 @@ import com.nu.modules.sysconfig.ISysConfigApi; import com.nu.utils.RabbitMQUtil; import org.apache.commons.lang.StringUtils; import org.jeecg.common.system.api.ISysBaseAPI; +import org.jeecg.common.system.vo.DictModel; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -31,8 +34,7 @@ import org.springframework.stereotype.Service; import java.io.File; import java.nio.file.Files; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -397,4 +399,73 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl getTreeData() { + //查询周期类型字典项备用 + List period_type = sysBaseAPI.getDictItems("period_type"); + Map cycleTypeMap = Maps.newHashMap(); + period_type.stream().forEach(p -> { + cycleTypeMap.put(p.getValue(), p.getLabel()); + }); + + // 查询未删除并带标签的所有服务指令 + List directives = baseMapper.getActiveDirectivesWithTags(); + + // 按 typeId 分组 + Map> directiveMap = directives.stream() + .collect(Collectors.groupingBy(ConfigServiceDirective::getTypeId)); + + // 获取被引用的各级分类 + List instructions = baseMapper.getUsedInstructionTags(); + List categories = baseMapper.getUsedCategories(); + List types = baseMapper.getUsedTypes(); + + // 分组 + Map> catMap = categories.stream() + .collect(Collectors.groupingBy(ConfigServiceCategory::getInstructionId)); + Map> typeMap = types.stream() + .collect(Collectors.groupingBy(ConfigServiceType::getCategoryId)); + + List tree = new ArrayList<>(); + boolean canAdd = true; + for (InstructionTag inst : instructions) { + canAdd = "0".equals(inst.getIzEnabled()); + TreeNode instNode = new TreeNode(inst.getId(), "", "", inst.getId(), inst.getInstructionName(), 1, "", inst.getIzEnabled(), inst.getSort(), canAdd); + List catList = catMap.get(inst.getId()); + if (catList != null) { + catList.sort(Comparator.comparingInt(ConfigServiceCategory::getSort)); + for (ConfigServiceCategory cat : catList) { + if (canAdd) { + canAdd = "0".equals(cat.getIzEnabled()); + } + TreeNode catNode = new TreeNode(inst.getId(), cat.getId(), "", cat.getId(), cat.getCategoryName(), 2, "", cat.getIzEnabled(), cat.getSort(), canAdd); + List typeList = typeMap.get(cat.getId()); + if (typeList != null) { + typeList.sort(Comparator.comparingInt(ConfigServiceType::getSort)); + for (ConfigServiceType tp : typeList) { + if (canAdd) { + canAdd = "0".equals(tp.getIzEnabled()); + } + TreeNode typeNode = new TreeNode(inst.getId(), cat.getId(), tp.getId(), tp.getId(), tp.getTypeName(), 3, "", tp.getIzEnabled(), tp.getSort(), canAdd); + List dirList = directiveMap.get(tp.getId()); + if (dirList != null) { + dirList.sort(Comparator.comparingInt(ConfigServiceDirective::getSort)); + for (ConfigServiceDirective dir : dirList) { + TreeNode dirNode = new TreeNode(inst.getId(), cat.getId(), tp.getId(), dir.getId(), dir.getDirectiveName(), 4, cycleTypeMap.get(dir.getCycleType()), dir.getIzEnabled(), dir.getSort(), canAdd); + dirNode.setBodyTagList(dir.getBodyTagList()); + dirNode.setEmotionTagList(dir.getEmotionTagList()); + typeNode.addChild(dirNode); + } + } + catNode.addChild(typeNode); + } + } + instNode.addChild(catNode); + } + } + tree.add(instNode); + } + return tree; + } } diff --git a/nursing-unit-system/nu-system-start/src/main/resources/application-dev-nu002.yml b/nursing-unit-system/nu-system-start/src/main/resources/application-dev-nu002.yml index 1f7e4ac..e45718d 100644 --- a/nursing-unit-system/nu-system-start/src/main/resources/application-dev-nu002.yml +++ b/nursing-unit-system/nu-system-start/src/main/resources/application-dev-nu002.yml @@ -255,7 +255,7 @@ jeecg: app: http://localhost:8051 path: #文件上传根目录 设置 - upload: /cache/nu/opt/upFiles002 + upload: /cache/nu/opt/upFiles102 #webapp文件路径 webapp: /cache/nu/opt/webapp002 shiro: diff --git a/nursing-unit-system/nu-system-start/src/main/resources/application-dev-nu003.yml b/nursing-unit-system/nu-system-start/src/main/resources/application-dev-nu003.yml index f0f3149..69cdc5e 100644 --- a/nursing-unit-system/nu-system-start/src/main/resources/application-dev-nu003.yml +++ b/nursing-unit-system/nu-system-start/src/main/resources/application-dev-nu003.yml @@ -255,7 +255,7 @@ jeecg: app: http://localhost:8051 path: #文件上传根目录 设置 - upload: /cache/nu/opt/upFiles003 + upload: /cache/nu/opt/upFiles103 #webapp文件路径 webapp: /cache/nu/opt/webapp003 shiro: