lxp
2025-03-10 ce3d6c415b1bc785635cd552203a99e22207d86d
绩效管理代码搬迁
已修改8个文件
已添加27个文件
1265 ■■■■■ 文件已修改
cnas-process/src/main/java/com/ruoyi/process/controller/EvaluateCompetentController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/EvaluateLeaderController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/dto/EvaluateGroupDto.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/EvaluateCompetentMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/EvaluateLeaderMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/EvaluateCompetent.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/EvaluateLeader.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/EvaluateCompetentService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/EvaluateLeaderService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/EvaluateCompetentServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/EvaluateLeaderServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/EvaluateCompetentMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/EvaluateLeaderMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas_server/pom.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/controller/EvaluateController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/controller/EvaluateGroupController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/dto/EvaluateGroupDto.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/mapper/EvaluateGroupMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/mapper/EvaluateMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/pojo/Evaluate.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/pojo/EvaluateGroup.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/service/EvaluateGroupService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/service/EvaluateService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/service/PerformanceShiftService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/service/impl/EvaluateGroupServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/service/impl/EvaluateServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/resources/mapper/EvaluateGroupMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/resources/mapper/EvaluateMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/EvaluateCompetentController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package com.ruoyi.process.controller;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.process.dto.EvaluateGroupDto;
import com.ruoyi.process.pojo.EvaluateCompetent;
import com.ruoyi.process.service.EvaluateCompetentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * <p>
 * ä¸»ç®¡æ‰“分 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-06-17 01:39:36
 */
@Api(tags = "绩效管理-人员考评")
@RestController
@RequestMapping("/evaluateCompetent")
public class EvaluateCompetentController {
    @Resource
    private EvaluateCompetentService evaluateCompetentService;
    @ApiOperation(value="查询主管打分")
    @GetMapping("/getEvaluateCompetent")
    @PreAuthorize("@ss.hasPermi('staffEvaluate:supervisorRate:list')")
    public Result getEvaluateCompetent(EvaluateGroupDto evaluateGroupDto)  {
        return Result.success(evaluateCompetentService.getEvaluateCompetent(evaluateGroupDto));
    }
    @ApiOperation(value="填写主管打分")
    @PostMapping("/writeEvaluateCompetent")
    public Result writeEvaluateCompetent(@RequestBody EvaluateCompetent evaluateCompetent)  {
        return Result.success(evaluateCompetentService.writeEvaluateCompetent(evaluateCompetent));
    }
    @ApiOperation(value = "导出主管打分")
    @PostMapping("/exportEvaluateCompetent")
    public void exportEvaluateCompetent(@RequestParam("month") String month, @RequestParam("name") String name, @RequestParam("departLims") String departLims, HttpServletResponse response) throws IOException {
        evaluateCompetentService.export(month, name, departLims, response);
    }
}
cnas-process/src/main/java/com/ruoyi/process/controller/EvaluateLeaderController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package com.ruoyi.process.controller;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.process.dto.EvaluateGroupDto;
import com.ruoyi.process.pojo.EvaluateLeader;
import com.ruoyi.process.service.EvaluateLeaderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * <p>
 * ç»„长打分 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-06-17 01:39:56
 */
@Api(tags = "绩效管理-人员考评")
@RestController
@RequestMapping("/evaluateLeader")
public class EvaluateLeaderController {
    @Resource
    private EvaluateLeaderService evaluateLeaderService;
    @ApiOperation(value="查询组长评分")
    @GetMapping("/getEvaluateLeader")
    @PreAuthorize("@ss.hasPermi('staffEvaluate:leaderRate:list')")
    public Result getEvaluateLeader( EvaluateGroupDto evaluateGroupDto)  {
        return Result.success(evaluateLeaderService.getEvaluateLeader(evaluateGroupDto));
    }
    @ApiOperation(value="填写组长评分")
    @PostMapping("/writeEvaluateLeader")
    public Result writeEvaluateLeader(@RequestBody EvaluateLeader evaluateLeader)  {
        return Result.success(evaluateLeaderService.writeEvaluateLeader(evaluateLeader));
    }
    @ApiOperation(value = "导出组长打分")
    @PostMapping("/exportEvaluateLeader")
    public void exportEvaluateLeader(@RequestParam("month") String month, @RequestParam("name") String name, @RequestParam("departLims") String departLims, HttpServletResponse response) throws IOException {
        evaluateLeaderService.export(month, name, departLims, response);
    }
}
cnas-process/src/main/java/com/ruoyi/process/dto/EvaluateGroupDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.ruoyi.process.dto;
import lombok.Data;
@Data
//员工互评查询条件
public class EvaluateGroupDto {
    //月份
    private String month;
    //实验室
    private String departLims;
    //人员名称
    private String name;
}
cnas-process/src/main/java/com/ruoyi/process/mapper/EvaluateCompetentMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.ruoyi.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.process.pojo.EvaluateCompetent;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * ä¸»ç®¡æ‰“分 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-06-17 01:39:36
 */
public interface EvaluateCompetentMapper extends BaseMapper<EvaluateCompetent> {
    List<EvaluateCompetent> getEvaluateCompetent(@Param("month") String month, @Param("departLims") String departLims, @Param("name") String name);
}
cnas-process/src/main/java/com/ruoyi/process/mapper/EvaluateLeaderMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.ruoyi.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.process.pojo.EvaluateLeader;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * ç»„长打分 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-06-17 01:39:56
 */
