Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa
| | |
| | | public static final String COMPANYFIELD_USED_URL = "COMPANYFIELD_USED_URL"; // URL이 이미 사용되고 있습니다. |
| | | |
| | | public static final String HOSTING_NOT_EXIST = "HOSTING_NOT_EXIST"; // 호스팅이 존재하지 않습니다. |
| | | public static final String HOSTING_CODE_NOT_ENTER = "HOSTING_CODE_NOT_ENTER"; // 호스팅의 코드는 필수 입력 값입니다. |
| | | public static final String HOSTING_REMOVE_NOT_SELECT = "HOSTING_REMOVE_NOT_SELECT"; // 삭제할 호스팅이 선택되지 않았습니다. |
| | | |
| | | public static final String ISP_NOT_EXIST = "ISP_NOT_EXIST"; // ISP가 존재하지 않습니다. |
| | | public static final String ISP_CODE_NOT_ENTER = "ISP_CODE_NOT_ENTER"; // ISP의 코드는 필수 입력 값입니다. |
| | | public static final String ISP_REMOVE_NOT_SELECT = "ISP_REMOVE_NOT_SELECT"; // 삭제할 ISP가 선택되지 않았습니다. |
| | | public static final String PROJECT_NOT_INCLUDE_DEPARTMENT = "PROJECT_NOT_INCLUDE_DEPARTMENT"; // 선택한 부서 중 프로젝트에 참여하고 있지 않은 부서가 있습니다. |
| | | |
| | |
| | | import kr.wisestone.owl.domain.Issue; |
| | | import kr.wisestone.owl.domain.IssueCompany; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.form.IssueForm; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface IssueCompanyService extends AbstractService<IssueCompany, Long, JpaRepository<IssueCompany, Long>>{ |
| | | void modifyIssueCompanyField(Issue issue, List<Map<String, Object>> issueCompanyField); |
| | | void modifyIssueCompanyField(Issue issue, IssueForm issueForm); |
| | | |
| | | List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition); |
| | | } |
| | |
| | | void detectSendIssueMail(IssueHistoryType type, IssueForm issueForm, StringBuilder description); |
| | | void detectSendIssueMail(IssueHistoryType type, List<String> sendMails, StringBuilder description); |
| | | |
| | | void detectIssueCompany(IssueHistoryType type, Map<String, Object> param, IssueCompany issueCompany, StringBuilder description); |
| | | void detectIssueCompany(IssueHistoryType type, Map<String, Object> param, CompanyField companyField, IssueCompany issueCompany, StringBuilder description); |
| | | |
| | | void detectIssueIsp(IssueHistoryType type, Map<String, Object> param, IssueIsp issueIsp, StringBuilder description); |
| | | void detectIssueIsp(IssueHistoryType type, Map<String, Object> param, IspField ispField, IssueIsp issueIsp, StringBuilder description); |
| | | |
| | | void detectIssueHosting(IssueHistoryType type, Map<String, Object> param, IssueHosting issueHosting, StringBuilder description); |
| | | void detectIssueHosting(IssueHistoryType type, Map<String, Object> param, HostingField hostingField, IssueHosting issueHosting, StringBuilder description); |
| | | |
| | | void recodeRemoveCustomFieldOptionValue(CustomField customField, String oldValue, String newValue, StringBuilder description); |
| | | |
| | |
| | | import kr.wisestone.owl.domain.Issue; |
| | | import kr.wisestone.owl.domain.IssueHosting; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.form.IssueForm; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface IssueHostingService extends AbstractService<IssueHosting, Long, JpaRepository<IssueHosting, Long>>{ |
| | | void modifyIssueHostingField(Issue issue, List<Map<String, Object>> issueHostingField); |
| | | void modifyIssueHostingField(Issue issue, IssueForm issueForm); |
| | | |
| | | List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition); |
| | | } |
| | |
| | | import kr.wisestone.owl.domain.Issue; |
| | | import kr.wisestone.owl.domain.IssueIsp; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.form.IssueForm; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface IssueIspService extends AbstractService<IssueIsp, Long, JpaRepository<IssueIsp, Long>>{ |
| | | void modifyIssueIspField(Issue issue, List<Map<String, Object>> issueIspField); |
| | | void modifyIssueIspField(Issue issue, IssueForm issueForm); |
| | | |
| | | List<Map<String, Object>> findInIssueIds(IssueCondition issueCondition); |
| | | } |
| | |
| | | // Hosting 추가 |
| | | @Override |
| | | public HostingField add(HostingFieldForm HostingFieldForm) { |
| | | HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class); |
| | | hostingFieldRepository.saveAndFlush(HostingField); |
| | | return HostingField; |
| | | HostingField hostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class); |
| | | if (hostingField.getCode() != null && !hostingField.getCode().equals("")) { |
| | | hostingFieldRepository.saveAndFlush(hostingField); |
| | | } else { |
| | | throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.HOSTING_CODE_NOT_ENTER)); |
| | | } |
| | | return hostingField; |
| | | } |
| | | |
| | | // Hosting 목록을 가져온다. |
| | |
| | | // Isp 추가 |
| | | @Override |
| | | public IspField add(IspFieldForm IspFieldForm) { |
| | | IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class); |
| | | ispFieldRepository.saveAndFlush(IspField); |
| | | return IspField; |
| | | IspField ispField = ConvertUtil.copyProperties(IspFieldForm, IspField.class); |
| | | if (ispField.getCode() != null && !ispField.getCode().equals("")) { |
| | | ispFieldRepository.saveAndFlush(ispField); |
| | | } else { |
| | | throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.ISP_CODE_NOT_ENTER)); |
| | | } |
| | | return ispField; |
| | | } |
| | | |
| | | // Isp 목록을 가져온다. |
| | |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | import kr.wisestone.owl.util.MapUtil; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.form.CompanyFieldForm; |
| | | import kr.wisestone.owl.web.form.IssueForm; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | // 이슈에서 사용되는 업체 값을 업데이트한다. |
| | | @Override |
| | | @Transactional |
| | | public void modifyIssueCompanyField(Issue issue, List<Map<String, Object>> issueCompanyFields) { |
| | | public void modifyIssueCompanyField(Issue issue, IssueForm issueForm) { |
| | | if (issue != null) { |
| | | List<Map<String, Object>> issueCompanyFields = issueForm.getIssueCompanyFields(); |
| | | if (issueCompanyFields != null && issueCompanyFields.size() > 0) { |
| | | Map<String, Object> param = issueCompanyFields.get(0); |
| | | |
| | |
| | | issueCompany = issueCompanies.iterator().next(); |
| | | // 변경 이력 |
| | | StringBuilder sb = new StringBuilder(); |
| | | issueHistoryService.detectIssueCompany(IssueHistoryType.MODIFY, param, issueCompany, sb); |
| | | issueHistoryService.detectIssueCompany(IssueHistoryType.MODIFY, param, null, issueCompany, sb); |
| | | issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); |
| | | |
| | | issueCompany.setCompanyField(companyField); |
| | |
| | | } |
| | | // 추가 이력 |
| | | StringBuilder sb = new StringBuilder(); |
| | | issueHistoryService.detectIssueCompany(IssueHistoryType.ADD, param, issueCompany, sb); |
| | | issueHistoryService.detectIssueCompany(IssueHistoryType.ADD, param, null, issueCompany, sb); |
| | | issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); |
| | | } |
| | | this.issueCompanyRepository.saveAndFlush(issueCompany); |
| | | } else { |
| | | this.issueCompanyRepository.deleteById(MapUtil.getLong(param, "id")); |
| | | } |
| | | } else if(issueForm.getCompanyName() != null && !issueForm.getCompanyName().equals("")) { //업체정보 직접 추가 |
| | | CompanyFieldForm companyFieldForm = new CompanyFieldForm(); |
| | | companyFieldForm.setName(issueForm.getCompanyName()); |
| | | companyFieldForm.setEmail(issueForm.getCompanyEmail()); |
| | | companyFieldForm.setUrl(issueForm.getCompanyUrl()); |
| | | companyFieldForm.setManager(issueForm.getCompanyManager()); |
| | | companyFieldForm.setTel(issueForm.getCompanyTel()); |
| | | companyFieldForm.setMemo(issueForm.getCompanyMemo()); |
| | | |
| | | CompanyField companyField = this.companyFieldService.addCompany(companyFieldForm); |
| | | |
| | | IssueCompany issueCompany = ConvertUtil.copyProperties(companyFieldForm, IssueCompany.class); |
| | | issueCompany.setIssue(issue); |
| | | if (companyField != null) { |
| | | issueCompany.setCompanyField(companyField); |
| | | } |
| | | // 추가 이력 |
| | | StringBuilder sb = new StringBuilder(); |
| | | issueHistoryService.detectIssueCompany(IssueHistoryType.ADD, null, companyField, issueCompany, sb); |
| | | issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); |
| | | this.issueCompanyRepository.saveAndFlush(issueCompany); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | // 업체 정보 변경 정보를 기록한다. |
| | | @Override |
| | | public void detectIssueCompany(IssueHistoryType type, Map<String, Object> param, IssueCompany issueCompany, StringBuilder description) { |
| | | Long id = MapUtil.getLong(param, "companyId"); |
| | | public void detectIssueCompany(IssueHistoryType type, Map<String, Object> param, CompanyField companyField, IssueCompany issueCompany, StringBuilder description) { |
| | | Long id = 0L; |
| | | if (param != null) { |
| | | id = MapUtil.getLong(param, "companyId"); |
| | | }else if(companyField != null) { |
| | | id = companyField.getId(); |
| | | } |
| | | Long companyFieldId = issueCompany.getCompanyField().getId(); |
| | | |
| | | if (type == IssueHistoryType.ADD) { //추가 할 경우 |
| | |
| | | |
| | | // ISP 정보 변경 정보를 기록한다. |
| | | @Override |
| | | public void detectIssueIsp(IssueHistoryType type, Map<String, Object> param, IssueIsp issueIsp, StringBuilder description) { |
| | | Long id = MapUtil.getLong(param, "companyId"); |
| | | public void detectIssueIsp(IssueHistoryType type, Map<String, Object> param, IspField ispField, IssueIsp issueIsp, StringBuilder description) { |
| | | Long id = 0L; |
| | | if (param != null) { |
| | | id = MapUtil.getLong(param, "companyId"); |
| | | } else if(ispField != null) { |
| | | id = ispField.getId(); |
| | | } |
| | | Long ispFieldId = issueIsp.getIspField().getId(); |
| | | |
| | | if (type == IssueHistoryType.ADD) { |
| | |
| | | |
| | | // 호스팅 정보 변경 정보를 기록한다. |
| | | @Override |
| | | public void detectIssueHosting(IssueHistoryType type, Map<String, Object> param, IssueHosting issueHosting, StringBuilder description) { |
| | | Long id = MapUtil.getLong(param, "companyId"); |
| | | public void detectIssueHosting(IssueHistoryType type, Map<String, Object> param, HostingField hostingField, IssueHosting issueHosting, StringBuilder description) { |
| | | Long id = 0L; |
| | | if (param != null) { |
| | | id = MapUtil.getLong(param, "companyId"); |
| | | }else if(hostingField != null) { |
| | | id = hostingField.getId(); |
| | | } |
| | | Long hostingFieldId = issueHosting.getHostingField().getId(); |
| | | |
| | | if (type == IssueHistoryType.ADD) { |
| | |
| | | import kr.wisestone.owl.util.MapUtil; |
| | | import kr.wisestone.owl.vo.IssueHostingVo; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.form.HostingFieldForm; |
| | | import kr.wisestone.owl.web.form.IssueForm; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | // 이슈에서 사용되는 업체 값을 업데이트한다. |
| | | @Override |
| | | @Transactional |
| | | public void modifyIssueHostingField(Issue issue, List<Map<String, Object>> issueIspFields) { |
| | | public void modifyIssueHostingField(Issue issue, IssueForm issueForm) { |
| | | if (issue != null) { |
| | | if (issueIspFields != null && issueIspFields.size() > 0) { |
| | | Map<String, Object> param = issueIspFields.get(0); |
| | | List<Map<String, Object>> issueHostingFields = issueForm.getIssueHostingFields(); |
| | | if (issueHostingFields != null && issueHostingFields.size() > 0) { |
| | | Map<String, Object> param = issueHostingFields.get(0); |
| | | |
| | | if (param != null && param.get("hostingId") != null && param.get("hostingId") != "") { |
| | | HostingField hostingField = this.hostingFieldService.getHosting(MapUtil.getLong(param, "hostingId")); |
| | |
| | | issueHosting = issueHostings.iterator().next(); |
| | | // 변경 이력 |
| | | StringBuilder sb = new StringBuilder(); |
| | | issueHistoryService.detectIssueHosting(IssueHistoryType.MODIFY, param, issueHosting, sb); |
| | | issueHistoryService.detectIssueHosting(IssueHistoryType.MODIFY, param, null, issueHosting, sb); |
| | | issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); |
| | | |
| | | issueHosting.setHostingField(hostingField); |
| | |
| | | } |
| | | // 추가 이력 |
| | | StringBuilder sb = new StringBuilder(); |
| | | issueHistoryService.detectIssueHosting(IssueHistoryType.ADD, param, issueHosting, sb); |
| | | issueHistoryService.detectIssueHosting(IssueHistoryType.ADD, param, null, issueHosting, sb); |
| | | issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); |
| | | } |
| | | this.issueHostingRepository.saveAndFlush(issueHosting); |
| | | }else { |
| | | this.issueHostingRepository.deleteById(MapUtil.getLong(param, "id")); |
| | | } |
| | | } else if(issueForm.getHostingName() != null && !issueForm.getHostingName().equals("")) { |
| | | HostingFieldForm hostingFieldForm = new HostingFieldForm(); |
| | | hostingFieldForm.setName(issueForm.getHostingName()); |
| | | hostingFieldForm.setCode(issueForm.getHostingCode()); |
| | | hostingFieldForm.setEmail(issueForm.getHostingEmail()); |
| | | hostingFieldForm.setUrl(issueForm.getHostingUrl()); |
| | | hostingFieldForm.setManager(issueForm.getHostingManager()); |
| | | hostingFieldForm.setTel(issueForm.getHostingTel()); |
| | | hostingFieldForm.setMemo(issueForm.getHostingMemo()); |
| | | |
| | | HostingField hostingField = this.hostingFieldService.add(hostingFieldForm); |
| | | IssueHosting issueHosting = ConvertUtil.copyProperties(hostingFieldForm, IssueHosting.class); |
| | | issueHosting.setIssue(issue); |
| | | if (hostingField != null) { |
| | | issueHosting.setHostingField(hostingField); |
| | | } |
| | | // 추가 이력 |
| | | StringBuilder sb = new StringBuilder(); |
| | | issueHistoryService.detectIssueHosting(IssueHistoryType.ADD, null, hostingField, issueHosting, sb); |
| | | issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); |
| | | this.issueHostingRepository.saveAndFlush(issueHosting); |
| | | } |
| | | } |
| | | } |
| | |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | import kr.wisestone.owl.util.MapUtil; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.form.IspFieldForm; |
| | | import kr.wisestone.owl.web.form.IssueForm; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | // 이슈에서 사용되는 업체 값을 업데이트한다. |
| | | @Override |
| | | @Transactional |
| | | public void modifyIssueIspField(Issue issue, List<Map<String, Object>> issueIspFields) { |
| | | public void modifyIssueIspField(Issue issue, IssueForm issueForm) { |
| | | if (issue != null) { |
| | | List<Map<String, Object>> issueIspFields = issueForm.getIssueIspFields(); |
| | | if (issueIspFields != null && issueIspFields.size() > 0) { |
| | | Map<String, Object> param = issueIspFields.get(0); |
| | | |
| | |
| | | |
| | | Set<IssueIsp> issueIsps = issue.getIssueIspFields(); |
| | | IssueIsp issueIsp = new IssueIsp(); |
| | | |
| | | if (issueIsps != null && issueIsps.size() > 0) {//수정 할 경우 |
| | | issueIsp = issueIsps.iterator().next(); |
| | | // 변경 이력 |
| | | StringBuilder sb = new StringBuilder(); |
| | | issueHistoryService.detectIssueIsp(IssueHistoryType.MODIFY, param, issueIsp, sb); |
| | | issueHistoryService.detectIssueIsp(IssueHistoryType.MODIFY, param, null, issueIsp, sb); |
| | | issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); |
| | | |
| | | issueIsp.setIspField(ispField); |
| | |
| | | } |
| | | // 추가 이력 |
| | | StringBuilder sb = new StringBuilder(); |
| | | issueHistoryService.detectIssueIsp(IssueHistoryType.ADD, param, issueIsp, sb); |
| | | issueHistoryService.detectIssueIsp(IssueHistoryType.ADD, param, null, issueIsp, sb); |
| | | issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); |
| | | } |
| | | this.issueIspRepository.saveAndFlush(issueIsp); |
| | | }else { |
| | | this.issueIspRepository.deleteById(MapUtil.getLong(param, "id")); |
| | | } |
| | | } else if(issueForm.getIspName() != null && !issueForm.getIspName().equals("")) { |
| | | IspFieldForm ispFieldForm = new IspFieldForm(); |
| | | ispFieldForm.setName(issueForm.getIspName()); |
| | | ispFieldForm.setCode(issueForm.getIspCode()); |
| | | ispFieldForm.setEmail(issueForm.getIspEmail()); |
| | | ispFieldForm.setUrl(issueForm.getIspUrl()); |
| | | ispFieldForm.setManager(issueForm.getIspManager()); |
| | | ispFieldForm.setTel(issueForm.getIspTel()); |
| | | ispFieldForm.setMemo(issueForm.getIspMemo()); |
| | | |
| | | IspField ispField = this.ispFieldService.add(ispFieldForm); |
| | | IssueIsp issueIsp = ConvertUtil.copyProperties(ispFieldForm, IssueIsp.class); |
| | | issueIsp.setIssue(issue); |
| | | if (ispField != null) { |
| | | issueIsp.setIspField(ispField); |
| | | } |
| | | // 추가 이력 |
| | | StringBuilder sb = new StringBuilder(); |
| | | issueHistoryService.detectIssueIsp(IssueHistoryType.ADD, null, ispField, issueIsp, sb); |
| | | issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); |
| | | this.issueIspRepository.saveAndFlush(issueIsp); |
| | | } |
| | | } |
| | | } |
| | |
| | | // 담당부서 지정 |
| | | this.issueDepartmentService.modifyIssueDepartment(issue, user, project.getWorkspace(), issueForm.getDepartmentIds()); |
| | | // 업체 정보 저장 |
| | | this.issueCompanyService.modifyIssueCompanyField(issue, issueForm.getIssueCompanyFields()); |
| | | this.issueCompanyService.modifyIssueCompanyField(issue, issueForm); |
| | | // ISP 정보 저장 |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm.getIssueIspFields()); |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm); |
| | | // HOSTING 정보 저장 |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm.getIssueHostingFields()); |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm); |
| | | |
| | | |
| | | // 첨부 파일 저장 |
| | |
| | | // 담당부서 지정 |
| | | this.issueDepartmentService.modifyIssueDepartment(issue, user, project.getWorkspace(), issueForm.getDepartmentIds()); |
| | | // 업체 정보 저장 |
| | | this.issueCompanyService.modifyIssueCompanyField(issue, issueForm.getIssueCompanyFields()); |
| | | this.issueCompanyService.modifyIssueCompanyField(issue, issueForm); |
| | | // ISP 정보 저장 |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm.getIssueIspFields()); |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm); |
| | | // HOSTING 정보 저장 |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm.getIssueHostingFields()); |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm); |
| | | |
| | | // 첨부 파일 저장 |
| | | // multipartFile 을 file Map List 객체로 변경한다. |
| | |
| | | // 담당부서 지정 |
| | | this.issueDepartmentService.modifyIssueDepartment(issue, user, project.getWorkspace(), issueForm.getDepartmentIds()); |
| | | // 업체 정보 저장 |
| | | this.issueCompanyService.modifyIssueCompanyField(issue, issueForm.getIssueCompanyFields()); |
| | | this.issueCompanyService.modifyIssueCompanyField(issue, issueForm); |
| | | // ISP 정보 저장 |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm.getIssueIspFields()); |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm); |
| | | // HOSTING 정보 저장 |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm.getIssueHostingFields()); |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm); |
| | | |
| | | // 첨부 파일 저장 |
| | | // multipartFile 을 file Map List 객체로 변경한다. |
| | |
| | | String comma = ","; |
| | | |
| | | if (issueCustomFieldValueForms.size() > 0) { |
| | | IssueCustomFieldValueFormComparator comp = new IssueCustomFieldValueFormComparator(); |
| | | Collections.sort(issueCustomFieldValueForms, comp); |
| | | |
| | | String concatUseValue = ""; |
| | | for (int i = 0; i < issueCustomFieldValueForms.size(); i++) { |
| | | IssueCustomFieldValueForm issueCustomFieldValueForm = issueCustomFieldValueForms.get(i); |
| | |
| | | List<Issue> issues = Lists.newArrayList(); |
| | | for (Issue issueVo : issue) { |
| | | issueForm.setId(issueVo.getId()); |
| | | issueForm.setTitle(issueVo.getTitle()); |
| | | |
| | | // 자동 종료 상태 설정이 되어 있지 않으면 오류발생 |
| | | Issue modifyIssue = this.modifyIssueForApi(user, issueForm, files); |
| | |
| | | log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(userVo, ElasticSearchConstants.ISSUE_MODIFY)); |
| | | |
| | | // 업체 정보 저장 |
| | | this.issueCompanyService.modifyIssueCompanyField(issue, issueForm.getIssueCompanyFields()); |
| | | this.issueCompanyService.modifyIssueCompanyField(issue, issueForm); |
| | | // ISP 정보 저장 |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm.getIssueIspFields()); |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm); |
| | | // HOSTING 정보 저장 |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm.getIssueHostingFields()); |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm); |
| | | |
| | | return issue; |
| | | } |
| | |
| | | break;*/ |
| | | case 6: |
| | | // 담당부서를 IssueForm 에 저장한다. |
| | | this.setIssueFormDepartment(cell, departmentMaps, issueForm, project); |
| | | if (cell != null) { |
| | | this.setIssueFormDepartment(cell, departmentMaps, issueForm, project); |
| | | } |
| | | break; |
| | | case 7: |
| | | // 시작일을 IssueForm 에 저장한다. |
| | | this.setIssueFormPeriod(cell, issueForm, true, rowIndex); |
| | | if (cell != null) { |
| | | this.setIssueFormPeriod(cell, issueForm, true, rowIndex); |
| | | } |
| | | break; |
| | | case 8: |
| | | // 종료일을 IssueForm 에 저장한다. |
| | | this.setIssueFormPeriod(cell, issueForm, false, rowIndex); |
| | | if (cell != null) { |
| | | this.setIssueFormPeriod(cell, issueForm, false, rowIndex); |
| | | } |
| | | break; |
| | | default: |
| | | // 9번 부터는 사용자 정의 필드. 사용자 정의 필드 정보를 IssueForm 에 저장한다. |
| | |
| | | } |
| | | } |
| | | |
| | | // 사용자 정의 필드 정보를 IssueForm 에 저장한다. |
| | | // 사용자 정의 필드 정보를 IssueForm 에 저장한다.- |
| | | private void setIssueFormCustomFieldValue(Cell cell, Map<String, CustomField> customFieldMaps, IssueForm issueForm, String customFieldName, int rowIndex) { |
| | | if (cell != null) { |
| | | String cellValue = CommonUtil.convertExcelStringToCell(cell); |
| | |
| | | private Long levelId; |
| | | private Long departmentId; |
| | | private Long userId; |
| | | private String managerYn; |
| | | |
| | | private List<DepartmentVo> departmentVos = Lists.newArrayList(); |
| | | |
| | |
| | | public void setUserId(Long userId) { |
| | | this.userId = userId; |
| | | } |
| | | |
| | | public String getManagerYn() { |
| | | return managerYn; |
| | | } |
| | | |
| | | public void setManagerYn(String managerYn) { |
| | | this.managerYn = managerYn; |
| | | } |
| | | } |
| | |
| | | issue.id as id, |
| | | issue.title as title, |
| | | customFieldValue.customFieldType AS customFieldType, |
| | | GROUP_CONCAT(customFieldValue.useValue) AS concatUseValue |
| | | GROUP_CONCAT(customFieldValue.useValue ORDER BY customFieldValue.customFieldId ASC) AS concatUseValue |
| | | FROM issue issue FORCE INDEX(reverseIndex) |
| | | INNER JOIN issue_status as issStatus ON issue.issue_status_id = issStatus.id |
| | | LEFT OUTER JOIN ( |
| | | SELECT cf.id AS customFieldId, cf.custom_field_type AS customFieldType, issue_custom.use_value AS useValue, issue_custom.issue_id AS issueId |
| | | FROM issue_custom_field_value issue_custom |
| | | INNER JOIN custom_field cf ON cf.id = issue_custom.custom_field_id |
| | | ORDER BY issue_custom.id ASC) customFieldValue ON customFieldValue.issueId = issue.id |
| | | INNER JOIN custom_field cf ON cf.id = issue_custom.custom_field_id) customFieldValue ON customFieldValue.issueId = issue.id |
| | | WHERE issStatus.issue_status_type != 'CLOSE' |
| | | AND issue.issue_type_id = #{issueTypeId} |
| | | GROUP BY issue.id |
| | |
| | | u.name as userName, |
| | | u.account as account, |
| | | u.level_id as levelId, |
| | | uw.manager_yn as managerYn, |
| | | CASE WHEN uw.use_yn = 'Y' THEN 'true' ELSE 'false' END as useYn |
| | | FROM |
| | | user_workspace uw |
| | |
| | | INNER JOIN workspace w on uw.workspace_id = w.id |
| | | WHERE 1=1 |
| | | AND w.id = #{workspaceId} |
| | | AND uw.manager_yn = 'N' |
| | | <if test="name != '' and name != null"> |
| | | AND u.name like CONCAT('%',#{name},'%') |
| | | </if> |
| | |
| | | INNER JOIN workspace w on uw.workspace_id = w.id |
| | | WHERE 1=1 |
| | | AND w.id = #{workspaceId} |
| | | AND uw.manager_yn = 'N' |
| | | <if test="name != '' and name != null"> |
| | | AND u.name like CONCAT('%',#{name},'%') |
| | | </if> |
| | |
| | | COMPANY_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC5C5\uCCB4\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. |
| | | COMPANYFIELD_NOT_EXIST = \uC5C5\uCCB4\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. |
| | | COMPANYFIELD_NOT_URL = URL\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. |
| | | COMPANYFIELD_USED_URL = URL\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. |
| | | COMPANYFIELD_USED_URL = URL\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. |
| | | |
| | | HOSTING_CODE_NOT_ENTER = \uD638\uC2A4\uD305\uC758 \uCF54\uB4DC\uB294 \uD544\uC218 \uC785\uB825 \uAC12\uC785\uB2C8\uB2E4. |
| | | ISP_CODE_NOT_ENTER = ISP\uC758 \uCF54\uB4DC\uB294 \uD544\uC218 \uC785\uB825 \uAC12\uC785\uB2C8\uB2E4. |
| | |
| | | |
| | | case "USE_DEPARTMENT_LIST" : |
| | | makeTag += "<ul class='ul-not-comma'>"; |
| | | |
| | | if(scope.data.departmentVos != null && scope.data.departmentVos.length == 0){ //속해있는 부서가 없을 경우 |
| | | makeTag += "<div style='cursor: pointer; color: #0066ff' ng-click='event.modifyUserDepartments(data.id, data.userId)'>부서를 선택해 주세요.</div>"; |
| | | }else{ |
| | | makeTag += "<div style='cursor: pointer; color: #0066ff' ng-click='event.modifyUserDepartments(data.id, data.userId)'>"; |
| | | angular.forEach(scope.data.departmentVos, function (departments) { |
| | | makeTag += "<li>" + departments.departmentName + "</li>"; |
| | | }); |
| | | makeTag += "</div>"; |
| | | if (scope.data.managerYn !== 'Y'){ |
| | | if(scope.data.departmentVos != null && scope.data.departmentVos.length == 0){ //속해있는 부서가 없을 경우 |
| | | makeTag += "<div style='cursor: pointer; color: #0066ff' ng-click='event.modifyUserDepartments(data.id, data.userId)'>부서를 선택해 주세요.</div>"; |
| | | }else{ |
| | | makeTag += "<div style='cursor: pointer; color: #0066ff' ng-click='event.modifyUserDepartments(data.id, data.userId)'>"; |
| | | angular.forEach(scope.data.departmentVos, function (departments) { |
| | | makeTag += "<li>" + departments.departmentName + "</li>"; |
| | | }); |
| | | makeTag += "</div>"; |
| | | } |
| | | makeTag += "</ul>"; |
| | | } |
| | | makeTag += "</ul>"; |
| | | break; |
| | | |
| | | case "WORKFLOW_DEPARTMENT_LIST" : |
| | |
| | | |
| | | case "LEVEL_OPTION" : |
| | | //makeTag += "<select class='form-control input-sm' ng-model='data.levels[0].id' ng-options='levelName.id as levelName.levelName for levelName in data.levels' ></select>"; |
| | | makeTag +="<select class='form-control input-sm' ng-model='data.levelId' ng-change='event.modifyUserWorkspace(data)'><option ng-repeat='level in data.levels' ng-value='level.fieldKey'>{{::level.fieldValue}}</option></select>"; |
| | | if (scope.data.managerYn === 'Y'){ |
| | | makeTag +="<span>최고관리자</span>"; |
| | | } else { |
| | | makeTag +="<select class='form-control input-sm' ng-model='data.levelId' ng-change='event.modifyUserWorkspace(data)'><option ng-repeat='level in data.levels' ng-value='level.fieldKey'>{{::level.fieldValue}}</option></select>"; |
| | | } |
| | | break; |
| | | |
| | | case "WORKSPACE_USE_YN" : |
| | | makeTag += "<label class='switch'><input type='checkbox' ng-model='data.useYn' ng-click='event.modifyUserWorkspace(data)'><span class='slider round'></span></label>"; |
| | | if (scope.data.managerYn !== 'Y'){ |
| | | makeTag += "<label class='switch'><input type='checkbox' ng-model='data.useYn' ng-click='event.modifyUserWorkspace(data)'><span class='slider round'></span></label>"; |
| | | } |
| | | break; |
| | | |
| | | case "COMPANYFIELD_MODIFY" : |
| | |
| | | account : "", // 이메일 |
| | | statuses : [], // 상태 - Y, N |
| | | levels : [], // 등급 |
| | | departments: [] // 부서 |
| | | departments: [], // 부서 |
| | | }; |
| | | |
| | | $scope.vm.options = { |
| | |
| | | selectedPageRowCount : String(10) |
| | | }; |
| | | |
| | | $scope.vm.managerYn = false; |
| | | $scope.vm.levels = []; |
| | | $scope.vm.departments = []; |
| | | $scope.vm.tableConfigs = []; |
| | |
| | | |
| | | var idx = 0; |
| | | angular.forEach($scope.vm.responseData.data, function (data) { |
| | | // data.levelId = $scope.vm.levels[idx].fieldKey; |
| | | //data.department = $scope.vm.departments[idx]; |
| | | |
| | | if (data.managerYn === "Y") { |
| | | $scope.vm.managerYn = true; |
| | | } |
| | | data.levels = []; |
| | | data.departments = []; |
| | | data.levels = $scope.vm.levels.slice(); |
| | | data.departments = $scope.vm.departments.slice(); |
| | | /*if(result.data.data[idx].departmentId == null){ |
| | | data.departments = $scope.vm.departments.slice(); |
| | | data.departments.unshift({ |
| | | fieldKey : 'd', |
| | | fieldValue : '부서를 선택 하세요.' |
| | | }); |
| | | result.data.data[idx].departmentId = 'd'; |
| | | } else{ |
| | | data.departments = $scope.vm.departments.slice(); |
| | | }*/ |
| | | idx++; |
| | | }); |
| | | } |