File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package kr.itn.itnhub.project;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface ProjectMapper {
/** 기관별 연락이력 건수·최근 연락일·보고서 건수. 사업관리 목록에 붙일 값만 모아 한 번에 읽는다. */
List<ProjectSideInfo> findSideInfo();
List<ContactLog> findLogsByOrg(@Param("orgId") Long orgId);
int insertLog(@Param("orgId") Long orgId, @Param("contactedOn") String contactedOn,
@Param("method") String method, @Param("summary") String summary,
@Param("author") String author);
int updateLog(@Param("orgId") Long orgId, @Param("id") Long id,
@Param("contactedOn") String contactedOn, @Param("method") String method,
@Param("summary") String summary);
int deleteLog(@Param("orgId") Long orgId, @Param("id") Long id);
List<OrgReport> findReportsByOrg(@Param("orgId") Long orgId);
int insertReport(@Param("orgId") Long orgId, @Param("fileName") String fileName,
@Param("contentType") String contentType, @Param("byteSize") long byteSize,
@Param("content") byte[] content, @Param("uploadedBy") String uploadedBy);
/** 보고서 교체(요구사항 [25]). 새 행을 만들지 않고 같은 자리를 덮어쓴다. */
int updateReport(@Param("orgId") Long orgId, @Param("id") Long id,
@Param("fileName") String fileName,
@Param("contentType") String contentType, @Param("byteSize") long byteSize,
@Param("content") byte[] content, @Param("uploadedBy") String uploadedBy);
/** 다운로드용. 파일 내용까지 읽는다. */
ReportContent findReportContent(@Param("orgId") Long orgId, @Param("id") Long id);
int deleteReport(@Param("orgId") Long orgId, @Param("id") Long id);
/** @param lastContactedOn 연락 이력이 없으면 null */
record ProjectSideInfo(Long orgId, String lastContactedOn, int contactCount, int reportCount) {
}
record ReportContent(String fileName, String contentType, byte[] content) {
}
}