feat: 지반정보 입력 시스템에서 신규 프로젝트 생성 시 특정 항목을 입력 안 하면 입력하라고 안내하도록 수정
parent
a06baeea96
commit
3677ea6a9a
6
list.txt
6
list.txt
|
|
@ -1,3 +1,9 @@
|
|||
#src\main\resources\egovframework\egovProps\globals.properties
|
||||
src\main\webapp\WEB-INF\views\web\input\meta_info.jsp
|
||||
src\main\webapp\WEB-INF\views\web\input\meta_info1.jsp
|
||||
# 신규 프로젝트 생성 시, 프로젝트 명 중복 여부 개선
|
||||
src\main\java\geoinfo\regi\projectList\service\ProjectListService.java
|
||||
src\main\java\geoinfo\regi\projectList\service\impl\ProjectListServiceImpl.java
|
||||
src\main\java\geoinfo\regi\projectList\service\ProjectListMapper.java
|
||||
src\main\resources\egovframework\sqlmap\mapper\regi\projectList.xml
|
||||
src\main\java\geoinfo\regi\projectList\ProjectListController.java
|
||||
|
|
@ -59,6 +59,7 @@ public class ProjectListController {
|
|||
params.put("PROJECT_NAME", projectName);
|
||||
// 사업명(프로젝트 명) 중복 검사를 수행한다.
|
||||
ArrayList<HashMap<String, Object>> arrProjectCodeAndProjectName = masterService.getProjectCodeAndProjectNameByProjectName(params);
|
||||
ArrayList<HashMap<String, Object>> arrProjectCodeAndProjectNameByProjectNameFromTempMetaInfo= masterService.getProjectCodeAndProjectNameByProjectNameFromTempMetaInfo(params);
|
||||
|
||||
if( 0 < arrProjectCodeAndProjectName.size() ) {
|
||||
|
||||
|
|
@ -67,12 +68,22 @@ public class ProjectListController {
|
|||
} else {
|
||||
jsonObject.put("result", "false");
|
||||
jsonObject.put("resultCode", "The name already exists.");
|
||||
jsonObject.put("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력해 주세요.");
|
||||
jsonObject.put("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력해 주세요. code 1");
|
||||
}
|
||||
} else if( 0 < arrProjectCodeAndProjectNameByProjectNameFromTempMetaInfo.size() ) {
|
||||
|
||||
if( projectCode != null && arrProjectCodeAndProjectNameByProjectNameFromTempMetaInfo.size() == 1 && projectCode.equals(arrProjectCodeAndProjectNameByProjectNameFromTempMetaInfo.get(0).get("PROJECT_CODE")) ) {
|
||||
// 나 자신의 프로젝트가 검색된 거임.
|
||||
} else {
|
||||
jsonObject.put("result", "false");
|
||||
jsonObject.put("resultCode", "The name already exists.");
|
||||
jsonObject.put("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력해 주세요. code 2");
|
||||
}
|
||||
} else {
|
||||
jsonObject.put("result", "true");
|
||||
jsonObject.put("message", "");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
response.setContentType("application/json; charset=UTF-8"); // 응답 헤더 설정
|
||||
|
|
|
|||
|
|
@ -52,4 +52,6 @@ public interface ProjectListMapper {
|
|||
public ArrayList getExpertOpinion(HashMap<String, Object> params);
|
||||
|
||||
public ArrayList<HashMap<String, Object>> getProjectCodeAndProjectNameByProjectName(HashMap<String, Object> params);
|
||||
public ArrayList<HashMap<String, Object>> getProjectCodeAndProjectNameByProjectNameFromTempMetaInfo(HashMap<String, Object> params);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,4 +50,5 @@ public interface ProjectListService {
|
|||
public ArrayList getExpertOpinion(HashMap<String, Object> params);
|
||||
|
||||
public ArrayList<HashMap<String, Object>> getProjectCodeAndProjectNameByProjectName(HashMap<String, Object> params);
|
||||
public ArrayList<HashMap<String, Object>> getProjectCodeAndProjectNameByProjectNameFromTempMetaInfo(HashMap<String, Object> params);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -215,4 +215,11 @@ public class ProjectListServiceImpl implements ProjectListService {
|
|||
return projectListMapper.getProjectCodeAndProjectNameByProjectName(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<HashMap<String, Object>> getProjectCodeAndProjectNameByProjectNameFromTempMetaInfo(HashMap<String, Object> params) {
|
||||
return projectListMapper.getProjectCodeAndProjectNameByProjectNameFromTempMetaInfo(params);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1334,4 +1334,16 @@ INSERT INTO TEMP_META_INFO (
|
|||
tpi.USE_YN != 'N' AND REPLACE(tpi.PROJECT_NAME, ' ', '') = REPLACE(#{PROJECT_NAME}, ' ', '')
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<select id="getProjectCodeAndProjectNameByProjectNameFromTempMetaInfo" parameterType="map" resultType="java.util.HashMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
tmi.PROJECT_CODE,
|
||||
tmi.PROJECT_NAME
|
||||
FROM
|
||||
TEMP_META_INFO tmi
|
||||
WHERE
|
||||
REPLACE(tmi.PROJECT_NAME, ' ', '') = REPLACE(#{PROJECT_NAME}, ' ', '')
|
||||
]]>
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -185,7 +185,7 @@ function shakeAndHighlight(targetEle, message) {
|
|||
targetEle.classList.remove("shake-animation");
|
||||
//targetEle.focus();
|
||||
showSnackbar();
|
||||
}, 300);
|
||||
}, 700);
|
||||
}
|
||||
|
||||
function showSnackbar() {
|
||||
|
|
@ -199,6 +199,38 @@ function showSnackbar() {
|
|||
setTimeout(function(){ x.className = x.className.replace("show", ""); }, 4000);
|
||||
}
|
||||
|
||||
/**
|
||||
* 한글 은/는 return 함수
|
||||
*/
|
||||
function getKoreanParticle(word) {
|
||||
// 입력받은 문자열의 마지막 글자를 추출합니다.
|
||||
const lastChar = word.slice(-1);
|
||||
|
||||
// 자음으로 끝나는 경우 '은'을, 모음으로 끝나는 경우 '는'을 반환합니다.
|
||||
const consonants = 'ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅋㅌㅍㅎ';
|
||||
if (consonants.includes(lastChar)) {
|
||||
return '은';
|
||||
} else {
|
||||
return '는';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 특정 input의 1 또는 -로 되어 있는 것을 제거한 뒤에 그 값이 빈 값이면 필수값이라고 사용자에게 안내한다.
|
||||
*/
|
||||
function requirementInputData(id, fieldName) {
|
||||
var InputCompanyEle = document.getElementById(id);
|
||||
InputCompanyEle.addEventListener('focusout', function(event) {
|
||||
|
||||
let inputValue = event.target.value;
|
||||
|
||||
if( inputValue.replace(/[1|\-]/g, '').trim() === "" ) {
|
||||
shakeAndHighlight(event.target, fieldName + getKoreanParticle(fieldName) +' 필수 값입니다.');
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
window.onload = function() {
|
||||
|
||||
|
|
@ -218,6 +250,16 @@ window.onload = function() {
|
|||
//fn_onkeyNumber("TEL","phone");
|
||||
//fn_onkeyNumber("PHONE","phone");
|
||||
|
||||
requirementInputData("INPUT_COMPANY", "입력기관");
|
||||
requirementInputData("DEPT", "부서명");
|
||||
requirementInputData("ADMIN_NAME", "담당자");
|
||||
requirementInputData("EMAIL", "Email");
|
||||
requirementInputData("SEARCHDATE", "시추날짜(시작날짜)");
|
||||
requirementInputData("HOLE_ADMIN_NAME", "시추담당자");
|
||||
requirementInputData("HOLE_COMPANY", "시추업체");
|
||||
|
||||
|
||||
|
||||
// 전화번호
|
||||
var telInput = document.getElementById("TEL");
|
||||
telInput.addEventListener('focusout', function(event) {
|
||||
|
|
@ -292,7 +334,7 @@ function hasNonNumericCharacters(str) {
|
|||
|
||||
function removeNonNumeric(str) {
|
||||
let inputValue = String(str);
|
||||
return inputValue.replace(/[^0-9]/g, '');;
|
||||
return inputValue.replace(/[^0-9]/g, '');
|
||||
}
|
||||
|
||||
function fn_excel_input(){
|
||||
|
|
|
|||
Loading…
Reference in New Issue