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.

3917 lines
145 KiB
Java

package cfs.fine.service.impl;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cfs.common.dao.CodeInfoDao;
import cfs.common.service.CfsCommonService;
import cfs.common.util.HttpUtil;
import cfs.common.util.ObjectUtil;
import cfs.common.util.Result;
import cfs.common.util.SftpUtil;
import cfs.common.util.StringUtil;
import cfs.common.util.ZipUtil;
import cfs.common.vo.ParamBean;
import cfs.fine.dao.FinePenaltyDao;
import cfs.fine.service.FinePenaltyService;
import cfs.fine.vo.PenaltyParamVO;
import cfs.trsmrcv.dao.TrsmrcvDao;
@SuppressWarnings({ "rawtypes", "unchecked" })
@Service("finePenaltyService")
public class FinePenaltyServiceImpl implements FinePenaltyService {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@Resource(name="finePenaltyDao")
private FinePenaltyDao finePenaltyDao;
@Resource(name = "codeInfoDao")
private CodeInfoDao codeInfoDao;
@Resource(name="cfsCommonService")
private CfsCommonService cfsCommonService;
@Resource(name="trsmrcvDao")
private TrsmrcvDao trsmrcvDao;
@Autowired
private SftpUtil sftpUtil;
@Override
public List<PenaltyParamVO> findPenaltyList(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList(param);
}
@Override
public List<PenaltyParamVO> findPenaltyList01(PenaltyParamVO param) throws Exception {//쩐쩐
List<PenaltyParamVO> result = finePenaltyDao.findPenaltyList01(param);
for(PenaltyParamVO rs : result){
rs.setFilePath(cfsCommonService.findCommonSecureGet("IMG_UP_URL")+rs.getYear()+"/"+rs.getFareOfficeId()+"/"+rs.getYear()+rs.getMonth()+rs.getDay());
}
return result;
}
@Override
public List<PenaltyParamVO> findPenaltyList02(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> result = finePenaltyDao.findPenaltyList02(param);
for(PenaltyParamVO rs : result){
rs.setFilePath(cfsCommonService.findCommonSecureGet("IMG_UP_URL")+rs.getYear()+"/"+rs.getFareOfficeId()+"/"+rs.getYear()+rs.getMonth()+rs.getDay());
}
return result;
}
@Override
public void penaltyListFileCreate(List<PenaltyParamVO> paramList) throws Exception {
//List<PenaltyParamVO> penaltyList = findPenaltyList(param);
for(PenaltyParamVO param : paramList){
int penaltyHistoryHeadInfoCnt = 0;
param.setLoginUserNm(HttpUtil.getEmpNm());
switch (param.getStage()) {
case "0":
logger.info("사전통지대상자 File 생성");
param.setMotionId("20");
penaltyHistoryHeadInfoCnt = finePenaltyDao.countPenaltyHistoryHeadInfo(param);
if(penaltyHistoryHeadInfoCnt == 0) {
finePenaltyDao.createPenaltyHistoryHeadInfo(param);
}
//for(PenaltyParamVO pReulst: penaltyList) {
param.setLoginUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updatepenaltyDetailInfoDamo(param);
finePenaltyDao.updateFileDefaultCars(param);
finePenaltyDao.createPenaltyHistoryInfoDamo(param);
finePenaltyDao.createPenaltyHistoryDetailInfo(param);
//}
//param.setCount(penaltyList.size());
finePenaltyDao.updatePenaltyHistoryHeadInfo(param);
//for(PenaltyParamVO pReulst: penaltyList) {
//Map <String, String> etaxCnt = null;
//etaxCnt = finePenaltyDao.findPenaltyEtaxChk(pReulst);
//if(String.valueOf(etaxCnt.get("nCnt")).equals("0")){
//파일이 없는경우
param.setMotionFlag("00");
param.setLoginUserNm(HttpUtil.getEmpNm());
//}
//}
logger.info("사전통지대상자 File 생성 끝");
break;
case "1":
logger.info("1차 통지대상자 File 생성");
param.setMotionId("30");
penaltyHistoryHeadInfoCnt = finePenaltyDao.countPenaltyHistoryHeadInfo(param);
if(penaltyHistoryHeadInfoCnt == 0) {
finePenaltyDao.createPenaltyHistoryHeadInfo(param);
}
//for(PenaltyParamVO pReulst: penaltyList) {
param.setLoginUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updatepenaltyDetailInfoDamo(param);
finePenaltyDao.updateFileDefaultCars(param);
finePenaltyDao.createPenaltyHistoryInfoDamo(param);
finePenaltyDao.createPenaltyHistoryDetailInfo(param);
//}
param.setCount(1);
finePenaltyDao.updatePenaltyHistoryHeadInfo(param);
//for(PenaltyParamVO pReulst: penaltyList) {
//Map <String, String> etaxCnt = null;
//etaxCnt = finePenaltyDao.findPenaltyEtaxChk(pReulst);
//if(String.valueOf(etaxCnt.get("nCnt")).equals("0")){
//파일이 없는경우
param.setMotionFlag("10");
param.setLoginUserNm(HttpUtil.getEmpNm());
//}
//}
logger.info("1차 통지대상자 File 생성 끝");
break;
case "2":
logger.info("2차 통지대상자 File 생성");
param.setMotionId("40");
penaltyHistoryHeadInfoCnt = finePenaltyDao.countPenaltyHistoryHeadInfo(param);
if(penaltyHistoryHeadInfoCnt == 0) {
finePenaltyDao.createPenaltyHistoryHeadInfo(param);
}
//for(PenaltyParamVO pReulst: penaltyList) {
param.setLoginUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updatepenaltyDetailInfoDamo(param);
finePenaltyDao.updateFileDefaultCars(param);
finePenaltyDao.createPenaltyHistoryInfoDamo(param);
finePenaltyDao.createPenaltyHistoryDetailInfo(param);
//2차 납부대상자이므로 외국인차량의 차적정보를 수정한다.
if(finePenaltyDao.countForeignCars(param) > 0) {
finePenaltyDao.updateForeignCars(param);
}
//}
//param.setCount(penaltyList.size());
finePenaltyDao.updatePenaltyHistoryHeadInfo(param);
//for(PenaltyParamVO pReulst: penaltyList) {
//Map <String, String> etaxCnt = null;
//etaxCnt = finePenaltyDao.findPenaltyEtaxChk(pReulst);
//if(String.valueOf(etaxCnt.get("nCnt")).equals("0")){
//파일이 없는경우
param.setMotionFlag("20");
param.setLoginUserNm(HttpUtil.getEmpNm());
//}
//}
logger.info("2차 통지대상자 File 생성 끝");
break;
default:
break;
}
}
}
@Override
public List<PenaltyParamVO> findPenaltyList03(PenaltyParamVO param) throws Exception {
if(!StringUtil.isNullOrEmpty(param.getReturnReasonId())) {
param.setReturnReasonIdArr(param.getReturnReasonId().split("\\|\\|"));
}
List<PenaltyParamVO> result = finePenaltyDao.findPenaltyList03(param);
for(PenaltyParamVO rs : result){
rs.setFilePath(cfsCommonService.findCommonSecureGet("IMG_UP_URL")+rs.getYear()+"/"+rs.getFareOfficeId()+"/"+rs.getYear()+rs.getMonth()+rs.getDay());
}
return result;
}
@Override
public List<PenaltyParamVO> findPenaltyList04(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> rtnList = new ArrayList<PenaltyParamVO>();
switch (param.getStage()) {
case "0":
logger.info("사전통지 부과 대장 조회");
switch (param.getMotion()) {
case "1":
param.setMotionId("21");
break;
case "2":
param.setMotionId("23");
break;
case "3":
param.setMotionId("25");
break;
default :
}
rtnList = finePenaltyDao.findPenaltyList04(param);
break;
case "1":
logger.info("1차통지 부과 대장 조회");
switch (param.getMotion()) {
case "1":
param.setMotionId("31");
break;
case "2":
param.setMotionId("33");
break;
case "3":
param.setMotionId("35");
break;
default :
}
rtnList = finePenaltyDao.findPenaltyList04(param);
break;
case "2":
logger.info("2차통지 부과 대장 조회");
switch (param.getMotion()) {
case "1":
param.setMotionId("41");
break;
case "2":
param.setMotionId("43");
break;
case "3":
param.setMotionId("45");
break;
default :
}
rtnList = finePenaltyDao.findPenaltyList04(param);
break;
default:
break;
}
return rtnList;
}
@Override
public List<PenaltyParamVO> findPenaltyList04_1(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> rtnList = new ArrayList<PenaltyParamVO>();
switch (param.getStage()) {
case "0":
logger.info("사전통지 부과 대장 조회");
switch (param.getMotion()) {
case "1":
param.setMotionId("21");
break;
case "2":
param.setMotionId("23");
break;
case "3":
param.setMotionId("25");
break;
default :
}
rtnList = finePenaltyDao.findPenaltyList04_1(param);
break;
case "1":
logger.info("1차통지 부과 대장 조회");
switch (param.getMotion()) {
case "1":
param.setMotionId("31");
break;
case "2":
param.setMotionId("33");
break;
case "3":
param.setMotionId("35");
break;
default :
}
rtnList = finePenaltyDao.findPenaltyList04_1(param);
break;
case "2":
logger.info("2차통지 부과 대장 조회");
switch (param.getMotion()) {
case "1":
param.setMotionId("41");
break;
case "2":
param.setMotionId("43");
break;
case "3":
param.setMotionId("45");
break;
default :
}
rtnList = finePenaltyDao.findPenaltyList04_1(param);
break;
default:
break;
}
return rtnList;
}
@Override
public List<PenaltyParamVO> findPenaltyList05(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> result = null;
if(param.getRentKbn().equals("1")){
result = finePenaltyDao.findPenaltyRentList05(param);
}else{
result = finePenaltyDao.findPenaltyList05(param);
}
for(PenaltyParamVO rs : result){
rs.setFilePath(cfsCommonService.findCommonSecureGet("IMG_UP_URL")+rs.getYear()+"/"+rs.getFareOfficeId()+"/"+rs.getYear()+rs.getMonth()+rs.getDay());
}
return result;
}
@Override
public List<PenaltyParamVO> findPenaltyList06(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList06(param);
}
//압류 촉탁 대상자 File 생성 - 압류 대상자 조회(기존 압류 대상자는 제외)
@Override
public List<PenaltyParamVO> findPenaltyList07(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> resultList = new ArrayList<PenaltyParamVO>();
resultList = finePenaltyDao.findPenaltyList07oneRow(param); //압류대상 상세 조회
return resultList;
}
//압류 촉탁 대상자 File 생성 - 압류 대상자 조회(기존 압류 대상자는 제외)
@Override
public List<PenaltyParamVO> findPenaltyRentList07(PenaltyParamVO param) {
List<PenaltyParamVO> resultList = new ArrayList<PenaltyParamVO>();
try{
List<PenaltyParamVO> rtnList1 = finePenaltyDao.findPenaltyRentList0701(param); //압류대상 자료 조회
//System.out.println("################# 압류 대상자 조회 : 시작 ");
for(PenaltyParamVO rtnVal : rtnList1) {
System.out.println("죽는위치");
rtnVal.setPenaltyDateFrom(param.getPenaltyDateFrom());
rtnVal.setPenaltyDateTo(param.getPenaltyDateTo());
//System.out.println("################# 압류 대상자 조회 - carNo : " + rtnVal.getCarNo());
//System.out.println("################# 압류 대상자 조회 - residentNo : " + rtnVal.getResidentNo());
//System.out.println("################# 압류 대상자 조회 - nCnt : " + rtnVal.getnCnt());
PenaltyParamVO resultParam = finePenaltyDao.findPenaltyRentList07oneRow(rtnVal); //압류대상 상세 조회
resultParam.setnCnt(rtnVal.getnCnt());
resultList.add(resultParam);
}
}catch(Exception e){
e.printStackTrace();
}
return resultList;
}
//압류촉탁관리 - 자동차 등록 압류 촉탁서 - 조회
@Override
public List<PenaltyParamVO> findPenaltyList08(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> resultList = new ArrayList<PenaltyParamVO>();
List<PenaltyParamVO> rtnList1 = finePenaltyDao.findPenaltyList08(param); //PENALTY_DETAIL_INFO_DAMO, PENALTY_DETAIL_INFO_DAMO, DEFAULT_CARS_TRANS_INFO_DAMO - SELECT
/*
for(PenaltyParamVO rtnVal : rtnList1) {
rtnVal.setPenaltyDateFrom(param.getPenaltyDateFrom());
rtnVal.setPenaltyDateTo(param.getPenaltyDateTo());
List<PenaltyParamVO> rList = finePenaltyDao.findPenaltyList08(rtnVal); //PENALTY_DETAIL_INFO_DAMO, PENALTY_DETAIL_INFO_DAMO, DEFAULT_CARS_TRANS_INFO_DAMO - SELECT
if(CollectionUtils.isNotEmpty(rList)) {
PenaltyParamVO rParam = rList.get(0);
rParam.setnCnt(Integer.toString(rList.size()));
resultList.add(rParam);
}
}
*/
return rtnList1;
}
//압류촉탁관리 - 자동차 등록 압류 촉탁서 - 조회
@Override
public List<PenaltyParamVO> findPenaltyRentList08(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> resultList = new ArrayList<PenaltyParamVO>();
List<PenaltyParamVO> rtnList1 = finePenaltyDao.findPenaltyRentList08(param); //PENALTY_DETAIL_INFO_DAMO, PENALTY_DETAIL_INFO_DAMO, DEFAULT_CARS_TRANS_INFO_DAMO - SELECT
/*
for(PenaltyParamVO rtnVal : rtnList1) {
rtnVal.setPenaltyDateFrom(param.getPenaltyDateFrom());
rtnVal.setPenaltyDateTo(param.getPenaltyDateTo());
List<PenaltyParamVO> rList = finePenaltyDao.findPenaltyList08(rtnVal); //PENALTY_DETAIL_INFO_DAMO, PENALTY_DETAIL_INFO_DAMO, DEFAULT_CARS_TRANS_INFO_DAMO - SELECT
if(CollectionUtils.isNotEmpty(rList)) {
PenaltyParamVO rParam = rList.get(0);
rParam.setnCnt(Integer.toString(rList.size()));
resultList.add(rParam);
}
}
*/
return rtnList1;
}
@Override
public List<PenaltyParamVO> findPenaltyList09(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> resultList = new ArrayList<PenaltyParamVO>();
List<PenaltyParamVO> rtnList1 = finePenaltyDao.findPenaltyList0901(param);
for(PenaltyParamVO rtnVal : rtnList1) {
rtnVal.setPenaltyDateFrom(param.getPenaltyDateFrom());
rtnVal.setPenaltyDateTo(param.getPenaltyDateTo());
List<PenaltyParamVO> rList = finePenaltyDao.findPenaltyList09(rtnVal);
if(CollectionUtils.isNotEmpty(rList)) {
PenaltyParamVO rParam = rList.get(0);
rParam.setnCnt(Integer.toString(rList.size()));
resultList.add(rParam);
}
}
return resultList;
}
@Override
public List<PenaltyParamVO> findPenaltyList10(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList10(param);
}
@Override
public List<PenaltyParamVO> findPenaltyList10P01(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList10P01(param);
}
@Override
public List<PenaltyParamVO> findPenaltyList11(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList11(param);
}
@Override
public List<PenaltyParamVO> findPenaltyList12(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList12(param);
}
@Override
public List<PenaltyParamVO> findPenaltyList13(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList13(param);
}
@Override
public List<PenaltyParamVO> findPenaltyList14(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList14(param);
}
@Override
public List<PenaltyParamVO> findPenaltyDetlList14(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyDetlList14(param);
}
@Override
public List<PenaltyParamVO> findPenaltyList15(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList15(param);
}
@Override
public List<PenaltyParamVO> findPenaltyList1502(PenaltyParamVO param) throws Exception {
if("1".equals(param.getGubun())) {
return finePenaltyDao.findPenaltyList150201(param);
} else {
return finePenaltyDao.findPenaltyList150202(param);
}
}
@Override
public List<PenaltyParamVO> findPenaltyList16(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList16(param);
}
@Override
public List<PenaltyParamVO> findPenaltyList17(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList17(param);
}
@Override
public List<PenaltyParamVO> findPenaltyList18(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findPenaltyList18(param);
}
@Override
public int countSendInfo(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
int rtnCnt = 0;
List paramList = (List) param.getParamList();
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
pItem.setSendDate(paramVO.getSendDate());
pItem.setDeliveryDate(paramVO.getDeliveryDate());
if(!"1".equals(pItem.getChk())) {
continue;
}
switch (paramVO.getStage()) {
case "0":
pItem.setMotionId("21");
break;
case "1":
pItem.setMotionId("31");
break;
case "2":
pItem.setMotionId("41");
break;
default:
break;
}
//SEND_DATE 가 없으면 COUNT 하지 않는다.
if(!StringUtil.isNullOrEmpty(pItem.getSendDate())) {
rtnCnt += finePenaltyDao.countSendInfo(pItem);
}
}
return rtnCnt;
}
@Override
public int countSendInfo01(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
int rtnCnt = 0;
List paramList = (List) param.getParamList();
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
if(!"1".equals(pItem.getChk())) {
continue;
}
switch (paramVO.getStage()) {
case "0":
pItem.setMotionId("23");
break;
case "1":
pItem.setMotionId("33");
break;
case "2":
pItem.setMotionId("43");
break;
default:
break;
}
rtnCnt += finePenaltyDao.countPenaltyHistoryHeadInfo(pItem);
}
return rtnCnt;
}
@Override
public int countSendInfo02(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
int rtnCnt = 0;
List paramList = (List) param.getParamList();
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
if(!"1".equals(pItem.getChk())) {
continue;
}
switch (paramVO.getStage()) {
case "0":
pItem.setMotionId("25");
break;
case "1":
pItem.setMotionId("35");
break;
case "2":
pItem.setMotionId("45");
break;
default:
break;
}
rtnCnt += finePenaltyDao.countPenaltyHistoryHeadInfo(pItem);
}
return rtnCnt;
}
@Override
public int countSendInfo05(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
int rtnCnt = 0;
List paramList = (List) param.getParamList();
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
pItem.setMotionId("43");
if(!"1".equals(pItem.getChk())) {
continue;
}
rtnCnt += finePenaltyDao.countPenaltyHistoryHeadInfo(pItem);
}
return rtnCnt;
}
//압류 촉탁 대상자 File 생성 여부 확인 - 파일생성
@Override
public int countSendInfo07(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
int rtnCnt = 0;
List paramList = (List) param.getParamList();
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
if(!"1".equals(pItem.getChk())) {
continue;
}
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
}
return rtnCnt;
}
@Override
public String findDueDayForPayment(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findDueDayForPayment(param);
}
@Override
public String findDueDayForDefPayment(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findDueDayForDefPayment(param);
}
private int countSendInfo(PenaltyParamVO param) throws Exception {
if(!StringUtil.isNullOrEmpty(param.getSendDate())) {
return finePenaltyDao.countSendInfo(param);
} else {
return 0;
}
}
@Override
public void createSendInfo(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
List paramList = (List) param.getParamList();
paramVO.setLoginUserNm(HttpUtil.getEmpNm());
int updateCnt = 0;
String stageNm = "";
String stageMotionId = "";
switch (paramVO.getStage()) {
case "0":
stageNm = "사전통지";
stageMotionId = "21";
break;
case "1":
stageNm = "1차 통지";
stageMotionId = "31";
break;
case "2":
stageNm = "2차 통지";
stageMotionId = "41";
break;
default:
break;
}
logger.info(stageNm + " 고지서 발송");
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
//체크박스 체크된 건에 대해서만 고지서 발송
if(!"1".equals(pItem.getChk())) {
continue;
}
pItem.setSendDate(paramVO.getSendDate());
pItem.setDeliveryDate(paramVO.getDeliveryDate());
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
pItem.setMotionId(stageMotionId);
pItem.setLoginUserNm(HttpUtil.getEmpNm());
int penaltyHistoryHeadInfoCnt = finePenaltyDao.countPenaltyHistoryHeadInfo(pItem);
if(penaltyHistoryHeadInfoCnt == 0) {
//과태료 이력 Head 정보 등록
finePenaltyDao.createPenaltyHistoryHeadInfo(pItem);
}
//1. 발송정보 등록
if(countSendInfo(pItem) > 0) {
finePenaltyDao.updateSendInfo(pItem);
} else {
finePenaltyDao.createSendInfo(pItem);
}
//과태료 Detail 정보 업데이트
finePenaltyDao.updatepenaltyDetailInfoDamo(pItem);
//과태료 변경 이력 정보 등록
finePenaltyDao.createPenaltyHistoryInfoDamo(pItem);
//과태료 이력 Detail 정보 등록
finePenaltyDao.createPenaltyHistoryDetailInfo(pItem);
updateCnt++;
}
//3. 과태료 이력 Head 정보 작성건수 업데이트
paramVO.setCount(updateCnt);
paramVO.setMotionId(stageMotionId);
finePenaltyDao.updatePenaltyHistoryHeadInfo(paramVO);
logger.info(stageNm + " 고지서 " + updateCnt + " 건 발송 끝");
}
@Override
public void createSendInfo01(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
List paramList = (List) param.getParamList();
paramVO.setLoginUserNm(HttpUtil.getEmpNm());
int updateCnt = 0;
String stageNm = "";
String stageMotionId = "";
switch (paramVO.getStage()) {
case "0":
stageNm = "사전통지";
stageMotionId = "23";
break;
case "1":
stageNm = "1차 통지";
stageMotionId = "33";
break;
case "2":
stageNm = "2차 통지";
stageMotionId = "43";
break;
default:
break;
}
logger.info(stageNm + " 고지서 재발행");
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
//체크박스 체크된 건에 대해서만 고지서 발송
if(!"1".equals(pItem.getChk())) {
continue;
}
pItem.setSendDate(paramVO.getSendDate());
pItem.setDeliveryDate(paramVO.getDeliveryDate());
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
pItem.setMotionId(stageMotionId);
pItem.setLoginUserNm(HttpUtil.getEmpNm());
int penaltyHistoryHeadInfoCnt = finePenaltyDao.countPenaltyHistoryHeadInfo(pItem);
if(penaltyHistoryHeadInfoCnt == 0) {
//과태료 이력 Head 정보 등록
finePenaltyDao.createPenaltyHistoryHeadInfo(pItem);
}
//1. 발송정보 등록
if(countSendInfo(pItem) > 0) {
finePenaltyDao.updateSendInfo(pItem);
} else {
finePenaltyDao.createSendInfo(pItem);
}
//과태료 Detail 정보 업데이트
finePenaltyDao.updatepenaltyDetailInfoDamo(pItem);
//과태료 변경 이력 정보 등록
finePenaltyDao.createPenaltyHistoryInfoDamo(pItem);
//과태료 이력 Detail 정보 등록
finePenaltyDao.createPenaltyHistoryDetailInfo(pItem);
updateCnt++;
}
//3. 과태료 이력 Head 정보 작성건수 업데이트
paramVO.setCount(updateCnt);
paramVO.setMotionId(stageMotionId);
finePenaltyDao.updatePenaltyHistoryHeadInfo(paramVO);
logger.info(stageNm + " 고지서 " + updateCnt + " 건 재발행 끝");
}
@Override
public void createSendInfo02(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
List paramList = (List) param.getParamList();
paramVO.setLoginUserNm(HttpUtil.getEmpNm());
int updateCnt = 0;
String stageNm = "";
String stageMotionId = "";
switch (paramVO.getStage()) {
case "0":
stageNm = "사전통지";
stageMotionId = "25";
break;
case "1":
stageNm = "1차 통지";
stageMotionId = "35";
break;
case "2":
stageNm = "2차 통지";
stageMotionId = "45";
break;
default:
break;
}
logger.info(stageNm + " 고지서 반송분 발송");
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
//체크박스 체크된 건에 대해서만 고지서 발송
if(!"1".equals(pItem.getChk())) {
continue;
}
pItem.setSendDate(paramVO.getSendDate());
pItem.setDeliveryDate(paramVO.getDeliveryDate());
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
pItem.setMotionId(stageMotionId);
pItem.setLoginUserNm(HttpUtil.getEmpNm());
int penaltyHistoryHeadInfoCnt = finePenaltyDao.countPenaltyHistoryHeadInfo(pItem);
if(penaltyHistoryHeadInfoCnt == 0) {
//과태료 이력 Head 정보 등록
finePenaltyDao.createPenaltyHistoryHeadInfo(pItem);
}
//1. 발송정보 등록
if(countSendInfo(pItem) > 0) {
finePenaltyDao.updateSendInfo(pItem);
} else {
finePenaltyDao.createSendInfo(pItem);
}
//과태료 Detail 정보 업데이트
finePenaltyDao.updatepenaltyDetailInfoDamo(pItem);
//과태료 변경 이력 정보 등록
finePenaltyDao.createPenaltyHistoryInfoDamo(pItem);
//과태료 이력 Detail 정보 등록
finePenaltyDao.createPenaltyHistoryDetailInfo(pItem);
updateCnt++;
}
//3. 과태료 이력 Head 정보 작성건수 업데이트
paramVO.setCount(updateCnt);
paramVO.setMotionId(stageMotionId);
finePenaltyDao.updatePenaltyHistoryHeadInfo(paramVO);
logger.info(stageNm + " 고지서 " + updateCnt + " 건 반송분 발송 끝");
}
@Override
public void createSendInfo05(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
List paramList = (List) param.getParamList();
paramVO.setLoginUserNm(HttpUtil.getEmpNm());
int updateCnt = 0;
String stageNm = "2차 과태료 독촉";
String stageMotionId = "47";
logger.info(stageNm + " 고지서 발송");
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
//체크박스 체크된 건에 대해서만 고지서 발송
if(!"1".equals(pItem.getChk())) {
continue;
}
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
pItem.setMotionId(stageMotionId);
pItem.setLoginUserNm(HttpUtil.getEmpNm());
int penaltyHistoryHeadInfoCnt = finePenaltyDao.countPenaltyHistoryHeadInfo(pItem); //PENALTY_HISTORY_HEAD_INFO - COUNT
if(penaltyHistoryHeadInfoCnt == 0) {
//과태료 이력 Head 정보 등록
finePenaltyDao.createPenaltyHistoryHeadInfo(pItem);
}
//1. 발송정보 등록
if(countSendInfo(pItem) > 0) {
finePenaltyDao.updateSendInfo(pItem);
} else {
finePenaltyDao.createSendInfo(pItem);
}
//과태료 Detail 정보 업데이트
finePenaltyDao.updatepenaltyDetailInfoDamo(pItem);
//과태료 변경 이력 정보 등록
finePenaltyDao.createPenaltyHistoryInfoDamo(pItem);
//과태료 이력 Detail 정보 등록
finePenaltyDao.createPenaltyHistoryDetailInfo(pItem);
updateCnt++;
}
//3. 과태료 이력 Head 정보 작성건수 업데이트
paramVO.setCount(updateCnt);
paramVO.setMotionId(stageMotionId);
finePenaltyDao.updatePenaltyHistoryHeadInfo(paramVO);
logger.info(stageNm + " 고지서 " + updateCnt + " 건 반송분 발송 끝");
}
//압류 촉탁 대상자 File 생성 - 압류 촉탁 대상자 선정(71) - 처리
@Override
public void createSendInfo07(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
logger.info("압류");
logger.info(paramVO.toString());
logger.info(paramMap.toString());
List paramList = (List) param.getParamList();
logger.info(paramList.toString());
boolean penaltyHistoryHeadInfo = false;
int updateCnt = 0;
logger.info("압류 촉탁 대상자 File 생성");
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem.setLoginUserNm(HttpUtil.getEmpNm());
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
//체크 된 것만 처리 @@@@@@@@@@@@@@@@@@@@@@
if(!"1".equals(pItem.getChk()) ) {
continue;
}
updateCnt++;
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
pItem.setMotionId("71");
pItem.setSessionUserNm(HttpUtil.getEmpNm()); //사용자명
if(!penaltyHistoryHeadInfo) {
int penaltyHistoryHeadInfoCnt = finePenaltyDao.countPenaltyHistoryHeadInfo(pItem); //PENALTY_HISTORY_HEAD_INFO - COUNT
//System.out.println("################# 자료 : penaltyHistoryHeadInfoCnt : " + penaltyHistoryHeadInfoCnt);
if(penaltyHistoryHeadInfoCnt == 0) {
// finePenaltyDao.createPenaltyHistoryHeadInfo(pItem); //PENALTY_HISTORY_HEAD_INFO - INSERT
}
//한번만 등록 한다.
penaltyHistoryHeadInfo = true;
}
//
// //같은 차량 + 주민번호에 대해서는 1번만 처리됨.
//210802 같은 차량 중복 압류 처리
//System.out.println("################# 자료 : countPenaltyDetailInfo : " + "start");
pItem.setLoginUserNm(HttpUtil.getEmpNm()); //사용자명
pItem.setSeizureManageYear(paramVO.getSeisureDate().substring(0,4)); //압류년도
pItem.setSeizureManageNo(Integer.toString(finePenaltyDao.findMaxSeizureManageNo(pItem) + 1)); //압류번호 SEIZURE_INFO - NVL (MAX (SEIZURE_MANAGE_NO), 0)
pItem.setSeisureDate(paramVO.getSeisureDate()); //압류일자
pItem.setnCnt("1"); //압류건수
pItem.setSeizureAmount(pItem.getLavyAmount()); //압류금액
//System.out.println("################# 자료 : SEIZURE_INFO : " + "INSERT");
finePenaltyDao.insertSeizureInfo(pItem); //SEIZURE_INFO - INSERT
//System.out.println("################# 자료 : PENALTY_DETAIL_INFO_DAMO : " + "UPDATE");
finePenaltyDao.updatepenaltyDetailInfoDamoSeizure(pItem); //PENALTY_DETAIL_INFO_DAMO - UPDATE
finePenaltyDao.updatepenaltyDetailRentInfoDamoSeizure(pItem); //PENALTY_RENT_DETAIL_INFO - UPDATE
finePenaltyDao.updateDefaultCarsTransSeizure(pItem); //DEFAULT_CARS_TRANS_INFO_DAMO - UPDATE
if(finePenaltyDao.countPenaltyHistoryInfo(pItem) == 0) { //PENALTY_HISTORY_INFO_DAMO - COUNT(*)
//System.out.println("################# 자료 : PENALTY_HISTORY_INFO_DAMO : " + "INSERT");
finePenaltyDao.createPenaltyHistoryInfoDamo(pItem); //PENALTY_HISTORY_INFO_DAMO - INSERT
}else {
//System.out.println("################# 자료 : PENALTY_DETAIL_INFO_DAMO : " + "SELECT");
PenaltyParamVO rtnVal = finePenaltyDao.findPenaltyDetailInfo(pItem); //PENALTY_DETAIL_INFO_DAMO - SELECT NOTICE_
rtnVal.setLoginUserNm(HttpUtil.getEmpNm());
rtnVal.setPenaltyManageYear(pItem.getPenaltyManageYear());
rtnVal.setPenaltySeqno(pItem.getPenaltySeqno());
//System.out.println("################# 자료 : getMotionId : " + rtnVal.getMotionId());
//51:민원접수인 경우
if("51".equals(rtnVal.getMotionId())) {
finePenaltyDao.updatePenaltyHistoryInfoDamoSeizure01(pItem); //PENALTY_HISTORY_INFO_DAMO - UPDATE
} else {
finePenaltyDao.updatePenaltyHistoryInfoDamoSeizure02(rtnVal); //PENALTY_HISTORY_INFO_DAMO - UPDATE
}
}
//System.out.println("################# 자료 : PENALTY_HISTORY_DETAIL_I_DAMO : " + "INSERT");
finePenaltyDao.createPenaltyHistoryDetailInfo(pItem); //PENALTY_HISTORY_DETAIL_I_DAMO - INSERT
//소유주 와 주민번호가 차적 정보와 같으면 주소를 수정 처리함.
System.out.println("################# 자료 : getOwner : " + pItem.getOwner());
System.out.println("################# 자료 : getOwner1 : " + pItem.getOwner1());
System.out.println("################# 자료 : getResidentNo : " + pItem.getResidentNo());
System.out.println("################# 자료 : getResidentNo1 : " + pItem.getResidentNo1());
System.out.println("################# 자료 : getAddress1 : " + pItem.getAddress1());
if( pItem.getOwner() == pItem.getOwner1() && pItem.getResidentNo() == pItem.getResidentNo1() && pItem.getAddress1() != "" ) {
//System.out.println("################# 자료 : DEFAULT_CARS_TRANS_INFO_DAMO : " + "UPDATE");
finePenaltyDao.updateDefaultTransInfoAddr(pItem); //DEFAULT_CARS_TRANS_INFO_DAMO - UPDATE
finePenaltyDao.updatePenaltyAddressUpdateInfoAddr(pItem); //PENALTY_ADDRESS_UPDATE_I_DAMO - INSERT
finePenaltyDao.updatePenaltyHeadInfoAddr(pItem); //PENALTY_DETAIL_INFO_DAMO - UPDATE
}
}
// } //for
paramVO.setMotionId("71");
paramVO.setCount(updateCnt);
//System.out.println("################# 자료 : PENALTY_HISTORY_HEAD_INFO : " + "UPDATE");
finePenaltyDao.updatePenaltyHistoryHeadInfo(paramVO); //PENALTY_HISTORY_HEAD_INFO - UPDATE
logger.info("압류 촉탁 대상자 File 생성 완료");
}
//압류 촉탁 대상자 File 생성 - 압류 촉탁 대상자 선정(71) - 처리
@Override
public void createSendRentInfo07(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
List paramList = (List) param.getParamList();
boolean penaltyHistoryHeadInfo = false;
int updateCnt = 0;
logger.info("압류 촉탁 대상자 File 생성");
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem.setLoginUserNm(HttpUtil.getEmpNm());
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
//System.out.println("################# 자료 : for i : " + i);
//체크 된 것만 처리 @@@@@@@@@@@@@@@@@@@@@@
if(!"1".equals(pItem.getChk()) ) {
continue;
}
updateCnt++;
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
pItem.setMotionId("71");
pItem.setSessionUserNm(HttpUtil.getEmpNm()); //사용자명
if(!penaltyHistoryHeadInfo) {
int penaltyHistoryHeadInfoCnt = finePenaltyDao.countPenaltyHistoryHeadInfo(pItem); //PENALTY_HISTORY_HEAD_INFO - COUNT
//System.out.println("################# 자료 : penaltyHistoryHeadInfoCnt : " + penaltyHistoryHeadInfoCnt);
if(penaltyHistoryHeadInfoCnt == 0) {
finePenaltyDao.createPenaltyHistoryHeadInfo(pItem); //PENALTY_HISTORY_HEAD_INFO - INSERT
}
//한번만 등록 한다.
penaltyHistoryHeadInfo = true;
}
//같은 차량 + 주민번호에 대해서는 1번만 처리됨.
if(finePenaltyDao.countPenaltyDetailInfo(pItem) == 0) { //PENALTY_DETAIL_INFO_DAMO - COUNT (*) -- 압류대상여부 - 71, 72
//System.out.println("################# 자료 : countPenaltyDetailInfo : " + "start");
pItem.setLoginUserNm(HttpUtil.getEmpNm()); //사용자명
pItem.setSeizureManageYear(paramVO.getSeisureDate().substring(0,4)); //압류년도
pItem.setSeizureManageNo(Integer.toString(finePenaltyDao.findMaxSeizureManageNo(pItem) + 1)); //압류번호 SEIZURE_INFO - NVL (MAX (SEIZURE_MANAGE_NO), 0)
pItem.setSeisureDate(paramVO.getSeisureDate()); //압류일자
pItem.setnCnt("1"); //압류건수
pItem.setSeizureAmount(pItem.getLavyAmount()); //압류금액
//System.out.println("################# 자료 : SEIZURE_INFO : " + "INSERT");
finePenaltyDao.insertSeizureInfo(pItem); //SEIZURE_INFO - INSERT
//System.out.println("################# 자료 : PENALTY_DETAIL_INFO_DAMO : " + "UPDATE");
finePenaltyDao.updatepenaltyDetailInfoDamoSeizure(pItem); //PENALTY_DETAIL_INFO_DAMO - UPDATE
//finePenaltyDao.updateDefaultCarsTransSeizure(pItem); //DEFAULT_CARS_TRANS_INFO_DAMO - UPDATE
if(finePenaltyDao.countPenaltyHistoryInfo(pItem) == 0) { //PENALTY_HISTORY_INFO_DAMO - COUNT(*)
//System.out.println("################# 자료 : PENALTY_HISTORY_INFO_DAMO : " + "INSERT");
finePenaltyDao.createPenaltyHistoryInfoDamo(pItem); //PENALTY_HISTORY_INFO_DAMO - INSERT
}else {
//System.out.println("################# 자료 : PENALTY_DETAIL_INFO_DAMO : " + "SELECT");
PenaltyParamVO rtnVal = finePenaltyDao.findPenaltyDetailInfo(pItem); //PENALTY_DETAIL_INFO_DAMO - SELECT NOTICE_
rtnVal.setLoginUserNm(HttpUtil.getEmpNm());
rtnVal.setPenaltyManageYear(pItem.getPenaltyManageYear());
rtnVal.setPenaltySeqno(pItem.getPenaltySeqno());
//System.out.println("################# 자료 : getMotionId : " + rtnVal.getMotionId());
//51:민원접수인 경우
if("51".equals(rtnVal.getMotionId())) {
finePenaltyDao.updatePenaltyHistoryInfoDamoSeizure01(pItem); //PENALTY_HISTORY_INFO_DAMO - UPDATE
} else {
finePenaltyDao.updatePenaltyHistoryInfoDamoSeizure02(rtnVal); //PENALTY_HISTORY_INFO_DAMO - UPDATE
}
}
//System.out.println("################# 자료 : PENALTY_HISTORY_DETAIL_I_DAMO : " + "INSERT");
finePenaltyDao.createPenaltyHistoryDetailInfo(pItem); //PENALTY_HISTORY_DETAIL_I_DAMO - INSERT
//소유주 와 주민번호가 차적 정보와 같으면 주소를 수정 처리함.
//System.out.println("################# 자료 : getOwner : " + pItem.getOwner());
//System.out.println("################# 자료 : getOwner1 : " + pItem.getOwner1());
//System.out.println("################# 자료 : getResidentNo : " + pItem.getResidentNo());
//System.out.println("################# 자료 : getResidentNo1 : " + pItem.getResidentNo1());
//System.out.println("################# 자료 : getAddress1 : " + pItem.getAddress1());
if( pItem.getOwner() == pItem.getOwner1() && pItem.getResidentNo() == pItem.getResidentNo1() && pItem.getAddress1() != "" ) {
//System.out.println("################# 자료 : DEFAULT_CARS_TRANS_INFO_DAMO : " + "UPDATE");
//finePenaltyDao.updateDefaultTransInfoAddr(pItem); //DEFAULT_CARS_TRANS_INFO_DAMO - UPDATE
finePenaltyDao.updatePenaltyAddressUpdateInfoAddr(pItem); //PENALTY_ADDRESS_UPDATE_I_DAMO - INSERT
finePenaltyDao.updatePenaltyHeadInfoAddr(pItem); //PENALTY_DETAIL_INFO_DAMO - UPDATE
}
}
} //for
paramVO.setMotionId("71");
paramVO.setCount(updateCnt);
//System.out.println("################# 자료 : PENALTY_HISTORY_HEAD_INFO : " + "UPDATE");
finePenaltyDao.updatePenaltyHistoryHeadInfo(paramVO); //PENALTY_HISTORY_HEAD_INFO - UPDATE
logger.info("압류 촉탁 대상자 File 생성 완료");
}
//자동차 등록 압류 촉탁서 - 압류촉탁서 출력 처리
@Override
public void createSendInfo08(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
List paramList = (List) param.getParamList();
boolean penaltyHistoryHeadInfo = false;
int updateCnt = 0;
//System.out.println("################# 자료 : 자동차 등록 압류 촉탁서 출력 : " + "start");
logger.info("자동차 등록 압류 촉탁서 출력");
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
//check된 것만 처리
if(!"1".equals(pItem.getChk())) {
continue;
}
updateCnt++;
pItem.setPenaltyDateFrom(paramVO.getPenaltyDateFrom());
pItem.setPenaltyDateTo(paramVO.getPenaltyDateTo());
pItem.setMotionId("72");
if(!penaltyHistoryHeadInfo) {
//FUN_HISTORY_INS_CHK
int penaltyHistoryHeadInfoCnt = finePenaltyDao.countPenaltyHistoryHeadInfo(pItem); //PENALTY_HISTORY_HEAD_INFO - SELECT
//System.out.println("################# 자료 : penaltyHistoryHeadInfoCnt : " + penaltyHistoryHeadInfoCnt);
if(penaltyHistoryHeadInfoCnt == 0) {
//SP_HISTORY_HEAD_CREATE
//System.out.println("################# 자료 : PENALTY_HISTORY_HEAD_INFO : " + "INSERT");
finePenaltyDao.createPenaltyHistoryHeadInfo(pItem); //PENALTY_HISTORY_HEAD_INFO - INSERT
}
//한번만 등록 한다.
penaltyHistoryHeadInfo = true;
}
//SP_TFG001E_HIS_DETAIL_INS
//System.out.println("################# 자료 : PENALTY_HISTORY_DETAIL_I_DAMO : " + "INSERT");
finePenaltyDao.createPenaltyHistoryDetailInfo(pItem); //PENALTY_HISTORY_DETAIL_I_DAMO - INSERT
//SP_TFG002Q_UPDATE
//System.out.println("################# 자료 : PENALTY_DETAIL_INFO_DAMO : " + "UPDATE");
finePenaltyDao.updatepenaltyDetailInfoDamo02(pItem); //PENALTY_DETAIL_INFO_DAMO - UPDATE
//SP_HISTORY_INFO_CREATE
//System.out.println("################# 자료 : PENALTY_HISTORY_INFO_DAMO : " + "INSERT");
finePenaltyDao.createPenaltyHistoryInfoDamo(pItem); //PENALTY_HISTORY_INFO_DAMO - INSERT
//TODO
}
paramVO.setCount(updateCnt);
paramVO.setMotionId("72");
//SP_TFG001E_HIS_HEAD_UP
//System.out.println("################# 자료 : PENALTY_HISTORY_HEAD_INFO : " + "UPDATE");
finePenaltyDao.updatePenaltyHistoryHeadInfo(paramVO); //PENALTY_HISTORY_HEAD_INFO - UPDATE
logger.info("자동차 등록 압류 촉탁서 출력 완료");
}
@Override
public List<PenaltyParamVO> findPrepayEtaxFileList(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> rtnList = new ArrayList<PenaltyParamVO>();
rtnList = finePenaltyDao.findPrepayEtaxFileList(param);
return rtnList;
}
@Override
public List<PenaltyParamVO> findEtaxFilePenaltyList(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> rtnList = new ArrayList<PenaltyParamVO>();
logger.info("param-motion_id = "+ param.getMotionId());
if(param.getMotionId().equals("095")){
rtnList = finePenaltyDao.findEtaxFileDunPenaltyList(param);
}else{
rtnList = finePenaltyDao.findEtaxFilePenaltyList(param);
}
return rtnList;
}
@Override
public List<PenaltyParamVO> findEtaxFileDefList(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> rtnList = new ArrayList<PenaltyParamVO>();
rtnList = finePenaltyDao.findEtaxFileDefList(param);
return rtnList;
}
@Override
public Map<String, Object> findEtaxFileChargeInfo() throws Exception {
Map<String, Object> param = new HashMap<String, Object>();
param.put("chargeId", "ETAX");
Map<String, Object> rMap = new HashMap<String, Object>();
List<Map<String, Object>> rtnList = codeInfoDao.findChargeCodeInfoList(param);
for (Map<String, Object> rtnMap : rtnList) {
String comCd = (String) rtnMap.get("COM_CD");
if("DAMDANG".equals(comCd)) {
rMap.put("damdang", (String) rtnMap.get("CODE_NM"));
} else if("DEPT".equals(comCd)) {
rMap.put("dept", (String) rtnMap.get("CODE_NM"));
} else if("TELNO".equals(comCd)) {
rMap.put("telno", (String) rtnMap.get("CODE_NM"));
}
logger.info(rMap.toString());
}
return rMap;
}
@Override
public Map<String, Object> findEtaxFileChargeRentInfo() throws Exception {
Map<String, Object> param = new HashMap<String, Object>();
param.put("chargeId", "ETAXRENT");
Map<String, Object> rMap = new HashMap<String, Object>();
List<Map<String, Object>> rtnList = codeInfoDao.findChargeCodeInfoList(param);
for (Map<String, Object> rtnMap : rtnList) {
String comCd = (String) rtnMap.get("COM_CD");
if("DAMDANG".equals(comCd)) {
rMap.put("damdang", (String) rtnMap.get("CODE_NM"));
} else if("DEPT".equals(comCd)) {
rMap.put("dept", (String) rtnMap.get("CODE_NM"));
} else if("TELNO".equals(comCd)) {
rMap.put("telno", (String) rtnMap.get("CODE_NM"));
}
logger.info(rMap.toString());
}
return rMap;
}
@Override
public Map<String, Object> findPrepayEtaxFileChargeInfo() throws Exception {
Map<String, Object> param = new HashMap<String, Object>();
param.put("chargeId", "PREETAX");
Map<String, Object> rMap = new HashMap<String, Object>();
List<Map<String, Object>> rtnList = codeInfoDao.findChargeCodeInfoList(param);
for (Map<String, Object> rtnMap : rtnList) {
String comCd = (String) rtnMap.get("COM_CD");
if("SUBDAMDANG".equals(comCd)) {
rMap.put("damdang", (String) rtnMap.get("CODE_NM"));
} else if("SUBDEPT".equals(comCd)) {
rMap.put("dept", (String) rtnMap.get("CODE_NM"));
} else if("SUBTELNO".equals(comCd)) {
rMap.put("telno", (String) rtnMap.get("CODE_NM"));
}
logger.info(rMap.toString());
}
return rMap;
}
@Override
public Map<String, Object> findSubEtaxFileChargeInfo() throws Exception {
Map<String, Object> param = new HashMap<String, Object>();
param.put("chargeId", "SUBETAX");
Map<String, Object> rMap = new HashMap<String, Object>();
List<Map<String, Object>> rtnList = codeInfoDao.findChargeCodeInfoList(param);
for (Map<String, Object> rtnMap : rtnList) {
String comCd = (String) rtnMap.get("COM_CD");
if("SUBDAMDANG".equals(comCd)) {
rMap.put("damdang", (String) rtnMap.get("CODE_NM"));
} else if("SUBDEPT".equals(comCd)) {
rMap.put("dept", (String) rtnMap.get("CODE_NM"));
} else if("SUBTELNO".equals(comCd)) {
rMap.put("telno", (String) rtnMap.get("CODE_NM"));
}
logger.info(rMap.toString());
}
return rMap;
}
@Override
public Map<String, Object> findDefEtaxFileChargeInfo() throws Exception {
Map<String, Object> param = new HashMap<String, Object>();
param.put("chargeId", "DEFETAX");
Map<String, Object> rMap = new HashMap<String, Object>();
List<Map<String, Object>> rtnList = codeInfoDao.findChargeCodeInfoList(param);
for (Map<String, Object> rtnMap : rtnList) {
String comCd = (String) rtnMap.get("COM_CD");
if("SUBDAMDANG".equals(comCd)) {
rMap.put("damdang", (String) rtnMap.get("CODE_NM"));
} else if("SUBDEPT".equals(comCd)) {
rMap.put("dept", (String) rtnMap.get("CODE_NM"));
} else if("SUBTELNO".equals(comCd)) {
rMap.put("telno", (String) rtnMap.get("CODE_NM"));
}
logger.info(rMap.toString());
}
return rMap;
}
@Override
public Map<String, Object> findFareEtaxChargeInfo(PenaltyParamVO params) throws Exception {
Map<String, Object> param = new HashMap<String, Object>();
param.put("chargeId", params.getChargeId());
Map<String, Object> rMap = new HashMap<String, Object>();
List<Map<String, Object>> rtnList = codeInfoDao.findChargeCodeInfoList(param);
for (Map<String, Object> rtnMap : rtnList) {
String comCd = (String) rtnMap.get("COM_CD");
if("SUBDAMDANG".equals(comCd)) {
rMap.put("damdang", (String) rtnMap.get("CODE_NM"));
} else if("SUBDEPT".equals(comCd)) {
rMap.put("dept", (String) rtnMap.get("CODE_NM"));
} else if("SUBTELNO".equals(comCd)) {
rMap.put("telno", (String) rtnMap.get("CODE_NM"));
}
logger.info(rMap.toString());
}
return rMap;
}
@Override
public void updateEtaxFileChargeInfo(PenaltyParamVO param) throws Exception {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "ETAX");
paramMap.put("chargeDetlId", "DAMDANG");
paramMap.put("chargeValue", param.getDamdang());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당자 이름 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "ETAX");
paramMap.put("chargeDetlId", "DEPT");
paramMap.put("chargeValue", param.getDept());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당부서 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "ETAX");
paramMap.put("chargeDetlId", "TELNO");
paramMap.put("chargeValue", param.getTelno());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//전화번호 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
}
@Override
public void updateEtaxFileRentChargeInfo(PenaltyParamVO param) throws Exception {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "ETAXRENT");
paramMap.put("chargeDetlId", "DAMDANG");
paramMap.put("chargeValue", param.getDamdang());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당자 이름 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "ETAXRENT");
paramMap.put("chargeDetlId", "DEPT");
paramMap.put("chargeValue", param.getDept());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당부서 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "ETAXRENT");
paramMap.put("chargeDetlId", "TELNO");
paramMap.put("chargeValue", param.getTelno());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//전화번호 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
}
@Override
public void updateSubEtaxFileChargeInfo(PenaltyParamVO param) throws Exception {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "SUBETAX");
paramMap.put("chargeDetlId", "SUBDAMDANG");
paramMap.put("chargeValue", param.getDamdang());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당자 이름 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "SUBETAX");
paramMap.put("chargeDetlId", "SUBDEPT");
paramMap.put("chargeValue", param.getDept());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당부서 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "SUBETAX");
paramMap.put("chargeDetlId", "SUBTELNO");
paramMap.put("chargeValue", param.getTelno());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//전화번호 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
}
@Override
public void updatePrepayEtaxFileChargeInfo(PenaltyParamVO param) throws Exception {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "PREETAX");
paramMap.put("chargeDetlId", "SUBDAMDANG");
paramMap.put("chargeValue", param.getDamdang());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당자 이름 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "PREETAX");
paramMap.put("chargeDetlId", "SUBDEPT");
paramMap.put("chargeValue", param.getDept());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당부서 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "PREETAX");
paramMap.put("chargeDetlId", "SUBTELNO");
paramMap.put("chargeValue", param.getTelno());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//전화번호 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
}
@Override
public void updateDefEtaxFileChargeInfo(PenaltyParamVO param) throws Exception {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "DEFETAX");
paramMap.put("chargeDetlId", "SUBDAMDANG");
paramMap.put("chargeValue", param.getDamdang());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당자 이름 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "DEFETAX");
paramMap.put("chargeDetlId", "SUBDEPT");
paramMap.put("chargeValue", param.getDept());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당부서 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", "DEFETAX");
paramMap.put("chargeDetlId", "SUBTELNO");
paramMap.put("chargeValue", param.getTelno());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//전화번호 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
}
@Override
public void updateFareEtaxChargeInfo(PenaltyParamVO param) throws Exception {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", param.getChargeId());
paramMap.put("chargeDetlId", "SUBDAMDANG");
paramMap.put("chargeValue", param.getDamdang());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당자 이름 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", param.getChargeId());
paramMap.put("chargeDetlId", "SUBDEPT");
paramMap.put("chargeValue", param.getDept());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//담당부서 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
paramMap = new HashMap<String, Object>();
paramMap.put("chargeId", param.getChargeId());
paramMap.put("chargeDetlId", "SUBTELNO");
paramMap.put("chargeValue", param.getTelno());
paramMap.put("sessionUserNm", param.getSessionUserNm());
//전화번호 수정
codeInfoDao.updateChargeCodeInfo(paramMap);
}
@Override
public PenaltyParamVO findCreateDefETaxFileChk(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findCreateDefETaxFileChk(param);
}
@Override
public Result updateLossInfo(PenaltyParamVO param) throws Exception {
Result returnResult = new Result();
//사전통지
HashMap<String, Object> result = new HashMap<String, Object>();
//결손예외정보
List<PenaltyParamVO> lossExceptionList = new ArrayList<PenaltyParamVO>();
PenaltyParamVO rtnVo = finePenaltyDao.countLossInfo(param);
//사전통지 및 반송건수
if(Integer.parseInt(rtnVo.getLossCnt1()) > 0) {
//처리성공
int st_ok0 = 0;
//예외
int st_no0 = 0;
//처리실패
int st_fail0 = 0;
param.setMotionId("2%");
List<PenaltyParamVO> lList = finePenaltyDao.findLossInfoList(param);
for(PenaltyParamVO lItem : lList) {
//압류대상은 결손처리 하지 않고 예외 목록에 추가 한다.
if(Integer.parseInt(lItem.getsCnt()) > 0) {
lItem.setRemark("압류 대상 정보입니다.");
lossExceptionList.add(lItem);
st_no0++;
} else {
finePenaltyDao.createLossHistoryDetailInfo(lItem);
lItem.setLoginUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updateLossYn(lItem);
st_ok0++;
}
}
result.put("st_mes0", "처리완료");
result.put("st_ok0", st_ok0);
result.put("st_no0", st_no0);
result.put("st_fail0", st_fail0);
} else {
result.put("st_mes0", "준비");
result.put("st_ok0", "0");
result.put("st_no0", "0");
result.put("st_fail0", "0");
}
//1차고지 및 반송건수
if(Integer.parseInt(rtnVo.getLossCnt2()) > 0) {
//처리성공
int st_ok1 = 0;
//예외
int st_no1 = 0;
//처리실패
int st_fail1 = 0;
param.setMotionId("3%");
List<PenaltyParamVO> lList = finePenaltyDao.findLossInfoList(param);
for(PenaltyParamVO lItem : lList) {
//압류대상은 결손처리 하지 않고 예외 목록에 추가 한다.
if(Integer.parseInt(lItem.getsCnt()) > 0) {
lItem.setRemark("압류 대상 정보입니다.");
lossExceptionList.add(lItem);
st_no1++;
} else {
finePenaltyDao.createLossHistoryDetailInfo(lItem);
lItem.setLoginUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updateLossYn(lItem);
st_ok1++;
}
}
result.put("st_mes1", "처리완료");
result.put("st_ok1", st_ok1);
result.put("st_no1", st_no1);
result.put("st_fail1", st_fail1);
} else {
result.put("st_mes1", "준비");
result.put("st_ok1", "0");
result.put("st_no1", "0");
result.put("st_fail1", "0");
}
//2차고지 및 반송건수
if(Integer.parseInt(rtnVo.getLossCnt3()) > 0) {
//처리성공
int st_ok2 = 0;
//예외
int st_no2 = 0;
//처리실패
int st_fail2 = 0;
param.setMotionId("4%");
List<PenaltyParamVO> lList = finePenaltyDao.findLossInfoList(param);
for(PenaltyParamVO lItem : lList) {
//압류대상은 결손처리 하지 않고 예외 목록에 추가 한다.
if(Integer.parseInt(lItem.getsCnt()) > 0) {
lItem.setRemark("압류 대상 정보입니다.");
lossExceptionList.add(lItem);
st_no2++;
} else {
finePenaltyDao.createLossHistoryDetailInfo(lItem);
lItem.setLoginUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updateLossYn(lItem);
st_ok2++;
}
}
result.put("st_mes2", "처리완료");
result.put("st_ok2", st_ok2);
result.put("st_no2", st_no2);
result.put("st_fail2", st_fail2);
} else {
result.put("st_mes2", "준비");
result.put("st_ok2", "0");
result.put("st_no2", "0");
result.put("st_fail2", "0");
}
//민원접수
if(Integer.parseInt(rtnVo.getLossCnt4()) > 0) {
//처리성공
int st_ok3 = 0;
//예외
int st_no3 = 0;
//처리실패
int st_fail3 = 0;
param.setMotionId("51");
List<PenaltyParamVO> lList = finePenaltyDao.findLossInfoList(param);
for(PenaltyParamVO lItem : lList) {
finePenaltyDao.createLossHistoryDetailInfo(lItem);
lItem.setLoginUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updateLossYn(lItem);
st_ok3++;
}
result.put("st_mes3", "처리완료");
result.put("st_ok3", st_ok3);
result.put("st_no3", st_no3);
result.put("st_fail3", st_fail3);
} else {
result.put("st_mes3", "준비");
result.put("st_ok3", "0");
result.put("st_no3", "0");
result.put("st_fail3", "0");
}
//이의신청
if(Integer.parseInt(rtnVo.getLossCnt5()) > 0) {
//처리성공
int st_ok4 = 0;
//예외
int st_no4 = 0;
//처리실패
int st_fail4 = 0;
param.setMotionId("53");
List<PenaltyParamVO> lList = finePenaltyDao.findLossInfoList(param);
for(PenaltyParamVO lItem : lList) {
finePenaltyDao.createLossHistoryDetailInfo(lItem);
lItem.setLoginUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updateLossYn(lItem);
st_ok4++;
}
result.put("st_mes4", "처리완료");
result.put("st_ok4", st_ok4);
result.put("st_no4", st_no4);
result.put("st_fail4", st_fail4);
} else {
result.put("st_mes4", "준비");
result.put("st_ok4", "0");
result.put("st_no4", "0");
result.put("st_fail4", "0");
}
returnResult.setData("result", result);
returnResult.setData("lossExceptionList", lossExceptionList);
return returnResult;
}
@Override
public void updateLossYn(ParamBean param) throws Exception {
List paramList = (List) param.getParamList();
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
pItem.setLoginUserNm(HttpUtil.getEmpNm());
if(!"1".equals(pItem.getChk())) {
continue;
}
finePenaltyDao.updateLossYn(pItem);
}
}
@Override
public void updateLossYnCancle(ParamBean param) throws Exception {
List paramList = (List) param.getParamList();
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
pItem.setLoginUserNm(HttpUtil.getEmpNm());
if(!"1".equals(pItem.getChk())) {
continue;
}
finePenaltyDao.updateLossYnCancle(pItem);
finePenaltyDao.createLossHistoryDetailInfo(pItem);
}
}
@Override
public List<PenaltyParamVO> findLossInfoList(PenaltyParamVO param) throws Exception {
return finePenaltyDao.findLossInfoList(param);
}
@Override
public void updatePenaltyDetailInfo18(ParamBean param) throws Exception {
List paramList = (List) param.getParamList();
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
pItem.setLoginUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updatePenaltyDetailInfo18(pItem);
}
}
@Override
public void createSendInfo16(ParamBean param) throws Exception {
Map paramMap = (Map) param.getParamMap();
PenaltyParamVO paramVO = new PenaltyParamVO();
paramVO = (PenaltyParamVO) ObjectUtil.convertMapToObject(paramMap, paramVO);
List paramList = (List) param.getParamList();
logger.info("공시송달 파일생성");
for (int i = 0; i < paramList.size(); i++) {
PenaltyParamVO pItem = new PenaltyParamVO();
Map map = (Map) paramList.get(i);
pItem = (PenaltyParamVO) ObjectUtil.convertMapToObject(map, pItem);
String owner = pItem.getOwner().replaceAll(" ", "");
String residentNo = pItem.getResidentNo();
if(owner.length() > 40
|| StringUtil.isNullOrEmpty(residentNo)
|| residentNo.length() > 13
|| residentNo.indexOf("-") > 0
|| owner.indexOf("(") > 0
|| owner.indexOf(")") > 0)
{
}
}
logger.info("공시송달 파일생성 완료");
}
@Override
public PenaltyParamVO findPenaltyList19Result(PenaltyParamVO param) throws Exception {
// TODO 조회 테스트
param.setFileNm("공시송달파일.txt");
param.setTotalCnt("10");
param.setReadCnt("10");
param.setNormalCnt("8");
param.setErrorCnt("1");
param.setExceptCnt("1");
param.setSaveCnt("8");
param.setFailCnt("2");
return param;
}
@Override
public List<PenaltyParamVO> findPenaltyList19ResultList01(PenaltyParamVO param) throws Exception {
// TODO 조회 테스트
List<PenaltyParamVO> resultList01 = new ArrayList<PenaltyParamVO>();
param.setPenaltyManageYear("2019");
param.setPenaltySeqno("1");
param.setReceiptDate("2019-06-11");
param.setReceiptNm("진행상태");
param.setReceiptAmount("100000");
param.setReceiptAgency("수납기관");
param.setReceiptProcessKbn("처리구분");
param.setOcrReceiptYn("수납여부");
param.setReceiptKbn("납기구분");
param.setReceiptSido("시도");
param.setReceiptKigwan("기관");
param.setReceiptDong("행정동");
param.setReceiptAccount("회계");
param.setReceiptGwamok("과목");
param.setReceiptSemok("세목");
resultList01.add(param);
return resultList01;
}
@Override
public List<PenaltyParamVO> findPenaltyOcrFile(PenaltyParamVO param) throws Exception {
//System.out.println("################# 자료 : DELETE ocr_error S ");
finePenaltyDao.deletePenaltyOcrFileError(param); //ocr_error 테이블 자료 초기화
String fileData = param.getFileData();
String[] strArr;
List<PenaltyParamVO> succList = new LinkedList<PenaltyParamVO>();
strArr = fileData.split("\\n");
int idx = 0;
int sendCnt = 0;
int readCnt = 0;
String sendMotionId = "";
for(String str : strArr){
readCnt = readCnt + 1;
//System.out.println("################# 자료 : strArr : " + readCnt + " / " + strArr.length);
//System.out.println("################# 자료 : for : " + str);
param.setGubun(str.substring(0, 2)); //ls_ja_gubun 자료구분
param.setReceiptProcessKbn(str.substring(2, 3)); //ls_sunap_gubun
param.setOcrReceiptYn(str.substring(2, 3)); //
param.setReceiptDate(str.substring(3, 11)); //ls_sunap_date
param.setBank(str.substring(11,14)); //ls_bank
param.setReceiptAgency(str.substring(11, 14)); //
param.setReceiptSido(str.substring(33, 35)); //ls_sido
param.setReceiptKigwan(str.substring(35, 38)); //ls_gigwan
param.setReceiptDong(str.substring(38, 41)); //ls_dong
param.setReceiptAccount(str.substring(42, 44)); //ls_account
param.setReceiptGwamok(str.substring(44, 47)); //ls_class
param.setReceiptSemok(str.substring(47, 50)); //ls_semok
param.setYear(str.substring(50, 54)); //ls_year 통행년도
param.setMonth(str.substring(54, 56)); //ls_month 통행월
param.setPenaltySeqno(Integer.parseInt(str.substring(57, 63))+""); //ls_seqno
param.setNapgiDate(str.substring(129,137)); //ls_napgi_date
param.setReceiptKbn(str.substring(142, 143)); //ls_napgi_gubun
if(param.getReceiptKbn().equals("1")){ //납기 내 입금
param.setReceiptAmount(Integer.parseInt(str.substring(64, 75))+""); //ls_in_amount
} else{ //납기 후 입금
param.setReceiptAmount(Integer.parseInt(str.substring(75, 86))+""); //ls_out_amount
}
//System.out.println("################# 자료 : setGubun = " + param.getGubun());
//System.out.println("################# 자료 : setReceiptProcessKbn = " + param.getReceiptProcessKbn());
//System.out.println("################# 자료 : setOcrReceiptYn = " + param.getOcrReceiptYn());
//System.out.println("################# 자료 : setReceiptDate = " + param.getReceiptDate());
//System.out.println("################# 자료 : setBank = " + param.getBank());
//System.out.println("################# 자료 : setReceiptAgency = " + param.getReceiptAgency());
//System.out.println("################# 자료 : setReceiptSido = " + param.getReceiptSido());
//System.out.println("################# 자료 : setReceiptKigwan = " + param.getReceiptKigwan());
//System.out.println("################# 자료 : setReceiptDong = " + param.getReceiptDong());
//System.out.println("################# 자료 : setReceiptAccount = " + param.getReceiptAccount());
//System.out.println("################# 자료 : setReceiptGwamok = " + param.getReceiptGwamok());
//System.out.println("################# 자료 : setReceiptSemok = " + param.getReceiptSemok());
//System.out.println("################# 자료 : setYear = " + param.getYear());
//System.out.println("################# 자료 : setMonth = " + param.getMonth());
//System.out.println("################# 자료 : setPenaltySeqno = " + param.getPenaltySeqno());
//System.out.println("################# 자료 : setReceiptAmount = " + param.getReceiptAmount());
//System.out.println("################# 자료 : setNapgiDate = " + param.getNapgiDate());
//System.out.println("################# 자료 : setReceiptKbn = " + param.getReceiptKbn());
//초기화
param.setPenaltyManageYear(""); //과태료 관리년도
param.setMotionId(""); //진행코드
param.setFareOfficeId(""); //요금소
param.setBoothId(""); //차로
param.setDay(""); //통행-일
param.setCarNo(""); //차량번호
sendMotionId = "";
// 자료구분 ('11') 체크
if(!param.getGubun().equals("11")){
param.setRemark("파일 형식이 맞지 않습니다. 관리자에게문의하세요.");
System.out.println("################# param.setRemark17 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
continue;
}
//20060701 - Profilestring('dotr.ini', 'newtype', 'napgi', '')
// ini의 납부기한보다 적으면 통행년월로...
if ( Integer.parseInt("200607") > Integer.parseInt(param.getYear().toString()+param.getMonth()) ){
System.out.println("################# SP_TFL000Q_SEND_CHECK2 - 20.발송건수 체크 : Sql ");
sendCnt = finePenaltyDao.findPenaltyOcrFileSendCnt_3(param); //발송건수 체크 OK SP_TFL000Q_SEND_CHECK2
System.out.println("################# SP_TFL000Q_SEND_CHECK2 - 20.발송건수 결과 : " + sendCnt);
if (sendCnt == 1){
//과태료 관리년도 조회
System.out.println("################# 21 - 과태료 관리년도 조회 체크 : Sql ");
Map penaltyManageYear = finePenaltyDao.findPenaltyOcrFilePenaltyManageYear_3(param); //과태료 관리년도 OK SP_TFL000Q_SEND_CHECK2
System.out.println("################# 21 - 과태료 관리년도 조회 결과 : " + penaltyManageYear.get("PENALTY_MANAGE_YEAR").toString());
if(null != penaltyManageYear && !penaltyManageYear.get("PENALTY_MANAGE_YEAR").toString().equals("")){
param.setPenaltyManageYear(penaltyManageYear.get("PENALTY_MANAGE_YEAR").toString()); //과태료 관리년도
//MOTION_ID - 진행코드 조회
System.out.println("################# 22 - MOTION_ID - 진행코드 조회 : Sql ");
PenaltyParamVO motionId = finePenaltyDao.findPenaltyOcrFilePenaltySendMotion_2(param); //진행코드 OK SP_TFL000Q_SEND_CHECK2
System.out.println("################# 22 - MOTION_ID - 진행코드 조회 결과 : " + motionId.getMotionId());
sendMotionId = motionId.getMotionId();
if(sendMotionId != null){
System.out.println("################# 90 - MOTION_ID - 진행코드 조회 결과 : " + motionId.getMotionId());
param.setMotionId(sendMotionId);
}
}
}
// ini의 납부기한보다 크면 1차발송년월...
} else {
//1차 발송 기준으로 조회
System.out.println("################# SP_TFL000Q_SEND_CHECK3 - 발송건수 체크 : Sql ");
sendCnt = finePenaltyDao.findPenaltyOcrFileSendCnt_1(param); //발송건수 체크 OK SP_TFL000Q_SEND_CHECK3
System.out.println("################# SP_TFL000Q_SEND_CHECK3 - 발송건수 결과 : " + sendCnt);
if (sendCnt == 1){
//과태료 관리년도 조회
System.out.println("################# 11 - 과태료 관리년도 조회 체크 : Sql ");
Map penaltyManageYear = finePenaltyDao.findPenaltyOcrFilePenaltyManageYear_1(param); //과태료 관리년도 OK SP_TFL000Q_SEND_CHECK3
System.out.println("################# 11 - 과태료 관리년도 조회 결과 : " + penaltyManageYear.get("PENALTY_MANAGE_YEAR").toString());
if(null != penaltyManageYear && !penaltyManageYear.get("PENALTY_MANAGE_YEAR").toString().equals("")){
param.setPenaltyManageYear(penaltyManageYear.get("PENALTY_MANAGE_YEAR").toString()); //과태료 관리년도
//MOTION_ID - 진행코드 조회
System.out.println("################# 12 - MOTION_ID - 진행코드 조회 : Sql ");
PenaltyParamVO motionId = finePenaltyDao.findPenaltyOcrFilePenaltySendMotion_1(param); //진행코드 OK SP_TFL000Q_SEND_CHECK3
System.out.println("################# 12 - MOTION_ID - 진행코드 조회 결과 : " + motionId.getMotionId());
sendMotionId = motionId.getMotionId();
if(sendMotionId != null){
System.out.println("################# 91 - MOTION_ID - 진행코드 조회 결과 : " + motionId.getMotionId());
param.setMotionId(sendMotionId);
}else{ //if(motionId != null){
//MOTION_ID - 진행코드 조회
System.out.println("################# 22 - MOTION_ID - 진행코드 조회 : Sql ");
motionId = finePenaltyDao.findPenaltyOcrFilePenaltySendMotion_2(param); //진행코드 OK SP_TFL000Q_SEND_CHECK2
System.out.println("################# 22 - MOTION_ID - 진행코드 조회 결과 : " + motionId.getMotionId());
sendMotionId = motionId.getMotionId();
if(sendMotionId != null){
System.out.println("################# 92 - MOTION_ID - 진행코드 조회 결과 : " + motionId.getMotionId());
param.setMotionId(sendMotionId);
}else{
sendMotionId = "";
}
}
} //if(null != penaltyManageYear && !penaltyManageYear.get("PENALTY_MANAGE_YEAR").toString().equals("")){
//if (sendCnt == 1){
}else{
System.out.println("################# SP_TFL000Q_SEND_CHECK2 - 00.발송건수 체크 : Sql ");
sendCnt = finePenaltyDao.findPenaltyOcrFileSendCnt_2(param); //발송건수 체크 OK SP_TFL000Q_SEND_CHECK2
System.out.println("################# SP_TFL000Q_SEND_CHECK2 - 00.발송건수 결과 : " + sendCnt);
if (sendCnt == 1){
//과태료 관리년도 조회
System.out.println("################# 21 - 과태료 관리년도 조회 체크 : Sql ");
Map penaltyManageYear = finePenaltyDao.findPenaltyOcrFilePenaltyManageYear_2(param); //과태료 관리년도 OK SP_TFL000Q_SEND_CHECK2
System.out.println("################# 21 - 과태료 관리년도 조회 결과 : " + penaltyManageYear.get("PENALTY_MANAGE_YEAR").toString());
if(null != penaltyManageYear && !penaltyManageYear.get("PENALTY_MANAGE_YEAR").toString().equals("")){
param.setPenaltyManageYear(penaltyManageYear.get("PENALTY_MANAGE_YEAR").toString()); //과태료 관리년도
//MOTION_ID - 진행코드 조회
System.out.println("################# 22 - MOTION_ID - 진행코드 조회 : Sql ");
PenaltyParamVO motionId = finePenaltyDao.findPenaltyOcrFilePenaltySendMotion_2(param); //진행코드 OK SP_TFL000Q_SEND_CHECK2
System.out.println("################# 22 - MOTION_ID - 진행코드 조회 결과 : " + motionId.getMotionId());
sendMotionId = motionId.getMotionId();
if(sendMotionId != null){
System.out.println("################# 93 - MOTION_ID - 진행코드 조회 결과 : " + motionId.getMotionId());
param.setMotionId(sendMotionId);
}else{
sendMotionId = "";
}
}
} //if (sendCnt == 1){
} //}else{
} //}else{ // ini의 납부기한보다 크면 1차발송년월...
System.out.println("################# 29 - PENALTY_MANAGE_YEAR - 결과 : " + param.getPenaltyManageYear());
System.out.println("################# 29 - MOTION_ID - 결과 : " + param.getMotionId());
System.out.println("################# 29 - sendMotionId - 결과 : " + sendMotionId);
//--------------------------
//--------------------------
System.out.println("################# 34 - 과태료정보 조회 체크 : Sql ");
PenaltyParamVO penaltyCheck = finePenaltyDao.findPenaltyOcrFilePenaltyCheck(param); //과태료정보 조회 OK - fare_office_id, booth_id, year, month, day, car_no, motion_id, resident_no, notice_id, notice_wrong_id
String noticeId = "";
String noticeWrongId = "";
String penaltyMotionId = "";
if(penaltyCheck != null){
noticeId = penaltyCheck.getNoticeId();
noticeWrongId = penaltyCheck.getNoticeWrongId();
penaltyMotionId = penaltyCheck.getMotionId();
param.setFareOfficeId(penaltyCheck.getFareOfficeId());
param.setBoothId(penaltyCheck.getBoothId());
param.setYear(penaltyCheck.getYear());
param.setMonth(penaltyCheck.getMonth());
param.setDay(penaltyCheck.getDay());
param.setCarNo(penaltyCheck.getCarNo());
System.out.println("################# penaltyCheck - getFareOfficeId : " + penaltyCheck.getFareOfficeId());
System.out.println("################# penaltyCheck - getBoothId : " + penaltyCheck.getBoothId());
System.out.println("################# penaltyCheck - getDay : " + penaltyCheck.getDay());
System.out.println("################# penaltyCheck - getCarNo : " + penaltyCheck.getCarNo());
}
System.out.println("################# penaltyCheck - noticeId : " + noticeId);
System.out.println("################# penaltyCheck - noticeWrongId : " + noticeWrongId);
System.out.println("################# penaltyCheck - penaltyMotionId : " + penaltyMotionId);
System.out.println("################# 31 - 결손여부 체크 : Sql ");
Map lossCheck = finePenaltyDao.findPenaltyOcrFilePenaltyLoss(param); //결손여부 체크 OK
System.out.println("################# 31 - 결손여부 결과 : " + lossCheck.get("CLOSS"));
if(penaltyCheck == null){
System.out.println("################# 과태료정보 건수 = 0 ");
param.setRemark("일치하는 과태료정보가 없습니다.");
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
continue;
}
if(null != lossCheck && lossCheck.get("CLOSS").equals("1")){
param.setRemark("결손처리된 정보입니다.확인후 처리하세요.");
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
continue;
}
if(sendMotionId.equals("") || sendMotionId == null){
param.setRemark("일치하는 납부 기한이 없습니다. 확인후 처리하세요.");
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
continue;
}
if(sendCnt == 0){
System.out.println("################# 발송 건수 = 0 ");
param.setRemark("일치하는 발송정보가 없습니다.");
System.out.println("################# param.setRemark15 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
continue;
}
if(sendCnt > 1){ // ######### 1건이상인 경우 처리 빠져 있음 - 기존은 팝업창에서 수납처리할 대상을 선택 (수납처리 또는 오류처리)
System.out.println("################# 발송 건수 > 1 ");
param.setRemark("1개 이상의 발송정보가 존재합니다.");
System.out.println("################# param.setRemark16 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
continue;
}
System.out.println("################# 32 - 과태료 변경 이력 정보 건수 조회 : Sql ");
int historyCheck = finePenaltyDao.findPenaltyOcrFileHestory(param); //과태료 변경 이력 정보 건수 조회
System.out.println("################# 32 - 과태료 변경 이력 정보 건수 historyCheck : " + historyCheck);
System.out.println("################# 33 - 압류해제 체크 : Sql ");
int seizureCnt = finePenaltyDao.findPenaltyOcrFileSeizure(param); //압류해제 체크 OK
System.out.println("################# 33 - 압류해제 건수 seizureCnt : " + seizureCnt);
System.out.println("################# 34 - 수납여부 체크 : Sql ");
int alreadyCnt = finePenaltyDao.findPenaltyOcrFileAlready(param); //수납여부 체크 OK
System.out.println("################# 34 - 수납여부 건수 alreadyCnt : " + alreadyCnt);
System.out.println("################# 35 - 이전 압류정보가 있었는지 조회 체크 : Sql ");
int penaltySeizureCnt = finePenaltyDao.findPenaltyOcrFilePenaltySeizure(penaltyCheck); //이전 압류정보가 있었는지 체크(동일차량이 압류상태) OK
System.out.println("################# 35 - 이전 압류정보가 있었는지 건수 penaltySeizureCnt : " + penaltySeizureCnt);
System.out.println("################# 36 - 건수 체크 ");
System.out.println("################# 36 - getMotionId : " + param.getMotionId());
System.out.println("################# 36 - sendMotionId : " + sendMotionId);
System.out.println("################# 36 - penaltyMotionId : " + penaltyMotionId);
if(historyCheck == 0){
param.setRemark("이력정보가없습니다.관리자에게문의하세요.");
System.out.println("################# param.setRemark1 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
continue;
}
if(seizureCnt > 0){
param.setRemark("압류해제된정보입니다. 확인바랍니다.");
System.out.println("################# param.setRemark2 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
continue;
}
if(alreadyCnt > 0){
param.setRemark("이미 수납처리한 정보입니다. 확인바랍니다.");
System.out.println("################# param.setRemark3 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
continue;
}
if(noticeId.equals("02") || noticeId.equals("03") || noticeId.equals("99")){ //고지구분-'02'(고지불가),'03'(비부과대상),'99'(고지취소) 이면 //////////////
if(!noticeWrongId.equals("03")){
param.setRemark("고지불가 처리중입니다.확인 후 처리하세요.");
System.out.println("################# param.setRemark4 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
continue;
} else {
penaltyCheck = null;
continue;
}
}
if(penaltySeizureCnt > 0){
updatePenaltyOcrFileSucc(param); //수입금 정보 INSERT @@@@@@@@@@@@@@@@@@@@@
succList.add(idx, findPenaltyOcrFileSucc(param));
idx++;
penaltyCheck = null;
continue;
}
if(param.getMotionId() != null && !penaltyMotionId.equals("") && sendMotionId.equals(penaltyMotionId)){
System.out.println("################# 50 - RECEIPT_INFO(수납정보)에 중복 데이타가 있는지 체크 : Sql ");
//FUN_TFL000Q_RECEIPT_DUP_CHECK
int dupCheck = finePenaltyDao.findPenaltyOcrFileDupCheck(param); //RECEIPT_INFO(수납정보)에 중복 데이타가 있는지 검사 - 이중수납도 있기때문에...
if(dupCheck == 0){
System.out.println("################# 60 - 수입금 정보 INSERT : Sql ");
updatePenaltyOcrFileSucc(param); //수입금 정보 INSERT @@@@@@@@@@@@@@@@@@@@@
succList.add(idx, findPenaltyOcrFileSucc(param));
idx++;
}else{
param.setRemark("이미 수납처리한 정보입니다.");
System.out.println("################# param.setRemark6 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
}
penaltyCheck = null;
continue;
}
System.out.println("################# 51 - RECEIPT_INFO(수납정보)에 중복 데이타가 있는지 체크 : Sql ");
int dupCheck = finePenaltyDao.findPenaltyOcrFileDupCheck(param); //RECEIPT_INFO(수납정보)에 중복 데이타가 있는지 검사 - 이중수납도 있기때문에...
if( penaltyMotionId.equals("51") || penaltyMotionId.equals("52") || penaltyMotionId.equals("53") || penaltyMotionId.equals("54") ){
if(dupCheck == 0){
System.out.println("################# 60 - 수입금 정보 INSERT : Sql ");
updatePenaltyOcrFileSucc(param); //수입금 정보 INSERT @@@@@@@@@@@@@@@@@@@@@
succList.add(idx, findPenaltyOcrFileSucc(param));
idx++;
param.setRemark("민원접수/처리상태입니다. 수납처리하였습니다.");
System.out.println("################# param.setRemark7 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
}else{
param.setRemark("이미 수납처리한 정보입니다.");
System.out.println("################# param.setRemark8 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
}
penaltyCheck = null;
continue;
}
if( penaltyMotionId.equals("91") ){
if(dupCheck == 0){
System.out.println("################# 60 - 수입금 정보 INSERT : Sql ");
updatePenaltyOcrFileSucc(param); //수입금 정보 INSERT @@@@@@@@@@@@@@@@@@@@@
succList.add(idx, findPenaltyOcrFileSucc(param));
idx++;
param.setRemark("이중수납입니다. 수납처리하였습니다.");
System.out.println("################# param.setRemark10 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
}else{
param.setRemark("이미 수납처리한 정보입니다.");
System.out.println("################# param.setRemark11 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
}
penaltyCheck = null;
continue;
}
if(dupCheck != 0){
param.setRemark("이미 수납처리한 정보입니다.");
System.out.println("################# param.setRemark14 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
continue;
}
System.out.println("################# 61 - 현재상태(고지구분)와 다른 정보 체크 : Sql ");
int napgiCnt = finePenaltyDao.findPenaltyOcrFileNapgi(param); //현재상태(고지구분)와 다른 정보
if(napgiCnt != 1){
int docCnt = finePenaltyDao.findPenaltyOcrFileDoc(param); //현재상태(고지구분)와 다른 정보
if(docCnt == 1){
updatePenaltyOcrFileSucc(param); //수입금 정보 INSERT @@@@@@@@@@@@@@@@@@@@@
succList.add(idx, findPenaltyOcrFileSucc(param));
idx++;
}else{
param.setRemark("현재상태(고지상태)와 다른 정보입니다.");
System.out.println("################# param.setRemark13 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
}
penaltyCheck = null;
continue;
}
System.out.println("################# 60 - 수입금 정보 INSERT : Sql ");
updatePenaltyOcrFileSucc(param); //수입금 정보 INSERT @@@@@@@@@@@@@@@@@@@@@
succList.add(idx, findPenaltyOcrFileSucc(param));
idx++;
param.setRemark("현재상태(고지구분)와 다른 정보입니다.");
System.out.println("################# param.setRemark12 : " + param.getRemark());
finePenaltyDao.insertPenaltyOcrFileError(param);
penaltyCheck = null;
}
return succList;
}
//OCR수납처리 엑셀 리뉴얼
public List<PenaltyParamVO> findIncomeEtaxFile(List<PenaltyParamVO> params) throws Exception {
finePenaltyDao.deletePenaltyOcrFileError(params.get(0)); //ocr_error 테이블 자료 초기화
List<PenaltyParamVO> succList = new LinkedList<PenaltyParamVO>();
try {
int idx = 0;
for(PenaltyParamVO param : params){
int sendCnt = 0;
int readCnt = 0;
Map<String, String> penaltyManage = new HashMap<String, String>();
param.setSessionUserNm(HttpUtil.getEmpNm());
readCnt = readCnt + 1;
String str = param.getpNum();
param.setReceiptKigwan(str.substring(0, 3)); //ls_gigwan
param.setReceiptDong(str.substring(3, 6)); //ls_dong
param.setReceiptAccount(str.substring(7, 9)); //ls_account
param.setReceiptGwamok(str.substring(9, 12)); //ls_class
param.setReceiptSemok(str.substring(12, 15)); //ls_semok
param.setYear(str.substring(15, 19)); //ls_year 통행년도
param.setMonth(str.substring(19, 21)); //ls_month 통행월
param.setEtaxKbn(str.substring(21,22)); //시세입구분
param.setManageNo(Integer.parseInt(str.substring(23, 28))+""); //ls_seqno
logger.info("setReceiptDate" + param.getReceiptDate());
param.setReceiptDate(param.getReceiptDate().replaceAll("-", ""));
param.setReceiptAmount(param.getReceiptAmount().replaceAll("[^0-9]", ""));
// System.out.println("################# 자료 : setReceiptDate = " + param.getReceiptDate());
// System.out.println("################# 자료 : setBank = " + param.getBank());
// System.out.println("################# 자료 : setReceiptAgency = " + param.getReceiptAgency());
// System.out.println("################# 자료 : setEtaxKbn = " + param.getEtaxKbn());
// System.out.println("################# 자료 : setReceiptSido = " + param.getReceiptSido());
// System.out.println("################# 자료 : setReceiptKigwan = " + param.getReceiptKigwan());
// System.out.println("################# 자료 : setReceiptDong = " + param.getReceiptDong());
// System.out.println("################# 자료 : setReceiptAccount = " + param.getReceiptAccount());
// System.out.println("################# 자료 : setReceiptGwamok = " + param.getReceiptGwamok());
// System.out.println("################# 자료 : setReceiptSemok = " + param.getReceiptSemok());
// System.out.println("################# 자료 : setYear = " + param.getYear());
// System.out.println("################# 자료 : setMonth = " + param.getMonth());
// System.out.println("################# 자료 : setManageNo = " + param.getManageNo());
// System.out.println("################# 자료 : setReceiptAmount = " + param.getReceiptAmount());
// System.out.println("################# 자료 : setNapgiDate = " + param.getNapgiDate());
// System.out.println("################# 자료 : setReceiptKbn = " + param.getReceiptKbn());
if(param.getBank().equals("우리은행")){
param.setBankCd("1");
}else if(param.getBank().equals("신한은행")){
param.setBankCd("2");
}else if(param.getBank().equals("하나은행")){
param.setBankCd("3");
}else{
param.setBankCd("1");
}
// 시세입 수납처리 파일 형식 과세번호 체크
if((param.getReceiptKigwan()+param.getReceiptDong()+param.getReceiptAccount()+param.getReceiptGwamok()+param.getReceiptSemok()).equals("00004732227213")){
String etaxKbn = param.getEtaxKbn();
if(etaxKbn.equals("1")){
penaltyManage = finePenaltyDao.findIncomeOcrFileDefManageYear_2(param); //과태료 관리년도 OK SP_TFL000Q_SEND_CHECK2
param.setManageYear(penaltyManage.get("MANAGE_YEAR"));
param.setSendDate(penaltyManage.get("SEND_DATE"));
param.setEndDate(penaltyManage.get("END_DATE"));
sendCnt = finePenaltyDao.findIncomeOcrFileSendCnt_1(param); //발송건수 체크 OK
}else if(etaxKbn.equals("2")){
penaltyManage = finePenaltyDao.findIncomeOcrFileDefManageYearCard_2(param); //과태료 관리년도 OK SP_TFL000Q_SEND_CHECK2
param.setManageYear(penaltyManage.get("MANAGE_YEAR"));
param.setSendDate(penaltyManage.get("SEND_DATE"));
param.setEndDate(penaltyManage.get("END_DATE"));
sendCnt = finePenaltyDao.findIncomeOcrFileSendCntCard_1(param); //발송건수 체크 OK
}else if(etaxKbn.equals("3")){
penaltyManage = finePenaltyDao.findIncomeOcrFileDefManageYearCard_2(param); //과태료 관리년도 OK SP_TFL000Q_SEND_CHECK2
param.setManageYear(penaltyManage.get("MANAGE_YEAR"));
param.setSendDate(penaltyManage.get("SEND_DATE"));
param.setEndDate(penaltyManage.get("END_DATE"));
sendCnt = finePenaltyDao.findIncomeOcrFileSendCntCard_1(param); //발송건수 체크 OK
}
if(sendCnt == 1){
int alreadyOtherCnt = 0;// 바로녹색 제외한 수납 정보 확인
if(etaxKbn.equals("1")){
alreadyOtherCnt = finePenaltyDao.findIncomeOcrFileAlreadyOther(param); //수납여부 체크 OK
}
int alreadyGreenCnt = 0;// 바로녹색 수납 정보 확인(바로녹색 환불이 많아 따로 분류함)
if(etaxKbn.equals("1")){
alreadyGreenCnt = finePenaltyDao.findIncomeOcrFileAlreadyGreen(param); //수납여부 체크 OK
}
int alreadyCnt = 0; // 수납여부 체크
if(etaxKbn.equals("1")){
alreadyCnt = finePenaltyDao.findIncomeOcrFileAlready(param); //수납여부 체크 OK
}
int alreadyCnt2 = finePenaltyDao.findIncomeOcrFileReceipt(param); //수납여부 체크2 OK
if(alreadyOtherCnt > 0){
param.setRemark("다른 수납 정보가 존재합니다. 이중 수납입니다.(바로녹색 제외)");
finePenaltyDao.insertDefOcrFileError(param);
}else if(alreadyCnt > 0){
param.setRemark("이미 수납처리한 정보입니다. 확인바랍니다.");
finePenaltyDao.insertDefOcrFileError(param);
}else if(alreadyGreenCnt > 0){
param.setRemark("바로녹색결제 수납처리한 정보입니다. 확인바랍니다.(※바로녹색 환불 필수)");
finePenaltyDao.insertDefOcrFileError(param);
}else if(alreadyCnt2 > 0){
param.setRemark("이미 수납처리한 정보입니다. 확인바랍니다.");
finePenaltyDao.insertDefOcrFileError(param);
}else{
if(etaxKbn.equals("1")){
finePenaltyDao.updateIncomeOcrFileDef(param); //미납 테이블 수정
}else if(etaxKbn.equals("2")){
finePenaltyDao.updateIncomeOcrFileCard(param); //후납시세입관리 테이블 수정
}else if(etaxKbn.equals("3")){
finePenaltyDao.updateIncomeOcrFileCard(param); //후납시세입관리 테이블 수정
}
finePenaltyDao.updateIncomeOcrFileVirtualAccount(param); //가상계좌 초기화
finePenaltyDao.insertIncomeOcrFileReceiptInfo(param); //수납 테이블 추가
succList.add(idx, finePenaltyDao.findIncomeOcrFileReceiptResult(param));
idx++;
}
}else if(sendCnt == 0){
param.setRemark("일치하는 발송정보가 없습니다.");
finePenaltyDao.insertDefOcrFileError(param);
}else if(sendCnt > 1){ // ######### 1건이상인 경우 처리 빠져 있음 - 기존은 팝업창에서 수납처리할 대상을 선택 (수납처리 또는 오류처리)
param.setRemark("2개 이상의 발송정보가 존재합니다.");
finePenaltyDao.insertDefOcrFileError(param);
}
}else{
param.setRemark("파일 형식이 맞지 않습니다. 관리자에게문의하세요.");
finePenaltyDao.insertDefOcrFileError(param);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return succList;
}
@Override
public void updatePenaltyOcrFileSucc(PenaltyParamVO param) throws Exception {
//수납 정보
//System.out.println("################# 70 - 수입금 처리 여부 : Sql ");
int receiptType = finePenaltyDao.findPenaltyOcrFileReceipt(param);
if(receiptType == 0){
//System.out.println("################# 70 - 수입금 정보 INSERT : Sql ");
finePenaltyDao.insertPenaltyOcrFileReceipt(param);
}else{
//System.out.println("################# 70 - 수입금 정보 중복 INSERT : Sql ");
finePenaltyDao.insertPenaltyOcrFileDouReceipt(param);
}
//가상계좌 초기화 SP_VIRTUALACCOUNT_UPDATE
//System.out.println("################# 71 - 가상계좌 처리 : Sql ");
finePenaltyDao.updatePenaltyOcrFileVirtualAccount(param); //수정할 것
//과태료 변경 이력 정보 1
//System.out.println("################# 72 - 과태료 변경 이력 정보 처리 1 : Sql ");
finePenaltyDao.insertPenaltyOcrFilePenaltyHistory(param);
//System.out.println("################# 72 - 과태료 렌트카 변경 이력 정보 처리 1 : Sql ");
finePenaltyDao.insertPenaltyOcrFilePenaltyRentHistory(param);
//과태료Detail정보 수납완료 처리
//System.out.println("################# 72 - 과태료Detail정보 수납여부 : Sql ");
int penaltyType = finePenaltyDao.findPenaltyOcrFilePenalty(param);
if(penaltyType == 0){
//System.out.println("################# 72 - 과태료Detail정보 수납완료 : Sql ");
finePenaltyDao.updatePenaltyOcrFilePenalty(param);
//System.out.println("################# 72 - 과태료Detail정보 렌트카 수납완료 : Sql ");
finePenaltyDao.updatePenaltyOcrFileRentPenalty(param);
}else{
//System.out.println("################# 72 - 과태료Detail정보 중복 수납완료 : Sql ");
finePenaltyDao.updatePenaltyOcrFileDouPenalty(param);
//System.out.println("################# 72 - 과태료Detail정보 렌트카 중복 수납완료 : Sql ");
finePenaltyDao.updatePenaltyOcrFileRentDouPenalty(param);
}
//과태료 변경 이력 정보 2
//System.out.println("################# 74 - 과태료 변경 이력 정보 처리 2: Sql ");
finePenaltyDao.insertPenaltyOcrFilePenaltyHistory(param);
//System.out.println("################# 74 - 과태료 렌트카 변경 이력 정보 처리 2 : Sql ");
finePenaltyDao.insertPenaltyOcrFilePenaltyRentHistory(param);
//민원 접수 정보
//System.out.println("################# 75 - 민원 접수 여부 : Sql ");
int civilType = finePenaltyDao.findPenaltyOcrFileCivil(param);
if(civilType != 0){
//System.out.println("################# 75 - 민원 접수 처리 : Sql ");
finePenaltyDao.updatePenaltyOcrFileCivil(param);
}
}
@Override
public PenaltyParamVO findPenaltyOcrFileSucc(PenaltyParamVO param) throws Exception {
// TODO 조회 테스트
PenaltyParamVO statPenalty = null;
statPenalty = finePenaltyDao.findPenaltyOcrFileReceiptResult(param);
return statPenalty;
}
@Override
public List<PenaltyParamVO> findPenaltyOcrFileError(PenaltyParamVO param) throws Exception {
// TODO 조회 테스트
List<PenaltyParamVO> statPenalty = null;
statPenalty = finePenaltyDao.findPenaltyOcrFileError(param);
return statPenalty;
}
@Override
public List<PenaltyParamVO> findDefOcrFileError(PenaltyParamVO param) throws Exception {
// TODO 조회 테스트
List<PenaltyParamVO> statPenalty = finePenaltyDao.findDefOcrFileError(param);
return statPenalty;
}
@Override
public List<PenaltyParamVO> findPenaltyList19ResultList02(PenaltyParamVO param) throws Exception {
// TODO 조회 테스트
List<PenaltyParamVO> resultList02 = new ArrayList<PenaltyParamVO>();
param.setPenaltyManageYear("2019");
param.setPenaltySeqno("1");
param.setNapgiDate("2019-06-11");
param.setReceiptId("수납코드");
param.setSunapGubun("수납구분");
param.setSunapDate("2019-06-11");
param.setBank("수납은행");
param.setReceiptSido("시도");
param.setReceiptKigwan("기관");
param.setReceiptDong("동");
param.setReceiptAccount("회계");
param.setReceiptGwamok("과목");
param.setReceiptSemok("세목");
param.setYear("2019");
param.setMonth("1");
param.setReceiptAmount("10000");
param.setNapgiGubun("납기구분");
resultList02.add(param);
return resultList02;
}
@Override
public int penaltyCreateEgreenFileDbImageChk(List<PenaltyParamVO> paramList) throws Exception {
List<PenaltyParamVO> paramResult = new ArrayList<PenaltyParamVO>();
int nonImageCnt = 0;
for(PenaltyParamVO param : paramList){
param.setSessionUserNm(HttpUtil.getEmpNm());
String imageUrl = cfsCommonService.findCommonSecureGet("IMG_UP_URL")+param.getYear()+"/"+param.getFareOfficeId()+"/"+param.getYear()+param.getMonth()+param.getDay()+"/"+ param.getCarsStopPictureFile();
URL url = null;
url = new URL(imageUrl); // 다운로드 할 이미지 URL
URLConnection con = url.openConnection();
HttpURLConnection exitCode = (HttpURLConnection)con;
if(exitCode.getResponseCode() == 403) {
//UPDATE PENALTY_DETAIL_INFO_DAMO - 이미지 없는 상태로 저장
finePenaltyDao.updateEgreenNonImage(param);
nonImageCnt++;
}else{
paramResult.add(param);
}
}
penaltyCreateEgreenFileDb(paramResult);
return nonImageCnt;
}
@Override
public void penaltyCreateEgreenFileDb(List<PenaltyParamVO> paramList) throws Exception {
finePenaltyDao.deletePenaltyEgreenTempFile();
try{
int ct = 0;
String CON_KEY = "";
for(PenaltyParamVO param : paramList){
param.setDeliveryDate(param.getDeliveryDate().replace("/", ""));
param.setSendDate(param.getSendDate().replace("/", ""));
param.setSessionUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updateVirtualaccount(param); //가상계좌 전송/납부일자 넣어주기
ct++;
param.setCount(ct);
param.setListSize(paramList.size()+"");
if(CON_KEY.equals("")){
CON_KEY = "NS"
+param.getPenaltyManageYear()
+String.format("%06d", Integer.parseInt(param.getPenaltySeqno()))
+param.getMotionFlag(); //외부 연계 식별키
}
String RECEV_BAND0_1 = ""; //밴드0
String sendDate = "";
PenaltyParamVO sendDateList = finePenaltyDao.findEtaxFileSendDate(param);
String passDate = param.getYear()+param.getMonth()+param.getDay();
if(Integer.parseInt(passDate)>=20060101){
sendDate += (String) sendDateList.getSendDate().subSequence(0, 6);
}else{
sendDate += param.getYear()+param.getMonth();
}
RECEV_BAND0_1 = "000047334288001"+ sendDate + "2" + byteLeftPad(param.getPenaltySeqno(), 6, "0") + combyteSec("34"+"288001"+sendDate+"2"+byteLeftPad(param.getPenaltySeqno(), 6, "0"));
String RECEV_BAND7_1 = sendDate+"2"; //밴드7
String RECEV_BAND8_1 = byteLeftPad(param.getPenaltySeqno(), 6, "0") + combyteSec("34"+"288001"+sendDate+"2"+byteLeftPad(param.getPenaltySeqno(), 6, "0")); //밴드8
param.setRecevBand01(RECEV_BAND0_1);
param.setRecevBand02(RECEV_BAND7_1);
param.setRecevBand03(RECEV_BAND8_1);
String recevRecallUsegiganInfo = "";
String recevSenderinfo2 = "";
if(param.getStage().equals("0")){
recevRecallUsegiganInfo = "[ 자진납부 및 의견제출 안내 ] 기한 내에만 감경된 과태료가 적용되며 기한이 경과되면 원래 과태료가 부과됨 기한 마지막 날은 오후 10시 30분까지 과태료 가상계좌 납부가 가능함 의견제출을 하여도 자진납부 기한은 연장되지 않음";
recevSenderinfo2 = "혼잡통행료 과태료 사전통지서";
}else if(param.getStage().equals("1")){
recevRecallUsegiganInfo = "[ 혼잡통행료 납부 안내 ]서울특별시 혼잡통행료 징수조례 제11조 규정에 의거 과태료 납부를 통지하며, 질서위반행위규제법 제24조에 따라 납부 기한이 경과한 날부터 과태료의 3% 가산 되며, 매1개월 경과시마다 체납과태료의 12/1000에 상당하는 금액이 60개월동안 (최고 75%)중가산 되니 납부기한 내에 납부 하여 주시기 바랍니다.";
recevSenderinfo2 = "혼잡통행료 과태료 납부통지서";
}else {
recevRecallUsegiganInfo ="[ 혼잡통행료 과태료 독촉 및 압류예고장 ] 독촉장을 받고 납부기한까지 완납하지 아니한 때에는 지방세징수법 제33조 및 국세징수법의 규정에 따라 재산압류 등의 불이익을 받으실 수 있습니다.";
recevSenderinfo2 = "혼잡통행료 독촉 압류예고장";
}
param.setRecevRecallUsegiganInfo(recevRecallUsegiganInfo);
param.setRecevSenderinfo2(recevSenderinfo2);
param.setConKey(CON_KEY); //외부 연계 식별키
param.setEgreenResultId("90");
finePenaltyDao.insertPenaltyEgreenTempFile(param);
param.setEgreenYn("1");
finePenaltyDao.updateEtaxPenaltyDtlNotice2(param);
}
}catch(RuntimeException e) {
logger.info("catch check");
}catch(Exception e){
logger.info("catch check");
}
}
@Override
public int penaltyCreateEgreenFileImageChk(List<PenaltyParamVO> paramList) throws Exception {
List<PenaltyParamVO> paramResult = new ArrayList<PenaltyParamVO>();
int nonImageCnt = 0;
for(PenaltyParamVO param : paramList){
param.setSessionUserNm(HttpUtil.getEmpNm());
String imageUrl = cfsCommonService.findCommonSecureGet("IMG_UP_URL")+param.getYear()+"/"+param.getFareOfficeId()+"/"+param.getYear()+param.getMonth()+param.getDay()+"/"+ param.getCarsStopPictureFile();
URL url = null;
url = new URL(imageUrl); // 다운로드 할 이미지 URL
URLConnection con = url.openConnection();
HttpURLConnection exitCode = (HttpURLConnection)con;
if(exitCode.getResponseCode() != 200) {
//UPDATE PENALTY_DETAIL_INFO_DAMO - 이미지 없는 상태로 저장
finePenaltyDao.updateEgreenNonImage(param);
nonImageCnt++;
}else{
paramResult.add(param);
}
}
penaltyCreateEgreenFile(paramResult);
return nonImageCnt;
}
@Override
public void penaltyCreateEgreenFile(List<PenaltyParamVO> paramList) throws Exception {
try{
finePenaltyDao.deletePenaltyEgreenTempFile();
PenaltyParamVO penaltyRgstNum = finePenaltyDao.findeGreenRgstNum();
Long rgstNum = Long.parseLong(penaltyRgstNum.getRgstNum());
String fileFullName = "";
String inDate = new java.text.SimpleDateFormat("yyyyMMdd").format(new java.util.Date());
String inTime = new java.text.SimpleDateFormat("HHmmss").format(new java.util.Date());
String txt = "";
String txtImage = "";
int ct = 0;
String CON_KEY = "";
for(PenaltyParamVO param : paramList){
PenaltyParamVO penaltyTodaySendChk = finePenaltyDao.findEtaxFileTodaySendChk(param); //중복 고지 막기위한 로직 추가 220603
if(penaltyTodaySendChk.getCnt().equals("1")){
continue;
}
finePenaltyDao.updateVirtualaccount(param); //가상계좌 전송/납부일자 넣어주기
String sender = "";
String recevRecallUsegiganInfo = "";
String recevSenderinfo2 = "";
param.setSessionUserNm(HttpUtil.getEmpNm());
ct++;
param.setCount(ct);
param.setListSize(paramList.size()+"");
String RECEV_KEUMINFO_1 = "";
String divKb; //취급구분
String sealCd; //내용문 상세 종류
String RECEV_SENDERURL = "혼잡통행료 과태료조회 https://oksign.seoul.go.kr"; //보내는사람_홈페이지
if(param.getStage().equals("0")){
sender = "사전통지서";
RECEV_KEUMINFO_1 = "감경 20% 적용"; //과태료정보안내
recevRecallUsegiganInfo = "[ 자진납부 및 의견제출 안내 ] 기한 내에만 감경된 과태료가 적용되며 기한이 경과되면 원래 과태료가 부괴됨 기한 마지막 날은 오후 10시 30분까지 과태료 가상계좌 납부가 가능함 의견제출을 하여도 자진납부 기한은 연장되지 않음";
recevSenderinfo2 = "혼잡통행료 과태료 사전통지서";
divKb = "000"; //취급구분
sealCd = "02L";
}else if(param.getStage().equals("1")){
sender = "과태료납부통지서";
recevRecallUsegiganInfo = "[ 혼잡통행료 납부 안내 ]서울특별시 혼잡통행료 징수조례 제11조 규정에 의거 과태료 납부를 통지하며, 질서위반행위규제법 제24조에 따라 납부 기한이 경과한 날부터 과태료의 3% 가산 되며, 매1개월 경과시마다 체납과태료의 12/1000에 상당하는 금액이 60개월동안 (최고 75%)중가산 되니 납부기한 내에 납부 하여 주시기 바랍니다.";
recevSenderinfo2 = "혼잡통행료 과태료 납부통지서";
divKb = "000"; //취급구분
sealCd = "02L";
}else {
sender = "과태료독촉 압류예고장";
recevRecallUsegiganInfo ="[ 혼잡통행료 과태료 독촉 및 압류예고장 ] 독촉장을 받고 납부기한까지 완납하지 아니한 때에는 지방세징수법 제33조 및 국세징수법의 규정에 따라 재산압류 등의 불이익을 받으실 수 있습니다.";
recevSenderinfo2 = "혼잡통행료 독촉 압류예고장";
divKb = "001"; //취급구분
sealCd = "12L";
RECEV_SENDERURL = "";
}
param.setRecevRecallUsegiganInfo(recevRecallUsegiganInfo);
param.setRecevSenderinfo2(recevSenderinfo2);
String conOrg = "TOPI"; //외부기관구분코드
String conRCEPTID = "10015"; //접수우체국 국기호
String dataCd = param.getDataCd(); //접수코드
String dfpayYn = "001"; //결제방법
String rcptKb = "020"; //내용문 유형
String wordKb = "001"; //내용문 종류
String mailCnt = "1"; //내용문 매수
String recevCnt = paramList.size()+""; //수취인 수
String envCd = "003"; //봉투 종류
String colorYn = "N"; //컬러우편물/흑백우편물
String MM_YN = "Y"; //메일머지 플래그
String FLEX_CD = "N"; //이면구분
String DM_CNT = "0"; //동봉물 개수, 없다면 '0'
String SB_FG = "Y"; //반송불필요여부
String APVL_NB = "1001510889"; //승인번호
String SEND_DATE = inDate; //신청일자
String SEND_TIME = inTime; //전송시간
if(CON_KEY.equals("")){
CON_KEY = "NS"+rgstNum; //외부 연계 식별키
}
String RGST_NMBR = "";
param.setConKey(CON_KEY); //외부 연계 식별키
String RELORSECT_CD = "00088"; //연계기관결제부서코드
String CON_DATA = ""; //외부 연계 추가 데이터
String SENDER_NM ="서울시설공단 혼잡통행료관리소"; //발송인명
String SENDER_ZIPCODE = "04633"; //우편번호
String SENDER_ADDR = "서울특별시 중구 소공로3길"; //주소(시, 구)
String SENDER_DTAILADDR = "29-5"; //상세주소
String SENDER_DATA ="NS"+param.getPenaltyManageYear()+param.getPenaltySeqno()+rgstNum; //발송인별 추가 데이터
String SQL_CNT = ct+""; //수취인순번
String RECEV_NM = param.getOwner(); //수취인명
String RECEV_ZIPCODE = param.getPostNo(); //우편번호
String RECEV_ADDR = param.getAddressName(); //주소(시, 구)
String RECEV_DTAILADDR = param.getAddressNum(); //상세주소
if(param.getStage().equals("2")){
RGST_NMBR = rgstNum+""; //등기번호
}else{
RGST_NMBR = "";
}
param.setRgstNum(rgstNum+"");
rgstNum++;
String RECEV_DATA = "TEL: (02)2290-6438~9, 2290-6179 FAX:(02)756-1398"; //수취인별 추가 데이터
String TEL_NUMBER1 = "000"; //수취인별 전화번호(앞)
String TEL_NUMBER2 = "000"; //수취인별 전화번호(중간)
String TEL_NUMBER3 = "0000"; //수취인별 전화번호(끝)
String PHONE_NUMBER1 = "000"; //수취인별핸드폰번호(앞)
String PHONE_NUMBER2 = "000"; //수취인별핸드폰번호(중간)
String PHONE_NUMBER3 = "0000"; //수취인별핸드폰번호(끝)
String RETURN_NM = ""; //회송처
String RETURN_ZIPCODE = ""; //회송처 우편번호
String RETURN_ADDR = ""; //회송처 주소
String RETURN_DTAILADDR = ""; //회송처 상세주소
String ATTACH_NM = CON_KEY+".zip";
String RECEV_SGGCODE = "11110"; //시군구코드
String RECEV_DBGB = "34"; //과태료코드
String RECEV_DBGB_NM = "혼잡통행료과태료"; //과태료명
String RECEV_BOSS = "서울시설공단이사장"; //장명
String RECEV_JUSO = param.getAddressName(); //받는사람_주소
String RECEV_BUNJI = param.getAddressNum(); //받는사람_상세주소
String RECEV_SENDERJUSO = "서울특별시 중구 소공로3길 29-5"; //보내는사람_주소
String RECEV_SENDERZIPCODE = "04633"; //보내는사람_우편번호
String RECEV_SENDERTEL = "02)2290-6438~9, 2290-6179"; //보내는사람_전화
String RECEV_SENDERFAX = "02)756-1398"; //보내는사람_펙스
String RECEV_SENDERDEPTNM = "교통정책과"; //보내는사람_부서명
String RECEV_SENDERINFO1 = "바로녹색결재 가입신청! / 혼잡통행료 과태료 조회 서비스"; //보내는사람_안내문구1
String RECEV_SENDERINFO2 = recevSenderinfo2; //보내는사람_안내문구2
String RECEV_RENTAL_HOMEPAGE =""; //보내는사람_임차인홈페이지
String RECEV_RENTAL_MANUAL =""; //보내는사람_임차인메뉴얼
String RECEV_RENTAL_PRINTTYPE = "1"; //보내는사람_임차인양식구분
String RECEV_RENTAL_JNO =""; //운행자확인 주민번호
String RECEV_LAW_INFO = "서울특별시 혼잡통행료 징수조례 제11조 및 질서위반행위규제법 제16조"; //관련법규 /질서위반행위 규제법시행 안내
String RECEV_RECALL_TEL = "02-2290-6438~9"; //의견진술 연락처안내
String RECEV_JANAP_TEL = "가상계좌로 입금(납기 후 수납 불가 )"; //자진납부안내1
String RECEV_NAPBU_INFO =param.getMotionNm(); // 자진납부안내2
String RECEV_RECALL_USEGIGAN_INFO =recevRecallUsegiganInfo;
String RECEV_MM_CODE_1 = param.getPenaltyManageYear()+String.format("%06d", Integer.parseInt(param.getPenaltySeqno())); //메인연번
String RECEV_PO_CODE_1 = "0000000001"; //발송연번
String RECEV_BARCODE1D_1 = ""; //바코드1D
String RECEV_BARCODE2D_1 = sender; //바코드2D
String RECEV_INGB2_1 = "혼잡통행료과태료"; //단속구분
String RECEV_CARNO_1 = param.getCarNo(); //차량번호
String RECEV_WDATETIME_1 = param.getYear()+param.getMonth()+param.getDay()+param.getWorkTimes().substring(0, 4); //단속일시
String RECEV_DONG_1 = "남산 1호터널, 3호터널"; //단속지역
String RECEV_POS_1 = param.getFareOfficeNm()+param.getBooth(); //단속장소
String RECEV_VIOR_1 = "혼잡통행료 미납"; //위반내용
String RECEV_CARKIND_1 = "승용"; //차종
String RECEV_CARID_1 = param.getCarTypeFullNm(); //차명
String RECEV_MOSAICX_1 = param.getxPosition(); //모자이크X
String RECEV_MOSAICY_1 = param.getyPosition(); //모자이트Y
String RECEV_IMGCNT_1 = "1"; //사진매수
String RECEV_TWOHOUR_1 = ""; //시간초과가액감액안내
String RECEV_SCHOOL_1 = ""; //어린이보호구역
String RECEV_BASICLIVE_1 = ""; //사회적약자
String RECEV_POST_GB_1 = "수시분"; //고지서 문서종류
String RECEV_PRINTDATE_1 = inDate; //출력일자
String RECEV_GOJINUMBER_1 = param.getNoticeDate(); //고지번호
String RECEV_ORG_AMT_1 = param.getLavyAmount(); //단속원금
String RECEV_GOLDATE_1 = param.getDeliveryDate(); //납기내기한
String RECEV_BLC_AMT_1 = param.getLavyAmount(); //납기내금액
String RECEV_GOLDATE_NAPGIHU_1 = ""; //납기후기한
String RECEV_BLC_AMT_NAPGIHU_1 = ""; //납기후금액
String RECEV_BAND0_1 = ""; //밴드0
String sendDate = "";
PenaltyParamVO sendDateList = finePenaltyDao.findEtaxFileSendDate(param);
String passDate = param.getYear()+param.getMonth()+param.getDay();
if(Integer.parseInt(passDate)>=20060101){
sendDate += (String) sendDateList.getSendDate().subSequence(0, 6);
}else{
sendDate += param.getYear()+param.getMonth();
}
RECEV_BAND0_1 = "000047334288001"+ sendDate + "2" + byteLeftPad(param.getPenaltySeqno(), 6, "0") + combyteSec("34"+"288001"+sendDate+"2"+byteLeftPad(param.getPenaltySeqno(), 6, "0"));
String RECEV_BAND1_1 = param.getxPosition();//밴드1
String RECEV_BAND2_1 = param.getyPosition();//밴드2
String RECEV_BAND3_1 = param.getGaroLen(); //밴드3
String RECEV_BAND4_1 = param.getSeroLen(); //밴드4
String RECEV_BAND5_1 = "0000473"; //밴드5
String RECEV_BAND6_1 = "34288001"; //밴드6
String RECEV_BAND7_1 = sendDate+"2"; //밴드7
String RECEV_BAND8_1 = byteLeftPad(param.getPenaltySeqno(), 6, "0") + combyteSec("34"+"288001"+sendDate+"2"+byteLeftPad(param.getPenaltySeqno(), 6, "0")); //밴드8
param.setRecevBand01(RECEV_BAND0_1);
param.setRecevBand02(RECEV_BAND7_1);
param.setRecevBand03(RECEV_BAND8_1);
String RECEV_ETAXNO_1 = ""; //전자납부번호
String RECEV_VACCT_1 = param.getVirtualBank(); //가상계좌정보
String RECEV_RECALL_GIGAN_1 = ""; //의견진술 기간
String RECEV_RECALL_SEQ_1 = ""; //의견진술 접수번호
String RECEV_RECALL_STATE_1 = ""; //의견진술 심의결과안내
String RECEV_RECALL_ANSWER_1 = ""; //의견진술 답변내용
String RECEV_REBUGWA_ID_1 = ""; //재부과명
String RECEV_SZCARNO_1 = ""; //압류등록차량번호
String RECEV_GONGMUN_1 = ""; //공문번호
String RECEV_SZDATE_1 = ""; //압류등록일자
String RECEV_RENTAL_LDATE_1 = ""; //운행자확인 회신일자
fileFullName = cfsCommonService.findCommonSecureGet("FIlE_PATH")+CON_KEY+".txt";
param.setEgreenYn("1");
param.setEgreenResultId("00");
finePenaltyDao.insertPenaltyEgreenFile(param);
finePenaltyDao.insertPenaltyEgreenTempFile(param);
finePenaltyDao.updateEtaxPenaltyDtlNotice(param);
txtImage += "P11110"+param.getPenaltyManageYear()+String.format("%06d", Integer.parseInt(param.getPenaltySeqno()))+"A.JPG" + "\n";
String line =
conOrg+ "|"
+ conRCEPTID+ "|"
+ dataCd+ "|"
+ divKb + "|"
+ dfpayYn+ "|"
+ rcptKb+ "|"
+ sealCd+ "|"
+ wordKb+ "|"
+ mailCnt+ "|"
+ recevCnt+ "|"
+ envCd+ "|"
+ colorYn+ "|"
+ MM_YN+ "|"
+ FLEX_CD+ "|"
+ DM_CNT+ "|"
+ SB_FG+ "|"
+ APVL_NB+ "|"
+ SEND_DATE+ "|"
+ SEND_TIME+ "|"
+ CON_KEY+ "|" //20번째항목
+ RELORSECT_CD+ "|"
+ CON_DATA+ "|"
+ SENDER_NM+ "|"
+ SENDER_ZIPCODE+ "|"
+ SENDER_ADDR+ "|"
+ SENDER_DTAILADDR+ "|"
+ SENDER_DATA+ "|" //27번째항목
+ SQL_CNT+ "|" + RECEV_NM+ "|" + RECEV_ZIPCODE+ "|" + RECEV_ADDR+ "|" + RECEV_DTAILADDR+ "|"
+ RGST_NMBR+ "|" + RECEV_DATA+ "|" + TEL_NUMBER1+ "|" + TEL_NUMBER2+ "|" + TEL_NUMBER3+ "|"
+ PHONE_NUMBER1+ "|" + PHONE_NUMBER2+ "|" + PHONE_NUMBER3+ "|" + RETURN_NM+ "|" + RETURN_ZIPCODE+ "|"
+ RETURN_ADDR+ "|" + RETURN_DTAILADDR+ "|" + ATTACH_NM+ "|" + RECEV_SGGCODE+ "|" + RECEV_DBGB+ "|"
+ RECEV_DBGB_NM+ "|" + RECEV_BOSS+ "|" + RECEV_JUSO+ "|" + RECEV_BUNJI+ "|" + RECEV_SENDERJUSO+ "|"
+ RECEV_SENDERZIPCODE+ "|" + RECEV_SENDERTEL+ "|" + RECEV_SENDERFAX+ "|" + RECEV_SENDERDEPTNM+ "|"
+ RECEV_SENDERURL+ "|" + RECEV_SENDERINFO1+ "|" + RECEV_SENDERINFO2+ "|" + RECEV_RENTAL_HOMEPAGE+ "|"
+ RECEV_RENTAL_MANUAL+ "|" + RECEV_RENTAL_PRINTTYPE+ "|" + RECEV_RENTAL_JNO+ "|" + RECEV_LAW_INFO+ "|"
+ RECEV_RECALL_TEL+ "|" + RECEV_JANAP_TEL+ "|" + RECEV_NAPBU_INFO+ "|"+RECEV_RECALL_USEGIGAN_INFO+ "|" + RECEV_MM_CODE_1+ "|"
+ RECEV_PO_CODE_1+ "|" + RECEV_BARCODE1D_1+ "|" + RECEV_BARCODE2D_1+ "|" + RECEV_INGB2_1+ "|"
+ RECEV_CARNO_1+ "|"
+ RECEV_WDATETIME_1+ "|"
+ RECEV_DONG_1+ "|" + RECEV_POS_1+ "|" + RECEV_VIOR_1+ "|"
+ RECEV_CARKIND_1+ "|" + RECEV_CARID_1+ "|" + RECEV_MOSAICX_1+ "|" + RECEV_MOSAICY_1+ "|" + RECEV_IMGCNT_1+ "|"
+ RECEV_TWOHOUR_1+ "|" + RECEV_SCHOOL_1+ "|" + RECEV_BASICLIVE_1+ "|" + RECEV_POST_GB_1+ "|"
+ RECEV_PRINTDATE_1+ "|" + RECEV_GOJINUMBER_1+ "|" + RECEV_ORG_AMT_1+ "|" + RECEV_KEUMINFO_1+ "|"
+ RECEV_GOLDATE_1+ "|" + RECEV_BLC_AMT_1+ "|" + RECEV_GOLDATE_NAPGIHU_1+ "|" + RECEV_BLC_AMT_NAPGIHU_1+ "|"
+ RECEV_BAND0_1+ "|" + RECEV_BAND1_1+ "|" + RECEV_BAND2_1+ "|" + RECEV_BAND3_1+ "|" + RECEV_BAND4_1+ "|"
+ RECEV_BAND5_1+ "|" + RECEV_BAND6_1+ "|" + RECEV_BAND7_1+ "|" + RECEV_BAND8_1+ "|" + RECEV_ETAXNO_1+ "|"
+ RECEV_VACCT_1+ "|" + RECEV_RECALL_GIGAN_1+ "|" + RECEV_RECALL_SEQ_1+ "|" + RECEV_RECALL_STATE_1+ "|"
+ RECEV_RECALL_ANSWER_1+ "|" + RECEV_REBUGWA_ID_1+ "|" + RECEV_SZCARNO_1+ "|" + RECEV_GONGMUN_1+ "|"
+ RECEV_SZDATE_1+ "|" + RECEV_RENTAL_LDATE_1;
line = StringUtil.deleteNewLine(line) + "\n";
txt += line;
}
this.findCreateImageFileList(txt,fileFullName);
this.findCreateImageFileList(txtImage,cfsCommonService.findCommonSecureGet("FIlE_PATH")+CON_KEY+"img.txt");
this.findCreateImageUpload(paramList);
//String command = String.format("sh "+"/gpta/source-app/cfs/egreen/snd_eGreen.sh "+"/gpta/source-app/cfs/egreen"+" "+CON_KEY);
//shellCmd(command);
String path = this.egreen_step4("/gpta/source-app/cfs/egreen", CON_KEY);
this.egreen_step5(path);
}catch(RuntimeException e) {
e.printStackTrace();
logger.info("catch check");
}catch(Exception e){
e.printStackTrace();
logger.info("catch check");
}
}
public void findCreateImageFileList(String txt, String fileName) throws Exception {
BufferedWriter bf = new BufferedWriter(new FileWriter(fileName));
try{
bf.write(txt);
bf.flush();
}catch(RuntimeException e) {
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
if(bf != null)
bf.close();
}
}
private String egreen_step4(String rootWork, String conkey) throws Exception {
String result = "";
String chg_files_path = rootWork+"/data";
String readLineFileName_SUFFIX = "img.txt";
String chg_file_name_PREFIX = "LGRDFB$";
String readLineFileName = conkey+readLineFileName_SUFFIX;
String readLineFilePath = rootWork+"/"+readLineFileName;
String firstTxtName = conkey+".txt";
String firstTxtPath = rootWork+"/"+firstTxtName;
String firstZipName = conkey+".zip";
String firstZipPath = rootWork+"/"+firstZipName;
String chg_file_name_no_ext = chg_file_name_PREFIX+conkey;
String chg_file_name_txt = chg_file_name_no_ext+".txt";
String chg_file_path_txt = chg_files_path+"/"+chg_file_name_txt;
String chg_file_name_zip = chg_file_name_no_ext+".zip";
String chg_file_path_zip = chg_files_path+"/"+chg_file_name_zip;
Files.move(Paths.get(firstTxtPath), Paths.get(chg_file_path_txt), StandardCopyOption.REPLACE_EXISTING);
BufferedReader br = Files.newBufferedReader(Paths.get(readLineFilePath));
Charset.forName("UTF-8");
List<String> lines = new ArrayList<String>();
String line = "";
while ((line = br.readLine()) != null) {
if(line != null && !line.equals("")){
lines.add(line);
}
}
ZipUtil.makeZip(rootWork, lines, firstZipName);
for(String one : lines){
Files.delete(Paths.get(rootWork+"/"+one));
}
Files.delete(Paths.get(readLineFilePath));
Files.move(Paths.get(firstZipPath), Paths.get(chg_file_path_zip), StandardCopyOption.REPLACE_EXISTING);
result = chg_files_path + "/" + chg_file_name_no_ext;
return result;
}
private boolean egreen_step5(String path){
Map<String,String> connectionInfo = trsmrcvDao.selectConnectionInfo("EGREEN_ESB_AGENT_FTP");
boolean initResult = sftpUtil.init(
connectionInfo.get("CONNECT_IP"),
connectionInfo.get("USER_ID"),
connectionInfo.get("USER_PASS"),
Integer.parseInt(connectionInfo.get("CONNECT_PORT"))
);
if(!initResult){
return false;
}
boolean uploadResult = sftpUtil.sFtpUpload2(connectionInfo.get("PATH_INFO"), new File(path+".txt"), new File(path+".zip"));
return uploadResult;
}
private boolean shellCmd(String cmd) {
Process process = null;
Runtime runtime = Runtime.getRuntime();
StringBuffer successOutput = new StringBuffer();
StringBuffer errorOutput = new StringBuffer();
BufferedReader successBufferReader = null;
BufferedReader errorBufferReader = null;
String msg = null;
boolean result = false;
logger.info(cmd);
logger.info("shellCmd - 1");
List<String> cmdList = new ArrayList<String>();
cmdList.add("/bin/sh");
cmdList.add("-c");
logger.info("shellCmd - 2");
cmdList.add(cmd);
String[] array = cmdList.toArray(new String[cmdList.size()]);
logger.info("// 3");
try {
process = runtime.exec(array);
logger.info("shellCmd - 4");
successBufferReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8"));
logger.info("shellCmd - 5");
while ((msg = successBufferReader.readLine()) != null) {
successOutput.append(msg + System.getProperty("line.separator"));
}
logger.info("shellCmd - 6");
errorBufferReader = new BufferedReader(new InputStreamReader(process.getErrorStream(), "UTF-8"));
while ((msg = errorBufferReader.readLine()) != null) {
errorOutput.append(msg + System.getProperty("line.separator"));
}
logger.info("shellCmd - 7");
process.waitFor();
logger.info("shellCmd - 8");
if (process.exitValue() == 0) {
result = true;
} else {
logger.info("abnormal finish error : " + successOutput.toString());
}
logger.info("shellCmd - 8");
if (errorOutput.toString().length() > 0) {
logger.info("error : " + errorOutput.toString());
}
logger.info("shellCmd - 9");
} catch (IOException e) {
logger.info(e.getMessage());
} catch (InterruptedException e) {
logger.info(e.getMessage());
} finally {
try {
process.destroy();
if (successBufferReader != null) successBufferReader.close();
if (errorBufferReader != null) errorBufferReader.close();
} catch (IOException e1) {
logger.info(e1.getMessage());
}
}
return result;
}
public void findCreateImageUpload(List<PenaltyParamVO> paramList) throws Exception {
for(PenaltyParamVO param : paramList){
String saveFileName = cfsCommonService.findCommonSecureGet("FIlE_PATH")+"P11110"+param.getPenaltyManageYear()+String.format("%06d", Integer.parseInt(param.getPenaltySeqno()))+"A.JPG";
String format = "JPG";
String imageUrl = cfsCommonService.findCommonSecureGet("IMG_UP_URL")+param.getYear()+"/"+param.getFareOfficeId()+"/"+param.getYear()+param.getMonth()+param.getDay()+"/"+ param.getCarsStopPictureFile();
logger.info("파일 저장"+saveFileName);
logger.info("다운받을 이미지"+imageUrl);
File saveFile = null;
URL url = null;
BufferedImage bi = null;
boolean bSueess = false;
boolean writeChk = false;
url = new URL(imageUrl); // 다운로드 할 이미지 URL
int check = 0;
while(!bSueess){
if(check == 10){
break;
}
try{
bi = ImageIO.read(url);
bSueess = true;
logger.info("이미지"+bi.getHeight());
}
catch(IOException i){
Thread.sleep(1000);
}
check++;
}
saveFile = new File(saveFileName);
check = 0;
while(writeChk == false){
if(check == 10){
break;
}
try{
logger.info("다운 시도"+check);
// 저장할 파일 형식, 저장할 파일명
ImageIO.write(bi, format, saveFile);
writeChk = true;
}catch(IOException i){
Thread.sleep(1000);
}
check++;
}
}
}
@Override
public PenaltyParamVO findCreateETaxFile(PenaltyParamVO param) throws Exception { //쩐쩐
PenaltyParamVO result = new PenaltyParamVO();
try{
List<PenaltyParamVO> virtual = finePenaltyDao.findEtaxFileVirtualaCount(param);
for(PenaltyParamVO account : virtual ){
finePenaltyDao.updateVirtualaccount(account);
}
/*가상계좌 중복 발행 현상이 있어 중복을 제거해야함*/
finePenaltyDao.updateVirtualDue();
List<PenaltyParamVO> statList = finePenaltyDao.findEtaxFilePenaltyList(param);
String txt = "";
String is_a1 = "000"; //시구코드(시도)(3 byte)
String is_a2 = "047"; //행정동코드(기관)(3 byte)
String is_a3 = "3"; //검비트1(1 byte)
String is_a4 = "34"; //회계코드(2 byte)
String is_a5 = "288001";//세목코드(6 byte)
String is_a6; //과세년월(6 byte)
String is_a7 = "2"; //과세번호(1 byte)
String is_a9 = ""; //검비트2(1 byte)
String is_seqNo = ""; // 과세번호(일련번호)(6 byte)
String is_owner = ""; // 납세자 (60 byte)
String is_resident = "";// 납세자주민번호 (13 byte)
String is_carNo = ""; // 과세물건(차량번호) (260 byte)
String is_szaccNm = "과태료수입";// 회계과목명 (50 byte)
String is_szsemokNm = "혼잡통행료과태료";// 세목명 (50 byte)
String is_szsemokNm1 = "혼잡통행료과태료";// 세목명1 (50 byte)
String is_bAmt = ""; // 세목1_납기내 (11 byte)
String is_aAmt = ""; // 세목1_납기후 (11 byte)
String is_semokNm2 = ""; // 세목명2 (50 byte)
String is_semok2 = "00000000000"; // 세목2_납기내 (11 byte)
String address = "서울특별시 혼잡통행료징수 조례 제11조";// 부과근거 (200 byte)
String is_szVal1 = "";// 부과내역1 (12 byte)
String is_szVal2 = "";// 부과내역1 (80 byte)
String is_szVal3 = "";// 부과내역1 (80 byte)
String is_szVal4 = "";// 부과내역1 (200 byte)
String is_bank = "";// 은행코드 (6 byte)
String is_payDate = "";// 수납일자 (8 byte)
String is_damdang = param.getDamdang();// 담당자 (20 byte)
String is_dept = param.getDept();// 담당부서 (40 byte)
String is_telno = param.getTelno();// 부과담당자 전화번호 (20 byte)
String ls_a48 = "";
String ls_a53 = "3"; //수납구분
String ls_a44 = "SISUL";// 서버명(시스템명) (5 byte)
String virtualBank = "";//가상계좌번호
String lastDate = "";//납기내일자(8nyte)
String passDate = "";
is_damdang = byteLeftPad(is_damdang,20," ");
is_dept = byteLeftPad(is_dept,40," ");
is_telno = byteLeftPad(is_telno,20," ");
is_szVal1 = byteLeftPad(is_szVal1,12," ");
is_szVal2 = byteLeftPad(is_szVal2,80," ");
is_szVal3 = byteLeftPad(is_szVal3,80," ");
is_szVal4 = byteLeftPad(is_szVal4,200," ");
is_bank = byteLeftPad(is_bank,6," ");
is_payDate = byteLeftPad(is_payDate,8," ");
ls_a48 = byteLeftPad(ls_a48,14," ");
address = byteRightPad(address,200," ");
is_szaccNm = byteRightPad(is_szaccNm, 50, " ");
is_szsemokNm = byteLeftPad(is_szsemokNm, 50, " ");
is_szsemokNm1 = byteLeftPad(is_szsemokNm1, 50, " ");
is_semokNm2 = byteRightPad(is_semokNm2, 50, " ");
for(int i = 0; i<statList.size(); i++){
PenaltyParamVO sendDateList;
sendDateList = finePenaltyDao.findEtaxFileSendDate(statList.get(i));
passDate = statList.get(i).getYear()+statList.get(i).getMonth()+statList.get(i).getDay();
if(Integer.parseInt(passDate)>=20060101){
is_a6 = (String) sendDateList.getSendDate().subSequence(0, 6);
}else{
is_a6 = statList.get(i).getYear()+statList.get(i).getMonth();
}
is_owner = statList.get(i).getOwner();
is_resident = statList.get(i).getResidentNo();
is_carNo = statList.get(i).getCarNo();
is_seqNo = statList.get(i).getPenaltySeqno();
is_bAmt = statList.get(i).getLavyAmount();
is_aAmt = "";
virtualBank = statList.get(i).getVirtualBank();
lastDate = statList.get(i).getDeliveryDate();
is_seqNo = byteLeftPad(is_seqNo, 6, "0");
is_a9 = combyteSec(is_a4+is_a5+is_a6+is_a7+is_seqNo);
is_owner = byteRightPad(is_owner, 60, " ");
is_resident = byteRightPad(is_resident, 13, " ");
is_carNo = byteRightPad(is_carNo, 260, " ");
is_bAmt = byteLeftPad(is_bAmt, 11, "0");
is_aAmt = byteLeftPad(is_aAmt, 11, "0");
txt += is_a1+is_a2+is_a3+is_a4+is_a5+is_a6+is_a7+is_seqNo+is_a9+is_owner
+is_resident+is_carNo
+is_szaccNm+is_szsemokNm+is_szsemokNm1+
is_bAmt+is_aAmt+is_semokNm2+is_semok2+is_semok2
+is_semokNm2+is_semok2+is_semok2
+is_semokNm2
+is_semok2+is_semok2
+is_semokNm2
+is_semok2+is_semok2
+is_bAmt+is_aAmt
+lastDate+lastDate+address+is_szVal1+is_szVal2+is_szVal3+is_szVal4
+is_damdang+is_dept+is_telno+is_bank+is_payDate+ls_a44+virtualBank
+ls_a48+ls_a48+ls_a48+ls_a48+ls_a48+ls_a53+"\r\n";
statList.get(i).setSessionUserNm(HttpUtil.getEmpNm());
statList.get(i).setSysNoticeId("21");
finePenaltyDao.updateEtaxSendInfo02(statList.get(i));
finePenaltyDao.updateEtaxSendRentInfo02(statList.get(i));
finePenaltyDao.updateEtaxPenaltyDtlNotice2(statList.get(i));
}
result.setEtaxCon(txt);
}catch(RuntimeException e) {
logger.info("catch check");
e.printStackTrace();
}catch(Exception e){
logger.info("catch check");
e.printStackTrace();
}finally{
/*if(fw != null)
fw.close();
if(bf != null)
bf.close();*/
}
return result;
}
public String byteLeftPad(String var,int leng,String A) throws UnsupportedEncodingException{
byte[] buffers = var.getBytes("MS949");
String result = "";
result = StringUtils.leftPad(result,leng-buffers.length,A);
result = result+var;
return result;
}
@Override
public PenaltyParamVO findCreateDefETaxFile(PenaltyParamVO param) throws Exception {
PenaltyParamVO result = new PenaltyParamVO();
try{
//가상계좌 발급후 조회
List<PenaltyParamVO> statList = finePenaltyDao.findEtaxFileDefList(param);
for(PenaltyParamVO account : statList ){
account.setEtaxKbn("1");
//가상계좌 발송일자, 납부기한 넣어줘야 초기화 안됨
finePenaltyDao.updateEtaxVirtualaccount(account);
}
String txt = "";
String is_a1 = "000"; //시구코드(시도)(3 byte)
String is_a2 = "047"; //행정동코드(기관)(3 byte)
String is_a3 = "3"; //검비트1(1 byte)
String is_a4 = "32"; //회계코드(2 byte)
String is_a5 = "227213";//세목코드(6 byte)
String is_a6; //과세년월(6 byte)
String is_a7 = "1"; //과세번호(1 byte)
String is_a9 = ""; //검비트2(1 byte)
String is_seqNo = ""; // 과세번호(일련번호)(6 byte)
String is_owner = ""; // 납세자 (60 byte)
String is_resident = "";// 납세자주민번호 (13 byte)
String is_carNo = ""; // 과세물건(차량번호) (260 byte)
String is_szaccNm = "미납금수입";// 회계과목명 (50 byte)
String is_szsemokNm = "혼잡통행료미납금";// 세목명 (50 byte)
String is_szsemokNm1 = "혼잡통행료미납금";// 세목명1 (50 byte)
String is_bAmt = ""; // 세목1_납기내 (11 byte)
String is_aAmt = ""; // 세목1_납기후 (11 byte)
String is_semokNm2 = ""; // 세목명2 (50 byte)
String is_semok2 = "00000000000"; // 세목2_납기내 (11 byte)
String address = "서울특별시 혼잡통행료징수 조례 제11조";// 부과근거 (200 byte)
String is_szVal1 = "";// 부과내역1 (12 byte)
String is_szVal2 = "";// 부과내역1 (80 byte)
String is_szVal3 = "";// 부과내역1 (80 byte)
String is_szVal4 = "";// 부과내역1 (200 byte)
String is_bank = "";// 은행코드 (6 byte)
String is_payDate = "";// 수납일자 (8 byte)
String is_damdang = param.getDamdang();// 담당자 (20 byte)
String is_dept = param.getDept();// 담당부서 (40 byte)
String is_telno = param.getTelno();// 부과담당자 전화번호 (20 byte)
String ls_a48 = "";
String ls_a53 = "3"; //수납구분
String ls_a44 = "SISUL";// 서버명(시스템명) (5 byte)
String virtualBank = "";//가상계좌번호
String lastDate = "";//납기내일자(8nyte)
is_damdang = byteLeftPad(is_damdang,20," ");
is_dept = byteLeftPad(is_dept,40," ");
is_telno = byteLeftPad(is_telno,20," ");
is_szVal1 = byteLeftPad(is_szVal1,12," ");
is_szVal2 = byteLeftPad(is_szVal2,80," ");
is_szVal3 = byteLeftPad(is_szVal3,80," ");
is_szVal4 = byteLeftPad(is_szVal4,200," ");
is_bank = byteLeftPad(is_bank,6," ");
is_payDate = byteLeftPad(is_payDate,8," ");
ls_a48 = byteLeftPad(ls_a48,14," ");
address = byteRightPad(address,200," ");
is_szaccNm = byteRightPad(is_szaccNm, 50, " ");
is_szsemokNm = byteLeftPad(is_szsemokNm, 50, " ");
is_szsemokNm1 = byteLeftPad(is_szsemokNm1, 50, " ");
is_semokNm2 = byteRightPad(is_semokNm2, 50, " ");
for(int i = 0; i<statList.size(); i++){
is_a6 = statList.get(i).getSendDate().substring(0, 6);
is_owner = statList.get(i).getOwner();
is_resident = statList.get(i).getResidentNo();
is_carNo = statList.get(i).getCarNo();
is_seqNo = statList.get(i).getManageNo();
is_bAmt = statList.get(i).getLavyAmount();
is_aAmt = "";
virtualBank = statList.get(i).getVirtualBank();
lastDate = statList.get(i).getEndDate();
is_seqNo = byteLeftPad(is_seqNo, 6, "0");
is_a9 = combyteSec(is_a4+is_a5+is_a6+is_a7+is_seqNo);
is_owner = byteRightPad(is_owner, 60, " ");
is_resident = byteRightPad(is_resident, 13, " ");
is_carNo = byteRightPad(is_carNo, 260, " ");
is_bAmt = byteLeftPad(is_bAmt, 11, "0");
is_aAmt = byteLeftPad(is_aAmt, 11, "0");
txt += is_a1+is_a2+is_a3+is_a4+is_a5+is_a6+is_a7+is_seqNo+is_a9+is_owner
+is_resident+is_carNo
+is_szaccNm+is_szsemokNm+is_szsemokNm1+
is_bAmt+is_aAmt+is_semokNm2+is_semok2+is_semok2
+is_semokNm2+is_semok2+is_semok2
+is_semokNm2
+is_semok2+is_semok2
+is_semokNm2
+is_semok2+is_semok2
+is_bAmt+is_aAmt
+lastDate+lastDate+address+is_szVal1+is_szVal2+is_szVal3+is_szVal4
+is_damdang+is_dept+is_telno+is_bank+is_payDate+ls_a44+virtualBank
+ls_a48+ls_a48+ls_a48+ls_a48+ls_a48+ls_a53+"\r\n";
statList.get(i).setSessionUserNm(HttpUtil.getEmpNm());
statList.get(i).setSysNoticeId("04");
statList.get(i).setEtaxNum(is_a1+is_a2+is_a3+is_a4+is_a5+is_a6+is_a7+is_seqNo+is_a9);
finePenaltyDao.updateDefEtaxSendInfo(statList.get(i));
}
result.setEtaxCon(txt);
}catch(RuntimeException e) {
logger.info("catch check");
e.printStackTrace();
}catch(Exception e){
logger.info("catch check");
e.printStackTrace();
}finally{
}
return result;
}
public String byteRightPad(String var,int leng,String A) throws UnsupportedEncodingException{
byte[] buffers = var.getBytes("MS949");
String result = "";
result = StringUtils.rightPad(result,leng-buffers.length,A);
result = var+result;
return result;
}
public String combyteSec(String is_hap){
String li_sum_fit = "";
int li_sum = 0;
for (int k = 0;k< is_hap.length(); k++){
if(k%3 == 0){
li_sum_fit = (Integer.parseInt(is_hap.substring(k,k+1))*7)+"";
for(int j = 0; j<li_sum_fit.length();j++){
li_sum+=Integer.parseInt(li_sum_fit.substring(j,j+1));
}
}else if(k%3 == 1){
li_sum_fit = (Integer.parseInt(is_hap.substring(k,k+1))*1)+"";
for(int j = 0; j<li_sum_fit.length();j++){
li_sum+=Integer.parseInt(li_sum_fit.substring(j,j+1));
}
}else if(k%3 == 2){
li_sum_fit = (Integer.parseInt(is_hap.substring(k,k+1))*3)+"";
for(int j = 0; j<li_sum_fit.length();j++){
li_sum+=Integer.parseInt(li_sum_fit.substring(j,j+1));
}
}
}
int result = 10-(li_sum%10);
return (result%10)+"";
}
@Override
public void insertSendInfo(List<PenaltyParamVO> param) throws Exception {
for(PenaltyParamVO params : param){
params.setSessionUserNm(HttpUtil.getEmpNm());
if(!params.getLayoutNo().equals("33")){
finePenaltyDao.updateEtaxPenaltyDtl(params); //과태료
}else{
//시점발행일 경우 시점발행 flag를 넣어준다
finePenaltyDao.updateEtaxPenaltyDtlSendYn(params); //과태료
}
finePenaltyDao.createMobiPenaltyHistory(params); //과태료.히스토리
params.setCnt(finePenaltyDao.findSendInfoCheck(params).getCnt());
if(params.getCnt().equals("0")){
//insert
finePenaltyDao.createMobiSend(params);
}else{
//update
finePenaltyDao.updateEtaxSendInfo(params);
}
}
}
@Override
public void updateMobileFail(List<PenaltyParamVO> param) throws Exception {
for(PenaltyParamVO params : param ){
params.setSessionUserNm(HttpUtil.getEmpNm());
finePenaltyDao.updateMobileFail(params);
}
}
@Override
public void updateEtaxSendInfo02(PenaltyParamVO param) throws Exception {
finePenaltyDao.updateEtaxSendInfo02(param);
}
@Override
public List<PenaltyParamVO> findPenaltyEgreenRfList(PenaltyParamVO param) throws Exception {
List<PenaltyParamVO> result = finePenaltyDao.findPenaltyEgreenRfList(param);
return result;
}
@Override
public void updateEtaxPenaltyDtlNotice(PenaltyParamVO param) throws Exception {
param.setSessionUserNm(HttpUtil.getEmpNm());
param.setEgreenYn("0");
finePenaltyDao.updateEtaxPenaltyDtlNotice(param);
}
@Override
public PenaltyParamVO findCreateETaxSeFile(List<PenaltyParamVO> paramList) throws Exception {
PenaltyParamVO result = new PenaltyParamVO();
try{
Map<String, Object> statMap = findEtaxFileChargeInfo();
String txt = "";
String is_a1 = "000"; //시구코드(시도)(3 byte)
String is_a2 = "047"; //행정동코드(기관)(3 byte)
String is_a3 = "3"; //검비트1(1 byte)
String is_a4 = "34"; //회계코드(2 byte)
String is_a5 = "288001";//세목코드(6 byte)
String is_a6; //과세년월(6 byte)
String is_a7 = "2"; //과세번호(1 byte)
String is_a9 = ""; //검비트2(1 byte)
String is_seqNo = ""; // 과세번호(일련번호)(6 byte)
String is_owner = ""; // 납세자 (60 byte)
String is_resident = "";// 납세자주민번호 (13 byte)
String is_carNo = ""; // 과세물건(차량번호) (260 byte)
String is_szaccNm = "과태료수입";// 회계과목명 (50 byte)
String is_szsemokNm = "혼잡통행료과태료";// 세목명 (50 byte)
String is_szsemokNm1 = "혼잡통행료과태료";// 세목명1 (50 byte)
String is_bAmt = ""; // 세목1_납기내 (11 byte)
String is_aAmt = ""; // 세목1_납기후 (11 byte)
String is_semokNm2 = ""; // 세목명2 (50 byte)
String is_semok2 = "00000000000"; // 세목2_납기내 (11 byte)
String address = "서울특별시 혼잡통행료징수 조례 제11조";// 부과근거 (200 byte)
String is_szVal1 = "";// 부과내역1 (12 byte)
String is_szVal2 = "";// 부과내역1 (80 byte)
String is_szVal3 = "";// 부과내역1 (80 byte)
String is_szVal4 = "";// 부과내역1 (200 byte)
String is_bank = "";// 은행코드 (6 byte)
String is_payDate = "";// 수납일자 (8 byte)
String is_damdang = (String) statMap.get("damdang");// 담당자 (20 byte)
String is_dept = (String) statMap.get("dept");// 담당부서 (40 byte)
String is_telno = (String) statMap.get("telno");// 부과담당자 전화번호 (20 byte)
String ls_a48 = "";
String ls_a53 = "3"; //수납구분
String ls_a44 = "SISUL";// 서버명(시스템명) (5 byte)
String virtualBank = "";//가상계좌번호
String lastDate = "";//납기내일자(8nyte)
String lastDate2 = "";//납기내일자(8nyte)
is_damdang = byteLeftPad(is_damdang,20," ");
is_dept = byteLeftPad(is_dept,40," ");
is_telno = byteLeftPad(is_telno,20," ");
is_szVal1 = byteLeftPad(is_szVal1,12," ");
is_szVal2 = byteLeftPad(is_szVal2,80," ");
is_szVal3 = byteLeftPad(is_szVal3,80," ");
is_szVal4 = byteLeftPad(is_szVal4,200," ");
is_bank = byteLeftPad(is_bank,6," ");
is_payDate = byteLeftPad(is_payDate,8," ");
ls_a48 = byteLeftPad(ls_a48,14," ");
address = byteRightPad(address,200," ");
is_szaccNm = byteRightPad(is_szaccNm, 50, " ");
is_szsemokNm = byteLeftPad(is_szsemokNm, 50, " ");
is_szsemokNm1 = byteLeftPad(is_szsemokNm1, 50, " ");
is_semokNm2 = byteRightPad(is_semokNm2, 50, " ");
lastDate2 = byteRightPad(lastDate2, 8, " ");
for(PenaltyParamVO param: paramList){
PenaltyParamVO statList = finePenaltyDao.findEtaxFileSeVirtualaCount(param);
finePenaltyDao.updateVirtualaccount(statList);
PenaltyParamVO sendDateList = finePenaltyDao.findEtaxFileSendDate(param);
is_owner = statList.getOwner();
is_resident = statList.getResidentNo();
is_carNo = statList.getCarNo();
is_a6 = (String) sendDateList.getSendDate().subSequence(0, 6);
is_seqNo = statList.getPenaltySeqno();
is_bAmt = statList.getLavyAmount();
is_aAmt = "";
virtualBank = statList.getVirtualBank();
lastDate = statList.getDeliveryDate();
is_seqNo = byteLeftPad(is_seqNo, 6, "0");
is_a9 = combyteSec(is_a4+is_a5+is_a6+is_a7+is_seqNo);
is_owner = byteRightPad(is_owner, 60, " ");
is_resident = byteRightPad(is_resident, 13, " ");
is_carNo = byteRightPad(is_carNo, 260, " ");
is_bAmt = byteLeftPad(is_bAmt, 11, "0");
is_aAmt = byteLeftPad(is_aAmt, 11, "0");
txt += is_a1+is_a2+is_a3+is_a4+is_a5+is_a6+is_a7+is_seqNo+is_a9+is_owner
+is_resident+is_carNo
+is_szaccNm+is_szsemokNm+is_szsemokNm1+
is_bAmt+is_aAmt+is_semokNm2+is_semok2+is_semok2
+is_semokNm2+is_semok2+is_semok2
+is_semokNm2
+is_semok2+is_semok2
+is_semokNm2
+is_semok2+is_semok2
+is_bAmt+is_aAmt
+lastDate+lastDate2+address+is_szVal1+is_szVal2+is_szVal3+is_szVal4
+is_damdang+is_dept+is_telno+is_bank+is_payDate+ls_a44+virtualBank
+ls_a48+ls_a48+ls_a48+ls_a48+ls_a48+ls_a53+"\r\n";
statList.setSessionUserNm(HttpUtil.getEmpNm());
statList.setSysNoticeId("21");
result.setEtaxCon(txt);
updateEtaxSendInfo02(statList);
}
result.setEtaxCon(txt);
}catch(RuntimeException e) {
logger.info("catch check");
e.printStackTrace();
}catch(Exception e){
logger.info("catch check");
e.printStackTrace();
}finally{
}
return result;
}
}