Przeglądaj źródła

签字注师添加可签章次数,用户资质证书通过审批时同步添加签章默认次数

huangguoce 3 dni temu
rodzic
commit
f5033009b8
14 zmienionych plików z 301 dodań i 46 usunięć
  1. 35 0
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/domain/SignatureCount.java
  2. 6 1
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/factory/UserApiFallbackFactory.java
  3. 9 2
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/feign/IUserApi.java
  4. 6 1
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/service/dto/UserDTO.java
  5. 5 11
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/service/CwProjectReportService.java
  6. 10 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/EnrollmentUserInfoAuditService.java
  7. 24 1
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java
  8. 36 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/domain/UserSignatureInfo.java
  9. 6 14
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/feign/UserApiImpl.java
  10. 13 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserMapper.java
  11. 23 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserSignatureInfoMapper.java
  12. 45 1
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml
  13. 23 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserSignatureInfoMapper.xml
  14. 60 15
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

+ 35 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/domain/SignatureCount.java

@@ -0,0 +1,35 @@
+/**
+ * Copyright &copy; 2021-2026 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.sys.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 注会签章信息表
+ *
+ * @author jeeplus
+ * @version 2021-12-05
+ */
+@Data
+@TableName("sys_signature_info")
+public class SignatureCount extends BaseDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 可签章次数
+     */
+    private Integer signatureCount;
+
+    /**
+     * 用户id
+     */
+    private Integer userId;
+
+
+}

+ 6 - 1
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/factory/UserApiFallbackFactory.java

@@ -295,10 +295,15 @@ public class UserApiFallbackFactory implements FallbackFactory <IUserApi> {
             }
 
             @Override
-            public UserDTO getCount(String id) {
+            public UserDTO findCountById(String id) {
                 return null;
             }
 
+            @Override
+            public void addDefaultSignatureCount(String userId) {
+
+            }
+
         };
     }
 }

+ 9 - 2
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/feign/IUserApi.java

@@ -444,8 +444,15 @@ public interface IUserApi {
      * 根据用户id获取被选次数
      * @return
      */
-    @GetMapping(value = BASE_URL + "/getCount")
-    UserDTO getCount(@RequestParam("id")String id);
+    @GetMapping(value = BASE_URL + "/findCountById")
+    UserDTO findCountById(@RequestParam("id")String id);
+
+    /**
+     * 新增资质证书后添加默认100次可签章次数
+     * @return
+     */
+    @PostMapping(value = BASE_URL + "/addDefaultSignatureCount")
+    void addDefaultSignatureCount(@RequestParam("userId")String userId);
 
 }
 

+ 6 - 1
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/service/dto/UserDTO.java

@@ -57,11 +57,16 @@ public class UserDTO extends BaseDTO implements Serializable {
     private Integer accountantUserFlag;
 
     /**
-     * 财务公司签字注师被选择次数
+     * 财务公司签字注师被选择次数(当前年)
      */
     private Integer accountantUserCount;
 
     /**
+     * 财务公司签字注师可选择次数
+     */
+    private String signatureCount;
+
+    /**
      * 执业资格证类型
      */
     private String certType;

+ 5 - 11
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReport/service/CwProjectReportService.java

@@ -5644,17 +5644,11 @@ public class CwProjectReportService extends ServiceImpl<CwProjectReportMapper, C
                         result.add("第" + (actualIndex) + "条,报告名为" + item.getReportName() + "的数据存在以下问题:签字注师1和签字注师2至少填写一个");
                         continue;
                     } else {
-                        UserDTO userCountDto = iUserApi.getCount(signatureAnnotator1);
-                        if (userCountDto.getAccountantUserCount() >= 100 && userCountDto.getAccountantUserFlag() == 1) {
-                            if(!"王真".equals(userCountDto.getName())){
-                                result.add("第" + (actualIndex) + "条,报告名为" + item.getReportName() + "的数据存在以下问题:签字注师1被选次数大于100次");
-                                continue;
-                            }else{
-                                 if(userCountDto.getAccountantUserCount() >= 120 ){
-                                     result.add("第" + (actualIndex) + "条,报告名为" + item.getReportName() + "的数据存在以下问题:签字注师1王真的被选次数已达120次");
-                                     continue;
-                                 }
-                            }
+                        UserDTO userCountDto = iUserApi.findCountById(signatureAnnotator1);
+                        int signatureCount = Integer.parseInt(userCountDto.getSignatureCount());
+                        if (userCountDto.getAccountantUserCount() >= signatureCount ) {
+                            result.add("第" + (actualIndex) + "条,报告名为" + item.getReportName() + "的数据存在以下问题:签字注师1被选次数大于100次");
+                            continue;
                         }
                         item.setSignatureAnnotator1(signatureAnnotator1);
                         item.setSignatureAnnotator2(signatureAnnotator2);

+ 10 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/EnrollmentUserInfoAuditService.java

@@ -275,6 +275,16 @@ public class EnrollmentUserInfoAuditService extends ServiceImpl<EnrollmentUserIn
                         .eq(EnrollmentCertificateInfo::getStatus, status)
                         .set(EnrollmentCertificateInfo::getStatus, "5")
         );
+        //用户提交的资质证书通过审批,同步签字注师可签章数量
+        List<EnrollmentCertificateInfo> certList = certificateInfoService.findByUserId(userId, "5");
+
+        //6是注册会计师对应的类型值
+        boolean isSignature = certList.stream()
+                .anyMatch(c -> "6".equals(c.getType()));
+
+        if (isSignature) {
+            SpringUtil.getBean(IUserApi.class).addDefaultSignatureCount(userId);
+        }
 
         skillInfoService.update(
                 new LambdaUpdateWrapper<EnrollmentSkillInfo>()

+ 24 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -791,7 +791,6 @@ public class UserController {
                     info.setAccountantUserCount(accountantUserCount);
                 }
             }
-            result.setTotal(result.getRecords().size());
             return ResponseEntity.ok(result);
         }
     }
