Example #1
0
  // payment re-process
  @RequestMapping(value = "/bsar/payment/reprocess", method = RequestMethod.POST)
  public @ResponseBody MessageParam pymReprocess(
      @RequestParam("lnkgPymSeqNo") String lnkgPymSeqNo) {

    int updatedRowCnt = pymProcessService.pymReprocess(lnkgPymSeqNo);

    if (updatedRowCnt == 1) {
      return new MessageParam(ResultCode.SUCCESS, "Successfully request paymemt reprocess");
    } else {
      return new MessageParam(ResultCode.SUCCESS, "Aready,");
    }
  }
  @Override
  public String autoHotBillPymProcess(String hbSeqNo, double billAcntBalance, OtimeVO otimeVO)
      throws SQLException {

    // make payment structure
    String lnkgPymSclsCd = "206000";
    String zeroAmt = "0.00";
    RecpDataCmd recpDataCmd = new RecpDataCmd();
    recpDataCmd.setHbSeqNo(hbSeqNo);
    recpDataCmd.setEventCode(lnkgPymSclsCd); // payment of hotbill (common-code :: LnkgPymSclsCd)

    ArLnkgPymMgMtVO arLnkgPymMgMtVO = this.pymProcessService.getMgMtData(recpDataCmd);

    otimeVO.setBillAcntCustNm(arLnkgPymMgMtVO.getBillAcntCustNm()); // 청구계정고객명
    otimeVO.setBillAcntPymSsn(arLnkgPymMgMtVO.getBillAcntPymSsn()); // 청구계정납부SSN

    // otimeVO.set
    otimeVO.setPymLvlCd("2");
    otimeVO.setCsEvntCd(lnkgPymSclsCd);
    otimeVO.setRcpmnyDt(CmnDateUtils.addDate(0));
    otimeVO.setHbSeqNo(hbSeqNo); // 핫빌누적번호
    otimeVO.setLnkgPymLclsCd(lnkgPymSclsCd.substring(0, 2));
    otimeVO.setLnkgPymMclsCd(lnkgPymSclsCd.substring(0, 4));
    otimeVO.setLnkgPymSclsCd(lnkgPymSclsCd);

    otimeVO.setGrtmnRfndAmt(zeroAmt);
    otimeVO.setCustRfndAmt(zeroAmt);
    otimeVO.setCustPymAmt(zeroAmt);
    otimeVO.setCashPymAmt(zeroAmt);
    otimeVO.setGrtmnPymAmt(zeroAmt);
    otimeVO.setCashRfndAmt(zeroAmt);
    otimeVO.setInsRflctAmt(zeroAmt);

    List<PaymentsVO> paymentsVOs = pymProcessService.getBillCycleParamCrte(recpDataCmd);

    Map<String, String> sumAmtMap = this.getLnkgPymTrgtSumAmts(paymentsVOs);
    otimeVO.setPymTrgtAmt(sumAmtMap.get("pymTrgtAmtSum"));
    otimeVO.setAddvTxAmt(sumAmtMap.get("addvTxAmtSum"));
    otimeVO.setSplyAmt(sumAmtMap.get("splyAmtSum"));

    //	    try{
    //	    ObjectMapper om1 = new ObjectMapper();
    //		String temp1 = om1.defaultPrettyPrintingWriter().writeValueAsString(paymentsVOs);
    //		System.out.println("old paymentsVOsstructure::"+temp1);
    //		} catch (Exception e) {
    //			System.err.println(e.toString());
    //		}

    for (PaymentsVO eachPayment : paymentsVOs) {

      List<ArLnkgPymTrgtVO> newTrgtList =
          setImdtPymYnAndRshtItemCd(eachPayment.getArLnkgPymEntr().getArLnkgPymTrgt());
      eachPayment.getArLnkgPymEntr().setArLnkgPymTrgt(newTrgtList);
    }

    /*	    List<PaymentsVO> new_payment_list = new ArrayList<PaymentsVO>();

      for (PaymentsVO each_payment : paymentsVOs) {

      	PaymentsVO newPaymentsVO = new PaymentsVO();

      	ArLnkgPymEntrVO arLnkgPymEntrVO = each_payment.getArLnkgPymEntr();


      	List<ArLnkgPymTrgtVO> newArLnkgPymTrgtVOs = new ArrayList<ArLnkgPymTrgtVO>();
      	List<ArLnkgPymTrgtVO> arLnkgPymTrgtVOs = each_payment.getArLnkgPymEntr().getArLnkgPymTrgt();

      	for(ArLnkgPymTrgtVO arLnkgPymTrgtVO : arLnkgPymTrgtVOs) {
    	arLnkgPymTrgtVO.setImdtPymYn("0");										// 익월청구로 세팅
    	arLnkgPymTrgtVO.setRshtItemCd("2" + arLnkgPymTrgtVO.getBlItemMclsCd());	// 영수증항목 하드코딩(청구중분류만 있으므로)

    	newArLnkgPymTrgtVOs.add(arLnkgPymTrgtVO);
    }

      	arLnkgPymEntrVO.getArLnkgPymTrgt().clear();
      	arLnkgPymEntrVO.setArLnkgPymTrgt(newArLnkgPymTrgtVOs);


      	newPaymentsVO.setArLnkgPymEntr(arLnkgPymEntrVO);

      	new_payment_list.add(newPaymentsVO);
      }*/

    otimeVO.setPayments(paymentsVOs);

    //	    try{
    //	    ObjectMapper om2 = new ObjectMapper();
    //		String temp2 = om2.defaultPrettyPrintingWriter().writeValueAsString(paymentsVOs);
    //		System.out.println("new paymentsVOsstructure::"+temp2);
    //		} catch (Exception e) {
    //			System.err.println(e.toString());
    //		}

    ArLnkgPymMgmtMemoVO arLnkgPymMgmtMemoVO = new ArLnkgPymMgmtMemoVO();
    arLnkgPymMgmtMemoVO.setUserMemoCntnt(
        "Auto HotBill using bill account balance("
            + billAcntBalance
            + ") for threshold revocation.");

    otimeVO.setArLnkgPymMgmtMemo(arLnkgPymMgmtMemoVO);

    // 익월청구이므로 납부방법별 수납금액은 없으므로 []로 넘김. null로 넘기면 null pointer exception 발생 주의
    otimeVO.setArLnkgPymDetl(new ArrayList<ArLnkgPymDetlVO>());

    Map<String, Object> pymResMap = pymProcessService.insertGeneralPymData(otimeVO);

    pymProcessService.updateArLnkgPymMgmt((String) pymResMap.get("recpNo"));

    return (String) pymResMap.get("recpNo");
  }