You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

291 lines
9.5 KiB
Java

package cokr.xit.fims.crdn.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.poi.ss.usermodel.CellStyle;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.file.xls.XLSWriter;
import cokr.xit.base.user.ManagedUser;
import cokr.xit.base.user.dao.UserMapper;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.crdn.CrdnQuery;
import cokr.xit.fims.crdn.dao.GlobalStngMapper;
import cokr.xit.fims.crdn.service.CrdnService;
import cokr.xit.fims.crdn.service.CrdnStngService;
import cokr.xit.foundation.data.DataObject;
/** .<br />
* { }/crdn/crdn06 .
* @author leebj
*/
public class Crdn06Controller extends ApplicationController {
public static final String CLASS_URL = "/crdn/crdn06";
2 years ago
public class METHOD_URL {
public static final String
crackdownManagementMain = "/010/main.do"
, getCrackdownList = "/010/list.do"
, removeCrackdown = "/010/remove.do"
, getCrackdownInfo = "/020/info.do"
, updateCrackdown = "/020/update.do"
, getCrackdownStatusInfo = "/030/info.do"
, updateCrackdownStatus = "/030/update.do"
2 years ago
;
}
@Resource(name="crdnService")
private CrdnService crdnService;
@Resource(name="crdnStngService")
private CrdnStngService crdnStngService;
@Resource(name="userMapper")
protected UserMapper userMapper;
@Resource(name="globalStngMapper")
protected GlobalStngMapper globalStngMapper;
/** .
* @return fims/crdn/crdn06010-main
*/
public ModelAndView crackdownManagementMain() {
ModelAndView mav = new ModelAndView();
mav.setViewName("fims/crdn/crdn06010-main");
mav.addObject("pageName", "crdn06010-main");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM002", "FIM003", "FIM005", "FIM010", "FIM022", "FIM026",
"FIM034", "FIM054");
mav.addObject("FIM003List", commonCodes.get("FIM003"));
mav.addObject("FIM005List", commonCodes.get("FIM005"));
mav.addObject("FIM010List", commonCodes.get("FIM010"));
mav.addObject("FIM054List", commonCodes.get("FIM054"));
addCodes(commonCodes, mav, "FIM002", "FIM003", "FIM010", "FIM022", "FIM026", "FIM034");
return mav;
}
/** .<br />
* {@link CrdnService#getCrackdownList(CrdnQuery)}
* @param query
* @return jsonView
*/
public ModelAndView getCrackdownList(CrdnQuery query) {
setFetchSize(query);
ManagedUser currentUser = userMapper.getUser(currentUser().getAccount(), currentUser().getInstitute());
String curDeptCode = currentUser.getDeptCode();
String sggCd = globalStngMapper.selectSggCd(curDeptCode);
query.setSggCd(sggCd);
if("xls".equals(query.getDownload())) {
XLSWriter xlsx = new XLSWriter()
.setTemplate("template/xls/excl-list-tmpl.xlsx")
.setFilename("단속자료 목록.xlsx")
.worksheet(0);
/*
CellStyle header = xlsx.cellStyle(new XLSWriter.Styler()
.width(20)
.foregroundColor(HSSFColor.HSSFColorPredefined.LIGHT_BLUE.getIndex())
.configure(styler -> {
Font font = xlsx.workbook().createFont();
font.setColor(HSSFColor.HSSFColorPredefined.WHITE.getIndex());
styler.font(font);
})
); */
CellStyle numeric = xlsx.n_nn0();
xlsx
/*
.cell(0, 0)
.value("단속자료 목록", XLSWriter.Styler.CENTER)
.merge(0, 15)
.cell(3, 0)
.rowValues(List.of(
"업무구분", header, "부과제외일자", header, "부과제외구분", header, "부과제외사유", header, "기타내용", header,
"민원신청번호", header, "민원접수번호", header, "민원접수일자", header, "단속일시", header, "차량번호", header,
"법정동", header, "단속장소", header, "과태료금액", header, "처리상태", header, "납부자명", header, "납부자생일", header
)) */
.cell(4, 0)
.values(
crdnService.getCrackdownList(query.setFetchSize(0)),
"TASK_SE_NM", xlsx.format(r -> xlsx.str2date(r.get("LEVY_EXCL_YMD"))), "LEVY_EXCL_SE_NM", "LEVY_EXCL_RSN_NM", "ETC_CN",
"CVLCPT_APLY_NO", "CVLCPT_RCPT_NO", xlsx.format(r -> xlsx.str2date(r.get("CVLCPT_RCPT_YMD"))), xlsx.format(r -> xlsx.str2date(r.get("CRDN_YMD")) + " " + xlsx.str2time(r.get("CRDN_TM"))),
"VHRNO", "CRDN_STDG_NM", "CRDN_PLC", xlsx.style("FFNLG_AMT", numeric), "CRDN_STTS_NM", "RTPYR_NM", xlsx.format(r -> xlsx.str2date(r.get("RTPYR_BRDT")))
);
return new ModelAndView("xlsView").addObject("xls", xlsx);
}
return setCollectionInfo(new ModelAndView("jsonView"), crdnService.getCrackdownList(query),"");
}
/** ID .
* @param crdnID ID
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
public ModelAndView removeCrackdown(Crdn crdn) {
boolean saved = false;
String retMessage = crdnService.removeCrackdown(crdn);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** ID (info) .
* @param query
* @return fims/crdn/crdn06020-info jsonView
* <pre>{
* "crdnInfo":
* }</pre>
*/
public ModelAndView getCrackdownInfo(CrdnQuery query) {
DataObject crdnInfo = crdnService.getCrackdownInfo(query);
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/crdn/crdn06020-info");
// 법정동
ManagedUser currentUser = userMapper.getUser(currentUser().getAccount(), currentUser().getInstitute());
String curDeptCode = currentUser.getDeptCode();
String sggCd = globalStngMapper.selectSggCd(curDeptCode);
mav.addObject("stdgNmList", globalStngMapper.selectStdgNmList(sggCd));
// 공통코드 - 위반 내역 코드
String vltnByTask = "";
switch(query.getTaskSeCd()) {
case "PVS" -> { vltnByTask = "WEB002"; }
case "BPV" -> { vltnByTask = "FIM005"; }
case "DPV" -> { vltnByTask = "FIM006"; }
case "ECA" -> { vltnByTask = "FIM061"; }
}
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM011","FIM053","LVS005",vltnByTask);
mav.addObject("FIM011List", commonCodes.get("FIM011"));
mav.addObject("FIM053List", commonCodes.get("FIM053"));
mav.addObject("LVS005List", commonCodes.get("LVS005"));
mav.addObject("VLTNList", commonCodes.get(vltnByTask));
// 단속조
List<DataObject> teamList = crdnStngService.getTeamList(query);
// 단속부가정보(TB_CRDN_ADI) 공통코드
switch(query.getTaskSeCd()) {
case "PVS" -> {
commonCodes = getCodesOf("FIM002","FIM007","FIM009");
mav.addObject("FIM002List", commonCodes.get("FIM002"));
mav.addObject("FIM007List", commonCodes.get("FIM007"));
mav.addObject("FIM009List", commonCodes.get("FIM009"));
mav.addObject("TeamList", teamList);
}
case "BPV" -> {
commonCodes = getCodesOf("FIM002","FIM009");
mav.addObject("FIM002List", commonCodes.get("FIM002"));
mav.addObject("FIM009List", commonCodes.get("FIM009"));
mav.addObject("TeamList", teamList);
}
case "DPV" -> {
commonCodes = getCodesOf("FIM034");
mav.addObject("FIM034List", commonCodes.get("FIM034"));
}
case "ECA" -> { }
}
return mav
.addObject("pageName", "crdn06020") //
.addObject("crdnInfo", json ? crdnInfo : toJson(crdnInfo))
;
}
/** ID .
* @param crdnID ID
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
public ModelAndView updateCrackdown(Crdn crdn) {
boolean saved = false;
String retMessage = crdnService.updateCrackdown(crdn);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** ID (info) .
* @param query
* @return fims/crdn/crdn06030-info jsonView
* <pre>{
* "crdnInfo":
* }</pre>
*/
public ModelAndView getCrackdownStatusInfo(CrdnQuery query) {
DataObject crdnInfo = crdnService.getCrackdownInfo(query);
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/crdn/crdn06030-info");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM010");
return mav
.addObject("pageName", "crdn06030") //
.addObject("FIM010List", commonCodes.get("FIM010")) // 단속 처리 상태 코드(CRDN_STTS_CD)
.addObject("crdnInfo", json ? crdnInfo : toJson(crdnInfo))
;
}
/** ID .
* @param crdnID ID
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
public ModelAndView updateCrackdownStatus(Crdn crdn) {
boolean saved = false;
String retMessage = crdnService.updateCrackdownStatus(crdn);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
}