TpEEmployeeChargeDaoImpl.java 8.92 KB
package com.zteits.park.dao.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

import com.zteits.clouds.api.dto.park.dto.TpEEmployeeChargeDTO;
import com.zteits.clouds.api.dto.park.param.dutyroster.DutyRosterChargerForUpdateQueryReq;
import com.zteits.clouds.api.dto.park.param.parksource.QueryParkSourceByOrgIdsRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import org.apache.commons.collections4.CollectionUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xiaoleilu.hutool.util.CollectionUtil;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.dto.clouds.param.QueryEmployeeRequest;
import com.zteits.clouds.api.dto.park.dto.parksource.ParkSouceEmployeeStaDTO;
import com.zteits.clouds.api.dto.park.param.dutyroster.DutyRosterChargerQueryReq;
import com.zteits.clouds.api.dto.park.param.parksource.QueryParkSourceRequest;
import com.zteits.park.dao.TpEEmployeeChargeDao;
import com.zteits.park.domain.TpEEmployeeCharge;
import com.zteits.park.domain.TpEEmployeeChargeExample;
import com.zteits.park.mapper.TpEEmployeeChargeMapper;
import com.zteits.park.mapper.smapper.TpEEmployeeChargeSMapper;

/**
 * 
 * Copyright: Copyright (c) 2017  zteits
 *
 * @ClassName: TpEEmployeeChargeDaoImpl.java
 * @Description:
 * @version: v1.0.0
 * @author: wangfei
 * @date: 2017年9月17日   下午12:08:30
 * Modification History:
 * Date         Author          Version      Description
 * ---------------------------------------------------------*
 * 2017年9月17日      wangfei          v1.0.0          创建
 */
@Component
public class TpEEmployeeChargeDaoImpl implements TpEEmployeeChargeDao {
	@Autowired
	private TpEEmployeeChargeSMapper tpEEmployeeChargeSMapper;
    @Autowired
    private TpEEmployeeChargeMapper tpEEmployeeChargeMapper;

	@Override
	public TpEEmployeeCharge queryChargerByChargerCode(String chargerCode) {
		TpEEmployeeChargeExample example = new TpEEmployeeChargeExample();
		example.createCriteria().andChargerCodeEqualTo(chargerCode)
		.andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
		List<TpEEmployeeCharge> eEmployeeCharges = tpEEmployeeChargeMapper.selectByExample(example );
		if(!CollectionUtils.isEmpty(eEmployeeCharges)){
			return eEmployeeCharges.get(0);
		}
		return null;
	}
	@Override
	public TpEEmployeeCharge queryEmployeeByCodeAndPwd(String chargerCode, String chargerPwd) {
		TpEEmployeeChargeExample example = new TpEEmployeeChargeExample();
		example.createCriteria().andChargerCodeEqualTo(chargerCode)
		.andChargerPwdEqualTo(chargerPwd)
		.andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
		List<TpEEmployeeCharge> eEmployeeCharges = tpEEmployeeChargeMapper.selectByExample(example );
		if(!CollectionUtils.isEmpty(eEmployeeCharges)){
			return eEmployeeCharges.get(0);
		}
		return null;
	}

	@Override
	public Boolean updateByChargerCode(TpEEmployeeCharge tpEEmployeeCharge) {
		if(tpEEmployeeCharge.getModifyTime()==null){
			tpEEmployeeCharge.setModifyTime(new Date());
		}
		return tpEEmployeeChargeSMapper.updateByChargerCode(tpEEmployeeCharge) > 0;
	}

	@Override
	public Integer insertSelective(TpEEmployeeCharge record) {
		record.setCreateTime(new Date());
		record.setModifyTime(new Date());
		return tpEEmployeeChargeMapper.insertSelective(record );
	}
	
	@Override
	public PageInfo<TpEEmployeeChargeDTO> queryEmployeesForPage(QueryEmployeeRequest request) {
		PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        List<TpEEmployeeChargeDTO> list = tpEEmployeeChargeSMapper.queryEmployeesForPage(request);
        if (CollectionUtils.isNotEmpty(list)) {
            return new PageInfo<TpEEmployeeChargeDTO>(list);
        }
        return new PageInfo<TpEEmployeeChargeDTO>(new ArrayList<TpEEmployeeChargeDTO>());
	}
	@Override
	public TpEEmployeeCharge getEmployeeById(Long id) {
		return tpEEmployeeChargeMapper.selectByPrimaryKey(id);
	}
	@Override
	public int updateByPrimaryKeySelective(TpEEmployeeCharge record) {
		return tpEEmployeeChargeMapper.updateByPrimaryKeySelective(record);
	}
	@Override
	public Boolean isExistsForChargerCode(String chargerCode) {
		TpEEmployeeChargeExample example = new TpEEmployeeChargeExample();
		example.createCriteria().andChargerCodeEqualTo(chargerCode);
		return tpEEmployeeChargeMapper.countByExample(example )>0;
	}
	@Override
	public String generateChargerCode(String areaCode) {
//		TpEEmployeeChargeExample example = new TpEEmployeeChargeExample();
//		example.createCriteria().andChargerCodeLike(areaCode+"%");
//		long count = tpEEmployeeChargeMapper.countByExample(example );
	    //改造为查询最大的编号(后四位)
	    Integer count = tpEEmployeeChargeSMapper.queryTheMaxChargerCodeNum(areaCode);
	    count++;
		//默认为areaCode+4位数字,不够补零
		String countStr = new Long(count).toString();
		if(countStr.length()<4){
			return areaCode+String.format("%04d", count);  
		}
		return areaCode+countStr;
	}
	@Override
	public boolean deleteChargerByIds(List<Long> Ids, Long opId) {
		TpEEmployeeChargeExample example = new TpEEmployeeChargeExample();
		example.createCriteria().andIdIn(Ids);
		TpEEmployeeCharge record = new TpEEmployeeCharge();
		record.setDataStatus(DataStatusEnum.DATA_STATUS_NO_VALID.value());
		record.setModifyOp(opId);
		record.setModifyTime(new Date());
		tpEEmployeeChargeMapper.updateByExampleSelective(record, example);
		return true;
	}