@@ -1886,4 +1885,28 @@ public class UserController {
         return "修改成功";
     }
 
+    /**
+     * 修改注会的可签章份数
+     */
+    @ApiLog("修改注会的可签章份数")
+    @PostMapping("updateSignatureCount")
+    public String updateSignatureCount(@RequestBody UserDTO userDTO) {
+        userService.updateSignatureCount(userDTO.getId(), userDTO.getSignatureCount());
+        return "修改成功";
+    }
+
+    /**
+     * 根据签字注师id查询签章份数
+     *
+     * @param id
+     * @return
+     */
+    @ApiLog("根据签字注师id查询签章份数")
+    @GetMapping("findCountById")
+    public ResponseEntity findCountById(String id) {
+        UserDTO dto = userService.findCountById(id);
+        return ResponseEntity.ok(dto);
+    }
+
+
 }

+ 36 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/domain/UserSignatureInfo.java

@@ -0,0 +1,36 @@
+/**
+ * Copyright &copy; 2021-2026 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.sys.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 注会签章信息表
+ *
+ * @author jeeplus
+ * @version 2021-12-05
+ */
+@Data
+@TableName("sys_signature_info")
+public class UserSignatureInfo extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 可签章次数
+     */
+    private String signatureCount;
+
+    /**
+     * 用户id
+     */
+    private String userId;
+
+
+}

+ 6 - 14
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/feign/UserApiImpl.java

@@ -373,20 +373,12 @@ public class UserApiImpl implements IUserApi {
         }
     }
 
-    public UserDTO getCount(String id){
-        UserDTO userDTO = userService.get(id);
-        List<UserDTO> signatureAnnotator2List = userService.getSignatureAnnotator2List(new UserDTO());
-        for (UserDTO dto : signatureAnnotator2List) {
-
-            if (userDTO.getId().equals(dto.getId())) {
-                userDTO.setAccountantUserFlag(0);
-                break;
-            } else {
-                userDTO.setAccountantUserFlag(1);
-            }
-        }
-        userDTO.setAccountantUserCount(userService.getAccountantUserCount(id));
-        return userDTO;
+    public UserDTO findCountById(String id){
+        return userService.findCountById(id);
+    }
+
+    public void addDefaultSignatureCount(String userId){
+        userService.addDefaultSignatureCount(userId);
     }
 
 }

+ 13 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserMapper.java

