| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package com.its.op.service.bis;
- import com.its.op.dao.repository.bis.BisProcessRepository;
- import com.its.op.dao.repository.bis.BisProcessStatusHistoryRepository;
- import com.its.op.dto.bis.BisProcessDto;
- import com.its.op.dto.its.unit.TbUnitSystSttsDto;
- import com.its.op.entity.bis.BisProcess;
- import com.its.op.entity.bis.BisProcessStatusHistory;
- import com.its.utils.ItsUtils;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.context.annotation.Profile;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.concurrent.atomic.AtomicBoolean;
- @Profile("bis")
- @Slf4j
- @RequiredArgsConstructor
- @Service
- public class BisProcessService {
- private final BisProcessRepository repo;
- private final BisProcessStatusHistoryRepository sttsRepo;
- // 전체 데이터 조회
- @Transactional(readOnly = true)
- public List<BisProcessDto> findAll() {
- List<BisProcessDto> result = new ArrayList<>();
- List<BisProcess> data = this.repo.findAll();
- for (BisProcess entity : data) {
- result.add(entity.toDto());
- }
- return result;
- }
- /**
- * BIS 프로세스 상태정보 조회
- * @return
- */
- @Transactional(readOnly = true)
- public List<TbUnitSystSttsDto> findAllStts() {
- String updtDt = ItsUtils.getSysTime();
- Map<Integer, TbUnitSystSttsDto> result = new HashMap<>();
- //Map<String, TbUnitSystSttsDto> unitMap = new HashMap<>();
- List<BisProcess> unit = this.repo.findAllList();
- unit.forEach(obj -> {
- Integer systId = obj.getProcessid();
- // switch(systId) {
- // case 10902: systId = 10901; break;
- // case 11002: systId = 11001; break;
- // case 11202: systId = 11201; break;
- // case 11102: systId = 11101; break;
- // }
- TbUnitSystSttsDto stts = TbUnitSystSttsDto.builder()
- .systId(String.valueOf(systId))
- .systNm(obj.getProcessname())
- .systSttsCd("1")
- .systSttsDesc("이상")
- .updtDt(updtDt)//CodeManager.CMNC_STTS_ERROR_DT)
- .runSts("1")
- .comSts("1")
- .dbSts("1")
- .build();
- result.put(systId, stts);
- });
- List<BisProcessStatusHistory> sttsList = this.sttsRepo.findAllStts();
- AtomicBoolean isBisProcessStts = new AtomicBoolean(true);
- // 실행 상태먼저 체크
- sttsList.forEach(obj -> {
- TbUnitSystSttsDto stts = result.get(obj.getProcessid());
- if (stts != null) {
- //log.error("{}, {}, {}", obj.getProcessid(), obj.getProcessstatus(), obj.getProcessstatekind());
- if (("4").equals(obj.getProcessstatekind())) {
- if (("1").equals(obj.getProcessstatus())) {
- stts.setRunSts("0");
- stts.setSystSttsCd("0");
- stts.setSystSttsDesc("정상");
- stts.setComSts("0");
- stts.setDbSts("0");
- }
- // 시내버스 가공1, 2
- if (80101 == obj.getProcessid() || 80102 == obj.getProcessid()) {
- if (!("1").equals(obj.getProcessstatus())) {
- isBisProcessStts.set(false);
- }
- }
- }
- }
- });
- Integer systId = 80199;
- TbUnitSystSttsDto stts = TbUnitSystSttsDto.builder()
- .systId(String.valueOf(systId))
- .systNm("시내버스 가공")
- .systSttsCd(isBisProcessStts.get() ? "0" : "1")
- .systSttsDesc(isBisProcessStts.get() ? "정상" : "이상")
- .updtDt(updtDt)
- .runSts(isBisProcessStts.get() ? "0" : "1")
- .comSts(isBisProcessStts.get() ? "0" : "1")
- .dbSts(isBisProcessStts.get() ? "0" : "1")
- .build();
- result.put(systId, stts);
- // 실행 상태가 정상인 경우 나머지 상태정보 업데이트
- // sttsList.forEach(obj -> {
- // TbUnitSystSttsDto stts = result.get(obj.getProcessid());
- // if (stts != null) {
- // if (!("0").equals(stts.getRunSts())) {
- // return;
- // }
- // // 통신상태
- // if (("1").equals(obj.getProcessstatekind())) {
- // if (("1").equals(obj.getProcessstatus())) {
- // stts.setComSts("0");
- // }
- // }
- // // DB 상태
- // if (("2").equals(obj.getProcessstatekind())) {
- // if (("1").equals(obj.getProcessstatus())) {
- // stts.setDbSts("0");
- // }
- // }
- // }
- // });
- return new ArrayList<>(result.values());
- }
- }
|