Browse Source

fix:审批表机构、机构用户角色

caozixuan 3 years ago
parent
commit
4e1f11d8cf

+ 23 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/approvalForm/ApprovalInfo.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.bean.dto.approvalForm;
 
+import com.qmth.teachcloud.common.enums.FlowApproveOperationEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 /**
@@ -24,6 +25,12 @@ public class ApprovalInfo {
     @ApiModelProperty(value = "审核级别(2:主任审核、3:院长审核)")
     private int level;
 
+    @ApiModelProperty(value = "审核机构名称")
+    private String approveOrgName;
+
+    @ApiModelProperty(value = "审核类型")
+    private FlowApproveOperationEnum approveType;
+
     public Long getApproveId() {
         return approveId;
     }
@@ -63,4 +70,20 @@ public class ApprovalInfo {
     public void setLevel(int level) {
         this.level = level;
     }
+
+    public String getApproveOrgName() {
+        return approveOrgName;
+    }
+
+    public void setApproveOrgName(String approveOrgName) {
+        this.approveOrgName = approveOrgName;
+    }
+
+    public FlowApproveOperationEnum getApproveType() {
+        return approveType;
+    }
+
+    public void setApproveType(FlowApproveOperationEnum approveType) {
+        this.approveType = approveType;
+    }
 }

+ 6 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TFFlowLogServiceImpl.java

@@ -8,6 +8,7 @@ import com.qmth.distributed.print.business.entity.TFFlowLog;
 import com.qmth.distributed.print.business.mapper.TFFlowLogMapper;
 import com.qmth.distributed.print.business.service.TFFlowLogService;
 import com.qmth.teachcloud.common.enums.FlowApproveOperationEnum;
+import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import org.springframework.stereotype.Service;
 
@@ -31,6 +32,8 @@ public class TFFlowLogServiceImpl extends ServiceImpl<TFFlowLogMapper, TFFlowLog
     TFFlowLogMapper tfFlowLogMapper;
     @Resource
     SysUserService sysUserService;
+    @Resource
+    SysOrgService sysOrgService;
 
     /**
      * 根据流程id查询流程状态
@@ -72,8 +75,7 @@ public class TFFlowLogServiceImpl extends ServiceImpl<TFFlowLogMapper, TFFlowLog
     public List<ApprovalInfo> findApprovalInfoByFlowId(Long flowId) {
         List<ApprovalInfo> approvalInfoList = new ArrayList<>();
         List<TFFlowLog> tfFlowLogList = this.list(new QueryWrapper<TFFlowLog>().lambda()
-                .eq(TFFlowLog::getFlowId,flowId)
-                .ne(TFFlowLog::getApproveOperation,FlowApproveOperationEnum.SUBMIT));
+                .eq(TFFlowLog::getFlowId,flowId));
         for (TFFlowLog tfFlowLog : tfFlowLogList) {
             ApprovalInfo approvalInfo = new ApprovalInfo();
             Long approveId = tfFlowLog.getApproveId();
@@ -81,6 +83,8 @@ public class TFFlowLogServiceImpl extends ServiceImpl<TFFlowLogMapper, TFFlowLog
             approvalInfo.setApproveName(sysUserService.getById(approveId).getRealName());
             approvalInfo.setTime(tfFlowLog.getUpdateTime());
             approvalInfo.setRemark(tfFlowLog.getApproveRemark());
+            approvalInfo.setApproveOrgName(sysOrgService.getById(sysUserService.getById(approveId).getOrgId()).getName());
+            approvalInfo.setApproveType(tfFlowLog.getApproveOperation());
             approvalInfoList.add(approvalInfo);
         }
         return approvalInfoList;

+ 38 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/SysUserResult.java

@@ -1,5 +1,7 @@
 package com.qmth.teachcloud.common.bean.result;
 
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
@@ -23,6 +25,18 @@ public class SysUserResult implements Serializable {
     @ApiModelProperty(value = "电话号码")
     private String mobileNumber;
 
+    @ApiModelProperty(value = "机构id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @JSONField(serialize = false)
+    private Long orgId;
+
+    @ApiModelProperty(value = "角色id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long roleId;
+
+    @ApiModelProperty(value = "角色名称")
+    private String roleName;
+
     public Long getId() {
         return id;
     }
@@ -46,4 +60,28 @@ public class SysUserResult implements Serializable {
     public void setMobileNumber(String mobileNumber) {
         this.mobileNumber = mobileNumber;
     }
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public Long getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId) {
+        this.roleId = roleId;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
 }

+ 8 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysUserMapper.java

@@ -7,6 +7,7 @@ import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
 import com.qmth.teachcloud.common.bean.dto.UserDto;
 import com.qmth.teachcloud.common.bean.dto.VerifyCodeCheckDto;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
+import com.qmth.teachcloud.common.bean.result.SysUserResult;
 import com.qmth.teachcloud.common.bean.result.UserRoleNameResult;
 import com.qmth.teachcloud.common.entity.SysUser;
 import org.apache.ibatis.annotations.Param;
@@ -99,4 +100,11 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      * @return
      */
     List<SysUser> findByRoleIds(@Param("roleIds") List<Long> roleIds);
