From 9be9914c0a3dca9386122927ba80e5bafa1afb99 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 14 五月 2024 15:09:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/main/java/com/mindskip/xzs/service/UserDepartMentService.java | 3
src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java | 6
src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java | 3
src/main/java/com/mindskip/xzs/domain/enums/DepartmentExamineEnum.java | 32 ++++
src/main/java/com/mindskip/xzs/controller/admin/UserController.java | 17 +-
src/main/resources/mapper/UserMapper.xml | 2
src/main/resources/mapper/UserDepartmentMapper.xml | 8 +
src/main/java/com/mindskip/xzs/service/impl/DepartmentExamineServiceImpl.java | 51 +++++++
src/main/java/com/mindskip/xzs/domain/DepartmentExamine.java | 67 +++++++++
src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java | 52 +++++++
src/main/java/com/mindskip/xzs/repository/DepartmentExamineMapper.java | 22 +++
src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java | 70 ++++++++++
src/main/java/com/mindskip/xzs/service/IDepartmentExamineService.java | 21 +++
src/main/resources/mapper/DepartmentExamineMapper.xml | 23 +++
src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java | 10 +
15 files changed, 376 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java b/src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java
new file mode 100644
index 0000000..075741a
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/controller/admin/DepartmentExamineController.java
@@ -0,0 +1,52 @@
+package com.mindskip.xzs.controller.admin;
+
+
+import com.github.pagehelper.PageInfo;
+import com.mindskip.xzs.base.BaseApiController;
+import com.mindskip.xzs.base.RestResponse;
+import com.mindskip.xzs.domain.DepartmentExamine;
+import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
+import com.mindskip.xzs.service.IDepartmentExamineService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 閮ㄩ棬瀹℃牳琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author gonghl
+ * @since 2024-05-13
+ */
+@RestController
+@RequestMapping("/api/admin/department/examine")
+@RequiredArgsConstructor
+public class DepartmentExamineController extends BaseApiController {
+
+ private final IDepartmentExamineService departmentExamineService;
+
+ @RequestMapping(value = "list", method = RequestMethod.POST)
+ public RestResponse<PageInfo<DepartmentExamineVO>> list(@RequestBody DepartmentExamineVO departmentExamineVO) {
+ return RestResponse.ok(departmentExamineService.pageInfo(departmentExamineVO));
+ }
+
+ @RequestMapping(value = "save", method = RequestMethod.POST)
+ public RestResponse<Boolean> save(@RequestBody DepartmentExamine departmentExamine) {
+ departmentExamine.setCreateTime(LocalDateTime.now());
+ departmentExamine.setCreateUser(getCurrentUser().getId());
+ return RestResponse.ok(departmentExamineService.save(departmentExamine));
+ }
+
+ @RequestMapping(value = "delete/{id}", method = RequestMethod.POST)
+ public RestResponse<Boolean> delete(@PathVariable Integer id) {
+ return RestResponse.ok(departmentExamineService.removeById(id));
+ }
+
+ @RequestMapping(value = "audit", method = RequestMethod.POST)
+ public RestResponse<Boolean> audit(@RequestBody DepartmentExamineVO departmentExamine) {
+ return RestResponse.ok(departmentExamineService.audit(departmentExamine));
+ }
+
+}
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/UserController.java b/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
index 623b48d..db30138 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/UserController.java
@@ -1,20 +1,19 @@
package com.mindskip.xzs.controller.admin;
+import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.base.BaseApiController;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.*;
-import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.domain.enums.UserStatusEnum;
+import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.domain.vo.UserVO;
import com.mindskip.xzs.repository.UserDepartmentMapper;
import com.mindskip.xzs.service.*;
import com.mindskip.xzs.utility.DateTimeUtil;
+import com.mindskip.xzs.utility.PageInfoHelper;
import com.mindskip.xzs.utility.convert.UserClassConvert;
import com.mindskip.xzs.utility.excel.ExcelUtils;
import com.mindskip.xzs.viewmodel.admin.user.*;
-import com.mindskip.xzs.utility.PageInfoHelper;
-import com.github.pagehelper.PageInfo;
-
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -58,15 +57,15 @@
UserResponseVM.from(d));
page.setList(page.getList().stream().map(e->{
List<UserDepartment> userDepartments = userDepartmentMapper.selectByUserId(e.getId());
- String deptIds = "";
+ List<Department> list = new ArrayList<>();
for (UserDepartment userDepartment : userDepartments) {
Department byId = departmentService.getById(userDepartment.getDepartmentId());
- if(byId != null){
- deptIds = deptIds + byId.getName();
- break;
+ if (ObjectUtils.isNotEmpty(byId)) {
+ list.add(byId);
}
}
- e.setDeptNames(deptIds);
+ e.setDeptNames(StringUtils.join(list.stream().map(Department::getName).collect(Collectors.toList()), ","));
+ e.setDeptIdList(list.stream().map(Department::getId).collect(Collectors.toList()));
e.setTagNames(tagService.selectTagNamesByUserId(e.getId()));
return e;
}).collect(Collectors.toList()));
diff --git a/src/main/java/com/mindskip/xzs/domain/DepartmentExamine.java b/src/main/java/com/mindskip/xzs/domain/DepartmentExamine.java
new file mode 100644
index 0000000..359307f
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/DepartmentExamine.java
@@ -0,0 +1,67 @@
+package com.mindskip.xzs.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.mindskip.xzs.domain.enums.DepartmentExamineEnum;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 閮ㄩ棬瀹℃牳琛�
+ * </p>
+ *
+ * @author gonghl
+ * @since 2024-05-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_department_examine")
+public class DepartmentExamine implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 鐢ㄦ埛id
+ */
+ private Integer userId;
+
+ /**
+ * 閮ㄩ棬id
+ */
+ private String departmentIds;
+
+ /**
+ * 鎵�鍦ㄩ儴闂�
+ */
+ private String nowDepartmentIds;
+
+ private Integer createUser;
+
+ private LocalDateTime createTime;
+
+ /**
+ * 瀹℃牳缁撴灉
+ */
+ private DepartmentExamineEnum result;
+
+ /**
+ * 瀹℃牳澶囨敞
+ */
+ private String remark;
+
+ @TableLogic
+ private Boolean deleted;
+
+
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/enums/DepartmentExamineEnum.java b/src/main/java/com/mindskip/xzs/domain/enums/DepartmentExamineEnum.java
new file mode 100644
index 0000000..1a72054
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/enums/DepartmentExamineEnum.java
@@ -0,0 +1,32 @@
+package com.mindskip.xzs.domain.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+
+/**
+ * 鐢ㄦ埛鐘舵��
+ *
+ * @author gonghl
+ */
+@Getter
+public enum DepartmentExamineEnum {
+
+ WAIT("0", "寰呭鏍�"),
+ PASS("1", "瀹℃牳閫氳繃"),
+ OVERRULE("2", "瀹℃牳椹冲洖"),
+ ;
+
+
+ @EnumValue // 鏍囨槑璇ュ瓧娈靛瓨鍏ユ暟鎹簱
+ private final String code;
+
+ @JsonValue // 鏍囨槑鍦ㄨ浆JSON鏃朵娇鐢ㄨ瀛楁锛屽嵆鍝嶅簲鏃�
+ private final String desc;
+
+ DepartmentExamineEnum(String code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java b/src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java
new file mode 100644
index 0000000..6746d9b
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/vo/DepartmentExamineVO.java
@@ -0,0 +1,70 @@
+package com.mindskip.xzs.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.mindskip.xzs.domain.enums.DepartmentExamineEnum;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 閮ㄩ棬瀹℃牳琛�
+ * </p>
+ *
+ * @author gonghl
+ * @since 2024-05-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DepartmentExamineVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Integer id;
+
+ /**
+ * 鐢ㄦ埛id
+ */
+ private Integer userId;
+ private String userName;
+
+ /**
+ * 閮ㄩ棬id
+ */
+ private String departmentIds;
+ private String departmentName;
+
+ /**
+ * 鎵�鍦ㄩ儴闂�
+ */
+ private String nowDepartmentIds;
+ private String nowDepartmentName;
+
+ private Integer createUser;
+ private String createUserName;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ /**
+ * 瀹℃牳缁撴灉
+ */
+ private DepartmentExamineEnum result;
+
+ /**
+ * 瀹℃牳澶囨敞
+ */
+ private String remark;
+
+ private Boolean deleted;
+
+ private Integer pageIndex;
+
+ private Integer pageSize;
+
+
+}
diff --git a/src/main/java/com/mindskip/xzs/repository/DepartmentExamineMapper.java b/src/main/java/com/mindskip/xzs/repository/DepartmentExamineMapper.java
new file mode 100644
index 0000000..63c3a02
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/repository/DepartmentExamineMapper.java
@@ -0,0 +1,22 @@
+package com.mindskip.xzs.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mindskip.xzs.domain.DepartmentExamine;
+import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 閮ㄩ棬瀹℃牳琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author gonghl
+ * @since 2024-05-13
+ */
+@Mapper
+public interface DepartmentExamineMapper extends BaseMapper<DepartmentExamine> {
+
+ List<DepartmentExamineVO> pageInfo(DepartmentExamineVO departmentExamineVO);
+}
diff --git a/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java b/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
index 2b5b30e..7dd92cc 100644
--- a/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
@@ -2,6 +2,7 @@
import com.mindskip.xzs.domain.UserDepartment;
import com.mindskip.xzs.domain.vo.BaseSelect;
+import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -22,4 +23,6 @@
void updateUserDepartMent(UserDepartment userDepartment);
List<BaseSelect> getDeptUserList(Integer deptId);
+
+ void insertBatchByDepartmentExamine(DepartmentExamineVO departmentExamine);
}
diff --git a/src/main/java/com/mindskip/xzs/service/IDepartmentExamineService.java b/src/main/java/com/mindskip/xzs/service/IDepartmentExamineService.java
new file mode 100644
index 0000000..a07ddc2
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/IDepartmentExamineService.java
@@ -0,0 +1,21 @@
+package com.mindskip.xzs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.pagehelper.PageInfo;
+import com.mindskip.xzs.domain.DepartmentExamine;
+import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
+
+/**
+ * <p>
+ * 閮ㄩ棬瀹℃牳琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author gonghl
+ * @since 2024-05-13
+ */
+public interface IDepartmentExamineService extends IService<DepartmentExamine> {
+
+ PageInfo<DepartmentExamineVO> pageInfo(DepartmentExamineVO departmentExamineVO);
+
+ Boolean audit(DepartmentExamineVO departmentExamine);
+}
diff --git a/src/main/java/com/mindskip/xzs/service/UserDepartMentService.java b/src/main/java/com/mindskip/xzs/service/UserDepartMentService.java
index bd2b247..1c5d8de 100644
--- a/src/main/java/com/mindskip/xzs/service/UserDepartMentService.java
+++ b/src/main/java/com/mindskip/xzs/service/UserDepartMentService.java
@@ -1,6 +1,7 @@
package com.mindskip.xzs.service;
import com.mindskip.xzs.domain.UserDepartment;
+import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -18,4 +19,6 @@
UserDepartment selectByUser(Integer id);
void updateUserDepartMent(UserDepartment userDepartment);
+
+ void insertBatchByDepartmentExamine(DepartmentExamineVO departmentExamine);
}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/DepartmentExamineServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/DepartmentExamineServiceImpl.java
new file mode 100644
index 0000000..c4dc2da
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/impl/DepartmentExamineServiceImpl.java
@@ -0,0 +1,51 @@
+package com.mindskip.xzs.service.impl;
+
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.mindskip.xzs.domain.DepartmentExamine;
+import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
+import com.mindskip.xzs.repository.DepartmentExamineMapper;
+import com.mindskip.xzs.service.IDepartmentExamineService;
+import com.mindskip.xzs.service.UserDepartMentService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 閮ㄩ棬瀹℃牳琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author gonghl
+ * @since 2024-05-13
+ */
+@Service
+@RequiredArgsConstructor
+public class DepartmentExamineServiceImpl extends ServiceImpl<DepartmentExamineMapper, DepartmentExamine> implements IDepartmentExamineService {
+
+ private final UserDepartMentService userDepartMentService;
+
+ @Override
+ public PageInfo<DepartmentExamineVO> pageInfo(DepartmentExamineVO departmentExamineVO) {
+ return PageHelper.startPage(departmentExamineVO.getPageIndex(), departmentExamineVO.getPageSize(), "id desc").doSelectPageInfo(() ->
+ baseMapper.pageInfo(departmentExamineVO)
+ );
+ }
+
+ @Override
+ @Transactional
+ public Boolean audit(DepartmentExamineVO departmentExamine) {
+ // 瀹℃牳閫氳繃閲嶆柊缁戝畾
+ if ("1".equals(departmentExamine.getResult().getCode())) {
+ userDepartMentService.removeByUserId(departmentExamine.getUserId());
+ userDepartMentService.insertBatchByDepartmentExamine(departmentExamine);
+ }
+ return new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(DepartmentExamine::getId, departmentExamine.getId())
+ .set(DepartmentExamine::getResult, departmentExamine.getResult())
+ .set(DepartmentExamine::getRemark, departmentExamine.getRemark())
+ .update();
+ }
+}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java
index 17ff5f9..100bd54 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java
@@ -1,6 +1,7 @@
package com.mindskip.xzs.service.impl;
import com.mindskip.xzs.domain.UserDepartment;
+import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
import com.mindskip.xzs.repository.UserDepartmentMapper;
import com.mindskip.xzs.service.UserDepartMentService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -54,5 +55,8 @@
userDepartmentMapper.updateUserDepartMent(userDepartment);
}
-
+ @Override
+ public void insertBatchByDepartmentExamine(DepartmentExamineVO departmentExamine) {
+ userDepartmentMapper.insertBatchByDepartmentExamine(departmentExamine);
+ }
}
diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java
index 0f889a7..ce8318e 100644
--- a/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java
+++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/user/UserResponseVM.java
@@ -52,6 +52,16 @@
private String conditionDetail;
+ private List<Integer> deptIdList;
+
+ public List<Integer> getDeptIdList() {
+ return deptIdList;
+ }
+
+ public void setDeptIdList(List<Integer> deptIdList) {
+ this.deptIdList = deptIdList;
+ }
+
public String getConditionDetail() {
return conditionDetail;
}
diff --git a/src/main/resources/mapper/DepartmentExamineMapper.xml b/src/main/resources/mapper/DepartmentExamineMapper.xml
new file mode 100644
index 0000000..c74b34e
--- /dev/null
+++ b/src/main/resources/mapper/DepartmentExamineMapper.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.mindskip.xzs.repository.DepartmentExamineMapper">
+
+ <select id="pageInfo" resultType="com.mindskip.xzs.domain.vo.DepartmentExamineVO">
+ SELECT a.*,
+ GROUP_CONCAT(DISTINCT b.name) as departmentName,
+ GROUP_CONCAT(DISTINCT b2.name) as nowDepartmentName,
+ c.real_name as createUserName,
+ c2.real_name as userName
+ FROM t_department_examine a
+ LEFT JOIN t_department b ON FIND_IN_SET(b.id, a.department_ids)
+ LEFT JOIN t_department b2 ON FIND_IN_SET(b2.id, a.now_department_ids)
+ left join t_user c on a.create_user = c.id and c.deleted = 0
+ left join t_user c2 on a.user_id = c2.id and c2.deleted = 0
+ where a.deleted = 0
+ <if test="userName != null">
+ and c2.real_name like concat('%', #{userName}, '%')
+ </if>
+ GROUP BY a.id, a.create_time
+ order by a.create_time desc
+ </select>
+</mapper>
diff --git a/src/main/resources/mapper/UserDepartmentMapper.xml b/src/main/resources/mapper/UserDepartmentMapper.xml
index 8f97bd9..a2f68c8 100644
--- a/src/main/resources/mapper/UserDepartmentMapper.xml
+++ b/src/main/resources/mapper/UserDepartmentMapper.xml
@@ -17,6 +17,14 @@
)
</insert>
+ <insert id="insertBatchByDepartmentExamine">
+ insert into t_user_department (user_id, department_id)
+ values
+ <foreach collection="departmentIds.split(',')" item="item" separator=",">
+ (#{userId}, #{item})
+ </foreach>
+ </insert>
+
<select id="selectByUserId" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 45aa42a..67c6b80 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -497,7 +497,7 @@
<select id="getUserByExam" resultType="com.mindskip.xzs.domain.User">
<![CDATA[
SELECT
- d.*
+ DISTINCT d.*
FROM t_exam_paper a
left join t_exam_paper_user b on a.id = b.exam_paper_id and b.deleted = 0
left join t_exam_paper_answer c on a.id = c.exam_paper_id and c.create_user = b.user_id
--
Gitblit v1.8.0