불법조업 외국어선 단속현황 작업 완료

불법조업 외국어선 정보 작업 예정
master
강석 최 2023-06-09 13:43:22 +09:00
parent f9c3b203ce
commit 292f639b3d
12 changed files with 292 additions and 30 deletions

View File

@ -72,7 +72,12 @@ public class UnlawfulFishingController {
}
@PostMapping("/saveCrackdownInfo")
public Integer saveCrackdownInfo(CrackdownInfo crackdownInfo){
public Integer saveCrackdownInfo(@AuthenticationPrincipal UserInfo loginUser, CrackdownInfo crackdownInfo){
crackdownInfo.setWrtOrgan(loginUser.getOgCd());
crackdownInfo.setWrtPart(loginUser.getOfcCd());
crackdownInfo.setWrtUserGrd(loginUser.getTitleCd());
crackdownInfo.setWrtUserNm(loginUser.getUserNm());
crackdownInfo.setWrtDt(LocalDateTime.now());
return unlawfulFishingService.saveCrackdownInfo(crackdownInfo);
}
@ -81,6 +86,13 @@ public class UnlawfulFishingController {
unlawfulFishingService.deleteCrackdownInfo(crackdownInfo.getCdsKey());
}
@GetMapping("/cdiHistoryDiv")
public ModelAndView cdiHistoryDiv(CrackdownInfoHistory cdih){
ModelAndView mav = new ModelAndView("faStatistics/unlawfulFishing/crackdownInfo/cdiHistoryDiv");
mav.addObject("crackdownInfo", unlawfulFishingService.selectCrackdownInfoHistory(cdih));
return mav;
}
@GetMapping("/cdiSelectModal")
public ModelAndView crackdownInfoSelectModal(@AuthenticationPrincipal UserInfo loginUser, UnlawfulFishingParam params){
ModelAndView mav = new ModelAndView("faStatistics/unlawfulFishing/crackdownInfo/cdiSelectModal");

View File

@ -16,8 +16,10 @@ public class UnlawfulFishingParam extends BaseModel {
private Integer year;
private Integer month;
private String caseAgency;
private String casePoliceOfficer;
private String crackdownPolice;
private String crackdownBoat;
private String napoPoint;
private String boatNameKr;
private String boatNnySung;
private String boatNnySi;

View File

@ -6,6 +6,7 @@ import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import java.io.Serializable;
import java.util.List;
@Getter
@Setter
@ -25,6 +26,9 @@ public class CrackdownInfoHistory extends CrackdownInfoBaseEntity {
@Column(name = "version_no")
private Integer versionNo;
@Transient
List<ViolationInfoHistory> violationList;
@Embeddable
@Data
@NoArgsConstructor

View File

@ -8,5 +8,5 @@ import java.util.Optional;
public interface CrackdownInfoHistoryRepository extends JpaRepository<CrackdownInfoHistory, CrackdownInfoHistory.CrackdownInfoHistoryId> {
Optional<CrackdownInfoHistory> findTopByCdsKeyOrderByVersionNoDesc(Integer cdsKey);
List<CrackdownInfoHistory> findByCdsKey(Integer cdsKey);
List<CrackdownInfoHistory> findByCdsKeyOrderByVersionNoDesc(Integer cdsKey);
}

View File

@ -140,7 +140,7 @@ public class UnlawfulFishingService {
}
public List<CrackdownInfoHistory> selectCrackdownInfoHistoryList(Integer cdsKey) {
return cdihRepository.findByCdsKey(cdsKey);
return cdihRepository.findByCdsKeyOrderByVersionNoDesc(cdsKey);
}
@Transactional
@ -148,6 +148,12 @@ public class UnlawfulFishingService {
cdiRepository.bulkModifyingByCdsKeyToStatus(cdsKey, "DST008");
}
public CrackdownInfoHistory selectCrackdownInfoHistory(CrackdownInfoHistory cdih) {
cdih = cdihRepository.findById(new CrackdownInfoHistory.CrackdownInfoHistoryId(cdih.getCdsKey(), cdih.getVersionNo())).orElse(null);
cdih.setViolationList(vihRepository.findByCdsKeyAndVersionNoOrderByViolationKeyAsc(cdih.getCdsKey(), cdih.getVersionNo()));
return cdih;
}
public IllegalShipInfo selectIllegalShipInfo(Integer fbKey) {
return isiRepository.findByFbKey(fbKey).orElse(new IllegalShipInfo());
}
@ -166,5 +172,4 @@ public class UnlawfulFishingService {
public Integer selectCrackdownInfoListCnt(UnlawfulFishingParam params) {
return unlawfulFishingMapper.selectCrackdownInfoListCnt(params);
}
}

View File

@ -61,5 +61,44 @@
</select>
<sql id="selectCrackdownInfoListWhere">
where status &lt;> 'DST008'
<if test='caseAgency != null and caseAgency != ""'>
and case_agency = #{caseAgency}
</if>
<if test='casePoliceOfficer != null and casePoliceOfficer != ""'>
and case_police_officer like '%'||#{casePoliceOfficer}||'%'
</if>
<if test='crackdownPolice != null and crackdownPolice != ""'>
and crackdown_police = #{crackdownPolice}
</if>
<if test='crackdownBoat != null and crackdownBoat != ""'>
and crackdown_boat = #{crackdownBoat}
</if>
<if test='caseNum != null and caseNum != ""'>
and case_num like '%'||#{caseNum}||'%'
</if>
<if test='mmsi != null and mmsi != ""'>
and mmsi like '%'||#{mmsi}||'%'
</if>
<if test='napoPoint != null and napoPoint != ""'>
and (napo_sea_point_lon like '%'||#{napoPoint}||'%'
or napo_sea_point_lat like '%'||#{napoPoint}||'%'
or napo_sea_point_detail like '%'||#{napoPoint}||'%')
</if>
<if test='dateSelector == "napoDt"'>
<if test='startDate != null and startDate != ""'>
and napo_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and napo_dt &lt;= #{endDate}::date
</if>
</if>
<if test='dateSelector == "wrtDt"'>
<if test='startDate != null and startDate != ""'>
and wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and wrt_dt &lt;= #{endDate}::date
</if>
</if>
</sql>
</mapper>

View File

@ -251,19 +251,25 @@ function fileCheck(flag, files){
}
function getChildOption(parentCd, selectedCd, target){
const targetEl = $(target);
if(parentCd === ""){
targetEl.attr("disabled", "disabled");
}else{
$.ajax({
url: '/selectBoxOptions',
data: {categoryCd: parentCd, selectedCd: selectedCd},
type: 'GET',
dataType:"html",
success: function(html){
$(target).empty().append(html);
targetEl.empty().append(html);
targetEl.removeAttr("disabled");
},
error:function(e){
ajaxErrorAction(e);
}
});
}
}
function dynamicOption(targetTagName, code, defaultOptionName='') {
$(targetTagName).empty();

View File

@ -1,4 +1,16 @@
$(function(){
$("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd",
language: "ko",
autoclose: true
});
})
$(document).on('change', '#searchFormPolice', function (){
getChildOption(this.value, null, "#searchFormBoat");
})
$(document).on('click', '#addCrackdownStatusBtn', function (){
getCdiEditModal(null);
})
@ -44,6 +56,10 @@ $(document).on('change', '#crackdownPolice', function (){
getChildOption(this.value, null, "#crackdownBoat");
});
$(document).on('change', '#napoDate, #napoTime', function (){
$("#napoDt").val($("#napoDate").val()+" "+$("#napoTime").val());
})
$(document).on('click', '.saveEditInfoBtn', function (){
saveCrackdownInfo($(this).attr("data-status"));
})
@ -52,6 +68,13 @@ $(document).on('click', '.cdiTr', function (){
getCdiViewModal($(this).attr('data-cdskey'));
})
$(document).on('click', '#fishingBoatViewTab', function (){
$(this).parents(".modal-dialog")[0].className = "modal-dialog modal-xl modal-dialog-scrollable";
})
$(document).on('click', '#fishingBoatVersionTab', function (){
$(this).parents(".modal-dialog")[0].className = "modal-dialog modal-xxl modal-dialog-scrollable";
})
$(document).on('click', '#cdiEditBtn', function (){
$("#cdiViewModal").modal('hide');
getCdiEditModal($("#fishingBoatViewTabPanel").find('.cdsKey').val());
@ -80,6 +103,25 @@ $(document).on('click', '#cdiDeleteBtn', function (){
}
})
$(document).on('click', '.historyTr', function (){
const historyTr = $(this)
$.ajax({
url: '/unlawfulFishing/cdiHistoryDiv',
data: {
cdsKey: historyTr.find('.cdsKey').val(),
versionNo: historyTr.find('.versionNo').val()
},
type: 'GET',
dataType:"html",
success: function(html){
$("#historyInfoDiv").empty().append(html)
},
error:function(e){
ajaxErrorAction(e);
}
});
})
function getCdiEditModal(cdsKey){
$.ajax({
url: '/unlawfulFishing/cdiEditModal',

View File

@ -127,6 +127,7 @@
<label for="napoDate" class="col-sm-1 col-form-label col-form-label-sm text-center">나포일시</label>
<div class="col-sm-2">
<div class="input-group">
<input type="hidden" name="napoDt" id="napoDt" th:value="${#temporals.format(crackdownInfo.napoDt, 'yyyy-MM-dd HH:mm')}">
<input type="text" class="form-control form-control-sm dateSelector" id="napoDate" placeholder="yyyy-mm-dd" th:value="${#temporals.format(crackdownInfo.napoDt, 'yyyy-MM-dd')}" autocomplete="off">
<input type="text" class="form-control form-control-sm timeInputer" id="napoTime" placeholder="hh:mm" th:value="${#temporals.format(crackdownInfo.napoDt, 'HH:mm')}" autocomplete="off">
</div>

View File

@ -0,0 +1,153 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="row border border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">사건번호</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownInfo.caseNum}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">위반사항</label>
<div class="col-sm-8">
<div class="row">
<th:block th:each="violation:${crackdownInfo.violationList}">
<th:block th:each="code:${session.commonCode.get('VT')}">
<div class="col-4" th:if="${code.itemCd eq violation.violation}">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${code.itemValue}"/>
</div>
</th:block>
</th:block>
</div>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center fs-11">사건담당경찰서</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${session.commonCode.get('OG')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownInfo.caseAgency}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center fs-11">사건담당경찰관</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownInfo.casePoliceOfficer}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">단속경찰서</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${session.commonCode.get('CPO')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownInfo.crackdownPolice}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">단속함정</label>
<div class="col-sm-2">
<th:block th:each="code:${session.commonCode.get(crackdownInfo.crackdownPolice)}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownInfo.crackdownBoat}" th:value="${code.itemValue}">
</th:block>
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">MMSI.NO</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownInfo.mmsi}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">침범유형</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${session.commonCode.get('IST')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownInfo.invasionType}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">NLL</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownInfo.nll eq 'Y'?'O':(crackdownInfo.nll eq 'N'?'X':crackdownInfo.nll)}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center fs-11">압송/현장조사</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${crackdownInfo.fieldIvsgt eq 'C'?'압송':(crackdownInfo.fieldIvsgt eq 'F'?'현장조사':crackdownInfo.fieldIvsgt)}">
</div>
</div>
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">나포일시</label>
<div class="col-sm-2 border-end border-secondary">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="${#temporals.format(crackdownInfo.napoDt, 'yyyy-MM-dd hh:mm')}">
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">나포장소</label>
<div class="col-sm-8">
<input type="text" class="form-control form-control-sm border-0" readonly th:value="|${crackdownInfo.napoSeaPointLon} ${crackdownInfo.napoSeaPointLat} ${crackdownInfo.napoSeaPointDetail}|">
</div>
</div>
<th:block th:with="damageFlag=${(crackdownInfo.obstrExspdCnt ne null and crackdownInfo.obstrExspdCnt ne 0) ||
(crackdownInfo.personDamageCnt ne null and crackdownInfo.personDamageCnt ne 0 )||
(crackdownInfo.personDamageAmount ne null and crackdownInfo.personDamageAmount ne 0) ||
!#strings.isEmpty(crackdownInfo.personDamageDetail) ||
(crackdownInfo.materialDamageCnt ne null and crackdownInfo.materialDamageCnt ne 0) ||
(crackdownInfo.materialDamageAmount ne null and crackdownInfo.materialDamageAmount ne 0) ||
!#strings.isEmpty(crackdownInfo.materialDamageDetail)}">
<th:block th:if="${damageFlag}">
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center bg-lightB2">특수공무집행방해</label>
<div class="col-sm-11">
<div class="row border-bottom border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center bg-lightB1">인적피해</label>
<div class="col-sm-11">
<div class="row border-bottom border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">발생건수</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownInfo.obstrExspdCnt>0}" th:text="|${crackdownInfo.obstrExspdCnt}건|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">피해인원</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownInfo.personDamageCnt>0}" th:text="|${crackdownInfo.personDamageCnt}인|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">피해액</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownInfo.personDamageAmount>0}" th:text="|${crackdownInfo.personDamageAmount}만원|"></th:block>
</label>
</div>
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">상세내용</label>
<div class="col-sm-11" th:utext="${crackdownInfo.personDamageDetail}">
</div>
</div>
</div>
</div>
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center bg-lightB1">물적피해</label>
<div class="col-sm-11">
<div class="row border-bottom border-secondary">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">발생건수</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownInfo.materialDamageCnt>0}" th:text="|${crackdownInfo.materialDamageCnt}건|"></th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">피해액</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownInfo.materialDamageAmount>0}" th:text="|${crackdownInfo.materialDamageAmount}만원|"></th:block>
</label>
</div>
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">상세내용</label>
<div class="col-sm-11" th:utext="${crackdownInfo.materialDamageDetail}">
</div>
</div>
</div>
</div>
</div>
</div>
</th:block>
</th:block>
<th:block th:with="catchFlag=${crackdownInfo.catchFishSpecies ne null ||
crackdownInfo.catchCnt ne 0}">
<th:block th:if="${catchFlag}">
<div class="row border border-secondary border-top-0">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center bg-lightB1">어획물축소기재</label>
<div class="col-sm-11">
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">어종</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start"
th:text="${crackdownInfo.catchFishSpecies}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">수량</label>
<label class="col-sm-2 col-form-label col-form-label-sm py-2 border-end border-secondary text-start">
<th:block th:if="${crackdownInfo.catchCnt>0}" th:text="|${crackdownInfo.catchCnt}kg|"></th:block>
</label>
</div>
</div>
</div>
</th:block>
</th:block>
</html>

View File

@ -66,13 +66,13 @@
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">단속경찰서</label>
<div class="col-sm-2 border-end border-secondary">
<th:block th:each="code:${cpoList}">
<th:block th:each="code:${session.commonCode.get('CPO')}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownInfo.crackdownPolice}" th:value="${code.itemValue}">
</th:block>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm fw-bold bg-label py-2 border-end border-secondary text-center">단속함정</label>
<div class="col-sm-2">
<th:block th:each="code:${boatList}">
<th:block th:each="code:${session.commonCode.get(crackdownInfo.crackdownPolice)}">
<input type="text" class="form-control form-control-sm border-0" readonly th:if="${code.itemCd eq crackdownInfo.crackdownBoat}" th:value="${code.itemValue}">
</th:block>
</div>
@ -198,7 +198,7 @@
</tr>
</thead>
<tbody>
<tr class="versionInfoTr" th:each="versionInfo:${crackdownInfo.crackdownInfoHistoryList}">
<tr class="historyTr" th:each="versionInfo:${crackdownInfo.crackdownInfoHistoryList}">
<input type="hidden" class="cdsKey" th:value="${versionInfo.cdsKey}">
<input type="hidden" class="versionNo" th:value="${versionInfo.versionNo}">
<td><input type="checkbox" class="versionInfoChkbox"></td>
@ -217,7 +217,7 @@
</tbody>
</table>
</div>
<div class="col-8" id="versionInfoDiv">
<div class="col-8" id="historyInfoDiv">
</div>
</div>

View File

@ -25,7 +25,7 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form method="get" th:action="@{/faStatistics/crackdownInfo}" id="cdsSearchForm">
<form method="get" th:action="@{/unlawfulFishing/crackdownInfo}" id="cdsSearchForm">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-end py-1">
<div class="col-8">
@ -42,7 +42,7 @@
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="사건담당경찰관">
<input type="text" class="form-control form-control-sm" name="casePoliceOfficer" placeholder="사건담당경찰관">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="crackdownPolice" id="searchFormPolice">
@ -54,25 +54,23 @@
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="crackdownBoat" id="searchFormBoat" disabled>
<select class="form-select form-select-sm" name="crackdownBoat" id="searchFormBoat" th:disabled="${#strings.isEmpty(searchParams.crackdownPolice)}">
<option value="">단속함정</option>
<th:block th:each="cpoNum:${#numbers.sequence(1, #lists.size(session.commonCode.get('CPO')))}">
<th:block th:each="code:${session.commonCode.get('CPO'+cpoNum)}">
<option th:class="${code.categoryCd}" th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.crackdownBoat}" style="display: none;"></option>
</th:block>
<th:block th:each="code:${session.commonCode.get(searchParams.crackdownPolice)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.crackdownBoat}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end pb-1">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="사건번호">
<input type="text" class="form-control form-control-sm" name="caseNum" placeholder="사건번호">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="MMSI.NO">
<input type="text" class="form-control form-control-sm" name="mmsi" placeholder="MMSI.NO">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="나포장소">
<input type="text" class="form-control form-control-sm" name="napoPoint" placeholder="나포장소">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">