개선작업
This commit is contained in:
@@ -107,7 +107,11 @@ public class LabelAllocateApiController {
|
||||
@PostMapping("/allocate")
|
||||
public ApiResponseDto<Void> labelAllocate(@RequestBody LabelAllocateDto.AllocateDto dto) {
|
||||
labelAllocateService.allocateAsc(
|
||||
dto.getAutoType(), dto.getStage(), dto.getLabelers(), dto.getInspectors());
|
||||
dto.getAutoType(),
|
||||
dto.getStage(),
|
||||
dto.getLabelers(),
|
||||
dto.getInspectors(),
|
||||
dto.getAnalUid());
|
||||
|
||||
return ApiResponseDto.ok(null);
|
||||
}
|
||||
|
||||
@@ -2,14 +2,9 @@ package com.kamco.cd.kamcoback.label;
|
||||
|
||||
import com.kamco.cd.kamcoback.code.dto.CommonCodeDto;
|
||||
import com.kamco.cd.kamcoback.config.api.ApiResponseDto;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto.TargetInspector;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto.TargetUser;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelWorkDto;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelWorkDto.LabelWorkMng;
|
||||
import com.kamco.cd.kamcoback.label.service.LabelAllocateService;
|
||||
import com.kamco.cd.kamcoback.label.service.LabelWorkService;
|
||||
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -17,15 +12,12 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Slf4j
|
||||
@@ -52,9 +44,7 @@ public class LabelWorkerApiController {
|
||||
})
|
||||
@PostMapping("/label-work-mng-list")
|
||||
public ApiResponseDto<Page<LabelWorkMng>> labelWorkMngList(
|
||||
@RequestBody @Valid LabelWorkDto.LabelWorkMngSearchReq searchReq) {
|
||||
@RequestBody @Valid LabelWorkDto.LabelWorkMngSearchReq searchReq) {
|
||||
return ApiResponseDto.ok(labelWorkService.labelWorkMngList(searchReq));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -87,6 +87,9 @@ public class LabelAllocateDto {
|
||||
@AllArgsConstructor
|
||||
public static class AllocateDto {
|
||||
|
||||
@Schema(description = "분석 ID", example = "3", required = true)
|
||||
private Long analUid;
|
||||
|
||||
@Schema(description = "자동/수동여부(AUTO/MANUAL)", example = "AUTO")
|
||||
private String autoType;
|
||||
|
||||
|
||||
@@ -1,26 +1,19 @@
|
||||
package com.kamco.cd.kamcoback.label.dto;
|
||||
|
||||
import com.kamco.cd.kamcoback.common.enums.MngStateType;
|
||||
import com.kamco.cd.kamcoback.common.utils.enums.CodeExpose;
|
||||
import com.kamco.cd.kamcoback.common.utils.enums.EnumType;
|
||||
import com.kamco.cd.kamcoback.common.utils.enums.Enums;
|
||||
import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto.LabelMngState;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.UUID;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
public class LabelWorkDto {
|
||||
|
||||
|
||||
|
||||
@Schema(name = "LabelWorkMng", description = "라벨작업관리")
|
||||
@Getter
|
||||
@Setter
|
||||
@@ -39,7 +32,6 @@ public class LabelWorkDto {
|
||||
private Long labelCompleteTotCnt;
|
||||
@JsonFormatDttm private ZonedDateTime labelStartDttm;
|
||||
|
||||
|
||||
public String getLabelState() {
|
||||
|
||||
String mngState = "PENDING";
|
||||
@@ -69,7 +61,6 @@ public class LabelWorkDto {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Schema(name = "LabelWorkMngSearchReq", description = "라벨작업관리 검색 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@@ -98,5 +89,4 @@ public class LabelWorkDto {
|
||||
return PageRequest.of(page, size);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -37,17 +37,19 @@ public class LabelAllocateService {
|
||||
* @param stage 회차
|
||||
* @param targetUsers 라벨러 목록
|
||||
* @param targetInspectors 검수자 목록
|
||||
* @param analUid 분석 ID
|
||||
*/
|
||||
@Transactional
|
||||
public void allocateAsc(
|
||||
String autoType,
|
||||
Integer stage,
|
||||
List<TargetUser> targetUsers,
|
||||
List<TargetInspector> targetInspectors) {
|
||||
List<TargetInspector> targetInspectors,
|
||||
Long analUid) {
|
||||
Long lastId = null;
|
||||
|
||||
// geom 잔여건수 != 프론트에서 넘어 온 총 건수 -> return
|
||||
Long chargeCnt = labelAllocateCoreService.findLabelUnAssignedCnt(3L); // TODO
|
||||
// geom 잔여건수 조회
|
||||
Long chargeCnt = labelAllocateCoreService.findLabelUnAssignedCnt(analUid, stage);
|
||||
// Long totalDemand = targetUsers.stream().mapToLong(TargetUser::getDemand).sum();
|
||||
// if (!Objects.equals(chargeCnt, totalDemand)) {
|
||||
// log.info("chargeCnt != totalDemand");
|
||||
@@ -58,18 +60,18 @@ public class LabelAllocateService {
|
||||
return;
|
||||
}
|
||||
|
||||
List<Long> allIds = labelAllocateCoreService.fetchNextIds(lastId, chargeCnt);
|
||||
List<Long> allIds = labelAllocateCoreService.fetchNextIds(lastId, chargeCnt, analUid);
|
||||
int index = 0;
|
||||
for (TargetUser target : targetUsers) {
|
||||
int end = index + target.getDemand();
|
||||
List<Long> sub = allIds.subList(index, end);
|
||||
|
||||
labelAllocateCoreService.assignOwner(sub, target.getUserId());
|
||||
labelAllocateCoreService.assignOwner(sub, target.getUserId(), analUid);
|
||||
index = end;
|
||||
}
|
||||
|
||||
// 검수자에게 userCount명 만큼 할당
|
||||
List<LabelAllocateDto.Basic> list = labelAllocateCoreService.findAssignedLabelerList(3L);
|
||||
List<LabelAllocateDto.Basic> list = labelAllocateCoreService.findAssignedLabelerList(analUid);
|
||||
int from = 0;
|
||||
|
||||
for (TargetInspector inspector : targetInspectors) {
|
||||
|
||||
@@ -1,16 +1,8 @@
|
||||
package com.kamco.cd.kamcoback.label.service;
|
||||
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto.TargetInspector;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto.TargetUser;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto.UserList;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelWorkDto;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelWorkDto.LabelWorkMng;
|
||||
import com.kamco.cd.kamcoback.postgres.core.LabelAllocateCoreService;
|
||||
import com.kamco.cd.kamcoback.postgres.core.LabelWorkCoreService;
|
||||
import jakarta.transaction.Transactional;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -25,8 +17,6 @@ public class LabelWorkService {
|
||||
this.labelWorkCoreService = labelWorkCoreService;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Page<LabelWorkMng> labelWorkMngList(LabelWorkDto.LabelWorkMngSearchReq searchReq) {
|
||||
|
||||
return labelWorkCoreService.labelWorkMngList(searchReq);
|
||||
|
||||
Reference in New Issue
Block a user