package cokr.xit.fims.excl.service.bean;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import cokr.xit.base.file.FileInfo;
import cokr.xit.fims.excl.OpnnSbmsn;
import cokr.xit.fims.excl.ExclQuery;
import cokr.xit.fims.excl.service.Excl02Service;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.DataObject;

/**의견제출 대장 서비스 구현체.
 *
 * <p>상세 설명: 의견제출 대장 업무 기능을 구현한 클래스
 *
 * <pre>
 * ============ 변경 이력 ============
 * 2023-06-27	JoJH 최초 작성
 * ================================
 * </pre>
 */
@Service("excl02Service")
public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Service {

	/* 의견제출 대장 정보 Bean */
	@Resource(name = "excl02Bean")
	protected Excl02Bean excl02Bean;

	@Override
	public List<DataObject> getOpnnSbmsnList(ExclQuery req) {
		return excl02Bean.getOpnnSbmsnList(req);
	}

	@Override
	public List<DataObject> getOpnnSbmsns(ExclQuery req) {
		return excl02Bean.getOpnnSbmsns(req);
	}

	@Override
	public DataObject getOpnnSbmsnInfo(ExclQuery req) {
		if (req.getCallPurpose() == null) {
			req.setCallPurpose("view");
		}

		if (req.getCallPurpose().equals("create")) {
			return excl02Bean.getCrdnInfo(req);
		} else {
			return excl02Bean.getOpnnSbmsnInfo(req);
		}
	}

	@Override
	public String createOpnnSbmsn(OpnnSbmsn opnnSbmsn, List<FileInfo> fileInfoList) {
		return excl02Bean.createOpnnSbmsn(opnnSbmsn, fileInfoList);
	}

	@Override
	public String updateOpnnSbmsn(OpnnSbmsn opnnSbmsn, List<FileInfo> fileInfoList) {
		return excl02Bean.updateOpnnSbmsn(opnnSbmsn, fileInfoList);
	}

	@Override
	public String updateOpnnSbmsnAnswer(OpnnSbmsn opnnSbmsn) {
		return excl02Bean.updateOpnnSbmsnAnswer(opnnSbmsn);
	}

	@Override
	public String removeOpnnSbmsn(OpnnSbmsn opnnSbmsn) {
		return excl02Bean.removeOpnnSbmsn(opnnSbmsn);
	}

	@Override
	public String removeOpnnSbmsnList(ExclQuery req) {
		// 변수 선언
		String retMessage = "";							// 처리 결과 메시지

		// 의견제출 IDs 건수를 확인하여 1건이하면.. 종료
		if (req.getOpnnIDs().length < 1) {
			retMessage = "작업 중 선택 자료가 존재하지 않습니다.";
			return retMessage;
		}

		// 의견제출 IDs 만큼 반복..
		for (int iLoop = 0; iLoop < req.getOpnnIDs().length; iLoop++) {
			OpnnSbmsn opnnSbmsn = new OpnnSbmsn();

			opnnSbmsn.setOpnnId(req.getOpnnIDs()[iLoop]);						// 의견제출 ID
			opnnSbmsn.setDelRsn(req.getDelRsn());								// 삭제 사유

			// 부과제외 삭제 호출
			retMessage = excl02Bean.removeOpnnSbmsn(opnnSbmsn);
			// 오류가 발생하였으면 종료..
			if (retMessage.contains("[F]")) {
				return retMessage;
			}
		}

		return retMessage;
	}

}
