9060 hai 2 meses
pai
achega
8632d622cc

BIN=BIN
app/workSheetSystem/lib/shr_sso_client.jar


+ 3 - 5
app/workSheetSystem/pom.xml

@@ -226,7 +226,9 @@
     <profiles>
         <profile>
             <id>dev</id>
-
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
             <dependencies>
                 <!-- 开发环境特有的依赖 -->
                 <dependency>
@@ -242,12 +244,8 @@
         </profile>
         <profile>
             <id>pro</id>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-            </activation>
             <dependencies>
                 <!-- 生产环境特有的依赖 -->
-
                 <dependency>
                     <groupId>com.kingdee.sso</groupId>   <!--自定义-->
                     <artifactId>sso-sdk</artifactId>  <!--自定义-->

+ 2 - 2
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/config/Swagger2Config.java

@@ -25,8 +25,8 @@ import static com.google.common.collect.Lists.newArrayList;
  * @description Swagger2配置类
  * 访问路径:http://localhost:9092/swagger-ui.html
  */
-//@Configuration
-//@EnableSwagger2
+@Configuration
+@EnableSwagger2
 public class Swagger2Config extends WebMvcConfigurationSupport {
     //api接口包扫描路径
     private static final String SWAGGER_SCAN_BASE_PACKAGE_controller = "com.qy.worksheetsystem.controller";

+ 39 - 5
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/controller/PersonWorkController.java

@@ -1,6 +1,7 @@
 package com.qy.worksheetsystem.controller;
 
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
 import com.google.common.collect.Maps;
 import com.kingdee.shr.api.SHRClient;
 import com.qy.worksheetsystem.model.MessageResult;
@@ -11,6 +12,7 @@ import com.qy.worksheetsystem.service.PersonService;
 import com.qy.worksheetsystem.service.PersonWorkService;
 import com.qy.worksheetsystem.service.WorkCalendarService;
 import com.qy.worksheetsystem.util.DateUtil;
+import com.qy.worksheetsystem.util.HutoolCacheUtils;
 import com.qy.worksheetsystem.util.JWTUtil;
 import com.qy.worksheetsystem.vo.InsertJobWorkingVO;
 import com.qy.worksheetsystem.vo.WorkHoursReport;
@@ -27,10 +29,8 @@ import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+
 @Slf4j
 @RestController
 @RequestMapping("/work/personwork")
@@ -42,6 +42,19 @@ public class PersonWorkController {
     private PersonService personService;
     @Value("${HR.ais.url}")
     private String url;
+
+
+    public static boolean setIfAbsent(String token,Object o){
+        boolean b =false;
+        if (Objects.equals(o, HutoolCacheUtils.get(token)) ) {
+            b = false;
+        }else {
+            b=true;
+        }
+        HutoolCacheUtils.put(token, o);
+        return b;
+    }
+
     @ApiOperation(value = "获取可填报日期的已填报小时数", notes = "获取可填报日期的已填报小时数,判断每天填报是否超8小时")
     @RequestMapping(value = "/getAvailableDateInfo", method = RequestMethod.GET)
     @ApiImplicitParams({
@@ -74,6 +87,8 @@ public class PersonWorkController {
         return result;
     }
 
+
+
     @ApiOperation(value = "报工新增", notes = "报工新增")
     @RequestMapping(value = "/insertWork", method = RequestMethod.POST)
     @ApiImplicitParams({
@@ -86,7 +101,10 @@ public class PersonWorkController {
             if (StringUtils.isEmpty(number)) {
                 return MessageResult.error("token异常");
             }
-
+            String keyToken = token + "insertWork";
+            if (setIfAbsent(keyToken,jobWork)) {
+                return MessageResult.error("您已提交该报工,请勿重复提交");
+            }
             Map<String, Object> map = new HashMap<>();
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
             String beginTime = jobWork.getBeginTime();
@@ -289,6 +307,10 @@ public class PersonWorkController {
             if (StringUtils.isEmpty(number)) {
                 return MessageResult.error("token异常");
             }
+            String keyToken = token+"updateWork";
+            if (setIfAbsent(keyToken,jobWork)) {
+                return MessageResult.error("您已提交该报工,请勿重复提交");
+            }
             String action = jobWork.getAction();
             Map<String, String> person = personService.getPersonByJobNo(number);
             String userNumber = person.get("userNumber");
@@ -352,6 +374,10 @@ public class PersonWorkController {
         String number = JWTUtil.getNumber(token);
         if (StringUtils.isEmpty(number)) {
             return MessageResult.error("token异常");
+        }
+        String keyToken = token+"deleteWork";
+        if (setIfAbsent(keyToken,id)) {
+            return MessageResult.error("您已提交该报工,请勿重复提交");
         }
          int i = personWorkService.deleteWork(number,id.get("id"));
         MessageResultV2 result=MessageResultV2.success();
@@ -388,6 +414,10 @@ public class PersonWorkController {
         if (StringUtils.isEmpty(number)) {
             return MessageResult.error("token异常");
         }
+        String keyToken = token+"submitWork";
+        if (setIfAbsent(keyToken,id)) {
+            return MessageResult.error("您已提交该报工,请勿重复提交");
+        }
         Map<String, String> person = personService.getPersonByJobNo(number);
         String userNumber=person.get("userNumber");
         int i = personWorkService.submitWork(userNumber,id);
@@ -408,6 +438,10 @@ public class PersonWorkController {
         if (StringUtils.isEmpty(number)) {
             return MessageResult.error("token异常");
         }
+        String keyToken = token+"revocaWork";
+        if (setIfAbsent(keyToken,id)) {
+            return MessageResult.error("您已提交该报工,请勿重复提交");
+        }
         Map<String, String> person = personService.getPersonByJobNo(number);
         String userNumber=person.get("userNumber");
         int i = personWorkService.revocaWork(userNumber,id);

+ 24 - 1
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/vo/WorkHoursReport.java

@@ -2,8 +2,9 @@ package com.qy.worksheetsystem.vo;
 
 import lombok.Data;
 
+import java.util.Arrays;
 import java.util.List;
-import java.util.Map;
+import java.util.Objects;
 
 @Data
 public class WorkHoursReport {
@@ -13,4 +14,26 @@ public class WorkHoursReport {
     private String action;
     private String id;
     private List<WorkHoursReportEntry> entries;
+    @Override
+    public boolean equals(Object obj) {
+
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null || getClass() != obj.getClass()) {
+            return false;
+        }
+
+        WorkHoursReport person = (WorkHoursReport) obj;
+        boolean b =Objects.equals(beginTime, person.beginTime) && Objects.equals(endTime, person.endTime)
+                &&Objects.equals(state, person.state)
+                &&Objects.equals(action, person.action)&&Objects.equals(id, person.id);
+        boolean b2 = Arrays.deepEquals(entries.toArray(), person.entries.toArray());
+        return b&&b2;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(beginTime,endTime,state,action,id,entries);
+    }
 }

+ 21 - 0
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/vo/WorkHoursReportEntry.java

@@ -3,11 +3,32 @@ package com.qy.worksheetsystem.vo;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.Arrays;
 import java.util.Date;
+import java.util.Objects;
+
 @Data
 public class WorkHoursReportEntry {
     private String workingHours;
     private String projectId;
     //private String projectName;
     private String jobContent;
+    @Override
+    public boolean equals(Object obj) {
+
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null || getClass() != obj.getClass()) {
+            return false;
+        }
+        WorkHoursReportEntry person = (WorkHoursReportEntry) obj;
+        return Objects.equals(workingHours, person.workingHours)
+                && Objects.equals(projectId, person.projectId)&&Objects.equals(jobContent, person.jobContent);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(workingHours, projectId,jobContent);
+    }
 }

+ 8 - 8
app/workSheetSystem/src/main/resources/application.yml

@@ -5,7 +5,7 @@ spring:
       enabled: true
       force: true
   profiles:
-    active: pro
+    active: dev
 
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
@@ -14,11 +14,11 @@ spring:
     #    url: jdbc:sqlserver://127.0.01:1433;DatabaseName=test;allowMultiQueries=true
     #    username: sa
     #    password: lhbj
-    url: jdbc:oracle:thin:@//172.20.1.211:1521/shr
+    url: jdbc:oracle:thin:@//10.3.119.205:1521/orcl
     # url: jdbc:sqlserver://192.168.1.250:1433;DatabaseName=demo0708;allowMultiQueries=true;encrypt=true;trustServerCertificate=true
-    username: htyshr
+    username: HTYSHRTEST
     #password: ENC(ksqle:xq5lQYb8beOCrxhD494xPHahBtX/hQeS)
-    password: ENC(ksqle:jvfwVZzYRnsQuqDKCMr/OTBl+uoJKlWY)
+    password: ENC(ksqle:PUQZ6yEPxnYmwhq8Kdp65+8KJgk3JJZ8)
     initialSize: 5
     minIdle: 5
     maxActive: 20
@@ -30,7 +30,7 @@ spring:
     testOnBorrow: false
     testOnReturn: false
     poolPreparedStatements: true
-      #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
+    #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
     #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
     #则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
     filters: stat,wall,log4j
@@ -67,7 +67,7 @@ server:
 mybatis:
   mapper-locations: classpath:model/mapper/**/*.xml
 pagehelper:
-  helper-dialect: oracle
+  helper-dialect: sqlServer
   reasonable: true
   support-methods-arguments: false
   params: count=countSql
@@ -89,9 +89,9 @@ HR:
   tripType: eBUAADAXEjtyrXZI
   #密钥
   ais:
-    password: htyshr
+    password: HTYSHRTEST
     effective: 300000
-    url: https://172.20.1.210:8080/shr
+    url: https://10.3.119.205:80/shr
     serviceName: workHoursReportService
     codingRuleService: codingRuleService
 #企业微信

+ 104 - 0
app/workSheetSystem/src/main/resources/logback.xml

@@ -0,0 +1,104 @@
+<configuration>
+    <!--本文主要输出日志为控制台日志,系统日志,sql日志,异常日志-->
+    <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, -->
+    <!--控制台-->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d %p (%file:%line\)- %m%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--系统info级别日志-->
+    <!--<File> 日志目录,没有会自动创建-->
+    <!--<rollingPolicy>日志策略,每天简历一个日志文件,或者当天日志文件超过64MB时-->
+    <!--encoder 日志编码及输出格式-->
+    <appender name="fileLog"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>/home/worksheet/fileLog.log</File>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>/home/worksheet/fileLog.log.%d.%i</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <!-- or whenever the file size reaches 64 MB -->
+                <maxFileSize>64 MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>
+                %d %p (%file:%line\)- %m%n
+            </pattern>
+            <charset>UTF-8</charset>
+            <!-- 此处设置字符集 -->
+        </encoder>
+    </appender>
+
+    <!--sql日志-->
+    <appender name="sqlFile"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>/home/worksheet/sql_info.log</File>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>/home/worksheet/sql_info.log.%d.%i</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <!-- or whenever the file size reaches 64 MB -->
+                <maxFileSize>64 MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <!--对记录事件进行格式化。负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流。-->
+        <encoder>
+            <!--用来设置日志的输入格式-->
+            <pattern>
+                %d %p (%file:%line\)- %m%n
+            </pattern>
+            <charset>UTF-8</charset>
+            <!-- 此处设置字符集 -->
+        </encoder>
+    </appender>
+
+
+    <!--异常日志-->
+    <appender name="errorFile"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>log/error/errorFile.log</File>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>log/error/errorFile.%d.log.%i</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <!-- or whenever the file size reaches 64 MB -->
+                <maxFileSize>64 MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <!--对记录事件进行格式化。负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流。-->
+        <encoder>
+            <!--用来设置日志的输入格式-->
+            <pattern>
+                %d %p (%file:%line\)- %m%n
+            </pattern>
+            <charset>UTF-8</charset>
+            <!-- 此处设置字符集 -->
+        </encoder>
+        <!--
+            日志都在这里 过滤出 error
+            使用 try {}catch (Exception e){} 的话异常无法写入日志,可以在catch里用logger.error()方法手动写入日志
+            -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+    <!--  日志输出级别 -->
+    <!--All\DEBUG\INFO\WARN\ERROR\FATAL\OFF-->
+    <!--打印info级别日志,分别在控制台,fileLog,errorFile输出
+        异常日志在上面由过滤器过滤出ERROR日志打印
+    -->
+    <root level="INFO">
+        <appender-ref ref="fileLog" />
+        <appender-ref ref="console" />
+        <appender-ref ref="errorFile" />
+    </root>
+
+    <!--打印sql至sqlFile文件日志-->
+    <logger name="com.qy.worksheetsystem.model.mapper" level="DEBUG" additivity="false">
+        <appender-ref ref="console" />
+        <appender-ref ref="sqlFile" />
+    </logger>
+</configuration>

BIN=BIN
app/workSheetSystem/src/test/resources/7494583_oa.ysstech.com.pfx


+ 0 - 0
app/workSheetSystem/src/main/resources/application-test.yml → app/workSheetSystem/src/test/resources/application-dev.yml


+ 0 - 0
app/workSheetSystem/src/main/resources/application-devn.yml → app/workSheetSystem/src/test/resources/application-devn.yml


+ 0 - 0
app/workSheetSystem/src/main/resources/application-pron.yml → app/workSheetSystem/src/test/resources/application-pron.yml


+ 114 - 0
app/workSheetSystem/src/test/resources/application-test.yml

@@ -0,0 +1,114 @@
+spring:
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+#引入druid数据源
+ #   driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+#    url: jdbc:sqlserver://127.0.01:1433;DatabaseName=test;allowMultiQueries=true
+#    username: sa
+#    password: lhbj
+    url: jdbc:oracle:thin:@//10.3.119.205:1521/orcl
+    # url: jdbc:sqlserver://192.168.1.250:1433;DatabaseName=demo0708;allowMultiQueries=true;encrypt=true;trustServerCertificate=true
+    username: HTYSHRTEST
+    #password: ENC(ksqle:xq5lQYb8beOCrxhD494xPHahBtX/hQeS)
+    password: ENC(ksqle:PUQZ6yEPxnYmwhq8Kdp65+8KJgk3JJZ8)
+    initialSize: 5
+    minIdle: 5
+    maxActive: 20
+    maxWait: 60000
+    timeBetweenEvictionRunsMillis: 60000
+    minEvictableIdleTimeMillis: 300000
+    #validationQuery: SELECT 1 FROM DUAL
+    testWhileIdle: true
+    testOnBorrow: false
+    testOnReturn: false
+    poolPreparedStatements: true
+      #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
+      #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
+      #则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
+    filters: stat,wall,log4j
+#    filter:
+#      wall:
+#        config:
+#          multi-statement-allow: true
+#          none-base-statement-allow: true
+    maxPoolPreparedStatementPerConnectionSize: 20
+    useGlobalDataSourceStat: true
+    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
+    # schema: 设置模式,例如 postgresql 有模式这个概念
+    #url: jdbc:sqlserver://192.168.73.2:1433;DatabaseName=sHR820
+    #username: sa
+    #password: YsstechHR2020
+
+server:
+  compression:
+    enabled: true
+    mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
+    min-response-size: 1024
+  port: 9092  #注意,这里是https访问的的端口号
+  undertow:
+    io-threads: 8 # 设置IO线程数
+    worker-threads: 128 # 阻塞任务线程池大小
+    buffer-size: 1024 # 每个缓冲区的大小
+    direct-buffers: true # 是否分配直接内存
+#  ssl:
+#    key-store: classpath:7494583_oa.ysstech.com.pfx
+#    key-store-password: 95zCuxIB
+#    key-store-type: PKCS12
+#    enabled: true
+###mybatis??
+mybatis:
+  mapper-locations: classpath:model/mapper/**/*.xml
+pagehelper:
+  helper-dialect: sqlServer
+  reasonable: true
+  support-methods-arguments: false
+  params: count=countSql
+
+
+  ##config: classpath:logback.xml
+HR:
+  #报工顶级组织,空表示所有
+  OrgNumber:
+  #正式员工
+  EmployeeType: 00000000-0000-0000-0000-000000000001A29E85B3
+  #离职员工
+  LeaveType: 00000000-0000-0000-0000-000000000007A29E85B3
+
+  HolidayPolicy: eBUAADBqEZxfwQkQ
+  #年假
+  AttendanceType: eBUAADAXEjxyrXZI
+  #出差
+  tripType: eBUAADAXEjtyrXZI
+#企业微信
+weixin:
+  corpsecret:
+  corpid:
+  AgentId:
+  url:
+  ks:
+    corpid:
+    corpsecret:
+    AgentId:
+
+feishu:
+  AppID: cli_a7b1b05025bad013
+  AppSecret: 1ZEjIWfJOlTWUJ28lOeF5ekj4435rHEV
+
+yunzhijia:
+  AppID: 500968225
+  AppSecret: Lu8N400ouEfPUBaUShl5
+
+  #  corpsecret: 1PDS3kcxNu4pCkXAyZutnzUq2xoS-POnZzqLcRW5_4I
+  #  corpid: wwad966bd4d6a788ce
+  #  AgentId: 1000040
+  #  url: https://oa.ysstech.com:19000/
+  #审批消息企微消息推送
+  ks:
+    corpsecret: CmzzYQ4evcyBjzyjYwl2ycDOk3tNm8DDiUv0gfysPls
+    corpid: wwad966bd4d6a788ce
+    AgentId: 1000036
+    # corpsecret: r_dthG2V-w6g6tpoEgjnNJS_dv5_SCAQl0PfV8z_H4U
+    #corpid: wwbfa0b02a7ede338c
+    #AgentId: 1000006
+
+

+ 92 - 0
app/workSheetSystem/src/test/resources/application.YSSyml

@@ -0,0 +1,92 @@
+spring:
+  datasource:
+    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+    #url: jdbc:sqlserver://127.0.01:1433;DatabaseName=test001
+    #username: sa
+    #password: qy123456.
+    url: jdbc:sqlserver://192.168.73.2:1433;DatabaseName=sHR820
+    username: sa
+    password: kingdee123
+    hikari:
+      maximum-pool-size: 50  # 最大连接数
+      minimum-idle: 5 # 最小空闲数
+      connection-timeout: 2000 # 获取连接超时时间; 默认30s
+      pool-name: sHR820_hikari # 连接池名称
+      idle-timeout: 600000 # 空闲超时时间;默认是十分钟;空闲时间超过设定时间则会被回收
+      auto-commit: true # 是否自动提交
+      max-lifetime: 1800000 # 最大存活时间,默认30分钟
+      # connection-test-query: SELECT 1  # 连接数据库后测试语句
+      validation-timeout: 1000 #
+      # schema: 设置模式,例如 postgresql 有模式这个概念
+    #url: jdbc:sqlserver://192.168.73.2:1433;DatabaseName=sHR820
+    #username: sa
+    #password: YsstechHR2020
+
+server:
+  compression:
+    enabled: true
+    mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
+    min-response-size: 1024
+  port: 9090  #注意,这里是https访问的的端口号
+#  ssl:
+#    key-store: classpath:7494583_oa.ysstech.com.pfx
+#    key-store-password: 95zCuxIB
+#    key-store-type: PKCS12
+#    enabled: true
+###mybatis??
+mybatis:
+  mapper-locations: classpath:model/mapper/**/*.xml
+pagehelper:
+  helper-dialect: sqlServer
+  reasonable: true
+  support-methods-arguments: false
+  params: count=countSql
+# ????
+logging:
+  level:
+    com.qy.worksheetsystem: debug
+    org.springframework: warn
+    org:
+      pringframework:
+      security: DEBUG
+      hibernate: DEBUG
+      mybatis: DEBUG
+  file:
+    pattern: '%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'
+    name: worksheetsystem.log
+    path: /
+  pattern:
+    console: '%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'
+  ##  file: 'E:\nginx-1.20.2\workSheetSystem.log'
+
+  ##config: classpath:logback.xml
+HR:
+  #报工顶级组织,空表示所有
+  OrgNumber:
+  #正式员工
+  EmployeeType: 00000000-0000-0000-0000-000000000001A29E85B3
+
+  HolidayPolicy: eBUAADBqEZxfwQkQ
+  #年假
+  AttendanceType: eBUAADAXEjxyrXZI
+  #出差
+  tripType: eBUAADAXEjtyrXZI
+#企业微信
+weixin:
+  #corpsecret: r_dthG2V-w6g6tpoEgjnNJS_dv5_SCAQl0PfV8z_H4U
+  #corpid: wwbfa0b02a7ede338c
+  #AgentId: 1000006
+  #url: https://oa.ysstech.com:19000/
+  corpsecret: 1PDS3kcxNu4pCkXAyZutnzUq2xoS-POnZzqLcRW5_4I
+  corpid: wwad966bd4d6a788ce
+  AgentId: 1000040
+  url: https://oa.ysstech.com:19000/
+  #审批消息企微消息推送
+  ks:
+    corpsecret: m9RUQpKKLDd_QGupp2_9CPtMSf0rY4nv1qSkWcHe-gk
+    corpid: wwad966bd4d6a788ce
+    AgentId: 1000020
+    # corpsecret: r_dthG2V-w6g6tpoEgjnNJS_dv5_SCAQl0PfV8z_H4U
+    #corpid: wwbfa0b02a7ede338c
+    #AgentId: 1000006
+

+ 110 - 0
app/workSheetSystem/src/test/resources/application.Yss86yml

@@ -0,0 +1,110 @@
+spring:
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource #引入druid数据源
+#    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+#    url: jdbc:sqlserver://127.0.01:1433;DatabaseName=test;allowMultiQueries=true
+#    username: sa
+#    password: lhbj
+    url: jdbc:sqlserver://10.0.73.2:1433;allowMultiQueries=true;DatabaseName=sHR860
+    username: sa
+    password: Ysstech2023.com!
+    initialSize: 5
+    minIdle: 5
+    maxActive: 20
+    maxWait: 60000
+    timeBetweenEvictionRunsMillis: 60000
+    minEvictableIdleTimeMillis: 300000
+    validationQuery: SELECT getDate()
+    testWhileIdle: true
+    testOnBorrow: false
+    testOnReturn: false
+    poolPreparedStatements: true
+      #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
+      #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
+      #则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
+    filters: stat,wall,log4j
+#    filter:
+#      wall:
+#        config:
+#          multi-statement-allow: true
+#          none-base-statement-allow: true
+    maxPoolPreparedStatementPerConnectionSize: 20
+    useGlobalDataSourceStat: true
+    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
+    # schema: 设置模式,例如 postgresql 有模式这个概念
+    #url: jdbc:sqlserver://192.168.73.2:1433;DatabaseName=sHR820
+    #username: sa
+    #password: YsstechHR2020
+
+server:
+  compression:
+    enabled: true
+    mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
+    min-response-size: 1024
+  port: 9091  #注意,这里是https访问的的端口号
+#  ssl:
+#    key-store: classpath:7494583_oa.ysstech.com.pfx
+#    key-store-password: 95zCuxIB
+#    key-store-type: PKCS12
+#    enabled: true
+###mybatis??
+mybatis:
+  mapper-locations: classpath:model/mapper/**/*.xml
+pagehelper:
+  helper-dialect: sqlServer
+  reasonable: true
+  support-methods-arguments: false
+  params: count=countSql
+# ????
+logging:
+  level:
+    com.qy.worksheetsystem: debug
+    org.springframework: warn
+    org:
+      pringframework:
+      security: DEBUG
+      hibernate: DEBUG
+      mybatis: DEBUG
+  file:
+    pattern: '%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'
+    name: worksheetsystem.log
+    path: /
+  pattern:
+    console: '%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'
+  ##  file: 'E:\nginx-1.20.2\workSheetSystem.log'
+
+  ##config: classpath:logback.xml
+HR:
+  #报工顶级组织,空表示所有
+  OrgNumber:
+  #正式员工
+  EmployeeType: 00000000-0000-0000-0000-000000000001A29E85B3
+  #离职员工
+  LeaveType: 00000000-0000-0000-0000-000000000007A29E85B3
+
+  HolidayPolicy: eBUAADBqEZxfwQkQ
+  #年假
+  AttendanceType: eBUAADAXEjxyrXZI
+  #出差
+  tripType: eBUAADAXEjtyrXZI
+#企业微信
+weixin:
+  corpsecret: FeUDSNwS9Mk5aBnEI_77nw-guVGWMY72ngckDTfUADI
+  corpid: wwad966bd4d6a788ce
+  AgentId: 1000045
+  url: https://oa.ysstech.com:19001/
+
+  #  corpsecret: 1PDS3kcxNu4pCkXAyZutnzUq2xoS-POnZzqLcRW5_4I
+  #  corpid: wwad966bd4d6a788ce
+  #  AgentId: 1000040
+  #  url: https://oa.ysstech.com:19000/
+  #审批消息企微消息推送
+  ks:
+    corpsecret: CmzzYQ4evcyBjzyjYwl2ycDOk3tNm8DDiUv0gfysPls
+    corpid: wwad966bd4d6a788ce
+    AgentId: 1000036
+    # corpsecret: r_dthG2V-w6g6tpoEgjnNJS_dv5_SCAQl0PfV8z_H4U
+    #corpid: wwbfa0b02a7ede338c
+    #AgentId: 1000006
+
+

+ 105 - 0
app/workSheetSystem/src/test/resources/application.localyml

@@ -0,0 +1,105 @@
+spring:
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource #引入druid数据源
+#    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+#    url: jdbc:sqlserver://127.0.01:1433;DatabaseName=test
+#    username: sa
+#    password: lhbj
+    url: jdbc:sqlserver://192.168.73.2:1433;DatabaseName=sHR860
+    username: sa
+    password: kingdee123
+    initialSize: 5
+    minIdle: 5
+    maxActive: 20
+    maxWait: 60000
+    timeBetweenEvictionRunsMillis: 60000
+    minEvictableIdleTimeMillis: 300000
+    validationQuery: SELECT getDate()
+    testWhileIdle: true
+    testOnBorrow: false
+    testOnReturn: false
+    poolPreparedStatements: true
+      #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
+      #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
+      #则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
+    filters: stat,wall,log4j
+    maxPoolPreparedStatementPerConnectionSize: 20
+    useGlobalDataSourceStat: true
+    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
+    # schema: 设置模式,例如 postgresql 有模式这个概念
+    #url: jdbc:sqlserver://192.168.73.2:1433;DatabaseName=sHR820
+    #username: sa
+    #password: YsstechHR2020
+
+server:
+  compression:
+    enabled: true
+    mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
+    min-response-size: 1024
+  port: 9090  #注意,这里是https访问的的端口号
+#  ssl:
+#    key-store: classpath:7494583_oa.ysstech.com.pfx
+#    key-store-password: 95zCuxIB
+#    key-store-type: PKCS12
+#    enabled: true
+###mybatis??
+mybatis:
+  mapper-locations: classpath:model/mapper/**/*.xml
+pagehelper:
+  helper-dialect: sqlServer
+  reasonable: true
+  support-methods-arguments: false
+  params: count=countSql
+# ????
+logging:
+  level:
+    com.qy.worksheetsystem: debug
+    org.springframework: warn
+    org:
+      pringframework:
+      security: DEBUG
+      hibernate: DEBUG
+      mybatis: DEBUG
+  file:
+    pattern: '%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'
+    name: worksheetsystem.log
+    path: /
+  pattern:
+    console: '%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'
+  ##  file: 'E:\nginx-1.20.2\workSheetSystem.log'
+
+  ##config: classpath:logback.xml
+HR:
+  #报工顶级组织,空表示所有
+  OrgNumber:
+  #正式员工
+  EmployeeType: 00000000-0000-0000-0000-000000000001A29E85B3
+  #离职员工
+  LeaveType: 00000000-0000-0000-0000-000000000007A29E85B3
+
+  HolidayPolicy: eBUAADBqEZxfwQkQ
+  #年假
+  AttendanceType: eBUAADAXEjxyrXZI
+  #出差
+  tripType: eBUAADAXEjtyrXZI
+#企业微信
+weixin:
+  corpsecret: FeUDSNwS9Mk5aBnEI_77nw-guVGWMY72ngckDTfUADI
+  corpid: wwad966bd4d6a788ce
+  AgentId: 1000045
+  url: https://oa.ysstech.com:19001/
+
+  #  corpsecret: 1PDS3kcxNu4pCkXAyZutnzUq2xoS-POnZzqLcRW5_4I
+  #  corpid: wwad966bd4d6a788ce
+  #  AgentId: 1000040
+  #  url: https://oa.ysstech.com:19000/
+  #审批消息企微消息推送
+  ks:
+    corpsecret: CmzzYQ4evcyBjzyjYwl2ycDOk3tNm8DDiUv0gfysPls
+    corpid: wwad966bd4d6a788ce
+    AgentId: 1000036
+    # corpsecret: r_dthG2V-w6g6tpoEgjnNJS_dv5_SCAQl0PfV8z_H4U
+    #corpid: wwbfa0b02a7ede338c
+    #AgentId: 1000006
+
+

+ 0 - 0
app/workSheetSystem/nginx.conf → app/workSheetSystem/src/test/resources/nginx.conf