内部工作组
This commit is contained in:
+190
@@ -0,0 +1,190 @@
|
||||
package com.jero.modules.sys.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.modules.sys.entity.LawsWorkingGroup;
|
||||
import com.jero.modules.sys.service.ILawsWorkingGroupService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 内部工作组
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-09-06
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="内部工作组")
|
||||
@RestController
|
||||
@RequestMapping("/sys/lawsWorkingGroup")
|
||||
@Slf4j
|
||||
public class LawsWorkingGroupController extends JeroController<LawsWorkingGroup, ILawsWorkingGroupService> {
|
||||
@Autowired
|
||||
private ILawsWorkingGroupService lawsWorkingGroupService;
|
||||
|
||||
/**
|
||||
* 查询
|
||||
*/
|
||||
@AutoLog(value = "内部工作组-列表查询")
|
||||
@ApiOperation(value="内部工作组-列表查询", notes="内部工作组-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<LawsWorkingGroup>> queryList(LawsWorkingGroup lawsWorkingGroup, HttpServletRequest req) {
|
||||
lawsWorkingGroup.setDelFlag("0");
|
||||
List<LawsWorkingGroup> list = lawsWorkingGroupService.queryList(lawsWorkingGroup, req);
|
||||
List<LawsWorkingGroup> toTree = this.convertToTree(list);
|
||||
return Result.OK(toTree);
|
||||
}
|
||||
//对列表数据转树结构列表
|
||||
public List<LawsWorkingGroup> convertToTree(List<LawsWorkingGroup> list) {
|
||||
List<LawsWorkingGroup> treeList = new ArrayList<>();
|
||||
for (LawsWorkingGroup group : list) {
|
||||
if (StringUtils.isBlank(group.getPid())) {
|
||||
group.setLevel(1);
|
||||
addChildGroups(group, list);
|
||||
treeList.add(group);
|
||||
}
|
||||
}
|
||||
return treeList;
|
||||
}
|
||||
private void addChildGroups(LawsWorkingGroup parentGroup, List<LawsWorkingGroup> list) {
|
||||
List<LawsWorkingGroup> childGroups = new ArrayList<>();
|
||||
for (LawsWorkingGroup group : list) {
|
||||
if (StringUtils.isNotBlank(group.getPid()) && parentGroup.getId().equals(group.getPid())) {
|
||||
group.setLevel(parentGroup.getLevel() + 1);
|
||||
addChildGroups(group, list);
|
||||
childGroups.add(group);
|
||||
}
|
||||
}
|
||||
parentGroup.setSubset(childGroups);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "内部工作组-通过id查询")
|
||||
@ApiOperation(value="内部工作组-通过id查询", notes="内部工作组-通过id查询")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<LawsWorkingGroup> queryById(@RequestParam(name="id",required=true) String id) {
|
||||
LawsWorkingGroup lawsWorkingGroup = lawsWorkingGroupService.queryById(id);
|
||||
if(lawsWorkingGroup==null) {
|
||||
return Result.error("未找到对应数据");
|
||||
}
|
||||
// 通过递归查找所有子节点数据
|
||||
List<LawsWorkingGroup> list = lawsWorkingGroupService.realList();
|
||||
LawsWorkingGroup workingGroup = convertToTreeById(list, id);
|
||||
return Result.OK(workingGroup);
|
||||
}
|
||||
|
||||
public LawsWorkingGroup convertToTreeById(List<LawsWorkingGroup> list, String id) {
|
||||
LawsWorkingGroup root = null;
|
||||
for (LawsWorkingGroup group : list) {
|
||||
if (group.getId().equals(id)) {
|
||||
root = group;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (root == null) {
|
||||
return null; // 如果没有找到指定的id,返回null
|
||||
}
|
||||
addChildGroupsById(root, list);
|
||||
return root;
|
||||
}
|
||||
private void addChildGroupsById(LawsWorkingGroup parentGroup, List<LawsWorkingGroup> list) {
|
||||
List<LawsWorkingGroup> childGroups = new ArrayList<>();
|
||||
for (LawsWorkingGroup group : list) {
|
||||
if (StringUtils.isNotBlank(group.getPid()) && parentGroup.getId().equals(group.getPid())) {
|
||||
addChildGroupsById(group, list);
|
||||
childGroups.add(group);
|
||||
}
|
||||
}
|
||||
parentGroup.setSubset(childGroups);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param lawsWorkingGroup
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "内部工作组-添加")
|
||||
@ApiOperation(value="内部工作组-添加", notes="内部工作组-添加")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<T> add(@Validated @RequestBody LawsWorkingGroup lawsWorkingGroup) {
|
||||
String pid = lawsWorkingGroup.getPid();
|
||||
if (StringUtils.isNotBlank(pid)){
|
||||
LawsWorkingGroup workingGroup = lawsWorkingGroupService.queryById(pid);
|
||||
lawsWorkingGroup.setLevel(workingGroup.getLevel() + 1);
|
||||
}else {
|
||||
lawsWorkingGroup.setLevel(1);
|
||||
}
|
||||
lawsWorkingGroup.setDelFlag("0");
|
||||
lawsWorkingGroupService.add(lawsWorkingGroup);
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param lawsWorkingGroup
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "内部工作组-编辑")
|
||||
@ApiOperation(value="内部工作组-编辑", notes="内部工作组-编辑")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result<T> edit(@Validated @RequestBody LawsWorkingGroup lawsWorkingGroup) {
|
||||
lawsWorkingGroupService.editById(lawsWorkingGroup);
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "内部工作组-通过id删除")
|
||||
@ApiOperation(value="内部工作组-通过id删除", notes="内部工作组-通过id删除")
|
||||
@PostMapping(value = "/delete")
|
||||
public Result<T> delete(@RequestBody Map<String, String> map) {
|
||||
if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){
|
||||
return Result.error("请选择数据!");
|
||||
}
|
||||
List<String> ids = new ArrayList<>();
|
||||
List<LawsWorkingGroup> list = lawsWorkingGroupService.realList();
|
||||
ids = this.allChildIdById(list, map.get("id"), ids);
|
||||
if (ids.size() > 0){
|
||||
LambdaUpdateWrapper<LawsWorkingGroup> wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.in(LawsWorkingGroup::getId, ids);
|
||||
wrapper.set(LawsWorkingGroup::getDelFlag, "1");
|
||||
lawsWorkingGroupService.update(wrapper);
|
||||
}
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
public List<String> allChildIdById(List<LawsWorkingGroup> list, String id, List<String> ids) {
|
||||
List<String> collect = list.stream().filter(LawsWorkingGroup -> id.equals(LawsWorkingGroup.getPid())).map(LawsWorkingGroup::getId).collect(Collectors.toList());
|
||||
for (String s : collect) {
|
||||
allChildIdById(list, s, ids);
|
||||
}
|
||||
ids.add(id);
|
||||
return ids;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.jero.modules.sys.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 内部工作组
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-09-06
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@TableName("laws_working_group")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="laws_working_group对象", description="内部工作组")
|
||||
public class LawsWorkingGroup implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**主键*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "主键")
|
||||
private java.lang.String id;
|
||||
|
||||
/**父级节点*/
|
||||
@ApiModelProperty(value = "父级节点")
|
||||
private java.lang.String pid;
|
||||
|
||||
/**名称*/
|
||||
@ApiModelProperty(value = "名称")
|
||||
private java.lang.String name;
|
||||
|
||||
/**层级*/
|
||||
@ApiModelProperty(value = "层级")
|
||||
private java.lang.Integer level;
|
||||
|
||||
/**创建人*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private java.lang.String createBy;
|
||||
|
||||
/**创建日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "创建日期")
|
||||
private java.util.Date createTime;
|
||||
|
||||
/**更新人*/
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private java.lang.String updateBy;
|
||||
|
||||
/**更新日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "更新日期")
|
||||
private java.util.Date updateTime;
|
||||
|
||||
/**所属部门*/
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private java.lang.String orgCode;
|
||||
|
||||
/**删除状态(0-正常,1-删除)*/
|
||||
@ApiModelProperty(value = "删除状态(0-正常,1-删除)")
|
||||
private java.lang.String delFlag;
|
||||
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<LawsWorkingGroup> subset;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.jero.modules.sys.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.jero.modules.sys.entity.LawsWorkingGroup;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @Description: 内部工作组
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-09-06
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface LawsWorkingGroupMapper extends BaseMapper<LawsWorkingGroup> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.sys.mapper.LawsWorkingGroupMapper">
|
||||
<resultMap id="LawsWorkingGroupResultMap" type="com.jero.modules.sys.entity.LawsWorkingGroup">
|
||||
<id column="id" property="id" />
|
||||
<result column="create_by" property="createBy" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="update_by" property="updateBy" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="org_code" property="orgCode" />
|
||||
<result column="pid" property="pid" />
|
||||
<result column="name" property="name" />
|
||||
<result column="level" property="level" />
|
||||
<result column="del_flag" property="delFlag" />
|
||||
</resultMap>
|
||||
</mapper>
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.jero.modules.sys.service;
|
||||
|
||||
import com.jero.modules.sys.entity.LawsWorkingGroup;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 内部工作组
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-09-06
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface ILawsWorkingGroupService extends IService<LawsWorkingGroup> {
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @param lawsWorkingGroup
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
List<LawsWorkingGroup> queryList(LawsWorkingGroup lawsWorkingGroup, HttpServletRequest req);
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param lawsWorkingGroup
|
||||
* @return
|
||||
*/
|
||||
void add(LawsWorkingGroup lawsWorkingGroup);
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param lawsWorkingGroup
|
||||
* @return
|
||||
*/
|
||||
void editById(LawsWorkingGroup lawsWorkingGroup);
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
void deleteById(String id);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
void deleteByIds(List<String> ids);
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
LawsWorkingGroup queryById(String id);
|
||||
|
||||
/**
|
||||
* 查询所有未逻辑删除的数据
|
||||
*/
|
||||
List<LawsWorkingGroup> realList();
|
||||
}
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
package com.jero.modules.sys.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.modules.sys.entity.LawsWorkingGroup;
|
||||
import com.jero.modules.sys.mapper.LawsWorkingGroupMapper;
|
||||
import com.jero.modules.sys.service.ILawsWorkingGroupService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import java.util.List;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 内部工作组
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-09-06
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public class LawsWorkingGroupServiceImpl extends ServiceImpl<LawsWorkingGroupMapper, LawsWorkingGroup> implements ILawsWorkingGroupService {
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @param lawsWorkingGroup
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<LawsWorkingGroup> queryList(LawsWorkingGroup lawsWorkingGroup, HttpServletRequest req) {
|
||||
return list(QueryGenerator.initQueryWrapper(lawsWorkingGroup, req.getParameterMap()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
* @param lawsWorkingGroup
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void add(LawsWorkingGroup lawsWorkingGroup) {
|
||||
Date now = new Date();
|
||||
lawsWorkingGroup.setCreateTime(now);
|
||||
lawsWorkingGroup.setUpdateTime(now);
|
||||
save(lawsWorkingGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*
|
||||
* @param lawsWorkingGroup
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void editById(LawsWorkingGroup lawsWorkingGroup) {
|
||||
Date now = new Date();
|
||||
lawsWorkingGroup.setUpdateTime(now);
|
||||
saveOrUpdate(lawsWorkingGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void deleteById(String id) {
|
||||
removeById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void deleteByIds(List<String> ids) {
|
||||
removeByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LawsWorkingGroup queryById(String id) {
|
||||
return getById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LawsWorkingGroup> realList() {
|
||||
LambdaQueryWrapper<LawsWorkingGroup> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(LawsWorkingGroup::getDelFlag, "0");
|
||||
List<LawsWorkingGroup> list = list(wrapper);
|
||||
return list;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user