Merge branch 'master' of http://118.219.150.34:50501/DBNT/FAISP
commit
84185f8df4
|
|
@ -9,7 +9,6 @@ import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.ProcessResul
|
|||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.SailorRepository;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.ViolationRepository;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.CrackdownStatusService;
|
||||
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest;
|
||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
|
|
@ -61,7 +60,7 @@ public class CrackdownStatusController {
|
|||
}
|
||||
|
||||
@GetMapping("/crackdownStatus/crackdownStatusViewModal")
|
||||
public ModelAndView internationalCrimeArrestViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||
public ModelAndView crackdownStatusViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusViewModal");
|
||||
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
|
||||
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()));
|
||||
|
|
@ -89,6 +88,14 @@ public class CrackdownStatusController {
|
|||
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.setWrtNm(loginUser.getUserNm());
|
||||
crackdownStatus.setWrtDt(LocalDateTime.now());
|
||||
crackdownStatus.setFishingBoat(new FishingBoat());
|
||||
crackdownStatus.getFishingBoat().setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.getFishingBoat().setWrtNm(loginUser.getUserNm());
|
||||
crackdownStatus.getFishingBoat().setWrtDt(LocalDateTime.now());
|
||||
crackdownStatus.setProcessResult(new ProcessResult());
|
||||
crackdownStatus.getProcessResult().setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.getProcessResult().setWrtNm(loginUser.getUserNm());
|
||||
crackdownStatus.getProcessResult().setWrtDt(LocalDateTime.now());
|
||||
}
|
||||
mav.addObject("crackdownStatus", crackdownStatus);
|
||||
return mav;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper;
|
||||
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper;
|
||||
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface ProcessResultMapper {
|
||||
List<ProcessResult> selectProcessResultList(ProcessResult processResult);
|
||||
Integer selectProcessResultListCnt(ProcessResult processResult);
|
||||
}
|
||||
|
|
@ -98,8 +98,7 @@ public class CrackdownStatus extends BaseModel {
|
|||
private LocalDateTime fieldIvsgtReleaseDt;
|
||||
|
||||
@Column(name = "field_ivsgt_time_taken")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime fieldIvsgtTimeTaken;
|
||||
private String fieldIvsgtTimeTaken;
|
||||
|
||||
@Column(name = "pressurized_start_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||
import javax.persistence.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
@ -33,12 +34,10 @@ public class ProcessResult extends BaseModel {
|
|||
private String processStatus;
|
||||
|
||||
@Column(name = "pressurized_time_taken")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime pressurizedTimeTaken;
|
||||
private String pressurizedTimeTaken;
|
||||
|
||||
@Column(name = "warrant_req_take_time")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime warrantReqTakeTime;
|
||||
private String warrantReqTakeTime;
|
||||
|
||||
@Column(name = "is_ivsgt_stop")
|
||||
private String isIvsgtStop;
|
||||
|
|
@ -130,6 +129,23 @@ public class ProcessResult extends BaseModel {
|
|||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime wrtDt;
|
||||
|
||||
@Column(name = "upd_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime updDt;
|
||||
|
||||
@Transient
|
||||
private CrackdownStatus crackdownStatus;
|
||||
@Transient
|
||||
private List<Violation> violationList;
|
||||
@Transient
|
||||
private FishingBoat fishingBoat;
|
||||
@Transient
|
||||
private String boatNameKr;
|
||||
|
||||
@Transient
|
||||
private Integer fbKey;
|
||||
@Transient
|
||||
private String processStatusEtc;
|
||||
@Transient
|
||||
private String executionDetailEtc;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate;
|
|||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Getter
|
||||
|
|
@ -41,7 +42,8 @@ public class Sailor extends BaseModel {
|
|||
private String sailorContact;
|
||||
|
||||
@Column(name = "birthdate")
|
||||
private String birthdate;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate birthdate;
|
||||
|
||||
@Column(name = "residence")
|
||||
private String residence;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,102 @@
|
|||
package com.dbnt.faisp.main.faStatistics.crackdownsStatus;
|
||||
|
||||
import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.FishingBoat;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.CrackdownStatusService;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.service.ProcessResultService;
|
||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/faStatistics")
|
||||
public class processResultController {
|
||||
|
||||
private final AuthMgtService authMgtService;
|
||||
private final ProcessResultService processResultService;
|
||||
private final ViolationRepository violationRepository;
|
||||
private final CrackdownStatusRepository crackdownStatusRepository;
|
||||
private final FishingBoatRepository fishingBoatRepository;
|
||||
|
||||
@RequestMapping("/processResult")
|
||||
public ModelAndView processResult(@AuthenticationPrincipal UserInfo loginUser, ProcessResult processResult) {
|
||||
ModelAndView mav = new ModelAndView("faStatistics/processResult/processResult");
|
||||
|
||||
//메뉴권한 확인
|
||||
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/processResult").get(0).getAccessAuth();
|
||||
|
||||
mav.addObject("accessAuth", accessAuth);
|
||||
|
||||
processResult.setQueryInfo();
|
||||
List<ProcessResult> processResultList = processResultService.selectProcessResultList(processResult);
|
||||
|
||||
for (ProcessResult pr:processResultList) {
|
||||
pr.setCrackdownStatus(crackdownStatusRepository.findByCdsKey(pr.getCdsKey()));
|
||||
pr.setFishingBoat(fishingBoatRepository.findByCdsKey(pr.getCdsKey()));
|
||||
pr.setViolationList(violationRepository.findByFbKey(pr.getFishingBoat().getFbKey()));
|
||||
}
|
||||
|
||||
mav.addObject("processResultList", processResultList);
|
||||
processResult.setContentCnt(processResultService.selectProcessResultListCnt(processResult));
|
||||
processResult.setPaginationInfo();
|
||||
mav.addObject("searchParams", processResult);
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/processResult/processResultViewModal")
|
||||
public ModelAndView processResultViewModal(@AuthenticationPrincipal UserInfo loginUser, ProcessResult processResult){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/processResult/processResultViewModal");
|
||||
processResult = processResultService.selectProcessResult(processResult.getPrKey());
|
||||
processResult.setCrackdownStatus(crackdownStatusRepository.findByCdsKey(processResult.getCdsKey()));
|
||||
processResult.setFbKey(fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).getFbKey());
|
||||
processResult.setBoatNameKr(fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).getBoatNameKr());
|
||||
processResult.setViolationList(violationRepository.findByFbKey(processResult.getFbKey()));
|
||||
|
||||
mav.addObject("processResult", processResult);
|
||||
mav.addObject("userSeq",loginUser.getUserSeq());
|
||||
//메뉴권한 확인
|
||||
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/processResult").get(0).getAccessAuth());
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/processResult/processResultEditModal")
|
||||
public ModelAndView crackdownStatusEditModal(@AuthenticationPrincipal UserInfo loginUser, ProcessResult processResult){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/processResult/processResultEditModal");
|
||||
if(processResult.getPrKey()!=null){
|
||||
processResult = processResultService.selectProcessResult(processResult.getPrKey());
|
||||
processResult.setCrackdownStatus(crackdownStatusRepository.findByCdsKey(processResult.getCdsKey()));
|
||||
processResult.setFbKey(fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).getFbKey());
|
||||
processResult.setBoatNameKr(fishingBoatRepository.findByCdsKey(processResult.getCdsKey()).getBoatNameKr());
|
||||
processResult.setViolationList(violationRepository.findByFbKey(processResult.getFbKey()));
|
||||
}else{
|
||||
processResult.setWrtOrgan(loginUser.getOgCd());
|
||||
processResult.setWrtNm(loginUser.getUserNm());
|
||||
processResult.setWrtDt(LocalDateTime.now());
|
||||
}
|
||||
mav.addObject("processResult", processResult);
|
||||
return mav;
|
||||
}
|
||||
|
||||
@PostMapping("/processResult/saveProcessResult")
|
||||
public Integer saveProcessResult(@AuthenticationPrincipal UserInfo loginUser,
|
||||
CrackdownStatus crackdownStatus,
|
||||
FishingBoat fishingBoat,
|
||||
ProcessResult processResult){
|
||||
processResult.setWrtUserSeq(loginUser.getUserSeq());
|
||||
processResult.setFishingBoat(fishingBoat);
|
||||
processResult.setCrackdownStatus(crackdownStatus);
|
||||
return processResultService.saveProcessResult(processResult);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,5 +4,5 @@ import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus;
|
|||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface CrackdownStatusRepository extends JpaRepository<CrackdownStatus, Integer> {
|
||||
|
||||
CrackdownStatus findByCdsKey(Integer cdsKey);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,129 @@
|
|||
package com.dbnt.faisp.main.faStatistics.crackdownsStatus.service;
|
||||
|
||||
|
||||
import com.dbnt.faisp.config.BaseService;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.ProcessResultMapper;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.CrackdownStatus;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.ProcessResult;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Sailor;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.Violation;
|
||||
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.repository.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ProcessResultService extends BaseService {
|
||||
|
||||
private final ProcessResultMapper processResultMapper;
|
||||
private final CrackdownStatusRepository crackdownStatusRepository;
|
||||
private final FishingBoatRepository fishingBoatRepository;
|
||||
private final ViolationRepository violationRepository;
|
||||
private final ProcessResultRepository processResultRepository;
|
||||
private final SailorRepository sailorRepository;
|
||||
|
||||
public List<ProcessResult> selectProcessResultList(ProcessResult processResult) {
|
||||
return processResultMapper.selectProcessResultList(processResult);
|
||||
}
|
||||
|
||||
public Integer selectProcessResultListCnt(ProcessResult processResult) {
|
||||
return processResultMapper.selectProcessResultListCnt(processResult);
|
||||
}
|
||||
|
||||
public ProcessResult selectProcessResult(Integer prKey) {
|
||||
return processResultRepository.findById(prKey).orElse(null);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Integer saveCrackdownStatus(CrackdownStatus crackdownStatus) {
|
||||
if (crackdownStatus.getCrackdownBoatEtc() != null) {
|
||||
crackdownStatus.setCrackdownBoat(crackdownStatus.getCrackdownBoatEtc());
|
||||
}
|
||||
if (crackdownStatus.getCrackdownPoliceEtc() != null) {
|
||||
crackdownStatus.setCrackdownPolice(crackdownStatus.getCrackdownPoliceEtc());
|
||||
}
|
||||
|
||||
Integer cdsKey = crackdownStatusRepository.save(crackdownStatus).getCdsKey();
|
||||
if (crackdownStatus.getFishingBoat() != null) {
|
||||
if (crackdownStatus.getFishingBoat().getBoatMaterialEtc() != null) {
|
||||
crackdownStatus.getFishingBoat().setBoatMaterial(crackdownStatus.getFishingBoat().getBoatMaterialEtc());
|
||||
}
|
||||
if (crackdownStatus.getFishingBoat().getFisheryTypeEtc() != null) {
|
||||
crackdownStatus.getFishingBoat().setFisheryType(crackdownStatus.getFishingBoat().getFisheryTypeEtc());
|
||||
}
|
||||
|
||||
crackdownStatus.getFishingBoat().setCdsKey(cdsKey);
|
||||
Integer fbKey = fishingBoatRepository.save(crackdownStatus.getFishingBoat()).getFbKey();
|
||||
crackdownStatus.getFishingBoat().setFbKey(fbKey);
|
||||
}
|
||||
|
||||
if (crackdownStatus.getProcessResult() != null) {
|
||||
if (crackdownStatus.getProcessResult().getProcessStatusEtc() != null) {
|
||||
crackdownStatus.getProcessResult().setProcessStatus(crackdownStatus.getProcessResult().getProcessStatusEtc());
|
||||
}
|
||||
crackdownStatus.getProcessResult().setCdsKey(cdsKey);
|
||||
Integer prKey = processResultRepository.save(crackdownStatus.getProcessResult()).getPrKey();
|
||||
crackdownStatus.getProcessResult().setPrKey(prKey);
|
||||
}
|
||||
|
||||
/*if (internationalCrimeArrest.getDeleteSpiKeyList() != null) {
|
||||
suspectPersonInfoRepository.deleteAllByIdInQuery(internationalCrimeArrest.getDeleteSpiKeyList());
|
||||
}*/
|
||||
|
||||
if (crackdownStatus.getViolationList() != null) {
|
||||
for(Violation violation: crackdownStatus.getViolationList()){
|
||||
if (violation.getViolationEtc() != null) {
|
||||
violation.setViolation(violation.getViolationEtc());
|
||||
}
|
||||
violation.setFbKey(crackdownStatus.getFishingBoat().getFbKey());
|
||||
}
|
||||
violationRepository.saveAll(crackdownStatus.getViolationList());
|
||||
}
|
||||
|
||||
if (crackdownStatus.getSailorList() != null) {
|
||||
for(Sailor sailor: crackdownStatus.getSailorList()){
|
||||
sailor.setFbKey(crackdownStatus.getFishingBoat().getFbKey());
|
||||
}
|
||||
sailorRepository.saveAll(crackdownStatus.getSailorList());
|
||||
}
|
||||
|
||||
return cdsKey;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Integer saveProcessResult(ProcessResult processResult) {
|
||||
if (processResult.getExecutionDetailEtc() != null) {
|
||||
processResult.setExecutionDetail(processResult.getExecutionDetailEtc());
|
||||
}
|
||||
|
||||
Integer prKey = processResultRepository.save(processResult).getPrKey();
|
||||
|
||||
if (processResult.getCrackdownStatus() != null) {
|
||||
if (processResult.getCrackdownStatus().getCrackdownPoliceEtc() != null) {
|
||||
processResult.getCrackdownStatus().setCrackdownPolice(processResult.getCrackdownStatus().getCrackdownPoliceEtc());
|
||||
}
|
||||
|
||||
processResult.setCrackdownStatus(crackdownStatusRepository.save(processResult.getCrackdownStatus()));
|
||||
}
|
||||
|
||||
if (processResult.getFishingBoat() != null) {
|
||||
fishingBoatRepository.save(processResult.getFishingBoat());
|
||||
}
|
||||
|
||||
if (processResult.getViolationList() != null) {
|
||||
for(Violation violation: processResult.getViolationList()){
|
||||
if (violation.getViolationEtc() != null) {
|
||||
violation.setViolation(violation.getViolationEtc());
|
||||
}
|
||||
violation.setFbKey(processResult.getFishingBoat().getFbKey());
|
||||
}
|
||||
violationRepository.saveAll(processResult.getViolationList());
|
||||
}
|
||||
|
||||
return prKey;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.ProcessResultMapper">
|
||||
<sql id="selectProcessResultListWhere">
|
||||
<where>
|
||||
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<select id="selectProcessResultList" resultType="ProcessResult" parameterType="ProcessResult">
|
||||
SELECT
|
||||
pr.pr_key
|
||||
, cs.cds_key
|
||||
, cs.case_num
|
||||
, cs.napo_sea_point_lon
|
||||
, cs.napo_sea_point_lat
|
||||
, cs.napo_sea_point_detail
|
||||
, fb.boat_name_kr
|
||||
, pr.sentencing_court
|
||||
, pr.sentencing_detail
|
||||
, pr.execution_detail
|
||||
, pr.return_dt
|
||||
, pr.consignment_start_dt
|
||||
, pr.consignment_end_dt
|
||||
, pr.confiscation_dt
|
||||
, pr.boat_disposal_dt
|
||||
FROM process_result pr
|
||||
INNER JOIN crackdown_status cs
|
||||
ON pr.cds_key = cs.cds_key
|
||||
INNER JOIN fishing_boat fb
|
||||
ON pr.cds_key = fb.cds_key
|
||||
<include refid="selectProcessResultListWhere"></include>
|
||||
ORDER BY pr.cds_key DESC
|
||||
LIMIT #{rowCnt} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<select id="selectProcessResultListCnt" resultType="int" parameterType="ProcessResult">
|
||||
SELECT count(*)
|
||||
FROM crackdown_status cs
|
||||
INNER JOIN fishing_boat fb
|
||||
ON cs.cds_key = fb.cds_key
|
||||
INNER JOIN process_result pr
|
||||
ON cs.cds_key = pr.cds_key
|
||||
<include refid="selectProcessResultListWhere"></include>
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -2,11 +2,6 @@ $(document).on('click', '#crackdownStatusAddBtn', function () {
|
|||
getCrackdownStatusEditModal(null);
|
||||
});
|
||||
|
||||
$(document).on('click', '#crackdownStatusEditBtn', function () {
|
||||
$("#crackdownStatusViewModal").modal('hide');
|
||||
getCrackdownStatusEditModal(Number($("#icaViewBody").find("[name='cdsKey']").val()));
|
||||
});
|
||||
|
||||
$(document).on('click', '#cdsEditBtn', function () {
|
||||
$("#crackdownStatusViewModal").modal('hide');
|
||||
getCrackdownStatusEditModal(Number($("#crackdownStatusViewBody").find("[name='cdsKey']").val()));
|
||||
|
|
@ -241,6 +236,10 @@ function getCrackdownStatusEditModal(cdsKey){
|
|||
}
|
||||
|
||||
function saveCrackdownStatus(saveYn){
|
||||
$('input[name="fieldIvsgtTimeTaken"]').val(dateTimeCalc($("#fieldIvsgtNapoDt").val(), $("#fieldIvsgtReleaseDt").val()));
|
||||
$('input[name="warrantReqTakeTime"]').val(dateTimeCalc($("#pressurizedStartDt").val(), $("#pressurizedEndDt").val()));
|
||||
$('input[name="pressurizedTimeTaken"]').val(dateTimeCalc($("#pressurizedStartDt").val(), $("#pressurizedEndDt").val()));
|
||||
|
||||
if(contentCheck()){
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
$("#saveYn").val(saveYn);
|
||||
|
|
@ -252,17 +251,20 @@ function saveCrackdownStatus(saveYn){
|
|||
|
||||
sailorList.push(
|
||||
{
|
||||
sailorKey: $("#cdsEditForm").find('input[name="captinSailorKey"]').val() != '' && $("#cdsEditForm").find('input[name="captinSailorKey"]').val() != 'false' ? Number($("#cdsEditForm").find('input[name="captinSailorKey"]').val()) : null,
|
||||
position: 'POS001',
|
||||
sailorNameKr: $("#cdsEditForm").find('input[name="sailorNameKr"]').val() != '' ? $("#cdsEditForm").find('input[name="sailorNameKr"]').val() : null,
|
||||
isRestriction: $("#cdsEditForm").find('select[name="captin"]').val() != '' ? $("#cdsEditForm").find('select[name="captin"]').val() : null,
|
||||
birthdate: $("#cdsEditForm").find('input[name="birthdate"]').val() != '' ? $("#cdsEditForm").find('input[name="birthdate"]').val() : null
|
||||
},
|
||||
{
|
||||
sailorKey: $("#cdsEditForm").find('input[name="mateSailorKey"]').val() != '' && $("#cdsEditForm").find('input[name="mateSailorKey"]').val() != 'false' ? Number($("#cdsEditForm").find('input[name="mateSailorKey"]').val()) : null,
|
||||
position: 'POS002',
|
||||
sailorNameKr: null,
|
||||
isRestriction: $("#cdsEditForm").find('select[name="mate"]').val() != '' ? $("#cdsEditForm").find('select[name="mate"]').val() : null
|
||||
},
|
||||
{
|
||||
sailorKey: $("#cdsEditForm").find('input[name="wardenSailorKey"]').val() != '' && $("#cdsEditForm").find('input[name="wardenSailorKey"]').val() != 'false' ? Number($("#cdsEditForm").find('input[name="wardenSailorKey"]').val()) : null,
|
||||
position: 'POS003',
|
||||
sailorNameKr: null,
|
||||
isRestriction: $("#cdsEditForm").find('select[name="warden"]').val() != '' ? $("#cdsEditForm").find('select[name="warden"]').val() : null
|
||||
|
|
@ -279,7 +281,7 @@ function saveCrackdownStatus(saveYn){
|
|||
});
|
||||
|
||||
for (let i=0; i < sailorList.length; i++) {
|
||||
if (sailorList[i].spiKey != null) {
|
||||
if (sailorList[i].sailorKey != null) {
|
||||
formData.append(`sailorList[${i}].sailorKey`, sailorList[i].sailorKey);
|
||||
}
|
||||
if (sailorList[i].sailorNameKr != null) {
|
||||
|
|
@ -397,4 +399,21 @@ function s2ab(s) {
|
|||
function getToday() {
|
||||
var date = new Date();
|
||||
var year = date.getFullYear();
|
||||
}
|
||||
}
|
||||
|
||||
function dateTimeCalc(startDateTime, endDateTime) {
|
||||
if (startDateTime != '' &&endDateTime != '' && startDateTime != undefined && endDateTime != undefined) {
|
||||
const startDate = new Date(startDateTime);
|
||||
const endDate = new Date(endDateTime);
|
||||
|
||||
let diffTime = endDate.getTime() - startDate.getTime();
|
||||
|
||||
const day = Math.floor(diffTime / (1000* 60 * 60 * 24));
|
||||
const hour = Math.floor((diffTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||||
const minute = Math.floor((diffTime % (1000 * 60 * 60)) / (1000 * 60));
|
||||
|
||||
return day + '일' + hour + '시간' + minute + '분';
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,259 @@
|
|||
$(document).on('click', '#processResultAddBtn', function () {
|
||||
getProcessResultEditModal(null);
|
||||
});
|
||||
|
||||
$(document).on('click', '#processResultEditBtn', function () {
|
||||
$("#processResultViewModal").modal('hide');
|
||||
getProcessResultEditModal(Number($("#processResultViewBody").find("[name='prKey']").val()));
|
||||
});
|
||||
|
||||
$(document).on('click', '#saveProcessResultBtn', function (){
|
||||
saveProcessResult('N')
|
||||
});
|
||||
|
||||
$(document).on('click', '#saveTempBtn', function (){
|
||||
saveProcessResult('Y')
|
||||
});
|
||||
|
||||
$(document).on('click', '.tr', function (){
|
||||
getProcessResultViewModal($(this).data('key'));
|
||||
});
|
||||
|
||||
$(document).on('click', '#violationAddBtn', function (){
|
||||
let violation = '';
|
||||
commonCode.VT.forEach(function (item){
|
||||
violation += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
|
||||
})
|
||||
|
||||
$('#violationDiv').append(
|
||||
'<div class="row">'
|
||||
+ '<select class="form-select form-select-sm violation" name="violation">'
|
||||
+ '<option value="">선택</option>'
|
||||
+ violation
|
||||
+ '<option value="etc">직접입력</option>'
|
||||
+ '</select>'
|
||||
+ '<button type="button" class="btn btn-primary col-auto" id="violationRemoveBtn">-</button>'
|
||||
+ '</div>'
|
||||
)
|
||||
});
|
||||
|
||||
|
||||
$(document).on('click', '#violationRemoveBtn', function (){
|
||||
$(this).parent().remove();
|
||||
});
|
||||
|
||||
$(document).on('change', '.violation', function (){
|
||||
if ($(this).val() == 'etc') {
|
||||
$(this).after(
|
||||
'<div class="row col-auto etcDiv">'
|
||||
+ '<input type="text" class="form-control" name="violationEtc">'
|
||||
+ '</div>'
|
||||
);
|
||||
} else {
|
||||
$(this).next('.etcDiv').remove();
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('change', '#crackdownPolice', function (){
|
||||
if ($(this).val() == 'etc') {
|
||||
$(this).after(
|
||||
'<div class="col-auto">'
|
||||
+ '<input type="text" class="form-control" name="crackdownPoliceEtc">'
|
||||
+ '</div>'
|
||||
);
|
||||
} else {
|
||||
$(this).next().remove();
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('change', '#executionDetail', function (){
|
||||
if ($(this).val() == 'etc') {
|
||||
$(this).after(
|
||||
'<div class="col-auto">'
|
||||
+ '<input type="text" class="form-control" name="executionDetailEtc">'
|
||||
+ '</div>'
|
||||
);
|
||||
} else {
|
||||
$(this).next().remove();
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '#processResultDownExcel', function (){
|
||||
exportExcel('불법조업 불법어선 처리현황');
|
||||
});
|
||||
|
||||
function getProcessResultViewModal(prKey){
|
||||
$.ajax({
|
||||
url: '/faStatistics/processResult/processResultViewModal',
|
||||
data: {prKey: prKey},
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#processResultViewBody").empty().append(html)
|
||||
$("#processResultViewModal").modal('show');
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getProcessResultEditModal(prKey){
|
||||
$.ajax({
|
||||
url: '/faStatistics/processResult/processResultEditModal',
|
||||
data: {
|
||||
prKey: prKey
|
||||
},
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#processResultViewBody").empty();
|
||||
$("#processResultEditModalContent").empty().append(html);
|
||||
$("#processResultEditModal").modal('show');
|
||||
|
||||
$("#consignmentStartDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
});
|
||||
$("#consignmentEndDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
});
|
||||
$("#returnDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
});
|
||||
$("#confiscationDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
});
|
||||
$("#boatDisposalDt").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
});
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function saveProcessResult(saveYn){
|
||||
$('input[name="warrantReqTakeTime"]').val(dateTimeCalc($("#consignmentStartDt").val(), $("#consignmentEndDt").val()));
|
||||
|
||||
if(contentCheck()){
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
$("#saveYn").val(saveYn);
|
||||
contentFade("in");
|
||||
const formData = new FormData($("#processResultEditForm")[0]);
|
||||
|
||||
let violationList = [];
|
||||
|
||||
$(".violation").each(function (){
|
||||
violationList.push({
|
||||
violationKey: $(this).parent().find('input[name="violationKey"]').val() != undefined ? Number($(this).parent().find('input[name="violationKey"]').val()) : null,
|
||||
fbKey: $("#cdsEditForm").find('input[name="fbKey"]').val() != undefined ? Number($("#cdsEditForm").find('input[name="fbKey"]').val()) : null,
|
||||
violation: $(this).val() != '' ? $(this).val() : null,
|
||||
violationEtc: $(this).parent().find('input[name="violationEtc"]').val() != undefined ? $(this).parent().find('input[name="violationEtc"]').val() : null
|
||||
});
|
||||
});
|
||||
|
||||
for (let i=0; i < violationList.length; i++) {
|
||||
if (violationList[i].violationKey != null) {
|
||||
formData.append(`violationList[${i}].violationKey`, violationList[i].violationKey);
|
||||
}
|
||||
if (violationList[i].fbKey != null) {
|
||||
formData.append(`violationList[${i}].fbKey`, violationList[i].fbKey);
|
||||
}
|
||||
if (violationList[i].violation != null) {
|
||||
formData.append(`violationList[${i}].violation`, violationList[i].violation);
|
||||
}
|
||||
if (violationList[i].violationEtc != null) {
|
||||
formData.append(`violationList[${i}].violationEtc`, violationList[i].violationEtc);
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : formData,
|
||||
url : "/faStatistics/processResult/saveProcessResult",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(result) {
|
||||
alert("저장되었습니다.");
|
||||
contentFade("out");
|
||||
$("#processResultEditModal").modal('hide');
|
||||
},
|
||||
error : function(xhr, status) {
|
||||
alert("저장에 실패하였습니다.")
|
||||
contentFade("out");
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function contentCheck(){
|
||||
let flag = true;
|
||||
return flag;
|
||||
}
|
||||
|
||||
function exportExcel(name){
|
||||
var excelHandler = {
|
||||
getExcelFileName : function(){
|
||||
return name+getToday()+'.xlsx'; //파일명
|
||||
},
|
||||
getSheetName : function(){
|
||||
return name;
|
||||
},
|
||||
getExcelData : function(){
|
||||
return document.getElementById('cdsTable'); //TABLE id
|
||||
},
|
||||
getWorksheet : function(){
|
||||
return XLSX.utils.table_to_sheet(this.getExcelData());
|
||||
}
|
||||
}
|
||||
// step 1. workbook 생성
|
||||
var wb = XLSX.utils.book_new();
|
||||
|
||||
// step 2. 시트 만들기
|
||||
var newWorksheet = excelHandler.getWorksheet();
|
||||
|
||||
// step 3. workbook에 새로만든 워크시트에 이름을 주고 붙인다.
|
||||
XLSX.utils.book_append_sheet(wb, newWorksheet, excelHandler.getSheetName());
|
||||
|
||||
// step 4. 엑셀 파일 만들기
|
||||
var wbout = XLSX.write(wb, {bookType:'xlsx', type: 'binary'});
|
||||
|
||||
// step 5. 엑셀 파일 내보내기
|
||||
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), excelHandler.getExcelFileName());
|
||||
}
|
||||
|
||||
function s2ab(s) {
|
||||
var buf = new ArrayBuffer(s.length); //convert s to arrayBuffer
|
||||
var view = new Uint8Array(buf); //create uint8array as viewer
|
||||
for (var i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF; //convert to octet
|
||||
return buf;
|
||||
}
|
||||
|
||||
function getToday() {
|
||||
var date = new Date();
|
||||
var year = date.getFullYear();
|
||||
}
|
||||
|
||||
function dateTimeCalc(startDateTime, endDateTime) {
|
||||
if (startDateTime != '' &&endDateTime != '' && startDateTime != undefined && endDateTime != undefined) {
|
||||
const startDate = new Date(startDateTime);
|
||||
const endDate = new Date(endDateTime);
|
||||
|
||||
let diffTime = endDate.getTime() - startDate.getTime();
|
||||
|
||||
const day = Math.floor(diffTime / (1000* 60 * 60 * 24));
|
||||
const hour = Math.floor((diffTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||||
const minute = Math.floor((diffTime % (1000 * 60 * 60)) / (1000 * 60));
|
||||
|
||||
return day + '일' + hour + '시간' + minute + '분';
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
@ -6,7 +6,6 @@
|
|||
<th:block layout:fragment="script">
|
||||
<script th:inline="javascript">
|
||||
const commonCode = [[${session.commonCode}]];
|
||||
let totalPersonDamageAmount = 0;
|
||||
</script>
|
||||
<script type="text/javascript" th:src="@{/js/faStatistics/crackdownStatus.js}"></script>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -66,9 +66,14 @@
|
|||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.violationList != null and commonCode.itemCd eq violation.violation}"></option>
|
||||
<option value="etc">직접입력</option>
|
||||
</th:block>
|
||||
<option th:selected="${violation.violation ne null && !#strings.contains(violation.violation, 'VT')}" value="etc">직접입력</option>
|
||||
</select>
|
||||
<th:block th:if="${violation.violation ne null and !#strings.contains(violation.violation, 'VT')}">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control" name="violationEtc" th:value="${violation.violation}">
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</th:block>
|
||||
</th:block>
|
||||
|
|
@ -194,7 +199,7 @@
|
|||
<th:block th:each="sailor:${crackdownStatus.sailorList}" th:if="${#strings.contains(sailor.position, 'POS001')}">
|
||||
<input th:if="${sailor.position eq 'POS001'}" class="form-control" name="sailorNameKr" th:value="${sailor.sailorNameKr}">
|
||||
</th:block>
|
||||
<th:block th:if="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001'].![1]) == null}">
|
||||
<th:block th:if="${crackdownStatus.sailorList eq null || #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001'].![1]) == null}">
|
||||
<input class="form-control" name="sailorNameKr">
|
||||
</th:block>
|
||||
</div>
|
||||
|
|
@ -203,7 +208,7 @@
|
|||
<th:block th:each="sailor:${crackdownStatus.sailorList}" th:if="${#strings.contains(sailor.position, 'POS001')}">
|
||||
<input th:if="${sailor.position eq 'POS001'}" class="form-control" name="birthdate" id="birthdate" th:value="${#temporals.format(sailor.birthdate, 'yyyy-MM-dd')}">
|
||||
</th:block>
|
||||
<th:block th:if="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001'].![1]) == null}">
|
||||
<th:block th:if="${crackdownStatus.sailorList eq null || #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001'].![1]) == null}">
|
||||
<input class="form-control" name="birthdate" id="birthdate">
|
||||
</th:block>
|
||||
</div>
|
||||
|
|
@ -373,26 +378,29 @@
|
|||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">선장</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="hidden" name="captinSailorKey" th:value="${crackdownStatus.sailorList ne null ? #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001'].![sailorKey]) : null}">
|
||||
<select class="form-select form-select-sm" name="captin">
|
||||
<option value="">선택</option>
|
||||
<option value="Y" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
<option value="Y" th:selected="${crackdownStatus.sailorList ne null && #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${crackdownStatus.sailorList ne null && #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">향해장</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="hidden" name="mateSailorKey" th:value="${crackdownStatus.sailorList ne null ? #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002'].![sailorKey]) : null}">
|
||||
<select class="form-select form-select-sm" name="mate">
|
||||
<option value="">선택</option>
|
||||
<option value="Y" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
<option value="Y" th:selected="${crackdownStatus.sailorList ne null && #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${crackdownStatus.sailorList ne null && #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">기관장</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="hidden" name="wardenSailorKey" th:value="${crackdownStatus.sailorList ne null ? #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS003'].![sailorKey]) : null}">
|
||||
<select class="form-select form-select-sm" name="warden">
|
||||
<option value="">선택</option>
|
||||
<option value="Y" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS003' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS003' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
<option value="Y" th:selected="${crackdownStatus.sailorList ne null && #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS003' && isRestriction == 'Y'].![1]) != null}">구속</option>
|
||||
<option value="N" th:selected="${crackdownStatus.sailorList ne null && #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS003' && isRestriction == 'N'].![1]) != null}">불구속</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="button" class="btn btn-primary col-auto" id="sailorAddBtn">선원 추가</button>
|
||||
|
|
@ -430,7 +438,7 @@
|
|||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">소요시간</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="fieldIvsgtTimeTaken" th:value="${#temporals.format(crackdownStatus.fieldIvsgtTimeTaken, 'yyyy-MM-dd HH:mm')}">
|
||||
<input class="form-control" name="fieldIvsgtTimeTaken" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -447,7 +455,7 @@
|
|||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">영장청구<br>소요시간</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="warrantReqTakeTime" th:value="${#temporals.format(crackdownStatus.processResult.warrantReqTakeTime, 'yyyy-MM-dd HH:mm')}">
|
||||
<input class="form-control" name="warrantReqTakeTime" readonly>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">거리</label>
|
||||
<div class="col-sm-2">
|
||||
|
|
|
|||
|
|
@ -66,9 +66,14 @@
|
|||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${crackdownStatus.violationList != null and commonCode.itemCd eq violation.violation}"></option>
|
||||
<option value="etc">직접입력</option>
|
||||
</th:block>
|
||||
<option th:selected="${violation.violation ne null && !#strings.contains(violation.violation, 'VT')}" value="etc">직접입력</option>
|
||||
</select>
|
||||
<th:block th:if="${violation.violation ne null and !#strings.contains(violation.violation, 'VT')}">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control" name="violationEtc" th:value="${violation.violation}">
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</th:block>
|
||||
</th:block>
|
||||
|
|
@ -430,7 +435,7 @@
|
|||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">소요시간</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="fieldIvsgtTimeTaken" th:value="${#temporals.format(crackdownStatus.fieldIvsgtTimeTaken, 'yyyy-MM-dd HH:mm')}">
|
||||
<input class="form-control" name="fieldIvsgtTimeTaken" th:value="${crackdownStatus.fieldIvsgtTimeTaken}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
|
|
@ -447,7 +452,7 @@
|
|||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">영장청구<br>소요시간</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="warrantReqTakeTime" th:value="${#temporals.format(crackdownStatus.processResult.warrantReqTakeTime, 'yyyy-MM-dd HH:mm')}">
|
||||
<input class="form-control" name="warrantReqTakeTime" th:value="${crackdownStatus.processResult.warrantReqTakeTime}" readonly>
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">거리</label>
|
||||
<div class="col-sm-2">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,162 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{layout/layout}">
|
||||
<th:block layout:fragment="script">
|
||||
<script th:inline="javascript">
|
||||
const commonCode = [[${session.commonCode}]];
|
||||
</script>
|
||||
<script type="text/javascript" th:src="@{/js/faStatistics/processResult.js}"></script>
|
||||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main class="pt-3">
|
||||
<h4>불법조업 외국어선 처리현황</h4>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card">
|
||||
<div class="card-body">
|
||||
<form method="get" th:action="@{/faStatistics/processResult}" id="processResultSearchForm">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<!--<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}">
|
||||
</div>-->
|
||||
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start" style="overflow: hidden; overflow-x: scroll">
|
||||
<table class="table table-striped" style="max-width: none; width: auto;" id="prTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>연번</th>
|
||||
<th>사건번호</th>
|
||||
<th>사건담당경찰서</th>
|
||||
<th>피의자(선박명)</th>
|
||||
<th>위반장소 및 내용</th>
|
||||
<th>선고내용</th>
|
||||
<th>선고법원</th>
|
||||
<th>집행내용</th>
|
||||
<th>환부일</th>
|
||||
<th>위탁종료일</th>
|
||||
<th>위탁시작일</th>
|
||||
<th>몰수확정일</th>
|
||||
<th>폐선일(인계한 날짜)</th>
|
||||
<th>최종수정일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<th:block th:each="processResult:${processResultList}">
|
||||
<tr class="tr" th:data-key="${processResult.prKey}">
|
||||
<td th:text="${processResult.prKey}"></td>
|
||||
<td th:text="${processResult.crackdownStatus.caseNum}"></td>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
|
||||
<td th:if="${processResult.crackdownStatus.crackdownPolice eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${!#strings.contains(processResult.crackdownStatus.crackdownPolice, 'CPO')}">
|
||||
<td th:text="${processResult.crackdownStatus.crackdownPolice}"></td>
|
||||
</th:block>
|
||||
<td th:text="${processResult.boatNameKr}"></td>
|
||||
<td>
|
||||
<span th:text="${processResult.crackdownStatus.napoSeaPointLon}"> ~ </span>
|
||||
<span th:text="${processResult.crackdownStatus.napoSeaPointLat}"></span>
|
||||
<div th:text="${processResult.crackdownStatus.napoSeaPointDetail}"></div>
|
||||
<th:block th:if="${#lists.size(processResult.violationList) >= 1}">
|
||||
<div>
|
||||
<th:block th:each="violation:${processResult.violationList}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<span th:if="${violation.violation eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></span>
|
||||
</th:block>
|
||||
<span th:if="${violation.violation ne null && !#strings.contains(violation.violation, 'VT')}" th:text="${violation.violation}"></span>
|
||||
</th:block>
|
||||
</div>
|
||||
</th:block>
|
||||
</td>
|
||||
<td th:text="${processResult.sentencingCourt}"></td>
|
||||
<td th:text="${processResult.sentencingDetail}"></td>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
|
||||
<th:block th:if="${processResult.executionDetail ne null && #strings.contains(processResult.executionDetail, 'PR')}">
|
||||
<td th:if="${processResult.executionDetail eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<td th:if="${processResult.executionDetail ne null && !#strings.contains(processResult.executionDetail, 'PR')}" th:text="${processResult.executionDetail}"></td>
|
||||
<th:block th:if="${processResult.executionDetail eq null}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<td th:text="${processResult.returnDt}"></td>
|
||||
<td th:text="${processResult.consignmentStartDt}"></td>
|
||||
<td th:text="${processResult.consignmentEndDt}"></td>
|
||||
<td th:text="${processResult.confiscationDt}"></td>
|
||||
<td th:text="${processResult.boatDisposalDt}"></td>
|
||||
<td th:text="${processResult.updDt}"></td>
|
||||
</tr>
|
||||
</th:block>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row justify-content">
|
||||
<button class="btn btn-sm btn-primary col-auto" id="">관리자마감</button>
|
||||
<button class="btn btn-sm btn-primary col-auto" id="processResultDownExcel">엑셀 다운로드</button>
|
||||
</div>
|
||||
|
||||
<!-- 페이징 -->
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
|
||||
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
|
||||
<a class="page-link" href="#" th:text="${num}"></a>
|
||||
</li>
|
||||
</th:block>
|
||||
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
|
||||
<a class="page-link" href="#" aria-label="Next">
|
||||
<span aria-hidden="true">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="processResultEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="processResultEditModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl modal-dialog-scrollable">
|
||||
<div class="modal-content" id="processResultEditModalContent">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="processResultViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="processResultViewModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl modal-dialog-scrollable">
|
||||
<div class="modal-content" id="processResultViewBody">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="processResultEditModalLabel" th:text="${processResult.prKey eq null ? '불법조업 외국어선 처리현황 등록' : '불법조업 외국어선 처리현황 수정'}">></h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body" id="processResultEditBody">
|
||||
<form action="#" method="post" id="processResultEditForm">
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<input type="hidden" name="cdsKey" th:value="${processResult.crackdownStatus.cdsKey}">
|
||||
<input type="hidden" name="fbKey" th:value="${processResult.fbKey}">
|
||||
<input type="hidden" name="prKey" th:value="${processResult.prKey}">
|
||||
<input type="hidden" name="wrtOrgan" th:value="${processResult.wrtOrgan}">
|
||||
<input type="hidden" name="wrtNm" th:value="${processResult.wrtNm}">
|
||||
<input type="hidden" name="wrtDt" th:value="${#temporals.format(processResult.wrtDt, 'yyyy-MM-dd HH:mm')}">
|
||||
<input type="hidden" id="saveYn" name="saveYn">
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">사건번호</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="caseNum" id="caseNum" th:value="${processResult.crackdownStatus.caseNum}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">사건담당경찰서</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${processResult.crackdownStatus.crackdownPolice eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
<option value="etc" th:selected="${processResult.crackdownStatus.crackdownPolice ne null && !#strings.contains(processResult.crackdownStatus.crackdownPolice, 'CPO')}">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">피의자(선박병)</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatNameKr" id="boatNameKr" th:value="${processResult.boatNameKr}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위반장소</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="napoSeaPointLon" id="napoSeaPointLon" th:value="${processResult.crackdownStatus.napoSeaPointLon}">
|
||||
<input class="form-control" name="napoSeaPointLat" id="napoSeaPointLat" th:value="${processResult.crackdownStatus.napoSeaPointLat}">
|
||||
<input class="form-control" name="napoSeaPointDetail" id="napoSeaPointDetail" th:value="${processResult.crackdownStatus.napoSeaPointDetail}">
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
<label class="col-form-label text-center">위반내용</label>
|
||||
<button type="button" class="btn btn-primary col-auto" id="violationAddBtn">+</button>
|
||||
</div>
|
||||
<div class="col-sm-2" id="violationDiv">
|
||||
<th:block th:if="${#lists.isEmpty(processResult.violationList)}">
|
||||
<div class="row">
|
||||
<select class="form-select form-select-sm violation" name="violation">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block th:if="${!#lists.isEmpty(processResult.violationList)}">
|
||||
<th:block th:each="violation : ${processResult.violationList}">
|
||||
<div class="row">
|
||||
<input type="hidden" name="violationKey" th:value="${violation.violationKey}">
|
||||
<select class="form-select form-select-sm violation" name="violation">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${processResult.violationList != null and commonCode.itemCd eq violation.violation}"></option>
|
||||
</th:block>
|
||||
<option th:selected="${violation.violation ne null && !#strings.contains(violation.violation, 'VT')}" value="etc">직접입력</option>
|
||||
</select>
|
||||
<th:block th:if="${violation.violation ne null and !#strings.contains(violation.violation, 'VT')}">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control" name="violationEtc" th:value="${violation.violation}">
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">선고법원</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="sentencingCourt" id="sentencingCourt" th:value="${processResult.sentencingCourt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선고내용</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="sentencingDetail" id="sentencingDetail" th:value="${processResult.sentencingDetail}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">집행내용</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="executionDetail" id="executionDetail">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq processResult.executionDetail}"></option>
|
||||
</th:block>
|
||||
<option th:selected="${processResult.executionDetail ne null && !#strings.contains(processResult.executionDetail, 'PR')}" value="etc">직접입력</option>
|
||||
</select>
|
||||
<th:block th:if="${processResult.executionDetail ne null && !#strings.contains(processResult.executionDetail, 'PR')}">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control" name="processStatusEtc" th:value="${processResult.executionDetail}">
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">환부일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="returnDt" id="returnDt" th:value="${#temporals.format(processResult.returnDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위탁시작일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="consignmentStartDt" id="consignmentStartDt" th:value="${#temporals.format(processResult.consignmentStartDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위탁종료일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="consignmentEndDt" id="consignmentEndDt" th:value="${#temporals.format(processResult.consignmentEndDt, 'yyyy-MM-dd')}">
|
||||
<input type="hidden" class="form-control" name="warrantReqTakeTime">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">몰수확정일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationDt" id="confiscationDt" th:value="${#temporals.format(processResult.confiscationDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">폐선일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatDisposalDt" id="boatDisposalDt" th:value="${#temporals.format(processResult.boatDisposalDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">최종수정일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatDisposalDt" id="boatDisposalDt" th:value="${#temporals.format(processResult.boatDisposalDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||
<button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button>
|
||||
<button type="button" class="btn btn-primary" id="saveProcessResultBtn">저장</button>
|
||||
</div>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="processResultEditModalLabel" th:text="${processResult.cdsKey eq null ? '불법조업 외국어선 처리현황' : '불법조업 외국어선 처리현황'}">></h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body" id="processResultEditBody">
|
||||
<form action="#" method="post" id="processResultEditForm">
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<input type="hidden" name="cdsKey" th:value="${processResult.crackdownStatus.cdsKey}">
|
||||
<input type="hidden" name="fbKey" th:value="${processResult.fbKey}">
|
||||
<input type="hidden" name="prKey" th:value="${processResult.prKey}">
|
||||
<input type="hidden" name="wrtOrgan" th:value="${processResult.wrtOrgan}">
|
||||
<input type="hidden" name="wrtNm" th:value="${processResult.wrtNm}">
|
||||
<input type="hidden" name="wrtDt" th:value="${#temporals.format(processResult.wrtDt, 'yyyy-MM-dd HH:mm')}">
|
||||
<input type="hidden" id="saveYn" name="saveYn">
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">사건번호</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="caseNum" id="caseNum" th:value="${processResult.crackdownStatus.caseNum}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">사건담당경찰서</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${processResult.crackdownStatus.crackdownPolice eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
<option value="etc" th:selected="${processResult.crackdownStatus.crackdownPolice ne null && processResult.crackdownStatus.crackdownPolice ne '' && !#strings.contains(processResult.crackdownStatus.crackdownPolice, 'CPO')}">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">피의자(선박병)</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatNameKr" id="boatNameKr" th:value="${processResult.boatNameKr}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위반장소</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="napoSeaPointLon" id="napoSeaPointLon" th:value="${processResult.crackdownStatus.napoSeaPointLon}">
|
||||
<input class="form-control" name="napoSeaPointLat" id="napoSeaPointLat" th:value="${processResult.crackdownStatus.napoSeaPointLat}">
|
||||
<input class="form-control" name="napoSeaPointDetail" id="napoSeaPointDetail" th:value="${processResult.crackdownStatus.napoSeaPointDetail}">
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
<label class="col-form-label text-center">위반내용</label>
|
||||
<button type="button" class="btn btn-primary col-auto" id="violationAddBtn">+</button>
|
||||
</div>
|
||||
<div class="col-sm-2" id="violationDiv">
|
||||
<th:block th:if="${#lists.isEmpty(processResult.violationList)}">
|
||||
<div class="row">
|
||||
<select class="form-select form-select-sm violation" name="violation">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
<option value="etc">직접입력</option>
|
||||
</select>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block th:if="${!#lists.isEmpty(processResult.violationList)}">
|
||||
<th:block th:each="violation : ${processResult.violationList}">
|
||||
<div class="row">
|
||||
<input type="hidden" name="violationKey" th:value="${violation.violationKey}">
|
||||
<select class="form-select form-select-sm violation" name="violation">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${processResult.violationList != null and commonCode.itemCd eq violation.violation}"></option>
|
||||
</th:block>
|
||||
<option th:selected="${violation.violation ne null and !#strings.contains(violation.violation, 'VT')}" value="etc">직접입력</option>
|
||||
</select>
|
||||
<th:block th:if="${violation.violation ne null and !#strings.contains(violation.violation, 'VT')}">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control" name="violationEtc" th:value="${violation.violation}">
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">선고법원</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="sentencingCourt" id="sentencingCourt" th:value="${processResult.sentencingCourt}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">선고내용</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="sentencingDetail" id="sentencingDetail" th:value="${processResult.sentencingDetail}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">집행내용</label>
|
||||
<div class="col-sm-2">
|
||||
<select class="form-select form-select-sm" name="executionDetail" id="executionDetail">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq processResult.executionDetail}"></option>
|
||||
</th:block>
|
||||
<option th:selected="${processResult.executionDetail ne null && !#strings.contains(processResult.executionDetail, 'PR')}" value="etc">직접입력</option>
|
||||
</select>
|
||||
<th:block th:if="${processResult.executionDetail ne null && !#strings.contains(processResult.executionDetail, 'PR')}">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control" name="processStatusEtc" th:value="${processResult.executionDetail}">
|
||||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">환부일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="returnDt" id="returnDt" th:value="${#temporals.format(processResult.returnDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위탁시작일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="consignmentStartDt" id="consignmentStartDt" th:value="${#temporals.format(processResult.consignmentStartDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">위탁종료일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="consignmentEndDt" id="consignmentEndDt" th:value="${#temporals.format(processResult.consignmentEndDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-1 col-form-label text-center">몰수확정일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="confiscationDt" id="confiscationDt" th:value="${#temporals.format(processResult.confiscationDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">폐선일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatDisposalDt" id="boatDisposalDt" th:value="${#temporals.format(processResult.boatDisposalDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label text-center">최종수정일</label>
|
||||
<div class="col-sm-2">
|
||||
<input class="form-control" name="boatDisposalDt" id="boatDisposalDt" th:value="${#temporals.format(processResult.boatDisposalDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<th:block th:if="${userSeq eq processResult.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
|
||||
<button type="button" class="btn btn-warning" id="processResultEditBtn">수정</button>
|
||||
</th:block>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||
</div>
|
||||
</html>
|
||||
Loading…
Reference in New Issue