Commit 4bcc9a12 authored by huyuchen's avatar huyuchen

Merge branch 'MVP1.6.0' into develop

parents 1b3cb29a 86d07f37
...@@ -33,22 +33,56 @@ yifu ...@@ -33,22 +33,56 @@ yifu
└── yifu-common -- 系统公共模块 └── yifu-common -- 系统公共模块
├── yifu-common-bom -- 全局依赖管理控制 ├── yifu-common-bom -- 全局依赖管理控制
├── yifu-common-core -- 公共工具类核心包 ├── yifu-common-core -- 公共工具类核心包
├── yifu-common-dapr -- dapr相关服务配置
├── yifu-common-datasource -- 动态数据源包 ├── yifu-common-datasource -- 动态数据源包
├── yifu-common-ekp -- ekp相关配置
├── yifu-common-job -- xxl-job 封装 ├── yifu-common-job -- xxl-job 封装
├── yifu-common-ldap -- 统一用户中心
├── yifu-common-log -- 日志服务 ├── yifu-common-log -- 日志服务
├── yifu-common-mybatis -- mybatis 扩展封装 ├── yifu-common-mybatis -- mybatis 扩展封装
├── yifu-common-seata -- 分布式事务 ├── yifu-common-seata -- 分布式事务
├── yifu-common-security -- 安全工具类 ├── yifu-common-security -- 安全工具类
├── yifu-common-swagger -- 接口文档 └── yifu-common-swagger -- 接口文档
└── yifu-common-test -- oauth2.0 单元测试扩展封装
└── yifu-upms -- 通用用户权限管理模块 └── yifu-upms -- 通用用户权限管理模块
└── yifu-upms-api -- 通用用户权限管理系统公共api模块 └── yifu-upms-api -- 通用用户权限管理系统公共api模块
└── yifu-upms-biz -- 通用用户权限管理系统业务处理模块[4000] └── yifu-upms-biz -- 通用用户权限管理系统业务处理模块[4000]
└── yifu-archives -- 基础档案管理模块--员工档案相关
└── yifu-archives-api -- 基础档案管理系统公共api模块
└── yifu-archives-biz -- 基础档案管理系统业务处理模块[5001]
└── yifu-business -- B端管理模块
└── yifu-business-api -- B端管理系统公共api模块
└── yifu-business-biz -- B端管理系统业务处理模块[5034]
└── yifu-check -- 校验管理模块--手机号、身份证、银行卡校验
└── yifu-check-api -- 校验管理系统公共api模块
└── yifu-check-biz -- 校验管理系统业务处理模块[5022]
└── yifu-insurance -- 商险管理模块
└── yifu-insurance-api -- 商险管理系统公共api模块
└── yifu-insurance-biz -- 商险管理系统业务处理模块[5005]
└── yifu-job -- 定时任务管理模块
└── yifu-job-api -- 定时任务管理系统公共api模块
└── yifu-job-biz -- 定时任务管理系统业务处理模块[5004]
└── yifu-main -- 邮件管理模块
└── yifu-main-api -- 邮件管理系统公共api模块
└── yifu-main-biz -- 邮件管理系统业务处理模块[5024]
└── yifu-msg -- 消息提醒管理模块
└── yifu-msg-api -- 消息提醒管理系统公共api模块
└── yifu-msg-biz -- 消息提醒管理系统业务处理模块[5026]
└── yifu-order -- 项目订单管理模块
└── yifu-order-api -- 项目订单管理系统公共api模块
└── yifu-order-biz -- 项目订单管理系统业务处理模块[5006]
└── yifu-salary -- 薪资服务管理模块
└── yifu-salary-api -- 薪资服务管理系统公共api模块
└── yifu-salary-biz -- 薪资服务管理系统业务处理模块[5003]
└── yifu-social -- 社保服务管理模块
└── yifu-social-api -- 社保服务管理系统公共api模块
└── yifu-social-biz -- 社保服务管理系统业务处理模块[5002]
└── yifu-social -- 社保服务管理模块
└── yifu-social-api -- 社保服务管理系统公共api模块
└── yifu-social-biz -- 社保服务管理系统业务处理模块[5002]
└── yifu-visual └── yifu-visual
└── yifu-monitor -- 服务监控 [5001] └── yifu-monitor -- 服务监控 [5001]
├── yifu-codegen -- 图形化代码生成 [5002] ├── yifu-codegen -- 图形化代码生成 [5002]
├── yifu-sentinel-dashboard -- 流量高可用 [5003] └── yifu-sentinel-dashboard -- 流量高可用 [5003]
└── yifu-xxl-job-admin -- 分布式定时任务管理台 [5004]
``` ```
### 本地开发 运行 ### 本地开发 运行
......
apiVersion: apps/v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Deployment # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
name: yifu-msg # 资源的名字,在同一个namespace中必须唯一
namespace: prd-mvp # 部署在哪个namespace中
spec: # 资源规范字段
selector: # 选择器
matchLabels: # 匹配标签
app: yifu-msg
replicas: 1 # 声明副本数目
#revisionHistoryLimit: 3 # 保留历史版本
#strategy: # 策略
# rollingUpdate: # 滚动更新
# maxSurge: 30% # 最大额外可以存在的副本数,可以为百分比,也可以为整数
# maxUnavailable: 30% # 示在更新过程中能够进入不可用状态的 Pod 的最大值,可以为百分比,也可以为整数
# type: RollingUpdate # 滚动更新策略
template: # 模版
metadata: # 模版
labels: # 设定资源的标签
app: yifu-msg
annotations:
dapr.io/enabled: "true" #设定此参数为 true 注入Dapr sidecar到pod
dapr.io/app-id: "yifu-msg" #应用程序唯一 ID。 用于服务发现、状态封装 和 发布/订阅 消费者ID
dapr.io/app-port: "5026" #这个参数告诉Dapr你的应用程序正在监听哪个端口。
#dapr.io/log-level: "debug" #为 Dapr sidecar设置日志级别。 允许的值是debug,info,warn,error。 默认是 info
#dapr.io/log-as-json: "false" #将此参数设置为true以JSON格式输出日志。 默认值为 false.
#dapr.io/config: file #告诉 Dapr 要使用哪个配置 CRD
dapr.io/app-protocol: "http" #告诉 Dapr 你的应用程序正在使用哪种协议。 有效选项是 http and grpc。 Default is http
#dapr.io/app-max-concurrency: "20" #限制应用程序的并发量。 有效的数值是大于 0
#dapr.io/app-ssl: "false" #告诉Dapr通过不安全的SSL连接调用应用程序。 同时适用于HTTP和gRPC。 Traffic between your app and the Dapr sidecar is encrypted with a certificate issued by a non-trusted certificate authority, which is considered insecure. 默认值为 false.
dapr.io/metrics-port: "9090" #设置 sidecar 度量服务器的端口。 默认值为 9090
#dapr.io/sidecar-cpu-limit: 2 #Dapr sidecar可以使用的最大CPU数量。 默认情况下未设置
#dapr.io/sidecar-memory-limit: "800Mi" #Dapr sidecar可以使用的最大内存量。默认情况下未设置 请参阅 https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/ 的有效值。
#dapr.io/sidecar-cpu-request: 1 #Dapr sidecar要求的 CPU 数量
#dapr.io/sidecar-memory-request #Dapr sidecar 请求的内存数量
dapr.io/http-max-request-size: "100" #增加http和grpc服务器请求正文参数的最大大小,单位为MB,以处理大文件的上传。 默认值为 4 MB
dapr.io/http-read-buffer-size: "16" #Dapr has a default limit of 4KB for the http header read buffer size. When sending http headers that are bigger than the default 4KB, you can increase this value. Otherwise, you may encounter a Too big request header
dapr.io/sidecar-listen-addresses: "0.0.0.0"
# 更多dapr配置请参考 https://www.bookstack.cn/read/dapr-1.5-zh/cc77b74e2cc2f4d4.md
spec: # 资源规范字段
nodeSelector: # node 选择器
node-type: worker # node标签
containers: # 容器
- name: yifu-msg # 容器的名字
#image: 192.168.1.110:5500/prd-mvp/yifu-msg-biz:1.0.0 # 容器镜像地址
image: hub.worfu.com/prd-mvp/yifu-msg-biz:1.0.0 #临时地址
imagePullPolicy: Always # 每次Pod启动拉取镜像策略,三个选择 Always、Never、IfNotPresent
# Always,每次都检查;Never,每次都不检查(不管本地是否有);IfNotPresent,如果本地有就不检查,如果没有就拉取(手动测试时,
# 已经打好镜像存在docker容器中时,使用存在不检查级别,
# 默认为每次都检查,然后会进行拉取新镜像,因镜像仓库不存在,导致部署失败)
ports:
- containerPort: 5026 # 容器端口
env: # 启动环境配置信息 active and timeZone set
- name: SPRING_PROFILES_ACTIVE
value: prd
- name: TZ
value: Asia/Shanghai
resources: #资源配置限制
limits: # 最大使用
memory: "4096Mi"
#cpu: 300m # CPU,1核心 = 1000m
requests: # 容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行
#cpu: 100m
memory: "500Mi"
#livenessProbe: # pod 内部健康检查的设置
# httpGet: # 通过httpget检查健康,返回200-399之间,则认为容器正常
# path: /healthCheck # URI地址
# port: 8080 # 端口
# scheme: HTTP # 协议
# # host: 127.0.0.1 # 主机地址
# initialDelaySeconds: 30 # 表明第一次检测在容器启动后多长时间后开始
# timeoutSeconds: 5 # 检测的超时时间
# periodSeconds: 30 # 检查间隔时间
# successThreshold: 1 # 成功门槛
# failureThreshold: 5 # 失败门槛,连接失败5次,pod杀掉,重启一个新的pod
# readinessProbe: # Pod 准备服务健康检查设置
# httpGet:
# path: /healthCheck
# port: 8080
# scheme: HTTP
# initialDelaySeconds: 30
# timeoutSeconds: 5
# periodSeconds: 10
# successThreshold: 1
# failureThreshold: 5
#也可以用这种方法
#exec: 执行命令的方法进行监测,如果其退出码不为0,则认为容器正常
# command:
# - cat
# - /tmp/health
#也可以用这种方法
#tcpSocket: # 通过tcpSocket检查健康
# port: number
#ports:
# - name: http # 名称
# containerPort: 8080 # 容器开发对外的端口
# protocol: TCP # 协议
imagePullSecrets: # 镜像仓库拉取密钥
- name: login
#affinity: # 亲和性调试
# nodeAffinity: # 节点亲和力
# requiredDuringSchedulingIgnoredDuringExecution: # pod 必须部署到满足条件的节点上
# nodeSelectorTerms: # 节点满足任何一个条件就可以
# - matchExpressions: # 有多个选项,则只有同时满足这些逻辑选项的节点才能运行 pod
# - key: beta.kubernetes.io/arch
# operator: In
# values:
# - amd64
\ No newline at end of file
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
labels: # 设定资源的标签
app: yifu-msg # 资源的名字,在同一个namespace中必须唯一
name: yifu-msg # 资源的名字,在同一个namespace中必须唯一
namespace: prd-mvp # 部署在哪个namespace中
spec: # 资源规范字段
ports:
- port: 5026 # service 端口
protocol: TCP # 协议
targetPort: 5026 # 容器暴露的端口
name: http-msg # 端口名称
- port: 3500 # service 端口
protocol: TCP # 协议
targetPort: 3500 # 容器暴露的端口
name: http-msg-dapr
selector: # 选择器
app: yifu-msg # 资源名称
type: ClusterIP # ClusterIP 类型
\ No newline at end of file
...@@ -21,7 +21,7 @@ spec: # 资源规范字段 ...@@ -21,7 +21,7 @@ spec: # 资源规范字段
annotations: annotations:
dapr.io/enabled: "true" #设定此参数为 true 注入Dapr sidecar到pod dapr.io/enabled: "true" #设定此参数为 true 注入Dapr sidecar到pod
dapr.io/app-id: "yifu-permission" #应用程序唯一 ID。 用于服务发现、状态封装 和 发布/订阅 消费者ID dapr.io/app-id: "yifu-permission" #应用程序唯一 ID。 用于服务发现、状态封装 和 发布/订阅 消费者ID
dapr.io/app-port: "5026" #这个参数告诉Dapr你的应用程序正在监听哪个端口。 dapr.io/app-port: "5027" #这个参数告诉Dapr你的应用程序正在监听哪个端口。
#dapr.io/log-level: "debug" #为 Dapr sidecar设置日志级别。 允许的值是debug,info,warn,error。 默认是 info #dapr.io/log-level: "debug" #为 Dapr sidecar设置日志级别。 允许的值是debug,info,warn,error。 默认是 info
#dapr.io/log-as-json: "false" #将此参数设置为true以JSON格式输出日志。 默认值为 false. #dapr.io/log-as-json: "false" #将此参数设置为true以JSON格式输出日志。 默认值为 false.
#dapr.io/config: file #告诉 Dapr 要使用哪个配置 CRD #dapr.io/config: file #告诉 Dapr 要使用哪个配置 CRD
...@@ -41,7 +41,7 @@ spec: # 资源规范字段 ...@@ -41,7 +41,7 @@ spec: # 资源规范字段
spec: # 资源规范字段 spec: # 资源规范字段
nodeSelector: # node 选择器 nodeSelector: # node 选择器
node-type: worker # node标签 node-type: worker # node标签
kubernetes.io/hostname: yfmaster1 #kubernetes.io/hostname: yfmaster1
containers: # 容器 containers: # 容器
- name: yifu-permission # 容器的名字 - name: yifu-permission # 容器的名字
#image: 192.168.1.110:5500/prd-mvp/yifu-permission-biz:1.0.0 # 容器镜像地址 #image: 192.168.1.110:5500/prd-mvp/yifu-permission-biz:1.0.0 # 容器镜像地址
...@@ -54,12 +54,12 @@ spec: # 资源规范字段 ...@@ -54,12 +54,12 @@ spec: # 资源规范字段
- containerPort: 5027 # 容器端口 - containerPort: 5027 # 容器端口
env: # 启动环境配置信息 active and timeZone set env: # 启动环境配置信息 active and timeZone set
- name: SPRING_PROFILES_ACTIVE - name: SPRING_PROFILES_ACTIVE
value: test value: prd
- name: TZ - name: TZ
value: Asia/Shanghai value: Asia/Shanghai
resources: #资源配置限制 resources: #资源配置限制
limits: # 最大使用 limits: # 最大使用
memory: "4096Mi" memory: "2096Mi"
#cpu: 300m # CPU,1核心 = 1000m #cpu: 300m # CPU,1核心 = 1000m
requests: # 容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行 requests: # 容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行
#cpu: 100m #cpu: 100m
......
...@@ -11,10 +11,10 @@ spec: # 资源规范字段 ...@@ -11,10 +11,10 @@ spec: # 资源规范字段
protocol: TCP # 协议 protocol: TCP # 协议
targetPort: 5027 # 容器暴露的端口 targetPort: 5027 # 容器暴露的端口
name: http-permission # 端口名称 name: http-permission # 端口名称
- port: 3500 # service 端口 #- port: 3500 # service 端口
protocol: TCP # 协议 # protocol: TCP # 协议
targetPort: 3500 # 容器暴露的端口 # targetPort: 3500 # 容器暴露的端口
name: http-permission-dapr # name: http-permission-dapr
selector: # 选择器 selector: # 选择器
app: yifu-permission # 资源名称 app: yifu-permission # 资源名称
type: ClusterIP # ClusterIP 类型 type: ClusterIP # ClusterIP 类型
\ No newline at end of file
...@@ -7,7 +7,7 @@ spec: # 资源规范字段 ...@@ -7,7 +7,7 @@ spec: # 资源规范字段
selector: # 选择器 selector: # 选择器
matchLabels: # 匹配标签 matchLabels: # 匹配标签
app: yifu-salary app: yifu-salary
replicas: 1 # 声明副本数目 replicas: 2 # 声明副本数目
#revisionHistoryLimit: 3 # 保留历史版本 #revisionHistoryLimit: 3 # 保留历史版本
#strategy: # 策略 #strategy: # 策略
# rollingUpdate: # 滚动更新 # rollingUpdate: # 滚动更新
......
...@@ -163,9 +163,4 @@ public class ArchivesConstants { ...@@ -163,9 +163,4 @@ public class ArchivesConstants {
* 合同之前 * 合同之前
**/ **/
public static final String CONTRACT_CREATE_TYPE="合同之后"; public static final String CONTRACT_CREATE_TYPE="合同之后";
public static final String CONTRACT_CHECK_CONSTANTS_IDCARD_1="身份证";
public static final String CONTRACT_CHECK_CONSTANTS_IDCARD_2=" | 身份证";
public static final String CONTRACT_CHECK_CONSTANTS_NO="合同申请编号:";
} }
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* HCM档案子Vo
* @author hgw
* @date 2023-11-23 12:02:03
*/
@Data
@ColumnWidth(30)
public class HcmArchiveBasicVo implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "员工姓名")
private String empName;
@Schema(description = "身份证号")
private String empIdCard;
@Schema(description = "邮箱")
private String email;
@Schema(description = "出生日期")
private String bornDate;
@Schema(description = "性别")
private String sex;
@Schema(description = "最高学历")
private String education;
// 户口性质
@Schema(description = "户口类型")
private String residentType;
@Schema(description = "婚姻状况")
private String maritalStatus;
@Schema(description = "民族")
private String nation;
// 户籍所在地
@Schema(description = "籍贯")
private String nativePlace;
@Schema(description = "政治面貌")
private String political;
// 通讯地址
@Schema(description = "联系地址")
private String contactAddress;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* HCM档案子Vo
*
* @author hgw
* @date 2023-11-23 12:02:03
*/
@Data
@ColumnWidth(30)
public class HcmArchiveCertificateVo implements Serializable {
private static final long serialVersionUID = 1L;
// 资格类型
@Schema(description = "证照名称")
private String certificateName;
// 证书编号
@Schema(description = "证照编号")
private String certificateNo;
// 评定机构
@Schema(description = "发证机构")
private String certificateOrg;
// 无
@Schema(description = "发证日期")
private String certificateDate;
// 无
@Schema(description = "到期时间")
private String certificateExpireDate;
// 附件
@Schema(description = "证照附件")
private String annex;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* HCM档案子Vo
*
* @author hgw
* @date 2023-11-23 12:02:03
*/
@Data
@ColumnWidth(30)
public class HcmArchiveEducationVo implements Serializable {
private static final long serialVersionUID = 1L;
// 学校
@Schema(description = "学校名称")
private String schoolName;
// 工作部门
@Schema(description = "专业")
private String major;
// 工作岗位
@Schema(description = "学历")
private String education;
// 入学时间
@Schema(description = "入校日期")
private String joinDate;
// 毕业时间
@Schema(description = "毕业日期")
private String leaveDate;
// 学制类型
@Schema(description = "是否全日制")
private String isFullTime;
// 附件
@Schema(description = "学历附件")
private String annex;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* HCM档案子Vo
*
* @author hgw
* @date 2023-11-23 12:02:03
*/
@Data
@ColumnWidth(30)
public class HcmArchiveFamilyVo implements Serializable {
private static final long serialVersionUID = 1L;
// 与本人关系
@Schema(description = "称谓")
private String relationName;
// 成员姓名
@Schema(description = "姓名")
private String trueName;
// 出生日期
@Schema(description = "出生年月")
private String bornTime;
// 无
@Schema(description = "政治面貌")
private String political;
// 工作单位
@Schema(description = "工作/学习单位")
private String company;
// 无
@Schema(description = "职位/职务")
private String jobName;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* HCM档案子Vo
*
* @author hgw
* @date 2023-11-23 12:02:03
*/
@Data
@ColumnWidth(30)
public class HcmArchiveJobVo implements Serializable {
private static final long serialVersionUID = 1L;
// 工作单位
@Schema(description = "公司名称")
private String companyName;
// 工作部门
@Schema(description = "部门")
private String deptName;
// 工作岗位
@Schema(description = "职位")
private String jobName;
// 开始工作日期
@Schema(description = "开始日期")
private String joinDate;
// 结束工作日期
@Schema(description = "结束日期")
private String leaveDate;
// 无
@Schema(description = "职位描述")
private String remark;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* HCM档案子Vo
*
* @author hgw
* @date 2023-11-23 12:02:03
*/
@Data
@ColumnWidth(30)
public class HcmContractVo implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "合同类型")
private String contractType;
// 签订期限
@Schema(description = "期限类型")
private String termType;
// 无
@Schema(description = "合同签订日期")
private String contractDate;
// 合同甲方
@Schema(description = "合同公司")
private String contractCompany;
// 合同编码
@Schema(description = "合同编号")
private String contractCode;
// 合同起始日期
@Schema(description = "合同开始日期")
private String startDate;
// 合同截止日期
@Schema(description = "合同结束日期")
private String endDate;
@Schema(description = "合同状态")
private String contractStatus;
// 附件
@Schema(description = "合同附件")
private String annexArray;
// 无
@Schema(description = "合同负责人")
private String contractOwner;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 项目档案表excel对应的实体
*
* @author huyc
* @date 2022-06-20 17:54:40
*/
@Data
@ColumnWidth(30)
public class HcmEmployeeInfoVO extends RowIndex implements Serializable {
private static final long serialVersionUID = 1L;
// 基本信息
private HcmArchiveBasicVo archiveBasic;
// 工作经历
private List<HcmArchiveJobVo> archiveJob;
// 教育经历-含附件
private List<HcmArchiveEducationVo> archiveEducation;
// 资格证书-含附件
private List<HcmArchiveCertificateVo> archiveCertificate;
// 家庭成员
private List<HcmArchiveFamilyVo> archiveFamily;
// 合同信息-含附件
private List<HcmContractVo> contract;
}
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<groupId>com.yifu.cloud.plus.v1</groupId> <groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu</artifactId> <artifactId>yifu</artifactId>
<version>1.0.0</version> <version>1.0.0</version>
<relativePath/>
</parent> </parent>
<artifactId>yifu-archives-biz</artifactId> <artifactId>yifu-archives-biz</artifactId>
......
...@@ -477,4 +477,32 @@ public class TEmployeeInfoController { ...@@ -477,4 +477,32 @@ public class TEmployeeInfoController {
tEmployeeInfoService.everyDayUpdateEmployeeContractStatus(); tEmployeeInfoService.everyDayUpdateEmployeeContractStatus();
} }
/**
* @param idCard
* @Description: HCM获取人员信息
* @Author: hgw
* @Date: 2023/11/23 11:42
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.vo.HcmEmployeeInfoVO>
**/
@Operation(description = "HCM获取人员信息")
@SysLog("HCM获取人员信息--HCM调用接口")
@GetMapping("/getHcmEmpInfo")
public R<HcmEmployeeInfoVO> getHcmEmpInfo(@RequestParam String idCard) {
return tEmployeeInfoService.getHcmEmpInfo(idCard);
}
/**
* @param idCardList
* @Description: HCM获取人员信息列表
* @Author: hgw
* @Date: 2023/11/23 11:43
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List < com.yifu.cloud.plus.v1.yifu.archives.vo.HcmEmployeeInfoVO>>
**/
@Operation(description = "HCM获取人员信息列表")
@SysLog("HCM获取人员信息列表--HCM调用接口")
@PostMapping("/getHcmEmpInfoList")
public R<List<HcmEmployeeInfoVO>> getHcmEmpInfoList(@RequestBody List<String> idCardList) {
return tEmployeeInfoService.getHcmEmpInfoList(idCardList);
}
} }
...@@ -122,4 +122,16 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> { ...@@ -122,4 +122,16 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> {
int everyDayUpdateEmployeeInfoContractStatus(); int everyDayUpdateEmployeeInfoContractStatus();
void updateContractStatus(@Param("empId") String empId, @Param("status")int status); void updateContractStatus(@Param("empId") String empId, @Param("status")int status);
// hgw 2023-11-23 11:38:00 HCM获取人员信息
HcmArchiveBasicVo getHcmArchiveBasicVo(@Param("idCard") String idCard);
List<HcmArchiveJobVo> getHcmArchiveJobVo(@Param("idCard") String idCard);
List<HcmArchiveEducationVo> getHcmArchiveEducationVo(@Param("idCard") String idCard);
List<HcmArchiveCertificateVo> getHcmArchiveCertificateVo(@Param("idCard") String idCard);
List<HcmArchiveFamilyVo> getHcmArchiveFamilyVo(@Param("idCard") String idCard);
List<HcmContractVo> getHcmContractVo(@Param("idCard") String idCard);
// hgw 2023-11-23 11:38:00 HCM获取人员信息列表
List<HcmEmployeeInfoVO> getHcmEmpInfoList(@Param("idCardList") List<String> idCardList);
} }
...@@ -222,4 +222,23 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> { ...@@ -222,4 +222,23 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
void everyDayUpdateEmployeeContractStatus(); void everyDayUpdateEmployeeContractStatus();
void updateContractStatus(String empId, int status); void updateContractStatus(String empId, int status);
/**
* @param idCard
* @Description: HCM获取人员信息
* @Author: hgw
* @Date: 2023/11/23 11:35
* @return: com.yifu.cloud.plus.v1.yifu.archives.vo.HcmEmployeeInfoVO
**/
R<HcmEmployeeInfoVO> getHcmEmpInfo(String idCard);
/**
* @param idCardList
* @Description: HCM获取人员信息列表
* @Author: hgw
* @Date: 2023/11/23 11:35
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.archives.vo.HcmEmployeeInfoVO>
**/
R<List<HcmEmployeeInfoVO>> getHcmEmpInfoList(List<String> idCardList);
} }
...@@ -2533,4 +2533,40 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T ...@@ -2533,4 +2533,40 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
public void updateContractStatus(String empId, int status) { public void updateContractStatus(String empId, int status) {
baseMapper.updateContractStatus(empId,status); baseMapper.updateContractStatus(empId,status);
} }
@Override
public R<HcmEmployeeInfoVO> getHcmEmpInfo(String idCard) {
HcmEmployeeInfoVO a = this.getHcmEmployeeInfoVoByIdCard(idCard);
return R.ok(a);
}
@Override
public R<List<HcmEmployeeInfoVO>> getHcmEmpInfoList(List<String> idCardList) {
List<HcmEmployeeInfoVO> list = new ArrayList<>();
HcmEmployeeInfoVO vo;
for (String idCard : idCardList) {
vo = this.getHcmEmployeeInfoVoByIdCard(idCard);
list.add(vo);
}
return R.ok(list);
}
/**
* @param idCard
* @Description: 组装vo
* @Author: hgw
* @Date: 2023/11/23 15:24
* @return: com.yifu.cloud.plus.v1.yifu.archives.vo.HcmEmployeeInfoVO
**/
private HcmEmployeeInfoVO getHcmEmployeeInfoVoByIdCard(String idCard) {
HcmEmployeeInfoVO vo= new HcmEmployeeInfoVO();
// 基础信息
vo.setArchiveBasic(baseMapper.getHcmArchiveBasicVo(idCard));
vo.setArchiveJob(baseMapper.getHcmArchiveJobVo(idCard));
vo.setArchiveEducation(baseMapper.getHcmArchiveEducationVo(idCard));
vo.setArchiveCertificate(baseMapper.getHcmArchiveCertificateVo(idCard));
vo.setArchiveFamily(baseMapper.getHcmArchiveFamilyVo(idCard));
vo.setContract(baseMapper.getHcmContractVo(idCard));
return vo;
}
} }
...@@ -44,6 +44,8 @@ security: ...@@ -44,6 +44,8 @@ security:
- /actuator/** - /actuator/**
- /swagger-ui/** - /swagger-ui/**
- /fdd/* - /fdd/*
- /temployeeinfo/getHcmEmpInfo
- /temployeeinfo/getHcmEmpInfoList
......
...@@ -1191,4 +1191,109 @@ ...@@ -1191,4 +1191,109 @@
set CONTRACT_STATUS = #{status} set CONTRACT_STATUS = #{status}
WHERE a.id=#{empId} WHERE a.id=#{empId}
</update> </update>
<!-- hgw 根据身份证查询-基础信息 -->
<select id="getHcmArchiveBasicVo" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.HcmArchiveBasicVo">
select
a.EMP_NAME empName
,a.EMP_IDCARD empIdCard
,a.EMP_EMAIL email
,a.EMP_EMAIL email
,a.EMP_BIRTHDAY bornDate
,if(a.EMP_SEX='2','女',if(a.EMP_SEX='1','男','-')) sex
,education.label education
,registype.label residentType
,married.label maritalStatus
,nation.label nation
,concat(ifnull(p.AREA_NAME,''),ifnull(c.AREA_NAME,''),ifnull(t.AREA_NAME,'')) nativePlace
,politicalStatus.label political
,a.contact_Address contactAddress
from t_employee_info a
left join sys_area p on p.id=a.ID_PROVINCE
left join sys_area c on c.id=a.ID_CITY
left join sys_area t on t.id=a.ID_TOWN
left join view_sys_dict_item nation on nation.value=a.EMP_NATIONAL and nation.type='emp_national'
left join view_sys_dict_item education on education.value=a.HIGN_EDUCATION and education.type='education'
left join view_sys_dict_item registype on registype.value=a.EMP_REGIS_TYPE and registype.type='emp_registype'
left join view_sys_dict_item married on married.value=a.EMP_MARRI_STATUS and married.type='emp_married'
left join view_sys_dict_item politicalStatus on politicalStatus.value=a.POLITICAL_STATUS and politicalStatus.type='emp_political'
where a.DELETE_FLAG = '0' and a.EMP_IDCARD = #{idCard} limit 1
</select>
<select id="getHcmArchiveJobVo" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.HcmArchiveJobVo">
select
a.WORK_UNIT companyName
,a.WORK_DEPART deptName
,a.WORK_JOB jobName
,a.START_DATE joinDate
,a.END_DATE leaveDate
,a.REMARK remark
from t_emp_work_recording a
where a.EMP_IDCARD = #{idCard}
</select>
<select id="getHcmArchiveEducationVo" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.HcmArchiveEducationVo">
select
a.SCHOOL schoolName
,a.MAJOR major
,education.label education
,a.ENTRY_DATE joinDate
,a.GRADUTION_DATE leaveDate
,educationType.label isFullTime
,'' annex
from t_emp_education a
left join view_sys_dict_item education on education.value=a.EDUCATION_NAME and education.type='education'
left join view_sys_dict_item educationType on educationType.value=a.type and educationType.type='education_type'
where a.EMP_IDCARD = #{idCard}
</select>
<select id="getHcmArchiveCertificateVo" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.HcmArchiveCertificateVo">
select
qualification.label certificateName
,a.CERTIFICATION_NO certificateNo
,a.ASSESSMENT_UNIT certificateOrg
,'' certificateDate
,'' certificateExpireDate
,'' annex
from t_emp_professional_qualification a
left join view_sys_dict_item qualification on qualification.value=a.QUALIFICATION_TYPE and qualification.type='qualification_type'
where a.EMP_IDCARD = #{idCard}
</select>
<select id="getHcmArchiveFamilyVo" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.HcmArchiveFamilyVo">
select
relation.label relationName
,a.FAMILY_NAME trueName
,a.BIRTHDAY bornTime
,'' political
,a.WORK_UNIT company
,'' jobName
from t_emp_family a
left join view_sys_dict_item relation on relation.value=a.RELATIONSHIP_SELF and relation.type='family_relation'
where a.EMP_IDCARD = #{idCard}
</select>
<select id="getHcmContractVo" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.HcmContractVo">
select
a.CONTRACT_NAME contractType
,contractType.label termType
,'' contractDate
,a.CONTRACT_PARTY contractCompany
,a.CONTRACT_NO contractCode
,a.CONTRACT_START startDate
,a.CONTRACT_END endDate
,if(a.IN_USE='0','可用','不可用') contractStatus
,'' annexArray
,'' contractOwner
from t_employee_contract_info a
left join view_sys_dict_item contractType on contractType.value=a.CONTRACT_TYPE and contractType.type='employee_contract_type'
where a.EMP_IDCARD = #{idCard}
</select>
<!-- hgw 根据身份证查询 -->
<select id="getHcmEmpInfoList" resultMap="tEmployeeInfoMap">
select
<include refid="baseParam"/>
from t_employee_info a
where a.DELETE_FLAG = '0' and a.EMP_IDCARD in
<foreach item="item" index="index" collection="idCardList" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper> </mapper>
...@@ -5,14 +5,12 @@ public class CASproperties { ...@@ -5,14 +5,12 @@ public class CASproperties {
/** /**
* 当前应用程序的登陆界面 * 当前应用程序的登陆界面
*/ */
public static String CLIENT_LOGIN_PAGE = "https://qas-mvp-1.worfu.com/login"; public static String CLIENT_LOGIN_PAGE = "http://mvp.wanxinwork.com/login";
/** /**
* CAS服务器地址 * CAS服务器地址
*/ */
public static String CAS_SERVER_PATH = "http://192.168.1.62:8443/cas"; public static String CAS_SERVER_PATH = "http://192.168.0.240:8443/cas";
public static String SPRING_SECURITY_CAS_SERVER = "http://192.168.1.62:8443/cas/v1/tickets";
public static String SPRING_SECURITY_CAS_SERVER = "http://192.168.0.240:8443/cas/v1/tickets";
} }
...@@ -71,9 +71,9 @@ public class PasswordDecoderFilter extends UsernamePasswordAuthenticationFilter ...@@ -71,9 +71,9 @@ public class PasswordDecoderFilter extends UsernamePasswordAuthenticationFilter
wholeForm.clear(); wholeForm.clear();
wholeForm.add("service", CASproperties.CLIENT_LOGIN_PAGE); wholeForm.add("service", CASproperties.CLIENT_LOGIN_PAGE);
wholeForm.add("ticket", st); wholeForm.add("ticket", st);
obj = restTemplate.getForEntity(CASproperties.CAS_SERVER_PATH + "/p3/serviceValidate?service=" + CASproperties.CLIENT_LOGIN_PAGE + "&ticket=" + st + "&format=JSON" obj = restTemplate.exchange(CASproperties.CAS_SERVER_PATH + "/p3/serviceValidate?service=" + CASproperties.CLIENT_LOGIN_PAGE + "&ticket=" + st + "&format=JSON"
, String.class,CASproperties.CLIENT_LOGIN_PAGE,st,"JSON"); , HttpMethod.GET,entity, String.class);
log.info("cas返回用户信息》》》",JSON.toJSONString(obj)); log.info("cas返回用户信息》》》", JSON.toJSONString(obj));
if(obj.getStatusCode().value() == 200){ if(obj.getStatusCode().value() == 200){
try { try {
JSONObject result = JSON.parseObject(obj.getBody()); JSONObject result = JSON.parseObject(obj.getBody());
......
...@@ -9,6 +9,7 @@ spring: ...@@ -9,6 +9,7 @@ spring:
matching-strategy: ant_path_matcher matching-strategy: ant_path_matcher
redis: redis:
host: 127.0.0.1 host: 127.0.0.1
password: "@yf_2017"
cloud: cloud:
sentinel: sentinel:
eager: true eager: true
......
...@@ -279,6 +279,12 @@ public class EkpInsuranceUtil { ...@@ -279,6 +279,12 @@ public class EkpInsuranceUtil {
}else{ }else{
pushParam.setFd_3b178f8ba1a91c(CommonConstants.EMPTY_STRING); pushParam.setFd_3b178f8ba1a91c(CommonConstants.EMPTY_STRING);
} }
//派单客服姓名
if(null != param.getCreateName()){
pushParam.setFd_3c6f0118af2ba6(param.getCreateName());
}else{
pushParam.setFd_3c6f0118af2ba6(CommonConstants.EMPTY_STRING);
}
return pushParam; return pushParam;
} }
......
...@@ -130,6 +130,10 @@ public class EKPInsurancePushParam { ...@@ -130,6 +130,10 @@ public class EKPInsurancePushParam {
*/ */
private String fd_3b178f8ba1a91c; private String fd_3b178f8ba1a91c;
/**
* 派单客服姓名
*/
private String fd_3c6f0118af2ba6;
......
ekpfund.url=http://36.7.147.29:27007//api/sys-modeling/appModelRestService/addModel #ekpfund.url=http://192.168.0.228:8080/api/sys-modeling/appModelRestService/addModel
ekpfund.url=http://36.7.147.29:27007/api/sys-modeling/appModelRestService/addModel
ekpfund.fdModelId=181d741547a691aa68b16149a40de901 ekpfund.fdModelId=181d741547a691aa68b16149a40de901
ekpfund.fdFlowId=18290af372be55308327273487abf72a ekpfund.fdFlowId=18290af372be55308327273487abf72a
ekpfund.docStatus=20 ekpfund.docStatus=20
......
...@@ -65,6 +65,7 @@ public class LdapUtil { ...@@ -65,6 +65,7 @@ public class LdapUtil {
for (SearchResultEntry resultEntry: entryList){ for (SearchResultEntry resultEntry: entryList){
if (resultEntry.getDN().contains("uid="+usr)) { if (resultEntry.getDN().contains("uid="+usr)) {
String password = resultEntry.getAttributeValue("userPassword"); String password = resultEntry.getAttributeValue("userPassword");
log.error("ldap密码:"+password);
if (null != password) { if (null != password) {
String ldapPwd1 = password.substring(5); String ldapPwd1 = password.substring(5);
ldapPw = Base64.decode(ldapPwd1); ldapPw = Base64.decode(ldapPwd1);
......
spring.ldap.urls=ldap://192.168.1.65:389 spring.ldap.urls=ldap://192.168.0.240:389
spring.ldap.username=cn=admin,dc=worfu,dc=com spring.ldap.username=cn=admin,dc=worfu,dc=com
spring.ldap.password=yifu123456! spring.ldap.password=Yifu123456!
spring.ldap.base=dc=worfu,dc=com spring.ldap.base=dc=worfu,dc=com
\ No newline at end of file
ldap.url=192.168.1.65 ldap.url=192.168.0.240
ldap.port=389 ldap.port=389
ldap.userName=cn=admin,dc=worfu,dc=com ldap.userName=cn=admin,dc=worfu,dc=com
ldap.password=yifu123456! ldap.password=Yifu123ABC!
ldap.dn=dc=worfu,dc=com ldap.dn=dc=worfu,dc=com
ldap.baseDn=ou=\u7696\u4FE1\u4EBA\u529B\u96C6\u56E2,ou=wanxin,dc=worfu,dc=com ldap.baseDn=ou=\u7696\u4FE1\u4EBA\u529B\u96C6\u56E2,ou=wanxin,dc=worfu,dc=com
\ No newline at end of file
...@@ -178,6 +178,12 @@ public class EkpInteractiveParam implements Serializable { ...@@ -178,6 +178,12 @@ public class EkpInteractiveParam implements Serializable {
@Schema(description = "状态:有,无") @Schema(description = "状态:有,无")
private String estimateStatus; private String estimateStatus;
/**
* 客服姓名
*/
@Schema(description = "客服姓名")
private String createName;
/** /**
* EKP的 是否BPO: 是 否 * EKP的 是否BPO: 是 否
*/ */
......
...@@ -21,7 +21,7 @@ spring: ...@@ -21,7 +21,7 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
username: hroread username: hroread
password: 123456 password: 123456
jdbc-url: jdbc:mysql://192.168.0.103:3306/ekp?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true jdbc-url: jdbc:mysql://192.168.0.143:3306/ekp?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari: hikari:
minimum-idle: 10 # 最小空闲连接数量 minimum-idle: 10 # 最小空闲连接数量
idle-timeout: 60000 # 空闲连接存活最大时间,默认600000(10分钟) idle-timeout: 60000 # 空闲连接存活最大时间,默认600000(10分钟)
......
...@@ -26,13 +26,13 @@ public class MsgTask { ...@@ -26,13 +26,13 @@ public class MsgTask {
/** /**
* @Author fxj * @Author fxj
* @Description 每1分钟刷新 超时待办提醒 * @Description 每29分钟刷新 超时待办提醒
* @Date 20:01 2023/5/30 * @Date 20:01 2023/5/30
* @Param * @Param
* @return * @return
**/ **/
public void createOderOverTimeMsg() { public void createOderOverTimeMsg() {
log.info("-------------每1分钟刷新 超时待办提醒-定时任务开始------------"); log.info("-------------每29分钟刷新 超时待办提醒-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprMsgProperties.getAppUrl(), daprMsgProperties.getAppId(), HttpDaprUtil.invokeMethodPost(daprMsgProperties.getAppUrl(), daprMsgProperties.getAppId(),
"/msg/inner/updateOverTimeMsg", "", Object.class, "/msg/inner/updateOverTimeMsg", "", Object.class,
SecurityConstants.FROM_IN); SecurityConstants.FROM_IN);
......
...@@ -113,7 +113,7 @@ public class MsgInfoController { ...@@ -113,7 +113,7 @@ public class MsgInfoController {
* @Param * @Param
* @return * @return
**/ **/
@Operation(summary = "每5秒 处理订单待办提醒", description = "每5秒 处理订单待办提醒") @Operation(summary = "每10分钟 处理订单待办提醒", description = "每10分钟 处理订单待办提醒")
@Inner @Inner
@PostMapping("/inner/cancelHandledMsg") @PostMapping("/inner/cancelHandledMsg")
public void cancelHandledMsg() { public void cancelHandledMsg() {
......
...@@ -51,7 +51,10 @@ public interface MsgInfoMapper extends BaseMapper<MsgInfo> { ...@@ -51,7 +51,10 @@ public interface MsgInfoMapper extends BaseMapper<MsgInfo> {
List<MsgInfo> getMsgInfo(@Param("msgInfo") MsgInfo msgInfo); List<MsgInfo> getMsgInfo(@Param("msgInfo") MsgInfo msgInfo);
int deleteHandledMsg(); int deleteHandledMsg(@Param("nos")List<String> nos);
List<String> getOrderNos();
int insertMsg(@Param("vo") EkpInsertMsgVo vo); int insertMsg(@Param("vo") EkpInsertMsgVo vo);
} }
...@@ -210,7 +210,10 @@ public class MsgInfoServiceImpl extends ServiceImpl<MsgInfoMapper, MsgInfo> impl ...@@ -210,7 +210,10 @@ public class MsgInfoServiceImpl extends ServiceImpl<MsgInfoMapper, MsgInfo> impl
@Override @Override
public void cancelHandledMsg() { public void cancelHandledMsg() {
baseMapper.deleteHandledMsg(); List<String> orderNos = baseMapper.getOrderNos();
if (Common.isNotNull(orderNos)){
baseMapper.deleteHandledMsg(orderNos);
}
} }
@Override @Override
......
# 数据源配置
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
config:
activate:
on-profile: prd
redis:
host: 192.168.0.153
port: 22379
password: '@yf_2022'
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: ll_mysql
url: jdbc:mysql://192.168.0.143:3306/ekp?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari:
driver-class-name: ${spring.datasource.driver-class-name}
jdbc-url: ${spring.datasource.url}
username: ${spring.datasource.username}
password: ${spring.datasource.password}
minimum-idle: 10 # 最小空闲连接数量
idle-timeout: 60000 # 空闲连接存活最大时间,默认600000(10分钟)
maximum-pool-size: 12 # 连接池最大连接数,默认是10
auto-commit: true #此属性控制从池返回的连接的默认自动提交行为,默认值:true
max-lifetime: 0 #此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
## spring security 配置
security:
oauth2:
resource:
loadBalanced: true
token-info-uri: http://yifu-auth/oauth/check_token
# 直接放行URL
ignore:
urls:
- /v3/api-docs
- /actuator/**
- /swagger-ui/**
- /msg/**
\ No newline at end of file
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
</appender> </appender>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 --> <!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="INFO"> <root level="error">
<appender-ref ref="console"/> <appender-ref ref="console"/>
<appender-ref ref="debug"/> <appender-ref ref="debug"/>
<appender-ref ref="error"/> <appender-ref ref="error"/>
......
...@@ -153,19 +153,26 @@ ...@@ -153,19 +153,26 @@
</select> </select>
<delete id="deleteHandledMsg"> <delete id="deleteHandledMsg">
DELETE FROM msg_info where ALERT_TYPE ='0' and ORDER_NO not in ( DELETE FROM msg_info where ALERT_TYPE ='0'
SELECT <if test="nos != null and nos.size > 0">
b1.fd_3ac901c5184274 ORDER_NO and ORDER_NO not in
FROM <foreach item="items" index="index" collection="nos" open="(" separator="," close=")">
lbpm_workitem a #{items}
LEFT JOIN lbpm_node e ON e.fd_id = a.fd_node_id </foreach>
LEFT JOIN lbpm_process p ON p.fd_id = e.fd_process_id </if>
LEFT JOIN ekp_ea33075576149bb8a4f5 b1 ON p.fd_model_id = b1.fd_id
WHERE
e.fd_fact_node_id = 'N5'
AND b1.fd_id IS NOT NULL
)
</delete> </delete>
<select id="getOrderNos" resultType="java.lang.String">
SELECT
b1.fd_3ac901c5184274 ORDER_NO
FROM
lbpm_workitem a
LEFT JOIN lbpm_node e ON e.fd_id = a.fd_node_id
LEFT JOIN lbpm_process p ON p.fd_id = e.fd_process_id
LEFT JOIN ekp_ea33075576149bb8a4f5 b1 ON p.fd_model_id = b1.fd_id
WHERE
e.fd_fact_node_id = 'N5'
AND b1.fd_id IS NOT NULL
</select>
<insert id="insertMsg"> <insert id="insertMsg">
insert into msg_info (ID,URL,ORDER_ID,ALERT_USER,DOMAIN_NAME,CREATE_TIME,ALERT_TYPE,ORDER_NO) insert into msg_info (ID,URL,ORDER_ID,ALERT_USER,DOMAIN_NAME,CREATE_TIME,ALERT_TYPE,ORDER_NO)
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 --> <!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="INFO"> <root level="debug">
<appender-ref ref="console"/> <appender-ref ref="console"/>
<appender-ref ref="debug"/> <appender-ref ref="debug"/>
<appender-ref ref="error"/> <appender-ref ref="error"/>
......
...@@ -8,7 +8,7 @@ ARG JAR_FILE=target/yifu-permission-biz.jar ...@@ -8,7 +8,7 @@ ARG JAR_FILE=target/yifu-permission-biz.jar
COPY ${JAR_FILE} app.jar COPY ${JAR_FILE} app.jar
EXPOSE 5026 EXPOSE 5027
ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"
......
# 数据源配置
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
config:
activate:
on-profile: prd
redis:
host: 192.168.0.153
port: 22379
password: '@yf_2022'
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: ll_mysql
url: jdbc:mysql://192.168.0.143:3306/ekp?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari:
driver-class-name: ${spring.datasource.driver-class-name}
jdbc-url: ${spring.datasource.url}
username: ${spring.datasource.username}
password: ${spring.datasource.password}
minimum-idle: 10 # 最小空闲连接数量
idle-timeout: 60000 # 空闲连接存活最大时间,默认600000(10分钟)
maximum-pool-size: 12 # 连接池最大连接数,默认是10
auto-commit: true #此属性控制从池返回的连接的默认自动提交行为,默认值:true
max-lifetime: 0 #此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
## spring security 配置
security:
oauth2:
resource:
loadBalanced: true
token-info-uri: http://127.0.0.1:3000/oauth/check_token
# 直接放行URL
ignore:
urls:
- /v3/api-docs
- /actuator/**
- /swagger-ui/**
- /msg/**
\ No newline at end of file
...@@ -67,12 +67,6 @@ springdoc: ...@@ -67,12 +67,6 @@ springdoc:
#按路径匹配 #按路径匹配
# pathsToMatch: /admin/** # pathsToMatch: /admin/**
#分组名 #分组名
- group: mail - group: permission
#按包路径匹配 #按包路径匹配
packagesToScan: com.yifu.cloud.plus.v1.permission.controller packagesToScan: com.yifu.cloud.plus.v1.permission.controller
wx:
corpid: ww59249a765dd499ad
corpsecret: o3fLn0u9SFHh5_htpIRBSp2bOibTa8pZGcOJIJqvidQ
agentid: 1000003
authUrl: https://wx.worfu.com/auth/oauth/wxLogin
...@@ -26,19 +26,16 @@ import com.alibaba.excel.read.listener.ReadListener; ...@@ -26,19 +26,16 @@ import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder; import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils; import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esotericsoftware.minlog.Log;
import com.yifu.cloud.plus.v1.check.entity.TCheckBankNo; import com.yifu.cloud.plus.v1.check.entity.TCheckBankNo;
import com.yifu.cloud.plus.v1.check.entity.TCheckIdCard; import com.yifu.cloud.plus.v1.check.entity.TCheckIdCard;
import com.yifu.cloud.plus.v1.check.entity.TCheckMobile; import com.yifu.cloud.plus.v1.check.entity.TCheckMobile;
import com.yifu.cloud.plus.v1.check.vo.CheckBankNoVo; import com.yifu.cloud.plus.v1.check.vo.CheckBankNoVo;
import com.yifu.cloud.plus.v1.check.vo.CheckBatchVo; import com.yifu.cloud.plus.v1.check.vo.CheckBatchVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain; import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
...@@ -59,7 +56,6 @@ import com.yifu.cloud.plus.v1.yifu.salary.vo.*; ...@@ -59,7 +56,6 @@ import com.yifu.cloud.plus.v1.yifu.salary.vo.*;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -927,9 +923,9 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe ...@@ -927,9 +923,9 @@ public class TSalaryEmployeeServiceImpl extends ServiceImpl<TSalaryEmployeeMappe
TSalaryEmployee one = baseMapper.selectOne(Wrappers.<TSalaryEmployee>query().lambda() TSalaryEmployee one = baseMapper.selectOne(Wrappers.<TSalaryEmployee>query().lambda()
.eq(TSalaryEmployee::getEmpIdcard, vo.getEmpIdcard()) .eq(TSalaryEmployee::getEmpIdcard, vo.getEmpIdcard())
.last(CommonConstants.LAST_ONE_SQL)); .last(CommonConstants.LAST_ONE_SQL));
TSalaryEmployee old = new TSalaryEmployee();
BeanUtil.copyProperties(one,old);
if (Common.isNotNull(one)) { if (Common.isNotNull(one)) {
TSalaryEmployee old = new TSalaryEmployee();
BeanUtil.copyProperties(one,old);
one.setBankNo(vo.getBankNo()); one.setBankNo(vo.getBankNo());
one.setEmpName(vo.getEmpName()); one.setEmpName(vo.getEmpName());
one.setBankName(vo.getBankName()); one.setBankName(vo.getBankName());
......
...@@ -14,7 +14,7 @@ spring: ...@@ -14,7 +14,7 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
username: root username: root
password: yf_zsk password: yf_zsk
url: jdbc:mysql://192.168.0.222:22306/yifu_upms?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true url: jdbc:mysql://192.168.0.222:23306/yifu_upms?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
hikari: hikari:
driver-class-name: ${spring.datasource.driver-class-name} driver-class-name: ${spring.datasource.driver-class-name}
jdbc-url: ${spring.datasource.url} jdbc-url: ${spring.datasource.url}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment