Merge pull request 'feat/dev_251201' (#148) from feat/dev_251201 into develop

Reviewed-on: https://kamco.gitea.gs.dabeeo.com/dabeeo/kamco-dabeeo-backoffice/pulls/148
This commit is contained in:
2026-01-05 17:21:44 +09:00
4 changed files with 54 additions and 23 deletions

View File

@@ -119,13 +119,11 @@ public class LabelAllocateApiController {
public ApiResponseDto<ApiResponseDto.ResponseObj> labelAllocate(
@RequestBody @Valid LabelAllocateDto.AllocateDto dto) {
int compareYyyy = Integer.parseInt(dto.getYyyy().split("-")[0]);
int targetYyyy = Integer.parseInt(dto.getYyyy().split("-")[1]);
return ApiResponseDto.okObject(
labelAllocateService.allocateAsc(
dto.getStage(),
dto.getLabelers(),
dto.getInspectors(),
dto.getCompareYyyy(),
dto.getTargetYyyy()));
dto.getStage(), dto.getLabelers(), dto.getInspectors(), compareYyyy, targetYyyy));
}
@Operation(summary = "작업현황 관리 > 변화탐지 회차 정보", description = "작업현황 관리 > 변화탐지 회차 정보")
@@ -193,13 +191,12 @@ public class LabelAllocateApiController {
@RequestBody
LabelAllocateDto.AllocateMoveDto dto) {
int compareYyyy = Integer.parseInt(dto.getYyyy().split("-")[0]);
int targetYyyy = Integer.parseInt(dto.getYyyy().split("-")[1]);
return ApiResponseDto.okObject(
labelAllocateService.allocateMove(
dto.getStage(),
dto.getLabelers(),
dto.getCompareYyyy(),
dto.getTargetYyyy(),
dto.getUserId()));
dto.getStage(), dto.getLabelers(), compareYyyy, targetYyyy, dto.getUserId()));
}
@Operation(

View File

@@ -91,11 +91,14 @@ public class LabelAllocateDto {
@AllArgsConstructor
public static class AllocateDto {
@Schema(description = "비교년도", example = "2022", required = true)
private Integer compareYyyy;
@Schema(description = "비교년도-기준년도", example = "2022-2024", required = true)
private String yyyy;
@Schema(description = "기준년도", example = "2024", required = true)
private Integer targetYyyy;
// @Schema(description = "비교년도", example = "2022", required = true)
// private Integer compareYyyy;
//
// @Schema(description = "기준년도", example = "2024", required = true)
// private Integer targetYyyy;
@Schema(description = "회차", example = "4", required = true)
private Integer stage;
@@ -218,6 +221,7 @@ public class LabelAllocateDto {
private Integer ranking;
private ZonedDateTime createdDttm;
private String ownerName;
private Long remainCnt;
}
@Getter
@@ -245,11 +249,14 @@ public class LabelAllocateDto {
""")
private List<TargetUser> labelers;
@Schema(description = "비교년도", example = "2022")
private Integer compareYyyy;
@Schema(description = "비교년도-기준년도", example = "2022-2024")
private String yyyy;
@Schema(description = "기준년도", example = "2024")
private Integer targetYyyy;
// @Schema(description = "비교년도", example = "2022")
// private Integer compareYyyy;
//
// @Schema(description = "기준년도", example = "2024")
// private Integer targetYyyy;
@Schema(description = "대상 사번", example = "01022223333")
private String userId;

View File

@@ -583,6 +583,11 @@ public class LabelAllocateRepositoryImpl implements LabelAllocateRepositoryCusto
QMemberEntity worker = QMemberEntity.memberEntity;
QMemberEntity inspector = new QMemberEntity("inspector");
// remainCnt
Expression<Long> remainCnt =
Expressions.numberTemplate(
Long.class, "({0} - {1} - {2})", assignedCnt, skipCnt, completeCnt);
return queryFactory
.select(
Projections.constructor(
@@ -596,7 +601,8 @@ public class LabelAllocateRepositoryImpl implements LabelAllocateRepositoryCusto
percent,
Expressions.constant(0), // TODO: 순위, 꼭 해야할지?
labelingAssignmentEntity.workStatDttm.min(),
inspector.name.min()))
inspector.name.min(),
remainCnt))
.from(worker)
.innerJoin(labelingAssignmentEntity)
.on(
@@ -945,6 +951,11 @@ public class LabelAllocateRepositoryImpl implements LabelAllocateRepositoryCusto
QMemberEntity inspector = QMemberEntity.memberEntity;
QMemberEntity worker = new QMemberEntity("worker");
// remainCnt
Expression<Long> remainCnt =
Expressions.numberTemplate(
Long.class, "({0} - {1} - {2})", assignedCnt, skipCnt, completeCnt);
return queryFactory
.select(
Projections.constructor(
@@ -958,7 +969,8 @@ public class LabelAllocateRepositoryImpl implements LabelAllocateRepositoryCusto
percent,
Expressions.constant(0), // TODO: 순위, 꼭 해야할지?
labelingAssignmentEntity.inspectStatDttm.min(),
worker.name.min()))
worker.name.min(),
remainCnt))
.from(inspector)
.innerJoin(labelingAssignmentEntity)
.on(

View File

@@ -23,6 +23,8 @@ import com.querydsl.jpa.impl.JPAQueryFactory;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.UUID;
@@ -111,10 +113,23 @@ public class LabelWorkRepositoryImpl extends QuerydslRepositorySupport
&& !searchReq.getStrtDttm().isEmpty()
&& searchReq.getEndDttm() != null
&& !searchReq.getEndDttm().isEmpty()) {
ZoneId zoneId = ZoneId.of("Asia/Seoul");
ZonedDateTime start =
LocalDate.parse(searchReq.getStrtDttm(), DateTimeFormatter.BASIC_ISO_DATE)
.atStartOfDay(zoneId);
ZonedDateTime end =
LocalDate.parse(searchReq.getEndDttm(), DateTimeFormatter.BASIC_ISO_DATE)
.plusDays(1)
.atStartOfDay(zoneId);
whereSubBuilder.and(
Expressions.stringTemplate(
"to_char({0}, 'YYYYMMDD')", mapSheetAnalDataInferenceGeomEntity.labelStateDttm)
.between(searchReq.getStrtDttm(), searchReq.getEndDttm()));
mapSheetAnalDataInferenceGeomEntity
.labelStateDttm
.goe(start)
.and(mapSheetAnalDataInferenceGeomEntity.labelStateDttm.lt(end)));
}
List<LabelWorkMng> foundContent =