@@ -129,9 +129,22 @@ public interface UserMapper extends BaseMapper <User> {
     @InterceptorIgnore(tenantLine = "true")
     IPage <UserDTO> findList(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 
+    /**
+     * 获取签字注师
+     */
     @InterceptorIgnore(tenantLine = "true")
     IPage <UserDTO> findUserList(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+    /**
+     * 获取签字注师2
+     */
+    @InterceptorIgnore(tenantLine = "true")
+    IPage <UserDTO> findUserList2(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 
+    /**
+     * 获取签字注师id查询签章份数
+     */
+    @InterceptorIgnore(tenantLine = "true")
+    UserDTO findCountById(@Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 
     IPage <UserDTO> userFindPage(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 

+ 23 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserSignatureInfoMapper.java

@@ -0,0 +1,23 @@
+/**
+ * Copyright &copy; 2021-2026 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.sys.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.sys.domain.UserSignatureInfo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * MAPPER接口
+ *
+ * @author jeeplus
+ * @version 2021-05-16
+ */
+@Mapper
+public interface UserSignatureInfoMapper extends BaseMapper <UserSignatureInfo> {
+
+    void addDefaultSignatureCount(@Param("userId") String userId);
+
+    UserSignatureInfo findById(@Param("userId") String userId);
+}

+ 45 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -30,6 +30,7 @@
         <result property="officeDTO.isPublic" column="officeDTO.isPublic"/>
         <result property="officeDTO.parentIds" column="officeDTO.parentIds"/>
         <result property="otherServiceFlag" column="other_service_flag"/>
+        <result property="signatureCount" column="signatureCount"/>
         <collection property="roleDTOList" javaType="java.util.List" ofType="com.jeeplus.sys.service.dto.RoleDTO">
             <id property="id" column="roleDTO.id"/>
             <result property="name" column="roleDTO.name"/>
@@ -191,11 +192,54 @@
     </select>
 
     <!-- 签字注师查询 -->
-    <select id="findUserList" resultMap="userResult">
+    <select id="findUserList" resultType="com.jeeplus.sys.service.dto.UserDTO">
         SELECT
+        ssi.signature_count as signatureCount,
+        post2.name AS post,
         <include refid="userColumns"/>
         FROM sys_user a
+        LEFT JOIN (
+        SELECT user_post.user_id, post.name
+        FROM sys_user_post user_post
+        INNER JOIN sys_post post ON post.id = user_post.post_id
+        WHERE post.name = '签字注师2'
+        ) post2 ON post2.user_id = a.id
         left join sys_cert sc on a.id = sc.user_id and sc.del_flag = '0' and (sc.status = '5' or sc.status IS NULL)
+        left join sys_signature_info ssi on a.id = ssi.user_id and ssi.del_flag = '0'
+        <include refid="userJoins"/>
+        ${ew.customSqlSegment}
+    </select>
+    <!--签字注师2查询-->
+    <select id="findUserList2" resultType="com.jeeplus.sys.service.dto.UserDTO">
+        SELECT
+        ssi.signature_count as signatureCount,
+        <include refid="userColumns"/>
+        FROM sys_user a
+        LEFT JOIN sys_user_post AS user_post ON user_post.user_id = a.id
+        LEFT JOIN sys_post AS post ON post.id = user_post.post_id
+        left join sys_cert sc on a.id = sc.user_id and sc.del_flag = '0' and (sc.status = '5' or sc.status IS NULL)
+        left join sys_signature_info ssi on a.id = ssi.user_id and ssi.del_flag = '0'
+        <include refid="userJoins"/>
+        ${ew.customSqlSegment}
+    </select>
+    <!--签字注师2查询-->
+    <select id="findCountById" resultType="com.jeeplus.sys.service.dto.UserDTO">
+        SELECT
+        ssi.signature_count as signatureCount,
+        post2.name AS post,
+        <include refid="userColumns"/>
+        FROM sys_user a
+        LEFT JOIN (
+        SELECT user_post.user_id, post.name
+        FROM sys_user_post user_post
+        INNER JOIN sys_post post ON post.id = user_post.post_id
+        WHERE post.name = '签字注师2'
+        ) post2 ON post2.user_id = a.id
+        left join sys_cert sc on a.id = sc.user_id
+                                     and sc.del_flag = '0'
+                                     and (sc.status = '5' or sc.status IS NULL)
+                                        and sc.type = '6'
+        left join sys_signature_info ssi on a.id = ssi.user_id and ssi.del_flag = '0'
         <include refid="userJoins"/>
         ${ew.customSqlSegment}
     </select>

+ 23 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserSignatureInfoMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.sys.mapper.UserSignatureInfoMapper">
+
+
+    <insert id="addDefaultSignatureCount">
+        INSERT INTO sys_signature_info (
+            user_id,
+            signature_count
+        ) VALUES (
+         #{userId},
+         '100'
+                 )
+    </insert>
+    <select id="findById" resultType="com.jeeplus.sys.domain.UserSignatureInfo">
+        select
+            a.user_id as userId,
+            a.signature_count as signatureCount
+        from sys_signature_info a
+        where a.user_id = #{userId}
+    </select>
+
+</mapper>

+ 60 - 15
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -10,6 +10,7 @@ import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.TypeReference;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -20,29 +21,25 @@ import com.jeeplus.common.constant.CacheNames;
 import com.jeeplus.common.constant.CommonConstants;
 import com.jeeplus.common.redis.RedisUtils;
 import com.jeeplus.common.utils.RequestUtils;
+import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.flowable.feign.IHumanApi;
 import com.jeeplus.sys.domain.*;
 import com.jeeplus.sys.feign.IDictApi;
-import com.jeeplus.sys.feign.IOfficeApi;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.mapper.OfficeMapper;
+import com.jeeplus.sys.mapper.UserSignatureInfoMapper;
 import com.jeeplus.sys.mapper.UserMapper;
 import com.jeeplus.sys.service.dto.*;
 import com.jeeplus.sys.service.mapstruct.CertWrapper;
 import com.jeeplus.sys.service.mapstruct.UserWrapper;
 import com.jeeplus.sys.utils.UserUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import javax.validation.constraints.NotNull;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -74,6 +71,9 @@ public class UserService extends ServiceImpl<UserMapper, User> {
     private OfficeMapper officeMapper;
 
     @Autowired
+    private UserSignatureInfoMapper userSignatureInfoMapper;
+
+    @Autowired
     private SysConfigService sysConfigService;
 
     @Autowired
@@ -660,15 +660,50 @@ public class UserService extends ServiceImpl<UserMapper, User> {
      * @return
      */
     public IPage<UserDTO> findPage1(UserDTO dto, Page<UserDTO> page) {
-        OfficeDTO officeDTO = dto.getCompanyDTO();
-        String companyId = "";
-        if (null != officeDTO) {
-            companyId = officeDTO.getId();
+        QueryWrapper<UserDTO> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("post.NAME","签字注师2");
+        queryWrapper.eq("post.del_flag ","0");
+        queryWrapper.eq("sc.type","6");
+        if(StringUtils.isNotBlank(dto.getCompanyDTO().getId())){
+            queryWrapper.eq("a.company_id",dto.getCompanyDTO().getId());
+        }
+        IPage<UserDTO> list1 = baseMapper.findUserList2(page, queryWrapper);
+        //List<UserDTO> list1 = baseMapper.findList1(dto, companyId);
+        return list1;
+    }
+
+    /**
+     *根据签字注师id查询签章份数
+     *
+     * @param
+     * @return
+     */
+    public UserDTO findCountById(String userId) {
+        QueryWrapper<UserDTO> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("a.id",userId);
+        UserDTO result = baseMapper.findCountById(queryWrapper);
+        Integer accountantUserCount = getAccountantUserCount(result.getId());
+        result.setAccountantUserCount(accountantUserCount);
+        return result;
+    }
+
+
+    /**
+     *添加默认的签字注师1,100次可签章份数
+     *
+     * @param
+     * @return
+     */
+    public void addDefaultSignatureCount(String userId) {
+        UserSignatureInfo info = userSignatureInfoMapper.findById(userId);
+        if(info == null){
+            UserSignatureInfo userSignatureInfo = new UserSignatureInfo();
+            userSignatureInfo.setSignatureCount("100");
+            userSignatureInfo.setUserId(userId);
+            userSignatureInfo.setCreateById("1");
+            userSignatureInfo.setCreateById("1");
+            userSignatureInfoMapper.insert(userSignatureInfo);
         }
-        List<UserDTO> list1 = baseMapper.findList1(dto, companyId);
-        // 将List<UserDTO>数据设置到Page对象中
-        page.setRecords(list1);
-        return page;
     }
 
 
@@ -978,7 +1013,17 @@ public class UserService extends ServiceImpl<UserMapper, User> {
             users = Lists.newArrayList();
         }
         return users;
-
     }
 
+    /**
+     * 修改注会的可签章份数
+     */
+    public void updateSignatureCount(String id, String signatureCount) {
+            userSignatureInfoMapper.update(
+                    null,
+                    new UpdateWrapper<UserSignatureInfo>()
+                            .set("signature_count", signatureCount)
+                            .eq("user_id", id)
+            );
+    }
 }