diff --git a/.gitignore b/.gitignore
index 2d50b71580592be3d6cbddc50432821eb80ba659..1e66c539a94d3b3c846aebf332df474a4506cb45 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,15 @@
+*.env
+
+.run/
+
+redis/
+
+sql/
+
+mysql/
+
+deploy/
+
target/
# Package Files #
*.jar
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..27f2ada406831d17843bb2e8e83728a694f6921c
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,28 @@
+# 指定基础镜像
+FROM docker.1ms.run/library/openjdk:17
+
+#标签
+
+LABEL authors="hrc"
+
+# 设置代码存储目录--容器中的位置
+WORKDIR /app
+
+# 安装字体--显示图片
+#RUN apt-get update && \
+# apt-get install -y \
+# fontconfig \
+# libx11-dev \
+# libxext-dev \
+# libxrender-dev \
+# libxtst-dev \
+# libfreetype6 \
+# fonts-dejavu && \
+# apt-get clean && \
+# rm -rf /var/lib/apt/lists/*
+
+# 将本机文件复制到容器工作目录中
+COPY ./target/my-project-1.0.0-SNAPSHOT.jar .
+
+#声明容器运行时监听的端口
+EXPOSE 9090
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..c9ced6fd69c95fe58eca26b4938140457854dc5f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,81 @@
+# 自动获取构建时间和 Git 提交 ID
+BUILD_DATE=$$(date +"%Y-%m-%d-%H:%M:%S")
+GIT_COMMIT=$$(git rev-parse --short HEAD)
+
+# 镜像前缀
+IMAGE_PREFIX=registry.cn-hangzhou.aliyuncs.com/huthrc/dev
+# 镜像名称
+IMAGE_NAME=performance_api
+# 架构
+ARCH_AMD=amd
+ARCH_ARM=arm
+
+include .env
+
+# 打包
+build:
+ mvn clean -DskipTests package
+# 构建 arm镜像
+docker-arm-build: build
+ #删除旧标签
+ docker rmi ${IMAGE_PREFIX}:${IMAGE_NAME}_${ARCH_ARM} || true
+ docker rmi ${IMAGE_NAME}_${ARCH_ARM} || true
+
+ docker build \
+ --build-arg BUILD_DATE=${BUILD_DATE} \
+ --build-arg GIT_COMMIT=${GIT_COMMIT} \
+ --platform linux/arm64 \
+ -t ${IMAGE_NAME}_${ARCH_ARM} .
+ docker tag ${IMAGE_NAME}_${ARCH_ARM} ${IMAGE_PREFIX}:${IMAGE_NAME}_${ARCH_ARM}
+
+# 运行arm镜像
+docker-arm-run: docker-arm-build
+ (export IMAGE_NAME=${IMAGE_PREFIX}:${IMAGE_NAME}_${ARCH_ARM}; docker compose up)
+# arm镜像构建并且运行
+docker-arm-build-run: docker-arm-build docker-arm-run
+
+# 构建amd镜像
+docker-amd-build: build
+ #删除旧标签
+ docker rmi ${IMAGE_PREFIX}:${IMAGE_NAME}_${ARCH_AMD} || true
+ docker rmi ${IMAGE_NAME}:${ARCH_AMD} || true
+
+ docker build \
+ --build-arg BUILD_DATE=${BUILD_DATE} \
+ --build-arg GIT_COMMIT=${GIT_COMMIT} \
+ --platform linux/amd64 \
+ -t ${IMAGE_NAME}:${ARCH_AMD} .
+ docker tag ${IMAGE_NAME}:${ARCH_AMD} ${IMAGE_PREFIX}:${IMAGE_NAME}_${ARCH_AMD}
+
+# 运行amd镜像
+docker-amd-run:
+ (export IMAGE_NAME=${IMAGE_PREFIX}:${IMAGE_NAME}_${ARCH_AMD}; docker compose up)
+
+
+# amd镜像构建并且运行
+docker-amd-build-run: docker-amd-build docker-amd-run
+
+# 构建amd和arm镜像
+docker-build: docker-amd-build docker-arm-build
+
+
+# amd和arm镜像构建并且运行
+docker-build-run: docker-build docker-arm-run docker-amd-run
+
+# push 镜像
+docker-push: docker-build
+ docker push ${IMAGE_PREFIX}:${IMAGE_NAME}_${ARCH_AMD}
+ docker push ${IMAGE_PREFIX}:${IMAGE_NAME}_${ARCH_ARM}
+
+# 查看镜像架构
+docker-arch:
+ docker inspect --format='{{.Architecture}}' ${IMAGE_PREFIX}:${IMAGE_NAME}_${ARCH_AMD}
+ docker inspect --format='{{.Architecture}}' ${IMAGE_PREFIX}:${IMAGE_NAME}_${ARCH_ARM}
+
+# 查看插件的全部目标
+help:
+ mvn help:describe -Dplugin=org.springframework.boot:spring-boot-maven-plugin -Ddetail=true
+
+# 运行程序
+run:
+ set -a && source .env && set +a && mvn spring-boot:run
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..88abff562b5e7083d80aee9dbc1458ac7b53bad8
--- /dev/null
+++ b/README.md
@@ -0,0 +1,152 @@
+绩效信息化平台
+----
+
+## 项目描述
+
+该项目是前后端分离,前端使用Vue3 + elementPlus等技术,后端用SpringBoot + Camunda等技术编写的企业内部的绩效管理系统,可以更方便的
+管理企业的员工的绩效。三人合作完成,我负责后端部分。
+
+### 技术栈
+
+SpringBoot + Camunda + JWT + redis + MyBatisPlus
+
+### 功能模块
+
+1. 首页模块
+2. 部门模块
+3. 员工模块
+4. 岗位模块
+5. 权限模块
+6. 申报模块
+7. 评分模块
+8. 审批模块
+9. 归档模块
+10. 登录模块
+
+分成三大类
+
+1. 通用模块:登录模块,首页模块
+2. 基础数据相关模块:部门模块, 员工模块,岗位模块,权限模块
+3. 绩效相关模块:申报模块 评分模块 审批模块 归档模块
+
+### 线上地址
+
+http://performance.huthrc.top 或 http://pf.huthrc.top/
+
+### 我的职责
+
+1. 使用JWT生成token再结合拦截器完成员工30分钟无操作自动退出并且完成10分钟内自动续约功能
+2. 绘制BPMN流程图,使用Camunda工作引擎完成绩效审批功能
+3. 使用redis存放验证码解决跨域无法显示图片问题,存放员工权限路由提高接口请求速度
+4. 使用EasyExcel完成员工信息与绩效信息导入与导出功能
+5. 独立设计数据库并且完成RBAC权限控制功能
+6. 完成项目的前端与后端的部署,并且编写脚本简化部署流程
+
+### 我的收获
+
+1. 通过与前端搭档接口联调和编写接口文档,提高了我的合作能力
+2. 通过在IDEA中大量使用图形化git,提高了我的git使用能力
+3. 通过使用各种第三方库和debug,提高了我的编码能力
+4. 通过在Linux与windows上部署项目,提高了我的项目部署能力
+5. 通过设计40多张表,提高了我的表设计能力
+6. 通过与该公司的业务人员交流,提高了我对业务的理解与交流能力
+
+### 部署
+
+1)前端
+
+1. 通过阿里云的OSS部署 http://performance.huthrc.top
+2. 通过服务器的nginx部署 http://pf.huthrc.top/
+
+2)后端
+
+1. 通过服务器的宝塔部署java应用
+
+### 遇到的问题
+
+1. 在Controller层 private修饰的方法的Service实现类注入为空
+
+ 原因: spring aop代理的问题,无法代理private | final | static 修饰的方法
+
+ 将private方法改为public
+2. 在前端分离开发中登录验证码过期问题
+ 原因:跨域导致sessionId不一致
+
+ 解决:设置一个自定义请求头的x-request-id
+3. 自定义的header在跨域的时候前端访问不到
+
+ 原因:在使用CORS解决跨域的请求中,默认只能取到五个response header值 Content-Language Content-Type
+ Expires Last-Modified Pragma
+
+ 解决:跨域的时候后端必须设置允许暴露的请求头,且不能设置为*否则无效 https://www.cnblogs.com/younghxp/p/16693535.html
+4. 登录获取的token直接失效
+
+ 原因: jwt中的exp过期时间单位为s,代码中获取当前时间戳单位为毫秒
+
+ 解决:将两者单位统一再比较
+5. 用户使用https协议访问无法获取验证码
+
+ 原因: 前端使用http协议请求后端,而浏览器默认不允许混合使用http与https
+
+ 解决: 用户手动允许浏览器允许访问不安全内容或更换浏览器或者将前端的后端请求协议改为https
+
+### 表的优化
+
+PositionAssessor 岗位审核人表
+
+实体:岗位与员工
+
+联系: 审核
+
+关系: 多对多
+
+字段
+
+id int 业务id
+
+positionId int 岗位id
+
+assessorId int 审核人id
+
+level int 审核人级别
+
+----
+手动添加第一个根部门
+
+## RBAC
+
+- 角色表
+- 路由表
+- 按钮表
+- 用户表
+
+员工进行登录,前端会向后端请求动态路由,后端根据员工的角色返回其对应的路由与按钮,然后前端根据这些动态路由加入路由表
+
+## 审核流程
+
+1. 首先绩效专员为岗位开启这个月的绩效考核流程
+2. 其次绩效专员再为这个岗位的员工进行申报(记件,奖金)
+3. 然后岗位的负责人对员工进行评分(okr,kpi,评分)
+4. 再由审核人员对这些评分进行审核
+5. 最后由绩效专员进行归档
+
+## 请求流程
+
+1. 每次请求都会依次经过Token拦截器,权限拦截器
+2. 如果token无效或过期直接拒绝请请求,token剩余10分钟,则重新生成token
+3. 经过权限拦截器时,会首先获取请求的uri,然后根据用户的id从redis中获取该员工的权限路由
+4. 将这些权限路由与请求的uri进行匹配,如果没有则拒绝请求;
+5. 当然如果redis中没有存放该员工的权限或者已经过期,则根据员工的roleId去数据库中查询该员工的权限路由
+6. 将数据存放到redis中,然后按照刚才的步骤检查是否拒绝请求
+7. 通过拦截器之后就根据请求的uri进入对应的controller类,然后执行方法
+
+## camunda
+
+1. 基本概念: 事件 任务 定时器 bpmn图
+2. 使用SDK方式调用 runService taskService
+3. 绘制bpmn图 : camunda modeler
+
+## redis
+
+1. 存放验证码 key vc:userid:xxx value string
+2. 存放员工权限路由 key permission_routers:userid:xxx value set
\ No newline at end of file
diff --git a/build.dockerfile b/build.dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..8fd5aa5050e24a9b993d07b655c4aedc10ddf3f2
--- /dev/null
+++ b/build.dockerfile
@@ -0,0 +1,43 @@
+# 构建阶段
+FROM maven:3.8.7-eclipse-temurin-17 AS builder
+
+# 设置工作目录
+WORKDIR /build
+
+# 复制pom.xml
+COPY pom.xml .
+
+# 下载依赖(利用Docker缓存层)
+RUN mvn dependency:go-offline
+
+# 复制源代码
+COPY src ./src
+
+# 构建应用
+RUN mvn clean package -DskipTests
+
+# 运行阶段
+FROM eclipse-temurin:17-jre-jammy
+
+# 设置工作目录
+WORKDIR /app
+
+# 创建必要的目录
+RUN mkdir -p /app/uploads /app/logs
+
+# 设置时区
+ENV TZ=Asia/Shanghai
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+
+# 复制构建产物
+COPY --from=builder /build/target/*.jar app.jar
+
+# 设置默认环境变量
+#ENV JAVA_OPTS="-Xms512m -Xmx1024m"
+# ENV SPRING_PROFILES_ACTIVE="prod"
+
+# 暴露端口
+EXPOSE 9090
+
+# 启动命令
+ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]
\ No newline at end of file
diff --git a/deploy/environment-install.sh b/deploy/environment-install.sh
new file mode 100644
index 0000000000000000000000000000000000000000..74bb793c35fe219923d49c62b4db56c296cc9dba
--- /dev/null
+++ b/deploy/environment-install.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# 更新软件包列表
+sudo apt update
+
+# 安装OpenJDK 8
+sudo apt install -y openjdk-8-jdk
+
+# 验证安装
+if [ "$(java -version 2>&1 | grep 'openjdk version')" ]; then
+ echo "Java 8 (OpenJDK) installed successfully."
+else
+ echo "There was an error installing Java 8."
+fi
+
+# 设置默认的Java版本为Java 8
+sudo update-alternatives --config java
+
+# 输出当前使用的Java版本信息
+java -version
\ No newline at end of file
diff --git a/deploy/run-performance.sh b/deploy/run-performance.sh
new file mode 100644
index 0000000000000000000000000000000000000000..ceae4905265f6f857f838c5db6437f1dbf129212
--- /dev/null
+++ b/deploy/run-performance.sh
@@ -0,0 +1,2 @@
+## 后台运行,输出到 log文件
+nohup java -Dserver.port=8081 -Dspring.profiles.active=prod -jar my-project-1.0.0-SNAPSHOT.jar > nohup-performance.log 2>&1 &
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0740f47310f4c403b3913da8215acabc5a892234
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,11 @@
+services:
+ performance-api:
+ image: ${IMAGE_NAME}
+ container_name: performance-api
+ env_file:
+ - .env
+ ports:
+ - "9090:9090"
+ command: /bin/bash -c "java -jar my-project-1.0.0-SNAPSHOT.jar --server.address=0.0.0.0 "
+
+
diff --git a/pom.xml b/pom.xml
index 59ef1cef7f52deb8b786d2fff8ee10b181f6be39..3cf0e831145ac80f9e8c8bff4ecd499b963ddf0a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,16 +20,9 @@
UTF-8
8
8
- 2.7.3
3.5.3.1
- 1.2.10
8.0.23
- 1.9.4
1.2.66
- 3.4
- 1.9
- 2.5
- 3.2.0
@@ -46,26 +39,11 @@
-
- org.camunda.bpm.springboot
- camunda-bpm-spring-boot-starter-rest
-
-
org.camunda.bpm.springboot
camunda-bpm-spring-boot-starter-webapp
-
- org.camunda.bpm
- camunda-engine-plugin-spin
-
-
-
- org.camunda.spin
- camunda-spin-dataformat-all
-
-
org.drools
@@ -104,12 +82,7 @@
mybatis-plus-boot-starter
${mybatis-plus.version}
-
-
- org.mybatis.spring.boot
- mybatis-spring-boot-starter
- 2.2.2
-
+
@@ -148,6 +121,18 @@
lombok
true
+
+
+ org.mapstruct
+ mapstruct
+ 1.5.2.Final
+
+
+ org.mapstruct
+ mapstruct-processor
+ 1.5.2.Final
+ provided
+
diff --git a/src/main/java/com/example/workflow/Application.java b/src/main/java/com/example/workflow/Application.java
index 1c48b5424ae955c8d4b8ea20d9423088849a07c6..b47b7a4c9ccdc9bdde07565c103000470f1b53b4 100644
--- a/src/main/java/com/example/workflow/Application.java
+++ b/src/main/java/com/example/workflow/Application.java
@@ -1,7 +1,6 @@
package com.example.workflow;
import org.mybatis.spring.annotation.MapperScan;
-import org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@@ -13,11 +12,20 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
@EnableScheduling
@ServletComponentScan
-@SpringBootApplication(exclude = MybatisAutoConfiguration.class)
+@SpringBootApplication
@MapperScan("com.example.workflow.mapper")
public class Application {
public static void main(String... args) {
SpringApplication.run(Application.class, args);
+ // http://patorjk.com/software/taag/?spm=5176.28103460.0.0.297c5d27o3B1lK 横幅内容生成
+ System.out.println(" _____ \n" +
+ "______ ____________/ ____\\___________ _____ _____ ____ ____ ____ \n" +
+ "\\____ \\_/ __ \\_ __ \\ __\\/ _ \\_ __ \\/ \\\\__ \\ / \\_/ ___\\/ __ \\ \n" +
+ "| |_> > ___/| | \\/| | ( <_> ) | \\/ Y Y \\/ __ \\| | \\ \\__\\ ___/ \n" +
+ "| __/ \\___ >__| |__| \\____/|__| |__|_| (____ /___| /\\___ >___ >\n" +
+ "|__| \\/ \\/ \\/ \\/ \\/ \\/" + '\n'
+ + "绩效管理系统后台服务启动成功");
+
}
}
\ No newline at end of file
diff --git a/src/main/java/com/example/workflow/aspect/ParamAspect.java b/src/main/java/com/example/workflow/aspect/ParamAspect.java
new file mode 100644
index 0000000000000000000000000000000000000000..52c52105778ffffdf0b56283a8502d27e290efe2
--- /dev/null
+++ b/src/main/java/com/example/workflow/aspect/ParamAspect.java
@@ -0,0 +1,34 @@
+package com.example.workflow.aspect;
+
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.StringJoiner;
+
+@Slf4j
+@Component
+@Aspect
+public class ParamAspect {
+
+ @Resource
+ HttpServletRequest request;
+
+ @Pointcut("execution(* com.example.workflow.controller..*.*(..))")
+ public void controller() {
+ }
+
+ @Before("controller()")
+ public void before(JoinPoint joinPoint) {
+ StringJoiner sj = new StringJoiner("\n", "\n", "\n");
+ for (Object arg : joinPoint.getArgs()) {
+ sj.add(arg.toString());
+ }
+ log.info("请求uri:{} \n 请求参数:{}", request.getRequestURI(), sj);
+ }
+}
diff --git a/src/main/java/com/example/workflow/config/WebMvcConfig.java b/src/main/java/com/example/workflow/config/WebMvcConfig.java
index a8d7c366e5d5392646584ab9e2d0843ca4add0f9..715f8add1b266ed0d9e191975e6cb0b83945620f 100644
--- a/src/main/java/com/example/workflow/config/WebMvcConfig.java
+++ b/src/main/java/com/example/workflow/config/WebMvcConfig.java
@@ -2,41 +2,26 @@ package com.example.workflow.config;
import com.example.workflow.interceptor.TokenCheckInterceptor;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import javax.annotation.Resource;
+
@Slf4j
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
-// //@JsonFormat(shape = JsonFormat.Shape.STRING)
-// // public void extendMessageConverters(List> converters){
-// // log.info("拓展消息转换器");
-// // MappingJackson2CborHttpMessageConverter messageConverter=new MappingJackson2CborHttpMessageConverter();
-// // messageConverter.setObjectMapper(new JacksonObjectMapper());
-// // converters.add(0,messageConverter);
-// // }
-
-
-
- @Autowired
+ @Resource
private TokenCheckInterceptor tokenCheckInterceptor;
+
+ @Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(tokenCheckInterceptor)
- .addPathPatterns("/**") // 指定拦截的路径模式
- .excludePathPatterns("/login","/getVerifyCode","/logout"); // 排除的路径
+ // 指定拦截的路径模式
+ .addPathPatterns("/**")
+ // 排除的路径
+ .excludePathPatterns("/login", "/getVerifyCode", "/logout", "/login/test");
}
- @Override
- public void addCorsMappings(CorsRegistry registry) {
- registry.addMapping("/**")
- .allowedOriginPatterns("*")
- .allowedMethods("GET", "POST", "PUT", "DELETE")
- .allowedHeaders("*")
- .allowCredentials(true)
- .maxAge(3600);
- }
}
diff --git a/src/main/java/com/example/workflow/constant/MyConstant.java b/src/main/java/com/example/workflow/constant/MyConstant.java
new file mode 100644
index 0000000000000000000000000000000000000000..f771864316513b05f71a28564f3a827ae13b6149
--- /dev/null
+++ b/src/main/java/com/example/workflow/constant/MyConstant.java
@@ -0,0 +1,7 @@
+package com.example.workflow.constant;
+
+public interface MyConstant {
+
+ /** 部门最小级别*/
+ Short DEPT_MIN_LEVEL = 4;
+}
diff --git a/src/main/java/com/example/workflow/content/session/VerifyCodeSessionContent.java b/src/main/java/com/example/workflow/content/session/VerifyCodeSessionContent.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d2a8119b1c198a727e3a9639d6e56148217149d
--- /dev/null
+++ b/src/main/java/com/example/workflow/content/session/VerifyCodeSessionContent.java
@@ -0,0 +1,23 @@
+package com.example.workflow.content.session;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 存放验证码
+ */
+public class VerifyCodeSessionContent {
+ private static final Map data = new HashMap<>();
+
+ public static Object getVerifyCode(String key) {
+ return data.get(key);
+ }
+
+ public static void setVerifyCode(String key, Object value) {
+ data.put(key, value);
+ }
+
+ public static void clearVerifyCode(String key) {
+ data.remove(key);
+ }
+}
diff --git a/src/main/java/com/example/workflow/controller/BackWaitController.java b/src/main/java/com/example/workflow/controller/BackWaitController.java
index a5defd9beb7fd3e3a1fe1c3aa71f5c670c99edb0..9d8a66e00415e650874bd64ad17a803d6e4b2bff 100644
--- a/src/main/java/com/example/workflow/controller/BackWaitController.java
+++ b/src/main/java/com/example/workflow/controller/BackWaitController.java
@@ -21,7 +21,7 @@ public class BackWaitController {
private BackWaitService BackWaitService;
@GetMapping("/getOpinion")
- private R getOpinion(@RequestParam("empId") Long empId
+ public R getOpinion(@RequestParam("empId") Long empId
,@RequestParam("positionId") Long positionId
,@RequestParam("type") String type){
diff --git a/src/main/java/com/example/workflow/controller/DeptController.java b/src/main/java/com/example/workflow/controller/DeptController.java
index e90f7615c580215bc749ff02d2e057f20c6d490c..b041f1e4035cf5e772f0da11a7c6923fa93dfbf4 100644
--- a/src/main/java/com/example/workflow/controller/DeptController.java
+++ b/src/main/java/com/example/workflow/controller/DeptController.java
@@ -24,10 +24,7 @@ import java.util.List;
import java.util.Objects;
/**
- *
* 部门 前端控制器
- *
- *
* @author 黄历
* @since 2024-03-12
*/
diff --git a/src/main/java/com/example/workflow/controller/EmpCheckStateController.java b/src/main/java/com/example/workflow/controller/EmpCheckStateController.java
index 40c600e5eab8a8bacca96873d1684760657977b1..c9d40dd7a502fe0d417c7ea191b285c4bccaa63b 100644
--- a/src/main/java/com/example/workflow/controller/EmpCheckStateController.java
+++ b/src/main/java/com/example/workflow/controller/EmpCheckStateController.java
@@ -62,7 +62,7 @@ public class EmpCheckStateController {
* 查看次数+1
* */
@PostMapping("/point")
- private R point(@RequestBody JSONObject obj){
+ public R point(@RequestBody JSONObject obj) {
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(EmpCheckState::getEmpId,obj.getString("empId"))
.apply(StringUtils.checkValNotNull(beginTime),
@@ -92,7 +92,7 @@ public class EmpCheckStateController {
* 是否已确认查看绩效
* */
@PostMapping("/match")
- private R match(@RequestBody JSONObject obj){
+ public R match(@RequestBody JSONObject obj) {
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(EmpCheckState::getEmpId,obj.getString("empId"))
.apply(StringUtils.checkValNotNull(beginTime),
diff --git a/src/main/java/com/example/workflow/controller/EmpCoefficientController.java b/src/main/java/com/example/workflow/controller/EmpCoefficientController.java
index e06007c56d86f9b82e38e8541e405d52b2226abd..5d382660387b7c3e14ad7d0c4698493ce8af87d2 100644
--- a/src/main/java/com/example/workflow/controller/EmpCoefficientController.java
+++ b/src/main/java/com/example/workflow/controller/EmpCoefficientController.java
@@ -21,12 +21,20 @@ import com.example.workflow.mapper.ResultPieceEmpViewMapper;
import com.example.workflow.mapper.ResultScoreEmpViewMapper;
import com.example.workflow.mapper.TaskViewMapper;
import com.example.workflow.model.dto.EmpCoeForm;
-import com.example.workflow.model.entity.*;
+import com.example.workflow.model.entity.CoefficientView;
+import com.example.workflow.model.entity.EmpCoefficient;
+import com.example.workflow.model.entity.EmployeePosition;
+import com.example.workflow.model.entity.RegionCoefficient;
+import com.example.workflow.model.entity.TaskView;
import com.example.workflow.model.feedback.EmpCoefficientError;
import com.example.workflow.model.feedback.ErrorExcelWrite;
-import com.example.workflow.model.pojo.CoefficientViewExcel;
import com.example.workflow.model.pojo.EmpCoefficientExcel;
-import com.example.workflow.service.*;
+import com.example.workflow.service.CoefficientViewService;
+import com.example.workflow.service.EmpCoefficientService;
+import com.example.workflow.service.EmpWageService;
+import com.example.workflow.service.EmployeeCoefficientService;
+import com.example.workflow.service.EmployeePositionService;
+import com.example.workflow.service.RegionCoefficientService;
import lombok.extern.slf4j.Slf4j;
import org.camunda.bpm.engine.TaskService;
import org.springframework.beans.BeanUtils;
@@ -44,14 +52,8 @@ import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
-import java.util.ArrayList;
import java.util.List;
-
-/**
- * 员工绩效系数
- * */
-
@Slf4j
@RestController
@RequestMapping("/EmpCoefficient")
@@ -92,24 +94,16 @@ public class EmpCoefficientController {
private EmployeeCoefficientService EmployeeCoefficientService;
@Autowired
private RegionCoefficientService RegionCoefficientService;
- @Autowired
- private EmployeeService EmployeeService;
LocalDate today = LocalDate.now();
LocalDateTime beginTime = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
LocalDateTime endTime = LocalDateTime.of(today.withDayOfMonth(today.lengthOfMonth()), LocalTime.MAX);
- /**
- * 查询当月员工系数
- * */
@GetMapping("/page")
- private R page(@RequestParam("page") String page, @RequestParam("page_size") String pageSize){
-
- List list = new ArrayList<>();
+ public R page(@RequestParam("page") String page, @RequestParam("page_size") String pageSize) {
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper
- .apply(StringUtils.checkValNotNull(beginTime),
+ queryWrapper.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
@@ -119,12 +113,8 @@ public class EmpCoefficientController {
return R.success(pageInfo);
}
- /**
- * 复制上月员工绩效系数
- * */
@PostMapping("/copy")
- private R copy(){
-
+ public R copy() {
List list= EmpCoefficientService.lambdaQuery()
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
@@ -149,9 +139,6 @@ public class EmpCoefficientController {
return R.success();
}
- /**
- * 查询员工绩效系数
- * */
@GetMapping("/search")
public R searchPage(@RequestParam("page") String page
, @RequestParam("page_size") String pageSize
@@ -160,6 +147,7 @@ public class EmpCoefficientController {
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.orderByDesc(CoefficientView::getEmpId)
.like(CoefficientView::getEmpName,empName)
+ .eq(CoefficientView::getState,1)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
@@ -168,104 +156,46 @@ public class EmpCoefficientController {
return R.success(pageInfo);
}
- /**
- * 查询历史员工绩效系数
- * */
@GetMapping("/coefficientPastPage")
- public R coefficientPastPage(@RequestParam("page") String page,
- @RequestParam("page_size") String pageSize,
- @RequestParam(defaultValue = "") String time
- ){
-
- //获取选择年月
- String choseMonth = time+"-01";
+ public R coefficientPastPage(@RequestParam("page") String page, @RequestParam("page_size") String pageSize){
+ LocalDate today = LocalDate.now();
+ LocalDateTime beginTime = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper.apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') >= date_format ({0},'%Y-%m')", choseMonth)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') <= date_format ({0},'%Y-%m')", choseMonth);
+ queryWrapper.apply(StringUtils.checkValNotNull(beginTime),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime);
CoefficientViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 搜素历史员工绩效系数
- * */
- @GetMapping("/coefficientPastSearch")
- public R coefficientPastSearch(
- @RequestParam("page") String page
- , @RequestParam("page_size") String pageSize
- ,@RequestParam(defaultValue = "") String empName
- ,@RequestParam(defaultValue = "") String time
- ){
- Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
- LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
-
- //获取选择年月
- String choseMonth = time+"-01";
-
- queryWrapper.orderByDesc(CoefficientView::getEmpId)
- .like(CoefficientView::getEmpName,empName)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') >= date_format ({0},'%Y-%m')", choseMonth)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') <= date_format ({0},'%Y-%m')", choseMonth);
- CoefficientViewService.page(pageInfo,queryWrapper);
- return R.success(pageInfo);
- }
- /**
- * 修改当月员工系数
- * */
@PostMapping("/update")
- private R update(@RequestBody EmpCoefficient one){
+ public R update(@RequestBody EmpCoefficient one) {
EmpCoefficientService.updateById(one);
+
return R.success();
}
- /**
- * 员工归档
- * */
@PostMapping("/file")
- private R file(@RequestBody JSONObject obj){
-
- //勿动(后续建议封装)
- //获取员工所在岗位信息
- LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>();
- wrapper.eq(EmployeePosition::getEmpId,obj.getString("empId"))
- .eq(EmployeePosition::getPositionId,obj.getString("positionId"))
- .eq(EmployeePosition::getState,1);
- EmployeePosition EmployeePosition = EmployeePositionService.getOne(wrapper);
-
- //获取员工进程
- LambdaQueryWrapper query=new LambdaQueryWrapper<>();
- query.eq(TaskView::getStartUserId,obj.getString("empId"))
- .eq(TaskView::getStartUserId,obj.getString("empId"))
- .eq(TaskView::getProcInstId,EmployeePosition.getProcessDefinitionId())
- .eq(TaskView::getName,"wage_emp")
- .apply(StringUtils.checkValNotNull(beginTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
- .apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')",endTime);
- TaskView task = TaskViewMapper.selectOne(query);
-
- //使用&&当task为null时不继续判断,防止task.getName()报空指针错误
- //当满足判定条件时 ,可继续下面归档流程
- if (task != null){
-
- }else {
- return R.error("已归档,请勿重复归档");
- }
-
+ public R file(@RequestBody JSONObject obj) {
Long empId=Long.valueOf(obj.getString("empId"));
Long positionId=Long.valueOf(obj.getString("positionId"));
- //归档结算
EmployeeCoefficientService.fileOne(empId,positionId);
- //结束进程
+
+ LambdaQueryWrapper queryWrapper5=new LambdaQueryWrapper<>();
+ queryWrapper5.eq(EmployeePosition::getEmpId,empId)
+ .eq(EmployeePosition::getPositionId,positionId)
+ .eq(EmployeePosition::getState,1);
+ EmployeePosition EmployeePosition= EmployeePositionService.getOne(queryWrapper5);
+
+ LambdaQueryWrapper queryWrapper7=new LambdaQueryWrapper<>();
+ queryWrapper7.eq(TaskView::getProcInstId,EmployeePosition.getProcessDefinitionId())
+ .eq(TaskView::getStartUserId,empId)
+ .eq(TaskView::getAssignee,obj.getString("assessorId"));
+ TaskView task= TaskViewMapper.selectOne(queryWrapper7);
taskService.complete(task.getId());
UpdateWrapper updateWrapper =new UpdateWrapper<>();
@@ -275,66 +205,19 @@ public class EmpCoefficientController {
.eq("position_id",positionId)
.eq("state",1);
EmployeePositionService.update(updateWrapper);
- return R.success();
+ return R.success();
}
- /**
- * 一键员工归档
- * */
-
@PostMapping("/fileAll")
- private R fileAll(@RequestBody JSONObject form){
-
+ public R fileAll(@RequestBody JSONObject form) {
JSONArray formArray = form.getJSONArray("Form");
- if (formArray.isEmpty()){
- return R.error("未选择归档对象,请选择归档对象");
- }
-
- //避免重复归档(后续建议封装)
- int flag =0;
-
- for (int i = 0; i < formArray.size(); i++) {
- JSONObject formObject = formArray.getJSONObject(i);
- Long empId=Long.valueOf(String.valueOf(formObject.get("empId")));
- Long positionId=Long.valueOf(String.valueOf(formObject.get("positionId")));
- String assessorId = form.getString("assessorId");
-
- //获取员工所在岗位信息
- LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>();
- wrapper.eq(EmployeePosition::getEmpId,empId)
- .eq(EmployeePosition::getPositionId,positionId);
- EmployeePosition EmployeePosition = EmployeePositionService.getOne(wrapper);
- //获取员工进程
- LambdaQueryWrapper query=new LambdaQueryWrapper<>();
- query.eq(TaskView::getStartUserId,empId)
- .eq(TaskView::getProcInstId,EmployeePosition.getProcessDefinitionId())
- .eq(TaskView::getName,"wage_emp");
- TaskView task = TaskViewMapper.selectOne(query);
-
- query.eq(TaskView::getStartUserId,empId)
- .eq(TaskView::getProcInstId,EmployeePosition.getProcessDefinitionId());
- //使用&&当task为null时不继续判断,防止task.getName()报空指针错误当满足判定条件时 ,可继续下面申报流程
- if (task != null){
-
- }else {
- flag += 1;
- }
- }
-
- if (flag != 0){
- return R.error("已有"+flag+"人被归档,请刷新");
- }
-
-
for (int i = 0; i < formArray.size(); i++) {
JSONObject formObject = formArray.getJSONObject(i);
Long empId=Long.valueOf(String.valueOf(formObject.get("empId")));
Long positionId=Long.valueOf(String.valueOf(formObject.get("positionId")));
-
- //归档
EmployeeCoefficientService.fileOne(empId,positionId);
LambdaQueryWrapper queryWrapper5=new LambdaQueryWrapper<>();
@@ -348,8 +231,6 @@ public class EmpCoefficientController {
.eq(TaskView::getStartUserId,empId)
.eq(TaskView::getAssignee,form.getString("assessorId"));
TaskView task= TaskViewMapper.selectOne(queryWrapper7);
-
- //技术进程
taskService.complete(task.getId());
UpdateWrapper updateWrapper =new UpdateWrapper<>();
@@ -364,11 +245,8 @@ public class EmpCoefficientController {
return R.success();
}
- /**
- * 一键修改员工绩效系数
- * */
@PostMapping("/changeAll")
- private R changeAll(@RequestBody EmpCoeForm empCoeForm){
+ public R changeAll(@RequestBody EmpCoeForm empCoeForm) {
if(empCoeForm.getEmpList().isEmpty())
return R.error("员工选择不得为空");
@@ -396,9 +274,6 @@ public class EmpCoefficientController {
return R.success();
}
- /**
- * 员工绩效系数导入
- * */
@PostMapping("/upload")
public void uploadExcel(MultipartFile file, HttpServletResponse response) throws IOException {
EasyExcel.read(file.getInputStream(), EmpCoefficientExcel.class, new EmpCoefficientExcelReadListener()).sheet().doRead();
@@ -413,33 +288,4 @@ public class EmpCoefficientController {
ErrorExcelWrite.clearErrorCollection();
}
- /**
- * 下载
- * */
- @PostMapping("/downLoad")
- private void downLoad(HttpServletResponse response) throws IOException {
-
- List list= CoefficientViewService.lambdaQuery()
- .apply(StringUtils.checkValNotNull(beginTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
- .apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .list();
-
- List coefficientViewExcels = new ArrayList<>();
- for (CoefficientView data : list) {
- CoefficientViewExcel excel = new CoefficientViewExcel();
- BeanUtils.copyProperties(data, excel);
- coefficientViewExcels.add(excel);
- }
-
- response.setContentType("application/vnd.ms-excel;charset=utf-8");
- response.setCharacterEncoding("utf-8");
- response.setHeader("Content-Disposition", "attachment;filename=import.xlsx");
-
- EasyExcel.write(response.getOutputStream(), CoefficientViewExcel.class)
- .sheet("测试")
- .doWrite(coefficientViewExcels);
- }
-
}
diff --git a/src/main/java/com/example/workflow/controller/EmpKpiController.java b/src/main/java/com/example/workflow/controller/EmpKpiController.java
index 39ff4847219955efc34f1672e955a72e93f55aca..8378ecf95b001e9347b12b93a6cf22df8667d413 100644
--- a/src/main/java/com/example/workflow/controller/EmpKpiController.java
+++ b/src/main/java/com/example/workflow/controller/EmpKpiController.java
@@ -9,12 +9,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.workflow.common.R;
import com.example.workflow.listener.EmpKpiExcelReadListener;
import com.example.workflow.mapper.KpiPercentMapper;
-import com.example.workflow.model.entity.*;
+import com.example.workflow.model.entity.EmpKpi;
+import com.example.workflow.model.entity.EmpKpiView;
+import com.example.workflow.model.entity.KpiPercent;
+import com.example.workflow.model.entity.KpiRule;
+import com.example.workflow.model.entity.Order3;
import com.example.workflow.model.feedback.EmpKpiError;
import com.example.workflow.model.feedback.ErrorExcelWrite;
import com.example.workflow.model.pojo.EmpKpiExcel;
import com.example.workflow.model.pojo.ResultEmpKpiExcel;
-import com.example.workflow.service.*;
+import com.example.workflow.service.EmpKpiService;
+import com.example.workflow.service.EmpKpiViewService;
+import com.example.workflow.service.KpiPercentService;
+import com.example.workflow.service.KpiRuleService;
import lombok.extern.slf4j.Slf4j;
import org.kie.api.io.ResourceType;
import org.kie.api.runtime.KieSession;
@@ -38,9 +45,6 @@ import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
-/**
- * 员工kpi
- * */
@Slf4j
@RestController
@RequestMapping("/EmpKpi")
@@ -55,27 +59,19 @@ public class EmpKpiController {
private KpiRuleService KpiRuleService;
@Autowired
private KpiPercentService KpiPercentService;
- @Autowired
- private TaskViewService TaskViewService;
LocalDate today = LocalDate.now();
LocalDateTime beginTime = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
LocalDateTime endTime = LocalDateTime.of(today.withDayOfMonth(today.lengthOfMonth()), LocalTime.MAX);
- /**
- * 员工kpi导出
- * */
@PostMapping("/downLoad")
- private void downLoad(HttpServletResponse response) throws IOException {
-
+ public void downLoad(HttpServletResponse response) throws IOException {
List list=EmpKpiViewService.lambdaQuery()
.orderByAsc(EmpKpiView::getEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpKpiView::getPositionId)
- .orderByDesc(EmpKpiView::getEmpName)
.list();
List result=new ArrayList<>();
@@ -94,11 +90,8 @@ public class EmpKpiController {
.doWrite(result);
}
- /**
- * 添加员工kpi项目
- * */
@PostMapping("/match")
- private R matchCoefficient(@RequestBody List form){
+ public R matchCoefficient(@RequestBody List form) {
Long kpiRuleId=form.get(0).getKpiId();
KpiRule kpiRule= KpiRuleService.lambdaQuery()
@@ -124,6 +117,7 @@ public class EmpKpiController {
KieSession kSession = helper.build().newKieSession();
if(x.getEmpId()==null)
+ //!
R.error("员工姓名不得为空");
else if(x.getInTarget1()==null)
R.error("kpi条目一不得为空");
@@ -166,9 +160,6 @@ public class EmpKpiController {
return R.success();
}
- /**
- * 查询所有员工kpi项目(导入提成数据)
- * */
@GetMapping("/page")
public R page(@RequestParam("page") String page, @RequestParam("page_size") String pageSize){
@@ -178,20 +169,15 @@ public class EmpKpiController {
queryWrapper.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpKpiView::getPositionId)
- .orderByDesc(EmpKpiView::getEmpName);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpKpiViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 查询单个员工kpi(审批)
- * */
@PostMapping("/list")
- private R> list(@RequestBody JSONObject obj){
+ public R> list(@RequestBody JSONObject obj) {
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(EmpKpiView::getEmpId,obj.getString("empId"))
@@ -199,35 +185,29 @@ public class EmpKpiController {
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpKpiView::getPositionId)
- .orderByDesc(EmpKpiView::getEmpName);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
List list=EmpKpiViewService.list(queryWrapper);
return R.success(list);
}
- /**
- * 删除员工kpi项目
- * */
+
+
@PostMapping("/delete")
- private R delete(@RequestBody EmpKpi one){
+ public R delete(@RequestBody EmpKpi one) {
EmpKpiService.removeById(one);
return R.success();
}
- /**
- * 重填员工kpi项目
- * */
+
@PostMapping("/addBackKpi")
- private R addBackPiece(List form){
+ public R addBackPiece(List form) {
EmpKpiService.updateBatchById(form);
+
return R.success();
}
- /**
- * 修改员工kpi项目
- * */
+
@PostMapping("/update")
- private R updateMatch(@RequestBody EmpKpi form){
+ public R updateMatch(@RequestBody EmpKpi form) {
EmpKpiService.removeById(form);
@@ -285,11 +265,9 @@ public class EmpKpiController {
return R.success();
}
- /**
- * kpi修正值(未开放)
- * */
+
@GetMapping("/reAdd")
- private R reAdd(@RequestParam("id") String id
+ public R reAdd(@RequestParam("id") String id
,@RequestParam("correctedValue") String correctedValue
,@RequestParam("empId") String empId){
UpdateWrapper updateWrapper=new UpdateWrapper<>();
@@ -300,58 +278,45 @@ public class EmpKpiController {
EmpKpiService.reChange(Long.valueOf(id),Long.valueOf(empId));
return R.success();
}
- /**
- *
- * */
+
@PostMapping("/reDelete")
- private R reAdd(@RequestBody EmpKpi one){
+ public R reAdd(@RequestBody EmpKpi one) {
one.setState(Short.parseShort("0"));
EmpKpiService.updateById(one);
return R.success();
}
- /**
- * 二级终审重审
- * */
@PostMapping("/secondBack")
- private R> secondBack(@RequestBody JSONObject obj){
+ public R> secondBack(@RequestBody JSONObject obj) {
List EmpKpiViews=EmpKpiViewService.lambdaQuery()
.eq(EmpKpiView::getPositionId,obj.getString("positionId"))
+ .orderByAsc(EmpKpiView::getEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpKpiView::getPositionId)
- .orderByDesc(EmpKpiView::getEmpName)
.list();
return R.success(EmpKpiViews);
}
- /**
- * 当月员工kpi项目查询(提成结算)
- * */
@GetMapping("/nowPage")
public R nowPage(@RequestParam("page") String page
, @RequestParam("page_size") String pageSize){
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper
+ queryWrapper.orderByAsc(EmpKpiView::getEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpKpiView::getPositionId)
- .orderByDesc(EmpKpiView::getEmpName);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpKpiViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 当月员工kpi项目搜索(提成结算)
- * */
+
@GetMapping("/nowSearch")
public R nowSerach(@RequestParam("page") String page
, @RequestParam("page_size") String pageSize
@@ -360,103 +325,72 @@ public class EmpKpiController {
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper
- .like(EmpKpiView::getEmpId,empId)
+ queryWrapper.like(EmpKpiView::getEmpId,empId)
.like(EmpKpiView::getEmpName,empName)
+ .orderByAsc(EmpKpiView::getEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpKpiView::getPositionId)
- .orderByDesc(EmpKpiView::getEmpName);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpKpiViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 历史员工kpi项目查询(提成结算)
- * */
+
@GetMapping("/pastPage")
public R pastPage(@RequestParam("page") String page
- , @RequestParam("page_size") String pageSize
- , @RequestParam("time") String time){
-
- //获取选择年月
- String choseMonth = time+"-01";
-
+ , @RequestParam("page_size") String pageSize){
LocalDate today = LocalDate.now();
LocalDateTime beginTime = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') >= date_format ({0},'%Y-%m')", choseMonth)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') <= date_format ({0},'%Y-%m')", choseMonth)
- .orderByDesc(EmpKpiView::getPositionId)
- .orderByDesc(EmpKpiView::getEmpName);
+ queryWrapper.orderByAsc(EmpKpiView::getEmpId)
+ .apply(StringUtils.checkValNotNull(beginTime),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime);
EmpKpiViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 历史员工kpi项目搜索(提成结算)
- * */
+
@GetMapping("/pastSearch")
public R pastPage(@RequestParam("page") String page
,@RequestParam("page_size") String pageSize
,@RequestParam(defaultValue = "") String empId
,@RequestParam(defaultValue = "") String empName
- ,@RequestParam(defaultValue = "") String time){
+ ,@RequestParam(defaultValue = "") String beginTime
+ ,@RequestParam(defaultValue = "") String endTime){
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
-
- //获取选择年月
- String choseMonth = time+"-01";
+ if(beginTime.equals("")){
+ LocalDate today = LocalDate.now();
+ LocalDateTime beginDay = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
queryWrapper.like(EmpKpiView::getEmpId,empId)
.like(EmpKpiView::getEmpName,empName)
.orderByAsc(EmpKpiView::getEmpId)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') >= date_format ({0},'%Y-%m')", choseMonth)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') <= date_format ({0},'%Y-%m')", choseMonth)
- .orderByDesc(EmpKpiView::getPositionId)
- .orderByDesc(EmpKpiView::getEmpName);
-
- EmpKpiViewService.page(pageInfo,queryWrapper);
-
- return R.success(pageInfo);
- }
-
- /**
- * 当月员工kpi项目搜索(导入提成数据)
- */
- @GetMapping("/Search")
- public R Serach(@RequestParam("page") String page
- , @RequestParam("page_size") String pageSize
- ,@RequestParam(defaultValue = "") String empName
- ,@RequestParam(defaultValue = "") String name){
+ .apply(StringUtils.checkValNotNull(beginDay),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime);
+ }
+ else {
+ LocalDateTime beginDay = LocalDateTime.of(LocalDate.parse(beginTime), LocalTime.MIN);
+ LocalDateTime endDay = LocalDateTime.of(LocalDate.parse(endTime), LocalTime.MAX);
- Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
- LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper.like(EmpKpiView::getEmpName,empName)
- .like(EmpKpiView::getName,name)
- .apply(StringUtils.checkValNotNull(beginTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
- .apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
+ queryWrapper.like(EmpKpiView::getEmpId,empId)
+ .like(EmpKpiView::getEmpName,empName)
+ .orderByAsc(EmpKpiView::getEmpId)
+ .apply(StringUtils.checkValNotNull(beginDay),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginDay)
+ .apply(StringUtils.checkValNotNull(endDay),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endDay);
+ }
EmpKpiViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 上传
- * */
@PostMapping("/upload")
public void uploadExcel(MultipartFile file, HttpServletResponse response) throws IOException {
EasyExcel.read(file.getInputStream(), EmpKpiExcel.class, new EmpKpiExcelReadListener()).sheet().doRead();
diff --git a/src/main/java/com/example/workflow/controller/EmpOkrController.java b/src/main/java/com/example/workflow/controller/EmpOkrController.java
index dc1a18b5b4a715bdce14d3ec912997af37c56951..fb09132bf5b6a570392dff798010192e5a266a52 100644
--- a/src/main/java/com/example/workflow/controller/EmpOkrController.java
+++ b/src/main/java/com/example/workflow/controller/EmpOkrController.java
@@ -9,9 +9,19 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.workflow.common.R;
import com.example.workflow.mapper.TaskViewMapper;
-import com.example.workflow.model.entity.*;
+import com.example.workflow.model.entity.BackWait;
+import com.example.workflow.model.entity.EmpOkr;
+import com.example.workflow.model.entity.EmpOkrView;
+import com.example.workflow.model.entity.EmployeePosition;
+import com.example.workflow.model.entity.PositionAssessor;
+import com.example.workflow.model.entity.TaskView;
import com.example.workflow.model.pojo.EmpOkrExcel;
-import com.example.workflow.service.*;
+import com.example.workflow.service.BackWaitService;
+import com.example.workflow.service.EmpOkrService;
+import com.example.workflow.service.EmpOkrViewService;
+import com.example.workflow.service.EmployeePositionService;
+import com.example.workflow.service.OkrViewService;
+import com.example.workflow.service.PositionAssessorService;
import lombok.extern.slf4j.Slf4j;
import org.camunda.bpm.engine.TaskService;
import org.springframework.beans.BeanUtils;
@@ -35,9 +45,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-/**
- * 员工okr
- * */
@Slf4j
@RestController
@RequestMapping("/EmpOkr")
@@ -58,37 +65,19 @@ public class EmpOkrController {
private OkrViewService OkrViewService;
@Autowired
private BackWaitService BackWaitService;
- @Autowired
- private com.example.workflow.service.TaskViewService TaskViewService;
+
LocalDate today = LocalDate.now();
LocalDateTime beginTime = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
LocalDateTime endTime = LocalDateTime.of(today.withDayOfMonth(today.lengthOfMonth()), LocalTime.MAX);
- /**
- * 员工okr导出
- * */
@PostMapping("/downLoad")
- private void downLoad(HttpServletResponse response) throws IOException {
- List taskViewList= TaskViewService.lambdaQuery()
- .eq(TaskView::getName,"okr")
- .list();
-
- List empIds =new ArrayList<>();
- for (TaskView taskView : taskViewList) {
- empIds.add(Long.valueOf(taskView.getStartUserId()));
- }
-
-
+ public void downLoad(HttpServletResponse response) throws IOException {
List list=EmpOkrViewService.lambdaQuery()
- .notIn(!empIds.isEmpty(),EmpOkrView::getLiaEmpId,empIds)
+ .orderByAsc(EmpOkrView::getLiaEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpOkrView::getLiaEmpId)
- .orderByDesc(EmpOkrView::getPositionId)
- .orderByDesc(EmpOkrView::getEmpOkrId)
- .orderByDesc(EmpOkrView::getKeyId)
.list();
List result=new ArrayList<>();
@@ -108,43 +97,12 @@ public class EmpOkrController {
}
- /**
- * okr评分
- * */
@PostMapping("/add")
- private R add(@RequestBody JSONObject form){
-
- //可修改(后续建议封装)
- //获取员工所在岗位信息
- LambdaQueryWrapper wrapper11 =new LambdaQueryWrapper<>();
- wrapper11.eq(EmployeePosition::getEmpId,form.getString("empId"))
- .eq(EmployeePosition::getPositionId,form.getString("positionId"));
- EmployeePosition employeePosition1 = EmployeePositionService.getOne(wrapper11);
- //获取员工进程
- LambdaQueryWrapper queryWrapper11 =new LambdaQueryWrapper<>();
- queryWrapper11.eq(TaskView::getStartUserId,form.getString("empId"))
- .eq(TaskView::getProcInstId,employeePosition1.getProcessDefinitionId())
- .eq(TaskView::getName,"okr")
- .eq(TaskView::getAssignee,form.getString("assessorId"))
- .eq(TaskView::getState,"ACTIVE")
- .apply(StringUtils.checkValNotNull(beginTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
- .apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')",endTime);
- List task1 = TaskViewMapper.selectList(queryWrapper11);
- try{
- if (task1.get(0) != null){
-
- }else {
- return R.error("已评分,请勿重复评分");
- }
- }catch (IndexOutOfBoundsException indexOutOfBoundsException){
-
- return R.error("已评分,请勿重复评分");
- }
+ public R add(@RequestBody JSONObject form) {
JSONArray formArray = form.getJSONArray("Form");
+ List list = new ArrayList<>();
for (int i = 0; i < formArray.size(); i++) {
JSONObject formObject = formArray.getJSONObject(i);
@@ -158,29 +116,13 @@ public class EmpOkrController {
return R.error("评分不得超过20");
}
- EmpOkr one = EmpOkrService.lambdaQuery()
- .eq(EmpOkr::getOkrKeyId,Long.valueOf(String.valueOf(formObject.get("okrKeyId"))))
- .eq(EmpOkr::getEmpId,Long.valueOf(String.valueOf(formObject.get("empId"))))
- .apply(StringUtils.checkValNotNull(beginTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
- .apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .one();
-
-
+ EmpOkr one = new EmpOkr();
+ one.setOkrKeyId(Long.valueOf(String.valueOf(formObject.get("okrKeyId"))));
one.setScore(new BigDecimal(formObject.get("score").toString()));
-
- try{
- String remark = formObject.get("remark").toString();
- if ("".equals(remark))
- return R.error("请填写评分说明");
- one.setRemark(remark);
- }catch (Exception e){
- return R.error("请填写评分说明");
- }
-
- EmpOkrService.updateById(one);
+ one.setEmpId(Long.valueOf(String.valueOf(formObject.get("empId"))));
+ list.add(one);
}
+ EmpOkrService.saveBatch(list);
LambdaQueryWrapper queryWrapper1=new LambdaQueryWrapper<>();
queryWrapper1.eq(PositionAssessor::getPositionId,form.getString("positionId"))
@@ -196,8 +138,8 @@ public class EmpOkrController {
map.put("thirdTimer",nextAssessor.getThirdTimer());
}
else if(form.getString("positionType").equals("4")){
- map.put("thirdAssessor",nextAssessor.getThirdAssessorId().toString());
- map.put("thirdTimer",nextAssessor.getThirdTimer());
+ map.put("secondAssessor",nextAssessor.getSecondAssessorId().toString());
+ map.put("secondTimer",nextAssessor.getSecondTimer());
}
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
@@ -220,11 +162,8 @@ public class EmpOkrController {
}
- /**
- * 查询单个员工kpi(审批)
- * */
@PostMapping("/list")
- private R> list(@RequestBody JSONObject form){
+ public R> list(@RequestBody JSONObject form) {
LocalDate firstDayOfLastMonth = LocalDate.now().minusMonths(1).withDayOfMonth(1);
LocalDate lastDayOfLastMonth = firstDayOfLastMonth.with(TemporalAdjusters.lastDayOfMonth());
@@ -242,70 +181,55 @@ public class EmpOkrController {
return R.success();
}
- /**
- * 查询所有员工okr项目
- * * */
+
@GetMapping("/page")
- private R page(@RequestParam("page") String page, @RequestParam("page_size") String pageSize){
+ public R page(@RequestParam("page") String page, @RequestParam("page_size") String pageSize) {
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpOkrView::getLiaEmpId)
- .orderByDesc(EmpOkrView::getPositionId)
- .orderByDesc(EmpOkrView::getEmpOkrId)
- .orderByDesc(EmpOkrView::getKeyId);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpOkrViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 查询单个员工okr(审批)
- * */
+
@PostMapping("/getOneEmpOkr")
- private R> getOneEmpOkr(@RequestBody JSONObject form){
+ public R> getOneEmpOkr(@RequestBody JSONObject form) {
List okrViews= EmpOkrViewService.lambdaQuery()
.eq(EmpOkrView::getLiaEmpId,form.getString("empId"))
- .eq(EmpOkrView::getPositionId,form.getString("positionId"))
+ .eq(EmpOkrView::getPositionId,form.getString("position"))
.eq(EmpOkrView::getState,1)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpOkrView::getLiaEmpId)
- .orderByDesc(EmpOkrView::getPositionId)
- .orderByDesc(EmpOkrView::getEmpOkrId)
- .orderByDesc(EmpOkrView::getKeyId)
.list();
return R.success(okrViews);
}
- /**
- * okr修正值
- * */
+
@GetMapping("/reAdd")
- private R reAdd(@RequestParam("id") String id
+ public R reAdd(@RequestParam("id") String id
,@RequestParam("correctedValue") String correctedValue
,@RequestParam("empId") String empId){
UpdateWrapper updateWrapper=new UpdateWrapper<>();
updateWrapper.eq("id",id)
.set("corrected_value",correctedValue);
EmpOkrService.update(updateWrapper);
+
EmpOkrService.reChange(Long.valueOf(id),Long.valueOf(empId));
return R.success();
}
- /**
- *
- * */
+
@PostMapping("/reDelete")
- private R reAdd(@RequestBody EmpOkr one){
+ public R reAdd(@RequestBody EmpOkr one) {
one.setState(new Short("0"));
EmpOkrService.updateById(one);
@@ -313,44 +237,9 @@ public class EmpOkrController {
return R.success();
}
- /**
- * okr重评
- * */
- @PostMapping("/reBackAdd")
- private R reBackAdd(@RequestBody JSONObject form){
- //可修改(后续建议封装)
- //在back_wait获取员工所在岗位打回进程
- LambdaQueryWrapper wrapper1 =new LambdaQueryWrapper<>();
- wrapper1.eq(BackWait::getEmpId,form.getString("empId"))
- .eq(BackWait::getPositionId,form.getString("positionId"))
- .and(qw -> qw.eq(BackWait::getType,"back_third_okr")
- .or().eq(BackWait::getType,"back_second_okr"));
- BackWait backWait1 = BackWaitService.getOne(wrapper1);
-
- //获取员工进程
- LambdaQueryWrapper queryWrapper1 =new LambdaQueryWrapper<>();
- queryWrapper1.eq(TaskView::getStartUserId,form.getString("empId"))
- .eq(TaskView::getProcInstId,backWait1.getProcessDefineId())
- .eq(TaskView::getName,"back_okr")
- .eq(TaskView::getAssignee,form.getString("assessorId"))
- .eq(TaskView::getState,"ACTIVE")
- .apply(StringUtils.checkValNotNull(beginTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
- .apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')",endTime);
- List task1 = TaskViewMapper.selectList(queryWrapper1);
- try{
- if (task1.get(0) != null){
- for (TaskView taskView : task1) {
-
- }
- }else {
- return R.error("已重评,请勿重复重评");
- }
- }catch (IndexOutOfBoundsException indexOutOfBoundsException){
- return R.error("已重评,请勿重复重评");
- }
+ @PostMapping("/reBackAdd")
+ public R reBackAdd(@RequestBody JSONObject form) {
JSONArray formArray = form.getJSONArray("Form");
List list = new ArrayList<>();
@@ -361,20 +250,8 @@ public class EmpOkrController {
one.setOkrKeyId(Long.valueOf(String.valueOf(formObject.get("okrKeyId"))));
one.setScore(new BigDecimal(formObject.get("score").toString()));
one.setEmpId(Long.valueOf(String.valueOf(formObject.get("empId"))));
-
- try{
- String remark = formObject.get("remark").toString();
- if ("".equals(remark))
- return R.error("请填写评分说明");
- one.setRemark(remark);
- }catch (Exception e){
- return R.error("请填写评分说明");
- }
-
-
list.add(one);
}
-
EmpOkrService.saveBatch(list);
PositionAssessor nextAssessor= PositionAssessorService.lambdaQuery()
@@ -386,17 +263,17 @@ public class EmpOkrController {
.one();
Map map = new HashMap<>();
- if(form.getString("positionType").equals("5")||form.getString("positionType").equals("4")){
+ if(form.getString("positionType").equals("5")){
map.put("Assessor",nextAssessor.getThirdAssessorId().toString());
}
- else if(form.getString("positionType").equals("3")){
+ else if(form.getString("positionType").equals("4")||form.getString("positionType").equals("3")){
map.put("Assessor",nextAssessor.getSecondAssessorId().toString());
}
List backWait=BackWaitService.lambdaQuery()
.eq(BackWait::getEmpId,form.getString("empId"))
.eq(BackWait::getPositionId,form.getString("positionId"))
- .and(qw -> qw.eq(BackWait::getType,"back_third_okr")
+ .and(qw -> qw.eq(BackWait::getType,"third_okr_back")
.or().eq(BackWait::getType,"back_second_okr"))
.list();
@@ -419,152 +296,109 @@ public class EmpOkrController {
return R.success();
}
- /**
- * okr终审复审
- * */
+
@PostMapping("/secondBack")
- private R> secondBack(@RequestBody JSONObject obj){
+ public R> secondBack(@RequestBody JSONObject obj) {
List EmpOkrViews=EmpOkrViewService.lambdaQuery()
.eq(EmpOkrView::getPositionId,obj.getString("positionId"))
+ .orderByAsc(EmpOkrView::getLiaEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpOkrView::getLiaEmpId)
- .orderByDesc(EmpOkrView::getPositionId)
- .orderByDesc(EmpOkrView::getEmpOkrId)
- .orderByDesc(EmpOkrView::getKeyId)
.list();
+
return R.success(EmpOkrViews);
}
- /**
- * 当月员工okr项目查询(okr结算)
- * */
+
@GetMapping("/nowPage")
public R nowPage(@RequestParam("page") String page
, @RequestParam("page_size") String pageSize){
- List taskViewList= TaskViewService.lambdaQuery()
- .eq(TaskView::getName,"okr")
- .list();
-
- List empIds =new ArrayList<>();
- for (TaskView taskView : taskViewList) {
- empIds.add(Long.valueOf(taskView.getStartUserId()));
- }
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper
- .notIn(!empIds.isEmpty(),EmpOkrView::getLiaEmpId,empIds)
- .orderByAsc(EmpOkrView::getLiaEmpId)
+ queryWrapper.orderByAsc(EmpOkrView::getLiaEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpOkrView::getLiaEmpId)
- .orderByDesc(EmpOkrView::getPositionId)
- .orderByDesc(EmpOkrView::getEmpOkrId)
- .orderByDesc(EmpOkrView::getKeyId);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpOkrViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 当月员工okr项目搜索(okr结算)
- * */
+
@GetMapping("/nowSearch")
public R nowSerach(@RequestParam("page") String page
, @RequestParam("page_size") String pageSize
,@RequestParam(defaultValue = "") String empId
,@RequestParam(defaultValue = "") String empName){
- List taskViewList= TaskViewService.lambdaQuery()
- .eq(TaskView::getName,"okr")
- .list();
-
- List empIds =new ArrayList<>();
- for (TaskView taskView : taskViewList) {
- empIds.add(Long.valueOf(taskView.getStartUserId()));
- }
-
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper
- .notIn(!empIds.isEmpty(),EmpOkrView::getLiaEmpId,empIds)
- .like(EmpOkrView::getLiaEmpId,empId)
+ queryWrapper.like(EmpOkrView::getLiaEmpId,empId)
.like(EmpOkrView::getName,empName)
+ .orderByAsc(EmpOkrView::getLiaEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpOkrView::getLiaEmpId)
- .orderByDesc(EmpOkrView::getPositionId)
- .orderByDesc(EmpOkrView::getEmpOkrId)
- .orderByDesc(EmpOkrView::getKeyId);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpOkrViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 历史员工okr项目查询(okr结算)
- * */
+
@GetMapping("/pastPage")
public R pastPage(@RequestParam("page") String page
- , @RequestParam("page_size") String pageSize
- ,@RequestParam(defaultValue = "") String time){
+ , @RequestParam("page_size") String pageSize){
LocalDate today = LocalDate.now();
LocalDateTime beginTime = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
- //获取选择年月
- String choseMonth = time+"-01";
-
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') >= date_format ({0},'%Y-%m')", choseMonth)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') <= date_format ({0},'%Y-%m')", choseMonth)
- .orderByDesc(EmpOkrView::getLiaEmpId)
- .orderByDesc(EmpOkrView::getPositionId)
- .orderByDesc(EmpOkrView::getEmpOkrId)
- .orderByDesc(EmpOkrView::getKeyId);
+ queryWrapper.orderByAsc(EmpOkrView::getLiaEmpId)
+ .apply(StringUtils.checkValNotNull(beginTime),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime);
EmpOkrViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 历史员工okr项目搜索(okr结算)
- * */
+
@GetMapping("/pastSearch")
public R pastPage(@RequestParam("page") String page
,@RequestParam("page_size") String pageSize
,@RequestParam(defaultValue = "") String empId
,@RequestParam(defaultValue = "") String empName
- ,@RequestParam(defaultValue = "") String time){
- //获取选择年月
- String choseMonth = time+"-01";
+ ,@RequestParam(defaultValue = "") String beginTime
+ ,@RequestParam(defaultValue = "") String endTime){
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
-
+ if(beginTime.equals("")){
+ LocalDate today = LocalDate.now();
+ LocalDateTime beginDay = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
queryWrapper.like(EmpOkrView::getLiaEmpId,empId)
.like(EmpOkrView::getName,empName)
.orderByAsc(EmpOkrView::getLiaEmpId)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') >= date_format ({0},'%Y-%m')", choseMonth)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') <= date_format ({0},'%Y-%m')", choseMonth)
- .orderByDesc(EmpOkrView::getLiaEmpId)
- .orderByDesc(EmpOkrView::getPositionId)
- .orderByDesc(EmpOkrView::getEmpOkrId)
- .orderByDesc(EmpOkrView::getKeyId);
+ .apply(StringUtils.checkValNotNull(beginDay),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime);
+ }
+ else {
+ LocalDateTime beginDay = LocalDateTime.of(LocalDate.parse(beginTime), LocalTime.MIN);
+ LocalDateTime endDay = LocalDateTime.of(LocalDate.parse(endTime), LocalTime.MAX);
+ queryWrapper.like(EmpOkrView::getLiaEmpId,empId)
+ .like(EmpOkrView::getName,empName)
+ .orderByAsc(EmpOkrView::getLiaEmpId)
+ .apply(StringUtils.checkValNotNull(beginDay),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginDay)
+ .apply(StringUtils.checkValNotNull(endDay),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endDay);
+ }
EmpOkrViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
diff --git a/src/main/java/com/example/workflow/controller/EmpPieceController.java b/src/main/java/com/example/workflow/controller/EmpPieceController.java
index 64f8bafe7e8d941e90a2a6bfb95d04804280eda9..27c0ba7edc1cd44f3bad83c751712dcb90a6e160 100644
--- a/src/main/java/com/example/workflow/controller/EmpPieceController.java
+++ b/src/main/java/com/example/workflow/controller/EmpPieceController.java
@@ -10,14 +10,12 @@ import com.example.workflow.listener.EmpPieceExcelReadListener;
import com.example.workflow.mapper.EmpPieceMapper;
import com.example.workflow.model.entity.EmpPiece;
import com.example.workflow.model.entity.EmpPieceView;
-import com.example.workflow.model.entity.TaskView;
import com.example.workflow.model.feedback.EmpPieceError;
import com.example.workflow.model.feedback.ErrorExcelWrite;
import com.example.workflow.model.pojo.EmpPieceExcel;
import com.example.workflow.model.pojo.ResultEmpPieceExcel;
import com.example.workflow.service.EmpPieceService;
import com.example.workflow.service.EmpPieceViewService;
-import com.example.workflow.service.TaskViewService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +29,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -41,9 +37,7 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-/**
- * 员工计件
- * */
+
@Slf4j
@RestController
@RequestMapping("/EmpPiece")
@@ -54,32 +48,24 @@ public class EmpPieceController {
private EmpPieceMapper EmpPieceMapper;
@Autowired
private EmpPieceViewService EmpPieceViewService;
- @Autowired
- private TaskViewService TaskViewService;
+
LocalDate today = LocalDate.now();
LocalDateTime beginTime = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
LocalDateTime endTime = LocalDateTime.of(today.withDayOfMonth(today.lengthOfMonth()), LocalTime.MAX);
- /**
- * 员工计件项目导出下载
- * */
- @PostMapping("/downLoad")
- private void downLoad(HttpServletResponse response) throws IOException {
+ @PostMapping("/downLoad")
+ public void downLoad(HttpServletResponse response) throws IOException {
List list=EmpPieceViewService.lambdaQuery()
.orderByAsc(EmpPieceView::getEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpPieceView::getDepName)
- .orderByDesc(EmpPieceView::getPosition)
- .orderByDesc(EmpPieceView::getPieceId)
.list();
List result=new ArrayList<>();
list.forEach(x->{
ResultEmpPieceExcel one=new ResultEmpPieceExcel();
- one.setTotal(x.getTargetNum().multiply(BigDecimal.valueOf(x.getWorkOrder())).multiply(x.getQuality()).multiply(x.getDifficulty()).divide(BigDecimal.valueOf(10000)).setScale(2, RoundingMode.HALF_UP));
BeanUtils.copyProperties(x,one);
result.add(one);
});
@@ -92,9 +78,7 @@ public class EmpPieceController {
.sheet("导出")
.doWrite(result);
}
- /**
- * 查询所有员工计件项目(导入计件数据)
- * */
+
@GetMapping("/page")
public R page(@RequestParam("page") String page, @RequestParam("page_size") String pageSize){
@@ -103,40 +87,32 @@ public class EmpPieceController {
queryWrapper.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpPieceView::getDepName)
- .orderByDesc(EmpPieceView::getPosition)
- .orderByDesc(EmpPieceView::getPieceId);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpPieceViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 当月员工计件项目查询(计件结算)
- * */
+
@GetMapping("/nowPage")
public R nowPage(@RequestParam("page") String page
, @RequestParam("page_size") String pageSize){
+ System.out.println("计件结算开始");
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper
- .orderByAsc(EmpPieceView::getEmpId)
+ queryWrapper.orderByAsc(EmpPieceView::getEmpId)
.ne(EmpPieceView::getState,0)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpPieceView::getDepName)
- .orderByDesc(EmpPieceView::getPosition)
- .orderByDesc(EmpPieceView::getPieceId);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpPieceViewService.page(pageInfo,queryWrapper);
+ System.out.println("计件结算结束");
return R.success(pageInfo);
}
- /**
- * 当月员工计件项目搜索(计件结算)
- * * */
+
+
@GetMapping("/nowSearch")
public R nowSerach(@RequestParam("page") String page
, @RequestParam("page_size") String pageSize
@@ -145,89 +121,79 @@ public class EmpPieceController {
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper
- .like(EmpPieceView::getEmpId,empId)
+ queryWrapper.like(EmpPieceView::getEmpId,empId)
.like(EmpPieceView::getEmpName,empName)
+ .orderByAsc(EmpPieceView::getEmpId)
.ne(EmpPieceView::getState,0)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpPieceView::getDepName)
- .orderByDesc(EmpPieceView::getPosition)
- .orderByDesc(EmpPieceView::getPieceId);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpPieceViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 历史员工计件项目搜索(计件结算)
- * */
+
@GetMapping("/pastPage")
public R pastPage(@RequestParam("page") String page
- , @RequestParam("page_size") String pageSize
- ,@RequestParam(defaultValue = "") String time
- ){
+ , @RequestParam("page_size") String pageSize){
LocalDate today = LocalDate.now();
LocalDateTime beginTime = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
- //获取选择年月
- String choseMonth = time+"-01";
-
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper
+ queryWrapper.orderByAsc(EmpPieceView::getEmpId)
.ne(EmpPieceView::getState,0)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') >= date_format ({0},'%Y-%m')", choseMonth)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') <= date_format ({0},'%Y-%m')", choseMonth)
- .orderByDesc(EmpPieceView::getDepName)
- .orderByDesc(EmpPieceView::getPosition)
- .orderByDesc(EmpPieceView::getPieceId);
+ .apply(StringUtils.checkValNotNull(beginTime),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime);
EmpPieceViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 历史员工计件记录查询(计件结算)
- * */
+
@GetMapping("/pastSearch")
public R pastPage(@RequestParam("page") String page
,@RequestParam("page_size") String pageSize
,@RequestParam(defaultValue = "") String empId
,@RequestParam(defaultValue = "") String empName
- ,@RequestParam(defaultValue = "") String time){
-
- //获取选择年月
- String choseMonth = time+"-01";
+ ,@RequestParam(defaultValue = "") String beginTime
+ ,@RequestParam(defaultValue = "") String endTime){
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
+ if(beginTime.isEmpty()){
+ LocalDate today = LocalDate.now();
+ LocalDateTime beginDay = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
queryWrapper.like(EmpPieceView::getEmpId,empId)
.like(EmpPieceView::getEmpName,empName)
.ne(EmpPieceView::getState,0)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') >= date_format ({0},'%Y-%m')", choseMonth)
- .apply(StringUtils.checkValNotNull(choseMonth),
- "date_format (create_time,'%Y-%m') <= date_format ({0},'%Y-%m')", choseMonth)
- .orderByDesc(EmpPieceView::getDepName)
- .orderByDesc(EmpPieceView::getPosition)
- .orderByDesc(EmpPieceView::getPieceId);
+ .orderByAsc(EmpPieceView::getEmpId)
+ .apply(StringUtils.checkValNotNull(beginDay),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime);
+ }
+ else {
+ LocalDateTime beginDay = LocalDateTime.of(LocalDate.parse(beginTime), LocalTime.MIN);
+ LocalDateTime endDay = LocalDateTime.of(LocalDate.parse(endTime), LocalTime.MAX);
+ queryWrapper.like(EmpPieceView::getEmpId,empId)
+ .like(EmpPieceView::getEmpName,empName)
+ .orderByAsc(EmpPieceView::getEmpId)
+ .ne(EmpPieceView::getState,0)
+ .apply(StringUtils.checkValNotNull(beginDay),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginDay)
+ .apply(StringUtils.checkValNotNull(endDay),
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endDay);
+ }
EmpPieceViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 查询单个员工计件项目(审批)
- * */
@PostMapping("/list")
- private R> list(@RequestBody JSONObject obj){
+ public R> list(@RequestBody JSONObject obj) {
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(EmpPieceView::getEmpId,obj.getString("empId"))
@@ -235,30 +201,21 @@ public class EmpPieceController {
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpPieceView::getDepName)
- .orderByDesc(EmpPieceView::getPosition)
- .orderByDesc(EmpPieceView::getPieceId);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
List list=EmpPieceViewService.list(queryWrapper);
return R.success(list);
}
- /**
- * 新增员工计件项目
- * * */
+
@PostMapping("/add")
- private R add(@RequestBody List form){
+ public R add(@RequestBody List form) {
for(EmpPiece x:form){
- Integer flag = (int) x.getWorkOrder();
if(x.getEmpId()==null)
R.error("员工姓名不得为空");
else if(x.getPieceId()==null)
R.error("计件条目不得为空");
-// else if(x.getWorkOrder() == null)
-// R.error("数量不得为空");
- else if(flag == null)
- R.error("数量不得为空");
+
else if(x.getQuality()==null)
R.error("质量不得为空");
}
@@ -266,20 +223,16 @@ public class EmpPieceController {
return R.success();
}
- /**
- * 修改员工计件项目(未开放)
- * */
+
@PostMapping("/updateOne")
- private R updateOne(@RequestBody EmpPiece one){
+ public R updateOne(@RequestBody EmpPiece one) {
EmpPieceService.updateById(one);
return R.success();
}
- /**
- * 修改所有员工计件项目(未开放)
- * */
+
@PostMapping("/updateAll")
- private R updateAll(List> form){
+ public R updateAll(List> form) {
List list=new ArrayList<>();
Long empId=form.get(0).get(0).getEmpId();
@@ -300,36 +253,29 @@ public class EmpPieceController {
return R.success();
}
- /**
- * 删除员工计件项目
- * */
+
@PostMapping("/delete")
- private R delete(@RequestBody EmpPiece one){
+ public R delete(@RequestBody EmpPiece one) {
EmpPieceService.removeById(one);
return R.success();
}
- /**
- * 全部删除员工计件项目(未开放)
- * */
+
@PostMapping("/deleteAll")
- private R deleteAll(@RequestBody List list){
+ public R deleteAll(@RequestBody List list) {
EmpPieceService.removeBatchByIds(list);
return R.success();
}
- /**
- * 重填员工计件项目
- * */
+
@PostMapping("/addBackPiece")
- private R addBackPiece(List form){
+ public R addBackPiece(List form) {
EmpPieceService.updateBatchById(form);
+
return R.success();
}
- /**
- *
- * */
+
@PostMapping("/timeList")
- private R> timeList(){
+ public R> timeList() {
List list=EmpPieceViewService.list();
List time=new ArrayList<>();
list.forEach(x->{
@@ -342,60 +288,49 @@ public class EmpPieceController {
String yearMonth = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM"));
uniqueYearMonths.add(yearMonth);
}
+
return R.success(uniqueYearMonths);
}
- /**
- * 时间范围查询
- * */
@GetMapping("/searchByTime")
- private R searchByTime(@RequestParam("page") String page, @RequestParam("page_size") String pageSize){
+ public R searchByTime(@RequestParam("page") String page, @RequestParam("page_size") String pageSize) {
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpPieceView::getDepName)
- .orderByDesc(EmpPieceView::getPosition)
- .orderByDesc(EmpPieceView::getPieceId);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpPieceViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- *
- * */
+
@PostMapping("/reDelete")
- private R reAdd(@RequestBody EmpPiece one){
+ public R reAdd(@RequestBody EmpPiece one) {
one.setState(Short.parseShort("0"));
EmpPieceService.updateById(one);
+
EmpPieceService.reChange(one.getId(),one.getEmpId());
return R.success();
}
- /**
- * 计件项目终审重审
- * */
+
@PostMapping("/secondBack")
- private R> secondBack(@RequestBody JSONObject obj){
+ public R> secondBack(@RequestBody JSONObject obj) {
List empPieces=EmpPieceViewService.lambdaQuery()
.eq(EmpPieceView::getPositionId,obj.getString("positionId"))
+ .orderByAsc(EmpPieceView::getEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpPieceView::getDepName)
- .orderByDesc(EmpPieceView::getPosition)
- .orderByDesc(EmpPieceView::getEmpName)
.list();
+
return R.success(empPieces);
}
- /**
- * 当月员工计件项目搜索(导入计件数据)
- * */
+
@GetMapping("/Search")
public R Serach(@RequestParam("page") String page
, @RequestParam("page_size") String pageSize
@@ -408,23 +343,20 @@ public class EmpPieceController {
queryWrapper.like(EmpPieceView::getWorkOrder,workOrder)
.like(EmpPieceView::getName,name)
.like(EmpPieceView::getEmpName,empName)
+ .orderByAsc(EmpPieceView::getEmpId)
.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpPieceView::getDepName)
- .orderByDesc(EmpPieceView::getPosition)
- .orderByDesc(EmpPieceView::getPieceId);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpPieceViewService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
- /**
- * 计件项目导入上传
- * */
+
@PostMapping("/upload")
public void uploadExcel(MultipartFile file, HttpServletResponse response) throws IOException {
EasyExcel.read(file.getInputStream(), EmpPieceExcel.class, new EmpPieceExcelReadListener()).sheet().doRead();
+
if(!ErrorExcelWrite.getErrorCollection().isEmpty()){
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setCharacterEncoding("utf-8");
diff --git a/src/main/java/com/example/workflow/controller/EmpRewardController.java b/src/main/java/com/example/workflow/controller/EmpRewardController.java
index 94074ceb7777a8fb80be95e55218e80cd20a1248..8899a22585e55c76bc31dff10623dc49fac590ab 100644
--- a/src/main/java/com/example/workflow/controller/EmpRewardController.java
+++ b/src/main/java/com/example/workflow/controller/EmpRewardController.java
@@ -1,17 +1,15 @@
package com.example.workflow.controller;
-import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.workflow.common.R;
-import com.example.workflow.mapper.*;
-import com.example.workflow.model.entity.*;
-import com.example.workflow.model.pojo.EmpRewardExcel;
-import com.example.workflow.service.*;
+import com.example.workflow.model.entity.EmpReward;
+import com.example.workflow.model.entity.EmpRewardView;
+import com.example.workflow.service.EmpRewardService;
+import com.example.workflow.service.EmpRewardViewService;
+import com.example.workflow.service.EmployeeCoefficientService;
import lombok.extern.slf4j.Slf4j;
-import org.camunda.bpm.engine.TaskService;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -20,16 +18,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
-import java.util.ArrayList;
import java.util.List;
-/**
- * 员工特殊绩效
- * */
+
@Slf4j
@RestController
@RequestMapping("/EmpReward")
@@ -40,230 +33,49 @@ public class EmpRewardController {
private EmpRewardViewService EmpRewardViewService;
@Autowired
private EmployeeCoefficientService EmployeeCoefficientService;
- @Autowired
- private com.example.workflow.service.CoefficientViewService CoefficientViewService;
- @Autowired
- private com.example.workflow.service.EmpCoefficientService EmpCoefficientService;
- @Autowired
- private com.example.workflow.mapper.ResultScoreEmpViewMapper ResultScoreEmpViewMapper;
- @Autowired
- private com.example.workflow.mapper.ResultPieceEmpViewMapper ResultPieceEmpViewMapper;
- @Autowired
- private com.example.workflow.mapper.ResultKpiEmpViewMapper ResultKpiEmpViewMapper;
- @Autowired
- private com.example.workflow.mapper.CoefficientViewMapper CoefficientViewMapper;
- @Autowired
- private EmpWageService EmpWageService;
- @Autowired
- private EmployeePositionService EmployeePositionService;
- @Autowired
- private TaskService taskService;
- @Autowired
- private com.example.workflow.mapper.TaskViewMapper TaskViewMapper;
- @Autowired
- private ResultOkrViewMapper ResultOkrViewMapper;
- @Autowired
- private EmpScoreViewMapper EmpScoreViewMapper;
- @Autowired
- private EmpPieceViewMapper EmpPieceViewMapper;
- @Autowired
- private EmpKpiViewMapper EmpKpiViewMapper;
- @Autowired
- private EmpOkrViewMapper EmpOkrViewMapper;
- @Autowired
- private EmpRewardViewMapper EmpRewardViewMapper;
- @Autowired
- private RegionCoefficientService RegionCoefficientService;
-
LocalDate today = LocalDate.now();
LocalDateTime beginTime = LocalDateTime.of(today.withDayOfMonth(1), LocalTime.MIN);
LocalDateTime endTime = LocalDateTime.of(today.withDayOfMonth(today.lengthOfMonth()), LocalTime.MAX);
- /**
- * 新增(未编写)
- * */
@PostMapping("/add")
- private R add(@RequestBody List form){
+ public R add(@RequestBody List form) {
EmpRewardService.saveBatch(form);
- return R.success();
- }
- /**
- * 一键归档
- * */
- @PostMapping("/fileAll")
- private R fillAll(){
- //状态1-未归档;2-已归档
- List empRewardList = new ArrayList<>();
- empRewardList = EmpRewardService.lambdaQuery()
- .eq(EmpReward::getState,1)
- .apply(StringUtils.checkValNotNull(beginTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
- .apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .list();
-
- empRewardList.forEach(empReward -> {
- Long empId = empReward.getEmpId();
- Long positionId = empReward.getPositionId();
- EmpRewardService.fileOne(empId,positionId);
- empReward.setState((short) 2);
- EmpRewardService.updateById(empReward);
- });
+ EmployeeCoefficientService.fileOne(form.get(0).getEmpId(),form.get(0).getPositionId());
return R.success();
}
- /**
- * 员工特殊绩效分页
- * */
- @GetMapping("/page")
- private R page(@RequestParam("page") String page, @RequestParam("page_size") String pageSize){
+ @GetMapping("/page")
+ public R page(@RequestParam("page") String page, @RequestParam("page_size") String pageSize) {
Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.apply(StringUtils.checkValNotNull(beginTime),
"date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
.apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpRewardView::getEmpId)
- .orderByDesc(EmpRewardView::getPositionId)
- .orderByDesc(EmpRewardView::getFileId);
+ "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime);
EmpRewardViewService.page(pageInfo,queryWrapper);
+
return R.success(pageInfo);
}
- /**
- * 员工特殊绩删除
- * */
- @PostMapping("/delete")
- private R delete(@RequestBody EmpReward one){
- //归档后允许,前端限制
- if (one.getState() == 1){
- EmpRewardService.removeById(one);
- }else {
- EmpWage wage = EmpWageService.lambdaQuery()
- .eq(EmpWage::getEmpId, one.getEmpId())
- .eq(EmpWage::getPositionId, one.getPositionId())
- .eq(EmpWage::getState, 1)
- .apply(StringUtils.checkValNotNull(beginTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
- .apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .one();
+ @PostMapping("/delete")
+ public R delete(@RequestBody EmpReward one) {
+ System.out.println(one);
+ EmpRewardService.removeById(one);
- wage.setTotal(wage.getTotal().subtract(one.getReward()));
- wage.setRewardWage(wage.getRewardWage().subtract(one.getReward()));
- EmpWageService.updateById(wage);
- EmpRewardService.removeById(one);
- }
+ EmployeeCoefficientService.fileOne(one.getEmpId(),one.getPositionId());
return R.success();
}
- /**
- * 员工特殊绩修改
- * */
+
@PostMapping("/updateOne")
- private R updateOne(@RequestBody EmpReward one){
- //归档后不允许修改,前端限制
+ public R updateOne(@RequestBody EmpReward one) {
EmpRewardService.updateById(one);
- return R.success();
- }
-
-
- /**
- * 员工特殊绩搜索(导入特殊绩效)
- */
- @GetMapping("/Search")
- public R Serach(@RequestParam("page") String page
- , @RequestParam("page_size") String pageSize
- ,@RequestParam(defaultValue = "") String empName
- ,@RequestParam(defaultValue = "") String save
- ,@RequestParam(defaultValue = "") String fileName){
-
- List list = new ArrayList<>();
- list.add((short) 0);
- list.add((short) 1);
-
- switch(save){
- case "0": list.clear();list.add((short) 0);break;
- case "1": list.clear();list.add((short) 1);break;
- }
-
- Page pageInfo=new Page(Long.parseLong(page),Long.parseLong(pageSize));
- LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper.like(EmpRewardView::getEmpName,empName)
- .like(EmpRewardView::getFileName,fileName)
- .in(EmpRewardView::getSave,list)
- .apply(StringUtils.checkValNotNull(beginTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') >= date_format ({0},'%Y-%m-%d %H:%i:%s')", beginTime)
- .apply(StringUtils.checkValNotNull(endTime),
- "date_format (create_time,'%Y-%m-%d %H:%i:%s') <= date_format ({0},'%Y-%m-%d %H:%i:%s')", endTime)
- .orderByDesc(EmpRewardView::getEmpId)
- .orderByDesc(EmpRewardView::getPositionId)
- .orderByDesc(EmpRewardView::getFileId);
- EmpRewardViewService.page(pageInfo,queryWrapper);
-
- return R.success(pageInfo);
- }
- /**
- * 一键复制上月(选择保存数据)
- **/
- @PostMapping("/copy")
- private R