From c31674603a048a12c59c65ce6f8a468f310f1626 Mon Sep 17 00:00:00 2001
From: ieaii <1069385070@qq.com>
Date: Thu, 6 Mar 2025 17:43:24 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=B8=80=E4=B8=8B=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
admin-hanhai-vue/.env.production | 2 +-
.../src/views/xcx/ClockinTeamLogList.vue | 10 +
.../mapper/ClockInProjectItemMapper.java | 4 +-
.../service/IClockInProjectItemService.java | 2 +-
.../impl/ClockInProjectItemServiceImpl.java | 4 +-
.../xcx/auth/service/impl/AuthServiceImpl.java | 1 +
.../clockin/service/impl/ClockinServiceImpl.java | 18 +-
.../src/main/resources/application-prod.yml | 346 +++++++++++++++++++++
8 files changed, 379 insertions(+), 8 deletions(-)
create mode 100644 jeecg-boot-module-system/src/main/resources/application-prod.yml
diff --git a/admin-hanhai-vue/.env.production b/admin-hanhai-vue/.env.production
index 928549d..314b72a 100644
--- a/admin-hanhai-vue/.env.production
+++ b/admin-hanhai-vue/.env.production
@@ -1,5 +1,5 @@
NODE_ENV=production
-VUE_APP_API_BASE_URL=https://clockin.java996.icu/clockin-api/
+VUE_APP_API_BASE_URL=https://admin.ptchemicalscc.com/clockin-api/
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview
VUE_APP_MAP_KEY=WPKBZ-OKICI-ZAIGE-U6TQ4-RPQIV-OXBJO
diff --git a/admin-hanhai-vue/src/views/xcx/ClockinTeamLogList.vue b/admin-hanhai-vue/src/views/xcx/ClockinTeamLogList.vue
index 8304a2e..8a4647a 100644
--- a/admin-hanhai-vue/src/views/xcx/ClockinTeamLogList.vue
+++ b/admin-hanhai-vue/src/views/xcx/ClockinTeamLogList.vue
@@ -4,6 +4,16 @@
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/mapper/ClockInProjectItemMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/mapper/ClockInProjectItemMapper.java
index 17c806b..94d1c0e 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/mapper/ClockInProjectItemMapper.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/mapper/ClockInProjectItemMapper.java
@@ -22,7 +22,7 @@ public interface ClockInProjectItemMapper extends BaseMapper
* @param projectId
* @return
*/
- @Select("SELECT * FROM clock_in_project_item WHERE del_flag = 0 AND clock_start_time <= #{time} AND clock_end_time >= #{time} AND project_id = #{projectId} ")
- ClockInProjectItem getValidClockInTime(@Param("time") String time,@Param("projectId") String projectId);
+ @Select("SELECT * FROM clock_in_project_item WHERE del_flag = 0 AND clock_start_time <= #{time} AND clock_end_time >= #{time} AND project_id = #{projectId} AND type in ('${type},2') ")
+ ClockInProjectItem getValidClockInTime(@Param("time") String time,@Param("projectId") String projectId,@Param("type") Integer type);
}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/service/IClockInProjectItemService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/service/IClockInProjectItemService.java
index 9fb67ed..b890f7d 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/service/IClockInProjectItemService.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/service/IClockInProjectItemService.java
@@ -18,6 +18,6 @@ public interface IClockInProjectItemService extends IService
* @param projectId
* @return
*/
- ClockInProjectItem getValidClockInTime(String time, String projectId);
+ ClockInProjectItem getValidClockInTime(String time, String projectId,Integer type);
}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/service/impl/ClockInProjectItemServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/service/impl/ClockInProjectItemServiceImpl.java
index d998683..d4fb7bb 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/service/impl/ClockInProjectItemServiceImpl.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockInprojectitem/service/impl/ClockInProjectItemServiceImpl.java
@@ -17,7 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
public class ClockInProjectItemServiceImpl extends ServiceImpl implements IClockInProjectItemService {
@Override
- public ClockInProjectItem getValidClockInTime(String time, String projectId) {
- return baseMapper.getValidClockInTime(time, projectId);
+ public ClockInProjectItem getValidClockInTime(String time, String projectId,Integer type) {
+ return baseMapper.getValidClockInTime(time, projectId,type);
}
}
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/auth/service/impl/AuthServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/auth/service/impl/AuthServiceImpl.java
index 00816e5..709da56 100644
--- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/auth/service/impl/AuthServiceImpl.java
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/auth/service/impl/AuthServiceImpl.java
@@ -62,6 +62,7 @@ public class AuthServiceImpl implements IAuthService {
clockinAuth.setUserId(hanHaiMember.getId());
clockinAuth.setName(applyAuthReq.getName());
clockinAuth.setCardNo(applyAuthReq.getCardNo());
+ log.error("图片地址:"+applyAuthReq.getPic());
clockinAuth.setPic(applyAuthReq.getPic());
clockinAuth.setStatus(1);
IdCardVerificationRequest req = new IdCardVerificationRequest();
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/clockin/service/impl/ClockinServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/clockin/service/impl/ClockinServiceImpl.java
index 57b8757..3bd5eea 100644
--- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/clockin/service/impl/ClockinServiceImpl.java
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/clockin/service/impl/ClockinServiceImpl.java
@@ -90,7 +90,14 @@ public class ClockinServiceImpl implements IClockinService {
.eq(ClockInTimeZone::getId, clockInProject.getTimeZone())
.one();
String zonedDateTimeNow = DateUtils2.getZonedDateTimeNow(clockInTimeZone.getTimeZone());
- ClockInProjectItem validClockInTime = clockInProjectItemService.getValidClockInTime(zonedDateTimeNow, clockInProject.getId());
+ String zonedDateTimeNowYYYYMMDD = DateUtils2.getZonedDateTimeNowYYYYMMDD(clockInTimeZone.getTimeZone());
+ Date date2 = DateUtils2.getDate(zonedDateTimeNowYYYYMMDD + " 23:59:59");
+ LocalDateTime localDateTime2 = DateUtils2.dateToDateTime(date2);
+ Integer type = 0;
+ if(DayOfWeek.SATURDAY.equals(localDateTime2.getDayOfWeek()) || DayOfWeek.SUNDAY.equals(localDateTime2.getDayOfWeek())){
+ type = 1;
+ }
+ ClockInProjectItem validClockInTime = clockInProjectItemService.getValidClockInTime(zonedDateTimeNow, clockInProject.getId(),type);
if(validClockInTime == null){
log.info("时间:"+zonedDateTimeNow+"项目id:"+clockInProject.getId());
throw new JeecgBootException("当前未到打卡时间");
@@ -283,7 +290,14 @@ public class ClockinServiceImpl implements IClockinService {
.eq(ClockInTimeZone::getId, clockInProject.getTimeZone())
.one();
String zonedDateTimeNow = DateUtils2.getZonedDateTimeNow(clockInTimeZone.getTimeZone());
- ClockInProjectItem validClockInTime = clockInProjectItemService.getValidClockInTime(zonedDateTimeNow, clockInProject.getId());
+ String zonedDateTimeNowYYYYMMDD = DateUtils2.getZonedDateTimeNowYYYYMMDD(clockInTimeZone.getTimeZone());
+ Date date2 = DateUtils2.getDate(zonedDateTimeNowYYYYMMDD + " 23:59:59");
+ LocalDateTime localDateTime2 = DateUtils2.dateToDateTime(date2);
+ Integer type = 0;
+ if(DayOfWeek.SATURDAY.equals(localDateTime2.getDayOfWeek()) || DayOfWeek.SUNDAY.equals(localDateTime2.getDayOfWeek())){
+ type = 1;
+ }
+ ClockInProjectItem validClockInTime = clockInProjectItemService.getValidClockInTime(zonedDateTimeNow, clockInProject.getId(),type);
if(validClockInTime == null){
log.info("时间:"+zonedDateTimeNow+"项目id:"+clockInProject.getId());
throw new JeecgBootException("当前未到打卡时间");
diff --git a/jeecg-boot-module-system/src/main/resources/application-prod.yml b/jeecg-boot-module-system/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..7c07f19
--- /dev/null
+++ b/jeecg-boot-module-system/src/main/resources/application-prod.yml
@@ -0,0 +1,346 @@
+server:
+ port: 8083
+ tomcat:
+ max-swallow-size: -1
+ error:
+ include-exception: true
+ include-stacktrace: ALWAYS
+ include-message: ALWAYS
+ servlet:
+ context-path: /clockin-api
+ compression:
+ enabled: true
+ min-response-size: 1024
+ mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*
+
+management:
+ endpoints:
+ web:
+ exposure:
+ include: metrics,httptrace
+
+spring:
+ servlet:
+ multipart:
+ max-file-size: 10MB
+ max-request-size: 10MB
+ mail:
+ host: smtp.qq.com
+ username:
+ password:
+ properties:
+ mail:
+ smtp:
+ auth: true
+ starttls:
+ enable: true
+ required: true
+ ## quartz定时任务,采用数据库方式
+ quartz:
+ job-store-type: jdbc
+ initialize-schema: embedded
+ #定时任务启动开关,true-开 false-关
+ auto-startup: true
+ #启动时更新己存在的Job
+ overwrite-existing-jobs: true
+ properties:
+ org:
+ quartz:
+ scheduler:
+ instanceName: MyScheduler
+ instanceId: AUTO
+ jobStore:
+ class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
+ driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+ tablePrefix: QRTZ_
+ isClustered: true
+ misfireThreshold: 60000
+ clusterCheckinInterval: 10000
+ threadPool:
+ class: org.quartz.simpl.SimpleThreadPool
+ threadCount: 10
+ threadPriority: 5
+ threadsInheritContextClassLoaderOfInitializingThread: true
+ #json 时间戳统一转换
+ jackson:
+ date-format: yyyy-MM-dd HH:mm:ss
+ time-zone: GMT+8
+ jpa:
+ open-in-view: false
+ activiti:
+ check-process-definitions: false
+ #启用作业执行器
+ async-executor-activate: false
+ #启用异步执行器
+ job-executor-activate: false
+ aop:
+ proxy-target-class: true
+ #配置freemarker
+ freemarker:
+ # 设置模板后缀名
+ suffix: .ftl
+ # 设置文档类型
+ content-type: text/html
+ # 设置页面编码格式
+ charset: UTF-8
+ # 设置页面缓存
+ cache: false
+ prefer-file-system-access: false
+ # 设置ftl文件路径
+ template-loader-path:
+ - classpath:/templates
+ # 设置静态文件路径,js,css等
+ mvc:
+ static-path-pattern: /**
+ #Spring Boot 2.6+后映射匹配的默认策略已从AntPathMatcher更改为PathPatternParser,需要手动指定为ant-path-matcher
+ pathmatch:
+ matching-strategy: ant_path_matcher
+ resource:
+ static-locations: classpath:/static/,classpath:/public/
+ autoconfigure:
+ exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
+ datasource:
+ druid:
+ stat-view-servlet:
+ enabled: true
+ loginUsername: admin
+ loginPassword: 123456
+ allow:
+ web-stat-filter:
+ enabled: true
+ dynamic:
+ druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
+ # 连接池的配置信息
+ # 初始化大小,最小,最大
+ initial-size: 5
+ min-idle: 5
+ maxActive: 20
+ # 配置获取连接等待超时的时间
+ maxWait: 60000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ timeBetweenEvictionRunsMillis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ minEvictableIdleTimeMillis: 300000
+ validationQuery: SELECT 1
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ # 打开PSCache,并且指定每个连接上PSCache的大小
+ poolPreparedStatements: true
+ maxPoolPreparedStatementPerConnectionSize: 20
+ # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+ filters: stat,wall,slf4j
+ # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+ # connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+ datasource:
+ master:
+ url: jdbc:mysql://43.143.235.33:3306/clockin?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false
+ username: root
+ password: em#g*mGZ
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ # 多数据源配置
+ #multi-datasource1:
+ #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+ #username: root
+ #password: root
+ #driver-class-name: com.mysql.cj.jdbc.Driver
+ #redis 配置
+ redis:
+ database: 0
+ host: 43.143.235.33
+ lettuce:
+ pool:
+ max-active: -1 #最大连接数据库连接数,设 -1 为没有限制
+ max-idle: 0 #最大等待连接中的数量,设 0 为没有限制
+ max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
+ min-idle: 0 #最小等待连接中的数量,设 0 为没有限制
+ shutdown-timeout: 1000ms
+ password: 'em#g*mGZ'
+ port: 6379
+#mybatis plus 设置
+mybatis-plus:
+ mapper-locations: classpath*:org/jeecg/**/xml/*Mapper.xml
+ global-config:
+ # 关闭MP3.0自带的banner
+ banner: false
+ db-config:
+ #主键类型 0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",5:"字符串全局唯一ID (idWorker 的字符串表示)";
+ id-type: ASSIGN_ID
+ # 默认数据库表下划线命名
+ table-underline: true
+ configuration:
+ # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
+ # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ # 返回类型为Map,显示null对应的字段
+ call-setters-on-nulls: true
+#jeecg专用配置
+minidao :
+ base-package: org.jeecg.modules.jmreport.*
+jeecg :
+ # 是否启用安全模式
+ safeMode: false
+ # 签名密钥串(前后端要一致,正式发布请自行修改)
+ signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a
+ # 本地:local\Minio:minio\阿里云:alioss
+ uploadType: alioss
+ path :
+ #文件上传根目录 设置
+ upload: /opt/upFiles
+ #webapp文件路径
+ webapp: /opt/webapp
+ shiro:
+ excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**
+ #阿里云oss存储和大鱼短信秘钥配置
+ oss:
+ accessKey: LTAI5tA1mo2mRHVwKLLE2V7Y
+ secretKey: PBs2Dx3mTuVSH7ReWkiZGW3Vc9i22I
+ endpoint: oss-cn-beijing.aliyuncs.com
+ bucketName: ptchemicalscc
+ staticDomain: https://image.ptchemicalscc.com
+ # ElasticSearch 6设置
+ elasticsearch:
+ cluster-name: jeecg-ES
+ cluster-nodes: 127.0.0.1:9200
+ check-enabled: false
+ # 表单设计器配置
+ desform:
+ # 主题颜色(仅支持 16进制颜色代码)
+ theme-color: "#1890ff"
+ # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)
+ upload-type: system
+ map:
+ # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home
+ baidu: ??
+ # 在线预览文件服务器地址配置
+ file-view-domain: 127.0.0.1:8012
+ # minio文件上传
+ minio:
+ minio_url: http://minio.jeecg.com
+ minio_name: ??
+ minio_pass: ??
+ bucketName: otatest
+ #大屏报表参数设置
+ jmreport:
+ mode: dev
+ #数据字典是否进行saas数据隔离,自己看自己的字典
+ saas: false
+ #是否需要校验token
+ is_verify_token: true
+ #必须校验方法
+ verify_methods: remove,delete,save,add,update
+ #自定义项目前缀
+ customPrePath:
+ pageSize:
+ - 10
+ - 20
+ - 30
+ - 40
+ #Wps在线文档
+ wps:
+ domain: https://wwo.wps.cn/office/
+ appid: ??
+ appsecret: ??
+ #xxl-job配置
+ xxljob:
+ enabled: false
+ adminAddresses: http://127.0.0.1:9080/xxl-job-admin
+ appname: ${spring.application.name}
+ accessToken: ''
+ address: 127.0.0.1:30007
+ ip: 127.0.0.1
+ port: 30007
+ logPath: logs/jeecg/job/jobhandler/
+ logRetentionDays: 30
+ route:
+ config:
+ data-id: jeecg-gateway-router
+ group: DEFAULT_GROUP
+ #自定义路由配置 yml nacos database
+ data-type: database
+ #分布式锁配置
+ redisson:
+ address: 127.0.0.1:6379
+ password:
+ type: STANDALONE
+ enabled: true
+#cas单点登录
+cas:
+ prefixUrl: http://cas.example.org:8443/cas
+#Mybatis输出sql日志
+logging:
+ level:
+ org.jeecg.modules.system.mapper : info
+#swagger
+knife4j:
+ #开启增强配置
+ enable: true
+ #开启生产环境屏蔽
+ production: false
+ basic:
+ enable: false
+ username: jeecg
+ password: jeecg1314
+#第三方登录
+justauth:
+ enabled: true
+ type:
+ GITHUB:
+ client-id: ??
+ client-secret: ??
+ redirect-uri: http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/github/callback
+ WECHAT_ENTERPRISE:
+ client-id: ??
+ client-secret: ??
+ redirect-uri: http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/wechat_enterprise/callback
+ agent-id: ??
+ DINGTALK:
+ client-id: ??
+ client-secret: ??
+ redirect-uri: http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/dingtalk/callback
+ WECHAT_OPEN:
+ client-id: ??
+ client-secret: ??
+ redirect-uri: http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/wechat_open/callback
+ cache:
+ type: default
+ prefix: 'demo::'
+ timeout: 1h
+#第三方APP对接
+third-app:
+ enabled: false
+ type:
+ #企业微信
+ WECHAT_ENTERPRISE:
+ enabled: false
+ #CORP_ID
+ client-id: ??
+ #SECRET
+ client-secret: ??
+ #自建应用id
+ agent-id: ??
+ #自建应用秘钥(新版企微需要配置)
+ # agent-app-secret: ??
+ #钉钉
+ DINGTALK:
+ enabled: false
+ # appKey
+ client-id: ??
+ # appSecret
+ client-secret: ??
+ agent-id: ??
+
+weixin:
+ mpAppId: wx69aadfc270684d2e
+ mpAppSecret: bdc1855fdeaf7ad88f338e865b65d7ca
+ orderNotifyUrl: https://admin.ptchemicalscc.com/hotel/order/notify
+ replaceOrderNotifyUrl: https://admin.ptchemicalscc.com/hotel/order/replace/notify
+
+tencent:
+ cloud:
+ appId: 1330380503
+ secretId: AKIDCHUaSI1Vr00pTu89xZzDG9rM2WouoW2L
+ secretKey: DE3g9QXTFTWO7f2EF7HQQNG1eTVYTDqK
+ face:
+ groupName: test
+ region: ap-beijing
+ endpoint: faceid.tencentcloudapi.com