This commit is contained in:
zt
2025-11-19 17:30:31 +08:00
parent 1902ba9d59
commit c2afe05e81
8 changed files with 72 additions and 6 deletions

View File

@ -210,6 +210,10 @@ api-decrypt:
- /gps/equipment/dataAcceptance # GPS数据接收接口 - /gps/equipment/dataAcceptance # GPS数据接收接口
springdoc: springdoc:
default-flat-param-object: true
swagger-ui:
path: /swagger-ui.html
tags-sorter: alpha
api-docs: api-docs:
# 是否开启接口文档 # 是否开启接口文档
enabled: true enabled: true
@ -229,10 +233,14 @@ springdoc:
components: components:
# 鉴权方式配置 # 鉴权方式配置
security-schemes: security-schemes:
apiKey: Authorization:
type: APIKEY type: HTTP
in: HEADER in: HEADER
name: ${sa-token.token-name} name: ${sa-token.token-name}
Clientid:
type: HTTP
in: HEADER
name: Clientid
#这里定义了两个分组,可定义多个,也可以不定义 #这里定义了两个分组,可定义多个,也可以不定义
group-configs: group-configs:
- group: 1.通用模块 - group: 1.通用模块

View File

@ -44,7 +44,7 @@
<dependency> <dependency>
<groupId>com.github.xiaoymin</groupId> <groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version> <version>4.5.0</version>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@ -1,6 +1,8 @@
package org.dromara.common.doc.config; package org.dromara.common.doc.config;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.Paths; import io.swagger.v3.oas.models.Paths;
import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityRequirement;
@ -9,6 +11,7 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.doc.config.properties.SpringDocProperties; import org.dromara.common.doc.config.properties.SpringDocProperties;
import org.dromara.common.doc.handler.OpenApiHandler; import org.dromara.common.doc.handler.OpenApiHandler;
import org.springdoc.core.configuration.SpringDocConfiguration; import org.springdoc.core.configuration.SpringDocConfiguration;
import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
import org.springdoc.core.customizers.OpenApiBuilderCustomizer; import org.springdoc.core.customizers.OpenApiBuilderCustomizer;
import org.springdoc.core.customizers.OpenApiCustomizer; import org.springdoc.core.customizers.OpenApiCustomizer;
import org.springdoc.core.customizers.ServerBaseUrlCustomizer; import org.springdoc.core.customizers.ServerBaseUrlCustomizer;
@ -23,6 +26,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.web.ServerProperties; import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpHeaders;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -61,7 +65,6 @@ public class SpringDocConfig {
keySet.forEach(securityRequirement::addList); keySet.forEach(securityRequirement::addList);
list.add(securityRequirement); list.add(securityRequirement);
openApi.security(list); openApi.security(list);
return openApi; return openApi;
} }
@ -107,6 +110,15 @@ public class SpringDocConfig {
} }
PlusPaths newPaths = new PlusPaths(); PlusPaths newPaths = new PlusPaths();
oldPaths.forEach((k, v) -> newPaths.addPathItem(finalContextPath + k, v)); oldPaths.forEach((k, v) -> newPaths.addPathItem(finalContextPath + k, v));
newPaths.forEach((s, pathItem) -> {
// 为所有接口添加鉴权
pathItem.readOperations().forEach(operation -> {
operation.addSecurityItem(new SecurityRequirement()
.addList(HttpHeaders.AUTHORIZATION)
.addList("Clientid")
);
});
});
openApi.setPaths(newPaths); openApi.setPaths(newPaths);
}; };
} }
@ -123,4 +135,26 @@ public class SpringDocConfig {
} }
} }
@Bean
public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
return openApi -> {
// 全局添加鉴权参数
if(openApi.getPaths()!=null){
openApi.getPaths().forEach((s, pathItem) -> {
// 为所有接口添加鉴权
List<Operation> operations = pathItem.readOperations();
operations.forEach(operation -> {
operation.addSecurityItem(new SecurityRequirement()
.addList(HttpHeaders.AUTHORIZATION)
.addList("Clientid")
);
});
});
}
};
}
} }

View File

@ -57,4 +57,8 @@ public class BusPlanDocAssociationVo implements Serializable {
* 需求数量 * 需求数量
*/ */
private BigDecimal demandQuantity; private BigDecimal demandQuantity;
private String remark;
} }

View File

@ -16,6 +16,7 @@ import org.dromara.project.domain.vo.attendance.*;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.time.LocalDate;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -162,7 +163,6 @@ public interface IBusAttendanceService extends IService<BusAttendance>{
*/ */
TableDataInfo<AttendanceUserVo> getAttendanceUser(AttendanceCountDto dto, PageQuery pageQuery); TableDataInfo<AttendanceUserVo> getAttendanceUser(AttendanceCountDto dto, PageQuery pageQuery);
/** /**
* 指定月份的打卡人员考勤统计 * 指定月份的打卡人员考勤统计
*/ */
@ -188,7 +188,6 @@ public interface IBusAttendanceService extends IService<BusAttendance>{
*/ */
BusAttendanceClockDateForTwoWeekVo getTodayAttendanceData(TwoWeekDto dto); BusAttendanceClockDateForTwoWeekVo getTodayAttendanceData(TwoWeekDto dto);
/** /**
* 获取项目当天的出勤人员 * 获取项目当天的出勤人员
*/ */
@ -223,4 +222,11 @@ public interface IBusAttendanceService extends IService<BusAttendance>{
* 查询分包当天出勤人员 * 查询分包当天出勤人员
*/ */
TableDataInfo<SubAttendanceTodayUserVo> getSubTodayAttendanceUser(SubTodayUserDto dto, PageQuery pageQuery); TableDataInfo<SubAttendanceTodayUserVo> getSubTodayAttendanceUser(SubTodayUserDto dto, PageQuery pageQuery);
/**
* 查询日期范围内打卡人员数量
*/
Long getAttendanceUserCountByDate(Long projectId,LocalDate startDate, LocalDate endDate);
} }

View File

@ -2675,4 +2675,15 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
} }
return new TableDataInfo<>(list, sysUserVoTableDataInfo.getTotal()); return new TableDataInfo<>(list, sysUserVoTableDataInfo.getTotal());
} }
@Override
public Long getAttendanceUserCountByDate(Long projectId, LocalDate startDate, LocalDate endDate) {
List<BusAttendance> list = list(Wrappers.<BusAttendance>lambdaQuery()
.eq(BusAttendance::getProjectId, projectId)
.between(BusAttendance::getClockDate, startDate, endDate)
.in(BusAttendance::getClockStatus, ATTENDANCE_LIST)
);
return list.stream().map(BusAttendance::getUserId).distinct().count();
}
} }

View File

@ -46,4 +46,6 @@ public class HseViolationRecordQueryReq implements Serializable {
*/ */
private Long correctorId; private Long correctorId;
private String status;
} }

View File

@ -355,6 +355,7 @@ public class HseViolationRecordServiceImpl extends ServiceImpl<HseViolationRecor
lqw.ge(HseViolationRecord::getViolationTime, startOfDay) lqw.ge(HseViolationRecord::getViolationTime, startOfDay)
.lt(HseViolationRecord::getViolationTime, startOfNextDay); .lt(HseViolationRecord::getViolationTime, startOfNextDay);
} }
lqw.eq(StringUtils.isNotBlank(req.getStatus()),HseViolationRecord::getStatus, req.getStatus());
lqw.orderByDesc(HseViolationRecord::getCreateTime); lqw.orderByDesc(HseViolationRecord::getCreateTime);
return lqw; return lqw;
} }