ソースを参照

用户岗位修改

车车 4 ヶ月 前
コミット
ec2c3b72c5
14 ファイル変更274 行追加199 行削除
  1. 92 95
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workstation/WorkstationController.java
  2. 8 4
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workstation/vo/WorkstationPageReqVO.java
  3. 10 5
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/workstation/WorkstationMapper.java
  4. 65 63
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workstation/WorkstationService.java
  5. 24 4
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workstation/WorkstationServiceImpl.java
  6. 0 12
      yudao-module-iscs/src/main/resources/mapper/UserWorkstationMapper.xml
  7. 28 1
      yudao-module-iscs/src/main/resources/mapper/WorkstationMapper.xml
  8. 3 0
      yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java
  9. 4 0
      yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java
  10. 1 1
      yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/userworkstation/UserWorkstationDO.java
  11. 2 2
      yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/userworkstation/UserWorkstationMapper.java
  12. 31 7
      yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
  13. 3 2
      yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/userworkstation/UserWorkstationService.java
  14. 3 3
      yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/userworkstation/UserWorkstationServiceImpl.java

+ 92 - 95
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workstation/WorkstationController.java

@@ -1,95 +1,92 @@
-package cn.iocoder.yudao.module.iscs.controller.admin.workstation;
-
-import org.springframework.web.bind.annotation.*;
-import jakarta.annotation.Resource;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.security.access.prepost.PreAuthorize;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Operation;
-
-import jakarta.validation.constraints.*;
-import jakarta.validation.*;
-import jakarta.servlet.http.*;
-import java.util.*;
-import java.io.IOException;
-
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-
-import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
-import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
-
-import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.*;
-import cn.iocoder.yudao.module.iscs.dal.dataobject.workstation.WorkstationDO;
-import cn.iocoder.yudao.module.iscs.service.workstation.WorkstationService;
-
-@Tag(name = "管理后台 - mars岗位")
-@RestController
-@RequestMapping("/iscs/workstation")
-@Validated
-public class WorkstationController {
-
-    @Resource
-    private WorkstationService workstationService;
-
-    @PostMapping("/insertWorkstation")
-    @Operation(summary = "创建mars岗位")
-    @PreAuthorize("@ss.hasPermission('iscs:workstation:create')")
-    public CommonResult<Long> insertWorkstation(@Valid @RequestBody WorkstationSaveReqVO createReqVO) {
-        return success(workstationService.createWorkstation(createReqVO));
-    }
-
-    @PutMapping("/updateWorkstation")
-    @Operation(summary = "更新mars岗位")
-    @PreAuthorize("@ss.hasPermission('iscs:workstation:update')")
-    public CommonResult<Boolean> updateWorkstation(@Valid @RequestBody WorkstationSaveReqVO updateReqVO) {
-        workstationService.updateWorkstation(updateReqVO);
-        return success(true);
-    }
-
-    @DeleteMapping("/deleteWorkstationList")
-    @Parameter(name = "ids", description = "编号", required = true)
-    @Operation(summary = "批量删除mars岗位")
-                @PreAuthorize("@ss.hasPermission('iscs:workstation:delete')")
-    public CommonResult<Boolean> deleteWorkstationList(@RequestParam("ids") List<Long> ids) {
-        workstationService.deleteWorkstationListByIds(ids);
-        return success(true);
-    }
-
-    @GetMapping("/selectWorkstationById")
-    @Operation(summary = "获得mars岗位")
-    @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('iscs:workstation:query')")
-    public CommonResult<WorkstationRespVO> selectWorkstationById(@RequestParam("id") Long id) {
-        WorkstationDO workstation = workstationService.getWorkstation(id);
-        return success(BeanUtils.toBean(workstation, WorkstationRespVO.class));
-    }
-
-    @GetMapping("/getWorkstationPage")
-    @Operation(summary = "获得mars岗位分页")
-    @PreAuthorize("@ss.hasPermission('iscs:workstation:query')")
-    public CommonResult<PageResult<WorkstationRespVO>> getWorkstationPage(@Valid WorkstationPageReqVO pageReqVO) {
-        PageResult<WorkstationDO> pageResult = workstationService.getWorkstationPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, WorkstationRespVO.class));
-    }
-
-    @GetMapping("/exportWorkstationExcel")
-    @Operation(summary = "导出mars岗位 Excel")
-    @PreAuthorize("@ss.hasPermission('iscs:workstation:export')")
-    @ApiAccessLog(operateType = EXPORT)
-    public void exportWorkstationExcel(@Valid WorkstationPageReqVO pageReqVO,
-              HttpServletResponse response) throws IOException {
-        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<WorkstationDO> list = workstationService.getWorkstationPage(pageReqVO).getList();
-        // 导出 Excel
-        ExcelUtils.write(response, "mars岗位.xls", "数据", WorkstationRespVO.class,
-                        BeanUtils.toBean(list, WorkstationRespVO.class));
-    }
-
-}
+package cn.iocoder.yudao.module.iscs.controller.admin.workstation;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationRespVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationSaveReqVO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.workstation.WorkstationDO;
+import cn.iocoder.yudao.module.iscs.service.workstation.WorkstationService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - mars岗位")
+@RestController
+@RequestMapping("/iscs/workstation")
+@Validated
+public class WorkstationController {
+
+    @Resource
+    private WorkstationService workstationService;
+
+    @PostMapping("/insertWorkstation")
+    @Operation(summary = "创建mars岗位")
+    @PreAuthorize("@ss.hasPermission('iscs:workstation:create')")
+    public CommonResult<Long> insertWorkstation(@Valid @RequestBody WorkstationSaveReqVO createReqVO) {
+        return success(workstationService.createWorkstation(createReqVO));
+    }
+
+    @PutMapping("/updateWorkstation")
+    @Operation(summary = "更新mars岗位")
+    @PreAuthorize("@ss.hasPermission('iscs:workstation:update')")
+    public CommonResult<Boolean> updateWorkstation(@Valid @RequestBody WorkstationSaveReqVO updateReqVO) {
+        workstationService.updateWorkstation(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/deleteWorkstationList")
+    @Parameter(name = "ids", description = "编号", required = true)
+    @Operation(summary = "批量删除mars岗位")
+                @PreAuthorize("@ss.hasPermission('iscs:workstation:delete')")
+    public CommonResult<Boolean> deleteWorkstationList(@RequestParam("ids") List<Long> ids) {
+        workstationService.deleteWorkstationListByIds(ids);
+        return success(true);
+    }
+
+    @GetMapping("/selectWorkstationById")
+    @Operation(summary = "获得mars岗位")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('iscs:workstation:query')")
+    public CommonResult<WorkstationRespVO> selectWorkstationById(@RequestParam("id") Long id) {
+        WorkstationDO workstation = workstationService.getWorkstation(id);
+        return success(BeanUtils.toBean(workstation, WorkstationRespVO.class));
+    }
+
+    @GetMapping("/getWorkstationPage")
+    @Operation(summary = "获得mars岗位分页")
+    @PreAuthorize("@ss.hasPermission('iscs:workstation:query')")
+    public CommonResult<PageResult<WorkstationRespVO>> getWorkstationPage(@Valid WorkstationPageReqVO pageReqVO) {
+        PageResult<WorkstationRespVO> pageResult = workstationService.getWorkstationPage(pageReqVO);
+        return success(pageResult);
+    }
+
+    @GetMapping("/exportWorkstationExcel")
+    @Operation(summary = "导出mars岗位 Excel")
+    @PreAuthorize("@ss.hasPermission('iscs:workstation:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportWorkstationExcel(@Valid WorkstationPageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<WorkstationRespVO> list = workstationService.getWorkstationPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "mars岗位.xls", "数据", WorkstationRespVO.class, list);
+    }
+
+}

+ 8 - 4
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workstation/vo/WorkstationPageReqVO.java

@@ -1,10 +1,11 @@
 package cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo;
 
-import lombok.*;
-import java.util.*;
-import io.swagger.v3.oas.annotations.media.Schema;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
+
 import java.time.LocalDateTime;
 
 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -41,4 +42,7 @@ public class WorkstationPageReqVO extends PageParam {
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
 
-}
+    @TableField(exist = false)
+    private Long userId;
+
+}

+ 10 - 5
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/workstation/WorkstationMapper.java

@@ -1,13 +1,16 @@
 package cn.iocoder.yudao.module.iscs.dal.mysql.workstation;
 
-import java.util.*;
-
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationRespVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workstation.WorkstationDO;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
-import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.*;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * mars岗位 Mapper
@@ -31,4 +34,6 @@ public interface WorkstationMapper extends BaseMapperX<WorkstationDO> {
                 .orderByDesc(WorkstationDO::getId));
     }
 
