lizhenhao 2 vuotta sitten
vanhempi
commit
23d51e2049

+ 18 - 1
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -3,6 +3,7 @@
  */
 package com.jeeplus.sys.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -144,7 +145,7 @@ public class UserController {
         QueryWrapper <UserDTO> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( userDTO, UserDTO.class );
         // 管理员查询不限制
         if (!UserUtils.getCurrentUserDTO().isAdmin()) {
-            queryWrapper.ne("a.id","1");
+            queryWrapper.isNotNull("a.is_admin");
             if (ObjectUtil.isNotEmpty(userDTO)){
                 // 当不是精确的部门查询时,再添加下面的筛选条件
                 if (ObjectUtil.isNotEmpty(userDTO.getOfficeDTO())) {
@@ -192,6 +193,22 @@ public class UserController {
         return ResponseEntity.ok ( "保存用户'" + userDTO.getLoginName ( ) + "'成功!" );
     }
 
+    /**
+     * 保存人员执业资质
+     *
+     * @param userDTO
+     * @return
+     */
+    @DemoMode
+    @ApiLog("保存人员执业资质")
+    @PreAuthorize("hasAnyAuthority('sys:user:add', 'sys:user:edit')")
+    @ApiOperation(value = "保存人员执业资质")
+    @PostMapping("saveCertList")
+    public ResponseEntity saveCertList(@Valid @RequestBody UserDTO userDTO) {
+        userService.saveCertList(userDTO);
+        return ResponseEntity.ok ( "保存成功!" );
+    }
+
 
     /**
      * 用户信息显示编辑保存

+ 74 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/domain/Cert.java

@@ -0,0 +1,74 @@
+package com.jeeplus.sys.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 组织机构-人员资质-人员职业资格证
+ * @TableName sys_cert
+ */
+@Data
+@TableName("sys_cert")
+public class Cert extends BaseEntity {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 人员id
+     */
+    private String userId;
+
+    /**
+     * 证书类型
+     */
+    private String type;
+
+    /**
+     * 证书编号
+     */
+    private String no;
+
+    /**
+     * 发证机关
+     */
+    private String authorities;
+
+    /**
+     * 发证日期
+     */
+    private Date issuedDate;
+
+    /**
+     * 注册日期
+     */
+    private Date enrollDate;
+
+    /**
+     * 到期日期
+     */
+    private Date expireDate;
+
+    /**
+     * 注册证书编号
+     */
+    private String enrollCertNo;
+
+    /**
+     * 专业
+     */
+    private String profession;
+
+    /**
+     * 文件地址
+     */
+    private String fileUrl;
+
+    private static final long serialVersionUID = 1L;
+}

+ 14 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/CertMapper.java

@@ -0,0 +1,14 @@
+package com.jeeplus.sys.mapper;
+
+import com.jeeplus.sys.domain.Cert;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface CertMapper extends BaseMapper<Cert> {
+
+}
+
+
+
+

+ 46 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/CertMapper.xml

@@ -0,0 +1,46 @@
+<?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.CertMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.sys.service.dto.CertDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="type" column="type" jdbcType="VARCHAR"/>
+            <result property="no" column="no" jdbcType="VARCHAR"/>
+            <result property="authorities" column="authorities" jdbcType="VARCHAR"/>
+            <result property="issuedDate" column="issued_date" jdbcType="TIMESTAMP"/>
+            <result property="enrollDate" column="enroll_date" jdbcType="TIMESTAMP"/>
+            <result property="expireDate" column="expire_date" jdbcType="TIMESTAMP"/>
+            <result property="enrollCertNo" column="enroll_cert_no" jdbcType="VARCHAR"/>
+            <result property="profession" column="profession" jdbcType="VARCHAR"/>
+            <result property="fileUrl" column="file_url" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        cert.id,
+        cert.create_by,
+        cert.create_date,
+        cert.update_by,
+        cert.update_date,
+        cert.del_flag,
+        cert.remarks,
+        cert.user_id,
+        cert.type,
+        cert.no,
+        cert.authorities,
+        cert.issued_date,
+        cert.enroll_date,
+        cert.expire_date,
+        cert.enroll_cert_no,
+        cert.profession,
+        cert.file_url
+    </sql>
+</mapper>

+ 26 - 1
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -32,6 +32,7 @@
 			<id property="id" column="postDTO.id" />
 			<result property="name" column="postDTO.name"/>
 		</collection>
+		<collection property="certDTOList" ofType="com.jeeplus.sys.service.dto.CertDTO" column="id" select="getCertListByUserId"></collection>
 	</resultMap>
 
 	<sql id="userColumns">
@@ -64,8 +65,32 @@
     	o.parent_id AS "officeDTO.parent.id",
     	o.parent_ids AS "officeDTO.parentIds"
     </sql>
+	<sql id="Cert_Column_List">
+        cert.id,
+        cert.create_by,
+        cert.create_date,
+        cert.update_by,
+        cert.update_date,
+        cert.del_flag,
+        cert.remarks,
+        cert.user_id,
+        cert.type,
+        cert.no,
+        cert.authorities,
+        cert.issued_date,
+        cert.enroll_date,
+        cert.expire_date,
+        cert.enroll_cert_no,
+        cert.profession,
+        cert.file_url
+    </sql>
 
-
+	<select id="getCertListByUserId" resultType="com.jeeplus.sys.service.dto.CertDTO">
+		select
+		<include refid="Cert_Column_List"></include>
+		from sys_cert cert
+		where cert.del_flag = '0' and cert.user_id = #{id}
+	</select>
 
 	<sql id="userOfficeColumns">
     	a.id,

+ 22 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/CertService.java

@@ -0,0 +1,22 @@
+/**
+ * Copyright &copy; 2021-2026 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.sys.domain.Cert;
+import com.jeeplus.sys.mapper.CertMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 人员执业资格证书管理
+ */
+@Service
+@Transactional
+public class CertService extends ServiceImpl<CertMapper, Cert> {
+
+	@Autowired
+	private CertMapper certMapper;
+}

+ 33 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -6,9 +6,13 @@ package com.jeeplus.sys.service;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.jeeplus.sys.domain.Cert;
 import com.jeeplus.sys.domain.Office;
+import com.jeeplus.sys.mapper.CertMapper;
 import com.jeeplus.sys.mapper.OfficeMapper;
+import com.jeeplus.sys.service.dto.CertDTO;
 import com.jeeplus.sys.service.dto.LoginUserOnlineDTO;
+import com.jeeplus.sys.service.mapstruct.CertWrapper;
 import com.jeeplus.sys.utils.ServletUtils;
 import com.jeeplus.sys.utils.ip.AddressUtils;
 import com.jeeplus.sys.utils.ip.IpUtils;
@@ -61,6 +65,9 @@ public class UserService  extends ServiceImpl<UserMapper, User> {
 	@Autowired
 	private OfficeMapper officeMapper;
 
+	@Autowired
+	private CertService certService;
+
 	/**
 	 * 单一登录判断,是否允许登录
 	 * @return
@@ -382,4 +389,30 @@ public class UserService  extends ServiceImpl<UserMapper, User> {
 	public List<UserDTO> getUserInfoByMobile(UserDTO userDTO) {
 		return userMapper.getUserInfoByMobile(userDTO);
 	}
+
+//	保存人员执业资质
+	public void saveCertList(UserDTO userDTO) {
+		if (ObjectUtil.isNotEmpty(userDTO)) {
+			if (CollectionUtil.isNotEmpty(userDTO.getCertDTOList())) {
+				List<String> ids = userDTO.getCertDTOList().stream().filter(item -> {
+					if (com.jeeplus.sys.utils.StringUtils.isNotBlank(item.getId())) {
+						return true;
+					}
+					return false;
+				}).map(CertDTO::getId).collect(Collectors.toList());
+				if (CollectionUtil.isNotEmpty(ids)) {
+					certService.remove(new QueryWrapper<Cert>().lambda().eq(Cert::getUserId,userDTO.getId()).notIn(Cert::getId,ids));
+				}else{
+					certService.remove(new QueryWrapper<Cert>().lambda().eq(Cert::getUserId,userDTO.getId()));
+				}
+				userDTO.getCertDTOList().stream().forEach(item->{
+					Cert cert = CertWrapper.INSTANCE.toEntity(item);
+					cert.setUserId(userDTO.getId());
+					certService.saveOrUpdate(cert);
+				});
+			} else {
+				certService.remove(new QueryWrapper<Cert>().lambda().eq(Cert::getUserId,userDTO.getId()));
+			}
+		}
+	}
 }

+ 81 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/dto/CertDTO.java

@@ -0,0 +1,81 @@
+package com.jeeplus.sys.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 组织机构-人员资质-人员职业资格证
+ * @TableName sys_cert
+ */
+@Data
+public class CertDTO extends BaseDTO {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 人员id
+     */
+    private String userId;
+
+    /**
+     * 证书类型
+     */
+    private String type;
+
+    /**
+     * 证书编号
+     */
+    private String no;
+
+    /**
+     * 发证机关
+     */
+    private String authorities;
+
+    /**
+     * 发证日期
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date issuedDate;
+
+    /**
+     * 注册日期
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date enrollDate;
+
+    /**
+     * 到期日期
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date expireDate;
+
+    /**
+     * 注册证书编号
+     */
+    private String enrollCertNo;
+
+    /**
+     * 专业
+     */
+    private String profession;
+
+    /**
+     * 文件地址
+     */
+    private String fileUrl;
+
+    private static final long serialVersionUID = 1L;
+}

+ 5 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/dto/UserDTO.java

@@ -175,6 +175,11 @@ public class  UserDTO extends BaseDTO {
     private PostDTO postDTO;
 
     /**
+     * 执业资格证列表
+     */
+    private List<CertDTO> certDTOList;
+
+    /**
      * 拥有角色列表
      */
     @ApiModelProperty(hidden = true)

+ 17 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/mapstruct/CertWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.sys.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.sys.domain.Cert;
+import com.jeeplus.sys.domain.User;
+import com.jeeplus.sys.service.dto.CertDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface CertWrapper extends EntityWrapper <CertDTO, Cert> {
+    CertWrapper INSTANCE = Mappers.getMapper(CertWrapper.class);
+}