Compare commits
No commits in common. "2bf2ccc2d0ba568865305cf005f1b3a7fe7ab33f" and "ce4175e783bc89a00fcf88c79a5cf5ed4993ec65" have entirely different histories.
2bf2ccc2d0
...
ce4175e783
|
|
@ -639,11 +639,7 @@ public class HeaderController {
|
||||||
String oHOLE_BORING_METHOD = sUtil.checkNull(String.valueOf(params.get("HOLE_BORING_METHOD"))); //시추방법
|
String oHOLE_BORING_METHOD = sUtil.checkNull(String.valueOf(params.get("HOLE_BORING_METHOD"))); //시추방법
|
||||||
String oHOLE_BORING_MACHINE = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_BORING_MACHINE"))); //시추장비
|
String oHOLE_BORING_MACHINE = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_BORING_MACHINE"))); //시추장비
|
||||||
String oHOLE_LAYER_NUM = sUtil.checkNull(String.valueOf(params.get("HOLE_LAYER_NUM"))); //지층수
|
String oHOLE_LAYER_NUM = sUtil.checkNull(String.valueOf(params.get("HOLE_LAYER_NUM"))); //지층수
|
||||||
String BORING_DIRECTIOIN_DEGREE = sUtil.checkNull(String.valueOf(request.getParameter("BORING_DIRECTION_INPUT"))); // 시추방향 각도(oBORING_DIRECTION 에 사용한다.)
|
String oBORING_DIRECTION = sUtil.checkNull(String.valueOf(params.get("BORING_DIRECTION_SEL")))+"|"+sUtil.checkNull(String.valueOf(request.getParameter("BORING_DIRECTION_INPUT"))); //시추방향
|
||||||
if ("-".equals(BORING_DIRECTIOIN_DEGREE)) {
|
|
||||||
BORING_DIRECTIOIN_DEGREE = "-999";
|
|
||||||
}
|
|
||||||
String oBORING_DIRECTION = sUtil.checkNull(String.valueOf(params.get("BORING_DIRECTION_SEL")))+"|"+BORING_DIRECTIOIN_DEGREE; //시추방향
|
|
||||||
String oHOLE_TYPE = "Boring"; //Boring
|
String oHOLE_TYPE = "Boring"; //Boring
|
||||||
String oHOLE_DB_INPUTCOMP = sUtil.checkNull(String.valueOf(params.get("HOLE_DB_INPUTCOMP"))); //입력기업
|
String oHOLE_DB_INPUTCOMP = sUtil.checkNull(String.valueOf(params.get("HOLE_DB_INPUTCOMP"))); //입력기업
|
||||||
String oHOLE_DESC = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_DESC"))); //기타
|
String oHOLE_DESC = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_DESC"))); //기타
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,6 @@ import geoinfo.regi.status.service.RegiPageService;
|
||||||
import geoinfo.regi.surface.service.SurfaceService;
|
import geoinfo.regi.surface.service.SurfaceService;
|
||||||
import geoinfo.util.DateUtil;
|
import geoinfo.util.DateUtil;
|
||||||
import geoinfo.util.ExcelUtil;
|
import geoinfo.util.ExcelUtil;
|
||||||
import geoinfo.util.MyUtil;
|
|
||||||
import geoinfo.util.RsWrapper;
|
import geoinfo.util.RsWrapper;
|
||||||
import geoinfo.util.StringUtil;
|
import geoinfo.util.StringUtil;
|
||||||
import ictway.comm.util.strUtil;
|
import ictway.comm.util.strUtil;
|
||||||
|
|
@ -513,15 +512,6 @@ public class ManageExcelUploadProc03Controller {
|
||||||
listMap = ("".equals(saveMap.get("pe3List")))?null:(List<HashMap<String, Object>>) saveMap.get("pe3List");
|
listMap = ("".equals(saveMap.get("pe3List")))?null:(List<HashMap<String, Object>>) saveMap.get("pe3List");
|
||||||
if(null != listMap){
|
if(null != listMap){
|
||||||
for(HashMap<String, Object> map : listMap){
|
for(HashMap<String, Object> map : listMap){
|
||||||
|
|
||||||
|
|
||||||
// 엑셀 업로드로 자료입력 시 - 입력 허용
|
|
||||||
String SAMPLE_RD = (String)map.get("SAMPLE_RD");
|
|
||||||
|
|
||||||
if ("-".equals(SAMPLE_RD)) { // 단위중량
|
|
||||||
map.put("SAMPLE_RD", "-999");
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.debug("=====>pe3List:" + map.toString());
|
logger.debug("=====>pe3List:" + map.toString());
|
||||||
basicService.insertTempFieldPermeability(map);
|
basicService.insertTempFieldPermeability(map);
|
||||||
}
|
}
|
||||||
|
|
@ -582,37 +572,6 @@ public class ManageExcelUploadProc03Controller {
|
||||||
List<HashMap<String, Object>> listMap = ("".equals(saveMap.get("sm4List")))?null:(List<HashMap<String, Object>>) saveMap.get("sm4List");
|
List<HashMap<String, Object>> listMap = ("".equals(saveMap.get("sm4List")))?null:(List<HashMap<String, Object>>) saveMap.get("sm4List");
|
||||||
if(null != listMap){
|
if(null != listMap){
|
||||||
for(HashMap<String, Object> map : listMap){
|
for(HashMap<String, Object> map : listMap){
|
||||||
// 엑셀 업로드로 자료입력 시 - 입력 허용
|
|
||||||
String SAMPLE_DEPTH_FROM = (String)map.get("SAMPLE_DEPTH_FROM");
|
|
||||||
String SAMPLE_DEPTH_TO = (String)map.get("SAMPLE_DEPTH_TO");
|
|
||||||
String SAMPLE_GS = (String)map.get("SAMPLE_GS");
|
|
||||||
String SAMPLE_WC = (String)map.get("SAMPLE_WC");
|
|
||||||
String SAMPLE_LL = (String)map.get("SAMPLE_LL");
|
|
||||||
String SAMPLE_PI = (String)map.get("SAMPLE_PI");
|
|
||||||
String SAMPLE_RD = (String)map.get("SAMPLE_RD");
|
|
||||||
|
|
||||||
if ("-".equals(SAMPLE_DEPTH_FROM)) { // 심도(From)
|
|
||||||
map.put("SAMPLE_DEPTH_FROM", "-999");
|
|
||||||
}
|
|
||||||
if ("-".equals(SAMPLE_DEPTH_TO)) { // 심도(To)
|
|
||||||
map.put("SAMPLE_DEPTH_TO", "-999");
|
|
||||||
}
|
|
||||||
if ("-".equals(SAMPLE_GS)) { // 함수비
|
|
||||||
map.put("SAMPLE_GS", "-999");
|
|
||||||
}
|
|
||||||
if ("-".equals(SAMPLE_WC)) { // 비중
|
|
||||||
map.put("SAMPLE_WC", "-999");
|
|
||||||
}
|
|
||||||
if ("-".equals(SAMPLE_LL)) { // 액성한계
|
|
||||||
map.put("SAMPLE_LL", "-999");
|
|
||||||
}
|
|
||||||
if ("-".equals(SAMPLE_PI)) { // 소성지수
|
|
||||||
map.put("SAMPLE_PI", "-999");
|
|
||||||
}
|
|
||||||
if ("-".equals(SAMPLE_RD)) { // 단위중량
|
|
||||||
map.put("SAMPLE_RD", "-999");
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.debug("=====>sm4List:" + map.toString());
|
logger.debug("=====>sm4List:" + map.toString());
|
||||||
sampleInfoService.insertSampleInfo(map);
|
sampleInfoService.insertSampleInfo(map);
|
||||||
}
|
}
|
||||||
|
|
@ -1609,7 +1568,7 @@ public class ManageExcelUploadProc03Controller {
|
||||||
RsWrapper excelWp = new RsWrapper();
|
RsWrapper excelWp = new RsWrapper();
|
||||||
if("Y".equals(classInfoMap.get("sandClassification"))){
|
if("Y".equals(classInfoMap.get("sandClassification"))){
|
||||||
if("".equals((String)resultMap.get("resultMsg"))){
|
if("".equals((String)resultMap.get("resultMsg"))){
|
||||||
excelWp = ExcelUtil.getRsWp(strFile, "입도분석정보", 0, 1, 23);
|
excelWp = ExcelUtil.getRsWp(strFile, "입도분석정보", 0, 1, 22);
|
||||||
resultMap = checkStep03_500_class(request, params, excelWp, savePath, strFile,_projectCode,_holeCode);
|
resultMap = checkStep03_500_class(request, params, excelWp, savePath, strFile,_projectCode,_holeCode);
|
||||||
jaCl5 = (null == resultMap.get("list") || "".equals(resultMap.get("list")))?null:JSONArray.fromObject(resultMap.get("list"));
|
jaCl5 = (null == resultMap.get("list") || "".equals(resultMap.get("list")))?null:JSONArray.fromObject(resultMap.get("list"));
|
||||||
}
|
}
|
||||||
|
|
@ -1636,7 +1595,7 @@ public class ManageExcelUploadProc03Controller {
|
||||||
}
|
}
|
||||||
if("Y".equals(classInfoMap.get("sandUnconfinedUsual"))){
|
if("Y".equals(classInfoMap.get("sandUnconfinedUsual"))){
|
||||||
if("".equals((String)resultMap.get("resultMsg"))){
|
if("".equals((String)resultMap.get("resultMsg"))){
|
||||||
excelWp = ExcelUtil.getRsWp(strFile, "일축압축정보", 0, 2, 19);
|
excelWp = ExcelUtil.getRsWp(strFile, "일축압축정보", 0, 2, 18);
|
||||||
resultMap = checkStep03_500_unconfined(request, params, excelWp, savePath, strFile,_projectCode,_holeCode);
|
resultMap = checkStep03_500_unconfined(request, params, excelWp, savePath, strFile,_projectCode,_holeCode);
|
||||||
jaUn5 = (null == resultMap.get("list") || "".equals(resultMap.get("list")))?null:JSONArray.fromObject(resultMap.get("list"));
|
jaUn5 = (null == resultMap.get("list") || "".equals(resultMap.get("list")))?null:JSONArray.fromObject(resultMap.get("list"));
|
||||||
}
|
}
|
||||||
|
|
@ -1710,14 +1669,14 @@ public class ManageExcelUploadProc03Controller {
|
||||||
}
|
}
|
||||||
if("Y".equals(classInfoMap.get("rockPointload"))){
|
if("Y".equals(classInfoMap.get("rockPointload"))){
|
||||||
if("".equals((String)resultMap.get("resultMsg"))){
|
if("".equals((String)resultMap.get("resultMsg"))){
|
||||||
excelWp = ExcelUtil.getRsWp(strFile, "점하중정보", 0, 1, 9);
|
excelWp = ExcelUtil.getRsWp(strFile, "점하중정보", 0, 1, 8);
|
||||||
resultMap = checkStep03_600_rockPointload(request, params, excelWp, savePath, strFile,_projectCode,_holeCode);
|
resultMap = checkStep03_600_rockPointload(request, params, excelWp, savePath, strFile,_projectCode,_holeCode);
|
||||||
jaRpo6 = (null == resultMap.get("list") || "".equals(resultMap.get("list")))?null:JSONArray.fromObject(resultMap.get("list"));
|
jaRpo6 = (null == resultMap.get("list") || "".equals(resultMap.get("list")))?null:JSONArray.fromObject(resultMap.get("list"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if("Y".equals(classInfoMap.get("rockJointshear"))){
|
if("Y".equals(classInfoMap.get("rockJointshear"))){
|
||||||
if("".equals((String)resultMap.get("resultMsg"))){
|
if("".equals((String)resultMap.get("resultMsg"))){
|
||||||
excelWp = ExcelUtil.getRsWp(strFile, "절리면전단정보", 0, 1, 9);
|
excelWp = ExcelUtil.getRsWp(strFile, "절리면전단정보", 0, 1, 8);
|
||||||
resultMap = checkStep03_600_rockJointshear(request, params, excelWp, savePath, strFile,_projectCode,_holeCode);
|
resultMap = checkStep03_600_rockJointshear(request, params, excelWp, savePath, strFile,_projectCode,_holeCode);
|
||||||
jaRjo6 = (null == resultMap.get("list") || "".equals(resultMap.get("list")))?null:JSONArray.fromObject(resultMap.get("list"));
|
jaRjo6 = (null == resultMap.get("list") || "".equals(resultMap.get("list")))?null:JSONArray.fromObject(resultMap.get("list"));
|
||||||
}
|
}
|
||||||
|
|
@ -3551,14 +3510,7 @@ public class ManageExcelUploadProc03Controller {
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col1",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col1",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "시험횟수는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "시험횟수는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
String strTestNo2 = excelWp.get("col0",i).trim();
|
testNo2 = Integer.valueOf(excelWp.get("col0",i).trim());
|
||||||
if( MyUtil.isNumeric(strTestNo2) ) {
|
|
||||||
testNo2 = Integer.valueOf(strTestNo2);
|
|
||||||
} else {
|
|
||||||
String errMessage = "시험횟수는 실수만 입력이 가능합니다.";
|
|
||||||
resultMsg += String.format(fmtMsg, errMessage);
|
|
||||||
throw new Exception(errMessage);
|
|
||||||
}
|
|
||||||
|
|
||||||
testNo = testNo2 > testNo ? testNo2 : testNo;
|
testNo = testNo2 > testNo ? testNo2 : testNo;
|
||||||
testNoCheck[i] = (String)(excelWp.get("col0",i).trim())+(String)(excelWp.get("col1",i).trim());
|
testNoCheck[i] = (String)(excelWp.get("col0",i).trim())+(String)(excelWp.get("col1",i).trim());
|
||||||
|
|
@ -4497,55 +4449,52 @@ public class ManageExcelUploadProc03Controller {
|
||||||
List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
|
List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
|
||||||
resultMsg = imageUpload(params,"일축압축정보 그래프", savePath, strFile, resultMsg, "[토사시험정보 - 일축압축시험 그래프] %s|", "일축압축시험결과 그래프",excelWp.getLength());
|
resultMsg = imageUpload(params,"일축압축정보 그래프", savePath, strFile, resultMsg, "[토사시험정보 - 일축압축시험 그래프] %s|", "일축압축시험결과 그래프",excelWp.getLength());
|
||||||
for(int i=0; i < excelWp.getLength(); i++){
|
for(int i=0; i < excelWp.getLength(); i++){
|
||||||
// if(!StringUtil.containsCharOnly(excelWp.get("col0",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col0",i).trim(),"0123456789.")){
|
||||||
// resultMsg += String.format(fmtMsg, "링계수는 실수만 입력이 가능합니다.");
|
|
||||||
// }
|
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col1",i).trim(),"0123456789.")){
|
|
||||||
resultMsg += String.format(fmtMsg, "링계수는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "링계수는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col2",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col1",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "하중값는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "하중값는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col3",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col2",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "자연시료 높이는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "자연시료 높이는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col4",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col3",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "자연시료 직경은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "자연시료 직경은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col5",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col4",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "자연시료 함수비는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "자연시료 함수비는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col6",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col5",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "자연시료 단위중량은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "자연시료 단위중량은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col7",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col6",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "자연시료 공극비는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "자연시료 공극비는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col8",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col7",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "자연시료 포화도는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "자연시료 포화도는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col9",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col8",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "자연시료 일축압축강도는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "자연시료 일축압축강도는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col10",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col9",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "제성형시료 높이 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "제성형시료 높이 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col11",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col10",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "제성형시료 직경은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "제성형시료 직경은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col12",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col11",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "제성형시료 함수비는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "제성형시료 함수비는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col13",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col12",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "제성형시료 단위중량은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "제성형시료 단위중량은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col14",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col13",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "제성형시료 공극비는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "제성형시료 공극비는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col15",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col14",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "제성형시료 포화도는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "제성형시료 포화도는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col16",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col15",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "제성형시료 일축압축강도는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "제성형시료 일축압축강도는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4554,47 +4503,28 @@ public class ManageExcelUploadProc03Controller {
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
int testNo3 = Integer.valueOf(excelWp.get("col0",i).trim()) -1;
|
int testNo3 = Integer.valueOf(excelWp.get("col0",i).trim()) -1;
|
||||||
int testNo = testNo3 + 1; // 사용자가 입력한 순번(물성시험 샘플을 순번으로 찾을때 사용)
|
|
||||||
|
|
||||||
String targetSampleCode = null;
|
|
||||||
|
|
||||||
// private List<Map<String, Object>> _sampleInfoList
|
|
||||||
for (Map<String, Object> sample : _sampleInfoList) {
|
|
||||||
String sampleCode = (String) sample.get("SAMPLE_CODE");
|
|
||||||
|
|
||||||
// SAMPLE_CODE 끝 숫자 추출
|
|
||||||
String numberPart = sampleCode.replaceAll(".*?(\\d+)$", "$1");
|
|
||||||
int number = Integer.parseInt(numberPart);
|
|
||||||
|
|
||||||
if (number == testNo) {
|
|
||||||
targetSampleCode = sampleCode;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
HashMap<String,Object> map = new HashMap<>();
|
HashMap<String,Object> map = new HashMap<>();
|
||||||
map.put("PROJECT_CODE", _projectCode);
|
map.put("PROJECT_CODE", _projectCode);
|
||||||
map.put("HOLE_CODE", _holeCode);
|
map.put("HOLE_CODE", _holeCode);
|
||||||
// map.put("SAMPLE_CODE" , (String) _sampleInfoList.get(i).get("SAMPLE_CODE"));
|
map.put("SAMPLE_CODE" , (String) _sampleInfoList.get(i).get("SAMPLE_CODE"));
|
||||||
map.put("SAMPLE_CODE" , targetSampleCode);
|
map.put("UNCONF_RINGFACTOR" , excelWp.get("col0", i));
|
||||||
map.put("UNCONF_RINGFACTOR" , excelWp.get("col1", i));
|
map.put("UNCONF_LOAD_SCALE" , excelWp.get("col1", i));
|
||||||
map.put("UNCONF_LOAD_SCALE" , excelWp.get("col2", i));
|
map.put("UNCONF_UNDISTURB_HEIGHT" , excelWp.get("col2", i));
|
||||||
map.put("UNCONF_UNDISTURB_HEIGHT" , excelWp.get("col3", i));
|
map.put("UNCONF_UNDISTURB_DIA" , excelWp.get("col3", i));
|
||||||
map.put("UNCONF_UNDISTURB_DIA" , excelWp.get("col4", i));
|
map.put("UNCONF_UNDISTURB_W" , excelWp.get("col4", i));
|
||||||
map.put("UNCONF_UNDISTURB_W" , excelWp.get("col5", i));
|
map.put("UNCONF_UNDISTURB_RT" , excelWp.get("col5", i));
|
||||||
map.put("UNCONF_UNDISTURB_RT" , excelWp.get("col6", i));
|
map.put("UNCONF_UNDISTURB_E" , excelWp.get("col6", i));
|
||||||
map.put("UNCONF_UNDISTURB_E" , excelWp.get("col7", i));
|
map.put("UNCONF_UNDISTURB_S" , excelWp.get("col7", i));
|
||||||
map.put("UNCONF_UNDISTURB_S" , excelWp.get("col8", i));
|
map.put("UNCONF_UNDISTURB_COMPSTRENGTH" , excelWp.get("col8", i));
|
||||||
map.put("UNCONF_UNDISTURB_COMPSTRENGTH" , excelWp.get("col9", i));
|
map.put("UNCONF_REMOULD_HEIGHT" , excelWp.get("col9", i));
|
||||||
map.put("UNCONF_REMOULD_HEIGHT" , excelWp.get("col10", i));
|
map.put("UNCONF_REMOULD_DIA" , excelWp.get("col10", i));
|
||||||
map.put("UNCONF_REMOULD_DIA" , excelWp.get("col11", i));
|
map.put("UNCONF_REMOULD_W" , excelWp.get("col11", i));
|
||||||
map.put("UNCONF_REMOULD_W" , excelWp.get("col12", i));
|
map.put("UNCONF_REMOULD_RT" , excelWp.get("col12", i));
|
||||||
map.put("UNCONF_REMOULD_RT" , excelWp.get("col13", i));
|
map.put("UNCONF_REMOULD_E" , excelWp.get("col13", i));
|
||||||
map.put("UNCONF_REMOULD_E" , excelWp.get("col14", i));
|
map.put("UNCONF_REMOULD_S" , excelWp.get("col14", i));
|
||||||
map.put("UNCONF_REMOULD_S" , excelWp.get("col15", i));
|
map.put("UNCONF_REMOULD_COMPSTRENGTH" , excelWp.get("col15", i));
|
||||||
map.put("UNCONF_REMOULD_COMPSTRENGTH" , excelWp.get("col16", i));
|
map.put("UNCONF_SAMPLE_SHAPE" , excelWp.get("col16", i));
|
||||||
map.put("UNCONF_SAMPLE_SHAPE" , excelWp.get("col17", i));
|
map.put("UNCONF_REMARK" , excelWp.get("col17", i));
|
||||||
map.put("UNCONF_REMARK" , excelWp.get("col18", i));
|
|
||||||
map.put("USERID" , request.getSession().getAttribute("USERID"));
|
map.put("USERID" , request.getSession().getAttribute("USERID"));
|
||||||
|
|
||||||
map.put("graphImage" , params.get("GRAPH_IMAGE"+testNo3) );
|
map.put("graphImage" , params.get("GRAPH_IMAGE"+testNo3) );
|
||||||
|
|
@ -4636,25 +4566,20 @@ public class ManageExcelUploadProc03Controller {
|
||||||
WebUtil wUtil = new WebUtil();
|
WebUtil wUtil = new WebUtil();
|
||||||
strUtil sUtil = new strUtil();
|
strUtil sUtil = new strUtil();
|
||||||
|
|
||||||
String resultMsg = "";
|
String resultMsg = "";
|
||||||
String fmtMsg = "[토사시험정보 - 압밀시험정보] %s|";
|
String fmtMsg = "[토사시험정보 - 압밀시험정보] %s|";
|
||||||
final int consolidationTestCount = excelWp.getLength();
|
String testNoCheck[] = new String[excelWp.getLength()];
|
||||||
final int sampleInfoCount = _sampleInfoList.size();
|
if(excelWp.getLength() != _sampleInfoList.size()){
|
||||||
String testNoCheck[] = new String[consolidationTestCount];
|
params.put("resultMsg", String.format(fmtMsg, "기본물성시험정보의 시료 갯수"+excelWp.getLength() != _sampleInfoList.size()+"개와 같지 않습니다."));
|
||||||
|
|
||||||
/*
|
|
||||||
if( consolidationTestCount != sampleInfoCount){
|
|
||||||
params.put("resultMsg", String.format(fmtMsg, "기본물성시험정보의 시료 갯수"+consolidationTestCount != sampleInfoCount+"개와 같지 않습니다."));
|
|
||||||
return params;
|
return params;
|
||||||
};
|
};
|
||||||
*/
|
|
||||||
|
|
||||||
int testNo2 =1;
|
int testNo2 =1;
|
||||||
int testNo = 1;
|
int testNo = 1;
|
||||||
try{
|
try{
|
||||||
List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
|
List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
|
||||||
resultMsg = imageUpload(params,"압밀시험정보 그래프", savePath, strFile, resultMsg, "[토사시험정보 - 압밀시험 그래프] %s|", "압밀시험결과 그래프",consolidationTestCount);
|
resultMsg = imageUpload(params,"압밀시험정보 그래프", savePath, strFile, resultMsg, "[토사시험정보 - 압밀시험 그래프] %s|", "압밀시험결과 그래프",excelWp.getLength());
|
||||||
for(int i=0; i < consolidationTestCount; i++){
|
for(int i=0; i < excelWp.getLength(); i++){
|
||||||
|
|
||||||
testNo2 = Integer.valueOf(excelWp.get("col0",i).trim());
|
testNo2 = Integer.valueOf(excelWp.get("col0",i).trim());
|
||||||
testNo = testNo2 > testNo ? testNo2 : testNo;
|
testNo = testNo2 > testNo ? testNo2 : testNo;
|
||||||
|
|
@ -4704,8 +4629,8 @@ public class ManageExcelUploadProc03Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if( sampleInfoCount < testNo ) {
|
if(testNo != _sampleInfoList.size()) {
|
||||||
params.put("resultMsg", String.format(fmtMsg, "최대 테스트 번호가 기본물성시험정보의 시료 갯수"+consolidationTestCount != sampleInfoCount+"와 같지 않습니다."));
|
params.put("resultMsg", String.format(fmtMsg, "최대 테스트 번호가 기본물성시험정보의 시료 갯수"+excelWp.getLength() != _sampleInfoList.size()+"와 같지 않습니다."));
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4721,7 +4646,7 @@ public class ManageExcelUploadProc03Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for(int i=0; i < consolidationTestCount; i++){
|
for(int i=0; i < excelWp.getLength(); i++){
|
||||||
HashMap<String,Object> map = new HashMap<>();
|
HashMap<String,Object> map = new HashMap<>();
|
||||||
map.put("PROJECT_CODE", _projectCode);
|
map.put("PROJECT_CODE", _projectCode);
|
||||||
map.put("HOLE_CODE", _holeCode);
|
map.put("HOLE_CODE", _holeCode);
|
||||||
|
|
@ -5043,78 +4968,76 @@ public class ManageExcelUploadProc03Controller {
|
||||||
strUtil sUtil = new strUtil();
|
strUtil sUtil = new strUtil();
|
||||||
String resultMsg = "";
|
String resultMsg = "";
|
||||||
String fmtMsg = "[토사시험정보 - 입도분석정보] %s|";
|
String fmtMsg = "[토사시험정보 - 입도분석정보] %s|";
|
||||||
// [YJI / 26.04.10] 입도시험 개수는 물성시험정보 갯수와 일치하지 않아도 됨(같거나 작으면 됨)
|
if(excelWp.getLength() != _sampleInfoList.size()){
|
||||||
// if(excelWp.getLength() != _sampleInfoList.size()){
|
params.put("resultMsg", String.format(fmtMsg, "기본물성시험정보의 시료 갯수와 같지 않습니다."));
|
||||||
// params.put("resultMsg", String.format(fmtMsg, "기본물성시험정보의 시료 갯수와 같지 않습니다."));
|
return params;
|
||||||
// return params;
|
};
|
||||||
// };
|
|
||||||
try{
|
try{
|
||||||
List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
|
List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
|
||||||
String saveName="";
|
String saveName="";
|
||||||
// [YJI / 26.04.10] 입도시험 개수는 물성시험정보 갯수와 일치하지 않아도 됨(같거나 작으면 됨) - 그래프이미지
|
resultMsg = imageUpload(params,"입도분석정보 그래프", savePath, strFile, resultMsg, "[토사시험정보 - 입도시험 그래프] %s|", "입도시험결과 그래프",_sampleInfoList.size());
|
||||||
resultMsg = imageUpload(params,"입도분석정보 그래프", savePath, strFile, resultMsg, "[토사시험정보 - 입도시험 그래프] %s|", "입도시험결과 그래프",excelWp.getLength());
|
for(int i=0; i < _sampleInfoList.size(); i++) {
|
||||||
for(int i=0; i < excelWp.getLength(); i++) { // [YJI / 26.04.10] 입도시험 개수는 물성시험정보 갯수와 일치하지 않아도 됨(같거나 작으면 됨)
|
if(!StringUtil.containsCharOnly(excelWp.get("col0",i).trim(),"0123456789.")){
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col1",i).trim(),"0123456789.")){
|
|
||||||
resultMsg += String.format(fmtMsg, "D10은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "D10은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col2",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col1",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "D30은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "D30은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col3",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col2",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "D60은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "D60은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col4",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col3",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "균등계수는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "균등계수는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col5",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col4",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "곡률계수는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "곡률계수는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col6",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col5",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#4는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#4는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col7",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col6",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#6은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#6은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col8",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col7",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#8은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#8은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col9",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col8",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#10은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#10은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col10",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col9",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#12는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#12는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col11",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col10",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#16은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#16은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col12",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col11",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#20은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#20은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col13",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col12",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#30은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#30은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col14",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col13",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#40은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#40은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col15",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col14",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#50은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#50은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col16",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col15",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#60은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#60은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col17",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col16",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#70은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#70은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col18",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col17",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#100은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#100은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col19",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col18",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#140은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#140은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col20",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col19",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#200은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#200은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col21",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col20",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, "#0.005는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, "#0.005는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5125,45 +5048,33 @@ public class ManageExcelUploadProc03Controller {
|
||||||
|
|
||||||
//EgovMap m = items.get(i);
|
//EgovMap m = items.get(i);
|
||||||
logger.debug("_sampleInfoList SAMPLE_CODE : " + (String) _sampleInfoList.get(i).get("SAMPLE_CODE"));
|
logger.debug("_sampleInfoList SAMPLE_CODE : " + (String) _sampleInfoList.get(i).get("SAMPLE_CODE"));
|
||||||
int testNo = Integer.valueOf(excelWp.get("col0",i).trim()); // 사용자가 입력한 순번(물성시험 샘플을 순번으로 찾을때 사용)
|
|
||||||
String targetSampleCode = null;
|
|
||||||
for (Map<String, Object> sample : _sampleInfoList) {
|
|
||||||
String sampleCode = (String) sample.get("SAMPLE_CODE");
|
|
||||||
// SAMPLE_CODE 끝 숫자 추출
|
|
||||||
String numberPart = sampleCode.replaceAll(".*?(\\d+)$", "$1");
|
|
||||||
int number = Integer.parseInt(numberPart);
|
|
||||||
if (number == testNo) {
|
|
||||||
targetSampleCode = sampleCode;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
HashMap<String,Object> map = new HashMap<>();
|
HashMap<String,Object> map = new HashMap<>();
|
||||||
map.put("PROJECT_CODE" , _projectCode);
|
map.put("PROJECT_CODE" , _projectCode);
|
||||||
map.put("HOLE_CODE" , _holeCode);
|
map.put("HOLE_CODE" , _holeCode);
|
||||||
map.put("sampleCode" , targetSampleCode);
|
map.put("sampleCode" , (String) _sampleInfoList.get(i).get("SAMPLE_CODE"));
|
||||||
map.put("classiD10" , excelWp.get("col1", i));
|
map.put("classiD10" , excelWp.get("col0", i));
|
||||||
map.put("classiD30" , excelWp.get("col2", i));
|
map.put("classiD30" , excelWp.get("col1", i));
|
||||||
map.put("classiD60" , excelWp.get("col3", i));
|
map.put("classiD60" , excelWp.get("col2", i));
|
||||||
map.put("classiCu" , excelWp.get("col4", i));
|
map.put("classiCu" , excelWp.get("col3", i));
|
||||||
map.put("classiCg" , excelWp.get("col5", i));
|
map.put("classiCg" , excelWp.get("col4", i));
|
||||||
map.put("classiNo4" , excelWp.get("col6", i));
|
map.put("classiNo4" , excelWp.get("col5", i));
|
||||||
map.put("classiNo6" , excelWp.get("col7", i));
|
map.put("classiNo6" , excelWp.get("col6", i));
|
||||||
map.put("classiNo8" , excelWp.get("col8", i));
|
map.put("classiNo8" , excelWp.get("col7", i));
|
||||||
map.put("classiNo10" , excelWp.get("col9", i));
|
map.put("classiNo10" , excelWp.get("col8", i));
|
||||||
map.put("classiNo12" , excelWp.get("col10", i));
|
map.put("classiNo12" , excelWp.get("col9", i));
|
||||||
map.put("classiNo16" , excelWp.get("col11", i));
|
map.put("classiNo16" , excelWp.get("col10", i));
|
||||||
map.put("classiNo20" , excelWp.get("col12", i));
|
map.put("classiNo20" , excelWp.get("col11", i));
|
||||||
map.put("classiNo30" , excelWp.get("col13", i));
|
map.put("classiNo30" , excelWp.get("col12", i));
|
||||||
map.put("classiNo40" , excelWp.get("col14", i));
|
map.put("classiNo40" , excelWp.get("col13", i));
|
||||||
map.put("classiNo50" , excelWp.get("col15", i));
|
map.put("classiNo50" , excelWp.get("col14", i));
|
||||||
map.put("classiNo60" , excelWp.get("col16", i));
|
map.put("classiNo60" , excelWp.get("col15", i));
|
||||||
map.put("classiNo70" , excelWp.get("col17", i));
|
map.put("classiNo70" , excelWp.get("col16", i));
|
||||||
map.put("classiNo100" , excelWp.get("col18", i));
|
map.put("classiNo100" , excelWp.get("col17", i));
|
||||||
map.put("classiNo140" , excelWp.get("col19", i));
|
map.put("classiNo140" , excelWp.get("col18", i));
|
||||||
map.put("classiNo200" , excelWp.get("col20", i));
|
map.put("classiNo200" , excelWp.get("col19", i));
|
||||||
map.put("classiNo005" , excelWp.get("col21", i));
|
map.put("classiNo005" , excelWp.get("col20", i));
|
||||||
map.put("classiRemark" , excelWp.get("col22", i));
|
map.put("classiRemark" , excelWp.get("col21", i));
|
||||||
map.put("USERID" , request.getSession().getAttribute("USERID"));
|
map.put("USERID" , request.getSession().getAttribute("USERID"));
|
||||||
map.put("graphImage" , params.get("GRAPH_IMAGE"+i) );
|
map.put("graphImage" , params.get("GRAPH_IMAGE"+i) );
|
||||||
map.put("graphLocal" , params.get("GRAPH_LOCAL"+i) );
|
map.put("graphLocal" , params.get("GRAPH_LOCAL"+i) );
|
||||||
|
|
@ -5394,7 +5305,7 @@ public class ManageExcelUploadProc03Controller {
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col4",i).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col4",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, i+"번째 케이싱길이(m)는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, i+"번째 케이싱길이(m)는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col5",i).trim(),"0123456789.-")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col5",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, i+"번째 평균투수계수(cm/sec)는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, i+"번째 평균투수계수(cm/sec)는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
testNoCheck[i-1] = (String)(excelWp.get("col0",i).trim());
|
testNoCheck[i-1] = (String)(excelWp.get("col0",i).trim());
|
||||||
|
|
@ -5430,10 +5341,6 @@ public class ManageExcelUploadProc03Controller {
|
||||||
|
|
||||||
for(int i=1; i < excelWp.getLength(); i++){
|
for(int i=1; i < excelWp.getLength(); i++){
|
||||||
HashMap<String,Object> map = new HashMap<>();
|
HashMap<String,Object> map = new HashMap<>();
|
||||||
String fieldperAvgPermeability = excelWp.get("col5", i).trim();
|
|
||||||
if("-".equals(fieldperAvgPermeability)) {
|
|
||||||
fieldperAvgPermeability = "-999";
|
|
||||||
}
|
|
||||||
map.put("projectCode", _projectCode);
|
map.put("projectCode", _projectCode);
|
||||||
map.put("holeCode", _holeCode);
|
map.put("holeCode", _holeCode);
|
||||||
map.put("seq", i);
|
map.put("seq", i);
|
||||||
|
|
@ -5443,8 +5350,7 @@ public class ManageExcelUploadProc03Controller {
|
||||||
map.put("fieldperDepthTo", excelWp.get("col2", i).trim());
|
map.put("fieldperDepthTo", excelWp.get("col2", i).trim());
|
||||||
map.put("fieldperCasingDia", excelWp.get("col3", i).trim());
|
map.put("fieldperCasingDia", excelWp.get("col3", i).trim());
|
||||||
map.put("fieldperCasingHeight", excelWp.get("col4", i).trim());
|
map.put("fieldperCasingHeight", excelWp.get("col4", i).trim());
|
||||||
// map.put("fieldperAvgPermeability", excelWp.get("col5", i).trim()); // [YJI / 26.04.09] 엑셀 업로드 '-' 입력 지원. 입력값이 '-' 이면 DB에 저장은 -999로 한다.
|
map.put("fieldperAvgPermeability", excelWp.get("col5", i).trim());
|
||||||
map.put("fieldperAvgPermeability", fieldperAvgPermeability);
|
|
||||||
map.put("fieldperInspectedBy", excelWp.get("col6", i).trim());
|
map.put("fieldperInspectedBy", excelWp.get("col6", i).trim());
|
||||||
map.put("fieldperCheckedBy", excelWp.get("col7", i).trim());
|
map.put("fieldperCheckedBy", excelWp.get("col7", i).trim());
|
||||||
map.put("fieldperRemark", excelWp.get("col8", i).trim());
|
map.put("fieldperRemark", excelWp.get("col8", i).trim());
|
||||||
|
|
@ -5503,7 +5409,7 @@ public class ManageExcelUploadProc03Controller {
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col2",k).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col2",k).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, k+"번째 시간간격(sec)은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, k+"번째 시간간격(sec)은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col3",k).trim(),"0123456789.-")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col3",k).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, k+"번째 총수두(cm)는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, k+"번째 총수두(cm)는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col4",k).trim(),"0123456789.")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col4",k).trim(),"0123456789.")){
|
||||||
|
|
@ -5552,10 +5458,6 @@ public class ManageExcelUploadProc03Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<String,Object> map = new HashMap<>();
|
HashMap<String,Object> map = new HashMap<>();
|
||||||
String fieldperSubFallingHead = excelWp.get("col3", k).trim();
|
|
||||||
if("-".equals(fieldperSubFallingHead)) {
|
|
||||||
fieldperSubFallingHead = "-999";
|
|
||||||
}
|
|
||||||
map.put("projectCode", _projectCode);
|
map.put("projectCode", _projectCode);
|
||||||
map.put("holeCode", _holeCode);
|
map.put("holeCode", _holeCode);
|
||||||
map.put("seq", mSeq);
|
map.put("seq", mSeq);
|
||||||
|
|
@ -5563,8 +5465,7 @@ public class ManageExcelUploadProc03Controller {
|
||||||
map.put("fieldperOrder", tNo);
|
map.put("fieldperOrder", tNo);
|
||||||
map.put("fieldperSubTime", excelWp.get("col1", k).trim());
|
map.put("fieldperSubTime", excelWp.get("col1", k).trim());
|
||||||
map.put("fieldperSubTotalHead", excelWp.get("col2", k).trim());
|
map.put("fieldperSubTotalHead", excelWp.get("col2", k).trim());
|
||||||
// map.put("fieldperSubFallingHead", excelWp.get("col3", k).trim()); // [YJI / 26.04.09] 엑셀 업로드 '-' 입력 지원. 입력값이 '-' 이면 DB에 저장은 -999로 한다.
|
map.put("fieldperSubFallingHead", excelWp.get("col3", k).trim());
|
||||||
map.put("fieldperSubFallingHead", fieldperSubFallingHead);
|
|
||||||
map.put("fieldperSubWaterLoose", excelWp.get("col4", k).trim());
|
map.put("fieldperSubWaterLoose", excelWp.get("col4", k).trim());
|
||||||
map.put("fieldperSubQuantity", excelWp.get("col5", k).trim());
|
map.put("fieldperSubQuantity", excelWp.get("col5", k).trim());
|
||||||
map.put("fieldperSubPermeability", excelWp.get("col6", k).trim());
|
map.put("fieldperSubPermeability", excelWp.get("col6", k).trim());
|
||||||
|
|
@ -6576,25 +6477,25 @@ public class ManageExcelUploadProc03Controller {
|
||||||
List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
|
List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
|
||||||
int excelWpLength = excelWp.getLength();
|
int excelWpLength = excelWp.getLength();
|
||||||
for(int i=1; i < excelWpLength; i++) {
|
for(int i=1; i < excelWpLength; i++) {
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col0",i).trim(),"0123456789.-")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col0",i).trim(),"0123456789.")){
|
||||||
resultMsg = String.format(fmtMsg, i + "번째 심도(from)는 실수만 입력이 가능합니다.");
|
resultMsg = String.format(fmtMsg, i + "번째 심도(from)는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col1",i).trim(),"0123456789.-")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col1",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, i + "번째 심도(to)는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, i + "번째 심도(to)는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col4",i).trim(),"0123456789.-")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col4",i).trim(),"0123456789.")){
|
||||||
resultMsg = String.format(fmtMsg, i + "번째 함수비(%)는 실수만 입력이 가능합니다.");
|
resultMsg = String.format(fmtMsg, i + "번째 함수비(%)는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col5",i).trim(),"0123456789.-")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col5",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, i + "번째 비중은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, i + "번째 비중은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col6",i).trim(),"0123456789.-")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col6",i).trim(),"0123456789.")){
|
||||||
resultMsg = String.format(fmtMsg, i + "번째 액성한계(%)는 실수만 입력이 가능합니다.");
|
resultMsg = String.format(fmtMsg, i + "번째 액성한계(%)는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col7",i).trim(),"0123456789.-")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col7",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, i + "번째 소성지수는 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, i + "번째 소성지수는 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
if(!StringUtil.containsCharOnly(excelWp.get("col9",i).trim(),"0123456789.-")){
|
if(!StringUtil.containsCharOnly(excelWp.get("col9",i).trim(),"0123456789.")){
|
||||||
resultMsg += String.format(fmtMsg, i + "번째 단위중량(KN/㎥)은 실수만 입력이 가능합니다.");
|
resultMsg += String.format(fmtMsg, i + "번째 단위중량(KN/㎥)은 실수만 입력이 가능합니다.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -6934,15 +6835,6 @@ public class ManageExcelUploadProc03Controller {
|
||||||
String _holeEl = excel1Wp.get("col2",11).trim(); //표고
|
String _holeEl = excel1Wp.get("col2",11).trim(); //표고
|
||||||
String _holeWl = excel1Wp.get("col3",12).trim(); //지하수위
|
String _holeWl = excel1Wp.get("col3",12).trim(); //지하수위
|
||||||
String _holeWlUnit = excel1Wp.get("col2",12).trim(); //지하수위단위
|
String _holeWlUnit = excel1Wp.get("col2",12).trim(); //지하수위단위
|
||||||
String _holeWlExcept = excel1Wp.get("col12",12).trim(); //지하수위가 심도 이하이다 체크여부
|
|
||||||
|
|
||||||
boolean isHoleWlExcept = false;
|
|
||||||
if( _holeWlExcept != null && _holeWlExcept.equalsIgnoreCase("true") ) {
|
|
||||||
isHoleWlExcept = true;
|
|
||||||
_holeWl = "0";
|
|
||||||
_holeWlExcept = "Y";
|
|
||||||
}
|
|
||||||
|
|
||||||
String _holeTotalDepth = excel1Wp.get("col3",13).trim(); //굴진심도
|
String _holeTotalDepth = excel1Wp.get("col3",13).trim(); //굴진심도
|
||||||
String _holeCasingDepth = excel1Wp.get("col3",14).trim(); //케이싱심도
|
String _holeCasingDepth = excel1Wp.get("col3",14).trim(); //케이싱심도
|
||||||
if( _holeCasingDepth == null ) {
|
if( _holeCasingDepth == null ) {
|
||||||
|
|
@ -6957,11 +6849,7 @@ public class ManageExcelUploadProc03Controller {
|
||||||
|
|
||||||
String _holeBoringMachine = excel1Wp.get("col2",17).trim(); //시추장비
|
String _holeBoringMachine = excel1Wp.get("col2",17).trim(); //시추장비
|
||||||
String _holeLayerNum = excel1Wp.get("col2",15).trim(); //지층수
|
String _holeLayerNum = excel1Wp.get("col2",15).trim(); //지층수
|
||||||
String boringDirectionDegree = excel1Wp.get("col7",19).trim(); //시추방향 각도(_boringDirection 에 사용한다.)
|
String _boringDirection = excel1Wp.get("col2",19).trim()+"|"+excel1Wp.get("col7",19).trim(); //시추방향
|
||||||
if ("-".equals(boringDirectionDegree)) {
|
|
||||||
boringDirectionDegree = "-999";
|
|
||||||
}
|
|
||||||
String _boringDirection = excel1Wp.get("col2",19).trim()+"|"+boringDirectionDegree; //시추방향
|
|
||||||
System.out.println("시추방향 : " + excel1Wp.get("col2",19).trim());
|
System.out.println("시추방향 : " + excel1Wp.get("col2",19).trim());
|
||||||
String _holeType = "Boring"; //Boring
|
String _holeType = "Boring"; //Boring
|
||||||
|
|
||||||
|
|
@ -7217,7 +7105,6 @@ public class ManageExcelUploadProc03Controller {
|
||||||
params.put("HOLE_DATE_TO",_holeDateTo );
|
params.put("HOLE_DATE_TO",_holeDateTo );
|
||||||
params.put("HOLE_EL",_holeEl );
|
params.put("HOLE_EL",_holeEl );
|
||||||
params.put("HOLE_WL",_holeWlVal );
|
params.put("HOLE_WL",_holeWlVal );
|
||||||
params.put("HOLE_WL_EXCEPT",_holeWlExcept ); //지하수위가 심도 이하이다 체크여부
|
|
||||||
params.put("HOLE_TOTAL_DEPTH",_holeTotalDepth );
|
params.put("HOLE_TOTAL_DEPTH",_holeTotalDepth );
|
||||||
params.put("HOLE_CASING_DEPTH",_holeCasingDepth );
|
params.put("HOLE_CASING_DEPTH",_holeCasingDepth );
|
||||||
params.put("HOLE_DIA",_holeDia );
|
params.put("HOLE_DIA",_holeDia );
|
||||||
|
|
|
||||||
|
|
@ -545,15 +545,15 @@ function fn_grid_refresh(){
|
||||||
|
|
||||||
var kendoJQuery = jQuery.noConflict(); // web/js/tree/lib/jquery.js 와 kendoUI jquery.js의 충돌방지 변수
|
var kendoJQuery = jQuery.noConflict(); // web/js/tree/lib/jquery.js 와 kendoUI jquery.js의 충돌방지 변수
|
||||||
|
|
||||||
|
|
||||||
kendoJQuery(document).ready(function () {
|
kendoJQuery(document).ready(function () {
|
||||||
fn_onLoad();
|
fn_onLoad();
|
||||||
fn_kendoGrid();
|
fn_kendoGrid();
|
||||||
fn_kendoGridStyle();
|
fn_kendoGridStyle();
|
||||||
fn_setGridCombo();
|
fn_setGridCombo();
|
||||||
|
|
||||||
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
fn_setHeaderText(); //기준계 조회 해서 SetHeaderText
|
||||||
|
|
||||||
|
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
||||||
var dataSource = grid.dataSource;
|
var dataSource = grid.dataSource;
|
||||||
|
|
||||||
// 콤보박스 데이터 추출을 위한 refresh
|
// 콤보박스 데이터 추출을 위한 refresh
|
||||||
|
|
@ -635,7 +635,7 @@ function fn_grid_refresh(){
|
||||||
{ field: "fieldpresInspectedBy", title: "조사자", attributes: { style:"text-align: left" }, template: "<div class='td-data'>#= (fieldpresInspectedBy == null) ? '' : fieldpresInspectedBy #</div>" },
|
{ field: "fieldpresInspectedBy", title: "조사자", attributes: { style:"text-align: left" }, template: "<div class='td-data'>#= (fieldpresInspectedBy == null) ? '' : fieldpresInspectedBy #</div>" },
|
||||||
{ field: "fieldpresCheckedBy", title: "검수자", attributes: { style:"text-align: left" }, template: "<div class='td-data'>#= (fieldpresCheckedBy == null) ? '' : fieldpresCheckedBy #</div>" },
|
{ field: "fieldpresCheckedBy", title: "검수자", attributes: { style:"text-align: left" }, template: "<div class='td-data'>#= (fieldpresCheckedBy == null) ? '' : fieldpresCheckedBy #</div>" },
|
||||||
{ field: "fieldpresDepth", title: "심도(m)", editor: chooseEditor, attributes: { style:"text-align: right" }, template: "<div class='td-data'>#= (fieldpresDepth == null) ? '0' : fieldpresDepth #</div>" },
|
{ field: "fieldpresDepth", title: "심도(m)", editor: chooseEditor, attributes: { style:"text-align: right" }, template: "<div class='td-data'>#= (fieldpresDepth == null) ? '0' : fieldpresDepth #</div>" },
|
||||||
{ field: "fieldpresKp", title: "변형계수(${fieldpresKp})", format: "{0:G}", editor: chooseEditor, attributes: { style:"text-align: right" }, template: "<div class='td-data'>#= (fieldpresKp == null) ? '0' : fieldpresKp #</div>" },
|
{ field: "fieldpresKp", title: "변형계수(${fieldpresKp})", editor: chooseEditor, attributes: { style:"text-align: right" }, template: "<div class='td-data'>#= (fieldpresKp == null) ? '0' : fieldpresKp #</div>" },
|
||||||
{ field: "fieldpresEp", title: "탄성계수(${fieldpresEp})", editor: chooseEditor, attributes: { style:"text-align: right" }, template: "<div class='td-data'>#= (fieldpresEp == null) ? '0' : fieldpresEp #</div>" },
|
{ field: "fieldpresEp", title: "탄성계수(${fieldpresEp})", editor: chooseEditor, attributes: { style:"text-align: right" }, template: "<div class='td-data'>#= (fieldpresEp == null) ? '0' : fieldpresEp #</div>" },
|
||||||
],
|
],
|
||||||
scrollable: true,
|
scrollable: true,
|
||||||
|
|
|
||||||
|
|
@ -623,12 +623,12 @@ window.onload = function() {
|
||||||
//시추방향
|
//시추방향
|
||||||
if('${mapHeader.boringDirection}' != null && '${mapHeader.boringDirection}' != ''){
|
if('${mapHeader.boringDirection}' != null && '${mapHeader.boringDirection}' != ''){
|
||||||
var boring = "${mapHeader.boringDirection}".split("|");
|
var boring = "${mapHeader.boringDirection}".split("|");
|
||||||
var boringDegree = boring[1] === '-999' ? '-' : boring[1];
|
|
||||||
var consFrmSel = document.getElementById("BORING_DIRECTION_SEL");
|
var consFrmSel = document.getElementById("BORING_DIRECTION_SEL");
|
||||||
var consFrmInput = document.getElementById("BORING_DIRECTION_INPUT");
|
var consFrmInput = document.getElementById("BORING_DIRECTION_INPUT");
|
||||||
|
|
||||||
fn_SelectedData(consFrmSel,boring[0]);
|
fn_SelectedData(consFrmSel,boring[0]);
|
||||||
consFrmInput.value = boringDegree;
|
consFrmInput.value = boring[1];
|
||||||
|
|
||||||
if (boring[0] === "-") {
|
if (boring[0] === "-") {
|
||||||
consFrmInput.disabled = true;
|
consFrmInput.disabled = true;
|
||||||
|
|
@ -638,38 +638,6 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var input = document.getElementById('BORING_DIRECTION_INPUT');
|
|
||||||
|
|
||||||
// 1. 입력 제한
|
|
||||||
input.addEventListener("input", function () {
|
|
||||||
let val = this.value;
|
|
||||||
|
|
||||||
if (!/^[-]?\d*\.?\d*$/.test(val)) {
|
|
||||||
this.value = val.slice(0, -1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 2. ↑ ↓ 키
|
|
||||||
input.addEventListener("keydown", function (e) {
|
|
||||||
if (e.key === "ArrowUp" || e.key === "ArrowDown") {
|
|
||||||
e.preventDefault();
|
|
||||||
|
|
||||||
let val = this.value.trim();
|
|
||||||
|
|
||||||
if (val === "-" || val === "") {
|
|
||||||
val = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
let num = parseFloat(val);
|
|
||||||
if (isNaN(num)) num = 0;
|
|
||||||
|
|
||||||
if (e.key === "ArrowUp") num += 1;
|
|
||||||
else num -= 1;
|
|
||||||
|
|
||||||
this.value = num;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
consFrmSel.addEventListener("change", function() {
|
consFrmSel.addEventListener("change", function() {
|
||||||
if (this.value === "-") {
|
if (this.value === "-") {
|
||||||
consFrmInput.disabled = true;
|
consFrmInput.disabled = true;
|
||||||
|
|
@ -1790,7 +1758,7 @@ function fn_HoleLoad(){
|
||||||
<select name="BORING_DIRECTION_SEL" id="BORING_DIRECTION_SEL" style="width:160px;" class="selectbox">
|
<select name="BORING_DIRECTION_SEL" id="BORING_DIRECTION_SEL" style="width:160px;" class="selectbox">
|
||||||
${map.CM010}
|
${map.CM010}
|
||||||
</select>
|
</select>
|
||||||
<input name="BORING_DIRECTION_INPUT" id="BORING_DIRECTION_INPUT" type="text" style="width:160px;" maxlength="40" value="${mapHeader.boringDirectionInput}"/> ˚
|
<input name="BORING_DIRECTION_INPUT" id="BORING_DIRECTION_INPUT" type="number" style="width:160px;" maxlength="40" value="${mapHeader.boringDirectionInput}"/> ˚
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
||||||
|
|
@ -128,12 +128,11 @@
|
||||||
<td class="td_line" style="text-align: center;"><input type="radio" name="value3" id="value3" value="흑" /> 흑<br /> <input type="radio" name="value3" id="value3" value="갈" /> 갈<br /> <input type="radio" name="value3" id="value3" value="적" /> 적<br /> <input type="radio" name="value3" id="value3" value="황" /> 황<br /> <input type="radio" name="value3" id="value3" value="녹" /> 녹<br /> <input type="radio" name="value3" id="value3" value="청" /> 청<br /> <input type="radio" name="value3"
|
<td class="td_line" style="text-align: center;"><input type="radio" name="value3" id="value3" value="흑" /> 흑<br /> <input type="radio" name="value3" id="value3" value="갈" /> 갈<br /> <input type="radio" name="value3" id="value3" value="적" /> 적<br /> <input type="radio" name="value3" id="value3" value="황" /> 황<br /> <input type="radio" name="value3" id="value3" value="녹" /> 녹<br /> <input type="radio" name="value3" id="value3" value="청" /> 청<br /> <input type="radio" name="value3"
|
||||||
id="value3" value="백" /> 백</td>
|
id="value3" value="백" /> 백</td>
|
||||||
</tr>
|
</tr>
|
||||||
<%-- (2026.04.06/YJI) 값없음 체크 막기
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3" class="td_line" style="text-align: center;">
|
<td colspan="3" class="td_line" style="text-align: center;">
|
||||||
<input type="radio" name="value0" id="value0" value="-" /><label for="value0" > 값 없음( - )</label>
|
<input type="radio" name="value0" id="value0" value="-" /><label for="value0" > 값 없음( - )</label>
|
||||||
</td>
|
</td>
|
||||||
</tr> --%>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<div style="text-align: center; margin-top: 10px;">
|
<div style="text-align: center; margin-top: 10px;">
|
||||||
지층색 : <input style="ime-mode: active;" type="text" name="colorName" id="colorName" value="" /> <a href="#" onClick="fn_layerColorInput(); return false;"><img src="/web/images/btn_pop_input.png" /></a> <a href="#" onclick="fn_layerColorClear()"><img src="/web/images/btn_pop_refresh.png" /></a>
|
지층색 : <input style="ime-mode: active;" type="text" name="colorName" id="colorName" value="" /> <a href="#" onClick="fn_layerColorInput(); return false;"><img src="/web/images/btn_pop_input.png" /></a> <a href="#" onclick="fn_layerColorClear()"><img src="/web/images/btn_pop_refresh.png" /></a>
|
||||||
|
|
|
||||||
|
|
@ -1024,7 +1024,7 @@
|
||||||
culture: "ko-KR",
|
culture: "ko-KR",
|
||||||
format : "yyyyMMdd"
|
format : "yyyyMMdd"
|
||||||
});
|
});
|
||||||
$("#PROJECT_START_DATE").attr("readonly",false);
|
$("#PROJECT_START_DATE").attr("readonly",true);
|
||||||
</script>
|
</script>
|
||||||
</td>
|
</td>
|
||||||
<th class="td-head">공사종료일</th>
|
<th class="td-head">공사종료일</th>
|
||||||
|
|
@ -1036,7 +1036,7 @@
|
||||||
culture: "ko-KR",
|
culture: "ko-KR",
|
||||||
format : "yyyyMMdd"
|
format : "yyyyMMdd"
|
||||||
});
|
});
|
||||||
$("#PROJECT_END_DATE").attr("readonly",false);
|
$("#PROJECT_END_DATE").attr("readonly",true);
|
||||||
</script>
|
</script>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ var extFile = "<%=fileCmmn.getFileList("IMG")%>";
|
||||||
var extFileList = extFile.split(",");
|
var extFileList = extFile.split(",");
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!-- 기준계정보 가져오기 위한 Param -->
|
||||||
<jsp:include page="/web/common/referenceCodeCsDb.do?TEST_INFO_CODE=ROCK_TRIAXIAL&TYPEOFTEST=">
|
<jsp:include page="/web/common/referenceCodeCsDb.do?TEST_INFO_CODE=ROCK_TRIAXIAL&TYPEOFTEST=">
|
||||||
<jsp:param name="PROJECT_CODE" value="${params.PROJECT_CODE}" />
|
<jsp:param name="PROJECT_CODE" value="${params.PROJECT_CODE}" />
|
||||||
<jsp:param name="HOLE_CODE" value="${params.HOLE_CODE}" />
|
<jsp:param name="HOLE_CODE" value="${params.HOLE_CODE}" />
|
||||||
|
|
@ -19,6 +20,7 @@ var extFileList = extFile.split(",");
|
||||||
<jsp:param name="TYPEOFTEST" value="" />
|
<jsp:param name="TYPEOFTEST" value="" />
|
||||||
</jsp:include>
|
</jsp:include>
|
||||||
|
|
||||||
|
<!-- 사용자 정의 설정 시작 -->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var gridData = new Array(); //데이터 배열객체
|
var gridData = new Array(); //데이터 배열객체
|
||||||
|
|
||||||
|
|
@ -28,7 +30,7 @@ function fn_MakeData(){
|
||||||
|
|
||||||
title = [
|
title = [
|
||||||
{"TITLE1" : "시험횟수" , "TITLE2" : "" },
|
{"TITLE1" : "시험횟수" , "TITLE2" : "" },
|
||||||
{"TITLE1" : "심도" , "TITLE2" : "From(m)" },
|
{"TITLE1" : "심도" , "TITLE2" : "From(m)" },
|
||||||
{"TITLE1" : "심도" , "TITLE2" : "To(m)" },
|
{"TITLE1" : "심도" , "TITLE2" : "To(m)" },
|
||||||
{"TITLE1" : "내부마찰각(Φ, °)" , "TITLE2" : "" },
|
{"TITLE1" : "내부마찰각(Φ, °)" , "TITLE2" : "" },
|
||||||
{"TITLE1" : "점착력(c,MPa)" , "TITLE2" : "" },
|
{"TITLE1" : "점착력(c,MPa)" , "TITLE2" : "" },
|
||||||
|
|
@ -46,6 +48,7 @@ function fn_MakeData(){
|
||||||
{"TITLE1" : "150" , "TITLE2" : "구속압(σ3,MPa)" },
|
{"TITLE1" : "150" , "TITLE2" : "구속압(σ3,MPa)" },
|
||||||
{"TITLE1" : "150" , "TITLE2" : "최대압축강도(σ1,MPa)"},
|
{"TITLE1" : "150" , "TITLE2" : "최대압축강도(σ1,MPa)"},
|
||||||
{"TITLE1" : "비고" , "TITLE2" : "" }
|
{"TITLE1" : "비고" , "TITLE2" : "" }
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
//title
|
//title
|
||||||
|
|
@ -77,8 +80,10 @@ function fn_MakeData(){
|
||||||
|
|
||||||
//----------------------- 기타 -----------------------
|
//----------------------- 기타 -----------------------
|
||||||
|
|
||||||
|
|
||||||
//저장
|
//저장
|
||||||
function fn_save(rUrl){
|
function fn_save(rUrl){
|
||||||
|
|
||||||
// ----------------------- kendoGrid XML 구조저장 시작 -----------------------
|
// ----------------------- kendoGrid XML 구조저장 시작 -----------------------
|
||||||
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
||||||
var dataSource = grid.dataSource;
|
var dataSource = grid.dataSource;
|
||||||
|
|
@ -87,7 +92,18 @@ function fn_save(rUrl){
|
||||||
var kendoRowCount = dataSource.view().length; // 가로(행) 갯수
|
var kendoRowCount = dataSource.view().length; // 가로(행) 갯수
|
||||||
var kendoColCount = grid.columns.length; // 세로(열) 갯수
|
var kendoColCount = grid.columns.length; // 세로(열) 갯수
|
||||||
var kendoStartIndex = 3;
|
var kendoStartIndex = 3;
|
||||||
var dynamicColCount = kendoColCount - kendoStartIndex; // 실제 데이터 열 수
|
|
||||||
|
//변경여부 확인
|
||||||
|
/* if(rUrl == ""){
|
||||||
|
var dirty = $.grep(data, function(item) {
|
||||||
|
return item.dirty;
|
||||||
|
});
|
||||||
|
if (dirty.length === 0) {
|
||||||
|
alert("변경된 자료가 없습니다");
|
||||||
|
fn_progressbarHideKendo();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} */
|
||||||
|
|
||||||
//숫자체크
|
//숫자체크
|
||||||
var colInfo = {
|
var colInfo = {
|
||||||
|
|
@ -116,10 +132,9 @@ function fn_save(rUrl){
|
||||||
}
|
}
|
||||||
|
|
||||||
//비고 입력체크
|
//비고 입력체크
|
||||||
for(var i=1; i <= dynamicColCount; i++){
|
for(var i=1; i <= Math.floor(kendoColCount/2); i++){
|
||||||
var remarkVal = data[18]["VALUE" + i];
|
if(gridData['18']['VALUE'+i] == " " || dataSource._data[18]["VALUE"+i] == " "){
|
||||||
if(remarkVal === undefined || remarkVal === null || String(remarkVal).trim() === ""){
|
alert("비고를 입력해주세요");
|
||||||
alert(i + "번째 시험의 비고를 입력해주세요.");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -129,41 +144,47 @@ function fn_save(rUrl){
|
||||||
|
|
||||||
for(var i=0; i<kendoRowCount; i++){
|
for(var i=0; i<kendoRowCount; i++){
|
||||||
var row = data[i];
|
var row = data[i];
|
||||||
|
|
||||||
m = m + "<data>";
|
m = m + "<data>";
|
||||||
|
|
||||||
for(var j=kendoStartIndex; j<kendoColCount; j++){
|
for(var j=kendoStartIndex; j<kendoColCount; j++){
|
||||||
var column = grid.columns[j];
|
var column = grid.columns[j];
|
||||||
var dataField = column.field;
|
var dataField = column.field;
|
||||||
|
//var data = grid.dataSource._data;
|
||||||
|
//var data = grid.dataSource.options.data[j];
|
||||||
|
|
||||||
m = m + "<"+dataField+">" + isNumNullBlank(row[ dataField ]) + "</"+dataField+">";
|
m = m + "<"+dataField+">" + isNumNullBlank(row[ dataField ]) + "</"+dataField+">";
|
||||||
|
|
||||||
}
|
}
|
||||||
m = m + "<COLUMN>" + row.COLUMN + "</COLUMN>";
|
m = m + "<COLUMN>" + row.COLUMN + "</COLUMN>";
|
||||||
m = m + "</data>";
|
m = m + "</data>";
|
||||||
|
|
||||||
}
|
}
|
||||||
var e = "</changedData>";
|
var e = "</changedData>";
|
||||||
var strData = s+m+e;
|
var strData = s+m+e;
|
||||||
// ----------------------- kendoGrid XML 구조저장 끝 -----------------------
|
// ----------------------- kendoGrid XML 구조저장 끝 -----------------------
|
||||||
|
|
||||||
var tri_code = prevRtriCode;
|
var tri_code = prevRtriCode;
|
||||||
|
var re_tri_code = prevRtriCode;
|
||||||
|
|
||||||
// [수정] 삼축압축은 그래프 1개만 업로드하므로 1번만 체크
|
// 2019.10.10 이미지 업로드 필수 수정
|
||||||
if (dynamicColCount > 0) {
|
var fileImgID = "GRAPH_IMAGE_"+prevRtriCode;
|
||||||
var fileImgID = "GRAPH_IMAGE_" + tri_code;
|
var fileImg = $("#GRAPH_IMAGE_"+prevRtriCode).val();
|
||||||
var fileImg = $("#" + fileImgID).val();
|
var fileImg_bk = $("#OLD_GRAPH_IMAGE_"+prevRtriCode).val();
|
||||||
var fileImg_bk = $("#OLD_GRAPH_IMAGE_" + tri_code).val();
|
const fileImgCheck = fileImg === "" || fileImg === "null" || fileImg == null;
|
||||||
|
const fileImg_bkCheck = fileImg_bk === "" || fileImg_bk === "null" || fileImg_bk == null;
|
||||||
|
|
||||||
const fileImgCheck = fileImg === "" || fileImg === "null" || fileImg == null;
|
if(fileImg_bkCheck === false){
|
||||||
const fileImg_bkCheck = fileImg_bk === "" || fileImg_bk === "null" || fileImg_bk == null;
|
if(fileImgCheck === false){
|
||||||
|
//첨부파일이 있을경우 확장자 체크
|
||||||
if(fileImg_bkCheck === false){
|
fn_fileTotalCheck(fileImgID);
|
||||||
if(fileImgCheck === false){
|
|
||||||
fn_fileTotalCheck(fileImgID);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(fileImg_bkCheck === true){
|
if(fileImg_bkCheck === true){
|
||||||
if(fileImgCheck === true){
|
if(fileImgCheck === true){
|
||||||
alert("삼축압축시험결과 그래프 (1회) 업로드는 필수입니다.");
|
alert("그래프 업로드는 필수입니다.");
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -173,12 +194,11 @@ function fn_save(rUrl){
|
||||||
var param_code = "?REPORT_TYPE=CH&PROJECT_CODE="+projectCode+"&HOLE_CODE="+holeCode;
|
var param_code = "?REPORT_TYPE=CH&PROJECT_CODE="+projectCode+"&HOLE_CODE="+holeCode;
|
||||||
var dbUrl = "/web/input/rockTriaxialDb.do"+param_code+"&srhRTRI_CODE="+$("#RTRICODE").val();
|
var dbUrl = "/web/input/rockTriaxialDb.do"+param_code+"&srhRTRI_CODE="+$("#RTRICODE").val();
|
||||||
|
|
||||||
document.getElementById("PROJECT_CODE").value = projectCode;
|
$("#PROJECT_CODE").val('<c:out value='${params.PROJECT_CODE}'/>');
|
||||||
document.getElementById("HOLE_CODE").value = holeCode;
|
$("#HOLE_CODE").val('<c:out value='${params.HOLE_CODE}'/>');
|
||||||
document.getElementById("RTRI_CODE").value = tri_code;
|
$("#RTRI_CODE").val(tri_code);
|
||||||
document.getElementById("SAMPLE_CNT").value = document.getElementById("SAMPLECNT").value;
|
$("#SAMPLE_CNT").val($("#SAMPLECNT").val());
|
||||||
document.getElementById("TOTALCNT").value = kendoColCount - 1; // 서버 호환성 유지
|
$("#TOTALCNT").val(kendoColCount - 1);
|
||||||
document.getElementById("rowDelFileArr").value = rowDelFileArr;
|
|
||||||
|
|
||||||
fn_submitAll(dbUrl, rUrl, strData, document.frmTri);
|
fn_submitAll(dbUrl, rUrl, strData, document.frmTri);
|
||||||
}
|
}
|
||||||
|
|
@ -186,6 +206,7 @@ function fn_save(rUrl){
|
||||||
//kendoGrid submitAll
|
//kendoGrid submitAll
|
||||||
function fn_submitAll(strUrl, rUrl, strData, frm) {
|
function fn_submitAll(strUrl, rUrl, strData, frm) {
|
||||||
document.getElementById("dataAll").value = "<changedData>"+strData+"</changedData>";
|
document.getElementById("dataAll").value = "<changedData>"+strData+"</changedData>";
|
||||||
|
|
||||||
var $form = $(frm);
|
var $form = $(frm);
|
||||||
$form.append("<input type=\"hidden\" name=\"rUrl\" id=\"rUrl\" value=\""+rUrl+"\"/>");
|
$form.append("<input type=\"hidden\" name=\"rUrl\" id=\"rUrl\" value=\""+rUrl+"\"/>");
|
||||||
frm.action = strUrl;
|
frm.action = strUrl;
|
||||||
|
|
@ -195,10 +216,23 @@ function fn_submitAll(strUrl, rUrl, strData, frm) {
|
||||||
|
|
||||||
//시료번호 change
|
//시료번호 change
|
||||||
function fn_Reload(value){
|
function fn_Reload(value){
|
||||||
|
|
||||||
|
/* if(Is_GridUpdate(gridRoot) || Is_FileUpdateOne("GRAPH_IMAGE_",prevRtriCode,"FILE_DEL_")){
|
||||||
|
if(confirm("변경내용이 있습니다. 저장하시겠습니까? ")){
|
||||||
|
fn_save_loading('');
|
||||||
|
return false;
|
||||||
|
}else{
|
||||||
|
fn_select(value);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
fn_select(value);
|
||||||
|
} */
|
||||||
fn_select(value);
|
fn_select(value);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function fn_select(value){
|
function fn_select(value){
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
url: "/rockTriaxialSelect.do",
|
url: "/rockTriaxialSelect.do",
|
||||||
|
|
@ -213,21 +247,28 @@ function fn_select(value){
|
||||||
console.log(e);
|
console.log(e);
|
||||||
},
|
},
|
||||||
complete:function(e){
|
complete:function(e){
|
||||||
|
//file
|
||||||
|
//fn_setFile();
|
||||||
|
|
||||||
kendoJQuery("#kictGrid").kendoGrid('destroy').empty();
|
kendoJQuery("#kictGrid").kendoGrid('destroy').empty();
|
||||||
fn_kendoGrid();
|
fn_kendoGrid();
|
||||||
fn_kendoGridStyle();
|
fn_kendoGridStyle();
|
||||||
|
|
||||||
|
//전역변수 변경
|
||||||
prevRuniCode = $("#RUNICODE").val();
|
prevRuniCode = $("#RUNICODE").val();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//ajax 리턴
|
//ajax 리턴
|
||||||
function fn_SelectPointLoad(data){
|
function fn_SelectPointLoad(data){
|
||||||
$("head").append(data);
|
$("head").append(data);
|
||||||
|
|
||||||
// [중요] 기존 구형 서버 HTML이 덮어쓰여도 피할 수 있도록 독립적인 렌더링 함수 사용
|
//file
|
||||||
renderDynamicFileUI();
|
fn_setFile();
|
||||||
|
|
||||||
|
//전역변수 변경
|
||||||
prevRtriCode = $("#RTRICODE").val();
|
prevRtriCode = $("#RTRICODE").val();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -235,19 +276,25 @@ function fn_SelectPointLoad(data){
|
||||||
function fn_addCode(){
|
function fn_addCode(){
|
||||||
var samplecnt = $("#SAMPLECNT").val();
|
var samplecnt = $("#SAMPLECNT").val();
|
||||||
var cnt = 0;
|
var cnt = 0;
|
||||||
|
|
||||||
if(samplecnt == "" || samplecnt == "0"){
|
if(samplecnt == "" || samplecnt == "0"){
|
||||||
$("#SAMPLECNT").val(1);
|
$("#SAMPLECNT").val(1);
|
||||||
cnt = 1;
|
cnt = 1;
|
||||||
}else{
|
}else{
|
||||||
cnt = Number(samplecnt);
|
cnt = Number(samplecnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//add option
|
||||||
$("#RTRICODE").html("");
|
$("#RTRICODE").html("");
|
||||||
var projectCode = '<c:out value='${params.PROJECT_CODE}'/>';
|
var projectCode = '<c:out value='${params.PROJECT_CODE}'/>';
|
||||||
var holeCode = '<c:out value='${params.HOLE_CODE}'/>';
|
var holeCode = '<c:out value='${params.HOLE_CODE}'/>';
|
||||||
for(var i=0; i<cnt; i++){
|
for(var i=0; i<cnt; i++){
|
||||||
$("#RTRICODE").append("<option value = \"" + holeCode+"T"+fn_setZero(i+1)+"\">"+holeCode.substr(5,5)+"T"+fn_setZero(i+1)+"</option>");
|
$("#RTRICODE").append("<option value = \"" + holeCode+"T"+fn_setZero(i+1)+"\">"+holeCode.substr(5,5)+"T"+fn_setZero(i+1)+"</option>");
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#RTRICODE option:eq(0)").attr("selected", "selected");
|
$("#RTRICODE option:eq(0)").attr("selected", "selected");
|
||||||
|
|
||||||
|
//data init
|
||||||
fn_Reload($("#RTRICODE").val());
|
fn_Reload($("#RTRICODE").val());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -260,59 +307,19 @@ function fn_onLoad(){
|
||||||
//selectbox 전역변수
|
//selectbox 전역변수
|
||||||
var prevRtriCode = '<c:out value='${params.RTRI_CODE}'/>';
|
var prevRtriCode = '<c:out value='${params.RTRI_CODE}'/>';
|
||||||
|
|
||||||
// [신규] 삼축압축은 그래프 1개만! (1회)가 고정으로 적힌 완벽한 HTML 생성기
|
//열 추가
|
||||||
function buildFileHtml(img1, loc1) {
|
|
||||||
var rtriCode = $("#RTRICODE").val();
|
|
||||||
var html = '';
|
|
||||||
html += '<div id="TR_GRAPH_IMAGE_' + rtriCode + '" class="table-file-wrapper">';
|
|
||||||
html += ' <div class="contents-title-1depth marT20"><span>삼축압축시험결과 그래프 (1회)를(을) 입력하세요. (최대크기: 500KB) 파일은 <span class="textR">JPEG 또는 PNG</span> 형태로 올려주셔야 합니다.</span></div>';
|
|
||||||
html += ' <table class="table table-file marT0" data-target="form-file"><colgroup><col width="160px" /><col width="auto" /></colgroup>';
|
|
||||||
html += ' <tbody>';
|
|
||||||
html += ' <input type="hidden" id="OLD_GRAPH_IMAGE_' + rtriCode + '" name="OLD_GRAPH_IMAGE_' + rtriCode + '" value="' + img1 + '" />';
|
|
||||||
html += ' <input type="hidden" id="OLD_GRAPH_LOCAL_' + rtriCode + '" name="OLD_GRAPH_LOCAL_' + rtriCode + '" value="' + loc1 + '" />';
|
|
||||||
html += ' <tr><td class="td-head">삼축압축시험결과<br>그래프 입력</td>';
|
|
||||||
html += ' <td class="plus_file"><input type="file" id="GRAPH_IMAGE_' + rtriCode + '" name="GRAPH_IMAGE_' + rtriCode + '" class="gg-input file-input" />';
|
|
||||||
html += ' <ul class="content-ul-list marT5"><li>시험결과 그래프는 <span class="textR">필수입력</span>입니다.</li><li>파일크기는 "최대 500KB" 입니다.</li></ul></td></tr>';
|
|
||||||
|
|
||||||
if(img1 && img1 !== '' && img1 !== 'null'){
|
|
||||||
html += ' <tr><td class="td-head">첨부된 파일정보</td><td class="plus_img">';
|
|
||||||
html += ' <div class="marB10"><b>첨부파일</b> : <a href="#" onClick=\'fn_imgPlus("/files/web/${params.REPORT_TYPE}/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_TRIAXIAL/' + img1 + '", event.x,event.y); return false;\'>' + loc1 + '</a>';
|
|
||||||
html += ' <label class="gg-checkbox gg-checkbox-outline marL20"><input type="checkbox" id="FILE_DEL_' + rtriCode + '" name="FILE_DEL_' + rtriCode + '" value="Y" class="checkbox_T" /> 파일삭제<span></span></label></div>';
|
|
||||||
html += ' <a href="#" onClick=\'fn_imgPlus("/files/web/${params.REPORT_TYPE}/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_TRIAXIAL/' + img1 + '", event.x,event.y); return false;\'><img src="/files/web/${params.REPORT_TYPE}/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_TRIAXIAL/' + img1 + '" class="file-preview-img" /></a>';
|
|
||||||
html += ' </td></tr>';
|
|
||||||
}
|
|
||||||
html += ' </tbody></table></div>';
|
|
||||||
return html;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 구형 서버 통신 찌꺼기를 날리고 새로 그리는 무적 렌더링 함수
|
|
||||||
function renderDynamicFileUI(){
|
|
||||||
var rtriCode = $("#RTRICODE").val();
|
|
||||||
|
|
||||||
// 서버가 방금 그린 DOM에서 기존 파일 정보 픽업 (AJAX에서 넘어온 데이터 살리기)
|
|
||||||
var img1 = $("#OLD_GRAPH_IMAGE_" + rtriCode).val() || '';
|
|
||||||
var loc1 = $("#OLD_GRAPH_LOCAL_" + rtriCode).val() || '';
|
|
||||||
|
|
||||||
$("#table_file").empty(); // 기존 껍데기 폼 완벽 초기화
|
|
||||||
|
|
||||||
var cnt = Number($("#GridRowCnt").val());
|
|
||||||
if (isNaN(cnt) || cnt <= 0) {
|
|
||||||
$("#GridRowCnt").val(0);
|
|
||||||
return; // 0일 경우 화면에 아무것도 그리지 않고 종료
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1 이상이면 무조건 1개의 폼만 렌더링
|
|
||||||
$("#table_file").html(buildFileHtml(img1, loc1));
|
|
||||||
}
|
|
||||||
|
|
||||||
//열 추가 (+ 버튼)
|
|
||||||
function fn_add(){
|
function fn_add(){
|
||||||
|
|
||||||
|
// kendo 열 추가
|
||||||
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
||||||
var dataSource = grid.dataSource;
|
var dataSource = grid.dataSource;
|
||||||
var data = dataSource.data();
|
var data = dataSource.data();
|
||||||
|
|
||||||
var nowColLength = grid.columns.length - 3; // 타이틀 수 제외
|
var nowColLength = grid.columns.length - 3; // 타이틀 수 제외
|
||||||
var nowRowLength = grid.dataSource.options.data.length
|
var nowRowLength = grid.dataSource.options.data.length
|
||||||
var nowColCount = nowColLength + 1;
|
var nowColCount = nowColLength + 1;
|
||||||
|
var nowRowCount = nowRowLength;
|
||||||
|
|
||||||
var nowColCountVALUE = 'VALUE' + nowColCount;
|
var nowColCountVALUE = 'VALUE' + nowColCount;
|
||||||
|
|
||||||
if($("#RTRICODE").val() == "" || $("#RTRICODE").val() == null){
|
if($("#RTRICODE").val() == "" || $("#RTRICODE").val() == null){
|
||||||
|
|
@ -322,34 +329,34 @@ function fn_add(){
|
||||||
|
|
||||||
$("#GridRowCnt").val(nowColCount);
|
$("#GridRowCnt").val(nowColCount);
|
||||||
|
|
||||||
|
var data = dataSource.data();
|
||||||
|
var maxRcSeq = 0;
|
||||||
|
for(var i=0; i<data.length; i++){
|
||||||
|
if (data[i].RT_SEQ > maxRcSeq){
|
||||||
|
maxRcSeq = data[i].RT_SEQ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var RT_SEQ = nowColLength + 1;
|
var RT_SEQ = nowColLength + 1;
|
||||||
|
|
||||||
// [수정] DOM 폼 동기화 제어
|
//첨부추가
|
||||||
fn_ColAddInput(nowColCount);
|
//fn_gridAddRow("TR_GRAPH_IMAGE_","GRAPH_IMAGE_", RT_SEQ, "삼축시험결과 그래프를 입력하세요. (최대크기: 500KB)");
|
||||||
|
|
||||||
myFields = grid.dataSource.options.schema.model.fields;
|
myFields = grid.dataSource.options.schema.model.fields;
|
||||||
|
|
||||||
for (var i = 0; i < 1; i++) {
|
for (var i = 0; i < 1; i++) {
|
||||||
|
|
||||||
var row = data[i];
|
var row = data[i];
|
||||||
var optionAdd = {"editable": true, "defaultValue": 0, nullable: true};
|
var fieldsAdd = new Object();
|
||||||
|
var optionAdd = new Object();
|
||||||
|
|
||||||
// 중복 컬럼 추가 방지
|
grid.setOptions({
|
||||||
var isExist = false;
|
columns: grid.columns.concat([
|
||||||
for(var c=0; c<grid.columns.length; c++) {
|
{ field: nowColCountVALUE, editor: chooseEditor }
|
||||||
if (grid.columns[c].field === nowColCountVALUE) {
|
]),
|
||||||
isExist = true; break;
|
});
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isExist) {
|
for (var j = 0; j < nowRowCount; j++) {
|
||||||
grid.setOptions({
|
|
||||||
columns: grid.columns.concat([
|
|
||||||
{ field: nowColCountVALUE, editor: chooseEditor }
|
|
||||||
]),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var j = 0; j < nowRowLength; j++) {
|
|
||||||
dataSource.data()[j].set(nowColCountVALUE, 0);
|
dataSource.data()[j].set(nowColCountVALUE, 0);
|
||||||
if (grid.dataSource.options.data[j].COLUMN === "TEST_ORDER") {
|
if (grid.dataSource.options.data[j].COLUMN === "TEST_ORDER") {
|
||||||
dataSource.data()[j].set(nowColCountVALUE, RT_SEQ)
|
dataSource.data()[j].set(nowColCountVALUE, RT_SEQ)
|
||||||
|
|
@ -357,85 +364,94 @@ function fn_add(){
|
||||||
dataSource.data()[j].set(nowColCountVALUE, " ")
|
dataSource.data()[j].set(nowColCountVALUE, " ")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
optionAdd = {"editable": true, "defaultValue": 0, nullable: true};
|
||||||
|
fieldsAdd[nowColCountVALUE] = optionAdd;
|
||||||
myFields[nowColCountVALUE] = optionAdd;
|
myFields[nowColCountVALUE] = optionAdd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 열 삭제 (- 버튼)
|
//열 삭제
|
||||||
function removeItemAt() {
|
function removeItemAt() {
|
||||||
|
|
||||||
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
||||||
|
var dataSource = grid.dataSource;
|
||||||
|
var data = dataSource.data();
|
||||||
|
|
||||||
var nowColLength = grid.columns.length - 3; // 타이틀 수 제외
|
var nowColLength = grid.columns.length - 3; // 타이틀 수 제외
|
||||||
|
var nowRowLength = grid.dataSource.options.data.length
|
||||||
|
var nowColCount = nowColLength + 1;
|
||||||
|
var nowRowCount = nowRowLength;
|
||||||
|
|
||||||
|
if(nowColLength == 0){return false;} // 20211219 ssheo 행 (-) 차단
|
||||||
|
|
||||||
if($("#RTRICODE").val() == "" || $("#RTRICODE").val() == null){
|
if($("#RTRICODE").val() == "" || $("#RTRICODE").val() == null){
|
||||||
alert("시료번호를 선택하세요.");
|
alert("시료번호를 선택하세요.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 0개까지 지울 수 있도록 허용 (최소 0개 유지)
|
if( nowColCount == 2 ) {
|
||||||
if( nowColLength <= 0 ) {
|
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
|
nowColCount = nowColLength - 1
|
||||||
grid.columns.pop();
|
grid.columns.pop();
|
||||||
kendoJQuery("#kictGrid").find("tr td:nth-last-child(1)").each(function(){
|
kendoJQuery("#kictGrid").find("tr td:nth-last-child(1)").each(function(){
|
||||||
kendoJQuery(this).remove();
|
kendoJQuery(this).remove();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var nowColCount = nowColLength - 1;
|
|
||||||
$("#GridRowCnt").val(nowColCount);
|
$("#GridRowCnt").val(nowColCount);
|
||||||
|
|
||||||
// [수정] DOM 폼 동기화 제어
|
|
||||||
fn_ColAddInput(nowColCount);
|
|
||||||
|
|
||||||
var dataItem = grid._data[nowColCount-1];
|
var dataItem = grid._data[nowColCount-1];
|
||||||
if(dataItem) {
|
return dataItem.dirty = true;
|
||||||
return dataItem.dirty = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//그리드 col수 이벤트 (텍스트박스 숫자 입력 시)
|
//그리드 col수 이벤트
|
||||||
function fn_rowChange(){
|
function fn_rowChange(){
|
||||||
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
||||||
var dataSource = grid.dataSource;
|
var dataSource = grid.dataSource;
|
||||||
|
|
||||||
|
// 1. 현재 정보 파악
|
||||||
var currentColumns = grid.columns.slice(); // 기존 컬럼 배열 복사
|
var currentColumns = grid.columns.slice(); // 기존 컬럼 배열 복사
|
||||||
var baseColCount = 3; // TITLE1, TITLE2, COLUMN (고정 컬럼 수)
|
var baseColCount = 3; // TITLE1, TITLE2, COLUMN (고정 컬럼 수)
|
||||||
var nowColLength = currentColumns.length - baseColCount;
|
var nowColLength = currentColumns.length - baseColCount;
|
||||||
|
|
||||||
var cnt = Number($("#GridRowCnt").val());
|
var cnt = Number($("#GridRowCnt").val()) || 0;
|
||||||
|
|
||||||
if(isNaN(cnt) || cnt < 0){
|
cnt = Number(cnt); // number로 형변환
|
||||||
|
if(cnt == null || cnt == ""){
|
||||||
cnt = 0;
|
cnt = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cnt >= 0){
|
if(cnt>=0){
|
||||||
if($("#RTRICODE").val() == "" || $("#RTRICODE").val() == null){
|
if($("#RTRICODE").val() == "" || $("#RTRICODE").val() == null){
|
||||||
alert("시료번호를 선택하세요.");
|
alert("시료번호를 선택하세요.");
|
||||||
$("#GridRowCnt").val("0");
|
$("#GridRowCnt").val("0");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 폼 추가삭제 로직 (0이더라도 깨끗하게 지우기 위해 호출)
|
if(cnt == 0){
|
||||||
fn_ColAddInput(cnt);
|
alert("1건 이상 입력하세요.");
|
||||||
|
$("#GridRowCnt").val(1);
|
||||||
|
$("#GridRowCnt").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
myFields = grid.dataSource.options.schema.model.fields;
|
||||||
|
|
||||||
|
// 2. 컬럼 배열 재구성
|
||||||
if (cnt > nowColLength) {
|
if (cnt > nowColLength) {
|
||||||
|
// 추가가 필요한 만큼 루프
|
||||||
var addCount = cnt - nowColLength;
|
var addCount = cnt - nowColLength;
|
||||||
for (var i = 1; i <= addCount; i++) {
|
for (var i = 1; i <= addCount; i++) {
|
||||||
var newIdx = nowColLength + i;
|
var newIdx = nowColLength + i;
|
||||||
var colExists = false;
|
currentColumns.push({
|
||||||
for(var c=0; c<currentColumns.length; c++) {
|
field: "VALUE" + newIdx,
|
||||||
if(currentColumns[c].field === "VALUE" + newIdx) {
|
editor: chooseEditor
|
||||||
colExists = true; break;
|
});
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!colExists) {
|
|
||||||
currentColumns.push({
|
|
||||||
field: "VALUE" + newIdx,
|
|
||||||
editor: chooseEditor
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if (cnt < nowColLength) {
|
} else if (cnt < nowColLength) {
|
||||||
|
// 삭제가 필요한 만큼 제거 (최소 1개 유지 조건 등 추가 가능)
|
||||||
var removeCount = nowColLength - cnt;
|
var removeCount = nowColLength - cnt;
|
||||||
for (var i = 0; i < removeCount; i++) {
|
for (var i = 0; i < removeCount; i++) {
|
||||||
currentColumns.pop();
|
currentColumns.pop();
|
||||||
|
|
@ -444,16 +460,20 @@ function fn_rowChange(){
|
||||||
return; // 변경 사항 없음
|
return; // 변경 사항 없음
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 3. setOptions를 단 한 번 호출하여 그리드 전체 갱신
|
||||||
|
// 이 과정에서 Kendo가 HTML과 내부 객체를 모두 동기화합니다.
|
||||||
grid.setOptions({
|
grid.setOptions({
|
||||||
columns: currentColumns
|
columns: currentColumns
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 4. 데이터 세팅 (필요시)
|
||||||
|
// setOptions 후에는 데이터 소스를 다시 체크하여 신규 컬럼에 기본값 할당
|
||||||
var newData = dataSource.data();
|
var newData = dataSource.data();
|
||||||
for (var j = 0; j < newData.length; j++) {
|
for (var j = 0; j < newData.length; j++) {
|
||||||
for (var k = 1; k <= cnt; k++) {
|
for (var k = 1; k <= cnt; k++) {
|
||||||
var colName = "VALUE" + k;
|
var colName = "VALUE" + k;
|
||||||
if (newData[j][colName] === undefined) {
|
if (newData[j][colName] === undefined) {
|
||||||
newData[j].set(colName, 0);
|
newData[j].set(colName, 0); // 기본값 0 세팅
|
||||||
if (newData[j].COLUMN === "TEST_ORDER") newData[j].set(colName, k);
|
if (newData[j].COLUMN === "TEST_ORDER") newData[j].set(colName, k);
|
||||||
if (newData[j].COLUMN === "RTRI_REMARK") newData[j].set(colName, " ");
|
if (newData[j].COLUMN === "RTRI_REMARK") newData[j].set(colName, " ");
|
||||||
}
|
}
|
||||||
|
|
@ -461,26 +481,6 @@ function fn_rowChange(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// [수정] 폼 추가/삭제 제어 (0이면 삭제, 1이상이면 무조건 1개만 렌더링 유지)
|
|
||||||
function fn_ColAddInput(cnt){
|
|
||||||
var rtriCode = $("#RTRICODE").val();
|
|
||||||
|
|
||||||
// 이중 생성 막기 위해 구형 찌꺼기 완벽 제거
|
|
||||||
$("#table_file").children().not(".table-file-wrapper").remove();
|
|
||||||
|
|
||||||
if (cnt <= 0) {
|
|
||||||
// 0이면 무조건 삭제 (기존 파일 정보 지우기 배열에 저장)
|
|
||||||
var oldImg = $("#OLD_GRAPH_IMAGE_" + rtriCode).val();
|
|
||||||
if(oldImg) rowDelFileArr += oldImg + ",";
|
|
||||||
$("#table_file").empty();
|
|
||||||
} else {
|
|
||||||
// 1이상이면 무조건 폼은 딱 1개만 존재해야 함!
|
|
||||||
if ($("#TR_GRAPH_IMAGE_" + rtriCode).length === 0) {
|
|
||||||
$("#table_file").append(buildFileHtml('', ''));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 도움말 시작 */
|
/* 도움말 시작 */
|
||||||
function fn_help_tour_confirm(){
|
function fn_help_tour_confirm(){
|
||||||
var answer;
|
var answer;
|
||||||
|
|
@ -555,16 +555,25 @@ function fn_openClipReport2(table,project,hole,sample,etc1,etc2,gbn){
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!-- header start-->
|
||||||
<c:import url="/manage/includeTopInput.do" />
|
<c:import url="/manage/includeTopInput.do" />
|
||||||
|
<!-- header end-->
|
||||||
|
|
||||||
|
<!-- 페이지 컨테이너 시작 -->
|
||||||
<section class="page-container">
|
<section class="page-container">
|
||||||
|
|
||||||
<div class="page-content-wrapper">
|
<div class="page-content-wrapper">
|
||||||
|
|
||||||
|
<!-- 서브메뉴 시작 -->
|
||||||
<c:import url="/include_left_tree_input.do" />
|
<c:import url="/include_left_tree_input.do" />
|
||||||
|
<!-- 서브메뉴 끝 -->
|
||||||
|
|
||||||
|
<!-- 컨텐츠 시작 -->
|
||||||
<div class="page-content">
|
<div class="page-content">
|
||||||
|
|
||||||
<div class="page-content-inner">
|
<div class="page-content-inner">
|
||||||
|
|
||||||
|
<!-- 카테고리 시작 -->
|
||||||
<div class="category-wrapper">
|
<div class="category-wrapper">
|
||||||
<ul class="page-category">
|
<ul class="page-category">
|
||||||
<li class="category-item" id="category_1dep"></li>
|
<li class="category-item" id="category_1dep"></li>
|
||||||
|
|
@ -574,17 +583,23 @@ function fn_openClipReport2(table,project,hole,sample,etc1,etc2,gbn){
|
||||||
<a href="javascript:;" class="btn btn-help start-tour" onClick="fn_help_tour_confirm();">도움말</a>
|
<a href="javascript:;" class="btn btn-help start-tour" onClick="fn_help_tour_confirm();">도움말</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 카테고리 끝 -->
|
||||||
|
|
||||||
<h1 class="page-title-1depth"><span>삼축압축</span></h1>
|
<h1 class="page-title-1depth"><span>삼축압축</span></h1>
|
||||||
|
|
||||||
|
<!-- 내용 시작 -->
|
||||||
<div class="content-wrapper">
|
<div class="content-wrapper">
|
||||||
|
|
||||||
|
<!-- contents start-->
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
|
|
||||||
|
<!-- 기본정보 출력 -->
|
||||||
<c:import url="/web/include/includeProjectRockInfo.do" />
|
<c:import url="/web/include/includeProjectRockInfo.do" />
|
||||||
|
|
||||||
<div class="table-top-control">
|
<div class="table-top-control">
|
||||||
<div class="table-info-group form-inline" data-target="grid-row-cnt">
|
<div class="table-info-group form-inline" data-target="grid-row-cnt">
|
||||||
<input type="text" name="GridRowCnt" id="GridRowCnt" value="${fn:length(items)}" maxlength="2" onkeypress="fn_gridAddEnterKey(event);return isNumberKey(event);" onChange="fn_rowChange()"
|
<input type="text" name="GridRowCnt" id="GridRowCnt" value="${fn:length(items)}" maxlength="2" onkeypress="fn_gridAddEnterKey(event);return isNumberKey(event);" onChange="fn_rowChange()"
|
||||||
|
onkeyup="fn_rowChange()"
|
||||||
onclick="this.select()"
|
onclick="this.select()"
|
||||||
onfocus="this.select()"
|
onfocus="this.select()"
|
||||||
class="gg-input row-control-input" />
|
class="gg-input row-control-input" />
|
||||||
|
|
@ -622,6 +637,7 @@ function fn_openClipReport2(table,project,hole,sample,etc1,etc2,gbn){
|
||||||
|
|
||||||
var nowColumnIndex = colIdx - 2;
|
var nowColumnIndex = colIdx - 2;
|
||||||
var nowColLength = grid.columns.length - 2; // 타이틀 수 제외
|
var nowColLength = grid.columns.length - 2; // 타이틀 수 제외
|
||||||
|
fn_kendoFileDisplayCol(nowColumnIndex, nowColLength, "TR_GRAPH_IMAGE_", 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
fn_kendoGridStyle();
|
fn_kendoGridStyle();
|
||||||
|
|
@ -821,32 +837,42 @@ function fn_openClipReport2(table,project,hole,sample,etc1,etc2,gbn){
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 첨부파일 -->
|
||||||
<form id="frmTri" name="frmTri" enctype="multipart/form-data">
|
<form id="frmTri" name="frmTri" enctype="multipart/form-data">
|
||||||
|
|
||||||
<div id="table_file" class="table-file">
|
<div id="table_file">
|
||||||
<c:if test="${fn:length(items) > 0 and params.RTRI_CODE != null and params.RTRI_CODE != ''}">
|
|
||||||
<div id="TR_GRAPH_IMAGE_${params.RTRI_CODE}" class="table-file-wrapper">
|
|
||||||
<div class="contents-title-1depth marT20"><span>삼축압축시험결과 그래프 (1회)를(을) 입력하세요. (최대크기: 500KB) 파일은 <span class='textR'>JPEG 또는 PNG</span> 형태로 올려주셔야 합니다.</span></div>
|
|
||||||
<table class="table table-file marT0" data-target="form-file">
|
|
||||||
<colgroup>
|
|
||||||
<col width="160px" />
|
|
||||||
<col width="auto" />
|
|
||||||
</colgroup>
|
|
||||||
<tbody>
|
|
||||||
<input type="hidden" id="OLD_GRAPH_IMAGE_${params.RTRI_CODE}" name="OLD_GRAPH_IMAGE_${params.RTRI_CODE}" value="${items[0].GRAPH_IMAGE}" />
|
|
||||||
<input type="hidden" id="OLD_GRAPH_LOCAL_${params.RTRI_CODE}" name="OLD_GRAPH_LOCAL_${params.RTRI_CODE}" value="${items[0].GRAPH_LOCAL}" />
|
|
||||||
|
|
||||||
|
<c:if test="${params.RTRI_CODE != null and params.RTRI_CODE != '' and params.RTRI_CODE != 'null'}">
|
||||||
|
|
||||||
|
<div class="contents-title-1depth marT20"><span>삼축압축시험결과 그래프를 입력하세요. (최대크기: 500KB)</span></div>
|
||||||
|
|
||||||
|
<table class="table table-file marT0" data-target="form-file">
|
||||||
|
<colgroup>
|
||||||
|
<col width="160px" />
|
||||||
|
<col width="auto" />
|
||||||
|
</colgroup>
|
||||||
|
<tbody id="TR_GRAPH_IMAGE_${params.RTRI_CODE}">
|
||||||
|
|
||||||
|
<input type="hidden" id="OLD_GRAPH_IMAGE_${params.RTRI_CODE}" name="OLD_GRAPH_IMAGE_${params.RTRI_CODE}" value="${items[0].GRAPH_IMAGE}" />
|
||||||
|
<input type="hidden" id="OLD_GRAPH_LOCAL_${params.RTRI_CODE}" name="OLD_GRAPH_LOCAL_${params.RTRI_CODE}" value="${items[0].GRAPH_LOCAL}" />
|
||||||
|
|
||||||
|
<c:if test="${items[0].GRAPH_LOCAL != null and items[0].GRAPH_LOCAL != '' and items[0].GRAPH_LOCAL != 'null'}">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="td-head">삼축압축시험결과<br>그래프 입력</td>
|
<td class="td-head">
|
||||||
|
첨부파일입력
|
||||||
|
</td>
|
||||||
<td class="plus_file">
|
<td class="plus_file">
|
||||||
<input type="file" id="GRAPH_IMAGE_${params.RTRI_CODE}" name="GRAPH_IMAGE_${params.RTRI_CODE}" class="gg-input file-input" />
|
<input type="file" id="GRAPH_IMAGE_${params.RTRI_CODE}" name="GRAPH_IMAGE_${params.RTRI_CODE}" class="gg-input file-input" />
|
||||||
<ul class="content-ul-list marT5">
|
<ul class="content-ul-list marT5">
|
||||||
<li>시험결과 그래프는 <span class="textR">필수입력</span>입니다.</li>
|
<li>
|
||||||
<li>파일크기는 "최대 500KB" 입니다.</li>
|
시험결과 그래프는 <span class="textR">필수입력</span>입니다.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
파일크기는 "최대 500KB" 입니다.
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<c:if test="${items[0].GRAPH_IMAGE != '' and items[0].GRAPH_IMAGE != null and items[0].GRAPH_IMAGE != 'null'}">
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="td-head">첨부된 파일정보</td>
|
<td class="td-head">첨부된 파일정보</td>
|
||||||
<td class="plus_img">
|
<td class="plus_img">
|
||||||
|
|
@ -863,30 +889,56 @@ function fn_openClipReport2(table,project,hole,sample,etc1,etc2,gbn){
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
</tbody>
|
|
||||||
</table>
|
<c:if test="${items[0].GRAPH_LOCAL == null or items[0].GRAPH_LOCAL == '' or items[0].GRAPH_LOCAL == 'null'}">
|
||||||
</div>
|
<tr>
|
||||||
|
<td class="td-head">
|
||||||
|
첨부파일입력
|
||||||
|
</td>
|
||||||
|
<td class="plus_file" colspan="3">
|
||||||
|
<input type="file" id="GRAPH_IMAGE_${params.RTRI_CODE}" name="GRAPH_IMAGE_${params.RTRI_CODE}" class="gg-input file-input" />
|
||||||
|
<ul class="content-ul-list marT5">
|
||||||
|
<li>
|
||||||
|
시험결과 그래프는 <span class="textR">필수입력</span>입니다.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
파일크기는 "최대 500KB" 입니다.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</c:if>
|
</c:if>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="hidden_params">
|
<input type="hidden" id="PROJECT_CODE" name="PROJECT_CODE" value='<c:out value='${params.PROJECT_CODE}'/>' />
|
||||||
<input type="hidden" id="PROJECT_CODE" name="PROJECT_CODE" value='<c:out value="${params.PROJECT_CODE}"/>' />
|
<input type="hidden" id="HOLE_CODE" name="HOLE_CODE" value='<c:out value='${params.HOLE_CODE}'/>' />
|
||||||
<input type="hidden" id="HOLE_CODE" name="HOLE_CODE" value='<c:out value="${params.HOLE_CODE}"/>' />
|
<input type="hidden" id="RTRI_CODE" name="RTRI_CODE" />
|
||||||
<input type="hidden" id="RTRI_CODE" name="RTRI_CODE" />
|
<input type="hidden" id="SAMPLE_CNT" name="SAMPLE_CNT" />
|
||||||
<input type="hidden" id="SAMPLE_CNT" name="SAMPLE_CNT" />
|
<input type="hidden" id="TOTALCNT" name="TOTALCNT" value="" />
|
||||||
<input type="hidden" id="TOTALCNT" name="TOTALCNT" value="" />
|
<input type="hidden" id="dataAll" name="dataAll" />
|
||||||
<input type="hidden" id="dataAll" name="dataAll" />
|
|
||||||
<input type="hidden" id="rowDelFileArr" name="rowDelFileArr" />
|
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<!-- contents end-->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 내용 끝 -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<!-- 컨텐츠 끝 -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
<!-- 페이지 컨테이너 끝 -->
|
||||||
|
|
||||||
|
<!-- footer start-->
|
||||||
<c:import url="/com/includeFooterInput.do?projectCode=${params.PROJECT_CODE}" />
|
<c:import url="/com/includeFooterInput.do?projectCode=${params.PROJECT_CODE}" />
|
||||||
|
<!-- footer end-->
|
||||||
|
|
|
||||||
|
|
@ -164,17 +164,17 @@ function fn_save(rUrl){
|
||||||
}else if(keys[k] == "sampleDepthTo"){
|
}else if(keys[k] == "sampleDepthTo"){
|
||||||
change_data += "<" + keys[k] + ">" + row.sampleDepthTo + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.sampleDepthTo + "</" + keys[k] + ">\r\n";
|
||||||
}else if(keys[k] == "sampleLl"){
|
}else if(keys[k] == "sampleLl"){
|
||||||
change_data += "<" + keys[k] + ">" + getNoDataValue(row.sampleLl) + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.sampleLl + "</" + keys[k] + ">\r\n";
|
||||||
}else if(keys[k] == "sampleDesc"){
|
}else if(keys[k] == "sampleDesc"){
|
||||||
change_data += "<" + keys[k] + ">" + row.sampleDesc + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.sampleDesc + "</" + keys[k] + ">\r\n";
|
||||||
}else if(keys[k] == "sampleWc"){
|
}else if(keys[k] == "sampleWc"){
|
||||||
change_data += "<" + keys[k] + ">" + getNoDataValue(row.sampleWc) + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.sampleWc + "</" + keys[k] + ">\r\n";
|
||||||
}else if(keys[k] == "datetime"){
|
}else if(keys[k] == "datetime"){
|
||||||
change_data += "<" + keys[k] + ">" + row.datetime + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.datetime + "</" + keys[k] + ">\r\n";
|
||||||
}else if(keys[k] == "sampleGs"){
|
}else if(keys[k] == "sampleGs"){
|
||||||
change_data += "<" + keys[k] + ">" + getNoDataValue(row.sampleGs) + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.sampleGs + "</" + keys[k] + ">\r\n";
|
||||||
}else if(keys[k] == "samplePi"){
|
}else if(keys[k] == "samplePi"){
|
||||||
change_data += "<" + keys[k] + ">" + getNoDataValue(row.samplePi) + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.samplePi + "</" + keys[k] + ">\r\n";
|
||||||
}else if(keys[k] == "sampleNumber"){
|
}else if(keys[k] == "sampleNumber"){
|
||||||
change_data += "<" + keys[k] + ">" + row.sampleNumber + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.sampleNumber + "</" + keys[k] + ">\r\n";
|
||||||
}else if(keys[k] == "sampleShape"){
|
}else if(keys[k] == "sampleShape"){
|
||||||
|
|
@ -184,7 +184,7 @@ function fn_save(rUrl){
|
||||||
}else if(keys[k] == "projectCode"){
|
}else if(keys[k] == "projectCode"){
|
||||||
change_data += "<" + keys[k] + ">" + row.projectCode + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.projectCode + "</" + keys[k] + ">\r\n";
|
||||||
}else if(keys[k] == "sampleRd"){
|
}else if(keys[k] == "sampleRd"){
|
||||||
change_data += "<" + keys[k] + ">" + getNoDataValue(row.sampleRd) + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.sampleRd + "</" + keys[k] + ">\r\n";
|
||||||
}else if(keys[k] == "sampleDepthFrom"){
|
}else if(keys[k] == "sampleDepthFrom"){
|
||||||
change_data += "<" + keys[k] + ">" + row.sampleDepthFrom + "</" + keys[k] + ">\r\n";
|
change_data += "<" + keys[k] + ">" + row.sampleDepthFrom + "</" + keys[k] + ">\r\n";
|
||||||
}
|
}
|
||||||
|
|
@ -373,12 +373,12 @@ function fn_add(){
|
||||||
"sampleDepthTo" : "0",
|
"sampleDepthTo" : "0",
|
||||||
"sampleSamplingMethod" : "",
|
"sampleSamplingMethod" : "",
|
||||||
"sampleShape" : "",
|
"sampleShape" : "",
|
||||||
"sampleWc" : "-",
|
"sampleWc" : "0",
|
||||||
"sampleGs" : "-",
|
"sampleGs" : "0",
|
||||||
"sampleLl" : "-",
|
"sampleLl" : "0",
|
||||||
"samplePi" : "-",
|
"samplePi" : "0",
|
||||||
"sampleDesc" : "-",
|
"sampleDesc" : "-",
|
||||||
"sampleRd" : "-",
|
"sampleRd" : "0",
|
||||||
"sampleUscs" : "",
|
"sampleUscs" : "",
|
||||||
"sampleCode" : "",
|
"sampleCode" : "",
|
||||||
};
|
};
|
||||||
|
|
@ -759,8 +759,7 @@ function fn_grid_refresh(){
|
||||||
var nullTypeString = 'test';
|
var nullTypeString = 'test';
|
||||||
|
|
||||||
if( gridData.length == 1 && gridData[0].sampleNumber == '-999' ) {
|
if( gridData.length == 1 && gridData[0].sampleNumber == '-999' ) {
|
||||||
// gridData = undefined;
|
gridData = undefined;
|
||||||
gridData = '-';
|
|
||||||
|
|
||||||
// table-top-control 클래스를 가진 첫 번째 요소 찾기
|
// table-top-control 클래스를 가진 첫 번째 요소 찾기
|
||||||
var tableTopControlElement = document.getElementsByClassName('table-top-control')[0];
|
var tableTopControlElement = document.getElementsByClassName('table-top-control')[0];
|
||||||
|
|
@ -801,12 +800,12 @@ function fn_grid_refresh(){
|
||||||
sampleDepthTo: { type: "number" },
|
sampleDepthTo: { type: "number" },
|
||||||
sampleSamplingMethod: { type: "string" },
|
sampleSamplingMethod: { type: "string" },
|
||||||
sampleShape: { type: "string" },
|
sampleShape: { type: "string" },
|
||||||
sampleWc: { type: "number", defaultValue: "-"},
|
sampleWc: { type: "number",},
|
||||||
sampleGs: { type: "number", defaultValue: "-"},
|
sampleGs: { type: "number" },
|
||||||
sampleLl: { type: "number", defaultValue: "-" },
|
sampleLl: { type: "number" },
|
||||||
samplePi: { type: "number", defaultValue: "-" },
|
samplePi: { type: "number" },
|
||||||
sampleDesc: { type: "string" },
|
sampleDesc: { type: "string" },
|
||||||
sampleRd: { type: "number", defaultValue: "-" },
|
sampleRd: { type: "number" },
|
||||||
sampleUscs: { type: "string" },
|
sampleUscs: { type: "string" },
|
||||||
sampleCode: { type: "string", editable: false },
|
sampleCode: { type: "string", editable: false },
|
||||||
}
|
}
|
||||||
|
|
@ -858,46 +857,44 @@ function fn_grid_refresh(){
|
||||||
editor: comboEditor2,
|
editor: comboEditor2,
|
||||||
template: "#=getTeacherName2((sampleShape == null) ? ' ' : sampleShape)#",
|
template: "#=getTeacherName2((sampleShape == null) ? ' ' : sampleShape)#",
|
||||||
},
|
},
|
||||||
{ field: "sampleGs",
|
{ field: "sampleGs", title: "함수비(%)<div style='margin-top: 8px; color: red; font-weight: 200;'>값 없을 시<br />-999 입력</div>", editor: chooseEditor, width:100, attributes: { style:"text-align: right" },
|
||||||
title: "함수비(%)<div style='margin-top: 8px; color: red; font-weight: 200;'>값 없을 시<br />- 입력</div>",
|
|
||||||
editor: chooseEditor,
|
|
||||||
width:100,
|
|
||||||
attributes: { style:"text-align: right" },
|
|
||||||
format:"{0:n2}",
|
format:"{0:n2}",
|
||||||
template: function (dataItem) {
|
template: function (dataItem) {
|
||||||
if (dataItem.sampleGs == null || dataItem.sampleGs == -999) return "-";
|
if (dataItem.sampleGs == null)
|
||||||
return kendo.toString(dataItem.sampleGs, "n2");
|
dataItem._set("sampleGs", "0");
|
||||||
|
else
|
||||||
|
return dataItem.sampleGs;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ field: "sampleWc", title: "비중<div style='margin-top: 8px; color: red; font-weight: 200;'>값 없을 시<br />- 입력</div>", editor: chooseEditor, width:100, attributes: { style:"text-align: right" },
|
{ field: "sampleWc", title: "비중<div style='margin-top: 8px; color: red; font-weight: 200;'>값 없을 시<br />-999 입력</div>", editor: chooseEditor, width:100, attributes: { style:"text-align: right" },
|
||||||
template: function (dataItem) {
|
template: function (dataItem) {
|
||||||
if (dataItem.sampleWc == null || dataItem.sampleWc == -999)
|
if (dataItem.sampleWc == null)
|
||||||
return "-";
|
dataItem._set("sampleWc", "0");
|
||||||
else
|
else
|
||||||
return dataItem.sampleWc;
|
return dataItem.sampleWc;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ field: "sampleLl", title: "액성한계(%)<div style='margin-top: 8px; color: red; font-weight: 200;'>값 없을 시<br />- 입력</div>", editor: chooseEditor, width:100, attributes: { style:"text-align: right" },
|
{ field: "sampleLl", title: "액성한계(%)<div style='margin-top: 8px; color: red; font-weight: 200;'>값 없을 시<br />-999 입력</div>", editor: chooseEditor, width:100, attributes: { style:"text-align: right" },
|
||||||
template: function (dataItem) {
|
template: function (dataItem) {
|
||||||
if (dataItem.sampleLl == null || dataItem.sampleLl == -999)
|
if (dataItem.sampleLl == null)
|
||||||
return "-";
|
dataItem._set("sampleLl", "0");
|
||||||
else
|
else
|
||||||
return dataItem.sampleLl;
|
return dataItem.sampleLl;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ field: "samplePi", title: "소성지수<div style='margin-top: 8px; color: red; font-weight: 200;'>값 없을 시<br />- 입력</div>", editor: chooseEditor, width:100, attributes: { style:"text-align: right" },
|
{ field: "samplePi", title: "소성지수<div style='margin-top: 8px; color: red; font-weight: 200;'>값 없을 시<br />-999 입력</div>", editor: chooseEditor, width:100, attributes: { style:"text-align: right" },
|
||||||
template: function (dataItem) {
|
template: function (dataItem) {
|
||||||
if (dataItem.samplePi == null || dataItem.samplePi == -999)
|
if (dataItem.samplePi == null)
|
||||||
return "-";
|
dataItem._set("samplePi", "0");
|
||||||
else
|
else
|
||||||
return dataItem.samplePi;
|
return dataItem.samplePi;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ field: "sampleDesc", title: "비고", width:100, attributes: { style:"text-align: left" }, template: "<div class='td-data'>#= (sampleDesc == null) ? '0' : sampleDesc #</div>" },
|
{ field: "sampleDesc", title: "비고", width:100, attributes: { style:"text-align: left" }, template: "<div class='td-data'>#= (sampleDesc == null) ? '0' : sampleDesc #</div>" },
|
||||||
{ field: "sampleRd", title: "단위중량(${sampleUnit})<div style='margin-top: 8px; color: red; font-weight: 200;'>값 없을 시<br />- 입력</div>", editor: chooseEditor, width:140, attributes: { style:"text-align: right" },
|
{ field: "sampleRd", title: "단위중량(${sampleUnit})<div style='margin-top: 8px; color: red; font-weight: 200;'>값 없을 시<br />-999 입력</div>", editor: chooseEditor, width:140, attributes: { style:"text-align: right" },
|
||||||
template: function (dataItem) {
|
template: function (dataItem) {
|
||||||
if (dataItem.sampleRd == null || dataItem.sampleRd == -999)
|
if (dataItem.sampleRd == null)
|
||||||
return "-";
|
dataItem._set("sampleRd", "0");
|
||||||
else
|
else
|
||||||
return dataItem.sampleRd;
|
return dataItem.sampleRd;
|
||||||
}
|
}
|
||||||
|
|
@ -1063,8 +1060,7 @@ function fn_grid_refresh(){
|
||||||
|
|
||||||
switch (options.model.COLUMN) {
|
switch (options.model.COLUMN) {
|
||||||
default:
|
default:
|
||||||
// numericEditor(container, options);
|
numericEditor(container, options);
|
||||||
numericEditor2(container, options);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,124 +61,132 @@ function fn_MakeData(){
|
||||||
//저장
|
//저장
|
||||||
function fn_save(rUrl){
|
function fn_save(rUrl){
|
||||||
|
|
||||||
// ----------------------- kendoGrid XML 구조저장 시작 -----------------------
|
// ----------------------- kendoGrid XML 구조저장 시작 -----------------------
|
||||||
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
||||||
var dataSource = grid.dataSource;
|
var dataSource = grid.dataSource;
|
||||||
var data = dataSource.data();
|
var data = dataSource.data();
|
||||||
|
|
||||||
var kendoRowCount = dataSource.view().length; // 가로(행) 갯수
|
var kendoRowCount = dataSource.view().length; // 가로(행) 갯수
|
||||||
var kendoColCount = grid.columns.length; // 전체 컬럼 수 (고정3 + 데이터n)
|
var kendoColCount = grid.columns.length; // 세로(열) 갯수
|
||||||
var kendoStartIndex = 3; // VALUE1이 시작되는 인덱스
|
var kendoStartIndex = 3;
|
||||||
var dynamicColCount = kendoColCount - kendoStartIndex; // 실제 시험 횟수(데이터 열 개수)
|
|
||||||
|
|
||||||
// 숫자체크 (유효성 검사)
|
//변경여부 확인
|
||||||
var colInfo = {
|
/* if(rUrl == ""){
|
||||||
"1_idx":1 , "1_title" :"From", "1_start_num":10, "1_end_num":4,
|
var dirty = $.grep(data, function(item) {
|
||||||
"2_idx":2 , "2_title" :"심도(to)", "2_start_num":10, "2_end_num":4,
|
return item.dirty;
|
||||||
"3_idx":3 , "3_title" :"시료직경", "3_start_num":10, "3_end_num":8,
|
});
|
||||||
"4_idx":4 , "4_title" :"시료길이", "4_start_num":10, "4_end_num":8,
|
if (dirty.length === 0) {
|
||||||
"5_idx":5 , "5_title" :"비중", "5_start_num":10, "5_end_num":8,
|
alert("변경된 자료가 없습니다");
|
||||||
"6_idx":6 , "6_title" :"탄성파속도(p파속도)", "6_start_num":10, "6_end_num":8,
|
fn_progressbarHideKendo();
|
||||||
"7_idx":7 , "7_title" :"탄성파속도(s파속도)", "7_start_num":10, "7_end_num":8,
|
return false;
|
||||||
"8_idx":8 , "8_title" :"흡수율", "8_start_num":10, "8_end_num":8,
|
}
|
||||||
"9_idx":9 , "9_title" :"일축압축강도", "9_start_num":10, "9_end_num":10,
|
} */
|
||||||
"11_idx":11, "11_title":"포아송비", "11_start_num":10, "11_end_num":8
|
|
||||||
};
|
|
||||||
|
|
||||||
if(fn_saveNumberCheckKendo("COL", dataSource, grid, "grid1", 3, colInfo, grid.columns, true, "rockUniaxial") == false){
|
//숫자체크
|
||||||
$("#RUNICODE").val(prevRuniCode);
|
var colInfo = {
|
||||||
return false;
|
"1_idx":1 , "1_title" :"From", "1_start_num":10, "1_end_num":4,
|
||||||
}
|
"2_idx":2 , "2_title" :"심도(to)", "2_start_num":10, "2_end_num":4,
|
||||||
|
"3_idx":3 , "3_title" :"시료직경", "3_start_num":10, "3_end_num":8,
|
||||||
|
"4_idx":4 , "4_title" :"시료길이", "4_start_num":10, "4_end_num":8,
|
||||||
|
"5_idx":5 , "5_title" :"비중", "5_start_num":10, "5_end_num":8,
|
||||||
|
"6_idx":6 , "6_title" :"탄성파속도(p파속도)", "6_start_num":10, "6_end_num":8,
|
||||||
|
"7_idx":7 , "7_title" :"탄성파속도(s파속도)", "7_start_num":10, "7_end_num":8,
|
||||||
|
"8_idx":8 , "8_title" :"흡수율", "8_start_num":10, "8_end_num":8,
|
||||||
|
"9_idx":9 , "9_title" :"일축압축강도", "9_start_num":10, "9_end_num":10,
|
||||||
|
"11_idx":11, "11_title":"포아송비", "11_start_num":10, "11_end_num":8
|
||||||
|
};
|
||||||
|
|
||||||
// [수정] 비고(Remark) 입력체크 (12번 인덱스가 '비고' 행)
|
if(fn_saveNumberCheckKendo("COL", dataSource, grid, "grid1", 3, colInfo, grid.columns, true, "rockUniaxial") == false){
|
||||||
// i는 1부터 실제 데이터 열의 개수(dynamicColCount)까지 돕니다.
|
$("#RUNICODE").val(prevRuniCode);
|
||||||
for(var i=1; i <= dynamicColCount; i++){
|
return false;
|
||||||
var remarkVal = data[12]["VALUE" + i];
|
}
|
||||||
|
|
||||||
// 값이 없거나, null이거나, 공백만 있는 경우 체크
|
//비고 입력체크
|
||||||
if(remarkVal === undefined || remarkVal === null || String(remarkVal).trim() === ""){
|
for(var i=1; i <= Math.floor(kendoColCount/2); i++){
|
||||||
alert(i + "번째 시험의 비고를 입력해주세요.");
|
if(gridData['12']['VALUE'+i] == " " && dataSource._data[12]["VALUE"+i] == " "){
|
||||||
return false;
|
alert("비고를 입력해주세요");
|
||||||
}
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var s = "<changedData>";
|
|
||||||
var m = "";
|
|
||||||
|
|
||||||
for(var i=0; i<kendoRowCount; i++){
|
var s = "<changedData>";
|
||||||
var row = data[i];
|
var m = "";
|
||||||
|
|
||||||
m = m + "<data>";
|
for(var i=0; i<kendoRowCount; i++){
|
||||||
|
var row = data[i];
|
||||||
|
|
||||||
for(var j=kendoStartIndex; j<kendoColCount; j++){
|
m = m + "<data>";
|
||||||
var column = grid.columns[j];
|
|
||||||
var dataField = column.field;
|
|
||||||
|
|
||||||
m = m + "<"+dataField+">" + isNumNullBlank(row[ dataField ]) + "</"+dataField+">";
|
for(var j=kendoStartIndex; j<kendoColCount; j++){
|
||||||
}
|
var column = grid.columns[j];
|
||||||
m = m + "<COLUMN>" + row.COLUMN + "</COLUMN>";
|
var dataField = column.field;
|
||||||
m = m + "</data>";
|
|
||||||
}
|
|
||||||
var e = "</changedData>";
|
|
||||||
var strData = s+m+e;
|
|
||||||
// ----------------------- kendoGrid XML 구조저장 끝 -----------------------
|
|
||||||
|
|
||||||
var runi_code = prevRuniCode;
|
m = m + "<"+dataField+">" + isNumNullBlank(row[ dataField ]) + "</"+dataField+">";
|
||||||
var re_runi_code = prevRuniCode;
|
|
||||||
|
|
||||||
// 삭제 되는 시료에 대한 처리
|
}
|
||||||
if(Number(runi_code.substr(11)) > Number($("#SAMPLECNT").val())){
|
m = m + "<COLUMN>" + row.COLUMN + "</COLUMN>";
|
||||||
re_runi_code = "";
|
m = m + "</data>";
|
||||||
$("#table_file").html('');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 현재 선택된 열 인덱스 (파일 업로드 체크용)
|
}
|
||||||
var _seq = nowColumnIndex;
|
var e = "</changedData>";
|
||||||
|
var strData = s+m+e;
|
||||||
|
// ----------------------- kendoGrid XML 구조저장 끝 -----------------------
|
||||||
|
|
||||||
// 이미지 업로드 필수 체크 로직
|
var runi_code = prevRuniCode;
|
||||||
var testOrderVal = data[0]["VALUE" + _seq]; // 시험횟수 행의 값
|
var re_runi_code = prevRuniCode;
|
||||||
var fileImgID1 = "GRAPH_IMAGE1_" + testOrderVal;
|
|
||||||
var fileImgID2 = "GRAPH_IMAGE2_" + testOrderVal;
|
|
||||||
var fileImg1 = $("#GRAPH_IMAGE1_" + testOrderVal).val();
|
|
||||||
var fileImg2 = $("#GRAPH_IMAGE2_" + testOrderVal).val();
|
|
||||||
var fileImg_bk1 = $("#OLD_GRAPH_IMAGE1_" + testOrderVal).val();
|
|
||||||
var fileImg_bk2 = $("#OLD_GRAPH_IMAGE2_" + testOrderVal).val();
|
|
||||||
|
|
||||||
const fileImgCheck1 = fileImg1 == "" || fileImg1 === "null" || fileImg1 === null;
|
//삭제 되는 시료에 대한 처리
|
||||||
const fileImgCheck2 = fileImg2 == "" || fileImg2 === "null" || fileImg2 === null;
|
if(Number(runi_code.substr(11)) > Number($("#SAMPLECNT").val())){
|
||||||
const fileImgBkCheck1 = fileImg_bk1 == "" || fileImg_bk1 === "null" || fileImg_bk1 === null;
|
re_runi_code = "";
|
||||||
const fileImgBkCheck2 = fileImg_bk2 == "" || fileImg_bk2 === "null" || fileImg_bk2 === null;
|
$("#table_file").html('');
|
||||||
|
}
|
||||||
|
|
||||||
if(fileImgBkCheck1 === false || fileImgBkCheck2 === false){
|
var _seq = nowColumnIndex;
|
||||||
fn_fileTotalCheck(fileImgID1);
|
|
||||||
fn_fileTotalCheck(fileImgID2);
|
|
||||||
}
|
|
||||||
|
|
||||||
if( fileImgBkCheck1 && fileImgCheck1 ) {
|
// 2019.10.10 이미지 업로드 필수 수정
|
||||||
alert("파괴형태 그림 첨부는 필수입니다.");
|
var fileImgID1 = "GRAPH_IMAGE1_"+dataSource._data[0]["VALUE"+_seq];
|
||||||
return false;
|
var fileImgID2 = "GRAPH_IMAGE2_"+dataSource._data[0]["VALUE"+_seq];
|
||||||
} else if( fileImgBkCheck2 && fileImgCheck2 ) {
|
var fileImg1 = $("#GRAPH_IMAGE1_"+dataSource._data[0]["VALUE"+_seq]).val();
|
||||||
alert("Stress-Strain 그래프 첨부는 필수입니다.");
|
var fileImg2 = $("#GRAPH_IMAGE2_"+dataSource._data[0]["VALUE"+_seq]).val();
|
||||||
return false;
|
var fileImg_bk1 = $("#OLD_GRAPH_IMAGE1_"+dataSource._data[0]["VALUE"+_seq]).val();
|
||||||
}
|
var fileImg_bk2 = $("#OLD_GRAPH_IMAGE2_"+dataSource._data[0]["VALUE"+_seq]).val();
|
||||||
|
const fileImgCheck1 = fileImg1 == "" || fileImg1 === "null" || fileImg1 === null;
|
||||||
|
const fileImgCheck2 = fileImg2 == "" || fileImg2 === "null" || fileImg2 === null;
|
||||||
|
const fileImgBkCheck1 = fileImg_bk1 == "" || fileImg_bk1 === "null" || fileImg_bk1 === null;
|
||||||
|
const fileImgBkCheck2 = fileImg_bk2 == "" || fileImg_bk2 === "null" || fileImg_bk2 === null;
|
||||||
|
|
||||||
// 저장 파라미터 세팅
|
if(fileImgBkCheck1 === false || fileImgBkCheck2 === false){
|
||||||
var projectCode = '<c:out value='${params.PROJECT_CODE}'/>';
|
//첨부파일이 있을경우 확장자 체크
|
||||||
var holeCode = '<c:out value='${params.HOLE_CODE}'/>';
|
fn_fileTotalCheck(fileImgID1);
|
||||||
var param_code = "?REPORT_TYPE=CH&PROJECT_CODE="+projectCode+"&HOLE_CODE="+holeCode;
|
fn_fileTotalCheck(fileImgID2);
|
||||||
var dbUrl = "/web/input/rockUniaxialDb.do"+param_code+"&srhRUNI_CODE="+fn_isNull($("#RUNICODE").val());
|
}
|
||||||
|
|
||||||
document.getElementById("PROJECT_CODE").value = projectCode;
|
if( fileImgBkCheck1 && fileImgCheck1 ) {
|
||||||
document.getElementById("HOLE_CODE").value = holeCode;
|
alert("파괴형태 그림 첨부는 필수입니다.");
|
||||||
document.getElementById("RUNI_CODE").value = runi_code;
|
return false;
|
||||||
document.getElementById("SAMPLE_CNT").value = document.getElementById("SAMPLECNT").value;
|
} else if( fileImgBkCheck2 && fileImgCheck2 ) {
|
||||||
|
alert("Stress-Strain 그래프 첨부는 필수입니다.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
/* if(fileImgBkCheck1 === true || fileImgBkCheck2 === true){ */
|
||||||
|
/* } */
|
||||||
|
//그리드 저장
|
||||||
|
|
||||||
// [수정] TOTALCNT는 실제 데이터 열의 개수(dynamicColCount)로 설정
|
var projectCode = '<c:out value='${params.PROJECT_CODE}'/>';
|
||||||
//document.getElementById("TOTALCNT").value = dynamicColCount;
|
var holeCode = '<c:out value='${params.HOLE_CODE}'/>';
|
||||||
document.getElementById("TOTALCNT").value = kendoColCount - 1;
|
|
||||||
document.getElementById("rowDelFileArr").value = rowDelFileArr;
|
|
||||||
|
|
||||||
fn_submitAll(dbUrl, rUrl, strData, document.frmRock);
|
var param_code = "?REPORT_TYPE=CH&PROJECT_CODE="+projectCode+"&HOLE_CODE="+holeCode;
|
||||||
|
var dbUrl = "/web/input/rockUniaxialDb.do"+param_code+"&srhRUNI_CODE="+fn_isNull($("#RUNICODE").val());
|
||||||
|
|
||||||
|
document.getElementById("PROJECT_CODE").value = '<c:out value='${params.PROJECT_CODE}'/>';
|
||||||
|
document.getElementById("HOLE_CODE").value = '<c:out value='${params.HOLE_CODE}'/>';
|
||||||
|
document.getElementById("RUNI_CODE").value = runi_code;
|
||||||
|
document.getElementById("SAMPLE_CNT").value = document.getElementById("SAMPLECNT").value;
|
||||||
|
document.getElementById("TOTALCNT").value = kendoColCount - 1;
|
||||||
|
document.getElementById("rowDelFileArr").value = rowDelFileArr;
|
||||||
|
|
||||||
|
fn_submitAll(dbUrl, rUrl, strData, document.frmRock);
|
||||||
}
|
}
|
||||||
|
|
||||||
//kendoGrid submitAll
|
//kendoGrid submitAll
|
||||||
|
|
@ -309,73 +317,168 @@ function setData(arrayRockColumn,arrayRock){
|
||||||
}
|
}
|
||||||
|
|
||||||
function fn_setFile(arrayRock){
|
function fn_setFile(arrayRock){
|
||||||
$("#table_file").html('');
|
|
||||||
var file = '';
|
|
||||||
|
|
||||||
for(var i = 0; i < arrayRock.length; i++){
|
//file init
|
||||||
var testOrder = arrayRock[i].testOrder;
|
$("#table_file").html('');
|
||||||
|
|
||||||
var img1 = (arrayRock[i].graphImage1 == 'null' || arrayRock[i].graphImage1 == null) ? '' : arrayRock[i].graphImage1;
|
//file content
|
||||||
var loc1 = (arrayRock[i].graphLocal1 == 'null' || arrayRock[i].graphLocal1 == null) ? '' : arrayRock[i].graphLocal1;
|
var file = '<div id="table_file" class="table-file">';
|
||||||
var img2 = (arrayRock[i].graphImage2 == 'null' || arrayRock[i].graphImage2 == null) ? '' : arrayRock[i].graphImage2;
|
|
||||||
var loc2 = (arrayRock[i].graphLocal2 == 'null' || arrayRock[i].graphLocal2 == null) ? '' : arrayRock[i].graphLocal2;
|
|
||||||
|
|
||||||
// 파괴형태 그림
|
for(var i =0; i < arrayRock.length; i++){
|
||||||
file += '<div id="TR_GRAPH_IMAGE1_' + testOrder + '" class="table-file-wrapper">';
|
|
||||||
file += ' <div class="contents-title-1depth marT20"><span>파괴형태 그림 (' + testOrder + '회)를(을) 입력하세요. (최대크기: 500KB)</span></div>';
|
|
||||||
file += ' <table class="table table-file marT0" data-target="form-file"><colgroup><col width="160px" /><col width="auto" /></colgroup>';
|
|
||||||
file += ' <tr><td class="td-head">첨부파일입력</td><td class="plus_file" colspan="3">';
|
|
||||||
file += ' <input type="file" id="GRAPH_IMAGE1_' + testOrder + '" name="GRAPH_IMAGE1_' + testOrder + '" class="gg-input file-input" />';
|
|
||||||
file += ' <ul class="content-ul-list marT5"><li>시험결과 그래프는 <span class="textR">필수입력</span>입니다.</li><li>파일크기는 "최대 500KB" 입니다.</li></ul>';
|
|
||||||
if(img1 !== ''){
|
|
||||||
file += ' <div class="marT10 marB10"><b>첨부파일</b> : <a href="#" onClick=\'fn_imgPlus("/files/web/${params.REPORT_TYPE}/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_UNIAXIAL/' + img1 + '", event.x,event.y); return false;\'>' + loc1 + '</a><label class="gg-checkbox gg-checkbox-outline marL20"><input type="checkbox" id="FILE_DEL1_' + testOrder + '" name="FILE_DEL1_' + testOrder + '" value="Y" class="checkbox_T" /> 파일삭제<span></span></label></div>';
|
|
||||||
file += ' <img src="/files/web/${params.REPORT_TYPE}/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_UNIAXIAL/' + img1 + '" class="file-preview-img" />';
|
|
||||||
}
|
|
||||||
file += ' <input type="hidden" id="OLD_GRAPH_IMAGE1_' + testOrder + '" name="OLD_GRAPH_IMAGE1_' + testOrder + '" value="' + img1 + '" />';
|
|
||||||
file += ' <input type="hidden" id="OLD_GRAPH_LOCAL1_' + testOrder + '" name="OLD_GRAPH_LOCAL1_' + testOrder + '" value="' + loc1 + '" />';
|
|
||||||
file += ' </td></tr></table></div>';
|
|
||||||
|
|
||||||
// Stress-Strain 그래프
|
|
||||||
file += '<div id="TR_GRAPH_IMAGE2_' + testOrder + '" class="table-file-wrapper">';
|
file += ' <div class="contents-title-1depth marT20"><span>일축압축시험결과 그래프를 입력하세요. (최대크기: 500KB) 파일은 <span class="textR">JPEG 또는 PNG</span> 형태로 올려주셔야 합니다.</span></div>';
|
||||||
file += ' <div class="contents-title-1depth marT20"><span>Stress-Strain 그래프 (' + testOrder + '회)를(을) 입력하세요. (최대크기: 500KB)</span></div>';
|
file += ' <table class="table table-file marT0" data-target="form-file">';
|
||||||
file += ' <table class="table table-file marT0" data-target="form-file"><colgroup><col width="160px" /><col width="auto" /></colgroup>';
|
file += ' <colgroup>';
|
||||||
file += ' <tr><td class="td-head">첨부파일입력</td><td class="plus_file" colspan="3">';
|
file += ' <col width="160px" />';
|
||||||
file += ' <input type="file" id="GRAPH_IMAGE2_' + testOrder + '" name="GRAPH_IMAGE2_' + testOrder + '" class="gg-input file-input" />';
|
file += ' <col width="auto" />';
|
||||||
file += ' <ul class="content-ul-list marT5"><li>시험결과 그래프는 <span class="textR">필수입력</span>입니다.</li><li>파일크기는 "최대 500KB" 입니다.</li></ul>';
|
file += ' </colgroup>';
|
||||||
if(img2 !== ''){
|
if(i == 0){
|
||||||
file += ' <div class="marT10 marB10"><b>첨부파일</b> : <a href="#" onClick=\'fn_imgPlus("/files/web/${params.REPORT_TYPE}/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_UNIAXIAL/' + img2 + '", event.x,event.y); return false;\'>' + loc2 + '</a><label class="gg-checkbox gg-checkbox-outline marL20"><input type="checkbox" id="FILE_DEL2_' + testOrder + '" name="FILE_DEL2_' + testOrder + '" value="Y" class="checkbox_T" /> 파일삭제<span></span></label></div>';
|
file += ' <tbody id="TR_GRAPH_IMAGE1_'+arrayRock[i].testOrder+'" style="display:\'\'">';
|
||||||
file += ' <img src="/files/web/${params.REPORT_TYPE}/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_UNIAXIAL/' + img2 + '" class="file-preview-img" />';
|
}else{
|
||||||
}
|
file += ' <tbody id="TR_GRAPH_IMAGE1_'+arrayRock[i].testOrder+'" style="display:none">';
|
||||||
file += ' <input type="hidden" id="OLD_GRAPH_IMAGE2_' + testOrder + '" name="OLD_GRAPH_IMAGE2_' + testOrder + '" value="' + img2 + '" />';
|
}
|
||||||
file += ' <input type="hidden" id="OLD_GRAPH_LOCAL2_' + testOrder + '" name="OLD_GRAPH_LOCAL2_' + testOrder + '" value="' + loc2 + '" />';
|
|
||||||
file += ' </td></tr></table></div>';
|
file += ' <input type="hidden" id="OLD_GRAPH_IMAGE1_'+arrayRock[i].testOrder+'" name="OLD_GRAPH_IMAGE1_'+arrayRock[i].testOrder+'" value="'+arrayRock[i].graphImage1+'" />';
|
||||||
}
|
file += ' <input type="hidden" id="OLD_GRAPH_LOCAL1_'+arrayRock[i].testOrder+'" name="OLD_GRAPH_LOCAL1_'+arrayRock[i].testOrder+'" value="'+arrayRock[i].graphLocal1+'" />';
|
||||||
$("#table_file").html(file);
|
file += ' <input type="hidden" id="OLD_GRAPH_IMAGE2_'+arrayRock[i].testOrder+'" name="OLD_GRAPH_IMAGE2_'+arrayRock[i].testOrder+'" value="'+arrayRock[i].graphImage2+'" />';
|
||||||
$("#GridRowCnt").val(arrayRock.length);
|
file += ' <input type="hidden" id="OLD_GRAPH_LOCAL2_'+arrayRock[i].testOrder+'" name="OLD_GRAPH_LOCAL2_'+arrayRock[i].testOrder+'" value="'+arrayRock[i].graphLocal2+'" />';
|
||||||
|
|
||||||
|
if(arrayRock[i].graphImage1 != '' && arrayRock[i].graphImage1 != null && arrayRock[i].graphImage1 != 'null'){
|
||||||
|
file += ' <tr>';
|
||||||
|
file += ' <td class="td-head">';
|
||||||
|
file += ' 파괴형태<br>그림 입력';
|
||||||
|
file += ' </td>';
|
||||||
|
file += ' <td class="plus_file">';
|
||||||
|
file += ' <input type="file" id="GRAPH_IMAGE1_'+arrayRock[i].testOrder+'" name="GRAPH_IMAGE1_'+arrayRock[i].testOrder+'" class="gg-input file-input" />';
|
||||||
|
file += ' <ul class="content-ul-list marT5">';
|
||||||
|
file += ' <li>';
|
||||||
|
file += ' 시험결과 그래프는 <span class="textR">필수입력</span>입니다.';
|
||||||
|
file += ' </li>';
|
||||||
|
file += ' <li>';
|
||||||
|
file += ' 파일크기는 "최대 500KB" 입니다.';
|
||||||
|
file += ' </li>';
|
||||||
|
file += ' </ul>';
|
||||||
|
file += ' </td>';
|
||||||
|
file += ' </tr>';
|
||||||
|
file += ' <tr>';
|
||||||
|
file += ' <td class="td-head">파괴형태<br>첨부된 파일정보</td>';
|
||||||
|
file += ' <td class="plus_img">';
|
||||||
|
file += ' <div class="marB10">';
|
||||||
|
file += ' <b>첨부파일</b> :';
|
||||||
|
file += ' <a href="#" onClick=\'fn_imgPlus("/files/web/CH/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_UNIAXIAL/'+arrayRock[i].graphImage1+'", event.x,event.y); return false;\'>'+arrayRock[i].graphLocal1+'</a>';
|
||||||
|
file += ' <label class="gg-checkbox gg-checkbox-outline marL20">';
|
||||||
|
file += ' <input type="checkbox" id="FILE_DEL1_'+arrayRock[i].testOrder+'" name="FILE_DEL1_'+arrayRock[i].testOrder+'" value="Y" class="checkbox_T" /> 파일삭제';
|
||||||
|
file += ' <span></span>';
|
||||||
|
file += ' </label>';
|
||||||
|
file += ' </div>';
|
||||||
|
file += ' <a href="#" onClick=\'fn_imgPlus("/files/web/CH/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_UNIAXIAL/'+arrayRock[i].graphImage1+'", event.x,event.y); return false;\'>';
|
||||||
|
file += ' <img src="/files/web/CH/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_UNIAXIAL/'+arrayRock[i].graphImage1+'" class="file-preview-img" />';
|
||||||
|
file += ' </a>';
|
||||||
|
file += ' </td>';
|
||||||
|
file += ' </tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if(arrayRock[i].graphImage1 == '' || arrayRock[i].graphImage1 == null || arrayRock[i].graphImage1 == 'null'){
|
||||||
|
file += ' <tr>';
|
||||||
|
file += ' <td class="td-head">';
|
||||||
|
file += ' 파괴형태<br>그림 입력';
|
||||||
|
file += ' </td>';
|
||||||
|
file += ' <td class="plus_file" colspan="3">';
|
||||||
|
file += ' <input type="file" id="GRAPH_IMAGE1_'+arrayRock[i].testOrder+'" name="GRAPH_IMAGE1_'+arrayRock[i].testOrder+'" class="gg-input file-input" />';
|
||||||
|
file += ' <ul class="content-ul-list marT5">';
|
||||||
|
file += ' <li>';
|
||||||
|
file += ' 시험결과 그래프는 <span class="textR">필수입력</span>입니다.';
|
||||||
|
file += ' </li>';
|
||||||
|
file += ' <li>';
|
||||||
|
file += ' 파일크기는 "최대 500KB" 입니다.';
|
||||||
|
file += ' </li>';
|
||||||
|
file += ' </ul>';
|
||||||
|
file += ' </td>';
|
||||||
|
file += ' </tr>';
|
||||||
|
}
|
||||||
|
file += ' </tbody>';
|
||||||
|
|
||||||
|
if(i == 0){
|
||||||
|
file += ' <tbody id="TR_GRAPH_IMAGE2_'+arrayRock[i].testOrder+'" style="display:\'\'">';
|
||||||
|
}else{
|
||||||
|
file += ' <tbody id="TR_GRAPH_IMAGE2_'+arrayRock[i].testOrder+'" style="display:none">';
|
||||||
|
}
|
||||||
|
|
||||||
|
if(arrayRock[i].graphImage2 != '' && arrayRock[i].graphImage2 != null && arrayRock[i].graphImage2 != 'null'){
|
||||||
|
file += ' <tr>';
|
||||||
|
file += ' <td class="td-head">';
|
||||||
|
file += ' Stress-Strain<br>그래프 입력';
|
||||||
|
file += ' </td>';
|
||||||
|
file += ' <td class="plus_file">';
|
||||||
|
file += ' <input type="file" id="GRAPH_IMAGE2_'+arrayRock[i].testOrder+'" name="GRAPH_IMAGE2_'+arrayRock[i].testOrder+'" class="gg-input file-input" />';
|
||||||
|
file += ' <ul class="content-ul-list marT5">';
|
||||||
|
file += ' <li>';
|
||||||
|
file += ' 시험결과 그래프는 <span class="textR">필수입력</span>입니다.';
|
||||||
|
file += ' </li>';
|
||||||
|
file += ' <li>';
|
||||||
|
file += ' 파일크기는 "최대 500KB" 입니다.';
|
||||||
|
file += ' </li>';
|
||||||
|
file += ' </ul>';
|
||||||
|
file += ' </td>';
|
||||||
|
file += ' </tr>';
|
||||||
|
file += ' <tr>';
|
||||||
|
file += ' <td class="td-head">Stress-Strain<br>첨부된 파일정보</td>';
|
||||||
|
file += ' <td class="plus_img">';
|
||||||
|
file += ' <div class="marB10">';
|
||||||
|
file += ' <b>첨부파일</b> :';
|
||||||
|
file += ' <a href="#" onClick=\'fn_imgPlus("/files/web/CH/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_UNIAXIAL/'+arrayRock[i].graphImage2+'", event.x,event.y); return false;\'>'+arrayRock[i].graphLocal2+'</a>';
|
||||||
|
file += ' <label class="gg-checkbox gg-checkbox-outline marL20">';
|
||||||
|
file += ' <input type="checkbox" id="FILE_DEL2_'+arrayRock[i].testOrder+'" name="FILE_DEL2_'+arrayRock[i].testOrder+'" value="Y" class="checkbox_T" /> 파일삭제';
|
||||||
|
file += ' <span></span>';
|
||||||
|
file += ' </label>';
|
||||||
|
file += ' </div>';
|
||||||
|
file += ' <a href="#" onClick=\'fn_imgPlus("/files/web/CH/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_UNIAXIAL/'+arrayRock[i].graphImage2+'", event.x,event.y); return false;\'>';
|
||||||
|
file += ' <img src="/files/web/CH/${params.PROJECT_CODE}/${params.HOLE_CODE}/ROCK_UNIAXIAL/'+arrayRock[i].graphImage2+'" class="file-preview-img" />';
|
||||||
|
file += ' </a>';
|
||||||
|
file += ' </td>';
|
||||||
|
file += ' </tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if(arrayRock[i].graphImage2 == '' || arrayRock[i].graphImage2 == null || arrayRock[i].graphImage2 == 'null'){
|
||||||
|
|
||||||
|
file += ' <tr>';
|
||||||
|
file += ' <td class="td-head">';
|
||||||
|
file += ' Stress-Strain<br>그래프 입력';
|
||||||
|
file += ' </td>';
|
||||||
|
file += ' <td class="plus_file" colspan="3">';
|
||||||
|
file += ' <input type="file" id="GRAPH_IMAGE2_'+arrayRock[i].testOrder+'" name="GRAPH_IMAGE2_'+arrayRock[i].testOrder+'" class="gg-input file-input" />';
|
||||||
|
file += ' <ul class="content-ul-list marT5">';
|
||||||
|
file += ' <li>';
|
||||||
|
file += ' 시험결과 그래프는 <span class="textR">필수입력</span>입니다.';
|
||||||
|
file += ' </li>';
|
||||||
|
file += ' <li>';
|
||||||
|
file += ' 파일크기는 "최대 500KB" 입니다.';
|
||||||
|
file += ' </li>';
|
||||||
|
file += ' </ul>';
|
||||||
|
file += ' </td>';
|
||||||
|
file += ' </tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
file += ' </tbody>';
|
||||||
|
file += ' </table>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
file += ' <input type="hidden" id="PROJECT_CODE" name="PROJECT_CODE" value="${params.PROJECT_CODE}" />';
|
||||||
|
file += ' <input type="hidden" id="HOLE_CODE" name="HOLE_CODE" value="${params.HOLE_CODE}" />';
|
||||||
|
file += ' <input type="hidden" id="RUNI_CODE" name="RUNI_CODE" value="${params.RUNI_CODE}"/>';
|
||||||
|
file += ' <input type="hidden" id="SAMPLE_CNT" name="SAMPLE_CNT"/>';
|
||||||
|
file += ' <input type="hidden" id="TOTALCNT" name="TOTALCNT" value="" />';
|
||||||
|
file += ' <input type="hidden" id="dataAll" name="dataAll" />';
|
||||||
|
file += ' <input type="hidden" id="rowDelFileArr" name="rowDelFileArr" />';
|
||||||
|
file += '</div>';
|
||||||
|
|
||||||
|
$("#table_file").html(file);
|
||||||
|
|
||||||
|
$("#GridRowCnt").val(arrayRock.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
//열추가삭제
|
|
||||||
function fn_ColAddInput(nowColCount, nowColLength, cnt){
|
|
||||||
var oldCnt = nowColCount;
|
|
||||||
if(cnt>=0){
|
|
||||||
if(cnt < oldCnt){ //삭제
|
|
||||||
for(var i = oldCnt ; i >= cnt + 1; i--){
|
|
||||||
// 실제 물리적인 파일 삭제 하기 위해 파일명 Arr 세팅
|
|
||||||
rowDelFileArr += $("#OLD_GRAPH_IMAGE1_"+i).val() + ",";
|
|
||||||
rowDelFileArr += $("#OLD_GRAPH_IMAGE2_"+i).val() + ",";
|
|
||||||
|
|
||||||
// 해당 회차의 DOM을 직접 제거 (전체 삭제 후 재생성 방지)
|
|
||||||
$("#TR_GRAPH_IMAGE1_" + i).remove();
|
|
||||||
$("#TR_GRAPH_IMAGE2_" + i).remove();
|
|
||||||
}
|
|
||||||
}else if(cnt > oldCnt){ //추가
|
|
||||||
for(var i = oldCnt+1 ; i <= cnt; i++){
|
|
||||||
fn_FileAddRow("table_file", i, "GRAPH_IMAGE1_", "TR_GRAPH_IMAGE1_", "파괴형태 그림 ("+i+"회)");
|
|
||||||
fn_FileAddRow("table_file", i, "GRAPH_IMAGE2_", "TR_GRAPH_IMAGE2_", "Stress-Strain 그래프 ("+i+"회)");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//ajax 리턴
|
//ajax 리턴
|
||||||
function fn_SelectLoad(data){
|
function fn_SelectLoad(data){
|
||||||
|
|
@ -464,6 +567,13 @@ function fn_add(){
|
||||||
fn_FileAddRow("table_file",nowColCount,"GRAPH_IMAGE1_", "TR_GRAPH_IMAGE1_","파괴형태 그림");
|
fn_FileAddRow("table_file",nowColCount,"GRAPH_IMAGE1_", "TR_GRAPH_IMAGE1_","파괴형태 그림");
|
||||||
fn_FileAddRow("table_file",nowColCount,"GRAPH_IMAGE2_", "TR_GRAPH_IMAGE2_","Stress-Strain 그래프");
|
fn_FileAddRow("table_file",nowColCount,"GRAPH_IMAGE2_", "TR_GRAPH_IMAGE2_","Stress-Strain 그래프");
|
||||||
|
|
||||||
|
//첨부추가
|
||||||
|
/* fn_gridAddRow("TR_GRAPH_IMAGE1_","GRAPH_IMAGE1_", nowColCount, "파괴형태 그림");
|
||||||
|
fn_gridAddRow("TR_GRAPH_IMAGE2_","GRAPH_IMAGE2_", nowColCount, "Stress-Strain 그래프"); */
|
||||||
|
|
||||||
|
//display controll
|
||||||
|
fn_kendoFileDisplayCol(nowColLength + 1, nowColCount, "TR_GRAPH_IMAGE1_",0);
|
||||||
|
fn_kendoFileDisplayCol(nowColLength + 1, nowColCount, "TR_GRAPH_IMAGE2_",0);
|
||||||
|
|
||||||
myFields = grid.dataSource.options.schema.model.fields;
|
myFields = grid.dataSource.options.schema.model.fields;
|
||||||
|
|
||||||
|
|
@ -495,39 +605,45 @@ function fn_add(){
|
||||||
|
|
||||||
//열 삭제
|
//열 삭제
|
||||||
function removeItemAt() {
|
function removeItemAt() {
|
||||||
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
|
||||||
var nowColLength = grid.columns.length - 3; // 타이틀 수 제외
|
|
||||||
|
|
||||||
if($("#RUNICODE").val() == "" || $("#RUNICODE").val() == null){
|
var grid = kendoJQuery("#kictGrid").data("kendoGrid");
|
||||||
alert("시료번호를 선택하세요.");
|
var dataSource = grid.dataSource;
|
||||||
return false;
|
var data = dataSource.data();
|
||||||
}
|
|
||||||
|
|
||||||
if( nowColLength <= 1 ) { // 최소 1개는 유지
|
var nowColLength = grid.columns.length - 3; // 타이틀 수 제외
|
||||||
return false;
|
var nowRowLength = grid.dataSource.options.data.length
|
||||||
} else {
|
var nowColCount = nowColLength + 1;
|
||||||
grid.columns.pop();
|
var nowRowCount = nowRowLength;
|
||||||
kendoJQuery("#kictGrid").find("tr td:nth-last-child(1)").each(function(){
|
|
||||||
kendoJQuery(this).remove();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var nowColCount = nowColLength - 1;
|
if($("#RUNICODE").val() == "" || $("#RUNICODE").val() == null){
|
||||||
$("#GridRowCnt").val(nowColCount);
|
alert("시료번호를 선택하세요.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// 실제 파일 삭제 배열에 추가
|
if( nowColCount == 2 ) {
|
||||||
rowDelFileArr += $("#OLD_GRAPH_IMAGE1_"+nowColLength).val() + ",";
|
return false;
|
||||||
rowDelFileArr += $("#OLD_GRAPH_IMAGE2_"+nowColLength).val() + ",";
|
} else {
|
||||||
|
nowColCount = nowColLength - 1
|
||||||
|
grid.columns.pop();
|
||||||
|
kendoJQuery("#kictGrid").find("tr td:nth-last-child(1)").each(function(){
|
||||||
|
kendoJQuery(this).remove();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// DOM에서 해당 회차의 첨부파일 DIV 영역 직접 완전 삭제
|
$("#GridRowCnt").val(nowColCount);
|
||||||
$("#TR_GRAPH_IMAGE1_" + nowColLength).remove();
|
var dataItem = grid._data[nowColCount-1];
|
||||||
$("#TR_GRAPH_IMAGE2_" + nowColLength).remove();
|
return dataItem.dirty = true;
|
||||||
|
|
||||||
|
//첨부삭제
|
||||||
|
fn_FileRemoveRow("table_file",nowColLength*2, 2);
|
||||||
|
|
||||||
|
//display controll
|
||||||
|
fn_kendoFileDisplayCol(nowColLength - 1, nowColCount, "TR_GRAPH_IMAGE1_",0);
|
||||||
|
fn_kendoFileDisplayCol(nowColLength - 1, nowColCount, "TR_GRAPH_IMAGE2_",0);
|
||||||
|
|
||||||
|
$("#table_file").find("div").last().remove(); //20211219 ssheo
|
||||||
|
$("#table_file").find("table:last-child").remove(); //20211219 ssheo
|
||||||
|
|
||||||
// return 문을 DOM 삭제 로직 아래인 제일 마지막으로 이동
|
|
||||||
var dataItem = grid._data[nowColCount-1];
|
|
||||||
if(dataItem) {
|
|
||||||
return dataItem.dirty = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//그리드 col수 이벤트
|
//그리드 col수 이벤트
|
||||||
|
|
@ -614,30 +730,38 @@ function fn_rowChange(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//열추가삭제
|
//열추가삭제
|
||||||
// 열 추가/삭제에 따른 파일 업로드 UI 제어 함수
|
|
||||||
function fn_ColAddInput(nowColCount, nowColLength, cnt){
|
function fn_ColAddInput(nowColCount, nowColLength, cnt){
|
||||||
var oldCnt = nowColCount;
|
var oldCnt = nowColCount;
|
||||||
if(cnt>=0){
|
if(cnt>=0){
|
||||||
if(cnt < oldCnt){ //삭제
|
if(cnt < oldCnt){ //삭제
|
||||||
for(var i = oldCnt ; i >= cnt + 1; i--){
|
for(var i = oldCnt ; i>= cnt + 1; i--){
|
||||||
//실제 물리적인 파일 삭제 하기 위해 파일명 Arr
|
//실제 물리적인 파일 삭제 하기 위해 파일명 Arr
|
||||||
rowDelFileArr += $("#OLD_GRAPH_IMAGE1_"+i).val() + ",";
|
rowDelFileArr += $("#OLD_GRAPH_IMAGE1_"+i).val() + ",";
|
||||||
rowDelFileArr += $("#OLD_GRAPH_IMAGE2_"+i).val() + ",";
|
rowDelFileArr += $("#OLD_GRAPH_IMAGE2_"+i).val() + ",";
|
||||||
|
$("#OLD_GRAPH_IMAGE1_"+i).val("");
|
||||||
|
$("#OLD_GRAPH_IMAGE2_"+i).val("");
|
||||||
|
|
||||||
// [핵심] fn_FileRemoveRow 대신 jQuery remove()를 사용하여 해당 회차 DIV 통째로 삭제
|
//file del
|
||||||
$("#TR_GRAPH_IMAGE1_" + i).remove();
|
fn_FileRemoveRow("table_file",(i)*2, 2); // 모든 파일 삭제
|
||||||
$("#TR_GRAPH_IMAGE2_" + i).remove();
|
|
||||||
}
|
//display controll
|
||||||
}else if(cnt > oldCnt){ //추가
|
fn_kendoFileDisplayCol(i-1, i-1, "TR_GRAPH_IMAGE1_",0);
|
||||||
for(var i = oldCnt+1 ; i <= cnt; i++){
|
fn_kendoFileDisplayCol(i-1, i-1, "TR_GRAPH_IMAGE2_",0);
|
||||||
// common.js에 정의된 공통 함수를 사용해 HTML append
|
}
|
||||||
fn_FileAddRow("table_file", i, "GRAPH_IMAGE1_", "TR_GRAPH_IMAGE1_", "파괴형태 그림");
|
}else if(cnt > oldCnt){ //추가
|
||||||
fn_FileAddRow("table_file", i, "GRAPH_IMAGE2_", "TR_GRAPH_IMAGE2_", "Stress-Strain 그래프");
|
var nowColAddCount = cnt - oldCnt;
|
||||||
}
|
var nowColAddLength = nowColLength + nowColAddCount;
|
||||||
}
|
for(var i = oldCnt+1 ; i<= cnt; i++){
|
||||||
}
|
fn_FileAddRow("table_file",i,"GRAPH_IMAGE1_", "TR_GRAPH_IMAGE1_","파괴형태 그림");
|
||||||
|
fn_FileAddRow("table_file",i,"GRAPH_IMAGE2_", "TR_GRAPH_IMAGE2_","Stress-Strain 그래프");
|
||||||
|
|
||||||
|
//display controll
|
||||||
|
fn_kendoFileDisplayCol(i, i, "TR_GRAPH_IMAGE1_",0);
|
||||||
|
fn_kendoFileDisplayCol(i, i, "TR_GRAPH_IMAGE2_",0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 도움말 시작 */
|
/* 도움말 시작 */
|
||||||
|
|
@ -798,6 +922,8 @@ function fn_openClipReport2(table,project,hole,sample,etc1,etc2,gbn){
|
||||||
|
|
||||||
nowColumnIndex = colIdx - 2;
|
nowColumnIndex = colIdx - 2;
|
||||||
var nowColLength = grid.columns.length - 2; // 타이틀 수 제외
|
var nowColLength = grid.columns.length - 2; // 타이틀 수 제외
|
||||||
|
fn_kendoFileDisplayCol(nowColumnIndex, nowColLength, "TR_GRAPH_IMAGE1_", 0);
|
||||||
|
fn_kendoFileDisplayCol(nowColumnIndex, nowColLength, "TR_GRAPH_IMAGE2_", 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
fn_kendoGridStyle();
|
fn_kendoGridStyle();
|
||||||
|
|
@ -838,6 +964,10 @@ function fn_openClipReport2(table,project,hole,sample,etc1,etc2,gbn){
|
||||||
var nowColCount = nowColLength + 1;
|
var nowColCount = nowColLength + 1;
|
||||||
var nowRowCount = nowRowLength;
|
var nowRowCount = nowRowLength;
|
||||||
|
|
||||||
|
//display controll
|
||||||
|
fn_kendoFileDisplayCol(nowColLength + 1, nowColCount, "TR_GRAPH_IMAGE1_",0);
|
||||||
|
fn_kendoFileDisplayCol(nowColLength + 1, nowColCount, "TR_GRAPH_IMAGE2_",0);
|
||||||
|
|
||||||
fn_kendoGridStyle();
|
fn_kendoGridStyle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1093,28 +1223,43 @@ function fn_openClipReport2(table,project,hole,sample,etc1,etc2,gbn){
|
||||||
|
|
||||||
<div id="table_file" class="table-file">
|
<div id="table_file" class="table-file">
|
||||||
<c:forEach var="mapFile" items="${arrayRock}" varStatus="status">
|
<c:forEach var="mapFile" items="${arrayRock}" varStatus="status">
|
||||||
<div id="TR_GRAPH_IMAGE1_${mapFile.testOrder}" class="table-file-wrapper">
|
<div class="contents-title-1depth marT20"><span>일축압축시험결과 그래프를 입력하세요. (최대크기: 500KB) 파일은 <span class='textR'>JPEG 또는 PNG</span> 형태로 올려주셔야 합니다.</span></span></div>
|
||||||
<div class="contents-title-1depth marT20"><span>파괴형태 그림 (${mapFile.testOrder}회)를(을) 입력하세요. (최대크기: 500KB) 파일은 <span class='textR'>JPEG 또는 PNG</span> 형태로 올려주셔야 합니다.</span></div>
|
<table class="table table-file marT0" data-target="form-file">
|
||||||
<table class="table table-file marT0" data-target="form-file">
|
<colgroup>
|
||||||
<colgroup>
|
<col width="160px" />
|
||||||
<col width="160px" />
|
<col width="auto" />
|
||||||
<col width="auto" />
|
</colgroup>
|
||||||
</colgroup>
|
|
||||||
<tbody>
|
|
||||||
<input type="hidden" id="OLD_GRAPH_IMAGE1_${mapFile.testOrder}" name="OLD_GRAPH_IMAGE1_${mapFile.testOrder}" value="${mapFile.graphImage1}" />
|
|
||||||
<input type="hidden" id="OLD_GRAPH_LOCAL1_${mapFile.testOrder}" name="OLD_GRAPH_LOCAL1_${mapFile.testOrder}" value="${mapFile.graphLocal1}" />
|
|
||||||
|
|
||||||
|
<!-- 이미지 1 -->
|
||||||
|
<c:if test="${status.index == 0 }">
|
||||||
|
<tbody id="TR_GRAPH_IMAGE1_${mapFile.testOrder}" style="display:''">
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${status.index != 0 }">
|
||||||
|
<tbody id="TR_GRAPH_IMAGE1_${mapFile.testOrder}" style="display:none">
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<input type="hidden" id="OLD_GRAPH_IMAGE1_${mapFile.testOrder}" name="OLD_GRAPH_IMAGE1_${mapFile.testOrder}" value="${mapFile.graphImage1}" />
|
||||||
|
<input type="hidden" id="OLD_GRAPH_LOCAL1_${mapFile.testOrder}" name="OLD_GRAPH_LOCAL1_${mapFile.testOrder}" value="${mapFile.graphLocal1}" />
|
||||||
|
<input type="hidden" id="OLD_GRAPH_IMAGE2_${mapFile.testOrder}" name="OLD_GRAPH_IMAGE2_${mapFile.testOrder}" value="${mapFile.graphImage2}" />
|
||||||
|
<input type="hidden" id="OLD_GRAPH_LOCAL2_${mapFile.testOrder}" name="OLD_GRAPH_LOCAL2_${mapFile.testOrder}" value="${mapFile.graphLocal2}" />
|
||||||
|
|
||||||
|
<c:if test="${mapFile.graphImage1 != '' and mapFile.graphImage1 != null and mapFile.graphImage1 != 'null'}">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="td-head">파괴형태<br>그림 입력</td>
|
<td class="td-head">
|
||||||
|
파괴형태<br>그림 입력
|
||||||
|
</td>
|
||||||
<td class="plus_file">
|
<td class="plus_file">
|
||||||
<input type="file" id="GRAPH_IMAGE1_${mapFile.testOrder}" name="GRAPH_IMAGE1_${mapFile.testOrder}" class="gg-input file-input" />
|
<input type="file" id="GRAPH_IMAGE1_${mapFile.testOrder}" name="GRAPH_IMAGE1_${mapFile.testOrder}" class="gg-input file-input" />
|
||||||
<ul class="content-ul-list marT5">
|
<ul class="content-ul-list marT5">
|
||||||
<li>시험결과 그래프는 <span class="textR">필수입력</span>입니다.</li>
|
<li>
|
||||||
<li>파일크기는 "최대 500KB" 입니다.</li>
|
시험결과 그래프는 <span class="textR">필수입력</span>입니다.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
파일크기는 "최대 500KB" 입니다.
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<c:if test="${mapFile.graphImage1 != '' and mapFile.graphImage1 != null and mapFile.graphImage1 != 'null'}">
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="td-head">파괴형태<br>첨부된 파일정보</td>
|
<td class="td-head">파괴형태<br>첨부된 파일정보</td>
|
||||||
<td class="plus_img">
|
<td class="plus_img">
|
||||||
|
|
@ -1131,33 +1276,53 @@ function fn_openClipReport2(table,project,hole,sample,etc1,etc2,gbn){
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
</tbody>
|
<c:if test="${mapFile.graphImage1 == '' or mapFile.graphImage1 == null or mapFile.graphImage1 == 'null'}">
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="TR_GRAPH_IMAGE2_${mapFile.testOrder}" class="table-file-wrapper">
|
|
||||||
<div class="contents-title-1depth marT20"><span>Stress-Strain 그래프 (${mapFile.testOrder}회)를(을) 입력하세요. (최대크기: 500KB)</span></div>
|
|
||||||
<table class="table table-file marT0" data-target="form-file">
|
|
||||||
<colgroup>
|
|
||||||
<col width="160px" />
|
|
||||||
<col width="auto" />
|
|
||||||
</colgroup>
|
|
||||||
<tbody>
|
|
||||||
<input type="hidden" id="OLD_GRAPH_IMAGE2_${mapFile.testOrder}" name="OLD_GRAPH_IMAGE2_${mapFile.testOrder}" value="${mapFile.graphImage2}" />
|
|
||||||
<input type="hidden" id="OLD_GRAPH_LOCAL2_${mapFile.testOrder}" name="OLD_GRAPH_LOCAL2_${mapFile.testOrder}" value="${mapFile.graphLocal2}" />
|
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="td-head">Stress-Strain<br>그래프 입력</td>
|
<td class="td-head">
|
||||||
<td class="plus_file">
|
파괴형태<br>그림 입력
|
||||||
<input type="file" id="GRAPH_IMAGE2_${mapFile.testOrder}" name="GRAPH_IMAGE2_${mapFile.testOrder}" class="gg-input file-input" />
|
</td>
|
||||||
|
<td class="plus_file" colspan="3">
|
||||||
|
<input type="file" id="GRAPH_IMAGE1_${mapFile.testOrder}" name="GRAPH_IMAGE1_${mapFile.testOrder}" class="gg-input file-input" />
|
||||||
<ul class="content-ul-list marT5">
|
<ul class="content-ul-list marT5">
|
||||||
<li>시험결과 그래프는 <span class="textR">필수입력</span>입니다.</li>
|
<li>
|
||||||
<li>파일크기는 "최대 500KB" 입니다.</li>
|
시험결과 그래프는 <span class="textR">필수입력</span>입니다.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
파일크기는 "최대 500KB" 입니다.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
<!-- 이미지 2 -->
|
||||||
|
<c:if test="${status.index == 0 }">
|
||||||
|
<tbody id="TR_GRAPH_IMAGE2_${mapFile.testOrder}" style="display:''">
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${status.index != 0 }">
|
||||||
|
<tbody id="TR_GRAPH_IMAGE2_${mapFile.testOrder}" style="display:none">
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<c:if test="${mapFile.graphImage2 != '' and mapFile.graphImage2 != null and mapFile.graphImage2 != 'null'}">
|
||||||
|
<tr>
|
||||||
|
<td class="td-head">
|
||||||
|
Stress-Strain<br>그래프 입력
|
||||||
|
</td>
|
||||||
|
<td class="plus_file">
|
||||||
|
<input type="file" id="GRAPH_IMAGE2_${mapFile.testOrder}" name="GRAPH_IMAGE2_${mapFile.testOrder}" class="gg-input file-input" />
|
||||||
|
<ul class="content-ul-list marT5">
|
||||||
|
<li>
|
||||||
|
시험결과 그래프는 <span class="textR">필수입력</span>입니다.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
파일크기는 "최대 500KB" 입니다.
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<c:if test="${mapFile.graphImage2 != '' and mapFile.graphImage2 != null and mapFile.graphImage2 != 'null'}">
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="td-head">Stress-Strain<br>첨부된 파일정보</td>
|
<td class="td-head">Stress-Strain<br>첨부된 파일정보</td>
|
||||||
<td class="plus_img">
|
<td class="plus_img">
|
||||||
|
|
@ -1174,23 +1339,38 @@ function fn_openClipReport2(table,project,hole,sample,etc1,etc2,gbn){
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
</tbody>
|
<c:if test="${mapFile.graphImage2 == '' or mapFile.graphImage2 == null or mapFile.graphImage2 == 'null'}">
|
||||||
</table>
|
<tr>
|
||||||
</div>
|
<td class="td-head">
|
||||||
|
Stress-Strain<br>그래프 입력
|
||||||
|
</td>
|
||||||
|
<td class="plus_file" colspan="3">
|
||||||
|
<input type="file" id="GRAPH_IMAGE2_${mapFile.testOrder}" name="GRAPH_IMAGE2_${mapFile.testOrder}" class="gg-input file-input" />
|
||||||
|
<ul class="content-ul-list marT5">
|
||||||
|
<li>
|
||||||
|
시험결과 그래프는 <span class="textR">필수입력</span>입니다.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
파일크기는 "최대 500KB" 입니다.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="hidden_params">
|
<input type="hidden" id="PROJECT_CODE" name="PROJECT_CODE" value='<c:out value='${params.PROJECT_CODE}'/>' />
|
||||||
<input type="hidden" id="PROJECT_CODE" name="PROJECT_CODE" value="${params.PROJECT_CODE}" />
|
<input type="hidden" id="HOLE_CODE" name="HOLE_CODE" value='<c:out value='${params.HOLE_CODE}'/>' />
|
||||||
<input type="hidden" id="HOLE_CODE" name="HOLE_CODE" value="${params.HOLE_CODE}" />
|
<input type="hidden" id="RUNI_CODE" name="RUNI_CODE" value='<c:out value='${params.RUNI_CODE}'/>'/>
|
||||||
<input type="hidden" id="RUNI_CODE" name="RUNI_CODE" value="${params.RUNI_CODE}" />
|
<input type="hidden" id="SAMPLE_CNT" name="SAMPLE_CNT"/>
|
||||||
<input type="hidden" id="SAMPLE_CNT" name="SAMPLE_CNT" value="" />
|
<input type="hidden" id="TOTALCNT" name="TOTALCNT" value="" />
|
||||||
<input type="hidden" id="TOTALCNT" name="TOTALCNT" value="" />
|
<input type="hidden" id="dataAll" name="dataAll" />
|
||||||
<input type="hidden" id="dataAll" name="dataAll" />
|
<input type="hidden" id="rowDelFileArr" name="rowDelFileArr" />
|
||||||
<input type="hidden" id="rowDelFileArr" name="rowDelFileArr" />
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<!-- contents end-->
|
<!-- contents end-->
|
||||||
|
|
|
||||||
|
|
@ -14,36 +14,31 @@ function textEditor(container, options) {
|
||||||
|
|
||||||
// 입력 type number로 변경
|
// 입력 type number로 변경
|
||||||
function numericEditor(container, options, isHyphenAllowed = false) {
|
function numericEditor(container, options, isHyphenAllowed = false) {
|
||||||
// 소수점을 입력받아야 하므로 항상 text 타입을 권장합니다. (number 타입의 브라우저 간섭 방지)
|
// 1. 하이픈 허용 여부에 따라 타입을 결정합니다.
|
||||||
var inputType = "text";
|
// 하이픈을 문자로서 입력받으려면 'text' 타입이 필요합니다.
|
||||||
|
var inputType = isHyphenAllowed ? "text" : "number";
|
||||||
var input = kendoJQuery('<input type="' + inputType + '" name="' + options.field + '" class="k-textbox" style="width:100%; text-align:right;" />');
|
var input = kendoJQuery('<input type="' + inputType + '" step="any" name="' + options.field + '" class="k-textbox" style="width:100%; text-align:right;" />');
|
||||||
|
|
||||||
input.appendTo(container)
|
input.appendTo(container)
|
||||||
.val(options.model[options.field])
|
.val(options.model[options.field])
|
||||||
.on("focus", function() {
|
.on("focus", function() {
|
||||||
this.select();
|
this.select();
|
||||||
})
|
})
|
||||||
.on("keydown", function(e) {
|
|
||||||
// 필요시, 숫자, 소수점(.), 하이픈(-), 백스페이스, 탭 등 필수 키만 허용하는 로직을 추가
|
|
||||||
})
|
|
||||||
.on("blur", function() {
|
.on("blur", function() {
|
||||||
var valStr = this.value.trim();
|
var valStr = this.value.trim();
|
||||||
|
|
||||||
|
// 2. 하이픈 허용인 경우 '-' 입력을 그대로 모델에 저장합니다.
|
||||||
if (isHyphenAllowed && valStr === "-") {
|
if (isHyphenAllowed && valStr === "-") {
|
||||||
options.model.set(options.field, "-");
|
options.model.set(options.field, "-");
|
||||||
} else if (valStr === "") {
|
// 기존 common.js 로직에 따라 result 값도 세팅이 필요하다면 아래 추가
|
||||||
options.model.set(options.field, null);
|
// options.model.set("result", "-");
|
||||||
} else {
|
} else {
|
||||||
// parseFloat은 "3.23"을 숫자 3.23으로 정확히 변환합니다.
|
// 숫자로 변환하여 모델에 저장
|
||||||
var valNum = parseFloat(valStr);
|
var valNum = parseFloat(valStr);
|
||||||
|
var finalVal = isNaN(valNum) ? null : valNum;
|
||||||
|
|
||||||
if (isNaN(valNum)) {
|
options.model.set(options.field, finalVal);
|
||||||
options.model.set(options.field, null);
|
// options.model.set("result", finalVal); // 필요시 추가
|
||||||
} else {
|
|
||||||
// Kendo Model에 숫자로 반영 (이때 소수점이 유지됩니다)
|
|
||||||
options.model.set(options.field, valNum);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -51,61 +46,6 @@ function numericEditor(container, options, isHyphenAllowed = false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function numericEditor2(container, options, isHyphenAllowed = false) {
|
|
||||||
var input = kendoJQuery('<input type="test" name="' + options.field + '" class="k-textbox" style="width:100%; text-align:right;" />');
|
|
||||||
|
|
||||||
input.appendTo(container)
|
|
||||||
.val(options.model[options.field])
|
|
||||||
|
|
||||||
// 1. 입력 제한 (숫자 + 하이픈)
|
|
||||||
.on("input", function () {
|
|
||||||
let val = this.value;
|
|
||||||
|
|
||||||
// 허용: "-", "-숫자", "숫자", "소수"
|
|
||||||
if (!/^[-]?\d*\.?\d*$/.test(val)) {
|
|
||||||
this.value = val.slice(0, -1);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// 2. ↑ ↓ 키로 값 증가/감소
|
|
||||||
.on("keydown", function (e) {
|
|
||||||
if (e.key === "ArrowUp" || e.key === "ArrowDown") {
|
|
||||||
e.preventDefault();
|
|
||||||
|
|
||||||
let val = this.value.trim();
|
|
||||||
|
|
||||||
// "-" 단독이면 0 기준 시작
|
|
||||||
if (val === "-" || val === "") {
|
|
||||||
val = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
let num = parseFloat(val);
|
|
||||||
if (isNaN(num)) num = 0;
|
|
||||||
|
|
||||||
if (e.key === "ArrowUp") {
|
|
||||||
num += 1;
|
|
||||||
} else {
|
|
||||||
num -= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.value = num;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// 3. blur 시 모델 반영
|
|
||||||
.on("blur", function () {
|
|
||||||
let val = this.value.trim();
|
|
||||||
|
|
||||||
if (val === "-") {
|
|
||||||
options.model.set(options.field, null);
|
|
||||||
} else {
|
|
||||||
let num = parseFloat(val);
|
|
||||||
options.model.set(options.field, isNaN(num) ? null : num);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//입력 type number로 변경 그러나 hyphen 입력 허용
|
//입력 type number로 변경 그러나 hyphen 입력 허용
|
||||||
function numericEditorAllowHyphen(container, options, isHyphenAllowed = false) {
|
function numericEditorAllowHyphen(container, options, isHyphenAllowed = false) {
|
||||||
kendoJQuery('<input type="text" name="' + options.field + '"/>')
|
kendoJQuery('<input type="text" name="' + options.field + '"/>')
|
||||||
|
|
|
||||||
|
|
@ -2078,28 +2078,3 @@ function projNmDuplChkResult( projectNameInput, projectCode) {
|
||||||
});
|
});
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 기업사용자 입력시스템 > 기본물성시험정보 -999값 처리
|
|
||||||
* 값 없음 처리는 '-' 입력으로 한다.
|
|
||||||
* @caller /views/web/input/sampleInfo.jsp
|
|
||||||
* @param val
|
|
||||||
* @returns
|
|
||||||
*/
|
|
||||||
function getNoDataValue(val) {
|
|
||||||
return (val === null || val === undefined || val === "" || val === "-") ? -999 : val;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 기업사용자 입력시스템 > 기본물성시험정보 -999값 처리
|
|
||||||
* 값 없음 처리는 '-' 입력으로 한다.
|
|
||||||
* @param val
|
|
||||||
* @returns
|
|
||||||
*/
|
|
||||||
function setNoDataValue(val) {
|
|
||||||
if (val == -999) {
|
|
||||||
return '-';
|
|
||||||
}
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue