보고서 유형 동적 생성 처리 신규 프로그램 반영 및 기타 개선사항 반영
This commit is contained in:
parent
3d9bb31413
commit
de6e68971d
@ -46,7 +46,7 @@ public class ReportController
|
||||
ReportService reportService; // 보고서 양식 관리 서비스
|
||||
|
||||
/**
|
||||
* 보고서 양식 목록 조회
|
||||
* 보고서 양식 목록 조회(보고서 작성)
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.08
|
||||
*/
|
||||
|
||||
@ -40,7 +40,7 @@ public class ReportService
|
||||
{
|
||||
return reportDao.getReportForms(inMap);
|
||||
}
|
||||
|
||||
|
||||
// 보고서 양식 목록 조회 건수
|
||||
public int getReportFormsCnt(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
|
||||
@ -0,0 +1,591 @@
|
||||
package com.urpsys.itmsapi.srm.controller;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.urpsys.baseapi.common.util.CommonUtil;
|
||||
import com.urpsys.baseapi.common.util.ResultData;
|
||||
import com.urpsys.baseapi.domain.TokenInfo;
|
||||
import com.urpsys.itmsapi.srm.service.ReportOtherService;
|
||||
import com.urpsys.itmsapi.srm.service.SvcDeskService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 기타 보고서을 처리하는 API Controller 클래스
|
||||
* @author urp 인프라본부 나혁제
|
||||
* @since 2025.10.15
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ---------- -------- ---------------------------
|
||||
* 2025.10.15 나혁제 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
public class ReportOtherController
|
||||
{
|
||||
@Autowired
|
||||
ReportOtherService reportOtherService; // 이슈보고서 관리 서비스
|
||||
|
||||
@Autowired
|
||||
SvcDeskService svcDeskService; // 서비스 인스던트 관리 서비스
|
||||
|
||||
/**
|
||||
* 이슈보고서 목록 조회
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.25
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/searchReportOther.do")
|
||||
public ResponseEntity<ResultData> searchReportOther( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/searchReportOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
// 토큰정보 획득
|
||||
TokenInfo tokenInfo = CommonUtil.getAccessTokenInfo(request);
|
||||
|
||||
log.info("tokenInfo [{}]", tokenInfo.toString() );
|
||||
log.info("tokenInfo [{}]", tokenInfo.getAuthorities() );
|
||||
|
||||
requestMap.put("reqUser", tokenInfo.getUniqId());
|
||||
// requestMap.put("reqUser", "0");
|
||||
|
||||
// 이슈보고서 목록 조회
|
||||
List<LinkedHashMap<String, Object>> resultList = reportOtherService.searchReport(requestMap);
|
||||
|
||||
// count 조회
|
||||
int totCnt = reportOtherService.searchReportCount(requestMap);
|
||||
|
||||
resBody.put("resultList", resultList );
|
||||
resBody.put("totCnt" , totCnt );
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/searchReportOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이슈보고서 정보 상세조회
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.25
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/getReportWithBodyOther.do")
|
||||
public ResponseEntity<ResultData> getReportWithBodyOther( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/getReportWithBodyOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
// 토큰정보 획득
|
||||
TokenInfo tokenInfo = CommonUtil.getAccessTokenInfo(request);
|
||||
|
||||
int inReportSeq = (int)requestMap.get("inReportSeq");
|
||||
|
||||
// 보고서 정보 상세조회
|
||||
LinkedHashMap<String, Object> resultReportOther = reportOtherService.getReportWithBody(inReportSeq);
|
||||
|
||||
int inIncidentSeq = 0;
|
||||
if (resultReportOther.get("inIncidentSeq") != null)
|
||||
{
|
||||
inIncidentSeq = CommonUtil.zeroConvert(resultReportOther.get("inIncidentSeq"));
|
||||
}
|
||||
String incidentId = "";
|
||||
if( inIncidentSeq > 0)
|
||||
{
|
||||
LinkedHashMap<String, Object> tempMap = svcDeskService.getIncidentBySeq(inIncidentSeq);
|
||||
incidentId = (String)tempMap.get("vcIncidentNum");
|
||||
}
|
||||
|
||||
// 공유범위
|
||||
List<LinkedHashMap<String, Object>> resultSharings = reportOtherService.getReportSharing(inReportSeq);
|
||||
|
||||
String stxt = "";
|
||||
for(LinkedHashMap<String, Object> tempMap : resultSharings)
|
||||
{
|
||||
if (stxt.equals(""))
|
||||
stxt = (String)tempMap.get("vcUserGroup");
|
||||
else
|
||||
stxt = stxt + "," + (String)tempMap.get("vcUserGroup");
|
||||
}
|
||||
|
||||
// 연결자산
|
||||
List<LinkedHashMap<String, Object>> resultAssets = reportOtherService.getReportAssets(inReportSeq);
|
||||
|
||||
// 결재정보
|
||||
List<LinkedHashMap<String, Object>> resultApprovals = reportOtherService.getReportApproval(inReportSeq);
|
||||
|
||||
String strRole = tokenInfo.getAuthorities();
|
||||
String sessUserSeq = tokenInfo.getUniqId();
|
||||
int privTemplSeq = 0;
|
||||
|
||||
int approvalReq=0;
|
||||
// 서비스 승인요청 상태
|
||||
if ((int)resultReportOther.get("inReportStatus") == 1)
|
||||
{
|
||||
// 0:대기, 1:승인요청, 2:반려, 3:승인
|
||||
for (LinkedHashMap<String, Object> app : resultApprovals)
|
||||
{
|
||||
if ( (int)app.get("inStatus") == 1
|
||||
&& app.get("inUserSeq").equals(sessUserSeq)
|
||||
)
|
||||
{
|
||||
approvalReq=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(strRole.indexOf("ROLE_ADMIN") > -1)
|
||||
{
|
||||
privTemplSeq=1;
|
||||
}
|
||||
|
||||
String privType="";
|
||||
/**
|
||||
* 1. 본인이 작성한 경우 priv - 승인요청, 삭제(승인완료전) 2. 슈퍼유저인 경우 - 모든권한 허용
|
||||
**/
|
||||
if (privTemplSeq == 1 || privTemplSeq ==2)
|
||||
{
|
||||
privType = "super";
|
||||
}
|
||||
else
|
||||
{
|
||||
// mine : 접수자
|
||||
if (resultReportOther.get("inRegUser").equals(sessUserSeq))
|
||||
{
|
||||
privType = "mine";
|
||||
}
|
||||
else
|
||||
{
|
||||
privType = "nothing";
|
||||
}
|
||||
}
|
||||
|
||||
resBody.put("sharingTxt" , stxt ); // String
|
||||
resBody.put("approvalReq" , approvalReq ); // int
|
||||
resBody.put("privType" , privType ); // String
|
||||
resBody.put("incidentId" , incidentId ); // String
|
||||
|
||||
resBody.put("resultReportOther" , resultReportOther ); // Map
|
||||
resBody.put("resultSharings" , resultSharings ); // List
|
||||
resBody.put("resultAssets" , resultAssets ); // List
|
||||
resBody.put("resultApprovals" , resultApprovals ); // List
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/getReportWithBodyOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이슈보고서 등록
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.25
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/addReportOther.do")
|
||||
public ResponseEntity<ResultData> addReportOther( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/addReportOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
LinkedHashMap<String, Object> reportVoMap = (LinkedHashMap<String, Object>)requestMap.get("reportVo" ); // 보고서 기본정보
|
||||
LinkedHashMap<String, Object> reqApprovalMap = (LinkedHashMap<String, Object>)requestMap.get("reqApprovalMap" ); // 승인요청 정보
|
||||
|
||||
List<LinkedHashMap<String, Object>> assetList = (List<LinkedHashMap<String, Object>>)requestMap.get("assetList");
|
||||
List<LinkedHashMap<String, Object>> approvalsList = (List<LinkedHashMap<String, Object>>)requestMap.get("approvalsList");
|
||||
List<LinkedHashMap<String, Object>> fileList = (List<LinkedHashMap<String, Object>>)requestMap.get("fileList");
|
||||
|
||||
// 보고서 등록
|
||||
LinkedHashMap<String, Object> returnMap = reportOtherService.addReport(reportVoMap, assetList, approvalsList, fileList, reqApprovalMap);
|
||||
|
||||
if((int)returnMap.get("iSucc") > 0)
|
||||
{
|
||||
resBody.put("resultCd" , "0" );
|
||||
resBody.put("resultMsg" , "정상적으로 등록되었습니다." );
|
||||
resBody.put("inReportSeq" , returnMap.get("inReportSeq") );
|
||||
}
|
||||
else
|
||||
{
|
||||
resBody.put("resultCd" , "-1" );
|
||||
resBody.put("resultMsg" , "보고서 등록중 오류가 발생 하였습니다." );
|
||||
resBody.put("inReportSeq" , -1 );
|
||||
}
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/addReportOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이슈보고서 수정
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.25
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/updateReportOther.do")
|
||||
public ResponseEntity<ResultData> updateReportOther( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/updateReportOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
LinkedHashMap<String, Object> reportVoMap = (LinkedHashMap<String, Object>)requestMap.get("reportVo" ); // 보고서 기본정보
|
||||
LinkedHashMap<String, Object> reqApprovalMap = (LinkedHashMap<String, Object>)requestMap.get("reqApprovalMap" ); // 승인요청 정보
|
||||
|
||||
List<LinkedHashMap<String, Object>> assetList = (List<LinkedHashMap<String, Object>>)requestMap.get("assetList");
|
||||
List<LinkedHashMap<String, Object>> approvalsList = (List<LinkedHashMap<String, Object>>)requestMap.get("approvalsList");
|
||||
List<LinkedHashMap<String, Object>> fileList = (List<LinkedHashMap<String, Object>>)requestMap.get("fileList");
|
||||
|
||||
// 보고서 수정
|
||||
int iSucc = reportOtherService.updateReport(reportVoMap, assetList, approvalsList, fileList, reqApprovalMap);
|
||||
|
||||
if(iSucc > 0)
|
||||
{
|
||||
resBody.put("resultCd" , "0" );
|
||||
resBody.put("resultMsg", "정상적으로 수정되었습니다." );
|
||||
}
|
||||
else
|
||||
{
|
||||
resBody.put("resultCd" , "-1" );
|
||||
resBody.put("resultMsg", "보고서 수정중 오류가 발생 하였습니다." );
|
||||
}
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/updateReportOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이슈보고서 삭제
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.25
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/deleteReportOther.do")
|
||||
public ResponseEntity<ResultData> deleteReportOther( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/deleteReportOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
LinkedHashMap<String, Object> reportVoMap = (LinkedHashMap<String, Object>)requestMap.get("reportVo"); // 보고서 기본정보
|
||||
|
||||
// 보고서 삭제
|
||||
int iSucc = reportOtherService.deleteReport(reportVoMap);
|
||||
|
||||
if(iSucc > 0)
|
||||
{
|
||||
resBody.put("resultCd" , "0" );
|
||||
resBody.put("resultMsg", "정상적으로 수정되었습니다." );
|
||||
}
|
||||
else
|
||||
{
|
||||
resBody.put("resultCd" , "-1" );
|
||||
resBody.put("resultMsg", "보고서 삭제중 오류가 발생 하였습니다." );
|
||||
}
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/deleteReportOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이슈보고서 승인요청
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.25
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/procApprovalReportOther.do")
|
||||
public ResponseEntity<ResultData> procApprovalReportOther( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/procApprovalReportOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
// 보고서 승인요청
|
||||
int iSucc = reportOtherService.procApprovalReport(requestMap);
|
||||
|
||||
if(iSucc > 0)
|
||||
{
|
||||
resBody.put("resultCd" , "0" );
|
||||
resBody.put("resultMsg", "정상적으로 승인요청 되었습니다." );
|
||||
}
|
||||
else
|
||||
{
|
||||
resBody.put("resultCd" , "-1" );
|
||||
resBody.put("resultMsg", "검검보고서 승인요청중 오류가 발생 하였습니다." );
|
||||
}
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/procApprovalReportOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이슈보고서 승인
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.25
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/procApprovalOther.do")
|
||||
public ResponseEntity<ResultData> procApprovalOther ( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/procApprovalOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
// 보고서 승인
|
||||
int iSucc = reportOtherService.procApproval(requestMap);
|
||||
|
||||
// 상태 추출
|
||||
int inReportSeq = CommonUtil.zeroConvert((requestMap.get("inReportSeq")));
|
||||
LinkedHashMap<String, Object> vo = reportOtherService.getReportWithBody(inReportSeq);
|
||||
|
||||
if(iSucc > 0)
|
||||
{
|
||||
resBody.put("resultCd" , "0" );
|
||||
resBody.put("resultMsg", "정상적으로 승인 되었습니다." );
|
||||
|
||||
resBody.put("resultInReportStatus" , CommonUtil.zeroConvert(vo.get("inReportStatus")) );
|
||||
}
|
||||
else
|
||||
{
|
||||
resBody.put("resultCd" , "-1" );
|
||||
resBody.put("resultMsg", "점검보고서 승인중 오류가 발생 하였습니다." );
|
||||
resBody.put("resultInReportStatus" , -1 );
|
||||
}
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/procApprovalOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이슈보고서 반려
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.25
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/rejectReportOther.do")
|
||||
public ResponseEntity<ResultData> rejectReportOther( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/rejectReportOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
// 보고서 반려
|
||||
int iSucc = reportOtherService.rejectReport(requestMap);
|
||||
|
||||
if(iSucc > 0)
|
||||
{
|
||||
resBody.put("resultCd" , "0" );
|
||||
resBody.put("resultMsg", "정상적으로 반려 되었습니다." );
|
||||
}
|
||||
else
|
||||
{
|
||||
resBody.put("resultCd" , "-1" );
|
||||
resBody.put("resultMsg", "점검보고서 반려중 오류가 발생 하였습니다." );
|
||||
}
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/rejectReportOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 기타 보고서 초기 기준정보 조회
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.10.15
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/getInitReportOther.do")
|
||||
public ResponseEntity<ResultData> getInitReportOther( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/getInitReportOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
int inInt = 0;
|
||||
|
||||
// 서비스데스크 인스던트 정보 조회
|
||||
int inIncidentSeq = CommonUtil.zeroConvert(requestMap.get("inIncidentSeq"));
|
||||
|
||||
// 보고서유형
|
||||
int inTask = CommonUtil.zeroConvert(requestMap.get("inTask"));
|
||||
|
||||
LinkedHashMap<String, Object> resultIncident = new LinkedHashMap<String, Object>();
|
||||
|
||||
// 인스던트 정보 조회
|
||||
if(inIncidentSeq>0)
|
||||
{
|
||||
resultIncident = svcDeskService.getIncidentBySeq(inIncidentSeq);
|
||||
}
|
||||
|
||||
int inServiceCode = CommonUtil.zeroConvert(resultIncident.get("inServiceCode"));
|
||||
|
||||
// 서비스정보 조회
|
||||
List<LinkedHashMap<String, Object>> resultService = reportOtherService.getServiceCombo(inServiceCode);
|
||||
|
||||
// 작업종류 조회
|
||||
LinkedHashMap<String, Object> resultTask = reportOtherService.getTaskCategory(inTask);
|
||||
|
||||
// 보고서 양식 추출
|
||||
List<LinkedHashMap<String, Object>> resultForm = reportOtherService.getReportForms(resultTask);
|
||||
|
||||
resBody.put("resultIncident" , resultIncident );
|
||||
resBody.put("resultService" , resultService );
|
||||
resBody.put("resultTask" , resultTask );
|
||||
resBody.put("resultForm" , resultForm );
|
||||
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/getInitReportOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 서비스정보 결재라인 목록 조회
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.25
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/getSvcApprovalListOther.do")
|
||||
public ResponseEntity<ResultData> getSvcApprovalListOther( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/getSvcApprovalListOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
int inServiceCode = CommonUtil.zeroConvert(requestMap.get("inServiceCode"));
|
||||
|
||||
log.info("inServiceCode [{}]", inServiceCode );
|
||||
|
||||
// 서비스 결재라인 조회
|
||||
List<LinkedHashMap<String, Object>> resultList = reportOtherService.getSvcApprovalList(inServiceCode);
|
||||
|
||||
resBody.put("resultList", resultList );
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/getSvcApprovalListOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* 보고서 양식 조회
|
||||
* @author urp 인프라본부 나혁제
|
||||
* 작성일 : 2025.02.25
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/srm/getReportFormOther.do")
|
||||
public ResponseEntity<ResultData> getReportFormOther( @RequestBody LinkedHashMap<String, Object> requestMap
|
||||
, HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
) throws Exception
|
||||
{
|
||||
log.info("\n\n\n\n\n");
|
||||
log.info(">>>>>>>>>>>>>>>>>>>>>>>>> /srm/getReportFormOther.do <<<<<<<<<<<<<<<<<<<<<<<<<");
|
||||
log.info("getRequestURI [{}]", request.getRequestURI() );
|
||||
log.info("입력값 확인 requestMap [{}]", requestMap.toString() );
|
||||
|
||||
LinkedHashMap<String, Object> resBody = new LinkedHashMap<String, Object>();
|
||||
|
||||
// 2025.05.21 나혁제 출력인자 변경
|
||||
// 보고서 양식 조회
|
||||
LinkedHashMap<String, Object> resultMap = reportOtherService.getReportForm(requestMap);
|
||||
|
||||
resBody.put("resultMap", resultMap );
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<<<<<<< /srm/getReportFormOther.do >>>>>>>>>>>>>>>>>>>>>>>>>");
|
||||
|
||||
return ResultData.ok(resBody);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
115
src/main/java/com/urpsys/itmsapi/srm/dao/ReportOtherDao.java
Normal file
115
src/main/java/com/urpsys/itmsapi/srm/dao/ReportOtherDao.java
Normal file
@ -0,0 +1,115 @@
|
||||
package com.urpsys.itmsapi.srm.dao;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 기타보고서 관리에 대한 DAO 클래스를 정의
|
||||
*
|
||||
* @author urp 인프라본부 나혁제
|
||||
* @since 2025.10.15
|
||||
* @version 1.0.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* << 개정이력(Modification information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ----------- --------- ------------------------
|
||||
* 2025.10.15 나혁제 최초작성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Mapper
|
||||
@Repository
|
||||
public interface ReportOtherDao
|
||||
{
|
||||
// 이슈보고서 목록 조회
|
||||
public List<LinkedHashMap<String, Object>> searchReport(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 이슈보고서 목록 조회 건수
|
||||
public int searchReportCount(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
|
||||
// 보고서 양식 목록 추출
|
||||
public List<LinkedHashMap<String, Object>> getReportForms(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 2025.05.21 나혁제 출력인자 변경
|
||||
// 보고서 양식 추출
|
||||
public LinkedHashMap<String, Object> getReportForm(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 서비스 정보 목록 추출
|
||||
public List<LinkedHashMap<String, Object>> getServiceCombo(int inInt) throws Exception;
|
||||
|
||||
// 작업목록 추출
|
||||
public LinkedHashMap<String, Object> getTaskCategory(int inInt) throws Exception;
|
||||
|
||||
// 서비스 결재라인 조회
|
||||
public List<LinkedHashMap<String, Object>> getSvcApprovalList(int inInt) throws Exception;
|
||||
|
||||
// 메일전송 대상자 조회
|
||||
public List<LinkedHashMap<String, Object>> getReportMailReciever(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
|
||||
|
||||
// 보고서정보 상세조회
|
||||
public LinkedHashMap<String, Object> getReportWithBody(int inInt) throws Exception;
|
||||
|
||||
// 보고서 공유그룹 조회
|
||||
public List<LinkedHashMap<String, Object>> getReportSharing(int inInt) throws Exception;
|
||||
|
||||
// 보고서 지산 구조 정보 조회
|
||||
public List<LinkedHashMap<String, Object>> getReportAssets(int inInt) throws Exception;
|
||||
|
||||
// 보고서 결재 정보 조회
|
||||
public List<LinkedHashMap<String, Object>> getReportApproval(int inInt) throws Exception;
|
||||
|
||||
|
||||
|
||||
|
||||
// 보고서 등록
|
||||
public int addReport(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 보고서 자산 구조 등록
|
||||
public int addReportAssets(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 보고서 결재정보 등록
|
||||
public int addReportApproval(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 보고서 공유정보 등록
|
||||
public int addReportSharing(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 보고서 변경
|
||||
public int updateReport(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 보고서 공유그룹 삭제
|
||||
public int deleteReportSharing(int inInt) throws Exception;
|
||||
|
||||
// 보고서 자산 구조 삭제
|
||||
public int deleteReportAssetAll(int inInt) throws Exception;
|
||||
|
||||
// 보고서 결재정보 삭제
|
||||
public int deleteReportApproval(int inInt) throws Exception;
|
||||
|
||||
// 보고서 대기 상태로 변경
|
||||
public int approvalInit(int inInt) throws Exception;
|
||||
|
||||
// 보고서 삭제
|
||||
public int deleteReport(int inInt) throws Exception;
|
||||
|
||||
// 승인요청
|
||||
public int procApprovalReport(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 승인
|
||||
public int procApproval(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
// 반려
|
||||
public int rejectReport(LinkedHashMap<String, Object> inMap) throws Exception;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,321 @@
|
||||
package com.urpsys.itmsapi.srm.service;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.egovframe.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.urpsys.baseapi.common.util.CommonUtil;
|
||||
import com.urpsys.itmsapi.cmm.service.FileManageService;
|
||||
import com.urpsys.itmsapi.srm.dao.ReportOtherDao;
|
||||
|
||||
/**
|
||||
* 기타 보고서 정보에 관한 비즈니스 구현 클래스를 정의
|
||||
*
|
||||
* @author urp 인프라본부 나혁제
|
||||
* @since 2025.10.15
|
||||
* @version 1.0.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* << 개정이력(Modification information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ----------- --------- ------------------------
|
||||
* 2025.10.15 나혁제 최초작성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Service
|
||||
@Transactional
|
||||
public class ReportOtherService
|
||||
{
|
||||
@Autowired
|
||||
ReportOtherDao reportOtherDao;
|
||||
|
||||
@Autowired
|
||||
HomeService homeService;
|
||||
|
||||
@Autowired
|
||||
FileManageService fileManageService; // 파일처리
|
||||
|
||||
/** 보고서ID 추출 */
|
||||
@Resource(name="egovRptIdGnrService")
|
||||
private EgovIdGnrService egovRptIdGnrService;
|
||||
|
||||
|
||||
// 이슈보고서 목록 조회
|
||||
public List<LinkedHashMap<String, Object>> searchReport(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
inMap.put("groups", homeService.getMyUserGroups((String)inMap.get("reqUser")));
|
||||
return reportOtherDao.searchReport(inMap);
|
||||
}
|
||||
|
||||
// 이슈보고서 목록 조회 건수
|
||||
public int searchReportCount(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
return reportOtherDao.searchReportCount(inMap);
|
||||
}
|
||||
|
||||
// 이슈보고서 양식 목록 추출
|
||||
public List<LinkedHashMap<String, Object>> getReportForms(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
return reportOtherDao.getReportForms(inMap);
|
||||
}
|
||||
|
||||
// 2025.05.21 나혁제 출력인자 변경
|
||||
// 이슈보고서 양식 추출
|
||||
public LinkedHashMap<String, Object> getReportForm(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
return reportOtherDao.getReportForm(inMap);
|
||||
}
|
||||
|
||||
// 서비스 정보 목록 추출
|
||||
public List<LinkedHashMap<String, Object>> getServiceCombo(int inInt) throws Exception
|
||||
{
|
||||
return reportOtherDao.getServiceCombo(inInt);
|
||||
}
|
||||
|
||||
// 작업목록 추출
|
||||
public LinkedHashMap<String, Object> getTaskCategory(int inInt) throws Exception
|
||||
{
|
||||
return reportOtherDao.getTaskCategory(inInt);
|
||||
}
|
||||
|
||||
// 서비스 결재라인 조회
|
||||
public List<LinkedHashMap<String, Object>> getSvcApprovalList(int inInt) throws Exception
|
||||
{
|
||||
return reportOtherDao.getSvcApprovalList(inInt);
|
||||
}
|
||||
|
||||
|
||||
// 이슈보고서 상세조회
|
||||
public LinkedHashMap<String, Object> getReportWithBody(int inInt) throws Exception
|
||||
{
|
||||
return reportOtherDao.getReportWithBody(inInt);
|
||||
}
|
||||
|
||||
// 이슈보고서 지산 구조 정보 조회
|
||||
public List<LinkedHashMap<String, Object>> getReportAssets(int inInt) throws Exception
|
||||
{
|
||||
return reportOtherDao.getReportAssets(inInt);
|
||||
}
|
||||
|
||||
// 이슈보고서 결재 정보 조회
|
||||
public List<LinkedHashMap<String, Object>> getReportApproval(int inInt) throws Exception
|
||||
{
|
||||
return reportOtherDao.getReportApproval(inInt);
|
||||
}
|
||||
|
||||
// 이슈보고서 공유그룹 조회
|
||||
public List<LinkedHashMap<String, Object>> getReportSharing(int inInt) throws Exception
|
||||
{
|
||||
return reportOtherDao.getReportSharing(inInt);
|
||||
}
|
||||
|
||||
// 메일전송 대상자 조회
|
||||
public List<LinkedHashMap<String, Object>> getReportMailReciever(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
return reportOtherDao.getReportMailReciever(inMap);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 이슈보고서 등록처리
|
||||
public LinkedHashMap<String, Object> addReport( LinkedHashMap<String, Object> inMap
|
||||
, List<LinkedHashMap<String, Object>> assetList
|
||||
, List<LinkedHashMap<String, Object>> approvalsList
|
||||
, List<LinkedHashMap<String, Object>> fileList
|
||||
, LinkedHashMap<String, Object> reqApprovalMap
|
||||
) throws Exception
|
||||
{
|
||||
String strReportId = generateRptId();
|
||||
inMap.put("vcReportId", strReportId);
|
||||
|
||||
int iSucc = reportOtherDao.addReport(inMap);
|
||||
|
||||
// 보고서 자산 구조 입력
|
||||
if(assetList != null && assetList.size()>0)
|
||||
{
|
||||
for(LinkedHashMap<String, Object> tempMap : assetList)
|
||||
{
|
||||
tempMap.put("inReportSeq", inMap.get("inReportSeq"));
|
||||
|
||||
reportOtherDao.addReportAssets(tempMap);
|
||||
}
|
||||
}
|
||||
|
||||
// 결제라인 입력
|
||||
if(approvalsList != null && approvalsList.size()>0)
|
||||
{
|
||||
for(LinkedHashMap<String, Object> approvalMap : approvalsList)
|
||||
{
|
||||
approvalMap.put("inReportSeq", inMap.get("inReportSeq"));
|
||||
|
||||
reportOtherDao.addReportApproval(approvalMap);
|
||||
}
|
||||
}
|
||||
|
||||
// 파일정보저장
|
||||
if( fileList != null
|
||||
&& fileList.size()>0)
|
||||
{
|
||||
fileManageService.insertFileInfs(fileList);
|
||||
}
|
||||
|
||||
// 승인요청 처리
|
||||
if(reqApprovalMap.get("reqApprovalYn") != null && reqApprovalMap.get("reqApprovalYn").equals("Y"))
|
||||
{
|
||||
reqApprovalMap.put("inReportSeq", inMap.get("inReportSeq"));
|
||||
procApprovalReport(reqApprovalMap);
|
||||
}
|
||||
|
||||
LinkedHashMap<String, Object> returnMap = new LinkedHashMap<String, Object>();
|
||||
|
||||
returnMap.put("iSucc" , iSucc);
|
||||
returnMap.put("inReportSeq" , inMap.get("inReportSeq"));
|
||||
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
// 이슈보고서 변경처리
|
||||
public int updateReport( LinkedHashMap<String, Object> inMap
|
||||
, List<LinkedHashMap<String, Object>> assetList
|
||||
, List<LinkedHashMap<String, Object>> approvalsList
|
||||
, List<LinkedHashMap<String, Object>> fileList
|
||||
, LinkedHashMap<String, Object> reqApprovalMap
|
||||
) throws Exception
|
||||
{
|
||||
int inReportStatus = CommonUtil.zeroConvert(inMap.get("inReportStatus"));
|
||||
int inReportSeq = CommonUtil.zeroConvert(inMap.get("inReportSeq"));
|
||||
|
||||
int iSucc = reportOtherDao.updateReport(inMap);
|
||||
|
||||
// 보고서 자산 구조 입력
|
||||
reportOtherDao.deleteReportAssetAll(inReportSeq);
|
||||
if(assetList != null && assetList.size()>0)
|
||||
{
|
||||
for(LinkedHashMap<String, Object> tempMap : assetList)
|
||||
{
|
||||
tempMap.put("inReportSeq", inMap.get("inReportSeq"));
|
||||
|
||||
reportOtherDao.addReportAssets(tempMap);
|
||||
}
|
||||
}
|
||||
|
||||
// 결제라인 입력
|
||||
if(inReportStatus == 0)
|
||||
{
|
||||
reportOtherDao.deleteReportApproval(inReportSeq);
|
||||
|
||||
if(approvalsList != null && approvalsList.size()>0)
|
||||
{
|
||||
for(LinkedHashMap<String, Object> approvalMap : approvalsList)
|
||||
{
|
||||
approvalMap.put("inReportSeq", inMap.get("inReportSeq"));
|
||||
reportOtherDao.addReportApproval(approvalMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(approvalsList != null && approvalsList.size()>0)
|
||||
{
|
||||
reportOtherDao.deleteReportApproval(inReportSeq);
|
||||
|
||||
for(LinkedHashMap<String, Object> approvalMap : approvalsList)
|
||||
{
|
||||
approvalMap.put("inReportSeq", inMap.get("inReportSeq"));
|
||||
reportOtherDao.addReportApproval(approvalMap);
|
||||
}
|
||||
reportOtherDao.approvalInit(inReportSeq);
|
||||
}
|
||||
}
|
||||
|
||||
// 파일정보저장
|
||||
if( fileList != null && fileList.size()>0)
|
||||
{
|
||||
if(inMap.get("atchFileInUpGb").equals("U"))
|
||||
{
|
||||
// 상세 정보만 입력
|
||||
fileManageService.updateFileInfs(fileList);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 마스터+상세 정보 입력 처리
|
||||
fileManageService.insertFileInfs(fileList);
|
||||
}
|
||||
}
|
||||
|
||||
// 승인요청 처리
|
||||
if(reqApprovalMap.get("reqApprovalYn") != null && reqApprovalMap.get("reqApprovalYn").equals("Y"))
|
||||
{
|
||||
procApprovalReport(reqApprovalMap);
|
||||
}
|
||||
|
||||
return iSucc;
|
||||
}
|
||||
|
||||
// 이슈보고서 삭제
|
||||
public int deleteReport(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
int inReportSeq = CommonUtil.zeroConvert(inMap.get("inReportSeq"));
|
||||
|
||||
int iSucc = reportOtherDao.deleteReport(inReportSeq);
|
||||
|
||||
if(iSucc>0)
|
||||
{
|
||||
reportOtherDao.deleteReportApproval(inReportSeq);
|
||||
reportOtherDao.deleteReportAssetAll(inReportSeq);
|
||||
}
|
||||
|
||||
return iSucc;
|
||||
}
|
||||
|
||||
// 이슈보고서 승인요청
|
||||
public int procApprovalReport(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
return reportOtherDao.procApprovalReport(inMap);
|
||||
}
|
||||
|
||||
// 이슈보고서 승인
|
||||
public int procApproval(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
return reportOtherDao.procApproval(inMap);
|
||||
}
|
||||
|
||||
// 이슈보고서 반려
|
||||
public int rejectReport(LinkedHashMap<String, Object> inMap) throws Exception
|
||||
{
|
||||
return reportOtherDao.rejectReport(inMap);
|
||||
}
|
||||
|
||||
// 보고서ID 추출
|
||||
private String generateRptId() throws Exception
|
||||
{
|
||||
String strIncidentId = CommonUtil.getKST("YY-MMdd-") + egovRptIdGnrService.getNextStringId();
|
||||
return strIncidentId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -24,6 +24,8 @@
|
||||
</resultMap>
|
||||
|
||||
<!-- 2025.09.22 나혁제 IN_SORT_SN 정렬순서추가 -->
|
||||
<!-- 2025.10.17 나혁제 정렬방식 변경 -->
|
||||
<!-- ORDER BY IN_SORT_SN, VC_FORM_NAME -->
|
||||
<select id="getReportForms" parameterType="java.util.LinkedHashMap" resultMap="formVo">
|
||||
/* ReportDao.getReportForms */
|
||||
SELECT A.IN_REPORT_FORM
|
||||
@ -41,7 +43,7 @@
|
||||
AND A.VC_FORM_NAME LIKE CONCAT('%' , #{searchKeyword}, '%')
|
||||
AND B.CD_ID ='SM_002'
|
||||
AND A.IN_TASK = B.CD
|
||||
ORDER BY IN_SORT_SN, VC_FORM_NAME
|
||||
ORDER BY A.IN_REPORT_FORM DESC
|
||||
<include refid="paging"/>
|
||||
|
||||
</select>
|
||||
|
||||
@ -0,0 +1,669 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!--Converted at: Wed May 11 15:49:39 KST 2016-->
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.urpsys.itmsapi.srm.dao.ReportOtherDao">
|
||||
|
||||
<resultMap type="java.util.LinkedHashMap" id="reportVo">
|
||||
<result property="inReportSeq" column="IN_REPORT_SEQ"/>
|
||||
<result property="inReportStatus" column="IN_REPORT_STATUS"/>
|
||||
<result property="vcReportId" column="VC_REPORT_ID"/>
|
||||
<result property="inIncidentSeq" column="IN_INCIDENT_SEQ"/>
|
||||
<result property="vcIncidentNum" column="VC_INCIDENT_NUM"/>
|
||||
<result property="inServiceCode" column="IN_SERVICE_CODE"/>
|
||||
<result property="vcServiceName" column="VC_SERVICE_NAME"/>
|
||||
<result property="dtStartDatetime" column="DT_START_DATETIME"/>
|
||||
<result property="dtFinishDatetime" column="DT_FINISH_DATETIME"/>
|
||||
<result property="inTaskUser" column="IN_TASK_USER"/>
|
||||
<result property="vcTaskUser" column="VC_TASK_USER"/>
|
||||
<result property="inRegUser" column="IN_REG_USER"/>
|
||||
<result property="vcRegUser" column="VC_REG_USER"/>
|
||||
<result property="dtLastUpdate" column="DT_LAST_UPDATE"/>
|
||||
<result property="inTask" column="IN_TASK"/>
|
||||
<result property="inDowntime" column="IN_DOWNTIME"/>
|
||||
<result property="dtDownstartDatetime" column="DT_DOWNSTART_DATETIME"/>
|
||||
<result property="dtDownfinishDatetime" column="DT_DOWNFINISH_DATETIME"/>
|
||||
<result property="vcReportTitle" column="VC_REPORT_TITLE"/>
|
||||
<result property="vcReportStatus" column="VC_REPORT_STATUS"/>
|
||||
<result property="txReportBody" column="TX_REPORT_BODY"/>
|
||||
<result property="vcTask" column="VC_TASK"/>
|
||||
<result property="inReqApprovalUser" column="IN_REQ_APPROVAL_USER"/>
|
||||
<result property="vcReqApprovalUser" column="VC_REQ_APPROVAL_USER"/>
|
||||
<result property="dtReqApprovalDatetime" column="DT_REQ_APPROVAL_DATETIME"/>
|
||||
<result property="txReqApprovalComment" column="TX_REQ_APPROVAL_COMMENT"/>
|
||||
<result property="vcTaskCompany" column="VC_TASK_COMPANY"/>
|
||||
<result property="inAssetCount" column="IN_ASSET_COUNT"/>
|
||||
<result property="inPercallPrice" column="IN_PERCALL_PRICE"/>
|
||||
<result property="atchFileId" column="ATCH_FILE_ID"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="java.util.LinkedHashMap" id="formVo">
|
||||
<result column="IN_REPORT_FORM" property="inReportForm"/>
|
||||
<result column="VC_FORM_NAME" property="vcFormName"/>
|
||||
<result column="VC_FORM_DESC" property="vcFormDesc"/>
|
||||
<result column="IN_SORT_SN" property="inSortSn"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="java.util.LinkedHashMap" id="selectVo">
|
||||
<result column="VALUE" property="value"/>
|
||||
<result column="LABEL" property="label"/>
|
||||
<result column="SELECTED" property="selected"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="java.util.LinkedHashMap" id="approval">
|
||||
<result property="vcUserName" column="VC_USER_NAME"/>
|
||||
<result property="vcStatus" column="VC_STATUS"/>
|
||||
<result property="txComment" column="TX_COMMENT"/>
|
||||
<result property="inUserSeq" column="IN_USER_SEQ"/>
|
||||
<result property="inOrder" column="IN_ORDER"/>
|
||||
<result property="inStatus" column="IN_STATUS"/>
|
||||
<result property="dtApprovalDatetime" column="DT_APPROVAL_DATETIME"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="java.util.LinkedHashMap" id="groupVo">
|
||||
<result property="inUserGroupSeq" column="IN_USER_GROUP_SEQ"/>
|
||||
<result property="vcUserGroup" column="VC_USER_GROUP"/>
|
||||
<result property="vcUserGroupDesc" column="VC_USER_GROUP_DESC"/>
|
||||
<result property="inCount" column="IN_COUNT"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="java.util.LinkedHashMap" id="reportAsset">
|
||||
<result property="inAssetSeq" column="IN_ASSET_SEQ"/>
|
||||
<result property="vcAssetName" column="VC_ASSET_NAME"/>
|
||||
<result property="vcCate1" column="VC_CATE1"/>
|
||||
<result property="vcCate2" column="VC_CATE2"/>
|
||||
<result property="vcCate3" column="VC_CATE3"/>
|
||||
<result property="txComment" column="TX_COMMENT"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="paging">
|
||||
<if test="recordCountPerPage != null and firstIndex != null">
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<sql id="sharing">
|
||||
<if test="reqUser != null and reqUser != '' ">
|
||||
AND (
|
||||
A.IN_REPORT_SEQ IN ( SELECT IN_TARGET_SEQ
|
||||
FROM CM_SHARING_MEMBER
|
||||
WHERE IN_TYPE=1
|
||||
AND IN_USER_GROUP_SEQ IN (#{groups}) )
|
||||
OR
|
||||
A.IN_REPORT_SEQ NOT IN (SELECT IN_TARGET_SEQ
|
||||
FROM CM_SHARING_MEMBER
|
||||
WHERE IN_TYPE=1)
|
||||
)
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 엔지니어 권한 사용자가 보고서 검색시 본인 회사 소속인 작성글만 조회되도록. inPrivTemplateSeq 는 사이트마다 다를 수 있음. 신정원요구사항-->
|
||||
<sql id="customizing">
|
||||
<if test="customizing == 'kcredit' and inPrivTemplateSeq == 5">
|
||||
AND (
|
||||
A.IN_REG_USER IN (SELECT IN_USER_SEQ
|
||||
FROM CM_USER
|
||||
WHERE IN_COMPANY_SEQ=${reqUserCompany})
|
||||
)
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<sql id="searchFilter">
|
||||
<if test="status != null and status!=''"> AND A.IN_REPORT_STATUS IN (${status})</if>
|
||||
<if test="reportId != null and reportId!=''"> AND A.VC_REPORT_ID LIKE "%${reportId}%"</if>
|
||||
<if test="incidentNum != null and incidentNum!=''"> AND C.VC_INCIDENT_NUM LIKE "%${incidentNum}%"</if>
|
||||
<if test="reportTitle != null and reportTitle!=''"> AND A.VC_REPORT_TITLE LIKE "%${reportTitle}%"</if>
|
||||
<if test="regUser != null and regUser!=''"> AND A.VC_REG_USER LIKE "%${regUser}%"</if>
|
||||
<if test="taskUser != null and taskUser !=0"> AND A.IN_TASK_USER = #{taskUser} </if>
|
||||
<if test="taskCode != null and taskCode!=0"> AND A.IN_TASK = ${taskCode}</if>
|
||||
<if test="sdate != null and sdate!=''"><![CDATA[ AND UNIX_TIMESTAMP(A.DT_LAST_UPDATE) >= UNIX_TIMESTAMP("${sdate}")]]></if>
|
||||
<if test="edate != null and edate!=''"><![CDATA[ AND UNIX_TIMESTAMP(A.DT_LAST_UPDATE) <= UNIX_TIMESTAMP("${edate}")]]></if>
|
||||
</sql>
|
||||
|
||||
<!-- 2025.02.17 나혁제 이부분은 일단 삭제처리
|
||||
<include refid="customizing"/>
|
||||
-->
|
||||
|
||||
<select id="searchReport" parameterType="java.util.LinkedHashMap" resultMap="reportVo">
|
||||
<![CDATA[
|
||||
/* ReportOtherDao.searchReport */
|
||||
SELECT A.IN_REPORT_SEQ
|
||||
, A.IN_REPORT_STATUS
|
||||
, A.VC_REPORT_ID
|
||||
, A.IN_INCIDENT_SEQ
|
||||
, C.VC_INCIDENT_NUM
|
||||
, DATE_FORMAT(A.DT_FINISH_DATETIME, '%Y-%m-%d %H:%i') AS DT_FINISH_DATETIME
|
||||
, A.IN_TASK_USER
|
||||
, A.VC_TASK_USER
|
||||
, A.IN_REG_USER
|
||||
, A.VC_REG_USER
|
||||
, DATE_FORMAT(A.DT_LAST_UPDATE, '%Y-%m-%d %H:%i') AS DT_LAST_UPDATE
|
||||
, A.IN_TASK
|
||||
, A.IN_DOWNTIME
|
||||
, A.VC_REPORT_TITLE
|
||||
, DATE_FORMAT(A.DT_START_DATETIME, '%Y-%m-%d %H:%i') AS DT_START_DATETIME
|
||||
, DATE_FORMAT(A.DT_DOWNSTART_DATETIME, '%Y-%m-%d %H:%i') AS DT_DOWNSTART_DATETIME
|
||||
, DATE_FORMAT(A.DT_DOWNFINISH_DATETIME, '%Y-%m-%d %H:%i') AS DT_DOWNFINISH_DATETIME
|
||||
, A.IN_SERVICE_CODE
|
||||
, '' AS TX_REPORT_BODY
|
||||
, B.CD_NM AS VC_TASK
|
||||
, D.VC_SERVICE_NAME
|
||||
, IF( A.IN_REPORT_STATUS=3, "승인완료"
|
||||
, IF(A.IN_REPORT_STATUS=2, "반려"
|
||||
, IF(A.IN_REPORT_STATUS=1, "승인중", "대기"))) AS VC_REPORT_STATUS
|
||||
, IFNULL(A.IN_REQ_APPROVAL_USER, 0) AS IN_REQ_APPROVAL_USER
|
||||
, A.DT_REQ_APPROVAL_DATETIME
|
||||
, A.TX_REQ_APPROVAL_COMMENT
|
||||
, A.VC_REQ_APPROVAL_USER
|
||||
, (SELECT COUNT(IN_ASSET_SEQ)
|
||||
FROM CM_REPORT_ASSET
|
||||
WHERE IN_REPORT_SEQ = A.IN_REPORT_SEQ) AS IN_ASSET_COUNT
|
||||
, IFNULL((SELECT COM.GRP_NM AS VC_COMPANY_NAME
|
||||
FROM TB_AUTH_GRP_INFO COM
|
||||
WHERE COM.GRP_ID = ( SELECT GROUP_ID
|
||||
FROM COMVNUSERMASTER
|
||||
WHERE ESNTL_ID = A.IN_TASK_USER)), "") AS VC_TASK_COMPANY
|
||||
FROM CM_REPORT A
|
||||
LEFT OUTER JOIN TB_CMM_DTL_CD_INFO B ON A.IN_TASK=B.CD
|
||||
AND B.CD_ID ='SM_002'
|
||||
LEFT OUTER JOIN CM_SERVICE D ON A.IN_SERVICE_CODE=D.IN_SERVICE_CODE
|
||||
LEFT OUTER JOIN CM_INCIDENT C ON A.IN_INCIDENT_SEQ=C.IN_INCIDENT_SEQ
|
||||
WHERE 1=1
|
||||
AND A.IN_REPORT_SEQ > 0
|
||||
AND A.IN_TASK = #{inTask}
|
||||
]]>
|
||||
<include refid="sharing"/>
|
||||
<!-- 2025.02.17 나혁제 일단 처리하지 않음
|
||||
<include refid="customizing"/> -->
|
||||
<include refid="searchFilter"/>
|
||||
<if test="sortField != null and sortField !=''">
|
||||
<if test="sortField == 'vcReportId'"> ORDER BY A.VC_REPORT_ID</if>
|
||||
<if test="sortField == 'vcReportStatus'"> ORDER BY VC_REPORT_STATUS</if>
|
||||
<if test="sortField == 'vcServiceName'"> ORDER BY D.VC_SERVICE_NAME</if>
|
||||
<if test="sortField == 'vcIncidentNum'"> ORDER BY C.VC_INCIDENT_NUM</if>
|
||||
<if test="sortField == 'inDowntime'"> ORDER BY A.IN_DOWNTIME</if>
|
||||
<if test="sortField == 'vcTask'"> ORDER BY B.VC_TASK</if>
|
||||
<if test="sortField == 'vcReportTitle'"> ORDER BY A.VC_REPORT_TITLE</if>
|
||||
<if test="sortField == 'vcRegUser'"> ORDER BY A.VC_REG_USER</if>
|
||||
<if test="sortField == 'vcTaskUser'"> ORDER BY A.VC_TASK_USER</if>
|
||||
<if test="sortField == 'vcTaskCompany'"> ORDER BY VC_TASK_COMPANY</if>
|
||||
<if test="sortField == 'inAssetCount'"> ORDER BY IN_ASSET_COUNT</if>
|
||||
<if test="sortField == 'dtLastUpdate'"> ORDER BY DT_LAST_UPDATE</if>
|
||||
<if test="sortField == 'dtStartDatetime'"> ORDER BY DT_START_DATETIME</if>
|
||||
<if test="sortField == 'dtFinishDatetime'"> ORDER BY DT_FINISH_DATETIME</if>
|
||||
<if test="sortField == 'dtDownstartDatetime'"> ORDER BY DT_DOWNSTART_DATETIME</if>
|
||||
<if test="sortField == 'dtDownfinishDatetime'"> ORDER BY DT_DOWNFINISH_DATETIME</if>
|
||||
|
||||
<if test="sortOrder != null and sortOrder =='asc'"> ASC</if>
|
||||
<if test="sortOrder != null and sortOrder =='desc'"> DESC</if>
|
||||
</if>
|
||||
<if test="sortField == null or sortField ==''">
|
||||
ORDER BY IN_REPORT_SEQ DESC
|
||||
</if>
|
||||
<include refid="paging"/>
|
||||
</select>
|
||||
|
||||
<select id="searchReportCount" parameterType="java.util.HashMap" resultType="int">
|
||||
/* ReportOtherDao.searchReportCount */
|
||||
SELECT COUNT(A.IN_REPORT_SEQ)
|
||||
FROM CM_REPORT A
|
||||
LEFT OUTER JOIN TB_CMM_DTL_CD_INFO B ON A.IN_TASK=B.CD
|
||||
AND B.CD_ID ='SM_002'
|
||||
LEFT OUTER JOIN CM_SERVICE D ON A.IN_SERVICE_CODE=D.IN_SERVICE_CODE
|
||||
LEFT OUTER JOIN CM_INCIDENT C ON A.IN_INCIDENT_SEQ=C.IN_INCIDENT_SEQ
|
||||
WHERE 1=1
|
||||
AND A.IN_REPORT_SEQ > 0
|
||||
AND A.IN_TASK = #{inTask}
|
||||
<include refid="sharing"/>
|
||||
<include refid="customizing"/>
|
||||
<include refid="searchFilter"/>
|
||||
</select>
|
||||
|
||||
<!-- 2025.09.22 나혁제 IN_SORT_SN 정렬순서추가 -->
|
||||
<select id="getReportForms" parameterType="java.util.HashMap" resultMap="formVo">
|
||||
/* ReportOtherDao.getReportForms */
|
||||
SELECT IN_REPORT_FORM
|
||||
, VC_FORM_DESC
|
||||
, VC_FORM_NAME
|
||||
, IN_TASK
|
||||
, IFNULL(IN_SORT_SN, 9999) AS IN_SORT_SN
|
||||
FROM CM_REPORT_FORM
|
||||
WHERE IN_TASK=${value}
|
||||
ORDER BY IN_SORT_SN, VC_FORM_NAME
|
||||
</select>
|
||||
|
||||
<select id="getServiceCombo" parameterType="int" resultMap="selectVo">
|
||||
/* ReportOtherDao.getServiceCombo */
|
||||
SELECT A.IN_SERVICE_CODE AS VALUE
|
||||
, A.VC_SERVICE_NAME AS LABEL
|
||||
, @I:=@I+1
|
||||
,
|
||||
<if test="value1 != 0 ">
|
||||
IF(A.IN_SERVICE_CODE = #{value1}, 1, 0) AS SELECTED
|
||||
</if>
|
||||
<if test="value1 == null or value1 == 0">
|
||||
IF(@I=0, 1, 0) AS SELECTED
|
||||
</if>
|
||||
FROM CM_SERVICE A
|
||||
, (SELECT @I:=0) AS DM
|
||||
ORDER BY A.IN_SERVICE_CODE
|
||||
</select>
|
||||
|
||||
<!-- 2025.02.17 나혁제 value 변수명은 수정해야 한다. -->
|
||||
|
||||
<select id="getTaskCategory" parameterType="String" resultMap="selectVo" >
|
||||
/* ReportOtherDao.getTaskCategory */
|
||||
SELECT A.CD AS VALUE
|
||||
, A.CD_NM AS LABEL
|
||||
, @I:=@I+1,
|
||||
<if test="value1 > 0">
|
||||
IF(A.CD = #{value1}, 1, 0) AS SELECTED
|
||||
</if>
|
||||
<if test="value1 == null or value1 == 0">
|
||||
IF(@I = 0, 1, 0) AS SELECTED
|
||||
</if>
|
||||
FROM TB_CMM_DTL_CD_INFO A
|
||||
, (SELECT @I:=0) AS DM
|
||||
WHERE A.CD_ID ='SM_002'
|
||||
AND A.CD = #{value1}
|
||||
ORDER BY A.CD
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getSvcApprovalList" parameterType="int" resultMap="approval">
|
||||
/* ReportOtherDao.getSvcApprovalList */
|
||||
SELECT B.USER_NM AS VC_USER_NAME
|
||||
, '' AS TX_COMMENT
|
||||
, B.ESNTL_ID AS IN_USER_SEQ
|
||||
, IN_ORDER
|
||||
, 0 AS IN_STATUS
|
||||
, "대기" AS VC_STATUS
|
||||
, '' as DT_APPROVAL_DATETIME
|
||||
FROM CM_SERVICE_DEF_APPROVAL A
|
||||
INNER JOIN TB_TASK_USER_INFO B ON A.IN_USER_SEQ = B.ESNTL_ID
|
||||
WHERE IN_SERVICE_CODE=#{value}
|
||||
</select>
|
||||
|
||||
<!-- 2025.05.21 나혁제 쿼리 수정 -->
|
||||
<select id="getReportForm" parameterType="java.util.LinkedHashMap" resultType="java.util.LinkedHashMap">
|
||||
/* ReportOtherDao.getReportForm */
|
||||
SELECT TX_REPORT_FORM AS txReportForm
|
||||
, IN_TASK_USER AS inTaskUser
|
||||
, VC_TASK_USER AS vcTaskUser
|
||||
FROM CM_REPORT_FORM
|
||||
WHERE IN_REPORT_FORM=#{seq}
|
||||
</select>
|
||||
|
||||
<!--
|
||||
<select id="getReportForm" parameterType="java.util.HashMap" resultType="String">
|
||||
/* ReportOtherDao.getReportForm */
|
||||
SELECT TX_REPORT_FORM
|
||||
FROM CM_REPORT_FORM
|
||||
WHERE IN_REPORT_FORM=#{seq}
|
||||
</select>
|
||||
-->
|
||||
|
||||
<insert id="addReport" parameterType="java.util.HashMap" useGeneratedKeys="true" keyProperty="inReportSeq">
|
||||
/* ReportOtherDao.addReport */
|
||||
INSERT INTO CM_REPORT
|
||||
(
|
||||
IN_REPORT_STATUS
|
||||
, VC_REPORT_ID
|
||||
, IN_INCIDENT_SEQ
|
||||
, IN_TASK
|
||||
, IN_PERCALL_PRICE
|
||||
, <if test="dtStartDatetime!=null and dtStartDatetime!=''">DT_START_DATETIME,</if>
|
||||
<if test="dtFinishDatetime!=null and dtFinishDatetime!=''">DT_FINISH_DATETIME, </if>
|
||||
IN_DOWNTIME
|
||||
, IN_TASK_USER
|
||||
, VC_TASK_USER
|
||||
, IN_REG_USER
|
||||
, VC_REG_USER
|
||||
, IN_SERVICE_CODE
|
||||
, <if test="dtDownstartDatetime!=null and dtDownstartDatetime!=''">DT_DOWNSTART_DATETIME,</if>
|
||||
<if test="dtDownfinishDatetime!=null and dtDownfinishDatetime!=''">DT_DOWNFINISH_DATETIME,</if>
|
||||
DT_LAST_UPDATE
|
||||
, VC_REPORT_TITLE
|
||||
, TX_REPORT_BODY
|
||||
, ATCH_FILE_ID
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{inReportStatus}
|
||||
, "${vcReportId}"
|
||||
, #{inIncidentSeq}
|
||||
, #{inTask}
|
||||
, #{inPercallPrice}
|
||||
, <if test="dtStartDatetime!=null and dtStartDatetime!=''">"${dtStartDatetime}",</if>
|
||||
<if test="dtFinishDatetime!=null and dtFinishDatetime!=''">"${dtFinishDatetime}",</if>
|
||||
#{inDowntime}
|
||||
, #{inTaskUser}
|
||||
, "${vcTaskUser}"
|
||||
, #{inRegUser}
|
||||
, "${vcRegUser}"
|
||||
, #{inServiceCode}
|
||||
, <if test="dtDownstartDatetime!=null and dtDownstartDatetime!=''">"${dtDownstartDatetime}",</if>
|
||||
<if test="dtDownfinishDatetime!=null and dtDownfinishDatetime!=''">"${dtDownfinishDatetime}",</if>
|
||||
now()
|
||||
, "${vcReportTitle}"
|
||||
, "${txReportBody}"
|
||||
, #{atchFileId}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<insert id="addReportAssets" parameterType="java.util.HashMap">
|
||||
/* ReportOtherDao.addReportAssets */
|
||||
INSERT INTO CM_REPORT_ASSET
|
||||
(
|
||||
IN_REPORT_SEQ
|
||||
, IN_ASSET_SEQ
|
||||
, TX_COMMENT
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{inReportSeq}
|
||||
, #{inAssetSeq}
|
||||
, '${txComment}'
|
||||
)
|
||||
</insert>
|
||||
|
||||
<insert id="addReportSharing" parameterType="java.util.HashMap">
|
||||
/* ReportOtherDao.addReportSharing */
|
||||
INSERT INTO CM_SHARING_MEMBER
|
||||
( IN_TYPE
|
||||
, IN_TARGET_SEQ
|
||||
, IN_USER_SEQ
|
||||
, IN_USER_GROUP_SEQ
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
1
|
||||
, #{inReportSeq}
|
||||
, 0
|
||||
, #{sharing.inUserGroupSeq}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<insert id="addReportApproval" parameterType="java.util.HashMap">
|
||||
/* ReportOtherDao.addReportApproval */
|
||||
INSERT INTO CM_REPORT_APPROVAL
|
||||
(
|
||||
IN_REPORT_SEQ
|
||||
, IN_ORDER
|
||||
, IN_USER_SEQ
|
||||
, VC_USER_NAME
|
||||
, IN_STATUS
|
||||
, TX_COMMENT
|
||||
, DT_APPROVAL_DATETIME
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{inReportSeq}
|
||||
, #{idx}
|
||||
, #{inUserSeq}
|
||||
, "${vcUserName}"
|
||||
, 0
|
||||
, ""
|
||||
, null
|
||||
)
|
||||
</insert>
|
||||
|
||||
<select id="getReportWithBody" parameterType="int" resultMap="reportVo">
|
||||
/* ReportOtherDao.getReportWithBody */
|
||||
SELECT A.IN_REPORT_SEQ
|
||||
, A.IN_REPORT_STATUS
|
||||
, A.VC_REPORT_ID
|
||||
, A.IN_INCIDENT_SEQ
|
||||
, DATE_FORMAT(A.DT_START_DATETIME, '%Y-%m-%d %H:%i') AS DT_START_DATETIME
|
||||
, DATE_FORMAT(A.DT_FINISH_DATETIME, '%Y-%m-%d %H:%i') AS DT_FINISH_DATETIME
|
||||
, A.IN_TASK_USER
|
||||
, A.VC_TASK_USER
|
||||
, A.IN_REG_USER
|
||||
, A.VC_REG_USER
|
||||
, DATE_FORMAT(A.DT_LAST_UPDATE, '%Y-%m-%d %H:%i') AS DT_LAST_UPDATE
|
||||
, A.IN_TASK
|
||||
, A.IN_DOWNTIME
|
||||
, A.VC_REPORT_TITLE
|
||||
, DATE_FORMAT(A.DT_DOWNSTART_DATETIME, '%Y-%m-%d %H:%i') AS DT_DOWNSTART_DATETIME
|
||||
, DATE_FORMAT(A.DT_DOWNFINISH_DATETIME, '%Y-%m-%d %H:%i') AS DT_DOWNFINISH_DATETIME
|
||||
, A.IN_SERVICE_CODE
|
||||
, C.VC_SERVICE_NAME
|
||||
, A.TX_REPORT_BODY
|
||||
, B.CD_NM AS VC_TASK
|
||||
, A.IN_PERCALL_PRICE
|
||||
, IF( A.IN_REPORT_STATUS=3, "승인완료"
|
||||
, IF(A.IN_REPORT_STATUS=2, "반려"
|
||||
, IF(A.IN_REPORT_STATUS=1, "승인중", "접수"))) AS VC_REPORT_STATUS
|
||||
, IFNULL(A.IN_REQ_APPROVAL_USER, 0) AS IN_REQ_APPROVAL_USER
|
||||
, DATE_FORMAT(A.DT_REQ_APPROVAL_DATETIME, '%Y-%m-%d %H:%i') AS DT_REQ_APPROVAL_DATETIME
|
||||
, A.TX_REQ_APPROVAL_COMMENT
|
||||
, A.VC_REQ_APPROVAL_USER
|
||||
, A.ATCH_FILE_ID
|
||||
FROM CM_REPORT A
|
||||
LEFT OUTER JOIN TB_CMM_DTL_CD_INFO B ON A.IN_TASK=B.CD
|
||||
AND B.CD_ID ='SM_002'
|
||||
LEFT OUTER JOIN CM_SERVICE C ON A.IN_SERVICE_CODE=C.IN_SERVICE_CODE
|
||||
WHERE A.IN_REPORT_SEQ = #{value}
|
||||
</select>
|
||||
|
||||
<select id="getReportSharing" parameterType="int" resultMap="groupVo">
|
||||
/* ReportOtherDao.getReportSharing */
|
||||
SELECT A.IN_USER_GROUP_SEQ
|
||||
, A.VC_USER_GROUP
|
||||
, A.VC_USER_GROUP_DESC
|
||||
, ( SELECT COUNT(IN_USER_SEQ)
|
||||
FROM CM_USER_GROUP_MAP
|
||||
WHERE IN_USER_GROUP_SEQ = A.IN_USER_GROUP_SEQ) AS IN_COUNT
|
||||
FROM CM_USER_GROUP A
|
||||
, CM_SHARING_MEMBER B
|
||||
WHERE A.IN_USER_GROUP_SEQ = B.IN_USER_GROUP_SEQ
|
||||
AND B.IN_USER_SEQ = 0
|
||||
AND B.IN_TYPE=1
|
||||
AND B.IN_TARGET_SEQ=#{value}
|
||||
</select>
|
||||
|
||||
<select id="getReportAssets" parameterType="int" resultMap="reportAsset" >
|
||||
/* ReportOtherDao.getReportAssets */
|
||||
SELECT A.IN_ASSET_SEQ
|
||||
, B.VC_ASSET_NAME
|
||||
, A.TX_COMMENT
|
||||
, C1.VC_CATE1
|
||||
, C2.VC_CATE2
|
||||
, C3.VC_CATE3
|
||||
FROM CM_REPORT_ASSET A
|
||||
, CM_ASSET B
|
||||
LEFT OUTER JOIN CODE_ASSET_CATE1 C1 ON B.IN_CATE1=C1.IN_CATE1
|
||||
LEFT OUTER JOIN CODE_ASSET_CATE2 C2 ON B.IN_CATE1=C2.IN_CATE1
|
||||
AND B.IN_CATE2=C2.IN_CATE2
|
||||
LEFT OUTER JOIN CODE_ASSET_CATE3 C3 ON B.IN_CATE1=C3.IN_CATE1
|
||||
AND B.IN_CATE2=C3.IN_CATE2
|
||||
AND B.IN_CATE3=C3.IN_CATE3
|
||||
WHERE A.IN_ASSET_SEQ = B.IN_ASSET_SEQ
|
||||
AND A.IN_REPORT_SEQ=#{value}
|
||||
AND B.IN_DEL_FLAG=0
|
||||
</select>
|
||||
|
||||
<select id="getReportApproval" parameterType="int" resultMap="approval">
|
||||
/* ReportOtherDao.getReportApproval */
|
||||
SELECT VC_USER_NAME
|
||||
, TX_COMMENT
|
||||
, IN_USER_SEQ
|
||||
, IN_ORDER
|
||||
, IN_STATUS
|
||||
, DATE_FORMAT(DT_APPROVAL_DATETIME, '%Y-%m-%d %H:%i') AS DT_APPROVAL_DATETIME
|
||||
, IF( IN_STATUS=3, "승인완료"
|
||||
, IF(IN_STATUS=2, "반려"
|
||||
, IF(IN_STATUS=1, "승인중", "대기"))) AS VC_STATUS
|
||||
FROM CM_REPORT_APPROVAL
|
||||
WHERE IN_REPORT_SEQ=#{value}
|
||||
ORDER BY IN_ORDER
|
||||
</select>
|
||||
|
||||
<update id="updateReport" parameterType="java.util.HashMap" >
|
||||
/* ReportOtherDao.updateReport */
|
||||
UPDATE CM_REPORT
|
||||
SET IN_TASK=#{inTask}
|
||||
, <if test="dtStartDatetime!=null and dtStartDatetime!=''">DT_START_DATETIME="${dtStartDatetime}",</if>
|
||||
<if test="dtStartDatetime==null or dtStartDatetime==''">DT_START_DATETIME=null,</if>
|
||||
<if test="dtFinishDatetime!=null and dtFinishDatetime!=''">DT_FINISH_DATETIME="${dtFinishDatetime}", </if>
|
||||
<if test="dtFinishDatetime==null or dtFinishDatetime==''">DT_FINISH_DATETIME=null, </if>
|
||||
IN_DOWNTIME=#{inDowntime}
|
||||
, IN_PERCALL_PRICE=#{inPercallPrice}
|
||||
, IN_TASK_USER=#{inTaskUser}
|
||||
, VC_TASK_USER=#{vcTaskUser}
|
||||
, IN_REG_USER=#{inRegUser}
|
||||
, VC_REG_USER=#{vcRegUser}
|
||||
, IN_SERVICE_CODE=#{inServiceCode}
|
||||
, <if test="dtDownstartDatetime!=null and dtDownstartDatetime!=''">DT_DOWNSTART_DATETIME="${dtDownstartDatetime}",</if>
|
||||
<if test="dtDownstartDatetime==null or dtDownstartDatetime==''">DT_DOWNSTART_DATETIME=null,</if>
|
||||
<if test="dtDownfinishDatetime!=null and dtDownfinishDatetime!=''">DT_DOWNFINISH_DATETIME="${dtDownfinishDatetime}",</if>
|
||||
<if test="dtDownfinishDatetime==null or dtDownfinishDatetime==''">DT_DOWNFINISH_DATETIME=null,</if>
|
||||
DT_LAST_UPDATE=now()
|
||||
, VC_REPORT_TITLE=#{vcReportTitle}
|
||||
, TX_REPORT_BODY=#{txReportBody}
|
||||
, ATCH_FILE_ID=#{atchFileId}
|
||||
WHERE IN_REPORT_SEQ=${inReportSeq}
|
||||
</update>
|
||||
|
||||
<delete id="deleteReportAssetAll" parameterType="int">
|
||||
/* ReportOtherDao.deleteReportAssetAll */
|
||||
DELETE FROM CM_REPORT_ASSET
|
||||
WHERE IN_REPORT_SEQ = #{value}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteReportSharing" parameterType="int">
|
||||
/* ReportOtherDao.deleteReportSharing */
|
||||
DELETE FROM CM_SHARING_MEMBER
|
||||
WHERE IN_TYPE=1
|
||||
AND IN_TARGET_SEQ=#{value}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteReportApproval" parameterType="int">
|
||||
/* ReportOtherDao.deleteReportApproval */
|
||||
DELETE FROM CM_REPORT_APPROVAL
|
||||
WHERE IN_REPORT_SEQ=#{inReportSeq}
|
||||
</delete>
|
||||
|
||||
<!-- 승인진행 중에 보고서 수정하여, 승인 진행상황 모두 초기화 -->
|
||||
<update id="approvalInit" parameterType="int">
|
||||
/* ReportOtherDao.approvalInit */
|
||||
UPDATE CM_REPORT
|
||||
SET IN_REPORT_STATUS=0
|
||||
, DT_REQ_APPROVAL_DATETIME = NULL
|
||||
, TX_REQ_APPROVAL_COMMENT = ''
|
||||
WHERE IN_REPORT_SEQ=#{value}
|
||||
</update>
|
||||
|
||||
<delete id="deleteReport" parameterType="int">
|
||||
/* ReportOtherDao.deleteReport */
|
||||
DELETE FROM CM_REPORT
|
||||
WHERE IN_REPORT_SEQ = #{inReportSeq}
|
||||
</delete>
|
||||
|
||||
<update id="procApprovalReport" parameterType="java.util.LinkedHashMap" statementType="CALLABLE">
|
||||
{ call PROC_REQ_APPROVAL(
|
||||
1
|
||||
, #{inReportSeq}
|
||||
, #{inUserSeq}
|
||||
, "${txComment}"
|
||||
)
|
||||
}
|
||||
</update>
|
||||
|
||||
<update id="procApproval" parameterType="java.util.LinkedHashMap" statementType="CALLABLE">
|
||||
{ call PROC_APPROVAL(
|
||||
1
|
||||
, #{inReportSeq}
|
||||
, #{inUserSeq}
|
||||
,"${txComment}"
|
||||
)
|
||||
}
|
||||
</update>
|
||||
|
||||
<update id="rejectReport" parameterType="java.util.LinkedHashMap" statementType="CALLABLE">
|
||||
{ call PROC_REJECT(
|
||||
1
|
||||
, #{inReportSeq}
|
||||
, #{inUserSeq}
|
||||
, "${txComment}"
|
||||
)
|
||||
}
|
||||
</update>
|
||||
|
||||
<!-- 2025.07.04 나혁제 메일주소가 없는경우 도 추출
|
||||
AND U.EML_ADDR IS NOT NULL
|
||||
AND U.EML_ADDR != ""
|
||||
-->
|
||||
<select id="getReportMailReciever" parameterType="java.util.LinkedHashMap" resultType="java.util.LinkedHashMap">
|
||||
|
||||
/* ReportOtherDao.getReportMailReciever */
|
||||
SELECT U.ESNTL_ID AS IN_USER_SEQ
|
||||
, U.TASK_USER_ID AS VC_USER_ID
|
||||
, U.USER_NM AS VC_USER_NAME
|
||||
, U.EML_ADDR AS VC_USER_EMAIL
|
||||
, U.MOVE_TELNO AS VC_USER_PHONE
|
||||
, U.KATALK_ALAM_YN AS KATALK_ALAM_YN
|
||||
, U.MAIL_ALAM_YN AS MAIL_ALAM_YN
|
||||
FROM TB_TASK_USER_INFO U
|
||||
, CM_REPORT C
|
||||
WHERE C.IN_REPORT_SEQ=#{IN_REPORT_SEQ} AND
|
||||
(
|
||||
<if test="type == 1"> <!-- 등록 : 작업자 -->
|
||||
U.ESNTL_ID = C.IN_REG_USER
|
||||
OR U.ESNTL_ID = C.IN_TASK_USER
|
||||
</if>
|
||||
<if test="type == 2"> <!-- 수정 : 작업자 -->
|
||||
U.ESNTL_ID = C.IN_REG_USER
|
||||
OR U.ESNTL_ID = C.IN_TASK_USER
|
||||
</if>
|
||||
<if test="type == 3"> <!-- 승인요청 : 다음 결재라인, 작업자 -->
|
||||
U.ESNTL_ID = C.IN_REG_USER
|
||||
OR U.ESNTL_ID = C.IN_TASK_USER
|
||||
OR U.ESNTL_ID = ( SELECT IN_USER_SEQ
|
||||
FROM CM_REPORT_APPROVAL
|
||||
WHERE IN_REPORT_SEQ=#{IN_REPORT_SEQ}
|
||||
AND IN_STATUS=1 )
|
||||
</if>
|
||||
<if test="type == 4"> <!-- 승인완료 : 작업자 -->
|
||||
U.ESNTL_ID = C.IN_TASK_USER
|
||||
OR U.ESNTL_ID = C.IN_REG_USER
|
||||
OR C.IN_REQ_APPROVAL_USER = U.ESNTL_ID
|
||||
</if>
|
||||
<if test="type == 5"> <!-- 반려 : 작업자, 결재요청자, 하위 결재라인 -->
|
||||
U.ESNTL_ID = C.IN_TASK_USER
|
||||
OR U.ESNTL_ID = C.IN_REG_USER
|
||||
OR C.IN_REQ_APPROVAL_USER = U.ESNTL_ID
|
||||
<!-- 반려시 하위 승인자 포함 -->
|
||||
OR U.ESNTL_ID IN ( SELECT IN_USER_SEQ
|
||||
FROM CM_REPORT_APPROVAL
|
||||
WHERE IN_REPORT_SEQ = #{IN_REPORT_SEQ}
|
||||
AND IN_STATUS=3)
|
||||
</if>
|
||||
)
|
||||
GROUP BY U.ESNTL_ID
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user