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.
139 lines
4.5 KiB
Java
139 lines
4.5 KiB
Java
package cokr.xit.fims.crdn.web;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
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 com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
import cokr.xit.base.code.CommonCode;
|
|
import cokr.xit.base.file.xls.XLSWriter;
|
|
import cokr.xit.base.file.xls.XLSWriter.CellDef;
|
|
import cokr.xit.base.file.xls.XLSWriter.Styler;
|
|
import cokr.xit.base.user.ManagedUser;
|
|
import cokr.xit.base.user.dao.UserMapper;
|
|
import cokr.xit.base.web.ApplicationController;
|
|
import cokr.xit.fims.cmmn.CmmnUtil;
|
|
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/crdn03 로 접근할 수 있다.
|
|
* @author leebj
|
|
*/
|
|
public class Crdn03Controller extends ApplicationController {
|
|
|
|
public static final String CLASS_URL = "/crdn/crdn03";
|
|
|
|
public class METHOD_URL {
|
|
public static final String
|
|
tagInformationUndefinedDataMain = "/010/main.do",
|
|
getTagInformationUndefinedDataList = "/030/list.do",
|
|
updateTagInfo = "/030/update.do"
|
|
;
|
|
}
|
|
|
|
@Resource(name="crdnService")
|
|
private CrdnService crdnService;
|
|
|
|
@Resource(name="crdnStngService")
|
|
private CrdnStngService crdnStngService;
|
|
|
|
@Resource(name="globalStngMapper")
|
|
protected GlobalStngMapper globalStngMapper;
|
|
|
|
@Resource(name="userMapper")
|
|
protected UserMapper userMapper;
|
|
|
|
/** 표지정보 미확인 자료 메인화면을 연다.
|
|
* @return fims/crdn/crdn03010-main
|
|
*/
|
|
public ModelAndView tagInformationUndefinedDataMain() {
|
|
ModelAndView mav = new ModelAndView();
|
|
mav.setViewName("fims/crdn/crdn03010-main");
|
|
mav.addObject("pageName","crdn03010");
|
|
|
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM003", "FIM010");
|
|
addCodes(commonCodes, mav, "FIM003", "FIM010");
|
|
return mav;
|
|
}
|
|
|
|
/**표지정보미확인자료 목록을 조회한다.<br />
|
|
* {@link CrdnService#getCrackdownList(CrdnQuery)} 참고
|
|
* @param req 표지정보미확인자료 목록 조회 조건
|
|
* @return jsonView
|
|
*/
|
|
public ModelAndView getTagInformationUndefinedDataList(CrdnQuery query) {
|
|
query.setGridType("tagInformationUndefinedData");
|
|
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())) {
|
|
ArrayList<CellDef> cellDefs = fromJson(query.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
|
|
|
|
XLSWriter xlsx = new XLSWriter()
|
|
.setFilename("표지정보미확인자료 목록.xlsx")
|
|
.worksheet(0);
|
|
|
|
CellStyle center = xlsx.cellStyle(Styler.CENTER);
|
|
CellStyle numeric = xlsx.n_nn0();
|
|
CellStyle dateYMD = xlsx.yyyy_mm_dd();
|
|
CellStyle dateDT = xlsx.yyyy_mm_dd_hh_mm_ss();
|
|
|
|
List<DataObject> list = crdnService.getCrackdownList(query.setFetchSize(0));
|
|
|
|
Map<String, Object> valueMap = new HashMap<String, Object>();
|
|
valueMap.put("자료출처", xlsx.style("CRDN_INPT_SE_NM", center));
|
|
valueMap.put("위반일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT));
|
|
valueMap.put("차량번호", "VHRNO");
|
|
valueMap.put("법정동", xlsx.style("CRDN_STDG_NM", center));
|
|
valueMap.put("잔액", xlsx.style("BLNC", numeric));
|
|
valueMap.put("사진건수", xlsx.style("ATCH_FILE_CNT", center));
|
|
valueMap.put("발행번호", "CRDN_SN");
|
|
CellDef.setValues(cellDefs, valueMap);
|
|
|
|
xlsx.cell(0, 0)
|
|
.value("표지정보미확인자료 목록", center)
|
|
.merge(0, cellDefs.size()-1)
|
|
.cell(3, 0)
|
|
.rowValues(CellDef.header(cellDefs, () -> CmmnUtil.headerStyle(xlsx)))
|
|
.cell(4, 0)
|
|
.values(list, CellDef.values(cellDefs));
|
|
|
|
return new ModelAndView("xlsView").addObject("xls", xlsx);
|
|
}
|
|
|
|
return setCollectionInfo(new ModelAndView("jsonView"), crdnService.getCrackdownList(query),"");
|
|
}
|
|
|
|
/**표지정보 미확인 자료를 수정한다.
|
|
* @param crdn 단속 대장 정보
|
|
* @return jsonView
|
|
* <pre><code> {
|
|
* "saved": 수정되었으면 true, 그렇지 않으면 false
|
|
* }</code></pre>
|
|
*/
|
|
public ModelAndView updateTagInfo(Crdn crdn) {
|
|
|
|
boolean saved = crdnService.updateTagInfo(crdn);
|
|
return new ModelAndView("jsonView")
|
|
.addObject("saved", saved);
|
|
}
|
|
|
|
}
|