Sfoglia il codice sorgente

Merge branch 'dev_jzg_lipf_cxbj_v20260416' into dev_jzb_lipf_v20260427

lipf 5 mesi fa
parent
commit
1e803f4e6d
18 ha cambiato i file con 234 aggiunte e 48 eliminazioni
  1. 7 0
      commons/src/main/java/com/jzg/commons/entity/dto/SysUserJzgInfoBankCardDto.java
  2. 8 1
      commons/src/main/java/com/jzg/commons/entity/po/SysUserJzgInfoFile.java
  3. 8 0
      commons/src/main/java/com/jzg/commons/entity/vo/SysUserVo.java
  4. 4 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsOrdersController.java
  5. 2 1
      tenant/organization/src/main/java/com/jzg/organization/controller/UserBankCardController.java
  6. 17 4
      tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java
  7. 3 1
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysOrganizationUserLinkServiceMapper.java
  8. 11 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserJzgInfoFileMapper.java
  9. 1 1
      tenant/organization/src/main/java/com/jzg/organization/service/SysOrganizationUserLinkService.java
  10. 1 1
      tenant/organization/src/main/java/com/jzg/organization/service/SysUserJzgInfoBankCardService.java
  11. 11 0
      tenant/organization/src/main/java/com/jzg/organization/service/SysUserJzgInfoFileService.java
  12. 16 3
      tenant/organization/src/main/java/com/jzg/organization/service/SysUserService.java
  13. 6 2
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysOrganizationUserLinkServiceImpl.java
  14. 8 2
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountServiceImpl.java
  15. 16 1
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgInfoBankCardServiceImpl.java
  16. 26 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgInfoFileServiceImpl.java
  17. 87 27
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java
  18. 2 2
      tenant/organization/src/main/resources/mapper/SysOrganizationUserLinkServiceMapper.xml

+ 7 - 0
commons/src/main/java/com/jzg/commons/entity/dto/SysUserJzgInfoBankCardDto.java

@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -65,6 +66,12 @@ public class SysUserJzgInfoBankCardDto implements Serializable {
     @Schema(description = "申请时间")
     private String applyTime;
 
+    @Schema(description = "最新驳回时间")
+    private LocalDateTime lastRejectTime;
+
+    @Schema(description = "最新驳回原因")
+    private String lastRejectReason;
+
     @Schema(description = "审核记录列表")
     private List<SysUserJzgInfoBankCardRecord> sysUserJzgInfoBankCardRecordList;
 }

+ 8 - 1
commons/src/main/java/com/jzg/commons/entity/po/SysUserJzgInfoFile.java

@@ -6,6 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.jzg.commons.util.idgen.IdGenerate;
 import lombok.Data;
 
+import java.io.Serial;
+import java.io.Serializable;
+
 /**
  * @author quchen
  * @date 2025/1/20 16:06
@@ -13,7 +16,11 @@ import lombok.Data;
 
 @Data
 @TableName("sys_user_jzg_info_file")
-public class SysUserJzgInfoFile {
+public class SysUserJzgInfoFile implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2959388859590443115L;
+
     @TableId(value = "id")
     private String id;
 

+ 8 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysUserVo.java

@@ -3,6 +3,7 @@ package com.jzg.commons.entity.vo;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.jzg.commons.aop.LogDescriptionField;
 import com.jzg.commons.core.base.PageRequest;
+import com.jzg.commons.entity.po.SysUserJzgInfoFile;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -14,6 +15,13 @@ import java.util.List;
 @Data
 public class SysUserVo extends PageRequest {
 
+    /**
+     * 身份证,合同等文件的信息
+     *
+     * @date 2026/4/22 15:03
+     */
+    private List<SysUserJzgInfoFile> fileList;
+
     @Schema(description = "平台用户id")
     private String id;
 

+ 4 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsOrdersController.java

