package com.zteits.park.dao.impl; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.xiaoleilu.hutool.util.CollectionUtil; import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.dto.clouds.param.QueryEmployeeDetailRequest; import com.zteits.clouds.api.dto.park.dto.EmployeeAbnormalStaTailDTO; import com.zteits.clouds.api.dto.park.dto.EmployeeStaticDateDTO; import com.zteits.clouds.api.dto.park.dto.EmployeeTailDTO; import com.zteits.park.domain.*; import com.zteits.park.mapper.TpEEmployeeAbnormalStaTailMapper; import com.zteits.park.mapper.smapper.TpEEmployeeTailSMapper; import org.springframework.beans.BeanUtils; 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.zteits.clouds.api.apibase.constants.DataStatusEnum; import com.zteits.clouds.api.dto.clouds.param.QueryEmployeeRequest; import com.zteits.park.dao.TpEEmployeeTailDao; import com.zteits.park.domain.TpEEmployeeTailExample.Criteria; import com.zteits.park.mapper.TpEEmployeeTailMapper; /** * Copyright: Copyright (c) 2019 zteits * * @Description: * @version: v1.0.0 * @author: xiejianpeng * @date: 2019/2/14 11 * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2019/2/14 xiejianpeng v1.0.0 创建 */ @Component public class TpEEmployeeTailDaoImpl implements TpEEmployeeTailDao { @Autowired private TpEEmployeeTailMapper tpEEmployeeTailMapper; @Autowired private TpEEmployeeTailSMapper tpEEmployeeTailSMapper; @Autowired private TpEEmployeeAbnormalStaTailMapper tpEEmployeeAbnormalStaTailMapper; @Override public int insertSelective(TpEEmployeeTail record) { int flg = tpEEmployeeTailMapper.insertSelective(record); return flg; } @Override public PageInfo querySignTailInfoBySignId(QueryEmployeeRequest request) { PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize()); TpEEmployeeTailExample example = new TpEEmployeeTailExample(); Criteria sql = example.createCriteria(); sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); sql.andSignRecordIdEqualTo(request.getSignRecordId()); if(request.getBeginTime() != null && request.getEndTime() != null ){ sql.andRecordTimeBetween(request.getBeginTime(), request.getEndTime()); } List list = tpEEmployeeTailMapper.selectByExample(example ); if (CollectionUtils.isNotEmpty(list)) { return new PageInfo(list); } return new PageInfo(new ArrayList()); } @Override public PageInfo querySignTailInfoByRangeTime(QueryEmployeeRequest request) { PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize()); TpEEmployeeTailExample example = new TpEEmployeeTailExample(); Criteria sql = example.createCriteria(); sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); sql.andChargerCodeEqualTo(request.getChargerCode()); sql.andRecordTimeBetween(request.getBeginTime(), request.getEndTime()); List list = tpEEmployeeTailMapper.selectByExample(example ); if (CollectionUtils.isNotEmpty(list)) { return new PageInfo<>(list); } return new PageInfo<>(new ArrayList<>()); } @Override public TpESignRecord querySignRecordPointInfoBySignId(Long signId) { TpESignRecord record = tpEEmployeeTailSMapper.querySignRecordPointInfoBySignId(signId); if(null != record && null != record.getPointAll() && record.getPointAll() != 0 ){ BigDecimal pointAll = new BigDecimal(record.getPointAll()); BigDecimal r100 = new BigDecimal(record.getRadius100()*100); BigDecimal r200 = new BigDecimal(record.getRadius200()*100); BigDecimal r300 = new BigDecimal(record.getRadius300()*100); BigDecimal r400 = new BigDecimal(record.getRadius400()*100); BigDecimal r500 = new BigDecimal(record.getRadius500()*100); BigDecimal r600 = new BigDecimal(record.getRadius600()*100); record.setRadius100(r100.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); record.setRadius200(r200.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); record.setRadius300(r300.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); record.setRadius400(r400.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); record.setRadius500(r500.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); record.setRadius600(r600.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); }else{ record = new TpESignRecord(); record.setId(signId); record.setPointAll(0); record.setRadius100(0.00); record.setRadius200(0.00); record.setRadius300(0.00); record.setRadius400(0.00); record.setRadius500(0.00); record.setRadius600(0.00); } return record; } @Override public TpESignRecordDetail querySignDetailRecordPointInfoBySignId(Long signDetailId) { TpESignRecordDetail record = tpEEmployeeTailSMapper.querySignRecordPointInfoBySignDetailId(signDetailId); if(null != record && null != record.getPointAll() && record.getPointAll() != 0 ){ BigDecimal pointAll = new BigDecimal(record.getPointAll()); BigDecimal r100 = new BigDecimal(record.getRadius100()*100); BigDecimal r200 = new BigDecimal(record.getRadius200()*100); BigDecimal r300 = new BigDecimal(record.getRadius300()*100); BigDecimal r400 = new BigDecimal(record.getRadius400()*100); BigDecimal r500 = new BigDecimal(record.getRadius500()*100); BigDecimal r600 = new BigDecimal(record.getRadius600()*100); record.setRadius100(r100.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); record.setRadius200(r200.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); record.setRadius300(r300.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); record.setRadius400(r400.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); record.setRadius500(r500.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); record.setRadius600(r600.divide(pointAll,2, RoundingMode.HALF_UP).doubleValue()); }else{ record = new TpESignRecordDetail(); record.setId(signDetailId); record.setPointAll(0); record.setRadius100(0.00); record.setRadius200(0.00); record.setRadius300(0.00); record.setRadius400(0.00); record.setRadius500(0.00); record.setRadius600(0.00); } return record; } /** * 统计收费员点位异常数据 * @param request * @return */ @Override public List getEmployeeTail(QueryEmployeeDetailRequest request) { List result = new ArrayList<>(); TpEEmployeeTailExample example = new TpEEmployeeTailExample(); Criteria sql = example.createCriteria(); sql.andDataStateEqualTo(DataStatusEnum.DATA_STATUS_VALID.value()); sql.andChargerCodeEqualTo(request.getChargerCode()); sql.andRecordTimeBetween(request.getBeginTime(), request.getEndTime()); List list = tpEEmployeeTailMapper.selectByExample(example ); if (CollectionUtil.isNotEmpty(list)) { for (TpEEmployeeTail i : list) { EmployeeTailDTO dto = new EmployeeTailDTO(); BeanUtils.copyProperties(i, dto); result.add(dto); } } return result; } /** * 插入到收费员点位统计数据表中 * @param tailDto */ @Override public void insertEmployeeAbnormalStaTail(EmployeeAbnormalStaTailDTO tailDto) { TpEEmployeeAbnormalStaTail tail = new TpEEmployeeAbnormalStaTail(); tail.setStaticDate(tailDto.getStaticDate()); tail.setChargerCode(tailDto.getChargerCode()); tail.setChargerName(tailDto.getChargerName()); tail.setEarliestTime(tailDto.getEarliestTime()); tail.setThelatestTime(tailDto.getThelatestTime()); tail.setTotalPoints(tailDto.getTotalPoints()); tail.setAbnormalTimes(tailDto.getAbnormalTimes()); tail.setDataState(1); tail.setCreateTime(new Date()); tpEEmployeeAbnormalStaTailMapper.insert(tail); } /** * 按照时间分组,dat作为入参的统计时间 * @param request * @return */ @Override public List getEmployeeTailDateList(QueryEmployeeDetailRequest request) { List list = tpEEmployeeTailSMapper.getEmployeeTailDateList(request ); return list; } }