Ver Fonte

Merge remote-tracking branch 'origin/master'

xuqiang há 1 ano atrás
pai
commit
e24041f481
33 ficheiros alterados com 482 adições e 96 exclusões
  1. 7 5
      authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java
  2. 2 1
      authentication/src/main/resources/mapper/SysRolePermsMapper.xml
  3. 5 1
      commons/src/main/java/com/jzg/commons/entity/po/SysConfig.java
  4. 23 0
      commons/src/main/java/com/jzg/commons/entity/po/SysUserJzgInfo.java
  5. 1 0
      commons/src/main/java/com/jzg/commons/entity/po/SysUserPlateInfo.java
  6. 17 0
      commons/src/main/java/com/jzg/commons/entity/vo/AuditSalesmanVo.java
  7. 2 0
      commons/src/main/java/com/jzg/commons/entity/vo/BatchLeaderVo.java
  8. 4 1
      commons/src/main/java/com/jzg/commons/entity/vo/IsDeleteVo.java
  9. 2 0
      commons/src/main/java/com/jzg/commons/entity/vo/IsEnableVo.java
  10. 3 0
      commons/src/main/java/com/jzg/commons/entity/vo/SysDeptVo.java
  11. 3 0
      commons/src/main/java/com/jzg/commons/entity/vo/SysUserSelectVo.java
  12. 19 1
      platform/src/main/java/com/jzg/controller/SysSystemController.java
  13. 5 1
      platform/src/main/java/com/jzg/controller/SysUserController.java
  14. 2 2
      platform/src/main/java/com/jzg/service/SysSystemService.java
  15. 10 0
      platform/src/main/java/com/jzg/service/SysUserService.java
  16. 67 31
      platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java
  17. 25 0
      platform/src/main/java/com/jzg/service/impl/SysUserServiceImpl.java
  18. 8 0
      platform/src/main/resources/application.yml
  19. 1 1
      tenant/openfeign/src/main/resources/application.yml
  20. 2 0
      tenant/organization/src/main/java/com/jzg/organization/controller/AreaController.java
  21. 0 6
      tenant/organization/src/main/java/com/jzg/organization/controller/DeptController.java
  22. 12 0
      tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java
  23. 0 2
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserMapper.java
  24. 0 4
      tenant/organization/src/main/java/com/jzg/organization/service/SysDeptService.java
  25. 14 0
      tenant/organization/src/main/java/com/jzg/organization/service/SysUserService.java
  26. 6 14
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysDeptServiceImpl.java
  27. 193 22
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java
  28. 5 1
      tenant/organization/src/main/java/com/jzg/organization/state/UserState.java
  29. 14 1
      tenant/organization/src/main/java/com/jzg/organization/state/config/UserStateConfig.java
  30. 26 0
      tenant/organization/src/main/java/com/jzg/organization/state/listener/UserStateListener.java
  31. 2 1
      tenant/organization/src/main/resources/application.yml
  32. 1 1
      tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml
  33. 1 0
      tenant/organization/src/main/resources/mapper/SysUserMapper.xml

+ 7 - 5
authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java

@@ -130,11 +130,13 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
                 dataDeptIds.add(jzgUserInfo.getDeptId());
                 List<SysRoleDataScope> dataScopes3 = sysRoleDataScopes.stream().filter(x -> x.getDataMark().equals("3")).collect(Collectors.toList());
                 List<String> dataScopeLinkRoleIds = dataScopes3.stream().map(x -> x.getRoleId()).collect(Collectors.toList());
-                List<SysRoleDataScopeLink> sysRoleDataScopeLinks = sysRoleDataScopeLinkMapper.selectList(new LambdaQueryWrapper<SysRoleDataScopeLink>()
-                        .in(SysRoleDataScopeLink::getRoleId, dataScopeLinkRoleIds));
-                List<String> deptIds = sysRoleDataScopeLinks.stream().map(x -> x.getDeptId()).collect(Collectors.toList());
-                sysRoleDataScopeVo.setDataMark("3");
-                sysRoleDataScopeVo.setDeptIds(deptIds);
+                if(!dataScopeLinkRoleIds.isEmpty()) {
+                    List<SysRoleDataScopeLink> sysRoleDataScopeLinks = sysRoleDataScopeLinkMapper.selectList(new LambdaQueryWrapper<SysRoleDataScopeLink>()
+                            .in(SysRoleDataScopeLink::getRoleId, dataScopeLinkRoleIds));
+                    List<String> deptIds = sysRoleDataScopeLinks.stream().map(x -> x.getDeptId()).collect(Collectors.toList());
+                    sysRoleDataScopeVo.setDataMark("3");
+                    sysRoleDataScopeVo.setDeptIds(deptIds);
+                }
             }
         }
         java.util.Map<String, Object> detailMap = new java.util.HashMap<>();

+ 2 - 1
authentication/src/main/resources/mapper/SysRolePermsMapper.xml

@@ -15,7 +15,8 @@
                 INNER JOIN sys_system ss ON ss.sys_code = sr.system_code
         WHERE
             su.id = #{userId}
+        AND ss.sys_code = #{systemId}
 
     </select>
 
-</mapper>
+</mapper>

+ 5 - 1
commons/src/main/java/com/jzg/commons/entity/po/SysConfig.java