public interface EvaluateLeaderMapper extends BaseMapper<EvaluateLeader> {
    List<EvaluateLeader> getEvaluateLeader(@Param("month") String month, @Param("departLims") String departLims, @Param("name") String name);
}
cnas-process/src/main/java/com/ruoyi/process/pojo/EvaluateCompetent.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
package com.ruoyi.process.pojo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
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-06-17 01:39:36
 */
@Getter
@Setter
@TableName("evaluate_competent")
@ApiModel(value = "EvaluateCompetent对象", description = "主管打分")
public class EvaluateCompetent  {
    @TableId(value = "id", type = IdType.AUTO)
    @ExcelIgnore
    private Integer id;
    @ApiModelProperty("外键 å…³è”人员考评表id")
    @ExcelIgnore
    private Integer evaluateId;
    @TableField(exist = false, select = false)
    @ExcelProperty(value = "姓名")
    private String name;
    @TableField(exist = false,select = false)
    //实验室
    private String departLims;
    @TableField(fill = FieldFill.INSERT)
    @ExcelIgnore
    private LocalDateTime createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ExcelIgnore
    private LocalDateTime updateTime;
    @TableField(fill = FieldFill.INSERT)
    @ExcelIgnore
    private Integer createUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ExcelIgnore
    private Integer updateUser;
    @ApiModelProperty("技能水平")
    @ExcelProperty(value = {"技能水平", "20"})
    private Double skill;
    @ApiModelProperty("服从分工")
    @ExcelProperty(value = {"服从分工", "20"})
    private Double compliance;
    @ApiModelProperty("积极性")
    @ExcelProperty(value = {"积极性", "20"})
    private Double positive;
    @ApiModelProperty("5S-3定")
    @ExcelProperty(value = {"5S-3定", "10"})
    private Double tidy;
    @ApiModelProperty("规章制度")
    @ExcelProperty(value = {"规章制度", "10"})
    private Double discipline;
    @ApiModelProperty("团结协作")
    @ExcelProperty(value = {"团结协作", "10"})
    private Double solidarity;
    @ApiModelProperty("提案积分")
    @ExcelProperty(value = {"提案积分", "10"})
    private Double proposal;
    @ApiModelProperty("得分")
    @ExcelProperty(value = {"得分", "100"})
    private Double total;
}
cnas-process/src/main/java/com/ruoyi/process/pojo/EvaluateLeader.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
package com.ruoyi.process.pojo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
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-06-17 01:39:56
 */
