Commit 2f0270432cea0b46a401b8e7e6f4c7930107e301
Merge remote-tracking branch 'origin/branch0730' into branch
# Conflicts: # src/main/java/com/zteits/oa/api/dto/asraop/param/AsraOpQueryReq.java # src/main/java/com/zteits/oa/report/dao/impl/AsraDailyDaoImpl.java # src/main/java/com/zteits/oa/report/web/OAuthController.java
Showing
10 changed files
with
191 additions
and
12 deletions
src/main/java/com/zteits/oa/api/dto/asradaily/param/AsraDailyForTotalNumAndDetailReq.java
1 | 1 | package com.zteits.oa.api.dto.asradaily.param; |
2 | 2 | |
3 | +import java.util.List; | |
4 | + | |
3 | 5 | import com.zteits.oa.api.base.bean.BaseRequest; |
4 | 6 | |
5 | 7 | /** |
... | ... | @@ -33,7 +35,19 @@ public class AsraDailyForTotalNumAndDetailReq extends BaseRequest{ |
33 | 35 | |
34 | 36 | /**员工名称.*/ |
35 | 37 | private String opName; |
38 | + /**父级ID 顶级为-1.*/ | |
39 | + private List<Long> opIds; | |
40 | + | |
36 | 41 | |
42 | + | |
43 | + | |
44 | + public List<Long> getOpIds() { | |
45 | + return opIds; | |
46 | + } | |
47 | + | |
48 | + public void setOpIds(List<Long> opIds) { | |
49 | + this.opIds = opIds; | |
50 | + } | |
37 | 51 | |
38 | 52 | public String getBeginTime() { |
39 | 53 | return beginTime; | ... | ... |
src/main/java/com/zteits/oa/api/dto/asradaily/param/AsraDailySaveOrUpdateReq.java
... | ... | @@ -3,6 +3,7 @@ package com.zteits.oa.api.dto.asradaily.param; |
3 | 3 | import com.zteits.oa.api.base.bean.BaiscDTO; |
4 | 4 | |
5 | 5 | import java.util.Date; |
6 | +import java.util.List; | |
6 | 7 | |
7 | 8 | public class AsraDailySaveOrUpdateReq extends BaiscDTO{ |
8 | 9 | /**主键*/ |
... | ... | @@ -52,8 +53,21 @@ public class AsraDailySaveOrUpdateReq extends BaiscDTO{ |
52 | 53 | |
53 | 54 | /**工时内容*/ |
54 | 55 | private String dailyContent; |
56 | + | |
57 | + /**员工ids.*/ | |
58 | + private List<Long> opIds; | |
59 | + | |
60 | + | |
55 | 61 | |
56 | - /**获取主键*/ | |
62 | + public List<Long> getOpIds() { | |
63 | + return opIds; | |
64 | + } | |
65 | + | |
66 | + public void setOpIds(List<Long> opIds) { | |
67 | + this.opIds = opIds; | |
68 | + } | |
69 | + | |
70 | + /**获取主键*/ | |
57 | 71 | public Long getId() { |
58 | 72 | return id; |
59 | 73 | } | ... | ... |
src/main/java/com/zteits/oa/api/dto/asraop/param/AsraOpQueryReq.java
... | ... | @@ -25,7 +25,12 @@ public class AsraOpQueryReq extends BaseRequest{ |
25 | 25 | |
26 | 26 | /**员工邮箱*/ |
27 | 27 | private String email; |
28 | - | |
28 | + | |
29 | + /**父级ID 顶级为-1*/ | |
30 | + private Long parentId; | |
31 | + | |
32 | + | |
33 | + | |
29 | 34 | |
30 | 35 | /**员工idlist*/ |
31 | 36 | private List<Long> opIdLists; |
... | ... | @@ -41,12 +46,12 @@ public class AsraOpQueryReq extends BaseRequest{ |
41 | 46 | this.opParentIdLists = opParentIdLists; |
42 | 47 | } |
43 | 48 | |
44 | - public List<Long> getOpIdLists() { | |
45 | - return opIdLists; | |
49 | + public Long getParentId() { | |
50 | + return parentId; | |
46 | 51 | } |
47 | 52 | |
48 | - public void setOpIdLists(List<Long> opIdLists) { | |
49 | - this.opIdLists = opIdLists; | |
53 | + public void setParentId(Long parentId) { | |
54 | + this.parentId = parentId; | |
50 | 55 | } |
51 | 56 | |
52 | 57 | public String getLoginCode() { | ... | ... |
src/main/java/com/zteits/oa/api/service/report/query/AsraOpQueryService.java
1 | 1 | package com.zteits.oa.api.service.report.query; |
2 | 2 | |
3 | +import java.util.List; | |
4 | + | |
3 | 5 | import com.zteits.oa.api.base.bean.BizResult; |
4 | 6 | import com.zteits.oa.api.base.bean.PageBean; |
5 | 7 | import com.zteits.oa.api.dto.asraop.AsraOpDTO; |
... | ... | @@ -50,4 +52,12 @@ public interface AsraOpQueryService { |
50 | 52 | * |
51 | 53 | */ |
52 | 54 | BizResult<AsraOpDTO> queryAsraOpByLoginCode(AsraOpQueryReq asraOpQueryReq); |
55 | + | |
56 | + /** | |
57 | + * 通过员工父级Id获取员工信息.<br/> | |
58 | + * @param asraOpQueryRe | |
59 | + * @return | |
60 | + * 2018年7月31日 wangfs.<br/> | |
61 | + */ | |
62 | + BizResult<List<AsraOpDTO>> queryAsraOpByParentId(AsraOpQueryReq asraOpQueryRe); | |
53 | 63 | } | ... | ... |
src/main/java/com/zteits/oa/report/biz/AsraOpQueryServiceImpl.java
1 | 1 | package com.zteits.oa.report.biz; |
2 | 2 | |
3 | +import java.util.ArrayList; | |
4 | +import java.util.List; | |
5 | + | |
3 | 6 | import org.slf4j.Logger; |
4 | 7 | import org.slf4j.LoggerFactory; |
5 | 8 | import org.springframework.beans.BeanUtils; |
... | ... | @@ -15,6 +18,7 @@ import com.zteits.oa.api.dto.asraop.param.AsraOpQueryReq; |
15 | 18 | import com.zteits.oa.api.service.report.query.AsraOpQueryService; |
16 | 19 | import com.zteits.oa.report.dao.AsraOpDao; |
17 | 20 | import com.zteits.oa.report.domain.AsraOp; |
21 | +import com.zteits.oa.util.ListCopyUtil; | |
18 | 22 | import com.zteits.oa.util.pagepaper.PageBeanUtil; |
19 | 23 | /** |
20 | 24 | * 工时系统操作员实现类.<br/> |
... | ... | @@ -31,7 +35,7 @@ import com.zteits.oa.util.pagepaper.PageBeanUtil; |
31 | 35 | *---------------------------------------------------------* |
32 | 36 | * 2018年7月30日 wangfs v1.0.0 创建 |
33 | 37 | */ |
34 | -@Service("") | |
38 | +@Service("com.zteits.oa.report.biz.AsraOpQueryServiceImpl") | |
35 | 39 | public class AsraOpQueryServiceImpl implements AsraOpQueryService { |
36 | 40 | |
37 | 41 | private static final Logger logger = LoggerFactory.getLogger(AsraOpQueryServiceImpl.class); |
... | ... | @@ -77,4 +81,18 @@ public class AsraOpQueryServiceImpl implements AsraOpQueryService { |
77 | 81 | return new BizResult<>(asraOpDTO); |
78 | 82 | } |
79 | 83 | |
84 | + /** | |
85 | + * 通过员工父级Id获取员工信息.<br/> | |
86 | + * @param asraOpQueryRe | |
87 | + * @return | |
88 | + * 2018年7月31日 wangfs.<br/> | |
89 | + */ | |
90 | + @Override | |
91 | + public BizResult<List<AsraOpDTO>> queryAsraOpByParentId(AsraOpQueryReq asraOpQueryRe) { | |
92 | + List<AsraOpDTO> listDTO = new ArrayList<>(); | |
93 | + List<AsraOp> list = asraOpDao.queryAsraOpByParentId(asraOpQueryRe); | |
94 | + ListCopyUtil.listCopyProperties(list, listDTO, AsraOpDTO.class); | |
95 | + return new BizResult<List<AsraOpDTO>>(listDTO); | |
96 | + } | |
97 | + | |
80 | 98 | } | ... | ... |
src/main/java/com/zteits/oa/report/dao/AsraOpDao.java
1 | 1 | package com.zteits.oa.report.dao; |
2 | 2 | |
3 | +import java.util.List; | |
4 | + | |
3 | 5 | import com.github.pagehelper.PageInfo; |
4 | 6 | import com.zteits.oa.api.base.bean.BizResult; |
5 | 7 | import com.zteits.oa.api.dto.asraop.AsraOpDTO; |
... | ... | @@ -33,4 +35,12 @@ public interface AsraOpDao { |
33 | 35 | * |
34 | 36 | */ |
35 | 37 | AsraOp queryAsraOpByLoginCode(String loginCode); |
38 | + | |
39 | + /** | |
40 | + * 通过员工父级Id获取员工信息.<br/> | |
41 | + * @param asraOpQueryRe | |
42 | + * @return | |
43 | + * 2018年7月31日 wangfs.<br/> | |
44 | + */ | |
45 | + List<AsraOp> queryAsraOpByParentId(AsraOpQueryReq asraOpQueryRe); | |
36 | 46 | } | ... | ... |
src/main/java/com/zteits/oa/report/dao/impl/AsraDailyDaoImpl.java
... | ... | @@ -68,8 +68,13 @@ public class AsraDailyDaoImpl implements AsraDailyDao{ |
68 | 68 | public AsraDailyOpNumForCurrentDayDO queryAsraDailyOpNumForCurrentDay(AsraDailyForTotalNumAndDetailReq request) { |
69 | 69 | AsraDailyOpNumForCurrentDayDO asraDailyOpNumForCurrentDayDO = new AsraDailyOpNumForCurrentDayDO(); |
70 | 70 | List<Long> opList = new ArrayList<>(); |
71 | + | |
72 | + //1.总人数获取 | |
71 | 73 | int employeeTotal = 0; |
72 | - opList.add(request.getOpId());//查询自己id | |
74 | + if(CollectionUtil.isNotEmpty(request.getOpIds())){ | |
75 | + employeeTotal = request.getOpIds().size(); | |
76 | + } | |
77 | + | |
73 | 78 | //2.查询今日日报填写人数 |
74 | 79 | AsraDailyExample exampleTwo = new AsraDailyExample(); |
75 | 80 | exampleTwo.createCriteria().andAsarOpIdIn(opList) | ... | ... |
src/main/java/com/zteits/oa/report/dao/impl/AsraOpDaoImpl.java
... | ... | @@ -60,6 +60,7 @@ public class AsraOpDaoImpl implements AsraOpDao { |
60 | 60 | if(asraOpQueryRe.getId() != null){ |
61 | 61 | criteria.andIdEqualTo(asraOpQueryRe.getId()); |
62 | 62 | } |
63 | + | |
63 | 64 | criteria.andDataStateEqualTo(1); |
64 | 65 | List<AsraOp> list = asraOpMapper.selectByExample(example); |
65 | 66 | return CollectionUtils.isEmpty(list) ? new AsraOp() : list.get(0); |
... | ... | @@ -73,4 +74,18 @@ public class AsraOpDaoImpl implements AsraOpDao { |
73 | 74 | return berths.get(0); |
74 | 75 | } |
75 | 76 | |
77 | + /** | |
78 | + * 通过员工父级Id获取员工信息.<br/> | |
79 | + * @param asraOpQueryRe | |
80 | + * @return | |
81 | + * 2018年7月31日 wangfs.<br/> | |
82 | + */ | |
83 | + @Override | |
84 | + public List<AsraOp> queryAsraOpByParentId(AsraOpQueryReq asraOpQueryRe) { | |
85 | + AsraOpExample example = new AsraOpExample(); | |
86 | + example.createCriteria().andParentIdEqualTo(asraOpQueryRe.getParentId()); | |
87 | + List<AsraOp> list = asraOpMapper.selectByExample(example); | |
88 | + return list; | |
89 | + } | |
90 | + | |
76 | 91 | } | ... | ... |
src/main/java/com/zteits/oa/report/web/AsraDailyController.java
... | ... | @@ -17,6 +17,7 @@ import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq; |
17 | 17 | import com.zteits.oa.api.dto.asradaily.param.AsraDailySaveOrUpdateReq; |
18 | 18 | import com.zteits.oa.api.dto.asraop.AsraOpDTO; |
19 | 19 | import com.zteits.oa.api.service.report.query.AsraDailyQueryService; |
20 | +import com.zteits.oa.report.domain.AsraDaily; | |
20 | 21 | import com.zteits.oa.util.pagepaper.DateForObjectUtil; |
21 | 22 | import io.swagger.annotations.Api; |
22 | 23 | import io.swagger.annotations.ApiOperation; |
... | ... | @@ -72,7 +73,7 @@ public class AsraDailyController { |
72 | 73 | if(asraOpDTO == null ){ |
73 | 74 | throw new BizException(ErrorType.PARAMM_NULL,"获取session为空"); |
74 | 75 | } |
75 | - request.setOpId(asraOpDTO.getId()); | |
76 | + request.setOpIds(asraOpDTO.getOpIds()); | |
76 | 77 | BizResult<AsraDailyOpNumForCurrentDayDTO> result = asraDailyQueryService.queryAsraDailyOpNumForCurrentDay(request); |
77 | 78 | logger.info("--end工时查询-当天填报人数统计(汇总),结果={}",JSONObject.toJSON(result)); |
78 | 79 | return result; |
... | ... | @@ -93,7 +94,7 @@ public class AsraDailyController { |
93 | 94 | if(asraOpDTO == null ){ |
94 | 95 | throw new BizException(ErrorType.PARAMM_NULL,"获取session为空"); |
95 | 96 | } |
96 | - request.setOpId(asraOpDTO.getId()); | |
97 | + request.setOpIds(asraOpDTO.getOpIds()); | |
97 | 98 | BizResult<QueryAsraDailyAllForListReqDTO> result = asraDailyQueryService.queryAsraDailyAllForList(request); |
98 | 99 | logger.info("--end工时查询-所有员工及自己或者自己日报,结果={}",JSONObject.toJSON(result)); |
99 | 100 | return result; | ... | ... |
src/main/java/com/zteits/oa/report/web/OAuthController.java
1 | 1 | package com.zteits.oa.report.web; |
2 | 2 | |
3 | +import static org.mockito.Matchers.contains; | |
4 | + | |
3 | 5 | import java.util.ArrayList; |
4 | 6 | import java.util.List; |
5 | 7 | |
... | ... | @@ -18,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping; |
18 | 20 | import org.springframework.web.bind.annotation.RestController; |
19 | 21 | |
20 | 22 | import com.alibaba.fastjson.JSONObject; |
23 | +import com.xiaoleilu.hutool.util.CollectionUtil; | |
21 | 24 | import com.zteits.oa.api.base.bean.BizResult; |
22 | 25 | import com.zteits.oa.api.base.constants.ErrorType; |
23 | 26 | import com.zteits.oa.api.base.constants.SessionEnum; |
... | ... | @@ -97,7 +100,7 @@ public class OAuthController { |
97 | 100 | List<Long> opParentIds = new ArrayList<>(); |
98 | 101 | opParentIds.add(asraOpDTO.getId()); |
99 | 102 | /**递归查询员工ids.*/ |
100 | - opIds = queryOpTreeByOpId(opParentIds,opIds); | |
103 | + opIds = queryOpTreeByOpIds(opParentIds,opIds); | |
101 | 104 | logger.info("---获取到的opIds={}",JSONObject.toJSON(opIds)); |
102 | 105 | asraOpDTO.setOpIds(opIds); |
103 | 106 | HttpSession session = request.getSession(); |
... | ... | @@ -144,7 +147,7 @@ public class OAuthController { |
144 | 147 | * @return |
145 | 148 | * 2018年8月2日 wangfs.<br/> |
146 | 149 | */ |
147 | - private List<Long> queryOpTreeByOpId(List<Long> queryOpList,List<Long> opList){ | |
150 | + private List<Long> queryOpTreeByOpIds(List<Long> queryOpList,List<Long> opList){ | |
148 | 151 | if(queryOpList != null && CollectionUtil.isNotEmpty(queryOpList)){ |
149 | 152 | AsraOpQueryReq asraOpQueryRe = new AsraOpQueryReq(); |
150 | 153 | asraOpQueryRe.setOpParentIdLists(queryOpList); |
... | ... | @@ -167,6 +170,90 @@ public class OAuthController { |
167 | 170 | } |
168 | 171 | |
169 | 172 | |
173 | + /** | |
174 | + * 递归查询员工id.<br/> | |
175 | + * @param parentOpId | |
176 | + * @param opList | |
177 | + * @return | |
178 | + * 2018年8月2日 wangfs.<br/> | |
179 | + */ | |
180 | + private List<Long> queryOpTreeByOpId(Long opId){ | |
181 | + List<Long> rootAllList = new ArrayList<>(); | |
182 | + rootAllList.add(opId); | |
183 | + //1.查找第一级下的所有用户 | |
184 | + List<Long> rootOpIds = this.getRootOpIds(opId); | |
185 | + | |
186 | + //2.查找第二级以下所有用户 | |
187 | + if(CollectionUtil.isNotEmpty(rootOpIds)){ | |
188 | + rootAllList.addAll(rootOpIds); | |
189 | + for(Long getOpId:rootOpIds ){ | |
190 | + List<Long> childOpIds = new ArrayList<>(); | |
191 | + this.getChildOpIds(getOpId,childOpIds); | |
192 | + rootAllList.addAll(childOpIds); | |
193 | + } | |
194 | + | |
195 | + } | |
196 | + return rootAllList; | |
197 | + } | |
198 | + | |
199 | + /** | |
200 | + * 递归查找一级以下的用户 | |
201 | + * @param parentId | |
202 | + * @return | |
203 | + * 2018年8月2日 wangfs.<br/> | |
204 | + */ | |
205 | + private List<Long> getChildOpIds(Long parentId,List<Long> childOpIds){ | |
206 | + AsraOpQueryReq asraOpQueryRe = new AsraOpQueryReq(); | |
207 | + asraOpQueryRe.setParentId(parentId); | |
208 | + BizResult<List<AsraOpDTO>> asraOpReult = asraOpQueryService.queryAsraOpByParentId(asraOpQueryRe); | |
209 | + if(asraOpReult != null && CollectionUtil.isNotEmpty(asraOpReult.getData())){ | |
210 | + List<AsraOpDTO> list = asraOpReult.getData(); | |
211 | + for(AsraOpDTO asraOpDTO :list){ | |
212 | + if(asraOpDTO == null){ | |
213 | + continue; | |
214 | + } | |
215 | + childOpIds.add(asraOpDTO.getId()); | |
216 | + } | |
217 | + | |
218 | + //遍历下一级 | |
219 | + if(CollectionUtil.isNotEmpty(childOpIds)){ | |
220 | + for(Long opId:childOpIds){ | |
221 | + if(opId != null && !opId.equals(parentId)){ | |
222 | + getChildOpIds(opId,childOpIds); | |
223 | + } | |
224 | + break; | |
225 | + | |
226 | + } | |
227 | + | |
228 | + } | |
229 | + } | |
230 | + | |
231 | + return childOpIds; | |
232 | + } | |
233 | + | |
234 | + /** | |
235 | + * 查找登陆用户下一级用户 | |
236 | + * @param opId | |
237 | + * @param opList | |
238 | + * @return | |
239 | + * 2018年8月2日 wangfs.<br/> | |
240 | + */ | |
241 | + private List<Long> getRootOpIds(Long parentId){ | |
242 | + List<Long> opList = new ArrayList<>(); | |
243 | + AsraOpQueryReq asraOpQueryRe = new AsraOpQueryReq(); | |
244 | + asraOpQueryRe.setParentId(parentId); | |
245 | + BizResult<List<AsraOpDTO>> asraOpReult = asraOpQueryService.queryAsraOpByParentId(asraOpQueryRe); | |
246 | + if(asraOpReult != null && CollectionUtil.isNotEmpty(asraOpReult.getData())){ | |
247 | + List<AsraOpDTO> list = asraOpReult.getData(); | |
248 | + for(AsraOpDTO asraOpDTO :list){ | |
249 | + if(asraOpDTO == null){ | |
250 | + continue; | |
251 | + } | |
252 | + opList.add(asraOpDTO.getId()); | |
253 | + } | |
254 | + } | |
255 | + return opList; | |
256 | + } | |
170 | 257 | |
171 | 258 | |
172 | 259 | ... | ... |