feat(uiws): UIWS 업무모듈(업무일지·일정·쪽지·통계)+2FA 이식
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
a3226bda86
commit
70c781a54e
@ -0,0 +1,93 @@
|
|||||||
|
package com.zioinfo.mall.uiws.schedule.mapper;
|
||||||
|
|
||||||
|
import com.zioinfo.mall.uiws.schedule.model.UiwsAttach;
|
||||||
|
import com.zioinfo.mall.uiws.schedule.model.UiwsDiary;
|
||||||
|
import com.zioinfo.mall.uiws.schedule.model.UiwsSchedule;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 일정·일지·첨부 MyBatis 매퍼. 원본 JPA ScheduleRepository/DiaryRepository/AttachRepository 변환 이식.
|
||||||
|
* 데이터 가시범위: scopeAll(true=ADMIN 전체) OR owner IN (ownerIds). ownerIds 는 항상 본인 포함(빈 IN 회피).
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface UiwsScheduleMapper {
|
||||||
|
|
||||||
|
// ── schedule
|
||||||
|
int insertSchedule(UiwsSchedule s);
|
||||||
|
|
||||||
|
int updateSchedule(UiwsSchedule s);
|
||||||
|
|
||||||
|
UiwsSchedule findScheduleById(@Param("scheduleId") Long scheduleId);
|
||||||
|
|
||||||
|
boolean existsScheduleById(@Param("scheduleId") Long scheduleId);
|
||||||
|
|
||||||
|
int deleteScheduleById(@Param("scheduleId") Long scheduleId);
|
||||||
|
|
||||||
|
/** 달력: 기간 겹침([from,to) 배타 상한) + type + 개인소유/부서필터. */
|
||||||
|
List<UiwsSchedule> findInRange(@Param("from") LocalDateTime from,
|
||||||
|
@Param("to") LocalDateTime to,
|
||||||
|
@Param("scheType") String scheType,
|
||||||
|
@Param("ownerId") String ownerId,
|
||||||
|
@Param("deptId") String deptId);
|
||||||
|
|
||||||
|
List<UiwsSchedule> searchAll(@Param("from") LocalDateTime from,
|
||||||
|
@Param("to") LocalDateTime to,
|
||||||
|
@Param("scheType") String scheType,
|
||||||
|
@Param("scopeAll") boolean scopeAll,
|
||||||
|
@Param("ownerIds") List<String> ownerIds,
|
||||||
|
@Param("limit") int limit,
|
||||||
|
@Param("offset") int offset);
|
||||||
|
|
||||||
|
long countAll(@Param("from") LocalDateTime from,
|
||||||
|
@Param("to") LocalDateTime to,
|
||||||
|
@Param("scheType") String scheType,
|
||||||
|
@Param("scopeAll") boolean scopeAll,
|
||||||
|
@Param("ownerIds") List<String> ownerIds);
|
||||||
|
|
||||||
|
List<UiwsSchedule> searchPopup(@Param("keyword") String keyword,
|
||||||
|
@Param("scopeAll") boolean scopeAll,
|
||||||
|
@Param("ownerIds") List<String> ownerIds);
|
||||||
|
|
||||||
|
// ── diary
|
||||||
|
int insertDiary(UiwsDiary d);
|
||||||
|
|
||||||
|
int updateDiary(UiwsDiary d);
|
||||||
|
|
||||||
|
UiwsDiary findDiaryById(@Param("diaryId") Long diaryId);
|
||||||
|
|
||||||
|
boolean existsDiaryById(@Param("diaryId") Long diaryId);
|
||||||
|
|
||||||
|
int deleteDiaryById(@Param("diaryId") Long diaryId);
|
||||||
|
|
||||||
|
List<UiwsDiary> searchDiary(@Param("from") LocalDate from,
|
||||||
|
@Param("to") LocalDate to,
|
||||||
|
@Param("limit") int limit,
|
||||||
|
@Param("offset") int offset);
|
||||||
|
|
||||||
|
long countDiary(@Param("from") LocalDate from, @Param("to") LocalDate to);
|
||||||
|
|
||||||
|
// ── attach
|
||||||
|
int insertAttach(UiwsAttach a);
|
||||||
|
|
||||||
|
UiwsAttach findAttachById(@Param("attachId") Long attachId);
|
||||||
|
|
||||||
|
int updateAttachRef(@Param("attachId") Long attachId,
|
||||||
|
@Param("refType") String refType,
|
||||||
|
@Param("refId") Long refId,
|
||||||
|
@Param("actor") String actor);
|
||||||
|
|
||||||
|
List<UiwsAttach> findAttachByRef(@Param("refType") String refType, @Param("refId") Long refId);
|
||||||
|
|
||||||
|
int deleteAttachById(@Param("attachId") Long attachId);
|
||||||
|
|
||||||
|
int deleteAttachByRef(@Param("refType") String refType, @Param("refId") Long refId);
|
||||||
|
|
||||||
|
// ── 사용자명 라벨(코어 user 재사용)
|
||||||
|
List<Map<String, String>> findUserNames(@Param("ids") List<String> ids);
|
||||||
|
}
|
||||||
@ -4,7 +4,7 @@ import com.zioinfo.mall.uiws.common.UiwsApiException;
|
|||||||
import com.zioinfo.mall.uiws.common.UiwsCurrentUser;
|
import com.zioinfo.mall.uiws.common.UiwsCurrentUser;
|
||||||
import com.zioinfo.mall.uiws.common.UiwsErrorCode;
|
import com.zioinfo.mall.uiws.common.UiwsErrorCode;
|
||||||
import com.zioinfo.mall.uiws.schedule.dto.ScheduleDtos.AttachmentDto;
|
import com.zioinfo.mall.uiws.schedule.dto.ScheduleDtos.AttachmentDto;
|
||||||
import com.zioinfo.mall.uiws.schedule.mapper.ScheduleMapper;
|
import com.zioinfo.mall.uiws.schedule.mapper.UiwsScheduleMapper;
|
||||||
import com.zioinfo.mall.uiws.schedule.model.UiwsAttach;
|
import com.zioinfo.mall.uiws.schedule.model.UiwsAttach;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -28,7 +28,7 @@ public class AttachmentService {
|
|||||||
public static final String REF_DIARY = "DIARY";
|
public static final String REF_DIARY = "DIARY";
|
||||||
private static final Set<String> VALID_REF_TYPES = Set.of(REF_SCHEDULE, REF_DIARY);
|
private static final Set<String> VALID_REF_TYPES = Set.of(REF_SCHEDULE, REF_DIARY);
|
||||||
|
|
||||||
private final ScheduleMapper mapper;
|
private final UiwsScheduleMapper mapper;
|
||||||
private final FileStorageService fileStorageService;
|
private final FileStorageService fileStorageService;
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import com.zioinfo.mall.uiws.common.UiwsApiException;
|
|||||||
import com.zioinfo.mall.uiws.common.UiwsCurrentUser;
|
import com.zioinfo.mall.uiws.common.UiwsCurrentUser;
|
||||||
import com.zioinfo.mall.uiws.common.UiwsErrorCode;
|
import com.zioinfo.mall.uiws.common.UiwsErrorCode;
|
||||||
import com.zioinfo.mall.uiws.schedule.dto.ScheduleDtos.*;
|
import com.zioinfo.mall.uiws.schedule.dto.ScheduleDtos.*;
|
||||||
import com.zioinfo.mall.uiws.schedule.mapper.ScheduleMapper;
|
import com.zioinfo.mall.uiws.schedule.mapper.UiwsScheduleMapper;
|
||||||
import com.zioinfo.mall.uiws.schedule.model.UiwsDiary;
|
import com.zioinfo.mall.uiws.schedule.model.UiwsDiary;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -24,7 +24,7 @@ import java.util.stream.Collectors;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class DiaryService {
|
public class DiaryService {
|
||||||
|
|
||||||
private final ScheduleMapper mapper;
|
private final UiwsScheduleMapper mapper;
|
||||||
private final AttachmentService attachmentService;
|
private final AttachmentService attachmentService;
|
||||||
|
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import com.zioinfo.mall.uiws.common.UiwsCurrentUser;
|
|||||||
import com.zioinfo.mall.uiws.common.UiwsDataScope;
|
import com.zioinfo.mall.uiws.common.UiwsDataScope;
|
||||||
import com.zioinfo.mall.uiws.common.UiwsErrorCode;
|
import com.zioinfo.mall.uiws.common.UiwsErrorCode;
|
||||||
import com.zioinfo.mall.uiws.schedule.dto.ScheduleDtos.*;
|
import com.zioinfo.mall.uiws.schedule.dto.ScheduleDtos.*;
|
||||||
import com.zioinfo.mall.uiws.schedule.mapper.ScheduleMapper;
|
import com.zioinfo.mall.uiws.schedule.mapper.UiwsScheduleMapper;
|
||||||
import com.zioinfo.mall.uiws.schedule.model.UiwsSchedule;
|
import com.zioinfo.mall.uiws.schedule.model.UiwsSchedule;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -32,7 +32,7 @@ public class ScheduleService {
|
|||||||
private static final String TYPE_DEPT = "DEPT";
|
private static final String TYPE_DEPT = "DEPT";
|
||||||
private static final DateTimeFormatter DT = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
|
private static final DateTimeFormatter DT = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
|
||||||
|
|
||||||
private final ScheduleMapper mapper;
|
private final UiwsScheduleMapper mapper;
|
||||||
private final AttachmentService attachmentService;
|
private final AttachmentService attachmentService;
|
||||||
|
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
|
||||||
<!-- UIWS 이식: 일정/일지/첨부 (tb_uiws_schedule / tb_uiws_diary / tb_uiws_attach). -->
|
<!-- UIWS 이식: 일정/일지/첨부 (tb_uiws_schedule / tb_uiws_diary / tb_uiws_attach). -->
|
||||||
<mapper namespace="com.zioinfo.mall.uiws.schedule.mapper.ScheduleMapper">
|
<mapper namespace="com.zioinfo.mall.uiws.schedule.mapper.UiwsScheduleMapper">
|
||||||
|
|
||||||
<!-- ===================== schedule ===================== -->
|
<!-- ===================== schedule ===================== -->
|
||||||
<insert id="insertSchedule" useGeneratedKeys="true" keyProperty="scheduleId" keyColumn="schedule_id"
|
<insert id="insertSchedule" useGeneratedKeys="true" keyProperty="scheduleId" keyColumn="schedule_id"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user