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

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.crdn.dao.CrdnUpdtMapper;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.dao.IntegrationSearchMapper;
import cokr.xit.foundation.component.AbstractBean;
import cokr.xit.foundation.data.DataObject;

/**통합 조회 Bean
*
* <p>상세 설명:
*
* <pre>
* ============ 변경 이력 ============
* 2023-08-18	JoJH 최초 작성
* ================================
* </pre>
*/
@Component("integrationSearchBean")
public class IntegrationSearchBean extends AbstractBean {

	/** 통합 조회 정보 DAO */
	@Resource(name = "integrationSearchMapper")
	private IntegrationSearchMapper integrationSearchMapper;

	@Resource(name = "crdnUpdtMapper")
	private CrdnUpdtMapper crdnUpdtMapper;

	/**지정한 조건에 따라 통합 조회 자료 목록을 조회하여 반환한다.
	 * @param query 통합 조회 조건
	 * @return 통합 자료 목록
	 */
	public List<DataObject> getIntegrationDataList(SprtQuery query) {
		query.setOrderBy("C.CRDN_ID");
		return integrationSearchMapper.selectIntegrationDataList(query);
	}

	/**단속 특기사항을 일괄 저장한다.
	 * @param etcCn 특기사항, crdnIds 단속 ID 목록
	 * @return 저장여부
	 */
	public boolean updateEtcCn(String etcCn, String[] crdnIds) {

		Crdn crdn = new Crdn();
		crdn.setEtcCn(etcCn);

		int effected = 0;
		for(String crdnId : crdnIds) {
			crdn.setCrdnId(crdnId);
			int result = crdnUpdtMapper.updateEtcCn(crdn);
			effected += result;
		}

		if(effected != crdnIds.length) {
			throw new RuntimeException("특기사항 저장 중 오류가 발생하였습니다.");
		}
		return true;
	}

}
