Compare commits

...

5 Commits

@ -56,9 +56,9 @@ public class CommonContorller {
*
*/
@GetMapping("/cover/info/find.ajax")
public ResponseEntity<?> findCoverInfo() {
public ResponseEntity<?> findCoverInfo(@RequestParam String carNo) throws Exception {
return ResponseEntity.ok("aaa");
return ResponseEntity.ok(commonService.findCoverInfo(carNo));
}

@ -77,6 +77,12 @@ public class WebClientCallDto {
}
public static class CoverRequest {
}
@Getter
@Setter
@AllArgsConstructor
@ -358,9 +364,19 @@ public class WebClientCallDto {
// @Getter
// @Setter
// @AllArgsConstructor
// @NoArgsConstructor
// @Builder
// public static class CoverInfoResponse {
//
// }
}
}

@ -12,6 +12,8 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import javax.persistence.LockModeType;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import static go.kr.project.domain.entity.QCpBdong.cpBdong;
@ -107,22 +109,26 @@ public class CommonQueryDslRepository {
/** CpMain 차적조회 결과 업데이트 */
public void updateCarinfoFromCpMain(String mmCode, CpOwner cpOwner, WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody) {
queryFactory.update(cpMain)
long resultCnt = queryFactory.update(cpMain)
.set(cpMain.mmCarno, carInfoIfBody.getVhrno())
.set(cpMain.mmVhmno, "")
.set(cpMain.mmCargb, "")
.set(cpMain.mmCarkind, "")
.set(cpMain.mmVhmno, carInfoIfBody.getVin())
.set(cpMain.mmCargb, carInfoIfBody.getVhctySeCode())
.set(cpMain.mmCarkind, carInfoIfBody.getVhctyAsortCode())
.set(cpMain.mmOmcode, cpOwner.getOmCode())
.set(cpMain.mmCarkind, "")
.set(cpMain.mmState, "")
.set(cpMain.mmStateDt, "")
.set(cpMain.mmViorcnt, "")
.set(cpMain.mmCarname, "")
.set(cpMain.mmState, "21")
.set(cpMain.mmStateDt, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")))
// .set(cpMain.mmViorcnt, "위반횟수")
.set(cpMain.mmCarname, carInfoIfBody.getCnm())
.set(cpMain.mmCarcheck, "1")
.where(
cpMain.mmCode.eq(mmCode)
)
.execute();
if (resultCnt == 0) {
throw new IllegalStateException("cp_main 업데이트 대상이 없습니다. mmCode=" + mmCode);
}
}

@ -12,4 +12,8 @@ public interface CommonService {
WebClientCallDto.CarInfoResponse findCarInfo(String carNo, String mmDate);
void updateCarInfoFromCpMain(String mmCode, WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody);
Boolean findCoverInfo(String carNo) throws Exception;
}

@ -4,7 +4,11 @@ import go.kr.project.biz.common.dto.CommonDto;
import go.kr.project.biz.common.dto.WebClientCallDto;
import go.kr.project.biz.common.repository.CommonQueryDslRepository;
import go.kr.project.biz.common.service.CommonService;
import go.kr.project.domain.entity.CpMainhist;
import go.kr.project.domain.entity.CpOwner;
import go.kr.project.domain.entity.CpSetinfo;
import go.kr.project.domain.entity.CpSetinfoId;
import go.kr.project.domain.repo.cp.CpMainhistRepository;
import go.kr.project.domain.repo.cp.CpOwnerRepository;
import go.kr.project.domain.repo.cp.CpSetinfoRepository;
import go.kr.project.vo.mapper.EntityVoMapper;
@ -12,6 +16,9 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Optional;
@Service
@RequiredArgsConstructor
@ -21,6 +28,7 @@ public class CommonServiceImpl implements CommonService {
private final WebClientCall webClientCall;
private final CpOwnerRepository cpOwnerRepository;
private final CpMainhistRepository cpMainhistRepository;
private final CommonQueryDslRepository commonQueryDslRepository;
private final CpSetinfoRepository cpSetinfoRepository;
@ -50,9 +58,11 @@ public class CommonServiceImpl implements CommonService {
@Transactional
public void updateCarInfoFromCpMain(String mmCode, WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody) {
long maxOmCode = Long.parseLong(commonQueryDslRepository.findMaxOmCode());
// owner 인서트
CpOwner cpOwner = CpOwner.builder()
.omCode(commonQueryDslRepository.findMaxOmCode() + 1)
.omCode(String.valueOf(maxOmCode + 1))
// .omSggcode()
.omName(carInfoIfBody.getMberNm())
.omNo1(carInfoIfBody.getMberSeNo().substring(0,6))
@ -75,10 +85,54 @@ public class CommonServiceImpl implements CommonService {
commonQueryDslRepository.updateCarinfoFromCpMain(mmCode, cpOwner, carInfoIfBody);
// main hist 인서트
StateChangeHistSaveToMainHist("21", mmCode);
}
/** 표지조회 */
@Override
public Boolean findCoverInfo(String carNo) throws Exception {
CpSetinfo cpSetinfo = cpSetinfoRepository.findById(
new CpSetinfoId("COVER_INFO_IP", "0", "0"))
.orElseThrow(() -> new Exception("표지조회 연계작업이 되어있지 않은 서버입니다."));
return webClientCall.CoverInfoCall(cpSetinfo, carNo);
}
public void StateChangeHistSaveToMainHist(String mmState, String mmCode) {
Optional<CpMainhist> prevOpt = cpMainhistRepository.findTopByMhMmcodeOrderByMhIndtDesc(mmCode);
CpMainhist prevCpMainHist = prevOpt.orElse(null);
String mhStateOld = null;
String mhStateOldDt = null;
if (prevCpMainHist != null) {
mhStateOld = prevCpMainHist.getMhStateNew();
mhStateOldDt = prevCpMainHist.getMhIndt();
}
CpMainhist cpMainhist = CpMainhist.builder()
.mhMmcode(mmCode)
.mhStateOld(mhStateOld)
.mhStateOldDt(mhStateOldDt)
.mhStateNew(mmState)
.mhIndt(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")))
/** todo : 세션에 있는 inuser 세팅*/
// .mhInuser()
.build();
cpMainhistRepository.save(cpMainhist);
}

@ -1,8 +1,10 @@
package go.kr.project.biz.common.service.impl;
import go.kr.project.biz.common.dto.WebClientCallDto;
import go.kr.project.domain.entity.CpSetinfo;
import lombok.RequiredArgsConstructor;
import org.springframework.core.env.Environment;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.reactive.function.client.WebClient;
@ -11,6 +13,7 @@ import reactor.core.publisher.Mono;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
@Component
@RequiredArgsConstructor
@ -46,9 +49,9 @@ public class WebClientCall {
// pair or gateway set
String PROTOCOL = env.getProperty("car-info.protocol");
String DOMAIN = pairProjectIp == null ? env.getProperty("car-info.domain") : pairProjectIp;
String PORT = pairProjectIp == null ? env.getProperty("car-info.port") : "";
String DIR = pairProjectIp == null ? env.getProperty("car-info.path.basic") : "/common/car/info/find.ajax";
String DOMAIN = pairProjectIp != null ? env.getProperty("car-info.domain") : pairProjectIp;
String PORT = pairProjectIp != null ? env.getProperty("car-info.port") : "";
String DIR = pairProjectIp != null ? env.getProperty("car-info.path.basic") : "/common/car/info/find.ajax";
Mono<WebClientCallDto.CarInfoResponse> carInfoMono = webClient.post()
.uri(PROTOCOL + DOMAIN + PORT + DIR)
@ -62,4 +65,50 @@ public class WebClientCall {
return res;
}
public Boolean CoverInfoCall(CpSetinfo cpSetinfo, String carNo) {
String soapXml = String.format(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"\n" +
" xmlns:typ=\"http://ccais.mopas.go.kr/dh/rid/services/swsdn/DisabledParkingYn/types\">\n" +
" <soap:Header>\n" +
" <typ:commonHeader>\n" +
" <serviceName>DisabledParkingYnService</serviceName>\n" +
" <useSystemCode>ESBTEST</useSystemCode>\n" +
" <certServerId>SVR1311000030</certServerId>\n" +
" <transactionUniqueId>2010111020382700773722611</transactionUniqueId>\n" +
" <userDeptCode>1234567</userDeptCode>\n" +
" <userName>김공무</userName>\n" +
" </typ:commonHeader>\n" +
" </soap:Header>\n" +
" <soap:Body>\n" +
" <typ:getDisabledParkingYn>\n" +
" <ReqOrgCd>%s</ReqOrgCd>\n" +
" <ReqBizCd>%s</ReqBizCd>\n" +
" <CARS_NO>%s</CARS_NO>\n" +
" </typ:getDisabledParkingYn>\n" +
" </soap:Body>\n" +
"</soap:Envelope>",
cpSetinfo.getStrValue7(), cpSetinfo.getStrValue8(), carNo
);
String PROTOCOL = env.getProperty("cover-info.protocol");
String DOMAIN = env.getProperty("cover-info.domain");
String PORT = env.getProperty("cover-info.port");
String DIR = env.getProperty("cover-info.path");
String response = webClient.post()
.uri(PROTOCOL + DOMAIN + PORT + DIR)
.header(HttpHeaders.CONTENT_TYPE, "text/xml; charset=UTF-8")
.bodyValue(soapXml)
.retrieve()
.bodyToMono(String.class)
.block();
return true;
}
}

@ -45,11 +45,6 @@ public class MinwonInitController {
return "biz/minwon/init/init_popup" + TilesConstants.POPUP;
}
@PostMapping("/car-info")
public String carInfo(){
return null;
}
@PostMapping("/minwon/init/list.ajax")

@ -48,9 +48,10 @@ public class MinwonInitDto {
private String mmDate; //위반일자
private String mmImagegb; //첨부
private int mmImagecnt; //사진
private String mmSgcont; //위반내용
private String mmLawgb; //위반항목
private String asJsno; //접수번호
private String mmCarno; //차량번호
private String vlId; //차량번호
private String mmCode;
}

@ -10,6 +10,7 @@ import java.util.List;
import static go.kr.project.domain.entity.QCpAnswer.cpAnswer;
import static go.kr.project.domain.entity.QCpMain.cpMain;
import static go.kr.project.domain.entity.QCpViolation.cpViolation;
@Repository
@RequiredArgsConstructor
@ -27,20 +28,25 @@ public class MinwonInitQueryDslRepository {
cpAnswer.asBbsNo,
cpAnswer.asUser,
cpMain.mmSgtel,
cpMain.mmSgnm,
cpAnswer.asTel,
cpAnswer.asJsdate,
cpAnswer.asLimitDt,
cpMain.mmDate,
cpMain.mmImagegb,
cpMain.mmImagecnt,
cpMain.mmSgcont,
cpMain.mmLawgb,
cpAnswer.asJsno,
cpMain.mmCarno,
cpViolation.vlId,
cpMain.mmCode
)
)
.from(cpMain)
.innerJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode))
.innerJoin(cpViolation).on(
cpMain.mmLawgb.eq(cpViolation.id.vlCode),
cpMain.mmSggcode.eq(cpViolation.id.vlSggcode))
.where(
cpMain.mmState.eq("01"),
cpMain.mmDlgb.eq("2")

@ -28,7 +28,6 @@ public class MinwonInitServiceImpl implements MinwonInitService {
// Enum Desc 변환
result.forEach(item -> {
item.setMmDlgb(MmDlgbEnum.getDescByCode(item.getMmDlgb()));
//item. (MmDlgbEnum.getDescByCode(item.getMmDlgb()));
});

@ -45,7 +45,7 @@ public class PreNoticeSendTargetController {
dto.setPagingYn("N");
// 리스트 조회
List<PreNoticeSendTargetDto.Response.PreNoticeSendTarget> result = preNoticeSendTargetService.findPreNoticeSendTarget(dto);
List<PreNoticeSendTargetDto.Response.PreNoticeSendTargetFlat> result = preNoticeSendTargetService.findPreNoticeSendTarget(dto);
return ApiResponseUtil.successWithGrid(result, dto);
}

@ -33,6 +33,7 @@ public class PreNoticeSendTargetDto {
private CpMain cpMain;
private CpAnswer cpAnswer;
private CpOwner cpOwner;
private String vlId;
}
@Getter
@ -42,7 +43,27 @@ public class PreNoticeSendTargetDto {
private CpMainVO cpMain;
private CpAnswerVO cpAnswer;
private CpOwnerVO cpOwner;
private String vlId;
}
@Getter
@Setter
@Builder
public static class PreNoticeSendTargetFlat {
private String mmDlgb;
private String asBbsNo;
private String asJsdate;
private String mmSgnm;
private String mmSgtel;
private String vlId;
private String mmDate;
private String mmCarno;
private String omName;
private String omNogb;
private String omJno;
private String mmSgpos;
private String mmCode;
}
}
}

@ -14,6 +14,7 @@ import static go.kr.project.domain.entity.QCpAnswer.cpAnswer;
import static go.kr.project.domain.entity.QCpMain.cpMain;
import static go.kr.project.domain.entity.QCpOwner.cpOwner;
import static go.kr.project.domain.entity.QCpUser.cpUser;
import static go.kr.project.domain.entity.QCpViolation.cpViolation;
@Repository
@RequiredArgsConstructor
@ -32,13 +33,17 @@ public class PreNoticeSendTargetQueryDslRepository {
PreNoticeSendTargetDto.Response.PreNoticeSendTargetEntities.class,
cpMain,
cpAnswer,
cpOwner
cpOwner,
cpViolation.vlId
)
)
.from(cpMain)
.leftJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode))
.leftJoin(cpUser).on(cpAnswer.asReuser.eq(cpUser.umCode))
.leftJoin(cpOwner).on(cpMain.mmOmcode.eq(cpOwner.omCode))
.innerJoin(cpViolation).on(
cpMain.mmLawgb.eq(cpViolation.id.vlCode),
cpMain.mmSggcode.eq(cpViolation.id.vlSggcode))
.where(
// cpMain.mmSggcode.eq(dto.getMmSggcode()),
cpMain.mmState.eq(MmStateEnum.VEHICLE_CHECKED.getCode()),

@ -5,5 +5,5 @@ import go.kr.project.biz.post.preNotice.sendTarget.dto.PreNoticeSendTargetDto;
import java.util.List;
public interface PreNoticeSendTargetService {
List<PreNoticeSendTargetDto.Response.PreNoticeSendTarget> findPreNoticeSendTarget(PreNoticeSendTargetDto.Request.Search dto);
List<PreNoticeSendTargetDto.Response.PreNoticeSendTargetFlat> findPreNoticeSendTarget(PreNoticeSendTargetDto.Request.Search dto);
}

@ -4,6 +4,10 @@ import go.kr.project.biz.minwon.init.dto.MinwonInitDto;
import go.kr.project.biz.post.preNotice.sendTarget.dto.PreNoticeSendTargetDto;
import go.kr.project.biz.post.preNotice.sendTarget.repository.PreNoticeSendTargetQueryDslRepository;
import go.kr.project.biz.post.preNotice.sendTarget.service.PreNoticeSendTargetService;
import go.kr.project.vo.CpAnswerVO;
import go.kr.project.vo.CpMainVO;
import go.kr.project.vo.CpOwnerVO;
import go.kr.project.vo.code.MmDlgbEnum;
import go.kr.project.vo.mapper.EntityVoMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -19,18 +23,35 @@ public class PreNoticeSendTargetServiceImpl implements PreNoticeSendTargetServic
private final PreNoticeSendTargetQueryDslRepository preNoticeSendTargetQueryDslRepository;
@Override
public List<PreNoticeSendTargetDto.Response.PreNoticeSendTarget> findPreNoticeSendTarget(PreNoticeSendTargetDto.Request.Search dto) {
public List<PreNoticeSendTargetDto.Response.PreNoticeSendTargetFlat> findPreNoticeSendTarget(PreNoticeSendTargetDto.Request.Search dto) {
List<PreNoticeSendTargetDto.Response.PreNoticeSendTargetEntities> list = preNoticeSendTargetQueryDslRepository.findPreNoticeSendTarget(dto);
List<PreNoticeSendTargetDto.Response.PreNoticeSendTarget> result =
list.stream().map(e ->
PreNoticeSendTargetDto.Response.PreNoticeSendTarget.builder()
.cpMain(mapper.toCpMainVO(e.getCpMain()))
.cpAnswer(mapper.toCpAnswerVO(e.getCpAnswer()))
.cpOwner(mapper.toCpOwnerVO(e.getCpOwner()))
.build()
).collect(Collectors.toList());
List<PreNoticeSendTargetDto.Response.PreNoticeSendTargetFlat> result =
list.stream()
.map(e -> {
CpMainVO cpMainVO = mapper.toCpMainVO(e.getCpMain());
CpAnswerVO cpAnswerVO = mapper.toCpAnswerVO(e.getCpAnswer());
CpOwnerVO cpOwnerVO = mapper.toCpOwnerVO(e.getCpOwner());
return PreNoticeSendTargetDto.Response.PreNoticeSendTargetFlat.builder()
// 평탄화 필드
.mmDlgb(MmDlgbEnum.getDescByCode(cpMainVO.getMmDlgb()))
.asBbsNo(cpMainVO.getMmBdcode())
.asJsdate(cpAnswerVO.getAsJsdate())
.mmSgnm(cpMainVO.getMmSgnm())
.mmSgtel(cpMainVO.getMmSgtel())
.vlId(e.getVlId())
.mmDate(cpMainVO.getMmDate())
.mmCarno(cpMainVO.getMmCarno())
.omName(cpOwnerVO.getOmName())
.omNogb(cpOwnerVO.getOmNOGb())
.omJno(cpOwnerVO.getOmJno())
.mmSgpos(cpMainVO.getMmSgpos())
.mmCode(cpMainVO.getMmCode())
.build();
})
.collect(Collectors.toList());
return result;
}

@ -74,14 +74,14 @@ public class TotalInfoController {
}
@PostMapping("/total/info/{mmCode}/{state}/state.ajax")
public ResponseEntity<?> updateMinwonState(@PathVariable String mmCode, @PathVariable String state) {
totalInfoService.updateState(mmCode, state);
return ApiResponseUtil.success("수정되었습니다.");
}
// @PostMapping("/total/info/{mmCode}/{state}/state.ajax")
// public ResponseEntity<?> updateMinwonState(@PathVariable String mmCode, @PathVariable String state) {
//
// totalInfoService.updateState(mmCode, state);
//
// return ApiResponseUtil.success("수정되었습니다.");
//
// }
}

@ -39,7 +39,7 @@ spring:
# #hikari.connection-test-query 는 JDBC 4.0 이상을 사용하면 설정하지 않는 것을 권장. (공식문서)
# #connection-test-query: select 1
jpa:
show-sql: false
# show-sql: true
hibernate:
ddl-auto: none
properties:
@ -85,6 +85,8 @@ logging:
go.kr.project: DEBUG
egovframework: DEBUG
org.mybatis: INFO
org.hibernate.SQL: debug
org.hibernate.orm.jdbc.bind: trace
# File upload configuration
file:

@ -168,19 +168,19 @@
/** tui-grid Set */
let initGrid = () => {
const gridColumns = [
{header: '등록구분', name: 'mmDlgb', sortable: true, width: 50,},
{header: '목록번호', name: 'asBbsNo', sortable: true, width: 70,},
{header: '등록구분', name: 'mmDlgb', sortable: true, width: 100,},
{header: '목록번호', name: 'asBbsNo', sortable: true, width: 100,},
{header: '신고자', name: 'mmSgnm', sortable: true, width: 100,},
{header: '담당자', name: 'mmSgtel', sortable: true, width: 100,},
{header: '전화번호', name: 'asTel', width: 150,},
{header: '접수일자', name: 'asJsdate', sortable: true, width: 70,},
{header: '처리기한', name: 'asLimitDt', sortable: true, width: 70,},
{header: '위반일자', name: 'mmDate', sortable: true, width: 150,},
{header: '첨부', name: 'mmImagegb', width: 150,},
{header: '사진갯수', name: 'mmImagecnt', width: 50,},
{header: '위반내용', name: 'mmSgcont', width: 250,},
{header: '접수번호', name: 'asJsno', sortable: true, width: 150,},
{header: '접수일자', name: 'asJsdate', sortable: true, width: 120,},
{header: '처리기한', name: 'asLimitDt', sortable: true, width: 120,},
{header: '위반일자', name: 'mmDate', sortable: true, width: 120,},
{header: '차량번호', name: 'mmCarno', sortable: true, width: 150,},
{header: '첨부', name: 'mmImagegb', width: 50,},
{header: '사진', name: 'mmImagecnt', width: 50,},
{header: '위반내용', name: 'vlId', width: 250,},
{header: '접수번호', name: 'asJsno', sortable: true, width: 150,},
{header: 'mmCode', name: 'mmCode', sortable: true, width: 150, align: 'center', hidden: true}
];
let gridDatasource = {

@ -320,7 +320,7 @@
</div>
</div>
<div class="left btn btn-light">
<div class="left">
<div class="btn-align">
<div class="align-left">
<button type="button" class="btn btn-light" name="changeSt" id="non-target" value="81">미부과처리</button>
@ -355,7 +355,7 @@
<%--<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>--%>
<%--<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script>--%>
<script type="text/javascript">
let CAR_INFO_YN = false;
let CAR_INFO_STATE = false;
let CAR_INFO = {};
@ -471,6 +471,7 @@
"mmDate": $("#mmDate").val()
}
$.ajax({
url: "/common/car/info/find.ajax",
type: "get",
@ -496,7 +497,14 @@
CAR_INFO = true;
console.log(response)
console.log(response.record)
console.log(response.record[0])
CAR_INFO = response.record;
console.log("CAR_INFO", CAR_INFO);
CAR_INFO_STATE = true;
},
@ -543,6 +551,26 @@
success: function(response) {
alert("완료.")
},
error: function(xhr, status, error) {
$("#result").text("수정 실패");
}
});
},
carInfoUpdate: () => {
const { cursor, mmCodes } = JSON.parse(localStorage.getItem("TOTAL_INFO_STATE"));
console.log("!!!!!!!!!!!!!",CAR_INFO)
$.ajax({
url: `/common/car/info/\${cursor}/update.ajax`,
type: "PUT",
data: JSON.stringify(CAR_INFO[0]),
contentType: "application/json",
success: function(response) {
alert("차적조회 완료 상태로 변경 완료.")
},
error: function(xhr, status, error) {
$("#result").text("수정 실패");
@ -620,7 +648,7 @@
/** 저장 */
$("#save").on("click", (e) => {
//차량번호 유무 확인
if(!CAR_INFO) {
if(!CAR_INFO_STATE) {
alert("차량조회가 필요합니다.")
return false;
}
@ -630,7 +658,7 @@
// 차량조회가 완료되었으면 스테이트 변경
fnBiz.changeState()
fnBiz.carInfoUpdate(e);

@ -216,18 +216,18 @@
/** tui-grid Set */
let initGrid = () => {
const gridColumns = [
{header: '등록구분', name: '', sortable: true, width: 50,},
{header: '목록번호', name: '', sortable: true, width: 70,},
{header: '접수일', name: '', sortable: true, width: 100,},
{header: '신고자', name: '', sortable: true, width: 100,},
{header: '담당자', name: '', width: 150,},
{header: '위반내용', name: '', sortable: true, width: 70,},
{header: '위반일시', name: '', sortable: true, width: 70,},
{header: '차량번호', name: '', sortable: true, width: 150,},
{header: '소유자', name: '', width: 150,},
{header: '소유주구분', name: '', width: 50,},
{header: '주민번호', name: '', width: 250,},
{header: '위반장소', name: '', sortable: true, width: 150,},
{header: '등록구분', name: 'mmDlgb', sortable: true, width: 100,},
{header: '목록번호', name: 'asBbsNo', sortable: true, width: 100,},
{header: '접수일', name: 'asJsdate', sortable: true, width: 100,},
{header: '신고자', name: 'mmSgnm', sortable: true, width: 100,},
{header: '담당자', name: 'mmSgtel', width: 100,},
{header: '위반내용', name: 'vlId', sortable: true, width: 100,},
{header: '위반일시', name: 'mmDate', sortable: true, width: 100,},
{header: '차량번호', name: 'mmCarno', sortable: true, width: 150,},
{header: '소유자', name: 'omName', width: 150,},
{header: '소유주구분', name: 'omNogb', width: 100,},
{header: '주민번호', name: 'omJno', width: 250,},
{header: '위반장소', name: 'mmSgpos', sortable: true, width: 150,},
{header: 'mmCode', name: 'mmCode', sortable: true, width: 150, align: 'center', hidden: true}
];
let gridDatasource = {

@ -122,7 +122,7 @@ const TuiGrid = {
//frozenCount: 0 //고정컬럼 갯수
frozenBorderWidth: 2 //고정컬럼 보더(border) 두께
, resizable: true
, minWidth: 100 //최소 사이즈
, minWidth: 30 //최소 사이즈
},
summary: [], //[선택]하단합계
treeColumnOptions: {}, //[선택]tree 구조 grid

@ -0,0 +1,12 @@
package go.kr.project.domain.repo.cp;
import go.kr.project.domain.entity.CpMainhist;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface CpMainhistRepository extends JpaRepository<CpMainhist, Long> {
CpMainhist findByMhMmcode(String mmCode);
Optional<CpMainhist> findTopByMhMmcodeOrderByMhIndtDesc(String mmCode);
}

@ -0,0 +1,12 @@
package go.kr.project.domain.repo.cp;
import go.kr.project.domain.entity.CpMainhist;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface CpMainhistRepository extends JpaRepository<CpMainhist, Long> {
CpMainhist findByMhMmcode(String mmCode);
Optional<CpMainhist> findTopByMhMmcodeOrderByMhIndtDesc(String mmCode);
}
Loading…
Cancel
Save