ChargerAssessEvidenceDaoImpl.java 7.99 KB
package com.zteits.park.dao.impl;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xiaoleilu.hutool.date.DateUtil;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.apibase.constants.ErrorType;
import com.zteits.clouds.api.apibase.exception.BizException;
import com.zteits.clouds.api.dto.assess.param.ChargerAssessRequest;
import com.zteits.clouds.api.dto.park.param.ChargeInspectDetailRequest;
import com.zteits.park.dao.ChargerAssessEvidenceDao;
import com.zteits.park.domain.ChargerAssessServiceEvidence;
import com.zteits.park.domain.ChargerAssessServiceEvidenceExample;
import com.zteits.park.domain.ChargerAssessSignEvidence;
import com.zteits.park.domain.ChargerAssessSignEvidenceExample;
import com.zteits.park.domain.ChargerAssessSignEvidenceExample.Criteria;
import com.zteits.park.mapper.ChargerAssessServiceEvidenceMapper;
import com.zteits.park.mapper.ChargerAssessSignEvidenceMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

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

@Component
public class ChargerAssessEvidenceDaoImpl implements  ChargerAssessEvidenceDao {
    @Autowired
    private ChargerAssessSignEvidenceMapper chargerAssessSignEvidenceMapper;
    @Autowired
    private ChargerAssessServiceEvidenceMapper chargerAssessServiceEvidenceMapper;


	@Override
	public int saveChargerAssessSignEvidence(ChargerAssessSignEvidence chargerAssessSignEvidence) {
		if(chargerAssessSignEvidence.getCreateTime()==null){
			chargerAssessSignEvidence.setCreateTime(new Date());
		}
		return chargerAssessSignEvidenceMapper.insertSelective(chargerAssessSignEvidence);
	}

    @Override
    public int saveChargerAssessServiceEvidence(ChargerAssessServiceEvidence chargerAssessServiceEvidence) {
        if(chargerAssessServiceEvidence.getCreateTime()==null){
            chargerAssessServiceEvidence.setCreateTime(new Date());
        }
        return chargerAssessServiceEvidenceMapper.insertSelective(chargerAssessServiceEvidence);
    }


