Browse Source

新增单位管理,用户绑定单位

车车 10 tháng trước cách đây
mục cha
commit
65b69e842f

+ 35 - 1
ktg-admin/src/main/java/com/ktg/web/controller/system/SysUserController.java

@@ -12,7 +12,9 @@ import com.ktg.common.enums.BusinessType;
 import com.ktg.common.utils.SecurityUtils;
 import com.ktg.common.utils.StringUtils;
 import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.iscs.domain.IsUserUnit;
 import com.ktg.iscs.domain.IsUserWorkstation;
+import com.ktg.iscs.service.IIsUserUnitService;
 import com.ktg.iscs.service.IIsUserWorkstationService;
 import com.ktg.system.service.ISysPostService;
 import com.ktg.system.service.ISysRoleService;
@@ -52,6 +54,8 @@ public class SysUserController extends BaseController
     private ISysPostService postService;
     @Autowired
     private IIsUserWorkstationService iIsUserWorkstationService;
+    @Autowired
+    private IIsUserUnitService iIsUserUnitService;
 
 
     /**
@@ -114,6 +118,7 @@ public class SysUserController extends BaseController
             ajax.put("postIds", postService.selectPostListByUserId(userId));
             ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
             ajax.put("workstationIds", iIsUserWorkstationService.selectWorkstationListByUserId(userId));
+            ajax.put("unitIds", iIsUserUnitService.getUnitIds(userId));
         }
         return ajax;
     }
@@ -155,6 +160,17 @@ public class SysUserController extends BaseController
             }
             iIsUserWorkstationService.saveBatch(isUserWorkstations);
         }
+        // 关联单位
+        if (user.getUnitIds() != null && user.getUnitIds().length > 0) {
+            ArrayList<IsUserUnit> userUnits = new ArrayList<>();
+            for (Long unitId : user.getUnitIds()) {
+                IsUserUnit isUserUnit = new IsUserUnit();
+                isUserUnit.setUserId(user.getUserId());
+                isUserUnit.setUnitId(unitId);
+                userUnits.add(isUserUnit);
+            }
+            iIsUserUnitService.saveBatch(userUnits);
+        }
         return toAjax(true);
     }
 
@@ -185,7 +201,7 @@ public class SysUserController extends BaseController
         if (user.getWorkstationIds() != null && user.getWorkstationIds().length > 0) {
             iIsUserWorkstationService.remove(Wrappers.<IsUserWorkstation>lambdaQuery()
                     .eq(IsUserWorkstation::getUserId, user.getUserId()));
-            ArrayList<IsUserWorkstation> isUserWorkstations = new ArrayList<>();
+            List<IsUserWorkstation> isUserWorkstations = new ArrayList<>();
             for (Long workstationId : user.getWorkstationIds()) {
                 IsUserWorkstation isUserWorkstation = new IsUserWorkstation();
                 isUserWorkstation.setUserId(user.getUserId());
@@ -194,6 +210,19 @@ public class SysUserController extends BaseController
             }
             iIsUserWorkstationService.saveBatch(isUserWorkstations);
         }
+        // 关联单位
+        if (user.getUnitIds() != null && user.getUnitIds().length > 0) {
+            iIsUserUnitService.remove(Wrappers.<IsUserUnit>lambdaQuery()
+                    .eq(IsUserUnit::getUserId, user.getUserId()));
+            List<IsUserUnit> userUnits = new ArrayList<>();
+            for (Long unitId : user.getUnitIds()) {
+                IsUserUnit isUserUnit = new IsUserUnit();
+                isUserUnit.setUserId(user.getUserId());
+                isUserUnit.setUnitId(unitId);
+                userUnits.add(isUserUnit);
+            }
+            iIsUserUnitService.saveBatch(userUnits);
+        }
         return toAjax(true);
     }
 
@@ -216,6 +245,11 @@ public class SysUserController extends BaseController
             iIsUserWorkstationService.remove(Wrappers.<IsUserWorkstation>lambdaQuery()
                     .in(IsUserWorkstation::getUserId, userIds));
         }
+        // 关联单位
+        if (userIds.length > 0) {
+            iIsUserUnitService.remove(Wrappers.<IsUserUnit>lambdaQuery()
+                    .in(IsUserUnit::getUserId, userIds));
+        }
         return toAjax(true);
     }
 

+ 4 - 0
ktg-common/src/main/java/com/ktg/common/core/domain/entity/SysUser.java

@@ -111,6 +111,10 @@ public class SysUser extends BaseEntity
     @TableField(exist = false)
     private Long[] workstationIds;
 
+    /** 单位组 */
+    @TableField(exist = false)
+    private Long[] unitIds;
+
     /** 角色ID */
     @TableField(exist = false)
     private Long roleId;