@@ -23,9 +23,13 @@ public class SysConfig {
     private String id;
 
     /** 系统配置json */
-    @Schema(description = "系统配置json")
+    @Schema(description = "系统菜单配置json")
     private String sysConfig;
 
+    /** 系统配置json */
+    @Schema(description = "系统权限配置json")
+    private String sysPerms;
+
     /** 系统code */
     @Schema(description = "系统code")
     private String systemCode;

+ 23 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysUserJzgInfo.java

@@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.jzg.commons.core.base.BaseModel;
 import com.jzg.commons.entity.dto.SysUserJzgInfoBankCardDto;
 import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 import java.util.List;
@@ -20,6 +22,8 @@ import java.util.List;
 @Data
 @TableName("sys_user_jzg_info")
 @Schema(description = "业务员信息表")
+@NoArgsConstructor
+@AllArgsConstructor
 public class SysUserJzgInfo extends BaseModel implements Serializable {
     @TableId(value = "id")
     @Schema(description = "主键")
@@ -206,6 +210,10 @@ public class SysUserJzgInfo extends BaseModel implements Serializable {
     @Schema(description = "薪资")
     private String salary;
 
+    @TableField(value = "salary_level")
+    @Schema(description = "薪资级别")
+    private String salaryLevel;
+
     @TableField(value = "live_address")
     @Schema(description = "居住地址")
     private String liveAddress;
@@ -297,4 +305,19 @@ public class SysUserJzgInfo extends BaseModel implements Serializable {
     @TableField(exist = false)
     @Schema(description = "密码")
     private String password;
+
+    @TableField(exist = false)
+    @Schema(description = "银行卡号")
+    private String bankCardNumber;
+
+    @TableField(exist = false)
+    @Schema(description = "银行卡名称")
+    private String bankName;
+
+    public SysUserJzgInfo(SysUser user, String systemCode){
+        this.userId = user.getId();
+        this.status = 0;
+        this.isEnable = 0;
+        this.systemCode = systemCode;
+    }
 }

+ 1 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysUserPlateInfo.java

@@ -48,6 +48,7 @@ public class SysUserPlateInfo extends BaseModel {
      */
     public SysUserPlateInfo(String userId){
         this.userId = userId;
+        this.systemCode = SystemConstants.SYSTEM_PLATFORM.getCode();
         this.isEnable = YesNoEnum.YES.getCode();
     }
 }

+ 17 - 0
commons/src/main/java/com/jzg/commons/entity/vo/AuditSalesmanVo.java

@@ -0,0 +1,17 @@
+package com.jzg.commons.entity.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author quchen
+ * @date 2025/1/24 15:34
+ */
+
+@Data
+public class AuditSalesmanVo implements Serializable {
+    private String userInfoId;
+
+    private String approvalOpinion;
+}

+ 2 - 0
commons/src/main/java/com/jzg/commons/entity/vo/BatchLeaderVo.java

@@ -13,4 +13,6 @@ public class BatchLeaderVo {
     private String[] ids;
 
     private String leaderId;
+
+    private Integer getAll;
 }

+ 4 - 1
commons/src/main/java/com/jzg/commons/entity/vo/IsDeleteVo.java

@@ -14,5 +14,8 @@ import java.util.List;
 @Data
 public class IsDeleteVo {
     @Schema(description = "id集合")
-    private List<String> id;
+    private List<String> ids;
+
+    @Schema(description = "获取全部")
+    private Integer getAll;
 }

+ 2 - 0
commons/src/main/java/com/jzg/commons/entity/vo/IsEnableVo.java

@@ -13,4 +13,6 @@ public class IsEnableVo {
     private String[] ids;
 
     private Integer isEnable;
+
+    private Integer getAll;
 }

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysDeptVo.java

@@ -43,6 +43,9 @@ public class SysDeptVo implements Serializable {
     @Schema(description = "负责人id")
     private String leaderId;
 
+    @Schema(description = "负责人名称")
+    private String leaderName;
+
     @NotBlank(message = "请选择展业范围")
     @Schema(description = "展页范围")
     private List<String> exhibitionScope;

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysUserSelectVo.java

@@ -17,4 +17,7 @@ public class SysUserSelectVo {
 
     @Schema(description = "手机号")
     private String mobile;
+
+    @Schema(description = "用户id")
+    private String userId;
 }

+ 19 - 1
platform/src/main/java/com/jzg/controller/SysSystemController.java

@@ -1,5 +1,6 @@
 package com.jzg.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.SysSystemAddParam;
@@ -7,12 +8,14 @@ import com.jzg.commons.entity.dto.SysSystemEditParam;
 import com.jzg.commons.entity.dto.SysSystemParam;
 import com.jzg.commons.entity.enums.YesNoEnum;
 import com.jzg.commons.entity.po.SysConfig;
+import com.jzg.commons.entity.po.SysUser;
 import com.jzg.commons.entity.vo.SysSystemPermsVo;
 import com.jzg.commons.entity.vo.SysSystemVo;
 import com.jzg.commons.entity.vo.UpAndDownVo;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.service.SysSystemService;
+import com.jzg.service.SysUserService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +37,9 @@ public class SysSystemController {
     @Autowired
     private SysSystemService sysSystemService;
 
+    @Autowired
+    private SysUserService sysUserService;
+
     /**
      * 获取平台初始化配置
      * @return
@@ -107,6 +113,18 @@ public class SysSystemController {
         return HttpResult.ok(sysSystemService.queryById(id));
     }
 
+    /**
+     * 根据手机号获取用户名
+     * @param mobile
+     * @return
+     */
+    @GetMapping(value = { "/userGet"})
+    @Operation(summary = "租户信息查询")
+    public HttpResult userGet(String mobile) {
+        return HttpResult.ok(sysUserService.list(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getMobile, mobile)));
+    }
+
     /**
      * 租户添加
      * @param param
@@ -148,7 +166,7 @@ public class SysSystemController {
      */
     @Operation(summary = "批量删除租户")
     @DeleteMapping("/sysDelete")
-    public HttpResult remove(String[] ids) {
+    public HttpResult sysDelete(String[] ids) {
         String errorStr = sysSystemService.sysDeleteValid(List.of(ids));
         AssertionUtils.isFail(StringUtils.isNotEmpty(errorStr),errorStr);
 

+ 5 - 1
platform/src/main/java/com/jzg/controller/SysUserController.java

@@ -7,7 +7,6 @@ import com.jzg.commons.entity.dto.SysUserAddParam;
 import com.jzg.commons.entity.dto.SysUserEditParam;
 import com.jzg.commons.entity.dto.SysUserParam;
 import com.jzg.commons.entity.enums.YesNoEnum;
-import com.jzg.commons.entity.po.SysUserPlateInfo;
 import com.jzg.commons.entity.vo.UpAndDownVo;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.mapper.SysUserPlateInfoMapper;
@@ -71,6 +70,8 @@ public class SysUserController extends BaseController {
     @PostMapping("/userAdd")
     public HttpResult userAdd(@Validated @RequestBody SysUserAddParam param) {
         // 手机号不允许重复
+        boolean nameExists = sysUserService.isExistsName(param.getUsername(), null);
+        AssertionUtils.isFail(nameExists,"用户名重复!");
         boolean mobileExists = sysUserService.isExistsMobile(param.getMobile(), null);
         AssertionUtils.isFail(mobileExists,"手机号重复!");
         sysUserService.userAdd(param);
@@ -85,6 +86,9 @@ public class SysUserController extends BaseController {
     @Operation(summary = "平台用户修改")
     @PutMapping("/userEdit")
     public HttpResult userEdit(@Validated @RequestBody SysUserEditParam param) {
+        // 手机号不允许重复
+        boolean nameExists = sysUserService.isExistsName(param.getUsername(), param.getId());
+        AssertionUtils.isFail(nameExists,"用户名重复!");
         // 手机号不允许重复
         boolean mobileExists = sysUserService.isExistsMobile(param.getMobile(), param.getId());
         AssertionUtils.isFail(mobileExists,"手机号重复!");

+ 2 - 2
platform/src/main/java/com/jzg/service/SysSystemService.java

@@ -40,10 +40,10 @@ public interface SysSystemService extends IService<SysSystem> {
 
     /**
      * 保存配置信息
-     * @param configStr 配置json
+     * @param sysConfig 平台配置
      * @param sysCode 系统code
      */
-    public void saveConfig(String configStr, String sysCode);
+    public void saveConfig(SysConfig sysConfig, String sysCode);
 
     /**
      * 获取租户权限

+ 10 - 0
platform/src/main/java/com/jzg/service/SysUserService.java

@@ -8,6 +8,8 @@ import com.jzg.commons.entity.dto.SysUserParam;
 import com.jzg.commons.entity.po.SysUser;
 import com.jzg.commons.entity.vo.SysUserVo;
 import com.jzg.commons.entity.vo.UpAndDownVo;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 
 import java.util.List;
 
@@ -42,6 +44,14 @@ public interface SysUserService extends IService<SysUser> {
      */
     boolean isExistsMobile(String mobile, String id);
 
+    /**
+     * 平台用户名称重复校验
+     * @param username
+     * @param id
+     * @return
+     */
+    boolean isExistsName(String username, String id);
+
     /**
      * 平台用户新增
      *

+ 67 - 31
platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.annotation.IgnoreTenant;
 import com.jzg.commons.constants.SystemConstants;
 import com.jzg.commons.entity.dto.SysSystemAddParam;
 import com.jzg.commons.entity.dto.SysSystemEditParam;
@@ -15,6 +16,8 @@ import com.jzg.commons.entity.po.*;
 import com.jzg.commons.entity.vo.SysSystemPermsVo;
 import com.jzg.commons.entity.vo.SysSystemVo;
 import com.jzg.commons.entity.vo.UpAndDownVo;
+import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.MinioUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.mapper.*;
@@ -62,10 +65,13 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+    @IgnoreTenant
     public boolean updatePerms(SysSystemPermsVo sysSystemPermsVo) {
         // 保存勾选菜单配置
         String permsStr = sysSystemPermsVo.getPermsStr();
-        this.saveConfig(permsStr, sysSystemPermsVo.getSystemCode());
+        SysConfig sysConfig = new SysConfig();
+        sysConfig.setSysConfig(permsStr);
+        this.saveConfig(sysConfig, sysSystemPermsVo.getSystemCode());
 
         // 获取租户管理员角色id
         LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
@@ -77,27 +83,34 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         wrapper.eq(SysRolePerms::getRoleId,roles.get(0).getId());
         sysRolePermsMapper.delete(wrapper);
 
-        List<SysSystemPermsVo.PermsVo> permsList = sysSystemPermsVo.getPerms();
+        List<SysSystemPermsVo.PermsVo> permsList = JSON.parseArray(permsStr,SysSystemPermsVo.PermsVo.class);;
         return this.savePerms(permsList, roles.get(0).getId());
     }
 
     /**
      * 保存配置信息
-     * @param configStr 配置json
+     * @param sysConfig 平台配置
      * @param sysCode 系统code
      */
-    public void saveConfig(String configStr, String sysCode){
+    public void saveConfig(SysConfig sysConfig, String sysCode){
         List<SysConfig> checkConfigs = sysConfigMapper.selectList(new LambdaQueryWrapper<SysConfig>()
                 .eq(SysConfig::getSystemCode,sysCode));
+
         SysConfig config;
         if(CollUtil.isEmpty(checkConfigs)){
             config = new SysConfig();
-            config.setSysConfig(configStr);
+            config.setSysConfig(sysConfig.getSysConfig());
+            if(StringUtils.isNotEmpty(sysConfig.getSysPerms())){
+                config.setSysPerms(sysConfig.getSysPerms());
+            }
             config.setSystemCode(sysCode);
             sysConfigMapper.insert(config);
         }else{
             config = checkConfigs.get(0);
-            config.setSysConfig(configStr);
+            config.setSysConfig(sysConfig.getSysConfig());
+            if(StringUtils.isNotEmpty(sysConfig.getSysPerms())){
+                config.setSysPerms(sysConfig.getSysPerms());
+            }
             sysConfigMapper.updateById(config);
         }
     }
@@ -140,6 +153,7 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
             sysConfigMapper.insert(config);
         }else{
             config.setId(configs.get(0).getId());
+            config.setSystemCode(SystemConstants.SYSTEM_PLATFORM.getCode());
             sysConfigMapper.updateById(config);
         }
         return true;
@@ -245,21 +259,27 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         List<SysUser> userList = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
                 .eq(SysUser::getMobile, param.getUserAccount())
         );
-        String userId = null;
+        SysUser user;
         if(CollUtil.isNotEmpty(userList)){
-            userId = userList.get(0).getId();
+            user = userList.get(0);
         }else{
             // 新增管理员用户
-            SysUser user = new SysUser(param);
+            user = new SysUser(param);
+            // 用户名和手机号不允许重复
+            boolean mobileExists = this.isExistsMobile(user.getMobile());
+            if(mobileExists){
+                throw new SystemException("管理员手机号重复!");
+            }
+            boolean nameExists = this.isExistsUserName(user.getUsername());
+            if(nameExists){
+                throw new SystemException("管理员用户名重复!");
+            }
             sysUserMapper.insert(user);
-            userId = user.getId();
         }
+
         // 新增用户机构关联信息
-        SysUserPlateInfo info = new SysUserPlateInfo();
-        info.setUserId(userId);
-        info.setSystemCode(sysSystem.getSysCode());
-        info.setIsEnable(1);
-        sysUserPlateInfoMapper.insert(info);
+        SysUserJzgInfo info = new SysUserJzgInfo(user, sysSystem.getSysCode());
+        sysUserJzgInfoMapper.insert(info);
         // 查询该租户是否有管理员角色
         LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(SysRole::getSystemCode, sysSystem.getSysCode())
@@ -275,23 +295,37 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         }
         // 关联用户角色
         SysUserRole userRole = new SysUserRole();
-        userRole.setUserId(userId);
+        userRole.setUserId(user.getId());
         userRole.setRoleId(role.getId());
         sysUserRoleMapper.insert(userRole);
         // 初始化权限信息
         // 1.初始化配置的保存
         List<SysConfig> configs = sysConfigMapper.selectList(new LambdaQueryWrapper<SysConfig>()
                 .eq(SysConfig::getSystemCode, SystemConstants.SYSTEM_PLATFORM.getCode()));
-        this.saveConfig(configs.get(0).getSysConfig(), SystemConstants.SYSTEM_PLATFORM.getCode());
+        this.saveConfig(configs.get(0), sysSystem.getSysCode());
 
-        List<SysSystemPermsVo.PermsVo> permsList = JSON.parseArray(configs.get(0).getSysConfig(),SysSystemPermsVo.PermsVo.class);;
+        List<SysSystemPermsVo.PermsVo> permsList = JSON.parseArray(configs.get(0).getSysPerms(),SysSystemPermsVo.PermsVo.class);;
 
         this.savePerms(permsList, role.getId());
         // 租户绑定管理员信息
-        sysSystem.setUserId(userId);
+        sysSystem.setUserId(user.getId());
         this.updateById(sysSystem);
     }
 
+    private boolean isExistsUserName(String username) {
+        long count = sysUserMapper.selectCount(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getUsername, username)
+        );
+        return count > 0;
+    }
+
+    private boolean isExistsMobile(String mobile) {
+        long count = sysUserMapper.selectCount(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getMobile, mobile)
+        );
+        return count > 0;
+    }
+
     /**
      * 租户权限保存
      * @param permsList 树形租户权限
@@ -321,9 +355,6 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         SysSystem sysSystem = new SysSystem();
         BeanUtils.copyProperties(param, sysSystem);
         updateById(sysSystem);
-        SysSystem system = getById(sysSystem.getId());
-        // 修改管理员信息
-
         List<SysUser> userList = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
                 .eq(SysUser::getMobile, param.getUserAccount())
         );
@@ -335,13 +366,18 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         }else{
             // 新增管理员用户
             sysUser = new SysUser(param);
+            boolean mobileExists = this.isExistsMobile(sysUser.getMobile());
+            if(mobileExists){
+                throw new SystemException("管理员手机号重复!");
+            }
+            boolean nameExists = this.isExistsUserName(sysUser.getUsername());
+            if(nameExists){
+                throw new SystemException("管理员用户名重复!");
+            }
             sysUserMapper.insert(sysUser);
             // 新增用户机构关联信息
-            SysUserPlateInfo info = new SysUserPlateInfo();
-            info.setUserId(sysUser.getId());
-            info.setSystemCode(sysSystem.getSysCode());
-            info.setIsEnable(1);
-            sysUserPlateInfoMapper.insert(info);
+            SysUserJzgInfo info = new SysUserJzgInfo(sysUser,sysSystem.getSysCode());
+            sysUserJzgInfoMapper.insert(info);
         }
     }
 
@@ -399,10 +435,10 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
                     return errorStr;
                 }
 
-                Long count = sysUserPlateInfoMapper.selectCount(new LambdaQueryWrapper<SysUserPlateInfo>()
-                        .eq(SysUserPlateInfo::getSystemCode, sysSystem.getSysCode())
-                        .eq(SysUserPlateInfo::getIsEnable, 1)
-                        .eq(SysUserPlateInfo::getIsDelete, 0));
+                Long count = sysUserJzgInfoMapper.selectCount(new LambdaQueryWrapper<SysUserJzgInfo>()
+                        .eq(SysUserJzgInfo::getSystemCode, sysSystem.getSysCode())
+                        .eq(SysUserJzgInfo::getIsEnable, 0)
+                        .eq(SysUserJzgInfo::getIsDelete, 0));
 
                 if(count > 0){
                     errorStr = "租户["+sysSystem.getSysName()+"]还有部分员工,请将这些员工变更机构或者删除后,再进行删除!";

+ 25 - 0
platform/src/main/java/com/jzg/service/impl/SysUserServiceImpl.java

@@ -110,6 +110,31 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
         return false;
     }
 
+    @Override
+    public boolean isExistsName(String username, String id) {
+        List<SysUser> userList = this.list(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getUsername, username)
+                .ne(StringUtils.isNotNull(id),SysUser::getId, id));
+        if(CollUtil.isNotEmpty(userList)){
+            if(userList.size() > 1){
+                return true;
+            }
+            SysUser user = userList.get(0);
+            LambdaQueryWrapper<SysUserPlateInfo> infoLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            infoLambdaQueryWrapper.eq(SysUserPlateInfo::getUserId, user.getId());
+            List<SysUserPlateInfo> infoList = sysUserPlateInfoMapper.selectList(infoLambdaQueryWrapper);
+            if(CollUtil.isNotEmpty(infoList)){
+                List<SysUserPlateInfo> jzgInfos = infoList.stream().filter(info ->
+                                SystemConstants.SYSTEM_PLATFORM.getCode().equals(info.getSystemCode()))
+                        .collect(Collectors.toList());
+                if(CollUtil.isNotEmpty(jzgInfos)){
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void userAdd(SysUserAddParam param) {

+ 8 - 0
platform/src/main/resources/application.yml

@@ -6,6 +6,10 @@ spring:
       address: redis://192.168.0.250:6379
       password: 123456
       database: 0
+  servlet:
+    multipart:
+      max-file-size: 5MB
+      max-request-size: 5MB
 
   datasource:
       url: jdbc:mysql://39.98.239.48:3366/platform?serverTimezone=Asia/Shanghai&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true
@@ -32,12 +36,16 @@ tenant:
   column: system_code
   filterTables:
   ignoreTables:
+    - sys_config
+    - sys_user
+    - sys_user_jzg_info
     - sys_system
     - sys_role_perms
     - sys_user_role
     - sys_upload_files
     - sys_role_data_scope
     - sys_role_data_scope_link
+
   ignoreLoginNames:
 
 data-scope:

+ 1 - 1
tenant/openfeign/src/main/resources/application.yml

@@ -3,7 +3,7 @@ server:
 spring:
   redis:
     redisson:
-      address: redis://192.168.5.250:6379
+      address: redis://127.0.0.1:16379
       password: 123456
       database: 0
 

+ 2 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/AreaController.java

@@ -1,5 +1,6 @@
 package com.jzg.organization.controller;
 
+import com.jzg.commons.aop.PremissionCheck;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.vo.SysAreaVo;
 import com.jzg.organization.service.SysAreaService;
@@ -23,6 +24,7 @@ public class AreaController {
 
     @Schema(description = "省市区树结构查询")
     @PostMapping(value = "/queryTree")
+    @PremissionCheck
     public HttpResult<List<SysAreaVo>> queryTree() {
         List<SysAreaVo> sysAreaVos = sysAreaService.querySysArea();
         return HttpResult.ok(sysAreaVos);

+ 0 - 6
tenant/organization/src/main/java/com/jzg/organization/controller/DeptController.java

@@ -46,12 +46,6 @@ public class DeptController extends BaseController {
     }
 
 
-//    @Operation(summary = "批量设置机构负责人接口", description = "批量设置机构负责人接口")
-//    @PostMapping(value = "/batchLeader")
-//    public HttpResult batchLeader(@RequestBody SysDeptVo sysDeptVo) {
-//        return sysDeptService.batchLeader(sysDeptVo);
-//    }
-
     @Operation(summary = "批量删除机构接口", description = "批量删除机构接口")
     @PostMapping(value = "/batchDeleteDept")
     public HttpResult batchDeleteDept(@RequestBody SysDeptVo sysDeptVo) {

+ 12 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java

@@ -125,5 +125,17 @@ public class UserController extends BaseController {
         return sysUserService.realNameAuthFailed(userId)? HttpResult.ok("实名认证审核成功") : HttpResult.error("实名认证审核失败");
     }
 
+    @Operation(summary = "业务员审核成功",description = "业务员审核成功")
+    @PostMapping(value = "/salesmanAuthSuccess")
+    public HttpResult salesmanAuthSuccess(@RequestSingleParam(value = "userInfoId") String userInfoId){
+        return sysUserService.salesmanAuthSuccess(userInfoId)? HttpResult.ok("业务员审核成功") : HttpResult.error("业务员审核失败");
+    }
+
+    @Operation(summary = "业务员审核失败",description = "业务员审核失败")
+    @PostMapping(value = "/salesmanAuthFailed")
+    public HttpResult salesmanAuthFailed(@RequestBody AuditSalesmanVo auditSalesmanVo){
+        return sysUserService.salesmanAuthFailed(auditSalesmanVo)? HttpResult.ok("业务员审核成功") : HttpResult.error("业务员审核失败");
+    }
+
 
 }

+ 0 - 2
tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserMapper.java

@@ -26,6 +26,4 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      * @return
      */
     List<String> getUserRoleName(String userId);
-
-
 }

+ 0 - 4
tenant/organization/src/main/java/com/jzg/organization/service/SysDeptService.java

@@ -28,10 +28,6 @@ public interface SysDeptService extends IService<SysDept> {
      */
     HttpResult deleteDept(SysDeptVo sysDeptVo);
 
-    /**
-     * 批量更新机构负责人
-     */
-    HttpResult batchLeader(SysDeptVo sysDeptVo);
 
     /**
      *  批量删除机构

+ 14 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysUserService.java

@@ -91,4 +91,18 @@ public interface SysUserService extends IService<SysUser> {
      * @return
      */
     boolean realNameAuthFailed(String userId);
+
+    /**
+     * 业务员审核成功
+     * @param userInfoId
+     * @return
+     */
+    boolean salesmanAuthSuccess(String userInfoId);
+
+    /**
+     * 业务员审核失败
+     * @param userInfoId
+     * @return
+     */
+    boolean salesmanAuthFailed(AuditSalesmanVo auditSalesmanVo);
 }

+ 6 - 14
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysDeptServiceImpl.java

@@ -114,20 +114,6 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
 
     }
 
-    @Override
-    @Transactional
-    public HttpResult batchLeader(SysDeptVo sysDeptVo) {
-        // 更新每个部门的负责人
-        for (String id : sysDeptVo.getDeptIds()) {
-            SysDept sysDept = getById(id);
-            if (sysDept == null) {
-                throw new SystemException("机构不存在");
-            }
-            sysDept.setLeaderId(sysDeptVo.getLeaderId());
-            sysDeptMapper.updateById(sysDept);
-        }
-        return HttpResult.ok("批量设置负责人成功。");
-    }
 
     @Override
     @Transactional
@@ -199,6 +185,12 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
             if(areaString.length()>0) {
                 item.setDivision(areaString.substring(0, areaString.length() - 1));
             }
+            if(!Objects.isNull(item.getLeaderId())){
+                SysUserJzgInfo userByUserId = sysUserJzgInfoService.getUserByUserId(item.getLeaderId());
+                if(!Objects.isNull(userByUserId)){
+                    item.setLeaderName(userByUserId.getName());
+                }
+            }
         });
 
         Map<String, List<SysDeptVo>> map = voDept.stream().collect(Collectors.groupingBy(SysDeptVo::getParentId));

+ 193 - 22
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -187,6 +187,32 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return stateResult.isResult();
     }
 
+    @Override
+    public boolean salesmanAuthSuccess(String userInfoId) {
+        SysUserJzgInfo userJzgInfo = sysUserJzgInfoService.getById(userInfoId);
+        StateResult stateResult = userStateListener.salesmanAuthSuccess(userJzgInfo);
+        if (stateResult.isResult()) {
+            //更新状态
+            userJzgInfo.setStatus(stateResult.getCurrentState());
+            sysUserJzgInfoService.updateById(userJzgInfo);
+        }
+        return stateResult.isResult();
+    }
+
+    @Override
+    public boolean salesmanAuthFailed(AuditSalesmanVo auditSalesmanVo) {
+        SysUserJzgInfo userJzgInfo = sysUserJzgInfoService.getById(auditSalesmanVo.getUserInfoId());
+        StateResult stateResult = userStateListener.salesmanAuthFailed(userJzgInfo);
+        if (stateResult.isResult()) {
+            //更新状态
+            userJzgInfo.setStatus(stateResult.getCurrentState());
+            userJzgInfo.setApprovalOpinion(auditSalesmanVo.getApprovalOpinion());
+            sysUserJzgInfoService.updateById(userJzgInfo);
+        }
+        return stateResult.isResult();
+    }
+
+
     @Override
     public boolean realNameAuthFailed(String userId){
         SysUserJzgInfo userByUserId = sysUserJzgInfoService.getUserByUserId(userId);
@@ -257,12 +283,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HttpResult<Boolean> deleteUserInfo(IsDeleteVo isDeleteVo) {
-        for (String id : isDeleteVo.getId()) {
-            SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(id);
-            if (sysUserJzgInfo == null) {
-                throw new SystemException("该用户不存在");
+        if (isDeleteVo.getGetAll() == 1) {
+            List<SysUserJzgInfo> sysUserJzgInfoList = sysUserJzgInfoService.list();
+            sysUserJzgInfoService.removeBatchByIds(sysUserJzgInfoList);
+        } else {
+            for (String id : isDeleteVo.getIds()) {
+                SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(id);
+                if (sysUserJzgInfo == null) {
+                    throw new SystemException("该用户不存在");
+                }
+                sysUserJzgInfoService.removeById(id);
             }
-            sysUserJzgInfoService.removeById(id);
         }
         return HttpResult.ok("删除业务员成功");
     }
@@ -270,13 +301,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HttpResult<Boolean> isEnableUser(IsEnableVo isEnableVo) {
-        for (String id : isEnableVo.getIds()) {
-            SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(id);
-            if (sysUserJzgInfo == null) {
-                throw new SystemException("该用户不存在");
+        if (isEnableVo.getGetAll() == 1) {
+            List<SysUserJzgInfo> sysUserJzgInfoList = sysUserJzgInfoService.list();
+            for (SysUserJzgInfo sysUserJzgInfo : sysUserJzgInfoList) {
+                sysUserJzgInfo.setIsEnable(isEnableVo.getIsEnable());
+            }
+            sysUserJzgInfoService.updateBatchById(sysUserJzgInfoList);
+        } else {
+            for (String id : isEnableVo.getIds()) {
+                SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(id);
+                if (sysUserJzgInfo == null) {
+                    throw new SystemException("该用户不存在");
+                }
+                sysUserJzgInfo.setIsEnable(isEnableVo.getIsEnable());
+                sysUserJzgInfoService.updateById(sysUserJzgInfo);
             }
-            sysUserJzgInfo.setIsEnable(isEnableVo.getIsEnable());
-            sysUserJzgInfoService.updateById(sysUserJzgInfo);
         }
         return HttpResult.ok("业务员状态修改成功");
     }
@@ -284,13 +323,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HttpResult<Boolean> batchLeader(BatchLeaderVo batchLeaderVo) {
-        for (String id : batchLeaderVo.getIds()) {
-            SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(id);
-            if (sysUserJzgInfo == null) {
-                throw new SystemException("该用户不存在");
+        if (batchLeaderVo.getGetAll() == 1) {
+            List<SysUserJzgInfo> sysUserJzgInfoList = sysUserJzgInfoService.list();
+            for (SysUserJzgInfo sysUserJzgInfo : sysUserJzgInfoList) {
+                sysUserJzgInfo.setLeaderId(batchLeaderVo.getLeaderId());
+            }
+            sysUserJzgInfoService.updateBatchById(sysUserJzgInfoList);
+        } else {
+            for (String id : batchLeaderVo.getIds()) {
+                SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(id);
+                if (sysUserJzgInfo == null) {
+                    throw new SystemException("该用户不存在");
+                }
+                sysUserJzgInfo.setLeaderId(batchLeaderVo.getLeaderId());
+                sysUserJzgInfoService.updateById(sysUserJzgInfo);
             }
-            sysUserJzgInfo.setLeaderId(batchLeaderVo.getLeaderId());
-            sysUserJzgInfoService.updateById(sysUserJzgInfo);
         }
         return HttpResult.ok("设置负责人成功");
     }
@@ -330,7 +377,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 //            throw new SystemException("该业务员已被禁用");
 //        }
         BeanUtils.copyProperties(sysUserVo, sysUserJzgInfo);
-        saveFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(), sysUserJzgInfo.getId());
+        verifyFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(), sysUserJzgInfo.getId());
+        if (sysUserJzgInfo.getStatus() == 5) { // 如果状态为5  说明该业务员重新提交审核  进行业务员审核
+            StateResult stateResult = userStateListener.salesmanAuthIng(sysUserJzgInfo);
+            if (stateResult.isResult()) {
+                //更新状态
+                sysUserJzgInfo.setStatus(stateResult.getCurrentState());
+                sysUserJzgInfo.setApprovalOpinion("");
+            }
+
+        }
         sysUserJzgInfoService.updateById(sysUserJzgInfo);
 
         //用户角色处理
@@ -381,11 +437,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             }
             sysUserJzgInfo.setRegion(region.substring(0, region.length() - 1));
         }
-        if (!Objects.isNull(sysUserJzgInfo.getLeaderId())) {
+        if (!Objects.isNull(sysUserJzgInfo.getLeaderId()) && !sysUserJzgInfo.getLeaderId().equals("")) {
             String leaderName = sysUserJzgInfoService.getById(sysUserJzgInfo.getLeaderId()).getName();
             sysUserJzgInfo.setLeaderName(leaderName);
         }
-        if (!Objects.isNull(sysUserJzgInfo.getReferrerId())) {
+        if (!Objects.isNull(sysUserJzgInfo.getReferrerId()) && !sysUserJzgInfo.getReferrerId().equals("")) {
             String referrerName = sysUserJzgInfoService.getById(sysUserJzgInfo.getReferrerId()).getName();
             sysUserJzgInfo.setReferrerName(referrerName);
         }
@@ -406,6 +462,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUserJzgInfo.setFileList(sysUserJzgInfoFile);
         List<SysUserJzgInfoBankCardDto> sysUserJzgInfoBankCardDto = sysUserJzgInfoBankCardService.getBankCardByUserId(sysUserJzgInfo.getId());
         sysUserJzgInfo.setBankCardList(sysUserJzgInfoBankCardDto);
+        if (!sysUserJzgInfoBankCardDto.isEmpty()) {
+            sysUserJzgInfo.setBankCardNumber(sysUserJzgInfoBankCardDto.get(0).getBankCardNumber());
+            sysUserJzgInfo.setBankName(sysUserJzgInfoBankCardDto.get(0).getBankName());
+        }
         return HttpResult.ok(sysUserJzgInfo);
     }
 
@@ -500,8 +560,119 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
     }
 
-    public void verifyFile(String sfz1,String sfz2,String qualification,String contract,String applicant,String salaryTable,String leaveTable){
-
+    public void verifyFile(String sfz1,String sfz2,String qualification,String contract,String applicant,String salaryTable,String leaveTable,String userId){
+        if (sfz1 != null) {
+            SysUserJzgInfoFile sysUserJzgInfoFileVerify = sysUserJzgInfoFileService.getOne(
+                    (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getId, sfz1)));
+            if (sysUserJzgInfoFileVerify == null) {
+                List<SysUserJzgInfoFile> sysUserJzgInfoFiles = sysUserJzgInfoFileService.list(
+                        (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getUserJzgInfoId, userId)
+                                .eq(SysUserJzgInfoFile::getFileType, "sfz1")));
+                sysUserJzgInfoFileService.removeBatchByIds(sysUserJzgInfoFiles);
+                SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectOne
+                        (new LambdaQueryWrapper<SysUploadFiles>().eq(SysUploadFiles::getId, sfz1));
+                SysUserJzgInfoFile sysUserJzgInfoFile = new SysUserJzgInfoFile(sfz1, userId, sysUploadFiles.getFileName());
+                sysUserJzgInfoFile.setFileType("sfz1");
+                sysUserJzgInfoFile.setFileUrl(MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName()));
+                sysUserJzgInfoFileService.save(sysUserJzgInfoFile);
+            }
+        }
+        if (sfz2 != null) {
+            SysUserJzgInfoFile sysUserJzgInfoFileVerify = sysUserJzgInfoFileService.getOne(
+                    (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getId, sfz2)));
+            if (sysUserJzgInfoFileVerify == null) {
+                List<SysUserJzgInfoFile> sysUserJzgInfoFiles = sysUserJzgInfoFileService.list(
+                        (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getUserJzgInfoId, userId)
+                                .eq(SysUserJzgInfoFile::getFileType, "sfz2")));
+                sysUserJzgInfoFileService.removeBatchByIds(sysUserJzgInfoFiles);
+                SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectOne
+                        (new LambdaQueryWrapper<SysUploadFiles>().eq(SysUploadFiles::getId, sfz2));
+                SysUserJzgInfoFile sysUserJzgInfoFile = new SysUserJzgInfoFile(sfz2, userId, sysUploadFiles.getFileName());
+                sysUserJzgInfoFile.setFileType("sfz2");
+                sysUserJzgInfoFile.setFileUrl(MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName()));
+                sysUserJzgInfoFileService.save(sysUserJzgInfoFile);
+            }
+        }
+        if (qualification != null) {
+            SysUserJzgInfoFile sysUserJzgInfoFileVerify = sysUserJzgInfoFileService.getOne(
+                    (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getId, qualification)));
+            if (sysUserJzgInfoFileVerify == null) {
+                List<SysUserJzgInfoFile> sysUserJzgInfoFiles = sysUserJzgInfoFileService.list(
+                        (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getUserJzgInfoId, userId)
+                                .eq(SysUserJzgInfoFile::getFileType, "qualification")));
+                sysUserJzgInfoFileService.removeBatchByIds(sysUserJzgInfoFiles);
+                SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectOne
+                        (new LambdaQueryWrapper<SysUploadFiles>().eq(SysUploadFiles::getId, qualification));
+                SysUserJzgInfoFile sysUserJzgInfoFile = new SysUserJzgInfoFile(qualification, userId, sysUploadFiles.getFileName());
+                sysUserJzgInfoFile.setFileType("qualification");
+                sysUserJzgInfoFile.setFileUrl(MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName()));
+                sysUserJzgInfoFileService.save(sysUserJzgInfoFile);
+            }
+        }
+        if (contract != null) {
+            SysUserJzgInfoFile sysUserJzgInfoFileVerify = sysUserJzgInfoFileService.getOne(
+                    (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getId, contract)));
+            if (sysUserJzgInfoFileVerify == null) {
+                List<SysUserJzgInfoFile> sysUserJzgInfoFiles = sysUserJzgInfoFileService.list(
+                        (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getUserJzgInfoId, userId)
+                                .eq(SysUserJzgInfoFile::getFileType, "contract")));
+                sysUserJzgInfoFileService.removeBatchByIds(sysUserJzgInfoFiles);
+                SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectOne
+                        (new LambdaQueryWrapper<SysUploadFiles>().eq(SysUploadFiles::getId, contract));
+                SysUserJzgInfoFile sysUserJzgInfoFile = new SysUserJzgInfoFile(contract, userId, sysUploadFiles.getFileName());
+                sysUserJzgInfoFile.setFileType("contract");
+                sysUserJzgInfoFile.setFileUrl(MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName()));
+                sysUserJzgInfoFileService.save(sysUserJzgInfoFile);
+            }
+        }
+        if (applicant != null) {
+            SysUserJzgInfoFile sysUserJzgInfoFileVerify = sysUserJzgInfoFileService.getOne(
+                    (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getId, applicant)));
+            if (sysUserJzgInfoFileVerify == null) {
+                List<SysUserJzgInfoFile> sysUserJzgInfoFiles = sysUserJzgInfoFileService.list(
+                        (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getUserJzgInfoId, userId)
+                                .eq(SysUserJzgInfoFile::getFileType, "applicant")));
+                sysUserJzgInfoFileService.removeBatchByIds(sysUserJzgInfoFiles);
+                SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectOne
+                        (new LambdaQueryWrapper<SysUploadFiles>().eq(SysUploadFiles::getId, applicant));
+                SysUserJzgInfoFile sysUserJzgInfoFile = new SysUserJzgInfoFile(applicant, userId, sysUploadFiles.getFileName());
+                sysUserJzgInfoFile.setFileType("applicant");
+                sysUserJzgInfoFile.setFileUrl(MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName()));
+                sysUserJzgInfoFileService.save(sysUserJzgInfoFile);
+            }
+        }
+        if (salaryTable != null) {
+            SysUserJzgInfoFile sysUserJzgInfoFileVerify = sysUserJzgInfoFileService.getOne(
+                    (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getId, salaryTable)));
+            if (sysUserJzgInfoFileVerify == null) {
+                List<SysUserJzgInfoFile> sysUserJzgInfoFiles = sysUserJzgInfoFileService.list(
+                        (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getUserJzgInfoId, userId)
+                                .eq(SysUserJzgInfoFile::getFileType, "salaryTable")));
+                sysUserJzgInfoFileService.removeBatchByIds(sysUserJzgInfoFiles);
+                SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectOne
+                        (new LambdaQueryWrapper<SysUploadFiles>().eq(SysUploadFiles::getId, salaryTable));
+                SysUserJzgInfoFile sysUserJzgInfoFile = new SysUserJzgInfoFile(salaryTable,userId,sysUploadFiles.getFileName());
+                sysUserJzgInfoFile.setFileType("salary");
+                sysUserJzgInfoFile.setFileUrl(MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName()));
+                sysUserJzgInfoFileService.save(sysUserJzgInfoFile);
+            }
+        }
+        if (leaveTable != null) {
+            SysUserJzgInfoFile sysUserJzgInfoFileVerify = sysUserJzgInfoFileService.getOne(
+                    (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getId, leaveTable)));
+            if (sysUserJzgInfoFileVerify == null) {
+                List<SysUserJzgInfoFile> sysUserJzgInfoFiles = sysUserJzgInfoFileService.list(
+                        (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getUserJzgInfoId, userId)
+                                .eq(SysUserJzgInfoFile::getFileType, "leaveTable")));
+                sysUserJzgInfoFileService.removeBatchByIds(sysUserJzgInfoFiles);
+                SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectOne
+                        (new LambdaQueryWrapper<SysUploadFiles>().eq(SysUploadFiles::getId, leaveTable));
+                SysUserJzgInfoFile sysUserJzgInfoFile = new SysUserJzgInfoFile(leaveTable, userId, sysUploadFiles.getFileName());
+                sysUserJzgInfoFile.setFileType("leave");
+                sysUserJzgInfoFile.setFileUrl(MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName()));
+                sysUserJzgInfoFileService.save(sysUserJzgInfoFile);
+            }
+        }
     }
 }
 

