wangliang 1 год назад
Родитель
Сommit
a4962ee771

+ 40 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/dto/OrgUserNameDto.java

@@ -0,0 +1,40 @@
+package com.qmth.sop.business.bean.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+* @Description: 用户名(机构)
+* @Param:
+* @return:
+* @Author: wangliang
+* @Date: 2023/11/10
+*/
+public class OrgUserNameDto implements Serializable {
+
+    @ApiModelProperty(value = "用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "用户名")
+    private String orgUserName;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getOrgUserName() {
+        return orgUserName;
+    }
+
+    public void setOrgUserName(String orgUserName) {
+        this.orgUserName = orgUserName;
+    }
+}

+ 1 - 1
sop-business/src/main/java/com/qmth/sop/business/bean/result/DingApplyDoneResult.java

@@ -42,7 +42,7 @@ public class DingApplyDoneResult extends WorkTaskResult implements Serializable
     String dingExceptionApprove;
 
     @ApiModelProperty(value = "审核人")
-    String approveUsersName;
+    String approveUsersName = "--";
 
     @ApiModelProperty(value = "审核信息")
     String approveInfo;

+ 1 - 1
sop-business/src/main/java/com/qmth/sop/business/bean/result/DingApplyUnDoneResult.java

@@ -36,7 +36,7 @@ public class DingApplyUnDoneResult extends WorkTaskResult implements Serializabl
     String attachmentPaths;
 
     @ApiModelProperty(value = "当前审核人")
-    String approveUserName;
+    String approveUserName = "--";
 
     @ApiModelProperty(value = "申请时间")
     Long createTime;

+ 9 - 0
sop-business/src/main/java/com/qmth/sop/business/mapper/SysUserMapper.java

@@ -3,6 +3,7 @@ package com.qmth.sop.business.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.sop.business.bean.dto.FormWidgetDto;
+import com.qmth.sop.business.bean.dto.OrgUserNameDto;
 import com.qmth.sop.business.bean.dto.UserDto;
 import com.qmth.sop.business.bean.dto.VerifyCodeCheckDto;
 import com.qmth.sop.business.bean.result.SysUserBriefResult;
@@ -123,4 +124,12 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      * @return 类型
      */
     List<SysUserBriefResult> findByRoleType(@Param("roleType") RoleTypeEnum roleType);
+
+    /**
+     * 根据用户id查找用户名(机构)
+     *
+     * @param userIds
+     * @return
+     */
+    List<OrgUserNameDto> findOrgUserName(@Param("userIds") List<Long> userIds);
 }

+ 9 - 0
sop-business/src/main/java/com/qmth/sop/business/service/SysUserService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.sop.business.bean.dto.DataPermissionDto;
 import com.qmth.sop.business.bean.dto.FormWidgetDto;
+import com.qmth.sop.business.bean.dto.OrgUserNameDto;
 import com.qmth.sop.business.bean.dto.UserDto;
 import com.qmth.sop.business.bean.result.*;
 import com.qmth.sop.business.entity.SysUser;
@@ -180,4 +181,12 @@ public interface SysUserService extends IService<SysUser> {
      * @return 用户数据权限
      */
     DataPermissionDto buildUserDataPermission(Long userId);
+
+    /**
+     * 根据用户id查找用户名(机构)
+     *
+     * @param userIds
+     * @return
+     */
+    List<OrgUserNameDto> findOrgUserName(List<Long> userIds);
 }

+ 12 - 4
sop-business/src/main/java/com/qmth/sop/business/service/impl/SysUserServiceImpl.java

@@ -8,10 +8,7 @@ import com.qmth.boot.api.exception.ApiException;
 import com.qmth.boot.core.enums.Platform;
 import com.qmth.sop.business.bean.auth.AuthBean;
 import com.qmth.sop.business.bean.auth.ExpireTimeBean;
-import com.qmth.sop.business.bean.dto.DataPermissionDto;
-import com.qmth.sop.business.bean.dto.FormWidgetDto;
-import com.qmth.sop.business.bean.dto.UserDto;
-import com.qmth.sop.business.bean.dto.VerifyCodeCheckDto;
+import com.qmth.sop.business.bean.dto.*;
 import com.qmth.sop.business.bean.result.*;
 import com.qmth.sop.business.cache.CommonCacheService;
 import com.qmth.sop.business.entity.*;
@@ -540,4 +537,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         dto.setHasAccountManager(roleTypeList.contains(RoleTypeEnum.ACCOUNT_MANAGER));
         return dto;
     }
