com.metasoft.claim.service.impl.report.BillingServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.metasoft.claim.service.impl.report.BillingServiceImpl.java

Source

/**
 * 
 */
package com.metasoft.claim.service.impl.report;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.metasoft.claim.bean.paging.BillingSearchResultVoPaging;
import com.metasoft.claim.bean.paging.ClaimPaging;
import com.metasoft.claim.bean.report.BillingExportResult;
import com.metasoft.claim.controller.vo.BillingSearchResultVo;
import com.metasoft.claim.dao.claim.ClaimDao;
import com.metasoft.claim.model.ClaimType;
import com.metasoft.claim.model.StdInsurance;
import com.metasoft.claim.model.TblClaimRecovery;
import com.metasoft.claim.service.impl.ModelBasedServiceImpl;
import com.metasoft.claim.service.report.BillingService;
import com.metasoft.claim.service.standard.InsuranceService;
import com.metasoft.claim.util.DateToolsUtil;

@Service("billingService")
public class BillingServiceImpl extends ModelBasedServiceImpl<ClaimDao, TblClaimRecovery, Integer>
        implements BillingService {

    @Autowired
    private InsuranceService insuranceService;

    @Autowired
    private ClaimDao claimDao;

    /**
     * 
     * @param entityClass
     */
    @Autowired
    public BillingServiceImpl(ClaimDao dao) {
        super(dao);
        this.claimDao = dao;
    }

    @Override
    public BillingSearchResultVoPaging searchPaging(String paramCloseDateStart, String paramCloseDateEnd,
            String paramPartyInsuranceId, String paramClaimTypeId, int start, int length) {
        Date closeDateStart = null;
        Date closeDateEnd = null;
        StdInsurance partyInsurance = null;
        ClaimType claimType = null;

        if (StringUtils.isNotBlank(paramCloseDateStart)) {
            closeDateStart = DateToolsUtil.convertStringToDate(paramCloseDateStart, DateToolsUtil.LOCALE_TH);
        }

        if (StringUtils.isNotBlank(paramCloseDateEnd)) {
            closeDateEnd = DateToolsUtil.convertStringToDate(paramCloseDateEnd, DateToolsUtil.LOCALE_TH);
        }

        if (StringUtils.isNotBlank(paramPartyInsuranceId)) {
            partyInsurance = insuranceService.findById(Integer.parseInt(paramPartyInsuranceId));
        }

        if (StringUtils.isNotBlank(paramClaimTypeId)) {
            claimType = ClaimType.getById(Integer.parseInt(paramClaimTypeId));
        }

        ClaimPaging paging = claimDao.searchBillingPaging(closeDateStart, closeDateEnd, partyInsurance, claimType,
                start, length);
        BillingSearchResultVoPaging voPaging = new BillingSearchResultVoPaging();

        voPaging.setDraw(paging.getDraw());
        voPaging.setRecordsFiltered(paging.getRecordsFiltered());
        voPaging.setRecordsTotal(paging.getRecordsTotal());
        voPaging.setData(new ArrayList<BillingSearchResultVo>());

        if (paging != null && paging.getData() != null) {
            for (TblClaimRecovery claim : paging.getData()) {
                BillingSearchResultVo vo = new BillingSearchResultVo();

                if (claim.getCloseDate() != null) {
                    vo.setCloseDate(DateToolsUtil.convertToString(claim.getCloseDate(), DateToolsUtil.LOCALE_TH));
                }
                vo.setJobNo(StringUtils.trimToEmpty(claim.getJobNo()));
                vo.setClaimNumber(StringUtils.trimToEmpty(claim.getClaimNumber()));
                vo.setLicenseNumber(StringUtils.trimToEmpty(claim.getLicenseNumber()));
                if (claim.getClaimType() != null) {
                    vo.setClaimType(claim.getClaimType().getName());
                }
                if (claim.getPartyInsurance() != null) {
                    vo.setInsuranceName(claim.getPartyInsurance().getName());
                }

                if (claim.getLicenseNumber() != null) {
                    vo.setLicenseNumber(claim.getLicenseNumber());
                }

                if (ClaimType.FAST_TRACK.equals(claim.getClaimType())) {
                    vo.setWage("300");
                } else if (ClaimType.KFK.equals(claim.getClaimType())) {
                    vo.setWage("300");
                } else if (ClaimType.REQUEST.equals(claim.getClaimType())) {
                    vo.setWage("300");
                }

                vo.setClaimId(claim.getId().toString());

                voPaging.getData().add(vo);
            }
        }

        return voPaging;
    }

    @Override
    public List<BillingExportResult> searchExport(Integer[] ids) {
        List<TblClaimRecovery> results = claimDao.findByIds(ids);

        List<BillingExportResult> vos = new ArrayList<BillingExportResult>();

        if (results != null) {
            int i = 1;
            for (TblClaimRecovery claim : results) {
                BillingExportResult export = new BillingExportResult();

                export.setNo(i++);
                if (claim.getCloseDate() != null) {
                    export.setCloseDate(claim.getCloseDate());
                }
                if (claim.getAccidentDate() != null) {
                    export.setAccidentDate(claim.getAccidentDate());
                }
                export.setJobNo(StringUtils.trimToEmpty(claim.getJobNo()));
                export.setClaimNumber(StringUtils.trimToEmpty(claim.getClaimNumber()));
                export.setLicenseNumber(StringUtils.trimToEmpty(claim.getLicenseNumber()));
                if (claim.getClaimType() != null) {
                    export.setClaimType(claim.getClaimType().getId());
                }
                if (claim.getPartyInsurance() != null) {
                    export.setInsuranceName(claim.getPartyInsurance().getName());
                }

                if (claim.getLicenseNumber() != null) {
                    export.setLicenseNumber(claim.getLicenseNumber());
                }

                if (ClaimType.FAST_TRACK.equals(claim.getClaimType())) {
                    export.setWage(300F);
                } else if (ClaimType.KFK.equals(claim.getClaimType())) {
                    export.setWage(300F);
                } else if (ClaimType.REQUEST.equals(claim.getClaimType())) {
                    export.setWage(300F);
                } else {
                    export.setWage(0F);
                }
                export.setClaimAmount(claim.getClaimAmount());

                if (claim.getReceiveMoneyType() != null) {
                    export.setReceiveMoneyType(claim.getReceiveMoneyType().getName());
                }
                vos.add(export);
            }
        }

        return vos;
    }

}