@@ -1,6 +1,7 @@
 package com.jzg.quotation.summary.controller;
 
 
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -106,6 +107,7 @@ public class InsOrdersController extends BaseController {
     @PostMapping("queryList")
     @Operation(summary = "查询订单列表")
     public HttpResult queryList(@RequestBody InsOrdersParamVO insOrdersParam) {
+        log.info("查询订单列表,insOrdersParam=[{}]", JSONUtil.toJsonStr(insOrdersParam));
         String systemCode = "";
         //如果是APP登录的话 则传递SystemCode的头部字段
         if (baseController.getUserSystemCode().equals("APP")) {
@@ -209,7 +211,7 @@ public class InsOrdersController extends BaseController {
                 .flatMap(List::stream)
                 .map(KindInfoVo::getKindCode)
                 .distinct()    // 去重
-                .collect(Collectors.toList());
+                .toList();
 
 
 
@@ -218,7 +220,7 @@ public class InsOrdersController extends BaseController {
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("companyName",item.getCompanyName());
             for (String kingCode : kindList) {
-                List<KindInfoVo> collect = item.getKindInfoVo().stream().filter(x -> x.getKindCode().equals(kingCode)).collect(Collectors.toList());
+                List<KindInfoVo> collect = item.getKindInfoVo().stream().filter(x -> x.getKindCode().equals(kingCode)).toList();
                 if(collect.isEmpty()){
                     jsonObject.put(kingCode,"-");
                 }else{

+ 2 - 1
tenant/organization/src/main/java/com/jzg/organization/controller/UserBankCardController.java

@@ -3,6 +3,7 @@ package com.jzg.organization.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.dto.SysUserJzgInfoBankCardDto;
 import com.jzg.commons.entity.vo.SysUserJzgInfoBankCardVo;
 import com.jzg.organization.service.SysUserJzgInfoBankCardService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,7 +31,7 @@ public class UserBankCardController extends BaseController {
      * @date 2026/4/2 14:26
      */
     @PostMapping("/queryUserBankCardList")
-    public HttpResult queryUserBankCardList(@RequestBody SysUserJzgInfoBankCardVo sysUserJzgInfoBankCardVo){
+    public HttpResult<Page<SysUserJzgInfoBankCardDto>> queryUserBankCardList(@RequestBody SysUserJzgInfoBankCardVo sysUserJzgInfoBankCardVo){
         Page page = sysUserJzgInfoBankCardVo.getPage();
         return HttpResult.ok(sysUserJzgInfoBankCardService.getBankCardPageList(page, sysUserJzgInfoBankCardVo));
     }

+ 17 - 4
tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java

@@ -63,7 +63,7 @@ public class UserController extends BaseController {
     @OperatorTrajectory(moduleName = "业务管理/业务员管理/添加成员",mapperClass = SysUserJzgInfoMapper.class,entityClass = SysUserVo.class)
     @Operation(summary = "新增业务员接口", description = "新增业务员接口")
     @PostMapping(value = "/add")
-    public HttpResult addUserInfo(@RequestBody SysUserVo sysUserVo) {
+    public HttpResult<String> addUserInfo(@RequestBody SysUserVo sysUserVo) {
         return sysUserService.addUserInfo(sysUserVo);
     }
 
@@ -87,10 +87,16 @@ public class UserController extends BaseController {
         return sysUserService.batchLeader(batchLeaderVo);
     }
 
+    /**
+     * 修改业务员信息接口
+     *
+     * @author lipf
+     * @date 2026/4/22 15:41
+     */
     @OperatorTrajectory(moduleName = "业务管理/业务员管理/修改成员",type = "U",OperationDict = OperationTypeEnum.UPDATE,mapperClass = SysUserJzgInfoMapper.class,entityClass = SysUserVo.class)
     @Operation(summary = "修改业务员接口", description = "修改业务员接口")
     @PostMapping(value = "/update")
-    public HttpResult updateUser(@RequestBody SysUserVo sysUserVo) {
+    public HttpResult<String> updateUser(@RequestBody SysUserVo sysUserVo) {
         return sysUserService.updateUserInfo(sysUserVo);
     }
 
@@ -101,9 +107,16 @@ public class UserController extends BaseController {
         return sysUserService.addBankCard(sysUserJzgInfoBankCardVo);
     }
 
-    @Operation(summary = "获取业务员信息接口", description = "获取业务员信息接口")
+    /**
+     * 获取业务员详细信息接口
+     *      包括相关的附件,合同,身份证图片等
+     *
+     * @author lipf
+     * @date 2026/4/22 15:37
+     */
+    @Operation(summary = "获取业务员信息接口", description = "获取业务员详细信息接口")
     @GetMapping(value = "/getUserInfo")
-    public HttpResult getUserInfoByUserId(@RequestParam String id) {
+    public HttpResult<SysUserJzgInfo> getUserInfoByUserId(@RequestParam String id) {
         return sysUserService.getUserInfoByUserId(id);
     }
 

+ 3 - 1
tenant/organization/src/main/java/com/jzg/organization/mapper/SysOrganizationUserLinkServiceMapper.java

@@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jzg.commons.entity.po.SysOrganizationUserLink;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface SysOrganizationUserLinkServiceMapper extends BaseMapper<SysOrganizationUserLink> {
 
 
-    SysOrganizationUserLink getOrganizationUser(@Param("userId") String userId,@Param("systemCode") String systemCode);
+    List<SysOrganizationUserLink> getOrganizationUser(@Param("userId") Long userId, @Param("systemCode") String systemCode);
 
     void deleteOrganizationUser(String userId, String orgId);
 }

+ 11 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserJzgInfoFileMapper.java

@@ -3,10 +3,21 @@ package com.jzg.organization.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jzg.commons.entity.po.SysUserJzgInfoFile;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
 @Mapper
 public interface SysUserJzgInfoFileMapper extends BaseMapper<SysUserJzgInfoFile> {
 
+    /**
+     * 根据用户序号查询用户关联的文件资料
+     *
+     * @param userId 用户序号
+     * @author lipf
+     * @date 2026/4/22 15:19
+     */
+    @Select("select * from sys_user_jzg_info_file a where a.user_id = #{userId,jdbcType=DECIMAL}")
+    List<SysUserJzgInfoFile> queryJzgInfoFilesByUserId(@Param("userId") Long userId);
 }

+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/service/SysOrganizationUserLinkService.java

@@ -23,7 +23,7 @@ public interface SysOrganizationUserLinkService extends IService<SysOrganization
 
     SysOrganizationUserLink selectByOrgIdAndUserId(SysOrganizationUserLinkAdd organizationUserLinkAdd);
 
-    SysOrganizationUserLink getOrganizationUser(String userId, String systemCode);
+    SysOrganizationUserLink getOrganizationUser(Long userId, String systemCode);
 
     void deleteOrganizationUser(String userId, String orgId);
 }

+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/service/SysUserJzgInfoBankCardService.java

@@ -18,7 +18,7 @@ public interface SysUserJzgInfoBankCardService extends IService<SysUserJzgInfoBa
      * @author lipf
      * @date 2026/4/2 14:26
      */
-    Page getBankCardPageList(Page page, SysUserJzgInfoBankCardVo sysUserJzgInfoBankCardVo);
+    Page<SysUserJzgInfoBankCardDto> getBankCardPageList(Page page, SysUserJzgInfoBankCardVo sysUserJzgInfoBankCardVo);
 
     List<SysUserJzgInfoBankCardDto> getBankCardByUserId(String userInfoId, String systemCode);
 

+ 11 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysUserJzgInfoFileService.java

@@ -3,5 +3,16 @@ package com.jzg.organization.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.jzg.commons.entity.po.SysUserJzgInfoFile;
 
+import java.util.List;
+
 public interface SysUserJzgInfoFileService extends IService<SysUserJzgInfoFile> {
+
+    /**
+     * 根据用户序号查询用户关联的文档资料
+     *
+     * @param userId  sys_user 表的序号
+     * @author lipf
+     * @date 2026/4/22 15:14
+     */
+    List<SysUserJzgInfoFile> queryJzgInfoFilesByUserId(Long userId);
 }

+ 16 - 3
tenant/organization/src/main/java/com/jzg/organization/service/SysUserService.java

@@ -46,7 +46,7 @@ public interface SysUserService extends IService<SysUser> {
      * @param sysUserVo 要添加的业务员信息
      * @return HttpResult
      */
-    HttpResult addUserInfo(SysUserVo sysUserVo);
+    HttpResult<String> addUserInfo(SysUserVo sysUserVo);
 
     HttpResult deleteUserInfo(IsDeleteVo isDeleteVo);
 
@@ -62,9 +62,22 @@ public interface SysUserService extends IService<SysUser> {
 
     HttpResult addBankCard(SysUserJzgInfoBankCardVo sysUserJzgInfoBankCardVo);
 
-    HttpResult updateUserInfo(SysUserVo sysUserVo);
+    /**
+     * 修改业务员信息接口
+     *
+     * @author lipf
+     * @date 2026/4/22 15:41
+     */
+    HttpResult<String> updateUserInfo(SysUserVo sysUserVo);
 
-    HttpResult getUserInfoByUserId(String userId);
+    /**
+     * 获取业务员详细信息接口
+     *      包括相关的附件,合同,身份证图片等
+     *
+     * @author lipf
+     * @date 2026/4/22 15:37
+     */
+    HttpResult<SysUserJzgInfo> getUserInfoByUserId(String userId);
 
     HttpResult getUserInfoById(String id);
 

+ 6 - 2
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysOrganizationUserLinkServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.organization.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -15,6 +16,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class SysOrganizationUserLinkServiceImpl extends ServiceImpl<SysOrganizationUserLinkServiceMapper, SysOrganizationUserLink> implements SysOrganizationUserLinkService{
 
@@ -62,8 +65,9 @@ public class SysOrganizationUserLinkServiceImpl extends ServiceImpl<SysOrganizat
     }
 
     @Override
-    public SysOrganizationUserLink getOrganizationUser(String userId, String systemCode) {
-        return sysOrganizationUserLinkServiceMapper.getOrganizationUser(userId,systemCode);
+    public SysOrganizationUserLink getOrganizationUser(Long userId, String systemCode) {
+        List<SysOrganizationUserLink> organizationUser = sysOrganizationUserLinkServiceMapper.getOrganizationUser(userId, systemCode);
+        return CollUtil.getFirst(organizationUser);
     }
 
     @Override

+ 8 - 2
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.organization.service.impl;
 
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,7 +14,8 @@ import com.jzg.commons.entity.vo.UserAccountStatisVo;
 import com.jzg.organization.client.QuoteClient;
 import com.jzg.organization.mapper.SysUserAccountMapper;
 import com.jzg.organization.service.*;
-import org.springframework.beans.BeanUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -28,11 +30,13 @@ import java.util.stream.Collectors;
 /**
 * @author dongxin
 * @description 针对表【sys_user_account(用户账户表)】的数据库操作Service实现
-* @createDate 2025-07-15 15:37:58
+* @date 2025-07-15 15:37:58
 */
 @Service
 public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper, SysUserAccount>
     implements SysUserAccountService {
+
+    private static final Logger log = LoggerFactory.getLogger(SysUserAccountServiceImpl.class);
     @Autowired
     private SysUserAccountService sysUserAccountService;
 
@@ -64,6 +68,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
 
     @Override
     public UserAccountStatisVo getPayableStatistics(SysUserAccountParam param) {
+        log.info("查询财务统计信息: param=[{}]", JSONUtil.toJsonStr(param));
         return this.baseMapper.getPayableStatistics(param);
     }
 
@@ -75,6 +80,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
      */
     @Override
     public Page<SysUserAccountVo> accountList(SysUserAccountPageParam param) {
+        log.info("查询账户列表:param=[{}]", JSONUtil.toJsonStr(param));
         return baseMapper.accountList(param.getPage(), param);
     }
 

+ 16 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgInfoBankCardServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.organization.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,6 +25,7 @@ import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Objects;
 
@@ -59,10 +61,11 @@ public class SysUserJzgInfoBankCardServiceImpl extends ServiceImpl<SysUserJzgInf
      * @date 2026/4/2 14:26
      */
     @Override
-    public Page getBankCardPageList(Page page, SysUserJzgInfoBankCardVo sysUserJzgInfoBankCardVo) {
+    public Page<SysUserJzgInfoBankCardDto> getBankCardPageList(Page page, SysUserJzgInfoBankCardVo sysUserJzgInfoBankCardVo) {
         log.info("查询业务员账户:sysUserJzgInfoBankCardVo=[{}]", JSONUtil.toJsonStr(sysUserJzgInfoBankCardVo));
         Page<SysUserJzgInfoBankCardDto> pageList = sysUserJzgInfoBankCardMapper.getBankCardPageList(page, sysUserJzgInfoBankCardVo);
         pageList.getRecords().forEach(sysUserJzgInfoBankCardDto -> {
+
             if (sysUserJzgInfoBankCardDto.getFileId() != null) {
                 String cardFileId = sysUserJzgInfoBankCardDto.getFileId();
                 SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectById(cardFileId);
@@ -74,6 +77,18 @@ public class SysUserJzgInfoBankCardServiceImpl extends ServiceImpl<SysUserJzgInf
                     .selectList(new LambdaQueryWrapper<SysUserJzgInfoBankCardRecord>()
                             .eq(SysUserJzgInfoBankCardRecord::getBankCardId, sysUserJzgInfoBankCardDto.getId()));
             sysUserJzgInfoBankCardDto.setSysUserJzgInfoBankCardRecordList(sysUserJzgInfoBankCardRecordList);
+            // 填充最新的驳回日期和驳回原因
+            if(CollUtil.isNotEmpty(sysUserJzgInfoBankCardRecordList)){
+                List<SysUserJzgInfoBankCardRecord> list = sysUserJzgInfoBankCardRecordList.stream().filter(action -> "2".equals(action.getStatus()))
+                        .sorted(Comparator.comparing(SysUserJzgInfoBankCardRecord::getCreateTime)).toList();
+                if(CollUtil.isNotEmpty(list)){
+                    SysUserJzgInfoBankCardRecord sysUserJzgInfoBankCardRecord = list.get(0);
+                    if(sysUserJzgInfoBankCardRecord != null){
+                        sysUserJzgInfoBankCardDto.setLastRejectTime(sysUserJzgInfoBankCardRecord.getCreateTime());
+                        sysUserJzgInfoBankCardDto.setLastRejectReason(sysUserJzgInfoBankCardRecord.getRemark());
+                    }
+                }
+            }
         });
         return pageList;
     }

+ 26 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgInfoFileServiceImpl.java

@@ -1,11 +1,18 @@
 package com.jzg.organization.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.entity.po.SysUserJzgInfoFile;
 import com.jzg.organization.mapper.SysUserJzgInfoFileMapper;
 import com.jzg.organization.service.SysUserJzgInfoFileService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * @author quchen
  * @date 2025/1/20 17:08
@@ -13,4 +20,23 @@ import org.springframework.stereotype.Service;
 
 @Service
 public class SysUserJzgInfoFileServiceImpl extends ServiceImpl<SysUserJzgInfoFileMapper, SysUserJzgInfoFile> implements SysUserJzgInfoFileService {
+
+    private static final Logger log = LoggerFactory.getLogger(SysUserJzgInfoFileServiceImpl.class);
+
+    @Autowired
+    private SysUserJzgInfoFileMapper sysUserJzgInfoFileMapper;
+
+    /**
+     * 根据用户序号查询用户关联的文件资料
+     *
+     * @param userId 用户序号
+     * @author lipf
+     * @date 2026/4/22 15:19
+     */
+    @Override
+    public List<SysUserJzgInfoFile> queryJzgInfoFilesByUserId(Long userId) {
+        List<SysUserJzgInfoFile> files = sysUserJzgInfoFileMapper.queryJzgInfoFilesByUserId(userId);
+        log.info("根据用户序号[{}]查询出关联的文件[{}]个,分别是[{}]", userId, CollectionUtil.size(files), JSONUtil.toJsonStr(files));
+        return files;
+    }
 }

+ 87 - 27
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -32,6 +32,7 @@ import com.jzg.organization.state.listener.UserStateListener;
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.Setter;
+import org.jetbrains.annotations.NotNull;
 import org.redisson.api.RedissonClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -452,8 +453,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public HttpResult addUserInfo(SysUserVo sysUserVo) {
+    public HttpResult<String> addUserInfo(SysUserVo sysUserVo) {
         log.info("新增业务员信息。 sysUserVo=[{}]", JSONUtil.toJsonStr(sysUserVo));
+
         SysUser sysUser = baseMapper.getUserByMobile(sysUserVo.getMobile());
         String sysUserJzgInfoId = "", sysUserId = "";
         SysUserJzgInfo sysUserJzgInfo = new SysUserJzgInfo();
@@ -475,7 +477,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             if (sysUserVo.getOrganizationId() != null && !sysUserVo.getOrganizationId().equals("")) {
                 saveOrganization(sysUserVo.getOrganizationId(), sysUserJzgInfo.getUserId());
             }
-            saveFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(), sysUserJzgInfo.getUserId());
+            this.updateUserBindFiles(sysUserVo.getFileList(),Long.parseLong(sysUser.getId()));
+            //saveFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(), sysUserJzgInfo.getUserId());
             //系统中已存在业务员
 //            throw new SystemException("用户信息已存在,无法添加");
         } else {
@@ -505,7 +508,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             if (sysUserVo.getOrganizationId() != null && !sysUserVo.getOrganizationId().equals("")) {
                 saveOrganization(sysUserVo.getOrganizationId(), sysUserJzgInfo.getUserId());
             }
-            saveFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(), sysUserJzgInfo.getId());
+            this.updateUserBindFiles(sysUserVo.getFileList(),Long.parseLong(sysUserId));
+            //saveFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(), sysUserJzgInfo.getId());
         }
 
         //如果表单输入的银行卡号和银行名不为空,则保存银行卡信息
@@ -926,20 +930,24 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return HttpResult.ok("添加银行卡成功");
     }
 
+    /**
+     * 修改业务员信息接口
+     *
+     * @author lipf
+     * @date 2026/4/22 15:41
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public HttpResult<Boolean> updateUserInfo(SysUserVo sysUserVo) {
+    public HttpResult<String> updateUserInfo(SysUserVo sysUserVo) {
         log.info("修改人员信息:sysUserVo=[{}]", JSONUtil.toJsonStr(sysUserVo));
         SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(sysUserVo.getId());
         if (Objects.isNull(sysUserJzgInfo)) {
             log.info("id=[{}]的人员不存在", sysUserVo.getId());
             throw new SystemException("该业务员不存在");
         }
-//        if (sysUserJzgInfo.getIsEnable() == 0) {
-//            throw new SystemException("该业务员已被禁用");
-//        }
         BeanUtils.copyProperties(sysUserVo, sysUserJzgInfo);
-        verifyFile(sysUserVo, sysUserJzgInfo.getId());
+        this.updateUserBindFiles(sysUserVo.getFileList(),Long.parseLong(sysUserJzgInfo.getUserId()));
+        // verifyFile(sysUserVo, sysUserJzgInfo.getId());
         if (sysUserJzgInfo.getStatus() == 5) { // 如果状态为5  说明该业务员重新提交审核  进行业务员审核
             StateResult stateResult = userStateListener.salesmanAuthIng(sysUserJzgInfo);
             if (stateResult.isResult()) {
@@ -947,7 +955,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 sysUserJzgInfo.setStatus(stateResult.getCurrentState());
                 sysUserJzgInfo.setApprovalOpinion("");
             }
-
         }
         // modify by lipf, 解决身份证信息没有更新的问题
         SysUser originSysUser = sysUserService.getById(sysUserVo.getUserId());
@@ -1001,8 +1008,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return HttpResult.ok("修改业务员成功");
     }
 
+    /**
+     * 获取业务员详细信息接口
+     *      包括相关的附件,合同,身份证图片等
+     *
+     * @author lipf
+     * @date 2026/4/22 15:37
+     */
     @Override
-    public HttpResult getUserInfoByUserId(String id) {
+    public HttpResult<SysUserJzgInfo> getUserInfoByUserId(String id) {
         SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getUserByUserId(id);
         log.info("根据id=[{}]查询用户信息sysUserJzgInfo=[{}]",id, JSONUtil.toJsonStr(sysUserJzgInfo));
         if (sysUserJzgInfo == null) {
@@ -1018,23 +1032,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (!Objects.isNull(dept)) {
             sysUserJzgInfo.setDeptName(dept.getName());
         }
-        List<String> areaList = new ArrayList<>();
-        if (!Objects.isNull(sysUserJzgInfo.getProvince()) && !sysUserJzgInfo.getProvince().isEmpty()) {
-            areaList.add(sysUserJzgInfo.getProvince());
-        }
-        if (!Objects.isNull(sysUserJzgInfo.getCity()) && !sysUserJzgInfo.getCity().isEmpty()) {
-            areaList.add(sysUserJzgInfo.getCity());
-        }
-        if (!Objects.isNull(sysUserJzgInfo.getDistrict()) && !sysUserJzgInfo.getDistrict().isEmpty()) {
-            areaList.add(sysUserJzgInfo.getDistrict());
-        }
-        if (areaList.size() == 0) {
+        List<String> areaList = getStrings(sysUserJzgInfo);
+        if (areaList.isEmpty()) {
             sysUserJzgInfo.setRegion("");
         } else {
             List<SysArea> sysAreas = sysAreaService.queryAllByAreaCode(areaList);
             String region = "";
-            for (int i = 0; i < sysAreas.size(); i++) {
-                region = region + sysAreas.get(i).getAreaCname() + "-";
+            for (SysArea sysArea : sysAreas) {
+                region = region + sysArea.getAreaCname() + "-";
             }
             sysUserJzgInfo.setRegion(region.substring(0, region.length() - 1));
         }
@@ -1049,7 +1054,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             sysUserJzgInfo.setReferrerName(Objects.isNull(jzgInfo) ? "" : jzgInfo.getName());
         }
         String systemCode = baseController.getSystemCode();
-        SysOrganizationUserLink sysOrganizationUserLink = sysOrganizationUserLinkService.getOrganizationUser( sysUserJzgInfo.getUserId(),systemCode);
+        Long userId = Long.parseLong(sysUserJzgInfo.getUserId());
+        SysOrganizationUserLink sysOrganizationUserLink = sysOrganizationUserLinkService.getOrganizationUser(userId,systemCode);
 
         if (!Objects.isNull(sysOrganizationUserLink)) {
             String organizationId = sysOrganizationUserLink.getOrganizationId();
@@ -1070,7 +1076,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUserJzgInfo.setRoleNames(userRole.stream().map(SysRole::getName).collect(Collectors.toList()));
 
         List<SysUserJzgInfoFile> sysUserJzgInfoFile = sysUserJzgInfoFileService.list
-                (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getUserId, sysUserJzgInfo.getId()));
+                (new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getUserId, sysUserJzgInfo.getUserId()));
         sysUserJzgInfo.setFileList(sysUserJzgInfoFile);
         List<SysUserJzgInfoBankCardDto> sysUserJzgInfoBankCardDto = sysUserJzgInfoBankCardService.getBankCardByUserId(sysUserJzgInfo.getId(), baseController.getUserSystemCode());
         sysUserJzgInfo.setBankCardList(sysUserJzgInfoBankCardDto);
@@ -1081,6 +1087,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return HttpResult.ok(sysUserJzgInfo);
     }
 
+    @NotNull
+    private static List<String> getStrings(SysUserJzgInfo sysUserJzgInfo) {
+        List<String> areaList = new ArrayList<>();
+        if (!Objects.isNull(sysUserJzgInfo.getProvince()) && !sysUserJzgInfo.getProvince().isEmpty()) {
+            areaList.add(sysUserJzgInfo.getProvince());
+        }
+        if (!Objects.isNull(sysUserJzgInfo.getCity()) && !sysUserJzgInfo.getCity().isEmpty()) {
+            areaList.add(sysUserJzgInfo.getCity());
+        }
+        if (!Objects.isNull(sysUserJzgInfo.getDistrict()) && !sysUserJzgInfo.getDistrict().isEmpty()) {
+            areaList.add(sysUserJzgInfo.getDistrict());
+        }
+        return areaList;
+    }
+
     @Override
     public HttpResult getUserInfoById(String id) {
         SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(id);
@@ -1129,6 +1150,43 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysOrganizationUserLinkService.save(sysOrganizationUserLink);
     }
 
+    /**
+     * 保存员工等的图片信息
+     *
+     * @author lipf
+     * @date 2026/4/22 15:06
+     */
+    public void updateUserBindFiles(List<SysUserJzgInfoFile> fileList, Long userId){
+        log.info("保存员工的身份证图片等信息:userId=[{}], fileList=[{}]", userId, JSONUtil.toJsonStr(fileList));
+        List<SysUserJzgInfoFile> existedFiles = sysUserJzgInfoFileService.queryJzgInfoFilesByUserId(userId);
+        if(CollUtil.isNotEmpty(existedFiles)){
+            sysUserJzgInfoFileService.removeByIds(existedFiles.stream().map(SysUserJzgInfoFile::getId).toList());
+        }
+        if(CollUtil.isNotEmpty(fileList)){
+            fileList = fileList.stream().peek(action->{
+                String fileId = action.getFileId();
+                SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectById(fileId);
+                if(sysUploadFiles != null){
+                    action.setFileUrl(sysUploadFiles.getDownloadUrl());
+                    action.setUserId(String.valueOf(userId));
+                    //action.setFileType(sysUploadFiles.getFileType());
+                    action.setFileName(sysUploadFiles.getFileName());
+                    action.setFileUrl(MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName()));
+                }else{
+                    log.error("文件序号为[{}]的文件不存在",fileId);
+                }
+            }).toList();
+            sysUserJzgInfoFileService.saveBatch(fileList);
+        }
+    }
+
+    /**
+     * 后期使用 com.jzg.organization.service.impl.SysUserServiceImpl#updateUserBindFiles(java.util.List, java.lang.Long) 进行替换
+     *
+     * @author lipf
+     * @date 2026/4/22 15:30
+     */
+    @Deprecated()
     public void saveFile(String sfz1, String sfz2, String qualification, String contract, String applicant, String salaryTable, String leaveTable, String userId) {
         saveSingleFile(sfz1, "sfz1", userId);
         saveSingleFile(sfz2, "sfz2", userId);
@@ -1195,6 +1253,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return true;
     }
 
+    @Deprecated
     public void verifyFile(SysUserVo sysUserVo, String userId) {
         List<SysUserJzgInfoFile> fileList = sysUserJzgInfoFileService.list(new LambdaQueryWrapper<SysUserJzgInfoFile>()
                 .eq(SysUserJzgInfoFile::getUserId, userId));
@@ -1411,7 +1470,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
            saveRole(userByUserId);
            return HttpResult.ok("添加业务员成功");
        }catch (Exception e){
-           e.printStackTrace();
+           log.error("添加业务员异常",e);
            throw new RuntimeException("添加业务员失败:", e);
        }
     }
@@ -1454,7 +1513,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             sysUserId = sysUser1.getId();
             sysUserJzgInfo.setStatus(UserState.UserStateEnum.ALREADY_EMPLOYEE.getValue());
             sysUserJzgInfoService.save(sysUserJzgInfo);
-            saveFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(), sysUserJzgInfo.getId());
+            this.updateUserBindFiles(sysUserVo.getFileList(),Long.parseLong(sysUser1.getId()));
+            //saveFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(), sysUserJzgInfo.getId());
             //如果表单输入的银行卡号和银行名不为空,则保存银行卡信息
             if (sysUserVo.getBankCardId() != null && sysUserVo.getBankName() != null) {
                 SysUserJzgInfoBankCard sysUserJzgInfoBankCard =

+ 2 - 2
tenant/organization/src/main/resources/mapper/SysOrganizationUserLinkServiceMapper.xml

@@ -29,8 +29,8 @@
         a.user_id,
         a.organization_id
         FROM
-        platform_prod.sys_organization_user_link a
-        join platform_prod.sys_organization b on
+        sys_organization_user_link a
+        join sys_organization b on
         a.organization_id = b.id
         WHERE user_id = #{userId,jdbcType=DECIMAL}
     </select>