+
+    /**
+     * 根据学校id查找用户
+     * @param schoolId 学校id
+     * @return 用户集合
+     */
+    List<SysUserResult> findSysUserResultBySchoolId(@Param("schoolId") Long schoolId);
 }

+ 7 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysUserService.java

@@ -10,6 +10,7 @@ import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.bean.params.UserSaveParams;
 import com.qmth.teachcloud.common.bean.result.LoginResult;
 import com.qmth.teachcloud.common.bean.result.SyncCountResult;
+import com.qmth.teachcloud.common.bean.result.SysUserResult;
 import com.qmth.teachcloud.common.bean.result.UserRoleNameResult;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.FlowApproveNameEnum;
@@ -230,4 +231,10 @@ public interface SysUserService extends IService<SysUser> {
      * @return true:是管理员权限、false:不是
      */
     boolean isAdminDataAuth(Long userId);
+
+    /**
+     * 查找机构树下所有用户集合
+     * @return 用户集合
+     */
+    List<SysUserResult> findSysUserResultList();
 }

+ 2 - 9
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -61,19 +61,12 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     @Override
     public List<OrgDto> listOrgTree() {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        List<SysUserResult> sysUserResultList = sysUserService.findSysUserResultList();
         List<OrgDto> orgList = this.listOrgAll(schoolId);
         Map<Long, OrgDto> map = orgList.stream()
                 .peek(e -> {
                     // 加入机构下所有人员查询
-                    List<SysUser> sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda()
-                            .eq(SysUser::getSchoolId,schoolId)
-                            .eq(SysUser::getOrgId,e.getId()));
-
-                    e.setSysUserList(sysUserList.stream().flatMap(f -> {
-                        SysUserResult sysUserResult = new SysUserResult();
-                        BeanUtils.copyProperties(f,sysUserResult);
-                        return Stream.of(sysUserResult);
-                    }).collect(Collectors.toList()));
+                    e.setSysUserList(sysUserResultList.stream().filter(f -> f.getOrgId().equals(e.getId())).collect(Collectors.toList()));
                 })
                 .collect(Collectors.toMap(OrgDto::getId, Function.identity(), (dto1, dto2) -> dto1));
 

+ 7 - 4
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -19,10 +19,7 @@ import com.qmth.teachcloud.common.bean.dto.excel.SysUserImportDto;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.bean.params.UserSaveParams;
-import com.qmth.teachcloud.common.bean.result.LoginResult;
-import com.qmth.teachcloud.common.bean.result.SyncCountResult;
-import com.qmth.teachcloud.common.bean.result.UserBatchDisposeResult;
-import com.qmth.teachcloud.common.bean.result.UserRoleNameResult;
+import com.qmth.teachcloud.common.bean.result.*;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -1084,6 +1081,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return result;
     }
 
+    @Override
+    public List<SysUserResult> findSysUserResultList() {
+        Long schoolId = SystemConstant.convertIdToLong(String.valueOf(ServletUtil.getRequestHeaderSchoolId()));
+        return this.baseMapper.findSysUserResultBySchoolId(schoolId);
+    }
+
     /**
      * 批量处理用户信息帮助类
      *

+ 23 - 0
teachcloud-common/src/main/resources/mapper/SysUserMapper.xml

@@ -273,4 +273,27 @@
         </where>
         ORDER BY update_time DESC
     </select>
+
+    <select id="findSysUserResultBySchoolId" resultType="com.qmth.teachcloud.common.bean.result.SysUserResult">
+        SELECT
+            su.id AS id,
+            su.real_name AS realName,
+            su.mobile_number AS mobileNumber,
+            so.id AS orgId,
+            sr.id AS roleId,
+            sr.name AS roleName
+        FROM
+            sys_user su
+                LEFT JOIN
+            sys_user_role sur ON su.id = sur.user_id
+                LEFT JOIN
+            sys_role sr ON sur.role_id = sr.id
+                LEFT JOIN
+            sys_org so ON su.org_id = so.id
+        <where>
+            <if test="schoolId != null and schoolId != ''">
+                AND su.school_id = #{schoolId}
+            </if>
+        </where>
+    </select>
 </mapper>