From ce3d6c415b1bc785635cd552203a99e22207d86d Mon Sep 17 00:00:00 2001 From: lxp <1928192722@qq.com> Date: 星期一, 10 三月 2025 14:46:37 +0800 Subject: [PATCH] 绩效管理代码搬迁 --- performance-server/src/main/java/com/ruoyi/performance/controller/EvaluateController.java | 40 + cnas-process/src/main/java/com/ruoyi/process/service/EvaluateCompetentService.java | 18 cnas_server/pom.xml | 21 pom.xml | 1 cnas-process/src/main/java/com/ruoyi/process/service/impl/EvaluateCompetentServiceImpl.java | 78 +++ performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java | 14 cnas-process/src/main/java/com/ruoyi/process/controller/EvaluateCompetentController.java | 51 ++ performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml | 34 + cnas-process/src/main/java/com/ruoyi/process/controller/EvaluateLeaderController.java | 51 ++ performance-server/src/main/java/com/ruoyi/performance/mapper/EvaluateMapper.java | 13 performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java | 14 performance-server/src/main/java/com/ruoyi/performance/service/impl/EvaluateGroupServiceImpl.java | 50 ++ performance-server/src/main/java/com/ruoyi/performance/service/impl/EvaluateServiceImpl.java | 72 +++ performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java | 9 cnas-process/src/main/java/com/ruoyi/process/service/EvaluateLeaderService.java | 24 + performance-server/src/main/resources/mapper/EvaluateGroupMapper.xml | 40 + cnas-process/src/main/java/com/ruoyi/process/dto/EvaluateGroupDto.java | 17 cnas-process/src/main/resources/mapper/EvaluateCompetentMapper.xml | 42 + performance-server/src/main/java/com/ruoyi/performance/pojo/EvaluateGroup.java | 75 +++ cnas-process/src/main/java/com/ruoyi/process/mapper/EvaluateLeaderMapper.java | 20 cnas-process/src/main/java/com/ruoyi/process/pojo/EvaluateCompetent.java | 92 ++++ performance-server/src/main/java/com/ruoyi/performance/service/EvaluateService.java | 18 cnas-process/src/main/java/com/ruoyi/process/pojo/EvaluateLeader.java | 87 +++ cnas-process/src/main/resources/mapper/EvaluateLeaderMapper.xml | 40 + performance-server/pom.xml | 4 performance-server/src/main/resources/mapper/EvaluateMapper.xml | 36 + performance-server/src/main/java/com/ruoyi/performance/service/PerformanceShiftService.java | 4 cnas-process/src/main/java/com/ruoyi/process/service/impl/EvaluateLeaderServiceImpl.java | 78 +++ performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java | 18 performance-server/src/main/java/com/ruoyi/performance/dto/EvaluateGroupDto.java | 17 performance-server/src/main/java/com/ruoyi/performance/service/EvaluateGroupService.java | 24 + cnas-process/src/main/java/com/ruoyi/process/mapper/EvaluateCompetentMapper.java | 20 performance-server/src/main/java/com/ruoyi/performance/controller/EvaluateGroupController.java | 44 ++ performance-server/src/main/java/com/ruoyi/performance/mapper/EvaluateGroupMapper.java | 21 performance-server/src/main/java/com/ruoyi/performance/pojo/Evaluate.java | 78 +++ 35 files changed, 1,241 insertions(+), 24 deletions(-) diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/EvaluateCompetentController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/EvaluateCompetentController.java new file mode 100644 index 0000000..6e66ecd --- /dev/null +++ b/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); + } + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/EvaluateLeaderController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/EvaluateLeaderController.java new file mode 100644 index 0000000..aa0e26c --- /dev/null +++ b/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); + } + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/EvaluateGroupDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/EvaluateGroupDto.java new file mode 100644 index 0000000..bd14c34 --- /dev/null +++ b/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; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/EvaluateCompetentMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/EvaluateCompetentMapper.java new file mode 100644 index 0000000..0ec5590 --- /dev/null +++ b/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); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/EvaluateLeaderMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/EvaluateLeaderMapper.java new file mode 100644 index 0000000..346780e --- /dev/null +++ b/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); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/EvaluateCompetent.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/EvaluateCompetent.java new file mode 100644 index 0000000..c3f4fa7 --- /dev/null +++ b/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("澶栭敭 鍏宠仈浜哄憳鑰冭瘎琛╥d") + @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; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/EvaluateLeader.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/EvaluateLeader.java new file mode 100644 index 0000000..b9ea1c3 --- /dev/null +++ b/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("澶栭敭 鍏宠仈浜哄憳鑰冭瘎琛╥d") + @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("宸ヤ綔璐d换蹇�") + @ExcelProperty(value = {"宸ヤ綔璐d换蹇�", "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; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/EvaluateCompetentService.java b/cnas-process/src/main/java/com/ruoyi/process/service/EvaluateCompetentService.java new file mode 100644 index 0000000..6d6eff0 --- /dev/null +++ b/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; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/EvaluateLeaderService.java b/cnas-process/src/main/java/com/ruoyi/process/service/EvaluateLeaderService.java new file mode 100644 index 0000000..eaf1897 --- /dev/null +++ b/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; + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/EvaluateCompetentServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/EvaluateCompetentServiceImpl.java new file mode 100644 index 0000000..a49eef0 --- /dev/null +++ b/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鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 + 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("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/EvaluateLeaderServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/EvaluateLeaderServiceImpl.java new file mode 100644 index 0000000..0530c49 --- /dev/null +++ b/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鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 + 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("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-process/src/main/resources/mapper/EvaluateCompetentMapper.xml b/cnas-process/src/main/resources/mapper/EvaluateCompetentMapper.xml new file mode 100644 index 0000000..49b70f2 --- /dev/null +++ b/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> diff --git a/cnas-process/src/main/resources/mapper/EvaluateLeaderMapper.xml b/cnas-process/src/main/resources/mapper/EvaluateLeaderMapper.xml new file mode 100644 index 0000000..e9f40cf --- /dev/null +++ b/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> diff --git a/cnas_server/pom.xml b/cnas_server/pom.xml new file mode 100644 index 0000000..8f03484 --- /dev/null +++ b/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> diff --git a/performance-server/pom.xml b/performance-server/pom.xml index 12db53e..5952619 100644 --- a/performance-server/pom.xml +++ b/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> diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/EvaluateController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/EvaluateController.java new file mode 100644 index 0000000..3155ad6 --- /dev/null +++ b/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); + } + +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/EvaluateGroupController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/EvaluateGroupController.java new file mode 100644 index 0000000..38514b6 --- /dev/null +++ b/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)); + } + +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java index ecdabdb..e7b2064 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java +++ b/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() { diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java index 96364e1..6286cd5 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java +++ b/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)); } diff --git a/performance-server/src/main/java/com/ruoyi/performance/dto/EvaluateGroupDto.java b/performance-server/src/main/java/com/ruoyi/performance/dto/EvaluateGroupDto.java new file mode 100644 index 0000000..75a48b4 --- /dev/null +++ b/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; +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/mapper/EvaluateGroupMapper.java b/performance-server/src/main/java/com/ruoyi/performance/mapper/EvaluateGroupMapper.java new file mode 100644 index 0000000..b6eebaa --- /dev/null +++ b/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); +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/mapper/EvaluateMapper.java b/performance-server/src/main/java/com/ruoyi/performance/mapper/EvaluateMapper.java new file mode 100644 index 0000000..ec80a4f --- /dev/null +++ b/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); +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java b/performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java index 091ad29..0ce3fd7 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java +++ b/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(); } diff --git a/performance-server/src/main/java/com/ruoyi/performance/pojo/Evaluate.java b/performance-server/src/main/java/com/ruoyi/performance/pojo/Evaluate.java new file mode 100644 index 0000000..235615f --- /dev/null +++ b/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; +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/pojo/EvaluateGroup.java b/performance-server/src/main/java/com/ruoyi/performance/pojo/EvaluateGroup.java new file mode 100644 index 0000000..84b1d6c --- /dev/null +++ b/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("澶栭敭 鍏宠仈浜哄憳鑰冭瘎琛╥d") + 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; +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/EvaluateGroupService.java b/performance-server/src/main/java/com/ruoyi/performance/service/EvaluateGroupService.java new file mode 100644 index 0000000..db1a94c --- /dev/null +++ b/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); +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/EvaluateService.java b/performance-server/src/main/java/com/ruoyi/performance/service/EvaluateService.java new file mode 100644 index 0000000..77189fd --- /dev/null +++ b/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; +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/PerformanceShiftService.java b/performance-server/src/main/java/com/ruoyi/performance/service/PerformanceShiftService.java index dce8d3a..ae925b9 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/PerformanceShiftService.java +++ b/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(); + } diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/EvaluateGroupServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/EvaluateGroupServiceImpl.java new file mode 100644 index 0000000..da5fb02 --- /dev/null +++ b/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; + } +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/EvaluateServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/EvaluateServiceImpl.java new file mode 100644 index 0000000..636b574 --- /dev/null +++ b/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鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 + 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("瀵煎嚭澶辫触"); + } + } +} diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java index 966317f..5e889d8 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java +++ b/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<>(); diff --git a/performance-server/src/main/resources/mapper/EvaluateGroupMapper.xml b/performance-server/src/main/resources/mapper/EvaluateGroupMapper.xml new file mode 100644 index 0000000..caa410d --- /dev/null +++ b/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> diff --git a/performance-server/src/main/resources/mapper/EvaluateMapper.xml b/performance-server/src/main/resources/mapper/EvaluateMapper.xml new file mode 100644 index 0000000..a124d42 --- /dev/null +++ b/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> diff --git a/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml b/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml index 751ca1a..c8ff49e 100644 --- a/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml +++ b/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> diff --git a/pom.xml b/pom.xml index 4bc4e9e..614477f 100644 --- a/pom.xml +++ b/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> -- Gitblit v1.9.3