	@Override
	public List<TpEEmployeeCharge> queryChargerByPlNo(List<String> plNos) {

		TpEEmployeeChargeExample example = new TpEEmployeeChargeExample();
		example.createCriteria().andPlNoIn(plNos)
			.andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()).andChargerTypeEqualTo("0");

		return tpEEmployeeChargeMapper.selectByExample(example );
	}
	
	@Override
	public List<TpEEmployeeCharge> queryChargerByChargerCodes(List<String> chargerCodes) {
	    if(CollectionUtils.isEmpty(chargerCodes)){
	        return new ArrayList<>();
	    }
	    TpEEmployeeChargeExample example = new TpEEmployeeChargeExample();
	    example.createCriteria().andChargerCodeIn(chargerCodes)
	    .andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
	    
	    return tpEEmployeeChargeMapper.selectByExample(example);
	}

	@Override
    public Integer queryEmployeeNumByPlNo(QueryEmployeeRequest request) {
        return tpEEmployeeChargeSMapper.queryEmployeeNumByPlNo(request);
    }

	@Override
	public PageInfo<ParkSouceEmployeeStaDTO> queryParkSourceEmployeeSta(QueryParkSourceRequest request) {
		//设置分页信息
		PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
		List<ParkSouceEmployeeStaDTO> dtos = tpEEmployeeChargeSMapper.queryParkSourceEmployeeSta(request);
		return new PageInfo<>(dtos);
	}

	@Override
	public Map<String, ParkSouceEmployeeStaDTO> queryParkSourceEmployeeStaForMap(QueryParkSourceRequest request) {
		List<ParkSouceEmployeeStaDTO> list = tpEEmployeeChargeSMapper.queryParkSourceEmployeeSta(request);
		if(CollectionUtil.isEmpty(list)){
			Map<String, ParkSouceEmployeeStaDTO> map=new HashMap<>();
			return map;
		}else{
			return list.stream().collect(Collectors.toMap(ParkSouceEmployeeStaDTO::getPlNo, Function.identity()));
		}
	}


    @Override
    public List<TpEEmployeeCharge> queryNotDutyChargerList(DutyRosterChargerQueryReq request) {
        return tpEEmployeeChargeSMapper.queryNotDutyChargerList(request);
    }

	@Override
	public List<TpEEmployeeCharge> queryNotDutyAndThisPlanChargerList(DutyRosterChargerForUpdateQueryReq request) {
		return tpEEmployeeChargeSMapper.queryNotDutyAndThisPlanChargerList(request);
	}

	@Override
	public TpEEmployeeCharge queryChargerInfoById(Long id) {
		return tpEEmployeeChargeMapper.selectByPrimaryKey(id);
	}

	@Override
	public List<TpEEmployeeCharge> queryChargerInfoByIds(List<Long> ids) {

		TpEEmployeeChargeExample example = new TpEEmployeeChargeExample();
		example.createCriteria().andIdIn(ids)
			.andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
		return tpEEmployeeChargeMapper.selectByExample(example);
	}
	@Override
	public ParkSouceEmployeeStaDTO queryEmployeeStaByOrgIds(QueryParkSourceByOrgIdsRequest request) {
		return tpEEmployeeChargeSMapper.queryEmployeeStaByOrgIds(request);
	}

	@Override
	public List<TpEEmployeeCharge> queryOnlineEmployeeChargeList(QueryEmployeeRequest queryEmployeeRequest) {
		return tpEEmployeeChargeSMapper.queryOnlineEmployeeChargeList(queryEmployeeRequest);
	}

	@Override
	public List<TpEEmployeeCharge> queryChargerByOrgId(Long orgId) {
		TpEEmployeeChargeExample example = new TpEEmployeeChargeExample();
		example.createCriteria().andOrgIdEqualTo(orgId)
				.andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()).andChargerTypeEqualTo("0");
		return tpEEmployeeChargeMapper.selectByExample(example );
	}


}