package com.dbnt.faisp.fpiMgt.monthPlan; import com.dbnt.faisp.fpiMgt.monthPlan.model.BoardPlan; import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanFile; import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanMainInfo; import com.dbnt.faisp.fpiMgt.monthPlan.repository.BoardPlanRepository; import com.dbnt.faisp.fpiMgt.monthPlan.repository.PlanFileRepository; import com.dbnt.faisp.fpiMgt.monthPlan.repository.PlanMainInfoRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.persistence.Transient; import java.util.List; @Service @RequiredArgsConstructor public class MonthPlanService { private final BoardPlanRepository boardPlanRepository; private final PlanFileRepository planFileRepository; private final PlanMainInfoRepository planMainInfoRepository; public BoardPlan selectBoardPlan(Integer planKey) { BoardPlan savedPlan = boardPlanRepository.findById(planKey).orElse(null); savedPlan.setFileList(planFileRepository.findByPlanKey(planKey)); savedPlan.setMainInfoList(planMainInfoRepository.findByPlanKey(planKey)); return savedPlan; } @Transactional public Integer saveBoardPlan(BoardPlan boardPlan, List planInfos, List detailPlanInfos) { Integer planKey = boardPlanRepository.save(boardPlan).getPlanKey(); Integer infoSeq = savePlanMainInfos(planKey,0, "S", planInfos);//요약 summery savePlanMainInfos(planKey, infoSeq, "D", detailPlanInfos);//상세 detail return planKey; } private Integer savePlanMainInfos(Integer planKey, Integer planSeq, String infoType, List infoList){ for(String info: infoList){ PlanMainInfo planMainInfo = new PlanMainInfo(); planMainInfo.setPlanKey(planKey); planMainInfo.setPlanSeq(++planSeq); planMainInfo.setPlanType(infoType); planMainInfo.setPlanInfo(info); planMainInfoRepository.save(planMainInfo); } return planSeq; } }