package com.zteits.oa.report.biz; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.xiaoleilu.hutool.date.DateUtil; import com.xiaoleilu.hutool.util.CollectionUtil; import com.zteits.oa.api.base.bean.BizResult; import com.zteits.oa.api.dto.asradaily.AsraDailyDTO; import com.zteits.oa.api.dto.asradaily.AsraDailyOpNumForCurrentDayDTO; import com.zteits.oa.api.dto.asradaily.AsraProjectAndPersonNumDTO; import com.zteits.oa.api.dto.asradaily.QueryAsraDailyAllDetailForListReqDTO; import com.zteits.oa.api.dto.asradaily.QueryAsraDailyAllForListReqDTO; import com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq; import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq; import com.zteits.oa.api.service.report.query.AsraDailyQueryService; import com.zteits.oa.report.dao.AsraDailyDao; import com.zteits.oa.report.domain.AsraDaily; import com.zteits.oa.report.domain.sdo.AsraDailyDO; import com.zteits.oa.report.domain.sdo.AsraDailyOpNumForCurrentDayDO; /** * Copyright: Copyright (c) 2018 zteits * * @Description: * @version: v1.0.0 * @author: xiejianpeng * @date: 2018/7/31 15 * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2018/7/31 xiejianpeng v1.0.0 创建 */ @Service public class AsraDailyQueryServiceImpl implements AsraDailyQueryService { @Autowired private AsraDailyDao asraDailyDao; @Override public BizResult> queryAsraDailyList(AsraDailyQueryReq asraDailyQueryReq) { List asraDailyDTOs = new ArrayList<>(); List asraDailies = asraDailyDao.queryAsraDailyList(asraDailyQueryReq); if(CollectionUtil.isNotEmpty(asraDailies)){ BeanUtils.copyProperties(asraDailies,asraDailyDTOs,AsraDailyDTO.class); } return new BizResult<>(asraDailyDTOs); } /** * 工时查询-当天提交及未提交人数汇总.
* @param request * @return * 2018年8月1日 wangfs.
*/ @Override public BizResult queryAsraDailyOpNumForCurrentDay( AsraDailyForTotalNumAndDetailReq request) { AsraDailyOpNumForCurrentDayDTO asraDailyOpNumForCurrentDayDTO = new AsraDailyOpNumForCurrentDayDTO(); AsraDailyOpNumForCurrentDayDO asraDailyOpNumForCurrentDayDO = asraDailyDao.queryAsraDailyOpNumForCurrentDay(request); BeanUtils.copyProperties(asraDailyOpNumForCurrentDayDO, asraDailyOpNumForCurrentDayDTO); return new BizResult(asraDailyOpNumForCurrentDayDTO); } /** * 工时查询-所有员工及自己或者自己日报.
* @param request * @return * 2018年8月1日 wangfs.
*/ @Override public BizResult queryAsraDailyAllForList( AsraDailyForTotalNumAndDetailReq request) { QueryAsraDailyAllForListReqDTO queryAsraDailyAllForListReqDTO = new QueryAsraDailyAllForListReqDTO(); List personNumDTOList = new ArrayList<>(); List list = asraDailyDao.queryAsraDailyAllForList(request); //添加项目 if(CollectionUtil.isNotEmpty(list)){ for(AsraDailyDO asraDailyDO:list){ if(asraDailyDO == null){ continue; } AsraProjectAndPersonNumDTO asraProjectAndPersonNumDTO = new AsraProjectAndPersonNumDTO(); BeanUtils.copyProperties(asraDailyDO, asraProjectAndPersonNumDTO); if(!personNumDTOList.contains(asraProjectAndPersonNumDTO)){ personNumDTOList.add(asraProjectAndPersonNumDTO); } } //2.添加明细 for(AsraProjectAndPersonNumDTO asraProjectAndPersonNumDTO:personNumDTOList){ List listDetail = new ArrayList<>(); if(asraProjectAndPersonNumDTO == null){ continue; } for(AsraDailyDO asraDailyDO:list){ if(asraDailyDO == null){ continue; } if(asraProjectAndPersonNumDTO.getProjectId().equals(asraDailyDO.getProjectId())){ QueryAsraDailyAllDetailForListReqDTO dto = new QueryAsraDailyAllDetailForListReqDTO(); BeanUtils.copyProperties(asraDailyDO, dto); if(asraDailyDO.getDailyDate()!=null){ String dailyDate = DateUtil.format(asraDailyDO.getDailyDate(),"yyyy-MM-dd"); dto.setDailyDate(dailyDate.substring(0,4)+"年"+dailyDate.substring(5,7)+"月"+dailyDate.substring(8)+"日"); } listDetail.add(dto); } } asraProjectAndPersonNumDTO.setListDetail(listDetail); } } queryAsraDailyAllForListReqDTO.setList(personNumDTOList); return new BizResult(queryAsraDailyAllForListReqDTO); } }