+ 137 - 0
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsUnitController.java

@@ -0,0 +1,137 @@
+package com.ktg.iscs.controller;
+
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.pojo.CommonResult;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.iscs.domain.IsUnit;
+import com.ktg.iscs.service.IIsUnitService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 单位管理Controller
+ *
+ * @author cgj
+ * @date 2024-12-18
+ */
+@Api(tags = "单位管理")
+@RestController
+@RequestMapping("/iscs/unit")
+public class IsUnitController extends BaseController
+{
+    @Autowired
+    private IIsUnitService isUnitService;
+
+    /**
+     * 查询单位管理分页
+     */
+    @ApiOperation("查询单位管理-分页")
+    @Parameters({
+            @Parameter(name = "page", description = "Page"),
+            @Parameter(name = "isUnit", description = "实体参数")
+    })
+    @PreAuthorize("@ss.hasPermi('iscs:unit:list')")
+    @GetMapping("/getIsUnitPage")
+    public CommonResult<Page<IsUnit>> getIsUnitPage(Page<IsUnit> page, IsUnit isUnit)
+    {
+        Page<IsUnit> result = isUnitService.page(page, Wrappers.<IsUnit>lambdaQuery()
+                .like(StringUtils.isNotBlank(isUnit.getUnitName()), IsUnit::getUnitName, isUnit.getUnitName())
+                .orderByDesc(IsUnit::getUnitId));
+        return CommonResult.success(result);
+    }
+
+    /**
+     * 导出单位管理列表
+     */
+    @ApiOperation("导出单位管理列表")
+    @Parameter(name = "isUnit", description = "实体参数")
+    @PreAuthorize("@ss.hasPermi('iscs:unit:export')")
+    @Log(title = "单位管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportIsUnit")
+    public void exportIsUnit(HttpServletResponse response, IsUnit isUnit)
+    {
+        Page<IsUnit> page = new Page<>();
+        page.setSize(-1);
+        page.setCurrent(1);
+        List<IsUnit> list = isUnitService.page(page, Wrappers.<IsUnit>lambdaQuery()
+                .orderByDesc(IsUnit::getUnitId)).getRecords();
+        ExcelUtil<IsUnit> util = new ExcelUtil<IsUnit>(IsUnit.class);
+        util.exportExcel(response, list, "单位管理数据");
+    }
+
+    /**
+     * 获取单位管理详细信息
+     */
+    @ApiOperation("获取单位管理详细信息")
+    @Parameter(name = "unitId", description = "unitId")
+    @PreAuthorize("@ss.hasPermi('iscs:unit:query')")
+    @GetMapping(value = "/selectIsUnitById")
+    public CommonResult<IsUnit> selectIsUnitById(Long unitId)
+    {
+        return CommonResult.success(isUnitService.getById(unitId));
+    }
+
+    /**
+     * 新增单位管理
+     */
+    @ApiOperation("新增单位管理")
+    @PreAuthorize("@ss.hasPermi('iscs:unit:add')")
+    @Log(title = "单位管理", businessType = BusinessType.INSERT)
+    @PostMapping("/insertIsUnit")
+    public CommonResult<Boolean> insertIsUnit(@RequestBody @Parameter(name = "isUnit", description = "新增数据类,放到body") IsUnit isUnit)
+    {
+        // 断言校验
+        Assert.isTrue(StringUtils.isNotBlank(isUnit.getUnitName()), "岗位名称不可为空!");
+        IsUnit one =isUnitService.getById(isUnit.getParentId());
+        String ancestors;
+        if (one != null) {
+            ancestors = one.getAncestors() + "," + isUnit.getParentId();
+        } else {
+            ancestors = "0";
+        }
+        isUnit.setAncestors(ancestors);
+        return CommonResult.success(isUnitService.save(isUnit));
+    }
+
+    /**
+     * 修改单位管理
+     */
+    @ApiOperation("修改单位管理")
+    @PreAuthorize("@ss.hasPermi('iscs:unit:edit')")
+    @Log(title = "单位管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/updateIsUnit")
+    public CommonResult<Boolean> updateIsUnit(@RequestBody @Parameter(name = "isUnit", description = "修改数据类,放到body") IsUnit isUnit)
+    {
+        return CommonResult.success(isUnitService.updateById(isUnit));
+    }
+
+    /**
+     * 删除单位管理
+     */
+    @ApiOperation("删除单位管理")
+    @PreAuthorize("@ss.hasPermi('iscs:unit:remove')")
+    @Log(title = "单位管理", businessType = BusinessType.DELETE)
+	@PostMapping("/deleteIsUnitByUnitIds")
+    public CommonResult<Boolean> deleteIsUnitByUnitIds(String unitIds)
+    {
+        Assert.notBlank(unitIds, "请选择需要删除的数据!");
+        Long[] longIds = Convert.toLongArray(unitIds);
+        return CommonResult.success(isUnitService.removeBatchByIds(Arrays.asList(longIds)));
+    }
+}

