차량정원 체크 추가

master
mjkhan21 6 months ago
parent 1dadb53e7e
commit ecacd151f2

@ -4,8 +4,11 @@ import java.util.List;
import javax.annotation.Resource;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.code.dao.CodeMapper;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.crdn.CrdnQuery;
import cokr.xit.fims.excl.LevyExcl;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.dao.LevyMapper;
import cokr.xit.fims.mngt.service.bean.TaskProcessor;
@ -18,6 +21,11 @@ public class ChongnoTaskProcessor extends TaskProcessor {
vltnCdGrps.set(TASK_SE_CD, "FIM090");
}
@Resource(name = "levyMapper")
private LevyMapper levyMapper;
@Resource(name = "codeMapper")
private CodeMapper codeMapper;
@Override
public String[] getExtraCdGrps(String taskSeCd) {
if (TASK_SE_CD.equals(taskSeCd))
@ -31,9 +39,6 @@ public class ChongnoTaskProcessor extends TaskProcessor {
|| super.isPreImposable(taskSeCd);
}
@Resource(name = "levyMapper")
private LevyMapper levyMapper;
@Override
public int[] getBasicAmt(Crdn crdn) {
String taskSeCd = crdn.getTaskSeCd();
@ -70,7 +75,8 @@ public class ChongnoTaskProcessor extends TaskProcessor {
@Override
public String getSealCd3(String taskSeCd, String sndngSeCd) {
if (TASK_SE_CD.equals(taskSeCd)) {
if ("11".equals(sndngSeCd))
return "E";
}
return super.getSealCd3(taskSeCd, sndngSeCd);
}
@ -82,4 +88,37 @@ public class ChongnoTaskProcessor extends TaskProcessor {
default -> super.getNtrisInterface(taskSeCd);
};
}
@Override
public String getNoticeDelivery(String taskSeCd) {
if (TASK_SE_CD.equals(taskSeCd))
return "postplus";
else
return super.getNoticeDelivery(taskSeCd);
}
private int capacity = -1;
@Override
public LevyExcl getLevyExcl(Crdn crdn) {
LevyExcl excl = super.getLevyExcl(crdn);
if (!TASK_SE_CD.equals(crdn.getTaskSeCd()))
return excl;
if (excl != null)
return excl;
if (capacity < 0) {
CommonCode code = codeMapper.getCode("FIM022", "114");
capacity = toInt(notEmpty(code, "capacity").getEtc1());
}
if (capacity == 0)
return null;
int vhclCpct = crdn.getVhclCpct();
if (vhclCpct > 0 && vhclCpct < capacity)
return newLevyExcl(crdn, "1", "114");
return null;
}
}

@ -365,7 +365,7 @@
multiple accept="image/*" hidden />
</form>
<div class="col-md-12">
<button type="button" name="btnAddFile" class="btn btn-primary">이미지 추가</button>
<button type="button" name="btnAddFile" class="btn btn-primary">사진 추가</button>
<button type="button" name="btnCancelAddFile" class="btn btn-primary">선택 사진 삭제</button>
</div>
<div name="display" class="oy-scroll h-px-600 border-default">

@ -150,6 +150,9 @@
</div>
<span class="container-window-btn-right">
<input name="vehicleUpload" type="file" hidden>
<button name="btnVehicleReqs" type="button" class="btn btn-primary">차적조회조건</button>
<button name="btnVehicleUpdate" type="button" class="btn btn-primary">차적정보설정</button>
<span slot="button">
<template class="pvs bpv">
<slot>
@ -290,12 +293,15 @@ $(document).ready(function(){
ctrl.query = { pageNum : 1, fetchSize : ctrl.defaultFetchSize };
ctrl.dataset.onDatasetChange = (obj, option) => {
var t = $P.getGridTemplate();
var trs = Apply.fromDataset.getTbody(ctrl.dataset, t.found, t.notFound, t.replacer);
$P.renderCrdnList(obj["Paging"]?.totalSize, ctrl.dataset.length, trs, option);
$P.pagingSupport.setPagingInfo(obj);
let disableVehicleBtns = ctrl.dataset.getDataset()
.filter(info => "01" == info.CRDN_STTS_CD).length < 1;
$('button[name^="btnVehicle"]').prop("disabled", disableVehicleBtns);
};
ctrl.dataset.onCurrentChange = (dataItem) => {
@ -398,6 +404,48 @@ $(document).ready(function(){
ctrl.download();
ctrl.query.includePhoto = null;
};
$P.fnVehicleReqs = () => {
let crdnIds = ctrl.dataset.getDataset()
.filter(info => "01" == info.CRDN_STTS_CD)
.map(info => info.CRDN_ID);
download.get({
url: wctx.url("/crdn/crdn06/010/vehicleReqs.do"),
data: {crdnIds: crdnIds.join(",")}
});
}
$P.fnVehicleUpdate = () => {
let selector = "input[name='vehicleUpload']",
upload = $(selector),
uploadSet = uploadSupport(selector);
uploadSet.onCurrentChange = item => {
let upload = item.data,
crdnIds = ctrl.dataset.getDataset()
.filter(info => "01" == info.CRDN_STTS_CD)
.map(info => info.CRDN_ID);
upload({
url : wctx.url("/crdn/crdn06/010/uploadVehicles.do"),
data : {
crdnIds: crdnIds.join(","),
upload: item.data
},
success : (resp) => {
if (resp.saved) {
uploadSet.setData([]);
if(resp.alertMessage)
dialog.alert(resp.alertMessage);
else {
$P.refreshCrdnList();
}
} else {
dialog.alert(resp.failReason);
}
}
});
}
upload.click();
}
$P.checkCrdnList = (element, bool) => {
GRID.checkbox.sync(element, bool);
@ -540,7 +588,9 @@ $(document).ready(function(){
$P.$findn("btnSearch").on('click', () => $P.searchCrdnList());
$P.$findn("btnExcel").on('click', () => $P.fnExcelDown(false));
$P.$findn("btnExcelForApproval").on('click', () => $P.fnExcelDown(true));
$P.$findn("btnVehicleReqs").on('click', () => $P.fnVehicleReqs());
$P.$findn("btnVehicleUpdate").on('click', () => $P.fnVehicleUpdate());
$P.$findn("btnFindUser").on("click", () => $P.fnGetFindUser()); // 사용자 검색
// 동적검색에서 엔터(Enter) 키를 누르면 검색한다.
$P.$findn("term").onEnterPress($P.searchCrdnList);

@ -167,18 +167,33 @@
<tr>
<th style="width: 90px;">위반코드</th>
<th style="width: 300px;">위반항목</th>
<th colspan="4" style="width: 700px;">위반법</th>
<%--
<th style="width: 360px;">위반법명</th>
<th style="width: 160px;">위반법1</th>
<th style="width: 160px;">위반법2</th>
<th style="width: 160px;">위반법기타</th>
--%>
<th colspan="2" style="width: 240px;">회계구분</th>
<%--
<th style="width: 120px;">회계구분코드</th>
<th style="width: 120px;">회계구분명</th>
--%>
<th colspan="2" style="width: 350px;">세목</th>
<%--
<th style="width: 120px;">세목코드</th>
<th style="width: 300px;">세목명</th>
--%>
<th colspan="2" style="width: 350px;">운영항목</th>
<%--
<th style="width: 120px;">운영항목코드</th>
<th style="width: 300px;">운영항목명</th>
--%>
<th colspan="2" style="width: 350px;">특별회계사업</th>
<%--
<th style="width: 160px;">특별회계사업코드</th>
<th style="width: 300px;">특별회계사업명</th>
--%>
<th class="dummy-th"></th>
</tr>
</thead>
@ -198,40 +213,40 @@
<input type="text" class="form-control w-100" value="{VLTN_ARTCL}" />
</td>
<td data-col="vltnLawNm">
<input type="text" class="form-control w-100" value="{VLTN_LAW_NM}" />
<input type="text" class="form-control w-100" value="{VLTN_LAW_NM}" placeholder="위반법명"/>
</td>
<td data-col="vltnLaw1">
<input type="text" class="form-control w-100" value="{VLTN_LAW1}" />
<input type="text" class="form-control w-100" value="{VLTN_LAW1}" placeholder="위반법1"/>
</td>
<td data-col="vltnLaw2">
<input type="text" class="form-control w-100" value="{VLTN_LAW2}" />
<input type="text" class="form-control w-100" value="{VLTN_LAW2}" placeholder="위반법2"/>
</td>
<td data-col="vltnLawEtc">
<input type="text" class="form-control w-100" value="{VLTN_LAW_ETC}" />
<input type="text" class="form-control w-100" value="{VLTN_LAW_ETC}" placeholder="위반법기타"/>
</td>
<td data-col="acntgSeCd">
<input type="text" class="form-control w-100" value="{ACNTG_SE_CD}" />
<input type="text" class="form-control w-100" value="{ACNTG_SE_CD}" placeholder="코드"/>
</td>
<td data-col="acntgSeNm">
<input type="text" class="form-control w-100" value="{ACNTG_SE_NM}" />
<input type="text" class="form-control w-100" value="{ACNTG_SE_NM}" placeholder="이름"/>
</td>
<td data-col="txitmCd">
<input type="text" class="form-control w-100" value="{TXITM_CD}" />
<input type="text" class="form-control w-70" value="{TXITM_CD}" placeholder="코드"/>
</td>
<td data-col="txitmNm">
<input type="text" class="form-control w-100" value="{TXITM_NM}" />
<input type="text" class="form-control w-100" value="{TXITM_NM}" placeholder="이름"/>
</td>
<td data-col="operItemCd">
<input type="text" class="form-control w-100" value="{OPER_ITEM_CD}" />
<input type="text" class="form-control w-100" value="{OPER_ITEM_CD}" placeholder="코드"/>
</td>
<td data-col="operItemNm">
<input type="text" class="form-control w-100" value="{OPER_ITEM_NM}" />
<input type="text" class="form-control w-100" value="{OPER_ITEM_NM}" placeholder="이름"/>
</td>
<td data-col="spclBizCd">
<input type="text" class="form-control w-100" value="{SPCL_BIZ_CD}" />
<input type="text" class="form-control w-100" value="{SPCL_BIZ_CD}" placeholder="코드"/>
</td>
<td data-col="spclBizNm">
<input type="text" class="form-control w-100" value="{SPCL_BIZ_NM}" />
<input type="text" class="form-control w-100" value="{SPCL_BIZ_NM}" placeholder="이름"/>
</td>
</tr>
</template>

@ -2,21 +2,18 @@
<form id="frmInputDate" name="frmInputDate" method="post">
<div class="container-search">
<div class="row g-1">
<!-- 발송 일자 -->
<div class="col-md-12">
<label for="sndngYmd" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">발송일자</label>
<input type="text" class="form-control form-date" id="sndngYmd" name="sndngYmd"
data-fmt-type="day" title="날짜 선택" maxlength="10" required />
<input type="text" class="form-control form-date" id="sndngYmd" name="sndngYmd" data-fmt-type="day" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-lg bx-calendar bg-white"></button>
</div>
<!-- 발송 종료 일자 -->
<div class="col-md-12">
<label for="sndngEndYmd" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">납기일자</label>
<input type="text" class="form-control form-date" id="sndngEndYmd" name="sndngEndYmd"
data-fmt-type="day" title="날짜 선택" maxlength="10" required />
<input type="text" class="form-control form-date" id="sndngEndYmd" name="sndngEndYmd" data-fmt-type="day" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-lg bx-calendar bg-white"></button>
</div>
<!-- 취급 구분 -->
<div class="col-md-12" id="divPostSndng">
<label class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">우편발송구분</label>
<span class="form-search-linebox">

@ -24,8 +24,7 @@
<div id="table-responsive" class="table-responsive ox-scroll oy-scroll h-px-400">
<table id="DataTables_Table_0" class="table-layout-fixed datatables-ajax table table-bordered dataTable no-footer">
<thead>
<tr>
<th style="width: 650px;">주소</th>
<tr><th style="width: 650px;">주소</th>
<th style="width: 100px;">우편번호</th>
<th clss="dummy-th"></th>
</tr>
@ -41,11 +40,7 @@
<td class="dummy-td"></td>
</tr>
</template>
<template id="addrNotFound">
<tr>
<td valign="top" colspan="3" class="dataTables_empty text-center">조회 결과가 없습니다.</td>
</tr>
</template>
<template id="addrNotFound"><tr><td valign="top" colspan="3" class="dataTables_empty text-center">조회 결과가 없습니다.</td></tr></template>
</table>
</div>
</div>
@ -141,7 +136,7 @@ function getAddr(pageNum){
var errCode = jsonStr.results.common.errorCode;
var errDesc = jsonStr.results.common.errorMessage;
if(errCode != "0"){
alert(errCode+"="+errDesc);
dialog.alert(errCode+"="+errDesc);
}else{
if(jsonStr != null){
addrControl.setData(jsonStr.results);
@ -149,7 +144,7 @@ function getAddr(pageNum){
}
}
,error: function(xhr,status, error){
alert("에러발생");
dialog.alert("에러발생");
}
});
}
@ -160,7 +155,7 @@ function checkSearchedWord(obj){
//특수문자 제거
var expText = /[%=><]/ ;
if(expText.test(obj.value) == true){
alert("특수문자를 입력 할수 없습니다.") ;
dialog.alert("특수문자를 입력 할수 없습니다.") ;
obj.value = obj.value.split(expText).join("");
return false;
}
@ -177,7 +172,7 @@ function checkSearchedWord(obj){
regex = new RegExp( sqlArray[i] ,"gi") ;
if (regex.test(obj.value) ) {
alert("\"" + sqlArray[i]+"\"와(과) 같은 특정문자로 검색할 수 없습니다.");
dialog.alert("\"" + sqlArray[i]+"\"와(과) 같은 특정문자로 검색할 수 없습니다.");
obj.value =obj.value.replace(regex, "");
return false;
}
@ -248,4 +243,4 @@ function fnReturn(){
Componentization.fnMakeResizableTable($("#table-responsive")[0]);
$("#list").hide();
</script>
</script>
Loading…
Cancel
Save