+
+    /**
+     * 根据用户id查找用户名(机构)
+     *
+     * @param userIds
+     * @return
+     */
+    @Override
+    public List<OrgUserNameDto> findOrgUserName(List<Long> userIds) {
+        return this.baseMapper.findOrgUserName(userIds);
+    }
 }

+ 7 - 8
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingApplyServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.gson.reflect.TypeToken;
 import com.qmth.sop.business.activiti.service.ActivitiService;
 import com.qmth.sop.business.bean.dto.DataPermissionDto;
+import com.qmth.sop.business.bean.dto.OrgUserNameDto;
 import com.qmth.sop.business.bean.params.FlowApproveParam;
 import com.qmth.sop.business.bean.result.*;
 import com.qmth.sop.business.entity.*;
@@ -138,11 +139,10 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
             for (DingApplyUnDoneResult d : dingApplyUnDoneResultIPage.getRecords()) {
                 TFFlowLog tfFlowLog = tfFlowLogService.findByLastFlowLog(d.getFlowId());
                 if (Objects.nonNull(tfFlowLog) && Objects.nonNull(tfFlowLog.getPendApproveId())) {
-                    List<SysUser> sysUserList = sysUserService.listByIds(Arrays.asList(tfFlowLog.getPendApproveId().split(",")));
-                    List<String> userName = sysUserList.stream().map(s -> s.getRealName()).collect(Collectors.toList());
+                    List<String> list = Arrays.asList(tfFlowLog.getPendApproveId().split(SystemConstant.LIST_JOIN_SPLIT));
+                    List<OrgUserNameDto> orgUserNameDtoList = sysUserService.findOrgUserName(list.stream().map(s -> Long.parseLong(s)).collect(Collectors.toList()));
+                    List<String> userName = orgUserNameDtoList.stream().map(s -> s.getOrgUserName()).collect(Collectors.toList());
                     d.setApproveUserName(StringUtils.join(userName, SystemConstant.LIST_JOIN_SPLIT));
-                } else {
-                    d.setApproveUserName("--");
                 }
                 String taskIds = d.getTaskIdArray();
                 if (Objects.nonNull(taskIds) && taskIds.contains(SystemConstant.LIST_JOIN_SPLIT)) {
@@ -206,11 +206,10 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
             for (DingApplyDoneResult d : dingApplyDoneResultIPage.getRecords()) {
                 String string = tfFlowLogService.findByLastFlowLogApproveUser(d.getFlowId());
                 if (Objects.nonNull(string)) {
-                    List<SysUser> sysUserList = sysUserService.listByIds(Arrays.asList(string.split(SystemConstant.LIST_JOIN_SPLIT)));
-                    List<String> userName = sysUserList.stream().map(s -> s.getRealName()).collect(Collectors.toList());
+                    List<String> list = Arrays.asList(string.split(SystemConstant.LIST_JOIN_SPLIT));
+                    List<OrgUserNameDto> orgUserNameDtoList = sysUserService.findOrgUserName(list.stream().map(s -> Long.parseLong(s)).collect(Collectors.toList()));
+                    List<String> userName = orgUserNameDtoList.stream().map(s -> s.getOrgUserName()).collect(Collectors.toList());
                     d.setApproveUsersName(StringUtils.join(userName, SystemConstant.LIST_JOIN_SPLIT));
-                } else {
-                    d.setApproveUsersName("--");
                 }
                 if (Objects.nonNull(d.getApproveInfo())) {
                     String[] strs = d.getApproveInfo().split(";");

+ 18 - 0
sop-business/src/main/resources/mapper/SysUserMapper.xml

@@ -293,6 +293,7 @@
         </where>
         group by sur.user_id
     </select>
+
     <select id="findByRoleType" resultType="com.qmth.sop.business.bean.result.SysUserBriefResult">
         SELECT
             su.id AS id,
@@ -311,4 +312,21 @@
             </if>
         </where>
     </select>
+
+    <select id="findOrgUserName" resultType="com.qmth.sop.business.bean.dto.OrgUserNameDto">
+        select
+            su.id,
+            IF(so.name is null,su.real_name,concat(su.real_name,'(',so.name,')')) as orgUserName
+        from
+            sys_user su
+            left join sys_org so on so.id = su.org_id
+        <where> 1 = 1
+            <if test="userIds != null and userIds != '' and userIds.size > 0">
+                AND su.id IN
+                <foreach collection="userIds" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 </mapper>