ChargerAssessRuleDaoImpl.java 5.51 KB
package com.zteits.park.dao.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.zteits.park.constant.AssessNoConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.dto.park.param.ChargerAssessRuleRequest;
import com.zteits.park.dao.ChargerAssessRuleDao;
import com.zteits.park.domain.ChargerAssessRule;
import com.zteits.park.domain.ChargerAssessRuleExample;
import com.zteits.park.domain.ChargerAssessRuleExample.Criteria;
import com.zteits.park.mapper.ChargerAssessRuleMapper;

@Component
public class ChargerAssessRuleDaoImpl implements  ChargerAssessRuleDao {
    @Autowired
    private ChargerAssessRuleMapper chargerAssessRuleMapper;

    @Override
    public int saveChargerAssessRule(ChargerAssessRule chargerAssessRule) {
        if(chargerAssessRule.getCreateTime()==null){
            chargerAssessRule.setCreateTime(new Date());
        }
        String ruleNo = this.queryNextRuleNoByOrgId(chargerAssessRule.getOrgId());
        chargerAssessRule.setRuleNo(ruleNo);
        return chargerAssessRuleMapper.insertSelective(chargerAssessRule);
    }

    @Override
    public int updateByExampleSelective(ChargerAssessRule record, ChargerAssessRuleExample example) {
        return chargerAssessRuleMapper.updateByExampleSelective(record,example);
    }

    @Override
    public int updateByPrimaryKeySelective(ChargerAssessRule record) {
        return chargerAssessRuleMapper.updateByPrimaryKeySelective(record);
    }

    @Override
    public List<ChargerAssessRule> selectByExample(ChargerAssessRuleExample example) {
        return chargerAssessRuleMapper.selectByExample(example);
    }

    @Override
    public ChargerAssessRule queryByPrimaryKey(Long id) {
        return chargerAssessRuleMapper.selectByPrimaryKey(id);
    }

    @Override
    public List<ChargerAssessRule> queryChargerAssessRule(ChargerAssessRuleRequest request) {
    	PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        ChargerAssessRuleExample example = new ChargerAssessRuleExample();
        Criteria sql = example.createCriteria();
        sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
        sql.andOrgIdEqualTo(request.getOrgId());
        if(!StringUtils.isBlank(request.getTargetNo())){
        	sql.andTargetNoEqualTo(request.getTargetNo());
        }
        if(request.getPersonType() != null){
        	sql.andPersonTypeEqualTo(request.getPersonType());
        }
		List<ChargerAssessRule> list = chargerAssessRuleMapper.selectByExample(example);
        return list;
    }

    @Override
    public int batchDeleteChargerAssessRuleByPrimaryKey(List<Long> ids, String opId, String opName) {
        ChargerAssessRule record = new ChargerAssessRule();
        record.setModifyEmpId(opId);
        record.setModifyEmpName(opName);
        record.setModifyTime(new Date());
        record.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value());
        ChargerAssessRuleExample example = new ChargerAssessRuleExample();
        example.createCriteria().andIdIn(ids);
        return chargerAssessRuleMapper.updateByExampleSelective(record,example);
    }

    @Override
    public PageInfo<ChargerAssessRule> queryChargerAssessRuleForPage(ChargerAssessRuleRequest request) {
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        ChargerAssessRuleExample example = new ChargerAssessRuleExample();
        Criteria sql = example.createCriteria();
        sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
        sql.andOrgIdEqualTo(request.getOrgId());
        if(!StringUtils.isBlank(request.getTargetNo())){
        	sql.andTargetNoEqualTo(request.getTargetNo());
        }
        if(!StringUtils.isBlank(request.getUnit())){
        	sql.andUnitEqualTo(request.getUnit());
        }
        if(request.getPersonType() != null){
        	sql.andPersonTypeEqualTo(request.getPersonType());
        }
        if(request.getRuleType() != null){
            sql.andRuleTypeEqualTo(request.getRuleType());
        }
        example.setOrderByClause("id asc");
		List<ChargerAssessRule> list = chargerAssessRuleMapper.selectByExample(example);
        if (CollectionUtils.isNotEmpty(list)) {
            return new PageInfo<ChargerAssessRule>(list);
        }
        return new PageInfo<ChargerAssessRule>(new ArrayList<ChargerAssessRule>());
    }

    @Override
    public String queryNextRuleNoByOrgId(Long orgId) {
        PageHelper.startPage(1, 1);
        ChargerAssessRuleExample example = new ChargerAssessRuleExample();
        Criteria sql = example.createCriteria();
        sql.andOrgIdEqualTo(orgId);
        example.setOrderByClause("id desc");
        List<ChargerAssessRule> list = chargerAssessRuleMapper.selectByExample(example);
        if (CollectionUtils.isEmpty(list) || StringUtils.isBlank(list.get(0).getRuleNo())) {
            return AssessNoConstant.RULE_NO;
        }
        String templateNo = list.get(0).getRuleNo();
        //切割字母+数字
        String []strs = templateNo.split("(?<=\\D)(?=\\d+\\b)");
        String letter = strs[0];
        String number = strs[1];
        Integer num = Integer.valueOf(number);
        return letter+(num+1);
    }
}