From fcedfb634d80f8d3a718649036156ae3b536ae7d Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期一, 24 二月 2025 10:37:44 +0800
Subject: [PATCH] 人员任职授权, 培训记录移植
---
cnas-personnel/src/main/resources/mapper/PersonRewardPunishmentRecordMapper.xml | 47 ++
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java | 61 ++
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java | 59 ++
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java | 113 ++++
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java | 27 +
cnas-personnel/src/main/resources/static/training-record.docx | 0
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java | 74 +++
cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonJobResponsibilitiesDto.java | 16
cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonRewardPunishmentRecordDto.java | 14
cnas-personnel/src/main/resources/static/person-training.docx | 0
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java | 36 +
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java | 78 +++
cnas-personnel/src/main/resources/static/supervision-record.docx | 0
cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonRewardPunishmentRecordExcel.java | 34 +
cnas-personnel/src/main/resources/static/supervision-processing-sheet.docx | 0
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java | 34 +
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java | 26 +
cnas-personnel/src/main/resources/static/communication-deal.docx | 0
cnas-personnel/src/main/resources/static/super-vise-plan.docx | 0
cnas-personnel/src/main/resources/static/credentials-deal.docx | 0
cnas-personnel/src/main/resources/static/person-basic-info.docx | 0
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java | 114 ++++
cnas-personnel/src/main/resources/static/person-training-record.docx | 0
cnas-personnel/src/main/resources/mapper/PersonJobResponsibilitiesMapper.xml | 24 +
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java | 31 +
cnas-personnel/src/main/resources/static/supervision-control-sheet.docx | 0
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java | 94 ++++
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java | 60 ++
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java | 20
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java | 66 ++
cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPostAuthorizationRecordDto.java | 14
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java | 132 +++++
cnas-personnel/src/main/resources/mapper/PersonPostAuthorizationRecordMapper.xml | 23 +
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java | 27 +
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java | 20
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java | 100 ++++
cnas-personnel/src/main/resources/static/explain-deal.docx | 0
cnas-personnel/src/main/resources/static/personnel-capacity.docx | 0
38 files changed, 1,344 insertions(+), 0 deletions(-)
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java
new file mode 100644
index 0000000..615af7b
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java
@@ -0,0 +1,60 @@
+package com.ruoyi.personnel.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.personnel.dto.PersonJobResponsibilitiesDto;
+import com.ruoyi.personnel.pojo.PersonJobResponsibilities;
+import com.ruoyi.personnel.service.PersonJobResponsibilitiesService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * 宀椾綅鑱岃矗 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-09 02:07:49
+ */
+@Api(tags = "浜哄憳 - 宀椾綅鑱岃矗")
+@RestController
+@RequestMapping("/personJobResponsibilities")
+public class PersonJobResponsibilitiesController {
+ @Autowired
+ private PersonJobResponsibilitiesService personJobResponsibilitiesService;
+
+ @ApiOperation(value = "鏂板/鏇存柊 宀椾綅鑱岃矗")
+ @PostMapping("/personJobResponsibilitiesSave")
+ public Result<?> personJobResponsibilitiesSave(@RequestBody PersonJobResponsibilities personJobResponsibilities) {
+ personJobResponsibilitiesService.saveOrUpdate(personJobResponsibilities);
+ return Result.success();
+ }
+
+
+ @ApiOperation(value = "鍒犻櫎 宀椾綅鑱岃矗")
+ @DeleteMapping("/personJobResponsibilitiesDelete")
+ public Result<?> personJobResponsibilitiesDelete(@RequestParam("id") Integer id) {
+ personJobResponsibilitiesService.removeById(id);
+ return Result.success();
+ }
+
+
+ @ApiOperation(value = "鏌ヨ 宀椾綅鑱岃矗")
+ @GetMapping("/personJobResponsibilitiesSelect")
+ public Result<IPage<PersonJobResponsibilitiesDto>> personJobResponsibilitiesSelect(Page page, String userId, String departmentId, String userName) {
+ IPage<PersonJobResponsibilitiesDto> iPage = personJobResponsibilitiesService.personJobResponsibilitiesSelect(page, userId, departmentId, userName);
+ return Result.success(iPage);
+ }
+
+
+ @ApiOperation(value = "瀵煎嚭浠昏亴宀椾綅璇存槑璇�")
+ @PostMapping("/exportPersonJobResponsibilities")
+ public void exportPersonJobResponsibilities(Integer id, HttpServletResponse response){
+ personJobResponsibilitiesService.exportPersonJobResponsibilities(id,response);
+ }
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java
new file mode 100644
index 0000000..b98f1de
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java
@@ -0,0 +1,94 @@
+//package com.ruoyi.personnel.controller;
+//
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.yuanchu.mom.annotation.ValueAuth;
+//import com.yuanchu.mom.common.GetLook;
+//import com.yuanchu.mom.dto.PersonPersonnelCapacityDto;
+//import com.yuanchu.mom.pojo.PersonPersonnelCapacity;
+//import com.yuanchu.mom.service.PersonPersonnelCapacityService;
+//import com.yuanchu.mom.vo.Result;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.servlet.http.HttpServletResponse;
+//import java.time.LocalDateTime;
+//
+///**
+// * <p>
+// * 浜哄憳鑳藉姏 鍓嶇鎺у埗鍣�
+// * </p>
+// *
+// * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+// * @since 2024-10-10 11:26:18
+// */
+//@Api(tags = "浜哄憳 - 浜哄憳鑳藉姏")
+//@RestController
+//@RequestMapping("/personPersonnelCapacity")
+//public class PersonPersonnelCapacityController {
+//
+// @Autowired
+// private PersonPersonnelCapacityService personPersonnelCapacityService;
+//
+//
+// @ApiOperation(value = "鏂板/鏇存柊 浜哄憳鑳藉姏")
+// @PostMapping("addOrUpdatePersonPersonnelCapacity")
+// public Result<?> addOrUpdatePersonPersonnelCapacity(@RequestBody PersonPersonnelCapacity personPersonnelCapacity) {
+// personPersonnelCapacityService.saveOrUpdate(personPersonnelCapacity);
+// return Result.success();
+// }
+//
+// @ApiOperation(value = "鍒犻櫎 浜哄憳鑳藉姏")
+// @DeleteMapping("deletePersonPersonnelCapacity")
+// public Result<?> deletePersonPersonnelCapacity(@RequestParam("id") Integer id) {
+// // 鍒犻櫎鏁版嵁
+// personPersonnelCapacityService.removeById(id);
+// return Result.success();
+// }
+//
+// @ApiOperation(value = "鏌ヨ 浜哄憳鑳藉姏")
+// @GetMapping("personPersonnelCapacityPage")
+// public Result<IPage<PersonPersonnelCapacityDto>> personPersonnelCapacityPage(Page page,
+// Integer departmentId,
+// Integer userId,
+// String userName) {
+// return Result.success(personPersonnelCapacityService.personPersonnelCapacityPage(page, departmentId, userId, userName));
+// }
+//
+// @ApiOperation(value = "纭 浜哄憳鑳藉姏")
+// @GetMapping("confirmPersonnelCapability")
+// public Result<?> confirmPersonnelCapability(@RequestParam("id") Integer id) {
+// Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+// personPersonnelCapacityService.update(Wrappers.<PersonPersonnelCapacity>lambdaUpdate()
+// .eq(PersonPersonnelCapacity::getId, id)
+// .set(PersonPersonnelCapacity::getConfirmOperatingPersonnelId, userId)
+// .set(PersonPersonnelCapacity::getConfirmDate, LocalDateTime.now()));
+// return Result.success();
+// }
+//
+// /**
+// * 瀵煎嚭浜哄憳鑳藉姏
+// * @return
+// */
+// @ValueAuth
+// @ApiOperation(value = "瀵煎嚭浜哄憳鑳藉姏")
+// @GetMapping("/exportPersonnelCapacity")
+// public void exportPersonnelCapacity(Integer id, HttpServletResponse response){
+// personPersonnelCapacityService.exportPersonnelCapacity(id, response);
+// }
+//
+// /**
+// * 鎻愪氦纭浜哄憳鑳藉姏
+// * @param personPersonnelCapacity
+// * @return
+// */
+// @ApiOperation(value = "鎻愪氦")
+// @PostMapping("submitConfirmPersonnelCapability")
+// public Result<?> submitConfirmPersonnelCapability(@RequestBody PersonPersonnelCapacity personPersonnelCapacity) {
+// personPersonnelCapacityService.submitConfirmPersonnelCapability(personPersonnelCapacity);
+// return Result.success();
+// }
+//}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java
new file mode 100644
index 0000000..c65f312
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java
@@ -0,0 +1,66 @@
+package com.ruoyi.personnel.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.FileSaveUtil;
+import com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto;
+import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord;
+import com.ruoyi.personnel.service.PersonPostAuthorizationRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * 浠昏亴鎺堟潈璁板綍 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-09 10:48:17
+ */
+@Api(tags = "浜哄憳 - 浠昏亴鎺堟潈璁板綍")
+@RestController
+@RequestMapping("/personPostAuthorizationRecord")
+public class PersonPostAuthorizationRecordController {
+
+ @Autowired
+ private PersonPostAuthorizationRecordService personPostAuthorizationRecordService;
+
+ @ApiOperation(value = "鏂板/鏇存柊 浠昏亴鎺堟潈璁板綍")
+ @PostMapping("/addOrUpdatePersonPostAuthorizationRecord")
+ public Result<?> addOrUpdatePersonPostAuthorizationRecord(@RequestBody PersonPostAuthorizationRecord personRewardPunishmentRecord) {
+ personPostAuthorizationRecordService.saveOrUpdate(personRewardPunishmentRecord);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鍒犻櫎 浠昏亴鎺堟潈璁板綍")
+ @DeleteMapping("/deletePersonPostAuthorizationRecord")
+ public Result<?> deletePersonPostAuthorizationRecord(@RequestParam("id") Integer id) {
+ // 鍒犻櫎鏂囦欢
+ PersonPostAuthorizationRecord postAuthorizationRecord = personPostAuthorizationRecordService.getById(id);
+ FileSaveUtil.DeleteFile(postAuthorizationRecord.getSystemFileName());
+ // 鍒犻櫎鏁版嵁
+ personPostAuthorizationRecordService.removeById(id);
+ return Result.success();
+ }
+
+
+ @ApiOperation(value = "鏌ヨ 浠昏亴鎺堟潈璁板綍")
+ @GetMapping("/PersonPostAuthorizationRecordPage")
+ public Result<IPage<PersonPostAuthorizationRecordDto>> PersonPostAuthorizationRecordPage(Page page,
+ Integer departLimsId,
+ Integer userId,
+ String userName) {
+ return Result.success(personPostAuthorizationRecordService.personPostAuthorizationRecordPage(page, departLimsId, userId, userName));
+ }
+
+ @ApiOperation(value = "瀵煎嚭宀椾綅鑱屼笟璧勬牸璇佷功")
+ @PostMapping("/exportPersonPostAuthorizationRecord")
+ public void exportPersonPostAuthorizationRecord(Integer id, HttpServletResponse response){
+ personPostAuthorizationRecordService.exportPersonPostAuthorizationRecord(id,response);
+ }
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java
new file mode 100644
index 0000000..72f4e43
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java
@@ -0,0 +1,100 @@
+package com.ruoyi.personnel.controller;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.personnel.dto.PersonRewardPunishmentRecordDto;
+import com.ruoyi.personnel.excel.PersonRewardPunishmentRecordExcel;
+import com.ruoyi.personnel.pojo.PersonRewardPunishmentRecord;
+import com.ruoyi.personnel.service.PersonRewardPunishmentRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.SneakyThrows;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 濂栨儵璁板綍 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-08 11:25:02
+ */
+@Api(tags = "浜哄憳 - 濂栨儵璁板綍")
+@RestController
+@RequestMapping("/personRewardPunishmentRecord")
+public class PersonRewardPunishmentRecordController {
+
+ @Autowired
+ private PersonRewardPunishmentRecordService personRewardPunishmentRecordService;
+
+ @ApiOperation(value = "鏂板/鏇存柊 濂栨儵璁板綍")
+ @PostMapping("/addOrUpdateRewardPunishment")
+ public Result<?> PersonTrainingSave(@RequestBody PersonRewardPunishmentRecord personRewardPunishmentRecord) {
+ personRewardPunishmentRecordService.saveOrUpdate(personRewardPunishmentRecord);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鍒犻櫎濂栨儵璁板綍")
+ @DeleteMapping("/deleteRewardPunishment")
+ public Result<?> deleteRewardPunishment(@RequestParam("id") Integer id) {
+ personRewardPunishmentRecordService.removeById(id);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鏌ヨ 濂栨儵璁板綍")
+ @GetMapping("/rewardPunishmentPage")
+ @SneakyThrows
+ public Result<IPage<PersonRewardPunishmentRecordDto>> rewardPunishmentPage(Page page,
+ Integer userId,
+ Integer departmentId,
+ String userName,
+ @RequestParam(value = "startTime",required = false) String startTimeStr,
+ @RequestParam(value = "endTime",required = false) String endTimeStr) {
+ Date startTime = null;
+ Date endTime = null;
+ if (StringUtils.isNotEmpty(startTimeStr) || StringUtils.isNotEmpty(endTimeStr)) {
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+ startTime = formatter.parse(startTimeStr);
+ endTime = formatter.parse(endTimeStr);
+ }
+ return Result.success(personRewardPunishmentRecordService.rewardPunishmentPage(page, userId, userName, startTime, endTime, departmentId));
+ }
+
+ @ApiOperation(value = "濂栨儵璁板綍瀵煎嚭")
+ @GetMapping("/rewardPunishmentExport")
+ public void rewardPunishmentExport(Integer userId,
+ Integer departmentId,
+ String userName,
+ @RequestParam(value = "startTime",required = false) String startTimeStr,
+ @RequestParam(value = "endTime",required = false) String endTimeStr,
+ HttpServletResponse response) throws Exception {
+ Date startTime = null;
+ Date endTime = null;
+ if (StringUtils.isNotEmpty(startTimeStr) || StringUtils.isNotEmpty(endTimeStr)) {
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+ startTime = formatter.parse(startTimeStr);
+ endTime = formatter.parse(endTimeStr);
+ }
+ List<PersonRewardPunishmentRecordExcel> data = personRewardPunishmentRecordService.rewardPunishmentExport(userId, departmentId, userName, startTime, endTime);
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setHeader("requestType", "excel");
+ response.setHeader("Access-Control-Expose-Headers", "requestType");
+ // 璁剧疆鍗曞厓鏍兼牱寮�
+ // 淇濆瓨鍒扮涓�涓猻heet涓�
+ EasyExcel.write(response.getOutputStream())
+ .head(PersonRewardPunishmentRecordExcel.class)
+ .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 鑷�傚簲鍒楀
+ .sheet()
+ .doWrite(data);
+ }
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java
new file mode 100644
index 0000000..5385869
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java
@@ -0,0 +1,59 @@
+package com.ruoyi.personnel.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.personnel.dto.PersonTrainingRecordListDto;
+import com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto;
+import com.ruoyi.personnel.service.PersonTrainingRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * 鍩硅璁″垝 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-11 01:11:49
+ */
+@Api(tags = "浜哄憳 - 鍩硅璁板綍")
+@RestController
+@RequestMapping("/personTrainingRecord")
+public class PersonTrainingRecordController {
+
+ @Autowired
+ private PersonTrainingRecordService personTrainingRecordService;
+
+ @ApiOperation(value = "鏌ヨ浜哄憳 鍩硅璁板綍")
+ @GetMapping("trainingSelectTrainingRecord")
+ public Result<IPage<PersonTrainingRecordListDto>> trainingSelectTrainingRecord(Page page, String userName, Integer userId, Integer departmentId) {
+ IPage<PersonTrainingRecordListDto> iPage = personTrainingRecordService.personnelTrainingPersonnel(page, userName, userId, departmentId);
+ return Result.success(iPage);
+ }
+
+
+ @ApiOperation(value = "鏌ヨ浜哄憳鏄庣粏 鍩硅璁板綍")
+ @GetMapping("queryPersonnelDetails")
+ public Result<IPage<TrainingRecordPersonDetailedDto>> queryPersonnelDetails(Page page, Integer userId, Integer trainingDate) {
+ IPage<TrainingRecordPersonDetailedDto> iPage = personTrainingRecordService.queryPersonnelDetailsOfUserIdAndYear(page, userId, trainingDate); // 鏂板鏍规嵁骞翠唤鏌ヨ
+ return Result.success(iPage);
+ }
+
+ /**
+ * 瀵煎嚭浜哄憳鍩硅璁板綍
+ * @return
+ */
+ @ApiOperation(value = "瀵煎嚭浜哄憳鍩硅璁板綍")
+ @GetMapping("/exportTrainingRecord")
+ public void exportTrainingRecord(Integer userId, Integer trainingDate, HttpServletResponse response){
+ personTrainingRecordService.exportTrainingRecordAddTrainingDate(userId, trainingDate, response);// 鏂板鏍规嵁骞翠唤鏌ヨ
+
+ }
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonJobResponsibilitiesDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonJobResponsibilitiesDto.java
new file mode 100644
index 0000000..096f8d3
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonJobResponsibilitiesDto.java
@@ -0,0 +1,16 @@
+package com.ruoyi.personnel.dto;
+
+import com.ruoyi.personnel.pojo.PersonJobResponsibilities;
+import lombok.Data;
+
+@Data
+public class PersonJobResponsibilitiesDto extends PersonJobResponsibilities {
+
+ private String incumbentName;
+
+ private String supervisorName;
+
+ private String departLimsName;
+
+ private String account;
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPostAuthorizationRecordDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPostAuthorizationRecordDto.java
new file mode 100644
index 0000000..33dd76c
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPostAuthorizationRecordDto.java
@@ -0,0 +1,14 @@
+package com.ruoyi.personnel.dto;
+
+import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord;
+import lombok.Data;
+
+@Data
+public class PersonPostAuthorizationRecordDto extends PersonPostAuthorizationRecord {
+
+ private String userName;
+
+ private String account;
+
+ private String createUserName;
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonRewardPunishmentRecordDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonRewardPunishmentRecordDto.java
new file mode 100644
index 0000000..5be270b
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonRewardPunishmentRecordDto.java
@@ -0,0 +1,14 @@
+package com.ruoyi.personnel.dto;
+
+import com.ruoyi.personnel.pojo.PersonRewardPunishmentRecord;
+import lombok.Data;
+
+@Data
+public class PersonRewardPunishmentRecordDto extends PersonRewardPunishmentRecord {
+
+ private String userName;
+
+ private String account;
+
+ private String createUserName;
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonRewardPunishmentRecordExcel.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonRewardPunishmentRecordExcel.java
new file mode 100644
index 0000000..84456f3
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonRewardPunishmentRecordExcel.java
@@ -0,0 +1,34 @@
+package com.ruoyi.personnel.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+@Data
+public class PersonRewardPunishmentRecordExcel {
+ @ExcelProperty("鍛樺伐缂栧彿")
+ private String account;
+
+ @ExcelProperty("濮撳悕")
+ private String userName;
+
+ @ExcelProperty("濂栨儵绾у埆")
+ private String rewardPunishLevel;
+
+ @ExcelProperty("濂栨儵鍚嶇О")
+ private String rewardPunishName;
+
+ @ExcelProperty("濂栨儵鏃堕棿")
+ private String rewardPunishTime;
+
+ @ExcelProperty("濂栨儵鍗曚綅")
+ private String rewardPunishWorkUnit;
+
+ @ExcelProperty("濂栨儵鍐呭")
+ private String rewardPunishContent;
+
+ @ExcelProperty("鍒涘缓鏃堕棿")
+ private String createTime;
+
+ @ExcelProperty("鍒涘缓浜�")
+ private String createUserName;
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java
new file mode 100644
index 0000000..a46e3bf
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java
@@ -0,0 +1,20 @@
+package com.ruoyi.personnel.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.personnel.dto.PersonJobResponsibilitiesDto;
+import com.ruoyi.personnel.pojo.PersonJobResponsibilities;
+
+/**
+ * <p>
+ * 宀椾綅鑱岃矗 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-09 02:07:49
+ */
+public interface PersonJobResponsibilitiesMapper extends BaseMapper<PersonJobResponsibilities> {
+
+ IPage<PersonJobResponsibilitiesDto> personJobResponsibilitiesSelect(Page page, String userId, String departmentId, String userName);
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java
new file mode 100644
index 0000000..1121811
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java
@@ -0,0 +1,20 @@
+package com.ruoyi.personnel.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto;
+import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord;
+
+/**
+ * <p>
+ * 浠昏亴鎺堟潈璁板綍 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-09 10:48:17
+ */
+public interface PersonPostAuthorizationRecordMapper extends BaseMapper<PersonPostAuthorizationRecord> {
+
+ IPage<PersonPostAuthorizationRecordDto> personPostAuthorizationRecordPage(Page page, Integer departLimsId, Integer userId, String userName);
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java
new file mode 100644
index 0000000..a77cb79
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java
@@ -0,0 +1,26 @@
+package com.ruoyi.personnel.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.personnel.dto.PersonRewardPunishmentRecordDto;
+import com.ruoyi.personnel.excel.PersonRewardPunishmentRecordExcel;
+import com.ruoyi.personnel.pojo.PersonRewardPunishmentRecord;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 濂栨儵璁板綍 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-08 11:25:02
+ */
+public interface PersonRewardPunishmentRecordMapper extends BaseMapper<PersonRewardPunishmentRecord> {
+
+ IPage<PersonRewardPunishmentRecordDto> rewardPunishmentPage(Page page, Integer userId, String userName, Date startTime, Date endTime, Integer departmentId);
+
+ List<PersonRewardPunishmentRecordExcel> rewardPunishmentExport(Integer userId, Integer departmentId, String userName, Date startTime, Date endTime);
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java
new file mode 100644
index 0000000..55536fb
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java
@@ -0,0 +1,78 @@
+package com.ruoyi.personnel.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 宀椾綅鑱岃矗
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-09 02:07:49
+ */
+@Getter
+@Setter
+@TableName("cnas_person_job_responsibilities")
+@ApiModel(value = "PersonJobResponsibilities瀵硅薄", description = "宀椾綅鑱岃矗")
+public class PersonJobResponsibilities implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("1宀椾綅鍚嶇О")
+ private String postName;
+
+ @ApiModelProperty("1宸ヤ綔鐩爣")
+ private String jobObjective;
+
+ @ApiModelProperty("1宀椾綅鑱岃矗")
+ private String jobResponsibilities;
+
+ @ApiModelProperty("1浠昏亴浜篿d")
+ private String incumbentId;
+
+ @ApiModelProperty("1 鎻愪氦鎿嶄綔浜�")
+ private String submittingOperator;
+
+ @ApiModelProperty("1鎻愪氦鏃ユ湡")
+ private LocalDateTime submittingDate;
+
+ @ApiModelProperty("2 浠昏亴浜� 涓荤id")
+ private Integer supervisorId;
+
+ @ApiModelProperty("2 浠昏亴浜� 鎿嶄綔浜�")
+ private String incumbentOperator;
+
+ @ApiModelProperty("2 浠昏亴浜� 鏃ユ湡")
+ private LocalDateTime incumbentDate;
+
+ @ApiModelProperty("3 涓荤 鎿嶄綔浜�")
+ private String supervisorOperator;
+
+ @ApiModelProperty("3 涓荤 鏃ユ湡")
+ private LocalDateTime supervisorDate;
+
+ @ApiModelProperty(value = "鍒涘缓浜篿d", hidden = true)
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("褰撳墠鐘舵��")
+ private String currentState;
+
+ @ApiModelProperty(value = "鍒涘缓鏃ユ湡 / 鎻愪氦鏃ユ湡", hidden = true)
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("褰撳墠璐熻矗浜�")
+ private String currentResponsible;
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java
new file mode 100644
index 0000000..b7103f0
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java
@@ -0,0 +1,114 @@
+package com.ruoyi.personnel.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 浜哄憳鑳藉姏
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-10 11:26:18
+ */
+@Getter
+@Setter
+@TableName("cnas_person_personnel_capacity")
+@ApiModel(value = "PersonPersonnelCapacity瀵硅薄", description = "浜哄憳鑳藉姏")
+public class PersonPersonnelCapacity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("瀛﹀巻")
+ private String academicDegree;
+
+ @ApiModelProperty("瀛﹀巻 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)")
+ private Integer academicConformNot;
+
+ @ApiModelProperty("瀛﹀巻 澶囨敞")
+ private String academicRemarks;
+
+ @ApiModelProperty("鐩稿叧骞撮檺")
+ private String relatedYears;
+
+ @ApiModelProperty("鐩稿叧骞撮檺 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)")
+ private Integer relatedYearsConformNot;
+
+ @ApiModelProperty("鐩稿叧骞撮檺 澶囨敞")
+ private String relatedYearsRemarks;
+
+ @ApiModelProperty("鐩稿叧鍩硅")
+ private String relatedTraining;
+
+ @ApiModelProperty("鐩稿叧鍩硅 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)")
+ private Integer relatedTrainingConformNot;
+
+ @ApiModelProperty("鐩稿叧鍩硅 澶囨敞")
+ private String relatedTrainingRemarks;
+
+ @ApiModelProperty("鐩稿叧缁忛獙")
+ private String relevantExperience;
+
+ @ApiModelProperty("鐩稿叧缁忛獙 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)")
+ private Integer relevantExperienceConformNot;
+
+ @ApiModelProperty("鐩稿叧缁忛獙 澶囨敞")
+ private String relevantExperienceRemarks;
+
+ @ApiModelProperty("涓婂矖璇�")
+ private String workLicense;
+
+ @ApiModelProperty("涓婂矖璇� 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)")
+ private Integer workLicenseConformNot;
+
+ @ApiModelProperty("涓婂矖璇� 澶囨敞")
+ private String workLicenseRemarks;
+
+ @ApiModelProperty("宀椾綅鑱岃矗")
+ private String jobResponsibilities;
+
+ @ApiModelProperty("宀椾綅鑱岃矗 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)")
+ private Integer jobResponsibilitiesConformNot;
+
+ @ApiModelProperty("宀椾綅鑱岃矗 澶囨敞")
+ private String jobResponsibilitiesRemarks;
+
+ @ApiModelProperty("缁煎悎璇勪环")
+ private String comprehensiveAssessment;
+
+ @ApiModelProperty("2 纭浜� userId涓婚敭")
+ private Integer confirmOperatingPersonnelId;
+
+ @ApiModelProperty("2 纭浜� 鏃ユ湡")
+ private LocalDateTime confirmDate;
+
+ @ApiModelProperty(value = "鍒涘缓鏃ユ湡", hidden = true)
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "鏇存柊鏃ユ湡", hidden = true)
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty(value = "鍒涘缓浜�", hidden = true)
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "鏇存柊浜�", hidden = true)
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty(value = "浜哄憳濮撳悕 id")
+ private Integer userId;
+
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java
new file mode 100644
index 0000000..f341b83
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java
@@ -0,0 +1,74 @@
+package com.ruoyi.personnel.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 浠昏亴鎺堟潈璁板綍
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-09 10:48:17
+ */
+@Getter
+@Setter
+@TableName("cnas_person_post_authorization_record")
+@ApiModel(value = "PersonPostAuthorizationRecord瀵硅薄", description = "浠昏亴鎺堟潈璁板綍")
+public class PersonPostAuthorizationRecord implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("璇佷功缂栧彿")
+ private String certificateNumber;
+
+ @ApiModelProperty("琚换鑱屼汉鍛榠d")
+ private String userId;
+
+ @ApiModelProperty("浠昏亴宀椾綅")
+ private String post;
+
+ @ApiModelProperty("鎿嶄綔绫诲瀷")
+ private String operationType;
+
+ @ApiModelProperty("鍘熸枃浠跺悕绉�")
+ private String fileName;
+
+ @ApiModelProperty("绯荤粺鐢熸垚鏂囦欢鍚嶇О")
+ private String systemFileName;
+
+ @ApiModelProperty("澶囨敞")
+ private String remarks;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true)
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true)
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty(value = "鏇存柊浜篿d",hidden = true)
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty(value = "鍒涘缓浜篿d", hidden = true)
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鐞嗚鐭ヨ瘑鑰冭瘯鎴愮哗")
+ private String num1;
+
+ @ApiModelProperty("鎿嶄綔鎶�鑳借�冭瘯鎴愮哗")
+ private String num2;
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java
new file mode 100644
index 0000000..ab8bea1
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java
@@ -0,0 +1,61 @@
+package com.ruoyi.personnel.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 濂栨儵璁板綍
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-08 11:25:02
+ */
+@Getter
+@Setter
+@TableName("cnas_person_reward_punishment_record")
+@ApiModel(value = "PersonRewardPunishmentRecord瀵硅薄", description = "濂栨儵璁板綍")
+public class PersonRewardPunishmentRecord implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("涓婚敭id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("濂栨儵绾у埆")
+ private String rewardPunishLevel;
+
+ @ApiModelProperty("濂栨儵鍚嶇О")
+ private String rewardPunishName;
+
+ @ApiModelProperty("濂栨儵鏃堕棿")
+ private LocalDateTime rewardPunishTime;
+
+ @ApiModelProperty("濂栨儵鍗曚綅")
+ private String rewardPunishWorkUnit;
+
+ @ApiModelProperty("濂栨儵鍐呭")
+ private String rewardPunishContent;
+
+ @ApiModelProperty("鐢ㄦ埛id")
+ private Integer userId;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true)
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true)
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty(value = "鍒涘缓浜�", hidden = true)
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java
new file mode 100644
index 0000000..2afa074
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java
@@ -0,0 +1,27 @@
+package com.ruoyi.personnel.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.personnel.dto.PersonJobResponsibilitiesDto;
+import com.ruoyi.personnel.pojo.PersonJobResponsibilities;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * 宀椾綅鑱岃矗 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-09 02:07:49
+ */
+public interface PersonJobResponsibilitiesService extends IService<PersonJobResponsibilities> {
+
+ IPage<PersonJobResponsibilitiesDto> personJobResponsibilitiesSelect(Page page,
+ String userId,
+ String departmentId,
+ String userName);
+
+ void exportPersonJobResponsibilities(Integer id, HttpServletResponse response);
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java
new file mode 100644
index 0000000..44820ed
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java
@@ -0,0 +1,34 @@
+//package com.ruoyi.personnel.service;
+//
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.baomidou.mybatisplus.extension.service.IService;
+//import com.ruoyi.personnel.pojo.PersonPersonnelCapacity;
+//
+//import javax.servlet.http.HttpServletResponse;
+//
+///**
+// * <p>
+// * 浜哄憳鑳藉姏 鏈嶅姟绫�
+// * </p>
+// *
+// * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+// * @since 2024-10-10 11:26:18
+// */
+//public interface PersonPersonnelCapacityService extends IService<PersonPersonnelCapacity> {
+//
+// IPage<PersonPersonnelCapacityDto> personPersonnelCapacityPage(Page page, Integer departLimsId, Integer userId, String userName);
+//
+// /**
+// * 瀵煎嚭浜哄憳鑳藉姏
+// * @param id
+// * @param response
+// */
+// void exportPersonnelCapacity(Integer id, HttpServletResponse response);
+//
+// /**
+// * submitConfirmPersonnelCapability
+// * @param personPersonnelCapacity
+// */
+// void submitConfirmPersonnelCapability(PersonPersonnelCapacity personPersonnelCapacity);
+//}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java
new file mode 100644
index 0000000..3c23bfe
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java
@@ -0,0 +1,27 @@
+package com.ruoyi.personnel.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto;
+import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * 浠昏亴鎺堟潈璁板綍 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-09 10:48:17
+ */
+public interface PersonPostAuthorizationRecordService extends IService<PersonPostAuthorizationRecord> {
+
+ IPage<PersonPostAuthorizationRecordDto> personPostAuthorizationRecordPage(Page page,
+ Integer departLimsId,
+ Integer userId,
+ String userName);
+
+ void exportPersonPostAuthorizationRecord(Integer id, HttpServletResponse response);
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java
new file mode 100644
index 0000000..0f2dfdc
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java
@@ -0,0 +1,31 @@
+package com.ruoyi.personnel.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.personnel.dto.PersonRewardPunishmentRecordDto;
+import com.ruoyi.personnel.excel.PersonRewardPunishmentRecordExcel;
+import com.ruoyi.personnel.pojo.PersonRewardPunishmentRecord;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 濂栨儵璁板綍 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-08 11:25:02
+ */
+public interface PersonRewardPunishmentRecordService extends IService<PersonRewardPunishmentRecord> {
+
+ IPage<PersonRewardPunishmentRecordDto> rewardPunishmentPage(Page page,
+ Integer userId,
+ String userName,
+ Date startTime,
+ Date endTime,
+ Integer departmentId);
+
+ List<PersonRewardPunishmentRecordExcel> rewardPunishmentExport(Integer userId, Integer departmentId, String userName, Date startTime, Date endTime);
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java
new file mode 100644
index 0000000..d55a3f0
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java
@@ -0,0 +1,113 @@
+package com.ruoyi.personnel.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.config.ConfigureBuilder;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.personnel.dto.PersonJobResponsibilitiesDto;
+import com.ruoyi.personnel.mapper.PersonJobResponsibilitiesMapper;
+import com.ruoyi.personnel.pojo.PersonJobResponsibilities;
+import com.ruoyi.personnel.service.PersonJobResponsibilitiesService;
+import com.ruoyi.system.mapper.UserMapper;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+
+/**
+ * <p>
+ * 宀椾綅鑱岃矗 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-09 02:07:49
+ */
+@Service
+@AllArgsConstructor
+public class PersonJobResponsibilitiesServiceImpl extends ServiceImpl<PersonJobResponsibilitiesMapper, PersonJobResponsibilities> implements PersonJobResponsibilitiesService {
+
+ @Resource
+ private UserMapper userMapper;
+
+
+ @Override
+ public IPage<PersonJobResponsibilitiesDto> personJobResponsibilitiesSelect(Page page, String userId, String departmentId, String userName) {
+ return baseMapper.personJobResponsibilitiesSelect(page, userId, departmentId, userName);
+ }
+
+ @Override
+ public void exportPersonJobResponsibilities(Integer id, HttpServletResponse response) {
+ PersonJobResponsibilities personJobResponsibilities = baseMapper.selectById(id);
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�");
+ //宀椾綅鍚嶇О
+ String name = personJobResponsibilities.getPostName();
+ //鎵�灞為儴闂�
+ String departLims = userMapper.selectUserDepartmentLimsName(Integer.parseInt(personJobResponsibilities.getIncumbentId()));
+ //宸ヤ綔鐩爣
+ String objective = personJobResponsibilities.getJobObjective();
+ //宀椾綅鑱岃矗
+ String responsibilities = personJobResponsibilities.getJobResponsibilities();
+ //浠昏亴浜�
+ User user = userMapper.selectById(Integer.parseInt(personJobResponsibilities.getIncumbentId()));
+ String incumbent = user.getName();
+ //浠昏亴鏃堕棿
+ String incumbentDate = "";
+ if (ObjectUtils.isNotEmpty(personJobResponsibilities.getIncumbentDate())) {
+ incumbentDate = personJobResponsibilities.getIncumbentDate().format(formatter);
+ }
+ //涓荤
+ String supervisor = "";
+ if (ObjectUtils.isNotEmpty(personJobResponsibilities.getSupervisorId())) {
+ supervisor = userMapper.selectById(personJobResponsibilities.getSupervisorId()).getName();
+ }
+ //涓荤鏃堕棿
+ String supervisorDate = "";
+ if (ObjectUtils.isNotEmpty(personJobResponsibilities.getSupervisorDate())) {
+ supervisorDate = personJobResponsibilities.getSupervisorDate().format(formatter);
+ }
+
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/explain-deal.docx");
+ ConfigureBuilder builder = Configure.builder();
+ builder.useSpringEL(true);
+ String finalIncumbentDate = incumbentDate;
+ String finalSupervisor = supervisor;
+ String finalSupervisorDate = supervisorDate;
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
+ new HashMap<String, Object>() {{
+ put("name", name);
+ put("account", user.getAccount());
+ put("departLims", departLims);
+ put("objective", objective);
+ put("responsibilities", responsibilities);
+ put("incumbent", incumbent);
+ put("incumbentDate", finalIncumbentDate);
+ put("supervisor", finalSupervisor);
+ put("supervisorDate", finalSupervisorDate);
+ }});
+
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ name + "鐨勪换鑱屽矖浣嶈鏄庝功", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java
new file mode 100644
index 0000000..68f2961
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java
@@ -0,0 +1,132 @@
+package com.ruoyi.personnel.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.config.ConfigureBuilder;
+import com.deepoove.poi.data.FilePictureRenderData;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto;
+import com.ruoyi.personnel.mapper.PersonPostAuthorizationRecordMapper;
+import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord;
+import com.ruoyi.personnel.service.PersonPostAuthorizationRecordService;
+import com.ruoyi.system.mapper.UserMapper;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.util.HashMap;
+
+/**
+ * <p>
+ * 浠昏亴鎺堟潈璁板綍 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-09 10:48:17
+ */
+@Service
+public class PersonPostAuthorizationRecordServiceImpl extends ServiceImpl<PersonPostAuthorizationRecordMapper, PersonPostAuthorizationRecord> implements PersonPostAuthorizationRecordService {
+
+ @Resource
+ private UserMapper userMapper;
+
+ @Value("${file.path}")
+ private String imgUrl;
+
+ @Override
+ public IPage<PersonPostAuthorizationRecordDto> personPostAuthorizationRecordPage(Page page, Integer departLimsId, Integer userId, String userName) {
+ return baseMapper.personPostAuthorizationRecordPage(page, departLimsId, userId, userName);
+ }
+
+ @Override
+ public void exportPersonPostAuthorizationRecord(Integer id, HttpServletResponse response) {
+ PersonPostAuthorizationRecord personPostAuthorizationRecord = baseMapper.selectById(id);
+ //濮撳悕
+ User user = userMapper.selectById(personPostAuthorizationRecord.getUserId());
+ String name = user.getName();
+ //todo: 浜哄憳浠昏亴鎺堟潈璁板綍濮撳悕鑻辨枃
+// HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
+// format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
+// format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
+// StringBuilder pinyinBuilder = new StringBuilder();
+// for (int i = 0; i < name.length(); i++) {
+// char c = name.charAt(i);
+// // 鍒ゆ柇鏄惁鏄眽瀛�
+// if (Character.toString(c).matches("[\\u4E00-\\u9FFF]")) {
+// // 鑾峰彇姹夊瓧鐨勬嫾闊虫暟缁�
+// String[] pinyinArray = new String[0];
+// try {
+// pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, format);
+// } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
+//
+// }
+// if (pinyinArray!= null && pinyinArray.length > 0) {
+// pinyinBuilder.append(pinyinArray[0]);
+// }
+// } else {
+// pinyinBuilder.append(c);
+// }
+// }
+// String nameEn = pinyinBuilder.toString();
+ String nameEn = user.getNameEn();
+ //鐞嗚鐭ヨ瘑鑰冭瘯鎴愮哗
+ String num1=personPostAuthorizationRecord.getNum1();
+ //鎿嶄綔鎶�鑳借�冭瘯鎴愮哗
+ String num2=personPostAuthorizationRecord.getNum2();
+ //璇佷功缂栧彿
+ String code = personPostAuthorizationRecord.getCertificateNumber();
+ //鍙戣瘉鏃堕棿
+ LocalDateTime createTime = personPostAuthorizationRecord.getCreateTime();
+ String year = createTime.getYear() + "";
+ String mon = createTime.getMonth().getValue() + "";
+ String day = createTime.getDayOfMonth() + "";
+ //涓汉鐓х墖
+ if (ObjectUtils.isEmpty(user.getPictureUrl())) {
+ throw new ErrorException(name+"鐨勪釜浜虹収鐗囨病鏈変笂浼�");
+ }
+ String pictureUrl = user.getPictureUrl();
+
+
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/credentials-deal.docx");
+ ConfigureBuilder builder = Configure.builder();
+ builder.useSpringEL(true);
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
+ new HashMap<String, Object>() {{
+ put("name", name);
+ put("nameEn", nameEn);
+ put("num1", num1);
+ put("num2", num2);
+ put("code", code);
+ put("year", year);
+ put("mon", mon);
+ put("day", day);
+ put("writeUrl", new FilePictureRenderData(100,50,imgUrl + "/" + pictureUrl));
+ }});
+
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ name+"鐨勫矖浣嶈亴涓氳祫鏍兼寮�", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+
+ }
+}
diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java
new file mode 100644
index 0000000..9393bbd
--- /dev/null
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java
@@ -0,0 +1,36 @@
+package com.ruoyi.personnel.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.personnel.dto.PersonRewardPunishmentRecordDto;
+import com.ruoyi.personnel.excel.PersonRewardPunishmentRecordExcel;
+import com.ruoyi.personnel.mapper.PersonRewardPunishmentRecordMapper;
+import com.ruoyi.personnel.pojo.PersonRewardPunishmentRecord;
+import com.ruoyi.personnel.service.PersonRewardPunishmentRecordService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 濂栨儵璁板綍 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-10-08 11:25:02
+ */
+@Service
+public class PersonRewardPunishmentRecordServiceImpl extends ServiceImpl<PersonRewardPunishmentRecordMapper, PersonRewardPunishmentRecord> implements PersonRewardPunishmentRecordService {
+
+ @Override
+ public IPage<PersonRewardPunishmentRecordDto> rewardPunishmentPage(Page page, Integer userId, String userName, Date startTime, Date endTime, Integer departmentId) {
+ return baseMapper.rewardPunishmentPage(page, userId, userName, startTime, endTime, departmentId);
+ }
+
+ @Override
+ public List<PersonRewardPunishmentRecordExcel> rewardPunishmentExport(Integer userId, Integer departmentId, String userName, Date startTime, Date endTime) {
+ return baseMapper.rewardPunishmentExport(userId, departmentId, userName, startTime, endTime);
+ }
+}
diff --git a/cnas-personnel/src/main/resources/mapper/PersonJobResponsibilitiesMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonJobResponsibilitiesMapper.xml
new file mode 100644
index 0000000..ace613b
--- /dev/null
+++ b/cnas-personnel/src/main/resources/mapper/PersonJobResponsibilitiesMapper.xml
@@ -0,0 +1,24 @@
+<?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.ruoyi.personnel.mapper.PersonJobResponsibilitiesMapper">
+
+
+ <select id="personJobResponsibilitiesSelect" resultType="com.ruoyi.personnel.dto.PersonJobResponsibilitiesDto">
+ select cpt.*, u.name incumbent_name, su.name supervisor_name, dl.name depart_lims_name, u.account
+ from cnas_person_job_responsibilities cpt
+ left join user u on cpt.incumbent_id = u.id
+ left join user su on cpt.supervisor_id = su.id
+ left join department_lims dl on dl.id = SUBSTRING_INDEX(SUBSTRING_INDEX(u.depart_lims_id, ',', -2), ',', 1)
+ <where>
+ <if test="userId != null and userId != ''">
+ and cpt.incumbent_id = #{userId}
+ </if>
+ <if test="departmentId != null and departmentId != ''">
+ and FIND_IN_SET(#{departmentId}, u.depart_lims_id)
+ </if>
+ <if test="userName != null and userName != ''">
+ and u.name like concat('%', #{userName}, '%')
+ </if>
+ </where>
+ </select>
+</mapper>
diff --git a/cnas-personnel/src/main/resources/mapper/PersonPostAuthorizationRecordMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonPostAuthorizationRecordMapper.xml
new file mode 100644
index 0000000..bb3ef16
--- /dev/null
+++ b/cnas-personnel/src/main/resources/mapper/PersonPostAuthorizationRecordMapper.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.ruoyi.personnel.mapper.PersonPostAuthorizationRecordMapper">
+
+
+ <select id="personPostAuthorizationRecordPage" resultType="com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto">
+ select cppar.*, us.name create_user_name, u.account account, u.name user_name
+ from cnas_person_post_authorization_record cppar
+ left join user u on cppar.user_id = u.id
+ left join user us on cppar.create_user = us.id
+ <where>
+ <if test="userId != null and userId != ''">
+ and cppar.user_id = #{userId}
+ </if>
+ <if test="departLimsId != null and departLimsId != ''">
+ and FIND_IN_SET(#{departLimsId},u.depart_lims_id)
+ </if>
+ <if test="userName != null and userName != ''">
+ and u.name like concat('%', #{userName}, '%')
+ </if>
+ </where>
+ </select>
+</mapper>
diff --git a/cnas-personnel/src/main/resources/mapper/PersonRewardPunishmentRecordMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonRewardPunishmentRecordMapper.xml
new file mode 100644
index 0000000..d92a163
--- /dev/null
+++ b/cnas-personnel/src/main/resources/mapper/PersonRewardPunishmentRecordMapper.xml
@@ -0,0 +1,47 @@
+<?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.ruoyi.personnel.mapper.PersonRewardPunishmentRecordMapper">
+
+
+ <select id="rewardPunishmentPage" resultType="com.ruoyi.personnel.dto.PersonRewardPunishmentRecordDto">
+ select cprpr.*, us.name create_user_name, u.account account, u.name user_name
+ from cnas_person_reward_punishment_record cprpr
+ left join user u on cprpr.user_id = u.id
+ left join user us on cprpr.create_user = us.id
+ <where>
+ <if test="userId != null and userId != ''">
+ and cprpr.user_id = #{userId}
+ </if>
+ <if test="userName != null and userName != ''">
+ and u.name like concat('%', #{userName}, '%')
+ </if>
+ <if test="startTime != null and endTime != null">
+ AND DATE(cprpr.reward_punish_time) BETWEEN #{startTime} AND #{endTime}
+ </if>
+ <if test="departmentId != null and departmentId != ''">
+ and FIND_IN_SET(#{departmentId}, u.depart_lims_id)
+ </if>
+ </where>
+ </select>
+
+ <select id="rewardPunishmentExport" resultType="com.ruoyi.personnel.excel.PersonRewardPunishmentRecordExcel">
+ select cprpr.*, us.name create_user_name, u.account account, u.name user_name
+ from cnas_person_reward_punishment_record cprpr
+ left join user u on cprpr.user_id = u.id
+ left join user us on cprpr.create_user = us.id
+ <where>
+ <if test="userId != null and userId != ''">
+ and cprpr.user_id = #{userId}
+ </if>
+ <if test="departmentId != null and departmentId != ''">
+ and FIND_IN_SET(#{departmentId},u.depart_lims_id)
+ </if>
+ <if test="userName != null and userName != ''">
+ and u.name like concat('%', #{userName}, '%')
+ </if>
+ <if test="startTime != null and endTime != null">
+ AND DATE(cprpr.reward_punish_time) BETWEEN #{startTime} AND #{endTime}
+ </if>
+ </where>
+ </select>
+</mapper>
diff --git a/cnas-personnel/src/main/resources/static/communication-deal.docx b/cnas-personnel/src/main/resources/static/communication-deal.docx
new file mode 100644
index 0000000..9045072
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/communication-deal.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/credentials-deal.docx b/cnas-personnel/src/main/resources/static/credentials-deal.docx
new file mode 100644
index 0000000..2fda5fd
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/credentials-deal.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/explain-deal.docx b/cnas-personnel/src/main/resources/static/explain-deal.docx
new file mode 100644
index 0000000..7333bec
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/explain-deal.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/person-basic-info.docx b/cnas-personnel/src/main/resources/static/person-basic-info.docx
new file mode 100644
index 0000000..6d1739a
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/person-basic-info.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/person-training-record.docx b/cnas-personnel/src/main/resources/static/person-training-record.docx
new file mode 100644
index 0000000..3bbf0bc
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/person-training-record.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/person-training.docx b/cnas-personnel/src/main/resources/static/person-training.docx
new file mode 100644
index 0000000..0a6bf24
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/person-training.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/personnel-capacity.docx b/cnas-personnel/src/main/resources/static/personnel-capacity.docx
new file mode 100644
index 0000000..e7ad3b9
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/personnel-capacity.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/super-vise-plan.docx b/cnas-personnel/src/main/resources/static/super-vise-plan.docx
new file mode 100644
index 0000000..8e5a56f
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/super-vise-plan.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/supervision-control-sheet.docx b/cnas-personnel/src/main/resources/static/supervision-control-sheet.docx
new file mode 100644
index 0000000..dc398e3
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/supervision-control-sheet.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/supervision-processing-sheet.docx b/cnas-personnel/src/main/resources/static/supervision-processing-sheet.docx
new file mode 100644
index 0000000..16775b0
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/supervision-processing-sheet.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/supervision-record.docx b/cnas-personnel/src/main/resources/static/supervision-record.docx
new file mode 100644
index 0000000..ede4555
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/supervision-record.docx
Binary files differ
diff --git a/cnas-personnel/src/main/resources/static/training-record.docx b/cnas-personnel/src/main/resources/static/training-record.docx
new file mode 100644
index 0000000..1e6955d
--- /dev/null
+++ b/cnas-personnel/src/main/resources/static/training-record.docx
Binary files differ
--
Gitblit v1.9.3