@Getter
@Setter
@TableName("evaluate_leader")
@ApiModel(value = "EvaluateLeader对象", description = "组长打分")
public class EvaluateLeader {
    @TableId(value = "id", type = IdType.AUTO)
    @ExcelIgnore
    private Integer id;
    @ApiModelProperty("外键 å…³è”人员考评表id")
    @ExcelIgnore
    private Integer evaluateId;
    @TableField(exist = false,select = false)
    @ExcelProperty(value = "姓名")
    private String name;
    @TableField(exist = false,select = false)
    //实验室
    private String departLims;
    @TableField(fill = FieldFill.INSERT)
    @ExcelIgnore
    private LocalDateTime createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ExcelIgnore
    private LocalDateTime updateTime;
    @TableField(fill = FieldFill.INSERT)
    @ExcelIgnore
    private Integer createUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ExcelIgnore
    private Integer updateUser;
    @ApiModelProperty("工作责任心")
    @ExcelProperty(value = {"工作责任心", "25"})
    private Double responsibility;
    @ApiModelProperty("服从分工")
    @ExcelProperty(value = {"服从分工", "25"})
    private Double compliance;
    @ApiModelProperty("积极性")
    @ExcelProperty(value = {"积极性", "20"})
    private Double positive;
    @ApiModelProperty("团结同事")
    @ExcelProperty(value = {"团结同事", "10"})
    private Double solidarity;
    @ApiModelProperty("及时性")
    @ExcelProperty(value = {"试验及时性", "10"})
    private Double seasonable;
    @ApiModelProperty("准确性")
    @ExcelProperty(value = {"结果准确性", "10"})
    private Double exact;
    @ApiModelProperty("得分")
    @ExcelProperty(value = {"得分", "100"})
    private Double total;
}
cnas-process/src/main/java/com/ruoyi/process/service/EvaluateCompetentService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.process.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.process.dto.EvaluateGroupDto;
import com.ruoyi.process.pojo.EvaluateCompetent;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
public interface EvaluateCompetentService extends IService<EvaluateCompetent> {
    List<EvaluateCompetent> getEvaluateCompetent(EvaluateGroupDto evaluateGroupDto);
    Double writeEvaluateCompetent(EvaluateCompetent evaluateCompetent);
    void export(String month, String name, String departLims, HttpServletResponse response)throws IOException;
}
cnas-process/src/main/java/com/ruoyi/process/service/EvaluateLeaderService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.process.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.process.dto.EvaluateGroupDto;
import com.ruoyi.process.pojo.EvaluateLeader;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
public interface EvaluateLeaderService extends IService<EvaluateLeader> {
    /**
     * æŸ¥è¯¢ç»„长评分
     * @param evaluateGroupDto
     * @return
     */
    List<EvaluateLeader> getEvaluateLeader(EvaluateGroupDto evaluateGroupDto);
    Double writeEvaluateLeader(EvaluateLeader evaluateLeader);
    void export(String month, String name, String departLims, HttpServletResponse response) throws IOException;
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/EvaluateCompetentServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package com.ruoyi.process.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.performance.mapper.EvaluateMapper;
import com.ruoyi.performance.pojo.Evaluate;
import com.ruoyi.process.dto.EvaluateGroupDto;
import com.ruoyi.process.mapper.EvaluateCompetentMapper;
import com.ruoyi.process.pojo.EvaluateCompetent;
import com.ruoyi.process.service.EvaluateCompetentService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
 * <p>
 * ä¸»ç®¡æ‰“分 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-06-17 01:39:36
 */
@Service
public class EvaluateCompetentServiceImpl extends ServiceImpl<EvaluateCompetentMapper, EvaluateCompetent> implements EvaluateCompetentService {
    @Resource
    EvaluateCompetentMapper evaluateCompetentMapper;
    @Resource
    EvaluateMapper evaluateMapper;
    @Override
    public List<EvaluateCompetent> getEvaluateCompetent(EvaluateGroupDto evaluateGroupDto) {
        return evaluateCompetentMapper.getEvaluateCompetent(evaluateGroupDto.getMonth(), evaluateGroupDto.getDepartLims(), evaluateGroupDto.getName());
    }
    @Override
    public Double writeEvaluateCompetent(EvaluateCompetent evaluateCompetent) {
        double newTotal = evaluateCompetent.getSkill() + evaluateCompetent.getCompliance() + evaluateCompetent.getPositive() + evaluateCompetent.getTidy() + evaluateCompetent.getDiscipline() + evaluateCompetent.getSolidarity() + evaluateCompetent.getProposal();
        EvaluateCompetent evaluateCompetent1 = evaluateCompetentMapper.selectById(evaluateCompetent.getId());
        Evaluate evaluate = evaluateMapper.selectById(evaluateCompetent.getEvaluateId());
        evaluate.setScore(evaluate.getScore() - evaluateCompetent1.getTotal() * 0.5 + newTotal * 0.5);
        evaluateMapper.updateById(evaluate);
        evaluateCompetent.setTotal(newTotal);
        evaluateCompetentMapper.updateById(evaluateCompetent);
        return newTotal;
    }
    //导出
    @Override
    public void export(String month, String name, String departLims, HttpServletResponse response) throws IOException {
        List<EvaluateCompetent> evaluateCompetents = new ArrayList<EvaluateCompetent>();
        evaluateCompetents = evaluateCompetentMapper.getEvaluateCompetent(month, departLims, name);
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
        // è¿™é‡ŒURLEncoder.encode可以防止中文乱码 å½“ç„¶å’Œeasyexcel没有关系
        String fileName = URLEncoder.encode("主管打分导出", "UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        try {
            // æ–°å»ºExcelWriter
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
            WriteSheet mainSheet = EasyExcel.writerSheet(0, "主管打分导出").head(EvaluateCompetent.class).build();
            excelWriter.write(evaluateCompetents, mainSheet);
            // å…³é—­æµ
            excelWriter.finish();
        } catch (IOException e) {
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/EvaluateLeaderServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package com.ruoyi.process.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.performance.mapper.EvaluateMapper;
import com.ruoyi.performance.pojo.Evaluate;
import com.ruoyi.process.dto.EvaluateGroupDto;
import com.ruoyi.process.mapper.EvaluateLeaderMapper;
import com.ruoyi.process.pojo.EvaluateLeader;
import com.ruoyi.process.service.EvaluateLeaderService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
 * <p>
 * ç»„长打分 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-06-17 01:39:56
 */
@Service
public class EvaluateLeaderServiceImpl extends ServiceImpl<EvaluateLeaderMapper, EvaluateLeader> implements EvaluateLeaderService {
    @Resource
    EvaluateLeaderMapper evaluateLeaderMapper;
    @Resource
    EvaluateMapper evaluateMapper;
    @Override
    public List<EvaluateLeader> getEvaluateLeader(EvaluateGroupDto evaluateGroupDto) {
        return evaluateLeaderMapper.getEvaluateLeader(evaluateGroupDto.getMonth(), evaluateGroupDto.getDepartLims(), evaluateGroupDto.getName());
    }
    @Override
    public Double writeEvaluateLeader(EvaluateLeader evaluateLeader) {
        double newTotal = evaluateLeader.getSeasonable() + evaluateLeader.getExact() + evaluateLeader.getResponsibility() + evaluateLeader.getCompliance() + evaluateLeader.getPositive() + evaluateLeader.getSolidarity();
        EvaluateLeader evaluateLeader1 = evaluateLeaderMapper.selectById(evaluateLeader.getId());
        Evaluate evaluate = evaluateMapper.selectById(evaluateLeader.getEvaluateId());
        evaluate.setScore(evaluate.getScore() - evaluateLeader1.getTotal() * 0.3 + newTotal * 0.3);
        evaluateMapper.updateById(evaluate);
        evaluateLeader.setTotal(newTotal);
        evaluateLeaderMapper.updateById(evaluateLeader);
        return newTotal;
    }
    @Override
    public void export(String month, String name, String departLims, HttpServletResponse response) throws IOException {
        List<EvaluateLeader> evaluateLeaders = new ArrayList<EvaluateLeader>();
        evaluateLeaders = evaluateLeaderMapper.getEvaluateLeader(month, departLims, name);
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
        // è¿™é‡ŒURLEncoder.encode可以防止中文乱码 å½“ç„¶å’Œeasyexcel没有关系
        String fileName = URLEncoder.encode("组长打分导出", "UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        try {
            // æ–°å»ºExcelWriter
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
            WriteSheet mainSheet = EasyExcel.writerSheet(0, "组长打分导出").head(EvaluateLeader.class).build();
            excelWriter.write(evaluateLeaders, mainSheet);
            // å…³é—­æµ
            excelWriter.finish();
        } catch (IOException e) {
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-process/src/main/resources/mapper/EvaluateCompetentMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
<?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.process.mapper.EvaluateCompetentMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.EvaluateCompetent">
        <id column="id" property="id" />
        <result column="evaluate_id" property="evaluateId" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_user" property="createUser" />
        <result column="update_user" property="updateUser" />
        <result column="skill" property="skill" />
        <result column="compliance" property="compliance" />
        <result column="positive" property="positive" />
        <result column="tidy" property="tidy" />
        <result column="discipline" property="discipline" />
        <result column="solidarity" property="solidarity" />
        <result column="proposal" property="proposal" />
        <result column="total" property="total" />
        <result column="name" property="name" />
        <result column="depart_lims" property="departLims" />
    </resultMap>
    <select id="getEvaluateCompetent" resultType="com.ruoyi.process.pojo.EvaluateCompetent">
        select ec.*,u.name,
        dl.name depart_lims
        from evaluate_competent ec
        left join evaluate e on ec.evaluate_id = e.id
        left join user u on e.user_id = u.id
        left join department_lims dl on FIND_IN_SET(dl.id, depart_lims_id)
        where 1=1
        <if test="month!=null and month!=''">
            and e.month=#{month}
        </if>
        <if test="departLims!=null and departLims!=''">
            and dl.name like concat ('%',#{departLims},'%')
        </if>
        <if test="name!=null and name!=''">
            and u.name like concat ('%',#{name},'%')
        </if>
    </select>
</mapper>
cnas-process/src/main/resources/mapper/EvaluateLeaderMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
<?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.process.mapper.EvaluateLeaderMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.EvaluateLeader">
        <id column="id" property="id" />
        <result column="evaluate_id" property="evaluateId" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_user" property="createUser" />
        <result column="update_user" property="updateUser" />
        <result column="responsibility" property="responsibility" />
        <result column="compliance" property="compliance" />
        <result column="positive" property="positive" />
        <result column="solidarity" property="solidarity" />
        <result column="seasonable" property="seasonable" />
        <result column="exact" property="exact" />
        <result column="total" property="total" />
        <result column="name" property="name" />
        <result column="depart_lims" property="departLims"/>
    </resultMap>
    <select id="getEvaluateLeader" resultType="com.ruoyi.process.pojo.EvaluateLeader">
        select el.*,u.name,dl.name depart_lims
        from evaluate_leader el
        left join evaluate e on el.evaluate_id = e.id
        left join user u on e.user_id = u.id
        left join department_lims dl on FIND_IN_SET(dl.id, depart_lims_id)
        where 1=1
        <if test="month!=null and month!=''">
            and e.month=#{month}
        </if>
        <if test="departLims!=null and departLims!=''">
            and dl.name like concat ('%',#{departLims},'%')
        </if>
        <if test="name!=null and name!=''">
            and u.name like concat ('%',#{name},'%')
        </if>
    </select>
</mapper>
cnas_server/pom.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.ruoyi</groupId>
        <artifactId>ruoyi</artifactId>
        <version>3.8.9</version>
    </parent>
    <groupId>com.ruoui</groupId>
    <artifactId>cnas_server</artifactId>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>
performance-server/pom.xml
@@ -24,6 +24,10 @@
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-system</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>basic-server</artifactId>
        </dependency>
    </dependencies>
    <properties>
performance-server/src/main/java/com/ruoyi/performance/controller/EvaluateController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.ruoyi.performance.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.utils.JackSonUtil;
import com.ruoyi.performance.pojo.Evaluate;
import com.ruoyi.performance.service.EvaluateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
@Api(tags = "绩效管理-人员考评")
@RestController
@RequestMapping("/evaluate")
public class EvaluateController {
    @Resource
    private EvaluateService evaluateService;
    @ApiOperation(value = "查询考评")
    @GetMapping("/page")
    @PreAuthorize("@ss.hasPermi('staffEvaluate:evaluation:list')")
    public Result page(Page page , Evaluate evaluate) throws Exception {
        return Result.success(evaluateService.getPage(page, evaluate));
    }
    @ApiOperation(value = "导出考评")
    @PostMapping("/exportEvaluate")
    public void exportEvaluate(@RequestParam("month") String month, @RequestParam("name") String name, @RequestParam("departLims") String departLims, HttpServletResponse response) throws IOException {
        evaluateService.export(month, name, departLims, response);
    }
}
performance-server/src/main/java/com/ruoyi/performance/controller/EvaluateGroupController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.ruoyi.performance.controller;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.performance.dto.EvaluateGroupDto;
import com.ruoyi.performance.pojo.EvaluateGroup;
import com.ruoyi.performance.service.EvaluateGroupService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
 * <p>
 * å‘˜å·¥äº’评表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-06-17 01:39:45
 */
@Api(tags = "绩效管理-人员考评")
@RestController
@RequestMapping("/evaluateGroup")
public class EvaluateGroupController {
    @Resource
    private EvaluateGroupService evaluateGroupService;
    @ApiOperation(value="查询员工互评")
    @GetMapping("/getEvaluateGroup")
    @PreAuthorize("@ss.hasPermi('staffEvaluate:employeeMutualEvaluation:list')")
    public Result getEvaluateGroup(EvaluateGroupDto evaluateGroupDto)  {
        return Result.success(evaluateGroupService.getEvaluateGroup(evaluateGroupDto));
    }
    @ApiOperation(value="填写员工互评")
    @PostMapping("/writeEvaluateGroup")
    public Result writeEvaluateGroup(@RequestBody EvaluateGroup evaluateGroup)  {
        return Result.success(evaluateGroupService.writeEvaluateGroup(evaluateGroup));
    }
}
performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java
@@ -15,6 +15,7 @@
import com.ruoyi.system.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -63,13 +64,13 @@
    }
    @ApiOperation(value = "月份分页查询")
    @PostMapping("page")
    public Result<?> performanceShiftPage(Integer size, Integer current, String time, String userName, String laboratory) {
    @GetMapping("page")
    public Result<?> performanceShiftPage(@Param("size") Integer size,@Param("current") Integer current,@Param("time") String time,@Param("userName") String userName,@Param("laboratory") String laboratory) {
        return Result.success(performanceShiftService.performanceShiftPage(new Page<>(current, size), time, userName, laboratory));
    }
    @ApiOperation(value = "年份分页查询")
    @PostMapping("pageYear")
    @GetMapping("pageYear")
    public Result<?> performanceShiftPageYear(Integer size, Integer current, String time, String userName, String laboratory) {
        return Result.success(performanceShiftService.performanceShiftPageYear(new Page<>(current, size), time, userName, laboratory));
    }
@@ -111,6 +112,13 @@
        }
    }
    @ApiOperation("班次:查询人员列表")
    @GetMapping("/getUserList")
    public Result<?> getUserList(){
        return Result.success(performanceShiftService.getUserList());
    }
    @ApiOperation(value = "临时接口-添加7月份8月份的数据")
    @GetMapping("temporaryInterface")
    public void temporaryInterface() {
performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java
@@ -6,10 +6,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
@@ -35,13 +32,13 @@
    }
    @ApiOperation(value = "排班时间配置查询")
    @PostMapping("list")
    @GetMapping("list")
    public Result<?> shiftTimeList() {
        return Result.success(shiftTimeService.shiftTimeList());
    }
    @ApiOperation(value = "排班时间配置删除")
    @PostMapping("remove")
    @DeleteMapping("remove")
    public Result<?> shiftTimeRemove(Long id) {
        return Result.success(shiftTimeService.removeById(id));
    }
performance-server/src/main/java/com/ruoyi/performance/dto/EvaluateGroupDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.ruoyi.performance.dto;
import lombok.Data;
@Data
//员工互评查询条件
public class EvaluateGroupDto {
    //月份
    private String month;
    //实验室
    private String departLims;
    //人员名称
    private String name;
}
performance-server/src/main/java/com/ruoyi/performance/mapper/EvaluateGroupMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.ruoyi.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.performance.pojo.EvaluateGroup;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * å‘˜å·¥äº’评表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-06-17 01:39:45
 */
public interface EvaluateGroupMapper extends BaseMapper<EvaluateGroup> {
    List<EvaluateGroup> getEvaluateGroup(@Param("month") String month, @Param("departLims") String departLims, @Param("name") String name);
}
performance-server/src/main/java/com/ruoyi/performance/mapper/EvaluateMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.ruoyi.performance.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.performance.pojo.Evaluate;
import org.apache.ibatis.annotations.Param;
public interface EvaluateMapper extends BaseMapper<Evaluate> {
    IPage<Evaluate> getPage(@Param("page") Page page, @Param("ew") QueryWrapper<Evaluate> ew);
}
performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java
@@ -5,7 +5,7 @@
import com.ruoyi.framework.mybatis_config.MyBaseMapper;
import com.ruoyi.performance.dto.PerformanceShiftMapDto;
import com.ruoyi.performance.pojo.PerformanceShift;
import org.springframework.data.repository.query.Param;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -21,7 +21,7 @@
public interface PerformanceShiftMapper extends MyBaseMapper<PerformanceShift> {
    IPage<PerformanceShiftMapDto> performanceShiftPage(
            Page<Object> page,
            @Param("page") Page<Object> page,
            @Param("time") String time,
            @Param("userName") String userName,
            @Param("laboratory") String laboratory
@@ -31,11 +31,15 @@
                                                       @Param("userName") String userName,
                                                       @Param("laboratory") String laboratory);
    IPage<Map<String, Object>> performanceShiftYear(Page<Object> page, String time, String userName, String laboratory);
    IPage<Map<String, Object>> performanceShiftYear(Page<Object> page,@Param("time") String time,@Param("userName") String userName,@Param("laboratory") String laboratory);
    List<Map<String, Object>> performanceShiftYearList(String time, String userName, String laboratory);
    List<Map<String, Object>> performanceShiftYearList(@Param("time") String time,@Param("userName") String userName,@Param("laboratory") String laboratory);
    List<PerformanceShiftMapDto> performanceShiftList(String time, String userName, String laboratory);
    List<PerformanceShiftMapDto> performanceShiftList(@Param("time") String time, @Param("userName") String userName,@Param("laboratory") String laboratory);
    String seldepLimsId(int depLimsId);
    String selectLaboratory(Integer laboratoryId);
    List<Map<String,Object>> findUserList();
}
performance-server/src/main/java/com/ruoyi/performance/pojo/Evaluate.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package com.ruoyi.performance.pojo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
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;
@Getter
@Setter
@ApiModel(value = "Evaluate对象", description = "人员考评")
public class Evaluate {
    @TableId(value = "id", type = IdType.AUTO)
    @ExcelIgnore
    private Integer id;
    @ApiModelProperty("外键 å…³è”用户id")
    @ExcelIgnore
    private Integer userId;
    @TableField(exist = false,select = false)
    @ExcelProperty(value = "工号")
    private String account;
    @TableField(exist = false,select = false)
    @ExcelProperty(value = "姓名")
    private String name;
    @TableField(exist = false,select = false)
    //实验室
    private String departLims;
    @TableField(exist = false,select = false)
    @ExcelProperty(value = "员工互评")
    private Double groupTotal;
    @TableField(exist = false,select = false)
    @ExcelProperty(value = "员工互评")
    private Double leaderTotal;
    @TableField(exist = false,select = false)
    @ExcelProperty(value = "主管评分")
    private Double competentTotal;
    @ApiModelProperty("考评得分")
    @ExcelProperty(value = "考评得分")
    private Double score;
    @ApiModelProperty("考评等级")
    @ExcelProperty(value = "考评等级")
    private String grade;
    @ApiModelProperty("月份")
    @ExcelIgnore
    private String month;
    @TableField(fill = FieldFill.INSERT)
    @ExcelIgnore
    private LocalDateTime createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ExcelIgnore
    private LocalDateTime updateTime;
    @TableField(fill = FieldFill.INSERT)
    @ExcelIgnore
    private Integer createUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ExcelIgnore
    private Integer updateUser;
}
performance-server/src/main/java/com/ruoyi/performance/pojo/EvaluateGroup.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.ruoyi.performance.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-06-17 01:39:45
 */
@Getter
@Setter
@TableName("evaluate_group")
@ApiModel(value = "EvaluateGroup对象", description = "员工互评表")
public class EvaluateGroup {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("外键 å…³è”人员考评表id")
    private Integer evaluateId;
    @TableField(exist = false,select = false)
    private String name;
    @TableField(exist = false,select = false)
    //实验室
    private String departLims;
    @ApiModelProperty("及时性")
    private Double seasonable;
    @ApiModelProperty("准确性")
    private Double exact;
    @ApiModelProperty("操作技能")
    private Double skill;
    @ApiModelProperty("设备维护")
    private Double preserve;
    @ApiModelProperty("遵章守纪")
    private Double discipline;
    @ApiModelProperty("团结协作")
    private Double solidarity;
    @ApiModelProperty("5S-3定")
    private Double tidy;
    @ApiModelProperty("得分")
    private Double total;
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
}
performance-server/src/main/java/com/ruoyi/performance/service/EvaluateGroupService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.performance.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.performance.dto.EvaluateGroupDto;
import com.ruoyi.performance.pojo.EvaluateGroup;
import java.util.List;
public interface EvaluateGroupService extends IService<EvaluateGroup> {
    /**
     * æŸ¥è¯¢å‘˜å·¥äº’评
     * @param evaluateGroupDto
     * @return
     */
    List<EvaluateGroup> getEvaluateGroup(EvaluateGroupDto evaluateGroupDto);
    /**
     * å¡«å†™å‘˜å·¥äº’评
     * @param evaluateGroup
     * @return
     */
    Double writeEvaluateGroup(EvaluateGroup evaluateGroup);
}
performance-server/src/main/java/com/ruoyi/performance/service/EvaluateService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.performance.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.performance.pojo.Evaluate;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
public interface EvaluateService extends IService<Evaluate> {
    IPage<Evaluate> getPage(Page page, Evaluate entity);
    void export(String month, String name, String departLims, HttpServletResponse response) throws IOException;
}
performance-server/src/main/java/com/ruoyi/performance/service/PerformanceShiftService.java
@@ -6,6 +6,7 @@
import com.ruoyi.performance.dto.PerformanceShiftAddDto;
import com.ruoyi.performance.pojo.PerformanceShift;
import java.util.List;
import java.util.Map;
/**
@@ -29,4 +30,7 @@
    Map<Object, Object> exportToYearExcel(String time, String userName, String laboratory) throws Exception;
    Map<Object, Object> exportToMonthExcel(String time, String userName, String laboratory);
    Map<String, List<Map<String,Object>>> getUserList();
}
performance-server/src/main/java/com/ruoyi/performance/service/impl/EvaluateGroupServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.ruoyi.performance.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.performance.dto.EvaluateGroupDto;
import com.ruoyi.performance.mapper.EvaluateGroupMapper;
import com.ruoyi.performance.mapper.EvaluateMapper;
import com.ruoyi.performance.pojo.Evaluate;
import com.ruoyi.performance.pojo.EvaluateGroup;
import com.ruoyi.performance.service.EvaluateGroupService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * <p>
 * å‘˜å·¥äº’评表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-06-17 01:39:45
 */
@Service
public class EvaluateGroupServiceImpl extends ServiceImpl<EvaluateGroupMapper, EvaluateGroup> implements EvaluateGroupService {
    @Resource
    EvaluateGroupMapper evaluateGroupMapper;
    @Resource
    EvaluateMapper evaluateMapper;
    //查询员工互评
    @Override
    public List<EvaluateGroup> getEvaluateGroup(EvaluateGroupDto evaluateGroupDto) {
        return evaluateGroupMapper.getEvaluateGroup(evaluateGroupDto.getMonth(), evaluateGroupDto.getDepartLims(), evaluateGroupDto.getName());
    }
    //填写员工互评
    @Override
    public Double writeEvaluateGroup(EvaluateGroup evaluateGroup) {
        double newTotal = evaluateGroup.getSeasonable() + evaluateGroup.getExact() + evaluateGroup.getSkill() + evaluateGroup.getPreserve() + evaluateGroup.getDiscipline() + evaluateGroup.getSolidarity() + evaluateGroup.getTidy();
        EvaluateGroup evaluateGroup1 = evaluateGroupMapper.selectById(evaluateGroup.getId());
        Evaluate evaluate = evaluateMapper.selectById(evaluateGroup.getEvaluateId());
        evaluate.setScore(evaluate.getScore() - evaluateGroup1.getTotal()*0.2 + newTotal*0.2);
        evaluateMapper.updateById(evaluate);
        evaluateGroup.setTotal(newTotal);
        evaluateGroupMapper.updateById(evaluateGroup);
        return newTotal;
    }
}
performance-server/src/main/java/com/ruoyi/performance/service/impl/EvaluateServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
package com.ruoyi.performance.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
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.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.performance.mapper.EvaluateMapper;
import com.ruoyi.performance.pojo.Evaluate;
import com.ruoyi.performance.service.EvaluateService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class EvaluateServiceImpl extends ServiceImpl<EvaluateMapper, Evaluate> implements EvaluateService {
    @Resource
    EvaluateMapper evaluateMapper;
    @Override
    public IPage<Evaluate> getPage(Page page, Evaluate evaluate) {
        return evaluateMapper.getPage(page, QueryWrappers.queryWrappers(evaluate));
    }
    //导出考评
    @Override
    public void export(String month, String name, String departLims, HttpServletResponse response) throws IOException {
        List<Evaluate> evaluates = new ArrayList<Evaluate>();
        //查询原始工时(使用分页查询)
        Evaluate evaluate = new Evaluate();
        if (ObjectUtils.isNotEmpty(month)) {
            evaluate.setMonth(month);
        }
        if (ObjectUtils.isNotEmpty(name)) {
            evaluate.setName(name);
        }
        if (ObjectUtils.isNotEmpty(departLims)) {
            evaluate.setDepartLims(departLims);
        }
        IPage<Evaluate> body = (IPage<Evaluate>) getPage(new Page(-1, -1), evaluate);
        evaluates = body.getRecords();
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
        // è¿™é‡ŒURLEncoder.encode可以防止中文乱码 å½“ç„¶å’Œeasyexcel没有关系
        String fileName = URLEncoder.encode("考评导出", "UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        try {
            // æ–°å»ºExcelWriter
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
            WriteSheet mainSheet = EasyExcel.writerSheet(0, "考评导出").head(Evaluate.class).build();
            excelWriter.write(evaluates, mainSheet);
            // å…³é—­æµ
            excelWriter.finish();
        } catch (IOException e) {
            throw new RuntimeException("导出失败");
        }
    }
}
performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.JackSonUtil;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.performance.dto.PerformanceShiftAddDto;
import com.ruoyi.performance.dto.PerformanceShiftMapDto;
import com.ruoyi.performance.mapper.PerformanceShiftMapper;
@@ -30,6 +31,7 @@
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
import java.util.stream.Collectors;
/**
 * <p>
@@ -47,6 +49,7 @@
    @Autowired
    UserMapper userMapper;
    @Transactional(rollbackFor = Exception.class)
    @Override
@@ -133,6 +136,10 @@
    @Override
    public Map<String, Object> performanceShiftPage(Page<Object> page, String time, String userName, String laboratory) {
        String laboratoryName = "";
        if(StringUtils.isNotEmpty(laboratory)) {
            laboratoryName = baseMapper.selectLaboratory(Integer.parseInt(laboratory));
        }
        //查询当前登录人员的架构
        Integer userId = SecurityUtils.getUserId().intValue();
        //判断全部,个人,组织的权限
@@ -141,10 +148,10 @@
        String departLimsId = user.getDepartLimsId();
        if (com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")) {
            String[] split = departLimsId.split(",");
            //查询对应架构名称(通信实验室,电力实验室,检测办)
            //查询对应架构名称(通信实验室,电力实验室,检测办)  æ£€æµ‹åŠžçš„å¯ä»¥å…¨éƒ¨æŸ¥çœ‹
            String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
            if (departLims.contains("实验室")) {
                laboratory = departLims;
            if(departLims.contains("检测办") || departLims.equals(laboratoryName)) {
                    laboratory = laboratoryName;
            }
        }
        IPage<PerformanceShiftMapDto> mapIPage = baseMapper.performanceShiftPage(page, time, userName, laboratory);
@@ -427,6 +434,11 @@
        return map;
    }
    @Override
    public Map<String, List<Map<String, Object>>> getUserList() {
        return baseMapper.findUserList().stream().collect(Collectors.groupingBy(m->m.get("depName").toString()));
    }
    // èŽ·å–ä¸¤ä¸ªlocalDateTime的每一天
    public static List<LocalDateTime> getLocalDateTimesBetween(LocalDateTime start, LocalDateTime end) {
        List<LocalDateTime> localDateTimes = new ArrayList<>();
performance-server/src/main/resources/mapper/EvaluateGroupMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
<?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.performance.mapper.EvaluateGroupMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.performance.pojo.EvaluateGroup">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="depart_lims" property="departLims"/>
        <result column="evaluate_id" property="evaluateId"/>
        <result column="seasonable" property="seasonable"/>
        <result column="exact" property="exact"/>
        <result column="skill" property="skill"/>
        <result column="preserve" property="preserve"/>
        <result column="discipline" property="discipline"/>
        <result column="solidarity" property="solidarity"/>
        <result column="tidy" property="tidy"/>
        <result column="total" property="total"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="create_user" property="createUser"/>
        <result column="update_user" property="updateUser"/>
    </resultMap>
    <select id="getEvaluateGroup" resultType="com.ruoyi.performance.pojo.EvaluateGroup">
        select eg.*,u.name,dl.name depart_lims
        from evaluate_group eg
        left join evaluate e on eg.evaluate_id = e.id
        left join user u on e.user_id = u.id
        left join department_lims dl on FIND_IN_SET(dl.id, depart_lims_id)
        where 1=1
        <if test="month!=null and month!=''">
            and e.month=#{month}
        </if>
        <if test="departLims!=null and departLims!=''">
            and dl.name like concat ('%',#{departLims},'%')
        </if>
        <if test="name!=null and name!=''">
            and u.name like concat ('%',#{name},'%')
        </if>
    </select>
</mapper>
performance-server/src/main/resources/mapper/EvaluateMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
<?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.performance.mapper.EvaluateMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.performance.pojo.Evaluate">
        <id column="id" property="id"/>
        <result column="user_id" property="userId"/>
        <result column="account" property="account"/>
        <result column="name" property="name"/>
        <result column="depart_lims" property="departLims"/>
        <result column="score" property="score"/>
        <result column="grade" property="grade"/>
        <result column="month" property="month"/>
        <result column="competentTotal" property="competentTotal"/>
        <result column="groupTotal" property="groupTotal"/>
        <result column="leaderTotal" property="leaderTotal"/>
    </resultMap>
    <select id="getPage" resultType="com.ruoyi.performance.pojo.Evaluate">
        select * from(select e.*,
        account,
        u.name name,
        dl.name depart_lims,
        ec.total*0.5 competentTotal,
        eg.total*0.2 groupTotal,
        el.total*0.3 leaderTotal
        from evaluate e
        left join evaluate_competent ec on e.id = ec.evaluate_id
        left join evaluate_group eg on e.id = eg.evaluate_id
        left join evaluate_leader el on e.id = el.evaluate_id
        left join user u on e.user_id = u.id
        left join department_lims dl on  FIND_IN_SET(dl.id, depart_lims_id) ) A
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml
@@ -6,18 +6,19 @@
        <result column="name" property="name"/>
        <result column="shift_time" property="shiftTime"/>
        <result column="user_id" property="userId" />
        <result column="department" property="department" />
        <result column="dept_id" property="department" />
    </resultMap>
    <select id="performanceShiftPage" resultMap="performanceShiftPageMap">
        SELECT
        if(u2.department is not null and u2.department != '', CONCAT(u2.name, '(', u2.department, ')'), u2.name) name,
        <!--if(u2.dept_id is not null and u2.dept_id != '', CONCAT(u2.name, '(', u2.dept_id, ')'), u2.name) name,-->
        u2.name name,
        GROUP_CONCAT(s.work_time, ':', s.shift, ':', s.id order by s.work_time SEPARATOR ';') AS shift_time, u2.id user_id
        FROM performance_shift s
        LEFT JOIN (SELECT distinct u.* from
        user u
        left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id)
        where state=1
        where status=0
        <if test="laboratory != null and laboratory != ''">
          and   dl.name=#{laboratory}
        </if>
@@ -31,8 +32,8 @@
                and u2.name like concat('%', #{userName}, '%')
            </if>
        </where>
        order by s.create_time
        GROUP BY u2.id
        order by s.create_time
    </select>
    <select id="performanceShiftYearPage" resultType="map">
@@ -42,7 +43,7 @@
        LEFT JOIN (SELECT u.* from
        user u
        left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id)
        where state=1
        where status=0
        <if test="laboratory != null and laboratory != ''">
            and   dl.name=#{laboratory}
        </if>
@@ -60,7 +61,7 @@
    </select>
    <select id="performanceShiftYear" resultType="java.util.Map">
        SELECT if(u2.department is not null and u2.department != '', CONCAT(u2.name, '(', u2.department, ')'), u2.name) name,
        SELECT if(u2.dept_id is not null and u2.dept_id != '', CONCAT(u2.name, '(', u2.dept_id, ')'), u2.name) name,
        s.user_id, u2.account,
        DATE_FORMAT(s.work_time, '%c') work_time,
        GROUP_CONCAT(DATE_FORMAT(s.work_time, '%c'), ':', s.shift order by s.work_time SEPARATOR ';') month_str
@@ -68,7 +69,7 @@
        LEFT JOIN (SELECT u.* from
        user u
        left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id)
        where state=1
        where status=0
        <if test="laboratory != null and laboratory != ''">
            and   dl.name=#{laboratory}
        </if>
@@ -132,4 +133,23 @@
        from department_lims
        where id = #{depLimsId}
    </select>
    <select id="selectLaboratory" resultType="java.lang.String">
        select laboratory_name
        from laboratory
        where id = #{laboratoryId}
    </select>
    <select id="findUserList" resultType="map">
        select
            u.id,
            u.name,
            dl.name as depName
        from user u
                 left join department_lims dl
                           on FIND_IN_SET(dl.id,u.depart_lims_id)
        where dl.name in('通信产品实验室','电力产品实验室')
          and u.status = 0
          and u.is_custom = 0
    </select>
</mapper>
pom.xml
@@ -398,6 +398,7 @@
        <module>cnas-manage</module>
        <module>cnas-process</module>
        <module>cnas-require</module>
        <module>cnas_server</module>
    </modules>
    <packaging>pom</packaging>