+ 5 - 1
tenant/organization/src/main/java/com/jzg/organization/state/UserState.java

@@ -51,7 +51,11 @@ public class UserState {
         EMPLOYEE, // 入职
         RESIGN_ING, // 待离职
         RESIGN_FAILED, // 离职失败事件
-        RESIGN // 离职
+        RESIGN, // 离职
+        SALESMAN_AUTH_SUCCESS, //业务员审核成功事件
+        SALESMAN_AUTH_FAILED, // 业务员审核失败事件
+        SALESMAN_AUTH_ING // 业务员审核中
+
     }
 
 

+ 14 - 1
tenant/organization/src/main/java/com/jzg/organization/state/config/UserStateConfig.java

@@ -67,6 +67,19 @@ public class UserStateConfig extends StateMachineConfigurerAdapter<UserState.Use
                 .and()
                 .withExternal()
                 //已入职 -> 离职中
-                .source(UserState.UserStateEnum.ALREADY_EMPLOYEE).target(UserState.UserStateEnum.RESIGN_ING).event(UserState.UserStateEvent.RESIGN_ING);
+                .source(UserState.UserStateEnum.ALREADY_EMPLOYEE).target(UserState.UserStateEnum.RESIGN_ING).event(UserState.UserStateEvent.RESIGN_ING)
+                .and()
+                .withExternal()
+                //业务员审核成功 -> 已入职
+                .source(UserState.UserStateEnum.NOT_CERT).target(UserState.UserStateEnum.ALREADY_EMPLOYEE).event(UserState.UserStateEvent.SALESMAN_AUTH_SUCCESS)
+                .and()
+                .withExternal()
+                //业务员审核失败 -> 业务员入司审核失败
+                .source(UserState.UserStateEnum.NOT_CERT).target(UserState.UserStateEnum.COMPANY_REVIEW_FAILED).event(UserState.UserStateEvent.SALESMAN_AUTH_FAILED)
+                .and()
+                .withExternal()
+                //业务员入司审核失败 -> 业务员审核中
+                .source(UserState.UserStateEnum.COMPANY_REVIEW_FAILED).target(UserState.UserStateEnum.COMPANY_REVIEW_ING).event(UserState.UserStateEvent.SALESMAN_AUTH_ING)
+        ;
     }
 }

