Blame view

src/main/java/com/zteits/oa/report/biz/AsraDailyQueryServiceImpl.java 6.41 KB
7deb21f3   xiejianpeng   员工管理
1
2
  package com.zteits.oa.report.biz;
  
237a75b5   王富生   提交
3
4
5
6
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.List;
  
4804a480   xiejianpeng   工时填报管理
7
  import com.alibaba.fastjson.JSONObject;
237a75b5   王富生   提交
8
  import com.xiaoleilu.hutool.date.DateUtil;
7deb21f3   xiejianpeng   员工管理
9
10
11
  import com.xiaoleilu.hutool.util.CollectionUtil;
  import com.zteits.oa.api.base.bean.BizResult;
  import com.zteits.oa.api.dto.asradaily.AsraDailyDTO;
7deb21f3   xiejianpeng   员工管理
12
  import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq;
4804a480   xiejianpeng   工时填报管理
13
  import com.zteits.oa.api.dto.asradaily.param.AsraDailySaveOrUpdateReq;
7deb21f3   xiejianpeng   员工管理
14
15
16
17
18
19
20
  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;
  
237a75b5   王富生   提交
21
22
23
24
25
  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;
237a75b5   王富生   提交
26
27
  import com.zteits.oa.report.domain.sdo.AsraDailyDO;
  import com.zteits.oa.report.domain.sdo.AsraDailyOpNumForCurrentDayDO;
4804a480   xiejianpeng   工时填报管理
28
  import java.util.Date;
7deb21f3   xiejianpeng   员工管理
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
  
  /**
   * 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)){
ece77815   xiejianpeng   工时填报管理
53
54
55
56
57
              for(AsraDaily asraDaily:asraDailies){
                  AsraDailyDTO asraDailyDTO = new AsraDailyDTO();
                  BeanUtils.copyProperties(asraDaily,asraDailyDTO);
                  asraDailyDTOs.add(asraDailyDTO);
              }
7deb21f3   xiejianpeng   员工管理
58
59
60
          }
          return new BizResult<>(asraDailyDTOs);
      }
237a75b5   王富生   提交
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
  
      /**
  	 * 工时查询-当天提交及未提交人数汇总.<br/>
  	 * @param request
  	 * @return
  	 * 201881  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
  	 * 201881  wangfs.<br/>
  	 */
  	@Override
  	public BizResult<QueryAsraDailyAllForListReqDTO> queryAsraDailyAllForList(
  			AsraDailyForTotalNumAndDetailReq request) {
  		QueryAsraDailyAllForListReqDTO queryAsraDailyAllForListReqDTO = new QueryAsraDailyAllForListReqDTO();
  		List<AsraProjectAndPersonNumDTO> personNumDTOList = new ArrayList<>();
  		
  		
  		List<AsraDailyDO> 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);
04bcc6f5   王富生   提交session 为空判断
101
102
103
104
105
106
107
108
109
  				}else{
  					for (AsraProjectAndPersonNumDTO getAsraProjectAndPersonNumDTO:personNumDTOList){
  						if(getAsraProjectAndPersonNumDTO == null){
  							continue;
  						}
  						if(getAsraProjectAndPersonNumDTO.getProjectId().equals(asraDailyDO.getProjectId())){
  							getAsraProjectAndPersonNumDTO.setCommitPersonNum(getAsraProjectAndPersonNumDTO.getCommitPersonNum()+asraDailyDO.getCommitPersonNum());
  						}
  					}
237a75b5   王富生   提交
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
  				}
  			}
  			//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);
  	}
  	
  	
4804a480   xiejianpeng   工时填报管理
142
      @Override
101bbdd6   xiejianpeng   日报提交
143
      public BizResult<Long> saveOrUpdateAsraDaily(AsraDailySaveOrUpdateReq request) {
4804a480   xiejianpeng   工时填报管理
144
145
146
147
148
149
150
151
          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);
  
101bbdd6   xiejianpeng   日报提交
152
          Long id;
4804a480   xiejianpeng   工时填报管理
153
154
155
156
157
158
          if (null == request.getId()) {
              //新增
              asraDaily.setDataState(1);
              asraDaily.setCreateDate(new Date());
              asraDaily.setCreateEmpid(request.getAsarOpId()+"");
              asraDaily.setCreateEmpName(request.getAsarOpName() + "");
101bbdd6   xiejianpeng   日报提交
159
  			id = asraDailyDao.saveAsraDaily(asraDaily);
4804a480   xiejianpeng   工时填报管理
160
161
          } else {
              //更新
80a60aae   xiejianpeng   日报提交
162
  			id = asraDailyDao.updateAsraDaily(asraDaily);
4804a480   xiejianpeng   工时填报管理
163
164
          }
  
101bbdd6   xiejianpeng   日报提交
165
          return new BizResult<>(id);
4804a480   xiejianpeng   工时填报管理
166
      }
7deb21f3   xiejianpeng   员工管理
167
  }