+ 55 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/IsUnit.java

@@ -0,0 +1,55 @@
+package com.ktg.iscs.domain;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.ktg.common.annotation.Excel;
+import com.ktg.common.core.domain.model.BaseBean;
+
+/**
+ * 单位管理对象 is_unit
+ *
+ * @author cgj
+ * @date 2024-12-18
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class IsUnit extends BaseBean
+{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "单位ID")
+    @TableId(type = IdType.AUTO)
+    private Long unitId;
+
+    @ApiModelProperty(value = "单位名称")
+    @Excel(name = "单位名称")
+    private String unitName;
+
+    @ApiModelProperty(value = "单位类型")
+    @Excel(name = "单位类型")
+    private String unitType;
+
+    @ApiModelProperty(value = "父部门id")
+    @Excel(name = "父部门id")
+    private Long parentId;
+
+    @ApiModelProperty(value = "祖级列表")
+    @Excel(name = "祖级列表")
+    private String ancestors;
+
+    @ApiModelProperty(value = "显示顺序")
+    @Excel(name = "显示顺序")
+    private Integer orderNum;
+
+    @ApiModelProperty(value = "状态")
+    @Excel(name = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)")
+    private String delFlag;
+
+
+}

+ 29 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/IsUserUnit.java

@@ -0,0 +1,29 @@
+package com.ktg.iscs.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 用户与单位关联对象 is_user_unit
+ *
+ * @author cgj
+ * @date 2024-12-18
+ */
+@EqualsAndHashCode(callSuper = false)
+@Data
+public class IsUserUnit
+{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "用户ID")
+    @TableId(type = IdType.AUTO)
+    private Long userId;
+
+    @ApiModelProperty(value = "岗位ID")
+    private Long unitId;
+
+
+}

+ 16 - 0
ktg-iscs/src/main/java/com/ktg/iscs/mapper/IsUnitMapper.java

