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 selectByExample(ChargerAssessRuleExample example) { return chargerAssessRuleMapper.selectByExample(example); } @Override public ChargerAssessRule queryByPrimaryKey(Long id) { return chargerAssessRuleMapper.selectByPrimaryKey(id); } @Override public List 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 list = chargerAssessRuleMapper.selectByExample(example); return list; } @Override public int batchDeleteChargerAssessRuleByPrimaryKey(List 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 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 list = chargerAssessRuleMapper.selectByExample(example); if (CollectionUtils.isNotEmpty(list)) { return new PageInfo(list); } return new PageInfo(new ArrayList()); } @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 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); } }