AsraDailyQueryServiceImpl.java 5.44 KB
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<List<AsraDailyDTO>> queryAsraDailyList(AsraDailyQueryReq asraDailyQueryReq) {
		List<AsraDailyDTO> asraDailyDTOs = new ArrayList<>();
		List<AsraDaily> 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);
	}

	/**
	 * 工时查询-当天提交及未提交人数汇总.<br/>
	 * @param request
	 * @return
	 * 2018年8月1日  wangfs.<br/>
	 */
	@Override
	public BizResult<AsraDailyOpNumForCurrentDayDTO> queryAsraDailyOpNumForCurrentDay(
			AsraDailyForTotalNumAndDetailReq request) {
		AsraDailyOpNumForCurrentDayDTO asraDailyOpNumForCurrentDayDTO = new AsraDailyOpNumForCurrentDayDTO();
		AsraDailyOpNumForCurrentDayDO asraDailyOpNumForCurrentDayDO = asraDailyDao.queryAsraDailyOpNumForCurrentDay(request);
		BeanUtils.copyProperties(asraDailyOpNumForCurrentDayDO, asraDailyOpNumForCurrentDayDTO);
		return new BizResult<AsraDailyOpNumForCurrentDayDTO>(asraDailyOpNumForCurrentDayDTO);
	}

	/**
	 * 工时查询-所有员工及自己或者自己日报.<br/>
	 * @param request
	 * @return
	 * 2018年8月1日  wangfs.<br/>
	 */
	@Override
	public BizResult<QueryAsraDailyAllForListReqDTO> queryAsraDailyAllForList(
			AsraDailyForTotalNumAndDetailReq request) {
		QueryAsraDailyAllForListReqDTO queryAsraDailyAllForListReqDTO = new QueryAsraDailyAllForListReqDTO();
		List<AsraProjectAndPersonNumDTO> personNumDTOList = new ArrayList<>();
		//1.查询项目填报人数
		personNumDTOList = asraDailyDao.queryAsraDailyAllCountForList(request);
		//查询项目明细
		List<AsraDailyDO> list = asraDailyDao.queryAsraDailyAllForList(request);

		//2.添加明细
		for(AsraProjectAndPersonNumDTO asraProjectAndPersonNumDTO:personNumDTOList){
			List<QueryAsraDailyAllDetailForListReqDTO> 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>(queryAsraDailyAllForListReqDTO);
}


	@Override
	public BizResult<Long> 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);
	}
}