처리상태 검색조건 checkbox 로 변경

main
박성영 2 weeks ago
parent 95d81d3de8
commit 958366b765

@ -6,6 +6,7 @@ import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
/**
* VO
@ -72,7 +73,7 @@ public class CarFfnlgTrgtVO extends PagingVO {
private String schRcptYmdEnd; // 검색 종료 접수 일자
private String schVhclno; // 검색 차량번호
private String schOwnrNm; // 검색 소유자명
private String schTaskPrcsSttsCd; // 검색 업무 처리 상태 코드
private List<String> schTaskPrcsSttsCd; // 검색 업무 처리 상태 코드 (다중 선택 가능)
private String schInspYmdStart; // 검색 시작 검사 일자
private String schInspYmdEnd; // 검색 종료 검사 일자
}

@ -18,8 +18,11 @@
<if test='schOwnrNm != null and schOwnrNm != ""'>
AND t.OWNR_NM LIKE CONCAT('%', #{schOwnrNm}, '%')
</if>
<if test='schTaskPrcsSttsCd != null and schTaskPrcsSttsCd != ""'>
AND t.TASK_PRCS_STTS_CD = #{schTaskPrcsSttsCd}
<if test='schTaskPrcsSttsCd != null and schTaskPrcsSttsCd.size() > 0'>
AND t.TASK_PRCS_STTS_CD IN
<foreach collection="schTaskPrcsSttsCd" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test='schInspYmdStart != null and schInspYmdStart != ""'>
AND t.INSP_YMD &gt;= #{schInspYmdStart}

@ -43,12 +43,12 @@
</li>
<li class="th">처리상태</li>
<li>
<select id="schTaskPrcsSttsCd" name="schTaskPrcsSttsCd" class="input" style="width: 120px;">
<option value="">전체</option>
<c:forEach var="code" items="${taskPrcsSttsCdList}">
<option value="${code.cdId}">${code.cdNm}</option>
</c:forEach>
</select>
<c:forEach var="code" items="${taskPrcsSttsCdList}">
<label style="margin-right: 10px; cursor: pointer;">
<input type="checkbox" name="schTaskPrcsSttsCd" value="${code.cdId}" class="schTaskPrcsSttsCdCheckbox"/>
${code.cdNm}
</label>
</c:forEach>
</li>
</ul>
<ul class="rig2">
@ -117,7 +117,12 @@
var schInspYmdEnd = $.trim(nvl($("#schInspYmdEnd").val(), ""));
var schVhclno = $.trim(nvl($("#schVhclno").val(), ""));
var schOwnrNm = $.trim(nvl($("#schOwnrNm").val(), ""));
var schTaskPrcsSttsCd = $.trim(nvl($("#schTaskPrcsSttsCd").val(), ""));
// 체크박스에서 선택된 값들을 배열로 수집
var schTaskPrcsSttsCd = [];
$("input[name='schTaskPrcsSttsCd']:checked").each(function() {
schTaskPrcsSttsCd.push($(this).val());
});
SEARCH_COND.schRcptYmdStart = schRcptYmdStart.replace(/-/g, '');
SEARCH_COND.schRcptYmdEnd = schRcptYmdEnd.replace(/-/g, '');
@ -139,7 +144,12 @@
if (SEARCH_COND.schInspYmdEnd) params.push('schInspYmdEnd=' + encodeURIComponent(SEARCH_COND.schInspYmdEnd));
if (SEARCH_COND.schVhclno) params.push('schVhclno=' + encodeURIComponent(SEARCH_COND.schVhclno));
if (SEARCH_COND.schOwnrNm) params.push('schOwnrNm=' + encodeURIComponent(SEARCH_COND.schOwnrNm));
if (SEARCH_COND.schTaskPrcsSttsCd) params.push('schTaskPrcsSttsCd=' + encodeURIComponent(SEARCH_COND.schTaskPrcsSttsCd));
// 배열로 전달
if (SEARCH_COND.schTaskPrcsSttsCd && SEARCH_COND.schTaskPrcsSttsCd.length > 0) {
SEARCH_COND.schTaskPrcsSttsCd.forEach(function(val) {
params.push('schTaskPrcsSttsCd=' + encodeURIComponent(val));
});
}
return baseUrl + (params.length ? ('?' + params.join('&')) : '');
};
@ -172,21 +182,31 @@
};
// 처리상태 코드 -> 텍스트 변환
var getTaskPrcsSttsCdText = function(code) {
if (!code) return '전체';
var $option = $("#schTaskPrcsSttsCd option[value='" + code + "']");
return $option.length > 0 ? $option.text() : code;
var getTaskPrcsSttsCdText = function(codeArray) {
if (!codeArray || codeArray.length === 0) return '전체';
var textArray = [];
codeArray.forEach(function(code) {
var $checkbox = $("input[name='schTaskPrcsSttsCd'][value='" + code + "']");
if ($checkbox.length > 0) {
textArray.push($checkbox.parent().text().trim());
} else {
textArray.push(code);
}
});
return textArray.join(', ');
};
// 값 포맷팅 함수
var formatValue = function(field, value) {
if (!value) return '(공백)';
if (field.indexOf('Ymd') > -1) {
return formatDate(value);
return value ? formatDate(value) : '(공백)';
}
if (field === 'schTaskPrcsSttsCd') {
return getTaskPrcsSttsCdText(value);
}
if (!value || (Array.isArray(value) && value.length === 0)) {
return '(공백)';
}
return value;
};
@ -196,16 +216,38 @@
'schVhclno', 'schOwnrNm', 'schTaskPrcsSttsCd'];
searchFields.forEach(function(field) {
var currentValue = SEARCH_COND[field] || '';
var lastValue = LAST_GRID_SEARCH_COND[field] || '';
if (currentValue !== lastValue) {
differences.push({
field: field,
label: fieldLabels[field],
oldValue: lastValue,
newValue: currentValue
});
var currentValue = SEARCH_COND[field];
var lastValue = LAST_GRID_SEARCH_COND[field];
// 배열 비교 (처리상태)
if (field === 'schTaskPrcsSttsCd') {
currentValue = currentValue || [];
lastValue = lastValue || [];
// 배열을 정렬해서 비교
var currentStr = currentValue.slice().sort().join(',');
var lastStr = lastValue.slice().sort().join(',');
if (currentStr !== lastStr) {
differences.push({
field: field,
label: fieldLabels[field],
oldValue: lastValue,
newValue: currentValue
});
}
} else {
currentValue = currentValue || '';
lastValue = lastValue || '';
if (currentValue !== lastValue) {
differences.push({
field: field,
label: fieldLabels[field],
oldValue: lastValue,
newValue: currentValue
});
}
}
});
@ -626,7 +668,8 @@
$("#schInspYmdEnd").val("");
$("#schVhclno").val("");
$("#schOwnrNm").val("");
$("#schTaskPrcsSttsCd").val("");
// 체크박스 모두 해제
$("input[name='schTaskPrcsSttsCd']").prop('checked', false);
self.grid.reload();
});
@ -678,7 +721,18 @@
// 검색 조건 파라미터 추가
setSearchCond();
$.each(SEARCH_COND, function(key, value) {
if (value) {
if (key === 'schTaskPrcsSttsCd') {
// 배열인 경우 각각 추가
if (value && value.length > 0) {
value.forEach(function(val) {
$form.append($('<input>', {
type: 'hidden',
name: key,
value: val
}));
});
}
} else if (value) {
$form.append($('<input>', {
type: 'hidden',
name: key,

Loading…
Cancel
Save