-}
+    Page<WorkstationRespVO> getWorkstationPage(Page<WorkstationDO> page, @Param(value = "vo") WorkstationPageReqVO vo,
+                                               @Param(value = "ids") List<Long> ids);
+}

+ 65 - 63
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workstation/WorkstationService.java

@@ -1,63 +1,65 @@
-package cn.iocoder.yudao.module.iscs.service.workstation;
-
-import java.util.*;
-import jakarta.validation.*;
-import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.*;
-import cn.iocoder.yudao.module.iscs.dal.dataobject.workstation.WorkstationDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * mars岗位 Service 接口
- *
- * @author 芋道源码
- */
-public interface WorkstationService extends IService<WorkstationDO> {
-
-    /**
-     * 创建mars岗位
-     *
-     * @param createReqVO 创建信息
-     * @return 编号
-     */
-    Long createWorkstation(@Valid WorkstationSaveReqVO createReqVO);
-
-    /**
-     * 更新mars岗位
-     *
-     * @param updateReqVO 更新信息
-     */
-    void updateWorkstation(@Valid WorkstationSaveReqVO updateReqVO);
-
-    /**
-     * 删除mars岗位
-     *
-     * @param id 编号
-     */
-    void deleteWorkstation(Long id);
-
-    /**
-    * 批量删除mars岗位
-    *
-    * @param ids 编号
-    */
-    void deleteWorkstationListByIds(List<Long> ids);
-
-    /**
-     * 获得mars岗位
-     *
-     * @param id 编号
-     * @return mars岗位
-     */
-    WorkstationDO getWorkstation(Long id);
-
-    /**
-     * 获得mars岗位分页
-     *
-     * @param pageReqVO 分页查询
-     * @return mars岗位分页
-     */
-    PageResult<WorkstationDO> getWorkstationPage(WorkstationPageReqVO pageReqVO);
-
-}
+package cn.iocoder.yudao.module.iscs.service.workstation;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationRespVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationSaveReqVO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.workstation.WorkstationDO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import jakarta.validation.Valid;
+
+import java.util.List;
+
+/**
+ * mars岗位 Service 接口
+ *
+ * @author 芋道源码
+ */
+public interface WorkstationService extends IService<WorkstationDO> {
+
+    /**
+     * 创建mars岗位
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createWorkstation(@Valid WorkstationSaveReqVO createReqVO);
+
+    /**
+     * 更新mars岗位
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateWorkstation(@Valid WorkstationSaveReqVO updateReqVO);
+
+    /**
+     * 删除mars岗位
+     *
+     * @param id 编号
+     */
+    void deleteWorkstation(Long id);
+
+    /**
+    * 批量删除mars岗位
+    *
+    * @param ids 编号
+    */
+    void deleteWorkstationListByIds(List<Long> ids);
+
+    /**
+     * 获得mars岗位
+     *
+     * @param id 编号
+     * @return mars岗位
+     */
+    WorkstationDO getWorkstation(Long id);
+
+    /**
+     * 获得mars岗位分页
+     *
+     * @param pageReqVO 分页查询
+     * @return mars岗位分页
+     */
+    PageResult<WorkstationRespVO> getWorkstationPage(WorkstationPageReqVO pageReqVO);
+
+}

+ 24 - 4
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workstation/WorkstationServiceImpl.java

@@ -5,19 +5,23 @@ import cn.hutool.core.lang.Assert;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationSaveReqVO;
-import cn.iocoder.yudao.module.iscs.dal.dataobject.userworkstation.UserWorkstationDO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workstation.WorkstationDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.workstation.WorkstationMapper;
-import cn.iocoder.yudao.module.iscs.service.userworkstation.UserWorkstationService;
+import cn.iocoder.yudao.module.system.dal.dataobject.userworkstation.UserWorkstationDO;
+import cn.iocoder.yudao.module.system.service.userworkstation.UserWorkstationService;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.iscs.enums.ErrorCodeConstants.WORKSTATION_NOT_EXISTS;
@@ -116,8 +120,24 @@ public class WorkstationServiceImpl extends ServiceImpl<WorkstationMapper, Works
     }
 
     @Override
-    public PageResult<WorkstationDO> getWorkstationPage(WorkstationPageReqVO pageReqVO) {
-        return workstationMapper.selectPage(pageReqVO);
+    public PageResult<WorkstationRespVO> getWorkstationPage(WorkstationPageReqVO pageReqVO) {
+        Page<WorkstationDO> page = new Page<WorkstationDO>().setCurrent(pageReqVO.getPageNo()).setSize(pageReqVO.getPageSize());
+        PageResult<WorkstationRespVO> respVOPageResult = new PageResult<>();
+        List<Long> workstationIds = new ArrayList<>();
+        if (pageReqVO.getUserId() != null) {
+            List<UserWorkstationDO> list = userWorkstationService.list(Wrappers.<UserWorkstationDO>lambdaQuery()
+                    .eq(UserWorkstationDO::getUserId, pageReqVO.getUserId()));
+            if (!list.isEmpty()) {
+                workstationIds = list.stream().map(UserWorkstationDO::getWorkstationId).collect(Collectors.toList());
+                if (workstationIds.isEmpty()) {
+                    return respVOPageResult;
+                }
+            }
+        }
+        Page<WorkstationRespVO> pageResult = workstationMapper.getWorkstationPage(page, pageReqVO, workstationIds);
+        respVOPageResult.setList(pageResult.getRecords());
+        respVOPageResult.setTotal(pageResult.getTotal());
+        return respVOPageResult;
     }
 
 }

