zhuo
2025-02-24 fcedfb634d80f8d3a718649036156ae3b536ae7d
人员任职授权, 培训记录移植
已添加38个文件
1344 ■■■■■ 文件已修改
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonJobResponsibilitiesDto.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPostAuthorizationRecordDto.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonRewardPunishmentRecordDto.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonRewardPunishmentRecordExcel.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/mapper/PersonJobResponsibilitiesMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/mapper/PersonPostAuthorizationRecordMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/mapper/PersonRewardPunishmentRecordMapper.xml 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/communication-deal.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/credentials-deal.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/explain-deal.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/person-basic-info.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/person-training-record.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/person-training.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/personnel-capacity.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/super-vise-plan.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/supervision-control-sheet.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/supervision-processing-sheet.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/supervision-record.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/static/training-record.docx 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}
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();
//    }
//}
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);
    }
}
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");
        // è®¾ç½®å•元格样式
        // ä¿å­˜åˆ°ç¬¬ä¸€ä¸ªsheet中
        EasyExcel.write(response.getOutputStream())
                .head(PersonRewardPunishmentRecordExcel.class)
                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // è‡ªé€‚应列宽
                .sheet()
                .doWrite(data);
    }
}
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);// æ–°å¢žæ ¹æ®å¹´ä»½æŸ¥è¯¢
    }
}
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;
}
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;
}
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;
}
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;
}
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);
}
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);
}
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);
}
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任职人id")
    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 = "创建人id", 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;
}
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;
}
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("被任职人员id")
    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 = "更新人id",hidden = true)
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty(value = "创建人id", hidden = true)
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("理论知识考试成绩")
    private String num1;
    @ApiModelProperty("操作技能考试成绩")
    private String num2;
}
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;
}
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);
}
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);
//}
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);
}
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);
}
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å¹´MM月dd日");
        //岗位名称
        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("导出失败");
        }
    }
}
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("导出失败");
        }
    }
}
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);
    }
}
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>
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>
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>
cnas-personnel/src/main/resources/static/communication-deal.docx
Binary files differ
cnas-personnel/src/main/resources/static/credentials-deal.docx
Binary files differ
cnas-personnel/src/main/resources/static/explain-deal.docx
Binary files differ
cnas-personnel/src/main/resources/static/person-basic-info.docx
Binary files differ
cnas-personnel/src/main/resources/static/person-training-record.docx
Binary files differ
cnas-personnel/src/main/resources/static/person-training.docx
Binary files differ
cnas-personnel/src/main/resources/static/personnel-capacity.docx
Binary files differ
cnas-personnel/src/main/resources/static/super-vise-plan.docx
Binary files differ
cnas-personnel/src/main/resources/static/supervision-control-sheet.docx
Binary files differ
cnas-personnel/src/main/resources/static/supervision-processing-sheet.docx
Binary files differ
cnas-personnel/src/main/resources/static/supervision-record.docx
Binary files differ
cnas-personnel/src/main/resources/static/training-record.docx
Binary files differ