package com.zteits.oa.report.biz; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.alibaba.fastjson.JSONObject; 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.param.AsraDailyQueryReq; import com.zteits.oa.api.dto.asradaily.param.AsraDailySaveOrUpdateReq; import com.zteits.oa.api.service.report.query.AsraDailyQueryService; import com.zteits.oa.report.dao.AsraDailyDao; import com.zteits.oa.report.domain.AsraDaily; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; 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.report.domain.sdo.AsraDailyDO; import com.zteits.oa.report.domain.sdo.AsraDailyOpNumForCurrentDayDO; import java.util.Date; /** * 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)){ for(AsraDaily asraDaily:asraDailies){ AsraDailyDTO asraDailyDTO = new AsraDailyDTO(); BeanUtils.copyProperties(asraDaily,asraDailyDTO); asraDailyDTOs.add(asraDailyDTO); } } 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); }else{ for (AsraProjectAndPersonNumDTO getAsraProjectAndPersonNumDTO:personNumDTOList){ if(getAsraProjectAndPersonNumDTO == null){ continue; } if(getAsraProjectAndPersonNumDTO.getProjectId().equals(asraDailyDO.getProjectId())){ getAsraProjectAndPersonNumDTO.setCommitPersonNum(getAsraProjectAndPersonNumDTO.getCommitPersonNum()+asraDailyDO.getCommitPersonNum()); } } } } //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); } @Override public BizResult saveOrUpdateAsraDaily(AsraDailySaveOrUpdateReq request) { AsraDaily asraDaily = new AsraDaily(); BeanUtils.copyProperties(request, asraDaily); asraDaily.setModfiyDate(new Date()); asraDaily.setModfiyEmpid(request.getAsarOpId() + ""); asraDaily.setModfiyEmpName(request.getAsarOpName() + ""); Date dailyDate = DateUtil.parseDate(request.getDailyDate()); asraDaily.setDailyDate(dailyDate); Long id; if (null == request.getId()) { //新增 asraDaily.setDataState(1); asraDaily.setCreateDate(new Date()); asraDaily.setCreateEmpid(request.getAsarOpId()+""); asraDaily.setCreateEmpName(request.getAsarOpName() + ""); id = asraDailyDao.saveAsraDaily(asraDaily); } else { //更新 id = asraDailyDao.updateAsraDaily(asraDaily); } return new BizResult<>(id); } }