OWL ITS + 탐지시스템(인터넷 진흥원)
박지현
2022-02-21 174dc12380c54730014e86c8897be16389fc804f
src/main/java/kr/wisestone/owl/service/impl/IssueStatusServiceImpl.java
@@ -17,6 +17,7 @@
import kr.wisestone.owl.web.form.IssueStatusForm;
import kr.wisestone.owl.web.view.ExcelView;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.jdbc.Work;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,10 +40,16 @@
    private IssueStatusRepository issueStatusRepository;
    @Autowired
    private WorkflowService workflowService;
    @Autowired
    private WorkspaceService workspaceService;
    @Autowired
    private WorkflowTransitionService workflowTransitionService;
    @Autowired
    private WorkflowDepartmentService workflowDepartmentService;
    @Autowired
    private IssueTypeService issueTypeService;
@@ -89,6 +96,15 @@
    public List<IssueStatus> findByWorkspaceId(Long workspaceId) {
        return this.issueStatusRepository.findByWorkspaceId(workspaceId);
    }
    @Override
    @Transactional(readOnly = true)
    public List<IssueStatusVo> findByIssueTypeId(Long issueTypeId) {
        IssueType issueType = this.issueTypeService.getIssueType(issueTypeId);
        Workflow workflow = issueType.getWorkflow();
        return findByWorkflowId(workflow.getId());
     }
    //  이슈 상태를 생성한다.
    @Override
@@ -320,11 +336,11 @@
        //  삭제할 이슈 상태가 워크플로우 에서 사용되고 있는지 확인한다.
        this.checkUseWorkflow(issueStatus);
        //  기본으로 제공되는 이슈 상태는 삭제 금지
        if (issueStatus.getDefaultYn()) {
        //  기본으로 제공되는 이슈 상태는 삭제 금지 -> 기본제공이여도 사용하지 않으면 삭제 가능하도록 수정
        /*if (issueStatus.getDefaultYn()) {
            throw new OwlRuntimeException(
                    this.messageAccessor.getMessage(MsgConstants.DEFAULT_ISSUE_STATUS_NOT_REMOVE));
        }
        }*/
        this.issueStatusRepository.delete(issueStatus);
    }
@@ -545,12 +561,18 @@
                if (count < 1) {
                    IssueStatusVo issueStatusVo = new IssueStatusVo(workflowTransitionVo.getTargetStatusId(), workflowTransitionVo.getTargetStatusName());
                    issueStatusVos.add(issueStatusVo);
                    List<WorkflowDepartmentVo> workflowDepartments = this.workflowDepartmentService.find(workflow.getId(), issueStatusVo.getId());
                    issueStatusVo.setWorkflowDepartmentVos(workflowDepartments);
                }
                else {
                    //  두번째 이슈부터 첫번째 이슈에서 이동 가능했던 상태 중 없는 대상을 찾는다.
                    for (IssueStatusVo issueStatusVo : issueStatusVos) {
                        if (issueStatusVo.getId().equals(workflowTransitionVo.getTargetStatusId())) {
                            tempIssueStatusVos.add(issueStatusVo);
                            List<WorkflowDepartmentVo> workflowDepartments = this.workflowDepartmentService.find(workflow.getId(), issueStatusVo.getId());
                            issueStatusVo.setWorkflowDepartmentVos(workflowDepartments);
                        }
                    }
                }
@@ -566,5 +588,4 @@
        resJsonData.put(Constants.RES_KEY_CONTENTS, issueStatusVos);
    }
}