	@Override
	public int deleteChargerAssessSignEvidence(ChargerAssessSignEvidence deleteEvidence) {
		ChargerAssessSignEvidenceExample example = new ChargerAssessSignEvidenceExample();
		Criteria sql = example.createCriteria();
        sql.andOrgIdEqualTo(deleteEvidence.getOrgId());
        sql.andChargerCodeEqualTo(deleteEvidence.getChargerCode());
        sql.andSignOutTypeEqualTo(deleteEvidence.getSignOutType());
        sql.andDutyDayEqualTo(deleteEvidence.getDutyDay());
        deleteEvidence.setModifyTime(new Date());
        deleteEvidence.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value());
		return chargerAssessSignEvidenceMapper.updateByExampleSelective(deleteEvidence, example );
	}

    @Override
    public PageInfo<ChargerAssessSignEvidence> queryChargerAssessSignDetailForPage(ChargerAssessRequest request) {
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        ChargerAssessSignEvidenceExample example = new ChargerAssessSignEvidenceExample();
        Criteria sql = example.createCriteria();
        sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
        sql.andOrgIdEqualTo(request.getOrgId());
        if(!StringUtils.isBlank(request.getChargerCode())){
            sql.andChargerCodeEqualTo(request.getChargerCode());
        }
        if(request.getPersonType() != null){
            sql.andPersonTypeEqualTo(request.getPersonType());
        }
        if(request.getBeginTime() != null){
            sql.andDutyDayGreaterThanOrEqualTo(request.getBeginTime());
        }
        if(request.getEndTime() != null){
            sql.andDutyDayLessThanOrEqualTo(request.getEndTime());
        }
        List<ChargerAssessSignEvidence> list = chargerAssessSignEvidenceMapper.selectByExample(example);
        if (CollectionUtils.isNotEmpty(list)) {
            return new PageInfo<ChargerAssessSignEvidence>(list);
        }
        example.setOrderByClause("id desc");
        return new PageInfo<ChargerAssessSignEvidence>(new ArrayList<ChargerAssessSignEvidence>());
    }

    @Override
    public PageInfo<ChargerAssessServiceEvidence> queryChargerAssessServiceDetailForPage(ChargerAssessRequest request) {
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        ChargerAssessServiceEvidenceExample example = new ChargerAssessServiceEvidenceExample();
        com.zteits.park.domain.ChargerAssessServiceEvidenceExample.Criteria sql = example.createCriteria();
        sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
        sql.andOrgIdEqualTo(request.getOrgId());
        if(!StringUtils.isBlank(request.getChargerCode())){
            sql.andChargerCodeEqualTo(request.getChargerCode());
        }
        if(request.getPersonType() != null){
            sql.andPersonTypeEqualTo(request.getPersonType());
        }
        if(request.getExamState() != null){
            sql.andExamStateEqualTo(request.getExamState());
        }
        if(request.getBeginTime() != null){
            sql.andDutyDayGreaterThanOrEqualTo(request.getBeginTime());
        }
        if(request.getEndTime() != null){
            sql.andDutyDayLessThanOrEqualTo(request.getEndTime());
        }
        List<ChargerAssessServiceEvidence> list = chargerAssessServiceEvidenceMapper.selectByExample(example);
        if (CollectionUtils.isNotEmpty(list)) {
            return new PageInfo<ChargerAssessServiceEvidence>(list);
        }
        example.setOrderByClause("id desc");
        return new PageInfo<ChargerAssessServiceEvidence>(new ArrayList<ChargerAssessServiceEvidence>());
    }

    @Override
    public List<ChargerAssessSignEvidence> querySignEvdenceBySignId(Long signId,String chargerCode,Date dutyDate) {
        ChargerAssessSignEvidenceExample example = new ChargerAssessSignEvidenceExample();
        Criteria sql = example.createCriteria();
        sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
        if(signId == null && chargerCode == null){
            throw new BizException(ErrorType.PARAMM_NULL,"收费员编号和签到ID都为空!");
        }
        if(signId != null){
            sql.andSignIdEqualTo(signId);
        }
        if(chargerCode != null){
            sql.andChargerCodeEqualTo(chargerCode);
        }
        if(dutyDate != null){
            sql.andDutyDayEqualTo(dutyDate);
        }
        List<ChargerAssessSignEvidence> list = chargerAssessSignEvidenceMapper.selectByExample(example);
        return list;
    }

    @Override
    public Integer deleteTodayChargerAssessSignOutEvidence(ChargerAssessSignEvidence deleteEvidence) {
        ChargerAssessSignEvidenceExample example = new ChargerAssessSignEvidenceExample();
        Criteria sql = example.createCriteria();
        sql.andChargerCodeEqualTo(deleteEvidence.getChargerCode());
        sql.andDutyDayEqualTo(DateUtil.beginOfDay(new Date()));
        sql.andSignOutTimeIsNotNull();

        deleteEvidence.setModifyTime(new Date());
        deleteEvidence.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value());
        deleteEvidence.setRemark("有新签退记录生成,删除今日历史数据");
        return chargerAssessSignEvidenceMapper.updateByExampleSelective(deleteEvidence, example );
    }

    /**
     * 获取根据 serviceDetailNo 获取详情列表
     *
     * @param request
     */
    @Override
    public List<ChargerAssessServiceEvidence> queryChargerAssessServiceDetailListByNo(ChargeInspectDetailRequest request) {

        ChargerAssessServiceEvidenceExample example = new ChargerAssessServiceEvidenceExample();
        example.createCriteria()
                .andServiceDetailNoEqualTo(request.getServiceDetailNo())
                .andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());

        return this.chargerAssessServiceEvidenceMapper.selectByExample(example);
    }


}