+ 26 - 0
tenant/organization/src/main/java/com/jzg/organization/state/listener/UserStateListener.java

@@ -98,4 +98,30 @@ public class UserStateListener {
         StateResult stateResult = callEvent(sysUserJzgInfo, UserState.UserStateEvent.REAL_AUTH_FAILED);
         return stateResult;
     }
+
+    /**
+     * 业务员审核成功
+     * @param sysUserJzgInfo
+     * @return
+     */
+    public StateResult salesmanAuthSuccess(SysUserJzgInfo sysUserJzgInfo){
+        StateResult stateResult = callEvent(sysUserJzgInfo, UserState.UserStateEvent.SALESMAN_AUTH_SUCCESS);
+        return stateResult;
+    }
+
+
+    /**
+     * 业务员审核失败
+     * @param sysUserJzgInfo
+     * @return
+     */
+    public StateResult salesmanAuthFailed(SysUserJzgInfo sysUserJzgInfo){
+        StateResult stateResult = callEvent(sysUserJzgInfo, UserState.UserStateEvent.SALESMAN_AUTH_FAILED);
+        return stateResult;
+    }
+
+    public StateResult salesmanAuthIng(SysUserJzgInfo sysUserJzgInfo){
+        StateResult stateResult = callEvent(sysUserJzgInfo, UserState.UserStateEvent.SALESMAN_AUTH_ING);
+        return stateResult;
+    }
 }