+ 0 - 12
yudao-module-iscs/src/main/resources/mapper/UserWorkstationMapper.xml

@@ -1,12 +0,0 @@
-<?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="cn.iocoder.yudao.module.iscs.dal.mysql.userworkstation.UserWorkstationMapper">
-
-    <!--
-        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
-        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
-        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
-        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-     -->
-
-</mapper>

+ 28 - 1
yudao-module-iscs/src/main/resources/mapper/WorkstationMapper.xml

@@ -9,4 +9,31 @@
         文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
      -->
 
-</mapper>
+    <select id="getWorkstationPage"
+            resultType="cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationRespVO">
+        SELECT
+        w.*
+        FROM
+        isc_workstation w
+        LEFT JOIN system_users u ON u.id = w.creator
+        <where>
+            w.deleted = 0
+            <if test="vo.workstationName != null and vo.workstationName.trim != ''">
+                and w.workstation_name like concat('%',#{vo.workstationName},'%')
+            </if>
+            <if test="vo.status != null and vo.status.trim != ''">
+                and w.status = #{vo.status}
+            </if>
+            <if test="vo.parentId != null">
+                and w.parent_id = #{vo.parentId}
+            </if>
+            <if test="ids.size > 0">
+                and w.id in
+                <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        order by w.order_num asc, w.id desc
+    </select>
+</mapper>

+ 3 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java

@@ -35,6 +35,9 @@ public class UserPageReqVO extends PageParam {
     @Schema(description = "部门编号,同时筛选子部门", example = "1024")
     private Long deptId;
 
+    @Schema(description = "mars岗位", example = "1024")
+    private Long workstationId;
+
     @Schema(description = "角色编号", example = "1024")
     private Long roleId;
 

+ 4 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java

@@ -77,4 +77,8 @@ public class UserSaveReqVO {
                 || (ObjectUtil.isAllNotEmpty(password)); // 新增时,必须都传递 password
     }
 
+    @Schema(description = "workstation数组", example = "1")
+    @DiffLogField(name = "workstation数组", function = PostParseFunction.NAME)
+    private Set<Long> workstationIds;
+
 }

+ 1 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/dataobject/userworkstation/UserWorkstationDO.java → yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/userworkstation/UserWorkstationDO.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.module.iscs.dal.dataobject.userworkstation;
+package cn.iocoder.yudao.module.system.dal.dataobject.userworkstation;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import com.baomidou.mybatisplus.annotation.KeySequence;

+ 2 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/userworkstation/UserWorkstationMapper.java → yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/userworkstation/UserWorkstationMapper.java

@@ -1,7 +1,7 @@
-package cn.iocoder.yudao.module.iscs.dal.mysql.userworkstation;
+package cn.iocoder.yudao.module.system.dal.mysql.userworkstation;
 
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.module.iscs.dal.dataobject.userworkstation.UserWorkstationDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.userworkstation.UserWorkstationDO;
 import org.apache.ibatis.annotations.Mapper;
 
 /**

+ 31 - 7
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java

@@ -24,6 +24,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.userworkstation.UserWorkstationDO;
 import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper;
 import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper;
 import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
@@ -32,6 +33,7 @@ import cn.iocoder.yudao.module.system.service.dept.PostService;
 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
 import cn.iocoder.yudao.module.system.service.permission.RoleService;
 import cn.iocoder.yudao.module.system.service.tenant.TenantService;
+import cn.iocoder.yudao.module.system.service.userworkstation.UserWorkstationService;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.common.annotations.VisibleForTesting;
 import com.mzt.logapi.context.LogRecordContext;
@@ -96,6 +98,9 @@ public class AdminUserServiceImpl implements AdminUserService {
     @Lazy
     @Resource
     private UserRoleMapper userRoleMapper;
+    @Lazy
+    @Resource
+    private UserWorkstationService userWorkstationService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -122,7 +127,11 @@ public class AdminUserServiceImpl implements AdminUserService {
             userPostMapper.insertBatch(convertList(user.getPostIds(),
                     postId -> new UserPostDO().setUserId(user.getId()).setPostId(postId)));
         }
-
+        // 2.3 插入workstation
+        if (CollectionUtil.isNotEmpty(createReqVO.getWorkstationIds())) {
+            userWorkstationService.saveBatch(convertList(createReqVO.getWorkstationIds(),
+                    workstationId -> new UserWorkstationDO().setUserId(user.getId()).setWorkstationId(workstationId)));
+        }
         // 3. 记录操作日志上下文
         LogRecordContext.putVariable("user", user);
         return user.getId();
@@ -276,11 +285,24 @@ public class AdminUserServiceImpl implements AdminUserService {
     @Override
     public PageResult<AdminUserDO> getUserPage(UserPageReqVO reqVO) {
         // 如果有角色编号,查询角色对应的用户编号
-        Set<Long> userIds = reqVO.getRoleId() != null ?
+        Set<Long> userIds = new HashSet<>();
+        Set<Long> userIds1 = reqVO.getRoleId() != null ?
                 permissionService.getUserRoleIdListByRoleId(singleton(reqVO.getRoleId())) : null;
-
+        if (userIds1 != null && !userIds1.isEmpty()) {
+            userIds.addAll(userIds1);
+        }
+        // 如果有workstationId,查询mars岗位对应的用户编号
+        if (reqVO.getWorkstationId() != null) {
+            List<UserWorkstationDO> list = userWorkstationService.list(Wrappers.<UserWorkstationDO>lambdaQuery()
+                    .eq(UserWorkstationDO::getWorkstationId, reqVO.getWorkstationId()));
+            if (!list.isEmpty()) {
+                List<Long> userIds2 = list.stream().map(UserWorkstationDO::getUserId).toList();
+                Set<Long> set = new HashSet<>(userIds2);
+                userIds.addAll(set);
+            }
+        }
         // 分页查询
-        return userMapper.selectPage(reqVO, getDeptCondition(reqVO.getDeptId()), userIds);
+        return userMapper.selectPage(reqVO, getDeptCondition(reqVO.getDeptId()), userIds.isEmpty() ? null : userIds);
     }
 
     @Override
@@ -357,7 +379,7 @@ public class AdminUserServiceImpl implements AdminUserService {
     }
 
     private AdminUserDO validateUserForCreateOrUpdate(Long id, String username, String mobile, String email,
-                                               Long deptId, Set<Long> postIds) {
+                                                      Long deptId, Set<Long> postIds) {
         // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
         return DataPermissionUtils.executeIgnore(() -> {
             // 校验用户存在
@@ -444,6 +466,7 @@ public class AdminUserServiceImpl implements AdminUserService {
 
     /**
      * 校验旧密码
+     *
      * @param id          用户 id
      * @param oldPassword 旧密码
      */
@@ -478,7 +501,7 @@ public class AdminUserServiceImpl implements AdminUserService {
             // 2.1.1 校验字段是否符合要求
             try {
                 ValidationUtils.validate(BeanUtils.toBean(importUser, UserSaveReqVO.class).setPassword(initPassword));
-            } catch (ConstraintViolationException ex){
+            } catch (ConstraintViolationException ex) {
                 respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
                 return;
             }
@@ -534,7 +557,8 @@ public class AdminUserServiceImpl implements AdminUserService {
 
     /**
      * 用户在线
-     * @param id 用户id
+     *
+     * @param id       用户id
      * @param username 用户账号
      * @return
      */

+ 3 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/userworkstation/UserWorkstationService.java → yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/userworkstation/UserWorkstationService.java

@@ -1,6 +1,7 @@
-package cn.iocoder.yudao.module.iscs.service.userworkstation;
+package cn.iocoder.yudao.module.system.service.userworkstation;
 
-import cn.iocoder.yudao.module.iscs.dal.dataobject.userworkstation.UserWorkstationDO;
+
+import cn.iocoder.yudao.module.system.dal.dataobject.userworkstation.UserWorkstationDO;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**

+ 3 - 3
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/userworkstation/UserWorkstationServiceImpl.java → yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/userworkstation/UserWorkstationServiceImpl.java

@@ -1,7 +1,7 @@
-package cn.iocoder.yudao.module.iscs.service.userworkstation;
+package cn.iocoder.yudao.module.system.service.userworkstation;
 
-import cn.iocoder.yudao.module.iscs.dal.dataobject.userworkstation.UserWorkstationDO;
-import cn.iocoder.yudao.module.iscs.dal.mysql.userworkstation.UserWorkstationMapper;
+import cn.iocoder.yudao.module.system.dal.dataobject.userworkstation.UserWorkstationDO;
+import cn.iocoder.yudao.module.system.dal.mysql.userworkstation.UserWorkstationMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;