DutyRosterBaseDaoImpl.java 6.86 KB
package com.zteits.park.dao.impl;

import java.util.List;

import org.apache.commons.collections4.CollectionUtils;
import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.dto.park.param.dutyroster.BerthRangeNoQueryByOrgIdReq;
import com.zteits.clouds.api.dto.park.param.dutyroster.DeleteParkForDutyRosterReq;
import com.zteits.clouds.api.dto.park.param.dutyroster.DutyRosteExchangeReq;
import com.zteits.clouds.api.dto.park.param.dutyroster.DutyRosterBaseQueryReq;
import com.zteits.park.dao.DutyRosterBaseDao;
import com.zteits.park.domain.DutyRosterBase;
import com.zteits.park.domain.DutyRosterBaseExample;
import com.zteits.park.domain.DutyRosterBaseExample.Criteria;
import com.zteits.park.mapper.DutyRosterBaseMapper;
import com.zteits.park.mapper.smapper.DutyRosterBaseSMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * Copyright: Copyright (c) 2018  zteits
 *
 * @ClassName: com.zteits.park.dao.impl
 * @Description:
 * @version: v1.0.0
 * @author: atao
 * @date: 2018/8/15   下午3:35
 * Modification History:
 * Date         Author          Version      Description
 * ---------------------------------------------------------*
 * 2018/8/15      atao          v1.0.0          创建
 */
@Component
public class DutyRosterBaseDaoImpl implements DutyRosterBaseDao {
    @Autowired
    private DutyRosterBaseMapper dutyRosterBaseMapper;

    @Autowired
    private DutyRosterBaseSMapper dutyRosterBaseSMapper;

    @Override
    public Integer saveDutyRosterBase(List<DutyRosterBase> dutyRosterBases) {

        int num = 0;
        if (CollectionUtils.isNotEmpty(dutyRosterBases)) {
            for (DutyRosterBase base : dutyRosterBases) {
                int i = dutyRosterBaseMapper.insertSelective(base);
                if (i > 0) {
                    num++;
                }
            }
        }

        return num;
    }

    @Override
    public List<DutyRosterBase> queryDutyRosterBase(DutyRosterBaseQueryReq req) {

        DutyRosterBaseExample example = new DutyRosterBaseExample();

        Criteria sql = example.createCriteria();
        sql.andOrgIdEqualTo(req.getOrgId());
        if (null != req.getPlanId()) {
            sql.andPlanIdEqualTo(req.getPlanId());
        }

        if (null != req.getDataState()) {
            sql.andDataStatusEqualTo(req.getDataState());
        } else {
            sql.andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
        }

        if (CollectionUtils.isNotEmpty(req.getChargeCodes())) {
            sql.andChargerCodeIn(req.getChargeCodes());
        }

        if (CollectionUtils.isNotEmpty(req.getPlNos())) {
            sql.andPlNoIn(req.getPlNos());
        }

        if (CollectionUtils.isNotEmpty(req.getWorkState())) {
            sql.andIsRestIn(req.getWorkState());
        }

        if (null != req.getDutyType()) {
            sql.andDutyTypeEqualTo(req.getDutyType());
        }

        //设置排序字段
        StringBuffer orderByCase = new StringBuffer("day_num,");

        //视图类型 10:收费员视图 20:停车场视图
        if (new Integer(10).equals(req.getViewType())) {
            orderByCase.append("charger_code,");
        }

        if (new Integer(20).equals(req.getViewType())) {
            orderByCase.append("pl_no,");
        }

        //删除最后一个 逗号','
        if (orderByCase.length() > 0) {
            orderByCase = orderByCase.deleteCharAt(orderByCase.length() - 1);
        }
        example.setOrderByClause(orderByCase.toString());
        return dutyRosterBaseMapper.selectByExample(example);
    }

    /**
     * 通过排班计划Id查询排班计划基础数据
     *
     * @return
     */
    @Override
    public List<DutyRosterBase> queryDutyRosterBaseByPlanId(Long planId) {
        DutyRosterBaseExample example = new DutyRosterBaseExample();

        Criteria sql = example.createCriteria();
        sql.andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value())
            .andPlanIdEqualTo(planId);
        example.setOrderByClause("day_num asc");

        return dutyRosterBaseMapper.selectByExample(example);
    }

    @Override
    public Integer deleteutyRosterBaseByPlanId(Long orgId, List<Long> PlanIds, Integer dutyType) {

        DutyRosterBaseExample example = new DutyRosterBaseExample();
        Criteria sql = example.createCriteria();
        sql.andPlanIdIn(PlanIds);
        sql.andOrgIdEqualTo(orgId);
        if (null != dutyType) {
            sql.andDutyTypeEqualTo(dutyType);
        }

        return dutyRosterBaseMapper.deleteByExample(example);

    }

    @Override
    public Integer deleteParkByPlanIdAndPlNosForRosterBase(DeleteParkForDutyRosterReq req) {

        DutyRosterBaseExample example = new DutyRosterBaseExample();
        Criteria sql = example.createCriteria();
        sql.andPlNoIn(req.getPlNos());
        sql.andPlanIdEqualTo(req.getPlanId());
        sql.andOrgIdEqualTo(req.getOrgId());
        if (null != req.getDutyType()) {
            sql.andDutyTypeEqualTo(req.getDutyType());
        }
        return dutyRosterBaseMapper.deleteByExample(example);
    }

    @Override
    public Integer queryHaveChargerNumForUpdatePlan(Long planId) {
        return dutyRosterBaseSMapper.queryHaveChargerNumForUpdatePlan(planId);
    }

    @Override
    public Integer deleteutyRosterBaseByChargerCodes(Long orgId, List<String> chargerCodes, Integer dutyType) {

        DutyRosterBaseExample example = new DutyRosterBaseExample();
        Criteria sql = example.createCriteria();
        sql.andChargerCodeIn(chargerCodes);
        sql.andOrgIdEqualTo(orgId);

        return dutyRosterBaseMapper.deleteByExample(example);
    }

    @Override
    public Integer moveTempToBase(Long orgId, Long planId, Integer dutyType) {

        return dutyRosterBaseSMapper.moveTempToBase(orgId, planId, dutyType);
    }

    @Override
    public List<String> queryHasDutyRosterParkLot(Long orgId, List<String> plNos, Integer dutyType) {

        return dutyRosterBaseSMapper.queryHasDutyRosterParkLot(orgId, plNos, dutyType);
    }

    @Override
    public List<String> queryChargersByPlNos(Long orgId, List<String> plNos, Integer dutyType) {

        return dutyRosterBaseSMapper.queryChargersByPlNos(orgId, plNos,dutyType);
    }

    @Override
    public Integer updateDutyRosterBaseByChargerCode(String chargerCode, DutyRosterBase base) {

        DutyRosterBaseExample example = new DutyRosterBaseExample();
        example.createCriteria().andChargerCodeEqualTo(chargerCode);

        return dutyRosterBaseMapper.updateByExampleSelective(base, example);

    }

    @Override
    public Integer exchangeDutyRoster(DutyRosteExchangeReq req) {

        return dutyRosterBaseSMapper.exchangeDutyRoster(req);
    }

    @Override
    public List<String> queryBerthRangeNoByOrgId(BerthRangeNoQueryByOrgIdReq req) {
        return dutyRosterBaseSMapper.queryBerthRangeNoByOrgId(req);
    }

}