@@ -0,0 +1,16 @@
+package com.ktg.iscs.mapper;
+
+import com.ktg.common.mapper.BaseMapperX;
+import com.ktg.iscs.domain.IsUnit;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 单位管理Mapper接口
+ *
+ * @author cgj
+ * @date 2024-12-18
+ */
+@Mapper
+public interface IsUnitMapper extends BaseMapperX<IsUnit> {
+
+}

+ 16 - 0
ktg-iscs/src/main/java/com/ktg/iscs/mapper/IsUserUnitMapper.java

@@ -0,0 +1,16 @@
+package com.ktg.iscs.mapper;
+
+import com.ktg.common.mapper.BaseMapperX;
+import com.ktg.iscs.domain.IsUserUnit;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户与单位关联Mapper接口
+ *
+ * @author cgj
+ * @date 2024-12-18
+ */
+@Mapper
+public interface IsUserUnitMapper extends BaseMapperX<IsUserUnit> {
+
+}

+ 14 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsUnitService.java

@@ -0,0 +1,14 @@
+package com.ktg.iscs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ktg.iscs.domain.IsUnit;
+
+/**
+ * 单位管理Service接口
+ *
+ * @author cgj
+ * @date 2024-12-18
+ */
+public interface IIsUnitService extends IService<IsUnit> {
+
+}

+ 18 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsUserUnitService.java

@@ -0,0 +1,18 @@
+package com.ktg.iscs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ktg.iscs.domain.IsUserUnit;
+
+import java.util.List;
+
+/**
+ * 用户与单位关联Service接口
+ *
+ * @author cgj
+ * @date 2024-12-18
+ */
+public interface IIsUserUnitService extends IService<IsUserUnit> {
+
+    List<Long> getUnitIds(Long userId);
+
+}

+ 22 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsUnitServiceImpl.java

@@ -0,0 +1,22 @@
+package com.ktg.iscs.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ktg.iscs.domain.IsUnit;
+import com.ktg.iscs.mapper.IsUnitMapper;
+import com.ktg.iscs.service.IIsUnitService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 单位管理Service业务层处理
+ *
+ * @author cgj
+ * @date 2024-12-18
+ */
+@Service
+public class IsUnitServiceImpl extends ServiceImpl<IsUnitMapper, IsUnit> implements IIsUnitService {
+
+    @Autowired
+    private IsUnitMapper isUnitMapper;
+
+}

+ 36 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsUserUnitServiceImpl.java

@@ -0,0 +1,36 @@
+package com.ktg.iscs.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ktg.iscs.domain.IsUserUnit;
+import com.ktg.iscs.mapper.IsUserUnitMapper;
+import com.ktg.iscs.service.IIsUserUnitService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 用户与单位关联Service业务层处理
+ *
+ * @author cgj
+ * @date 2024-12-18
+ */
+@Service
+public class IsUserUnitServiceImpl extends ServiceImpl<IsUserUnitMapper, IsUserUnit> implements IIsUserUnitService {
+
+    @Autowired
+    private IsUserUnitMapper isUserUnitMapper;
+
+    @Override
+    public List<Long> getUnitIds(Long userId) {
+        List<IsUserUnit> list = list(Wrappers.<IsUserUnit>lambdaQuery()
+                .eq(IsUserUnit::getUserId, userId));
+        if (!list.isEmpty()) {
+            List<Long> collect = list.stream().map(IsUserUnit::getUnitId).collect(Collectors.toList());
+            return collect;
+        }
+        return null;
+    }
+}

+ 7 - 0
ktg-iscs/src/main/resources/mapper/IsUnitMapper.xml

@@ -0,0 +1,7 @@
+<?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.ktg.iscs.mapper.IsUnitMapper">
+
+</mapper>

+ 7 - 0
ktg-iscs/src/main/resources/mapper/IsUserUnitMapper.xml

@@ -0,0 +1,7 @@
+<?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.ktg.iscs.mapper.IsUserUnitMapper">
+
+</mapper>