+ 2 - 1
tenant/organization/src/main/resources/application.yml

@@ -44,6 +44,7 @@ tenant:
     - sys_organization
     - sys_organization_user_link
     - sys_upload_files
+    - sys_config
   ignoreLoginNames:
 
 data-scope:
@@ -55,4 +56,4 @@ minio:
   url: http://192.168.0.250:9000
   access-key: v7Zb8XhyLcYNcSHlxvyK
   secret-key: 58YibMwpxGKtXcekPL065OM4GonC1hf2tFMjI9EN
-  bucket-name: jzg
+  bucket-name: jzg

+ 1 - 1
tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

@@ -88,7 +88,7 @@
         </if>
         <if test="sysUserInfoListVo.leaderId != null and sysUserInfoListVo.leaderId != ''">
             and (suji.leader_id = #{sysUserInfoListVo.leaderId}
-            or  su.username = #{sysUserInfoListVo.leaderId)
+            or  suji.name = #{sysUserInfoListVo.leaderId})
         </if>
         <if test="sysUserInfoListVo.salesman != null and sysUserInfoListVo.salesman != ''">
             and (suji.name like concat('%',#{sysUserInfoListVo.salesman},'%')

+ 1 - 0
tenant/organization/src/main/resources/mapper/SysUserMapper.xml

@@ -21,6 +21,7 @@
     <select id="getUserSelect" resultType="com.jzg.commons.entity.vo.SysUserSelectVo">
         SELECT
         suji.id,
+        su.id as userId,
         suji.name,
         su.mobile
         FROM