Procházet zdrojové kódy

update:添加科室

zhouzeyu před 6 měsíci
rodič
revize
868b43b3fe

+ 50 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizDeptDTO.java

@@ -0,0 +1,50 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+import java.util.*;
+/**
+ * 科室传输对象
+ *
+ * @author lf
+ * @date  2025/06/04 14:09
+ **/
+@Data
+@ApiModel("科室传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizDeptDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "科室名称", position = 2)
+    private String name;
+
+    @ApiModelProperty(value = "科室级别", position = 3)
+    private Integer level;
+
+    @ApiModelProperty(value = "是否为叶子节点", position = 4)
+    private Integer leave;
+
+    @ApiModelProperty(value = "父级id", position = 5)
+    private String parentId;
+
+    @ApiModelProperty(value = "排序", position = 6)
+    private Integer sort;
+
+    @ApiModelProperty(value = "节点路径", position = 7)
+    private String nodePath;
+
+    @ApiModelProperty(value = "问题组id", position = 12)
+    private String groupId;
+
+}

+ 19 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizDeptQueryDTO.java

@@ -0,0 +1,19 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.*;
+/**
+ * 科室查询参数
+ *
+ * @author lf
+ * @date  2025/06/04 14:09
+ **/
+@Data
+@ApiModel("科室查询参数")
+@ToString
+public class BizDeptQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 28 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizDeptMapper.java

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.dto.BizDeptDTO;
+import cn.tr.module.smart.common.po.BizDeptPO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 科室映射工具
+*
+* @author lf
+* @date  2025/06/04 14:09
+**/
+@Mapper
+public interface BizDeptMapper {
+    BizDeptMapper INSTANCE = Mappers.getMapper(BizDeptMapper.class);
+
+    BizDeptPO convertPO(BizDeptDTO source);
+
+    BizDeptDTO convertDto(BizDeptPO source);
+
+    List<BizDeptDTO> convertDtoList(List<BizDeptPO> source);
+
+    List<BizDeptPO> convertPOList(List<BizDeptDTO> source);
+
+}

+ 7 - 5
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizDeptPO.java

@@ -24,6 +24,7 @@ import java.util.Date;
 @ToString
 public class BizDeptPO extends BasePO {
 
+
     /** id */
     @TableId
     @ApiModelProperty(value = "id", position = 1)
@@ -37,19 +38,20 @@ public class BizDeptPO extends BasePO {
     @ApiModelProperty(value = "科室级别", position = 3)
     private Integer level;
 
-    @ApiModelProperty(value = "是否为叶子节点", position = 3)
+    /** 是否为叶子节点 */
+    @ApiModelProperty(value = "是否为叶子节点", position = 4)
     private Integer leave;
 
     /** 父级id */
-    @ApiModelProperty(value = "父级id", position = 4)
-    private String parent_Id;
+    @ApiModelProperty(value = "父级id", position = 5)
+    private String parentId;
 
     /** 排序 */
-    @ApiModelProperty(value = "排序", position = 5)
+    @ApiModelProperty(value = "排序", position = 6)
     private Integer sort;
 
     /** 节点路径 */
-    @ApiModelProperty(value = "节点路径", position = 6)
+    @ApiModelProperty(value = "节点路径", position = 7)
     private String nodePath;
 
     /** 问题组id */

+ 55 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizDeptService.java

@@ -0,0 +1,55 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizDeptDTO;
+import cn.tr.module.smart.common.dto.BizDeptQueryDTO;
+
+import java.util.*;
+
+/**
+ * 科室Service接口
+ *
+ * @author lf
+ * @date  2025/06/04 14:09
+ **/
+public interface IBizDeptService{
+
+    /**
+     * 根据条件查询科室
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/06/04 14:09
+     */
+    List<BizDeptDTO> selectBizDeptList(BizDeptQueryDTO query);
+
+    /**
+     * 根据id查询科室
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/06/04 14:09
+     */
+    BizDeptDTO selectBizDeptById(String id);
+
+    /**
+     * 编辑科室
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/06/04 14:09
+     */
+    boolean updateBizDeptById(BizDeptDTO source);
+
+    /**
+     * 新增科室
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/06/04 14:09
+     */
+    boolean insertBizDept(BizDeptDTO source);
+
+    /**
+     * 删除科室详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/06/04 14:09
+     */
+    int removeBizDeptByIds(Collection<String> ids);
+}

+ 94 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizDeptServiceImpl.java

@@ -0,0 +1,94 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import cn.tr.module.smart.common.dto.BizDeptDTO;
+import cn.tr.module.smart.common.dto.BizDeptQueryDTO;
+import cn.tr.module.smart.common.mapper.BizDeptMapper;
+import cn.tr.module.smart.common.po.BizDeptPO;
+import cn.tr.module.smart.common.repository.BizDeptRepository;
+import cn.tr.module.smart.common.service.IBizDeptService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+
+import java.util.*;
+
+/**
+ * 科室Service接口实现类
+ *
+ * @author lf
+ * @date  2025/06/04 14:09
+ **/
+@Service
+public class BizDeptServiceImpl implements IBizDeptService {
+    @Autowired
+    private BizDeptRepository baseRepository;
+
+
+    /**
+    * 根据条件查询科室
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/06/04 14:09
+    */
+    @Override
+    public List<BizDeptDTO> selectBizDeptList(BizDeptQueryDTO query){
+        return BizDeptMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizDeptPO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询科室
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/06/04 14:09
+    */
+    @Override
+    public BizDeptDTO selectBizDeptById(String id){
+        return BizDeptMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑科室
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/06/04 14:09
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizDeptById(BizDeptDTO source){
+            return baseRepository.updateById(BizDeptMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增科室
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/06/04 14:09
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizDept(BizDeptDTO source){
+        return baseRepository.insert(BizDeptMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除科室详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/06/04 14:09
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizDeptByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

+ 80 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizDeptController.java

@@ -0,0 +1,80 @@
+package cn.tr.module.smart.web.controller;
+
+import cn.tr.core.pojo.TableDataInfo;
+import cn.tr.module.smart.common.dto.BizDeptDTO;
+import cn.tr.module.smart.common.dto.BizDeptQueryDTO;
+import cn.tr.module.smart.common.service.IBizDeptService;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import cn.tr.core.pojo.CommonResult;
+import lombok.AllArgsConstructor;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import java.util.*;
+import cn.tr.plugin.mybatis.base.BaseController;
+import org.springframework.web.bind.annotation.*;
+import cn.tr.module.api.sys.log.annotation.OperateLog;
+/**
+ * 科室控制器
+ *
+ * @author lf
+ * @date  2025/06/04 14:09
+ */
+@Api(tags = "科室")
+@RestController
+@RequestMapping("/biz/dept")
+@AllArgsConstructor
+public class BizDeptController extends BaseController{
+
+    private final IBizDeptService bizDeptService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询科室",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizDeptDTO> selectList(@RequestBody BizDeptQueryDTO query) {
+        startPage();
+        return getDataTable(bizDeptService.selectBizDeptList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询科室",notes = "权限: biz:dept:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("biz:dept:query")
+    public CommonResult<BizDeptDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizDeptService.selectBizDeptById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加科室",notes = "权限: biz:dept:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("biz:dept:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizDeptDTO source) {
+        return CommonResult.success(bizDeptService.insertBizDept(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑科室",notes = "权限: biz:dept:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("biz:dept:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizDeptDTO source) {
+        return CommonResult.success(bizDeptService.updateBizDeptById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除科室",notes = "权限: biz:dept:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("biz:dept:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizDeptService.removeBizDeptByIds(ids));
+    }
+}