Commit b1704d7cf717475c8f3b86b7b7e51cb9f34a73bd

Authored by 王富生
1 parent d0a6a58f

提交

src/main/java/com/zteits/oa/api/dto/asradaily/param/AsraDailyForTotalNumAndDetailReq.java
1 package com.zteits.oa.api.dto.asradaily.param; 1 package com.zteits.oa.api.dto.asradaily.param;
2 2
  3 +import java.util.List;
  4 +
3 import com.zteits.oa.api.base.bean.BaseRequest; 5 import com.zteits.oa.api.base.bean.BaseRequest;
4 6
5 /** 7 /**
@@ -33,7 +35,19 @@ public class AsraDailyForTotalNumAndDetailReq extends BaseRequest{ @@ -33,7 +35,19 @@ public class AsraDailyForTotalNumAndDetailReq extends BaseRequest{
33 35
34 /**员工名称.*/ 36 /**员工名称.*/
35 private String opName; 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 public String getBeginTime() { 52 public String getBeginTime() {
39 return beginTime; 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,6 +3,7 @@ package com.zteits.oa.api.dto.asradaily.param;
3 import com.zteits.oa.api.base.bean.BaiscDTO; 3 import com.zteits.oa.api.base.bean.BaiscDTO;
4 4
5 import java.util.Date; 5 import java.util.Date;
  6 +import java.util.List;
6 7
7 public class AsraDailySaveOrUpdateReq extends BaiscDTO{ 8 public class AsraDailySaveOrUpdateReq extends BaiscDTO{
8 /**主键*/ 9 /**主键*/
@@ -52,8 +53,21 @@ public class AsraDailySaveOrUpdateReq extends BaiscDTO{ @@ -52,8 +53,21 @@ public class AsraDailySaveOrUpdateReq extends BaiscDTO{
52 53
53 /**工时内容*/ 54 /**工时内容*/
54 private String dailyContent; 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 public Long getId() { 71 public Long getId() {
58 return id; 72 return id;
59 } 73 }
src/main/java/com/zteits/oa/api/dto/asraop/param/AsraOpQueryReq.java
@@ -25,18 +25,18 @@ public class AsraOpQueryReq extends BaseRequest{ @@ -25,18 +25,18 @@ public class AsraOpQueryReq extends BaseRequest{
25 25
26 /**员工邮箱*/ 26 /**员工邮箱*/
27 private String email; 27 private String email;
  28 +
  29 + /**父级ID 顶级为-1*/
  30 + private Long parentId;
  31 +
28 32
29 33
30 - /**员工idlist*/  
31 - private List<Long> opIdLists;  
32 -  
33 -  
34 - public List<Long> getOpIdLists() {  
35 - return opIdLists; 34 + public Long getParentId() {
  35 + return parentId;
36 } 36 }
37 37
38 - public void setOpIdLists(List<Long> opIdLists) {  
39 - this.opIdLists = opIdLists; 38 + public void setParentId(Long parentId) {
  39 + this.parentId = parentId;
40 } 40 }
41 41
42 public String getLoginCode() { 42 public String getLoginCode() {
src/main/java/com/zteits/oa/api/service/report/query/AsraOpQueryService.java
1 package com.zteits.oa.api.service.report.query; 1 package com.zteits.oa.api.service.report.query;
2 2
  3 +import java.util.List;
  4 +
3 import com.zteits.oa.api.base.bean.BizResult; 5 import com.zteits.oa.api.base.bean.BizResult;
4 import com.zteits.oa.api.base.bean.PageBean; 6 import com.zteits.oa.api.base.bean.PageBean;
5 import com.zteits.oa.api.dto.asraop.AsraOpDTO; 7 import com.zteits.oa.api.dto.asraop.AsraOpDTO;
@@ -50,4 +52,12 @@ public interface AsraOpQueryService { @@ -50,4 +52,12 @@ public interface AsraOpQueryService {
50 * 52 *
51 */ 53 */
52 BizResult<AsraOpDTO> queryAsraOpByLoginCode(AsraOpQueryReq asraOpQueryReq); 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 package com.zteits.oa.report.biz; 1 package com.zteits.oa.report.biz;
2 2
  3 +import java.util.ArrayList;
  4 +import java.util.List;
  5 +
3 import org.slf4j.Logger; 6 import org.slf4j.Logger;
4 import org.slf4j.LoggerFactory; 7 import org.slf4j.LoggerFactory;
5 import org.springframework.beans.BeanUtils; 8 import org.springframework.beans.BeanUtils;
@@ -15,6 +18,7 @@ import com.zteits.oa.api.dto.asraop.param.AsraOpQueryReq; @@ -15,6 +18,7 @@ import com.zteits.oa.api.dto.asraop.param.AsraOpQueryReq;
15 import com.zteits.oa.api.service.report.query.AsraOpQueryService; 18 import com.zteits.oa.api.service.report.query.AsraOpQueryService;
16 import com.zteits.oa.report.dao.AsraOpDao; 19 import com.zteits.oa.report.dao.AsraOpDao;
17 import com.zteits.oa.report.domain.AsraOp; 20 import com.zteits.oa.report.domain.AsraOp;
  21 +import com.zteits.oa.util.ListCopyUtil;
18 import com.zteits.oa.util.pagepaper.PageBeanUtil; 22 import com.zteits.oa.util.pagepaper.PageBeanUtil;
19 /** 23 /**
20 * 工时系统操作员实现类.<br/> 24 * 工时系统操作员实现类.<br/>
@@ -31,7 +35,7 @@ import com.zteits.oa.util.pagepaper.PageBeanUtil; @@ -31,7 +35,7 @@ import com.zteits.oa.util.pagepaper.PageBeanUtil;
31 *---------------------------------------------------------* 35 *---------------------------------------------------------*
32 * 2018年7月30日 wangfs v1.0.0 创建 36 * 2018年7月30日 wangfs v1.0.0 创建
33 */ 37 */
34 -@Service("") 38 +@Service("com.zteits.oa.report.biz.AsraOpQueryServiceImpl")
35 public class AsraOpQueryServiceImpl implements AsraOpQueryService { 39 public class AsraOpQueryServiceImpl implements AsraOpQueryService {
36 40
37 private static final Logger logger = LoggerFactory.getLogger(AsraOpQueryServiceImpl.class); 41 private static final Logger logger = LoggerFactory.getLogger(AsraOpQueryServiceImpl.class);
@@ -77,4 +81,18 @@ public class AsraOpQueryServiceImpl implements AsraOpQueryService { @@ -77,4 +81,18 @@ public class AsraOpQueryServiceImpl implements AsraOpQueryService {
77 return new BizResult<>(asraOpDTO); 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/biz/AsraOpRelationsQueryServiceImpl.java deleted
1 -package com.zteits.oa.report.biz;  
2 -  
3 -import com.xiaoleilu.hutool.util.CollectionUtil;  
4 -import com.zteits.oa.api.base.bean.BizResult;  
5 -import com.zteits.oa.api.dto.asraoprelations.AsraOpRelationsDTO;  
6 -import com.zteits.oa.api.dto.asraoprelations.param.AsraOpRelationsQueryReq;  
7 -import com.zteits.oa.api.service.report.query.AsraOpRelationsQueryService;  
8 -import com.zteits.oa.report.domain.AsraOpRelations;  
9 -import org.springframework.beans.BeanUtils;  
10 -import org.springframework.beans.factory.annotation.Autowired;  
11 -import org.springframework.stereotype.Service;  
12 -  
13 -import java.util.ArrayList;  
14 -import java.util.List;  
15 -  
16 -/**  
17 - * Copyright: Copyright (c) 2018 zteits  
18 - *  
19 - * @Description:  
20 - * @version: v1.0.0  
21 - * @author: xiejianpeng  
22 - * @date: 2018/7/31 11  
23 - * Modification History:  
24 - * Date Author Version Description  
25 - * ---------------------------------------------------------*  
26 - * 2018/7/31 xiejianpeng v1.0.0 创建  
27 - */  
28 -@Service  
29 -public class AsraOpRelationsQueryServiceImpl implements AsraOpRelationsQueryService {  
30 -  
31 - //@Autowired  
32 - //private AsraOpRelationsDao asraOpRelationsDao;  
33 -  
34 - @Override  
35 - public BizResult<List<AsraOpRelationsDTO>> queryAsraOpRelations(AsraOpRelationsQueryReq asraOpRelationsQueryReq) {  
36 -  
37 - List<AsraOpRelationsDTO> asraOpRelationsDTOs = new ArrayList<>();  
38 - List<AsraOpRelations> asraOpRelationsList = null;//asraOpRelationsDao.queryAsraOpRelations(asraOpRelationsQueryReq.getParentId());  
39 - if(CollectionUtil.isNotEmpty(asraOpRelationsList)) {  
40 - BeanUtils.copyProperties(asraOpRelationsList, asraOpRelationsDTOs, AsraOpRelationsDTO.class);  
41 - }  
42 - return new BizResult<>(asraOpRelationsDTOs);  
43 - }  
44 -}  
src/main/java/com/zteits/oa/report/dao/AsraOpDao.java
1 package com.zteits.oa.report.dao; 1 package com.zteits.oa.report.dao;
2 2
  3 +import java.util.List;
  4 +
3 import com.github.pagehelper.PageInfo; 5 import com.github.pagehelper.PageInfo;
4 import com.zteits.oa.api.base.bean.BizResult; 6 import com.zteits.oa.api.base.bean.BizResult;
5 import com.zteits.oa.api.dto.asraop.AsraOpDTO; 7 import com.zteits.oa.api.dto.asraop.AsraOpDTO;
@@ -33,4 +35,12 @@ public interface AsraOpDao { @@ -33,4 +35,12 @@ public interface AsraOpDao {
33 * 35 *
34 */ 36 */
35 AsraOp queryAsraOpByLoginCode(String loginCode); 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
@@ -14,8 +14,6 @@ import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq; @@ -14,8 +14,6 @@ import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq;
14 import com.zteits.oa.report.dao.AsraDailyDao; 14 import com.zteits.oa.report.dao.AsraDailyDao;
15 import com.zteits.oa.report.domain.AsraDaily; 15 import com.zteits.oa.report.domain.AsraDaily;
16 import com.zteits.oa.report.domain.AsraDailyExample; 16 import com.zteits.oa.report.domain.AsraDailyExample;
17 -import com.zteits.oa.report.domain.AsraOpRelations;  
18 -import com.zteits.oa.report.domain.AsraOpRelationsExample;  
19 import com.zteits.oa.report.domain.sdo.AsraDailyDO; 17 import com.zteits.oa.report.domain.sdo.AsraDailyDO;
20 import com.zteits.oa.report.domain.sdo.AsraDailyOpNumForCurrentDayDO; 18 import com.zteits.oa.report.domain.sdo.AsraDailyOpNumForCurrentDayDO;
21 import com.zteits.oa.report.mapper.AsraDailyMapper; 19 import com.zteits.oa.report.mapper.AsraDailyMapper;
@@ -71,23 +69,13 @@ public class AsraDailyDaoImpl implements AsraDailyDao{ @@ -71,23 +69,13 @@ public class AsraDailyDaoImpl implements AsraDailyDao{
71 public AsraDailyOpNumForCurrentDayDO queryAsraDailyOpNumForCurrentDay(AsraDailyForTotalNumAndDetailReq request) { 69 public AsraDailyOpNumForCurrentDayDO queryAsraDailyOpNumForCurrentDay(AsraDailyForTotalNumAndDetailReq request) {
72 AsraDailyOpNumForCurrentDayDO asraDailyOpNumForCurrentDayDO = new AsraDailyOpNumForCurrentDayDO(); 70 AsraDailyOpNumForCurrentDayDO asraDailyOpNumForCurrentDayDO = new AsraDailyOpNumForCurrentDayDO();
73 List<Long> opList = new ArrayList<>(); 71 List<Long> opList = new ArrayList<>();
  72 +
  73 + //1.总人数获取
74 int employeeTotal = 0; 74 int employeeTotal = 0;
75 -// //1.总人数获取  
76 -// AsraOpRelationsExample example = new AsraOpRelationsExample();  
77 -// example.createCriteria().andParentIdEqualTo(request.getOpId());  
78 -// //List<AsraOpRelations> selectByExample = asraOpRelationsMapper.selectByExample(example);  
79 -// int employeeTotal = (CollectionUtil.isNotEmpty(selectByExample) ? selectByExample.size() +1 : 1);  
80 -// asraDailyOpNumForCurrentDayDO.setEmployeeTotal(employeeTotal);  
81 -// //获取员工人数  
82 -// if(CollectionUtil.isNotEmpty(selectByExample)){  
83 -// for(AsraOpRelations op:selectByExample){  
84 -// if(op == null){  
85 -// continue;  
86 -// }  
87 -// opList.add(op.getOpId());  
88 -// }  
89 -// }  
90 - opList.add(request.getOpId());//查询自己id 75 + if(CollectionUtil.isNotEmpty(request.getOpIds())){
  76 + employeeTotal = request.getOpIds().size();
  77 + }
  78 +
91 //2.查询今日日报填写人数 79 //2.查询今日日报填写人数
92 AsraDailyExample exampleTwo = new AsraDailyExample(); 80 AsraDailyExample exampleTwo = new AsraDailyExample();
93 exampleTwo.createCriteria().andAsarOpIdIn(opList) 81 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,6 +60,7 @@ public class AsraOpDaoImpl implements AsraOpDao {
60 if(asraOpQueryRe.getId() != null){ 60 if(asraOpQueryRe.getId() != null){
61 criteria.andIdEqualTo(asraOpQueryRe.getId()); 61 criteria.andIdEqualTo(asraOpQueryRe.getId());
62 } 62 }
  63 +
63 criteria.andDataStateEqualTo(1); 64 criteria.andDataStateEqualTo(1);
64 List<AsraOp> list = asraOpMapper.selectByExample(example); 65 List<AsraOp> list = asraOpMapper.selectByExample(example);
65 return CollectionUtils.isEmpty(list) ? new AsraOp() : list.get(0); 66 return CollectionUtils.isEmpty(list) ? new AsraOp() : list.get(0);
@@ -73,4 +74,18 @@ public class AsraOpDaoImpl implements AsraOpDao { @@ -73,4 +74,18 @@ public class AsraOpDaoImpl implements AsraOpDao {
73 return berths.get(0); 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/domain/AsraOpRelations.java deleted
1 -package com.zteits.oa.report.domain;  
2 -  
3 -public class AsraOpRelations {  
4 - /**主键*/  
5 - private Long id;  
6 -  
7 - /**父级ID*/  
8 - private Long parentId;  
9 -  
10 - /**员工ID*/  
11 - private Long opId;  
12 -  
13 - /**数据状态:1有效,0无效,2:锁定*/  
14 - private Integer dataState;  
15 -  
16 - /**获取主键*/  
17 - public Long getId() {  
18 - return id;  
19 - }  
20 -  
21 - /**设置主键*/  
22 - public void setId(Long id) {  
23 - this.id = id;  
24 - }  
25 -  
26 - /**获取父级ID*/  
27 - public Long getParentId() {  
28 - return parentId;  
29 - }  
30 -  
31 - /**设置父级ID*/  
32 - public void setParentId(Long parentId) {  
33 - this.parentId = parentId;  
34 - }  
35 -  
36 - /**获取员工ID*/  
37 - public Long getOpId() {  
38 - return opId;  
39 - }  
40 -  
41 - /**设置员工ID*/  
42 - public void setOpId(Long opId) {  
43 - this.opId = opId;  
44 - }  
45 -  
46 - /**获取数据状态:1有效,0无效,2:锁定*/  
47 - public Integer getDataState() {  
48 - return dataState;  
49 - }  
50 -  
51 - /**设置数据状态:1有效,0无效,2:锁定*/  
52 - public void setDataState(Integer dataState) {  
53 - this.dataState = dataState;  
54 - }  
55 -}  
56 \ No newline at end of file 0 \ No newline at end of file
src/main/java/com/zteits/oa/report/domain/AsraOpRelationsExample.java deleted
1 -package com.zteits.oa.report.domain;  
2 -  
3 -import java.util.ArrayList;  
4 -import java.util.List;  
5 -  
6 -public class AsraOpRelationsExample {  
7 - protected String orderByClause;  
8 -  
9 - protected boolean distinct;  
10 -  
11 - protected List<Criteria> oredCriteria;  
12 -  
13 - public AsraOpRelationsExample() {  
14 - oredCriteria = new ArrayList<Criteria>();  
15 - }  
16 -  
17 - public void setOrderByClause(String orderByClause) {  
18 - this.orderByClause = orderByClause;  
19 - }  
20 -  
21 - public String getOrderByClause() {  
22 - return orderByClause;  
23 - }  
24 -  
25 - public void setDistinct(boolean distinct) {  
26 - this.distinct = distinct;  
27 - }  
28 -  
29 - public boolean isDistinct() {  
30 - return distinct;  
31 - }  
32 -  
33 - public List<Criteria> getOredCriteria() {  
34 - return oredCriteria;  
35 - }  
36 -  
37 - public void or(Criteria criteria) {  
38 - oredCriteria.add(criteria);  
39 - }  
40 -  
41 - public Criteria or() {  
42 - Criteria criteria = createCriteriaInternal();  
43 - oredCriteria.add(criteria);  
44 - return criteria;  
45 - }  
46 -  
47 - public Criteria createCriteria() {  
48 - Criteria criteria = createCriteriaInternal();  
49 - if (oredCriteria.size() == 0) {  
50 - oredCriteria.add(criteria);  
51 - }  
52 - return criteria;  
53 - }  
54 -  
55 - protected Criteria createCriteriaInternal() {  
56 - Criteria criteria = new Criteria();  
57 - return criteria;  
58 - }  
59 -  
60 - public void clear() {  
61 - oredCriteria.clear();  
62 - orderByClause = null;  
63 - distinct = false;  
64 - }  
65 -  
66 - protected abstract static class GeneratedCriteria {  
67 - protected List<Criterion> criteria;  
68 -  
69 - protected GeneratedCriteria() {  
70 - super();  
71 - criteria = new ArrayList<Criterion>();  
72 - }  
73 -  
74 - public boolean isValid() {  
75 - return criteria.size() > 0;  
76 - }  
77 -  
78 - public List<Criterion> getAllCriteria() {  
79 - return criteria;  
80 - }  
81 -  
82 - public List<Criterion> getCriteria() {  
83 - return criteria;  
84 - }  
85 -  
86 - protected void addCriterion(String condition) {  
87 - if (condition == null) {  
88 - throw new RuntimeException("Value for condition cannot be null");  
89 - }  
90 - criteria.add(new Criterion(condition));  
91 - }  
92 -  
93 - protected void addCriterion(String condition, Object value, String property) {  
94 - if (value == null) {  
95 - throw new RuntimeException("Value for " + property + " cannot be null");  
96 - }  
97 - criteria.add(new Criterion(condition, value));  
98 - }  
99 -  
100 - protected void addCriterion(String condition, Object value1, Object value2, String property) {  
101 - if (value1 == null || value2 == null) {  
102 - throw new RuntimeException("Between values for " + property + " cannot be null");  
103 - }  
104 - criteria.add(new Criterion(condition, value1, value2));  
105 - }  
106 -  
107 - public Criteria andIdIsNull() {  
108 - addCriterion("id is null");  
109 - return (Criteria) this;  
110 - }  
111 -  
112 - public Criteria andIdIsNotNull() {  
113 - addCriterion("id is not null");  
114 - return (Criteria) this;  
115 - }  
116 -  
117 - public Criteria andIdEqualTo(Long value) {  
118 - addCriterion("id =", value, "id");  
119 - return (Criteria) this;  
120 - }  
121 -  
122 - public Criteria andIdNotEqualTo(Long value) {  
123 - addCriterion("id <>", value, "id");  
124 - return (Criteria) this;  
125 - }  
126 -  
127 - public Criteria andIdGreaterThan(Long value) {  
128 - addCriterion("id >", value, "id");  
129 - return (Criteria) this;  
130 - }  
131 -  
132 - public Criteria andIdGreaterThanOrEqualTo(Long value) {  
133 - addCriterion("id >=", value, "id");  
134 - return (Criteria) this;  
135 - }  
136 -  
137 - public Criteria andIdLessThan(Long value) {  
138 - addCriterion("id <", value, "id");  
139 - return (Criteria) this;  
140 - }  
141 -  
142 - public Criteria andIdLessThanOrEqualTo(Long value) {  
143 - addCriterion("id <=", value, "id");  
144 - return (Criteria) this;  
145 - }  
146 -  
147 - public Criteria andIdIn(List<Long> values) {  
148 - addCriterion("id in", values, "id");  
149 - return (Criteria) this;  
150 - }  
151 -  
152 - public Criteria andIdNotIn(List<Long> values) {  
153 - addCriterion("id not in", values, "id");  
154 - return (Criteria) this;  
155 - }  
156 -  
157 - public Criteria andIdBetween(Long value1, Long value2) {  
158 - addCriterion("id between", value1, value2, "id");  
159 - return (Criteria) this;  
160 - }  
161 -  
162 - public Criteria andIdNotBetween(Long value1, Long value2) {  
163 - addCriterion("id not between", value1, value2, "id");  
164 - return (Criteria) this;  
165 - }  
166 -  
167 - public Criteria andParentIdIsNull() {  
168 - addCriterion("parent_id is null");  
169 - return (Criteria) this;  
170 - }  
171 -  
172 - public Criteria andParentIdIsNotNull() {  
173 - addCriterion("parent_id is not null");  
174 - return (Criteria) this;  
175 - }  
176 -  
177 - public Criteria andParentIdEqualTo(Long value) {  
178 - addCriterion("parent_id =", value, "parentId");  
179 - return (Criteria) this;  
180 - }  
181 -  
182 - public Criteria andParentIdNotEqualTo(Long value) {  
183 - addCriterion("parent_id <>", value, "parentId");  
184 - return (Criteria) this;  
185 - }  
186 -  
187 - public Criteria andParentIdGreaterThan(Long value) {  
188 - addCriterion("parent_id >", value, "parentId");  
189 - return (Criteria) this;  
190 - }  
191 -  
192 - public Criteria andParentIdGreaterThanOrEqualTo(Long value) {  
193 - addCriterion("parent_id >=", value, "parentId");  
194 - return (Criteria) this;  
195 - }  
196 -  
197 - public Criteria andParentIdLessThan(Long value) {  
198 - addCriterion("parent_id <", value, "parentId");  
199 - return (Criteria) this;  
200 - }  
201 -  
202 - public Criteria andParentIdLessThanOrEqualTo(Long value) {  
203 - addCriterion("parent_id <=", value, "parentId");  
204 - return (Criteria) this;  
205 - }  
206 -  
207 - public Criteria andParentIdIn(List<Long> values) {  
208 - addCriterion("parent_id in", values, "parentId");  
209 - return (Criteria) this;  
210 - }  
211 -  
212 - public Criteria andParentIdNotIn(List<Long> values) {  
213 - addCriterion("parent_id not in", values, "parentId");  
214 - return (Criteria) this;  
215 - }  
216 -  
217 - public Criteria andParentIdBetween(Long value1, Long value2) {  
218 - addCriterion("parent_id between", value1, value2, "parentId");  
219 - return (Criteria) this;  
220 - }  
221 -  
222 - public Criteria andParentIdNotBetween(Long value1, Long value2) {  
223 - addCriterion("parent_id not between", value1, value2, "parentId");  
224 - return (Criteria) this;  
225 - }  
226 -  
227 - public Criteria andOpIdIsNull() {  
228 - addCriterion("op_id is null");  
229 - return (Criteria) this;  
230 - }  
231 -  
232 - public Criteria andOpIdIsNotNull() {  
233 - addCriterion("op_id is not null");  
234 - return (Criteria) this;  
235 - }  
236 -  
237 - public Criteria andOpIdEqualTo(Long value) {  
238 - addCriterion("op_id =", value, "opId");  
239 - return (Criteria) this;  
240 - }  
241 -  
242 - public Criteria andOpIdNotEqualTo(Long value) {  
243 - addCriterion("op_id <>", value, "opId");  
244 - return (Criteria) this;  
245 - }  
246 -  
247 - public Criteria andOpIdGreaterThan(Long value) {  
248 - addCriterion("op_id >", value, "opId");  
249 - return (Criteria) this;  
250 - }  
251 -  
252 - public Criteria andOpIdGreaterThanOrEqualTo(Long value) {  
253 - addCriterion("op_id >=", value, "opId");  
254 - return (Criteria) this;  
255 - }  
256 -  
257 - public Criteria andOpIdLessThan(Long value) {  
258 - addCriterion("op_id <", value, "opId");  
259 - return (Criteria) this;  
260 - }  
261 -  
262 - public Criteria andOpIdLessThanOrEqualTo(Long value) {  
263 - addCriterion("op_id <=", value, "opId");  
264 - return (Criteria) this;  
265 - }  
266 -  
267 - public Criteria andOpIdIn(List<Long> values) {  
268 - addCriterion("op_id in", values, "opId");  
269 - return (Criteria) this;  
270 - }  
271 -  
272 - public Criteria andOpIdNotIn(List<Long> values) {  
273 - addCriterion("op_id not in", values, "opId");  
274 - return (Criteria) this;  
275 - }  
276 -  
277 - public Criteria andOpIdBetween(Long value1, Long value2) {  
278 - addCriterion("op_id between", value1, value2, "opId");  
279 - return (Criteria) this;  
280 - }  
281 -  
282 - public Criteria andOpIdNotBetween(Long value1, Long value2) {  
283 - addCriterion("op_id not between", value1, value2, "opId");  
284 - return (Criteria) this;  
285 - }  
286 -  
287 - public Criteria andDataStateIsNull() {  
288 - addCriterion("data_state is null");  
289 - return (Criteria) this;  
290 - }  
291 -  
292 - public Criteria andDataStateIsNotNull() {  
293 - addCriterion("data_state is not null");  
294 - return (Criteria) this;  
295 - }  
296 -  
297 - public Criteria andDataStateEqualTo(Integer value) {  
298 - addCriterion("data_state =", value, "dataState");  
299 - return (Criteria) this;  
300 - }  
301 -  
302 - public Criteria andDataStateNotEqualTo(Integer value) {  
303 - addCriterion("data_state <>", value, "dataState");  
304 - return (Criteria) this;  
305 - }  
306 -  
307 - public Criteria andDataStateGreaterThan(Integer value) {  
308 - addCriterion("data_state >", value, "dataState");  
309 - return (Criteria) this;  
310 - }  
311 -  
312 - public Criteria andDataStateGreaterThanOrEqualTo(Integer value) {  
313 - addCriterion("data_state >=", value, "dataState");  
314 - return (Criteria) this;  
315 - }  
316 -  
317 - public Criteria andDataStateLessThan(Integer value) {  
318 - addCriterion("data_state <", value, "dataState");  
319 - return (Criteria) this;  
320 - }  
321 -  
322 - public Criteria andDataStateLessThanOrEqualTo(Integer value) {  
323 - addCriterion("data_state <=", value, "dataState");  
324 - return (Criteria) this;  
325 - }  
326 -  
327 - public Criteria andDataStateIn(List<Integer> values) {  
328 - addCriterion("data_state in", values, "dataState");  
329 - return (Criteria) this;  
330 - }  
331 -  
332 - public Criteria andDataStateNotIn(List<Integer> values) {  
333 - addCriterion("data_state not in", values, "dataState");  
334 - return (Criteria) this;  
335 - }  
336 -  
337 - public Criteria andDataStateBetween(Integer value1, Integer value2) {  
338 - addCriterion("data_state between", value1, value2, "dataState");  
339 - return (Criteria) this;  
340 - }  
341 -  
342 - public Criteria andDataStateNotBetween(Integer value1, Integer value2) {  
343 - addCriterion("data_state not between", value1, value2, "dataState");  
344 - return (Criteria) this;  
345 - }  
346 - }  
347 -  
348 - public static class Criteria extends GeneratedCriteria {  
349 -  
350 - protected Criteria() {  
351 - super();  
352 - }  
353 - }  
354 -  
355 - public static class Criterion {  
356 - private String condition;  
357 -  
358 - private Object value;  
359 -  
360 - private Object secondValue;  
361 -  
362 - private boolean noValue;  
363 -  
364 - private boolean singleValue;  
365 -  
366 - private boolean betweenValue;  
367 -  
368 - private boolean listValue;  
369 -  
370 - private String typeHandler;  
371 -  
372 - public String getCondition() {  
373 - return condition;  
374 - }  
375 -  
376 - public Object getValue() {  
377 - return value;  
378 - }  
379 -  
380 - public Object getSecondValue() {  
381 - return secondValue;  
382 - }  
383 -  
384 - public boolean isNoValue() {  
385 - return noValue;  
386 - }  
387 -  
388 - public boolean isSingleValue() {  
389 - return singleValue;  
390 - }  
391 -  
392 - public boolean isBetweenValue() {  
393 - return betweenValue;  
394 - }  
395 -  
396 - public boolean isListValue() {  
397 - return listValue;  
398 - }  
399 -  
400 - public String getTypeHandler() {  
401 - return typeHandler;  
402 - }  
403 -  
404 - protected Criterion(String condition) {  
405 - super();  
406 - this.condition = condition;  
407 - this.typeHandler = null;  
408 - this.noValue = true;  
409 - }  
410 -  
411 - protected Criterion(String condition, Object value, String typeHandler) {  
412 - super();  
413 - this.condition = condition;  
414 - this.value = value;  
415 - this.typeHandler = typeHandler;  
416 - if (value instanceof List<?>) {  
417 - this.listValue = true;  
418 - } else {  
419 - this.singleValue = true;  
420 - }  
421 - }  
422 -  
423 - protected Criterion(String condition, Object value) {  
424 - this(condition, value, null);  
425 - }  
426 -  
427 - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {  
428 - super();  
429 - this.condition = condition;  
430 - this.value = value;  
431 - this.secondValue = secondValue;  
432 - this.typeHandler = typeHandler;  
433 - this.betweenValue = true;  
434 - }  
435 -  
436 - protected Criterion(String condition, Object value, Object secondValue) {  
437 - this(condition, value, secondValue, null);  
438 - }  
439 - }  
440 -}  
441 \ No newline at end of file 0 \ No newline at end of file
src/main/java/com/zteits/oa/report/web/AsraDailyController.java
@@ -17,6 +17,7 @@ import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq; @@ -17,6 +17,7 @@ import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq;
17 import com.zteits.oa.api.dto.asradaily.param.AsraDailySaveOrUpdateReq; 17 import com.zteits.oa.api.dto.asradaily.param.AsraDailySaveOrUpdateReq;
18 import com.zteits.oa.api.dto.asraop.AsraOpDTO; 18 import com.zteits.oa.api.dto.asraop.AsraOpDTO;
19 import com.zteits.oa.api.service.report.query.AsraDailyQueryService; 19 import com.zteits.oa.api.service.report.query.AsraDailyQueryService;
  20 +import com.zteits.oa.report.domain.AsraDaily;
20 import com.zteits.oa.util.pagepaper.DateForObjectUtil; 21 import com.zteits.oa.util.pagepaper.DateForObjectUtil;
21 import io.swagger.annotations.Api; 22 import io.swagger.annotations.Api;
22 import io.swagger.annotations.ApiOperation; 23 import io.swagger.annotations.ApiOperation;
@@ -72,7 +73,7 @@ public class AsraDailyController { @@ -72,7 +73,7 @@ public class AsraDailyController {
72 if(asraOpDTO == null ){ 73 if(asraOpDTO == null ){
73 throw new BizException(ErrorType.PARAMM_NULL,"获取session为空"); 74 throw new BizException(ErrorType.PARAMM_NULL,"获取session为空");
74 } 75 }
75 - request.setOpId(asraOpDTO.getId()); 76 + request.setOpIds(asraOpDTO.getOpIds());
76 BizResult<AsraDailyOpNumForCurrentDayDTO> result = asraDailyQueryService.queryAsraDailyOpNumForCurrentDay(request); 77 BizResult<AsraDailyOpNumForCurrentDayDTO> result = asraDailyQueryService.queryAsraDailyOpNumForCurrentDay(request);
77 logger.info("--end工时查询-当天填报人数统计(汇总),结果={}",JSONObject.toJSON(result)); 78 logger.info("--end工时查询-当天填报人数统计(汇总),结果={}",JSONObject.toJSON(result));
78 return result; 79 return result;
@@ -93,7 +94,7 @@ public class AsraDailyController { @@ -93,7 +94,7 @@ public class AsraDailyController {
93 if(asraOpDTO == null ){ 94 if(asraOpDTO == null ){
94 throw new BizException(ErrorType.PARAMM_NULL,"获取session为空"); 95 throw new BizException(ErrorType.PARAMM_NULL,"获取session为空");
95 } 96 }
96 - request.setOpId(asraOpDTO.getId()); 97 + request.setOpIds(asraOpDTO.getOpIds());
97 BizResult<QueryAsraDailyAllForListReqDTO> result = asraDailyQueryService.queryAsraDailyAllForList(request); 98 BizResult<QueryAsraDailyAllForListReqDTO> result = asraDailyQueryService.queryAsraDailyAllForList(request);
98 logger.info("--end工时查询-所有员工及自己或者自己日报,结果={}",JSONObject.toJSON(result)); 99 logger.info("--end工时查询-所有员工及自己或者自己日报,结果={}",JSONObject.toJSON(result));
99 return result; 100 return result;
src/main/java/com/zteits/oa/report/web/OAuthController.java
1 package com.zteits.oa.report.web; 1 package com.zteits.oa.report.web;
2 2
  3 +import static org.mockito.Matchers.contains;
  4 +
3 import java.util.ArrayList; 5 import java.util.ArrayList;
4 import java.util.List; 6 import java.util.List;
5 7
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping; @@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
16 import org.springframework.web.bind.annotation.RestController; 18 import org.springframework.web.bind.annotation.RestController;
17 19
18 import com.alibaba.fastjson.JSONObject; 20 import com.alibaba.fastjson.JSONObject;
  21 +import com.xiaoleilu.hutool.util.CollectionUtil;
19 import com.zteits.oa.api.base.bean.BizResult; 22 import com.zteits.oa.api.base.bean.BizResult;
20 import com.zteits.oa.api.base.constants.ErrorType; 23 import com.zteits.oa.api.base.constants.ErrorType;
21 import com.zteits.oa.api.base.constants.SessionEnum; 24 import com.zteits.oa.api.base.constants.SessionEnum;
@@ -93,7 +96,7 @@ public class OAuthController { @@ -93,7 +96,7 @@ public class OAuthController {
93 List<Long> opIds = new ArrayList<>(); 96 List<Long> opIds = new ArrayList<>();
94 opIds.add(asraOpDTO.getId()); 97 opIds.add(asraOpDTO.getId());
95 /**递归查询员工ids.*/ 98 /**递归查询员工ids.*/
96 - opIds = queryOpTreeByOpId(asraOpDTO.getParentId(),opIds); 99 + opIds = queryOpTreeByOpId(asraOpDTO.getId());
97 logger.info("---获取到的opIds={}",JSONObject.toJSON(opIds)); 100 logger.info("---获取到的opIds={}",JSONObject.toJSON(opIds));
98 asraOpDTO.setOpIds(opIds); 101 asraOpDTO.setOpIds(opIds);
99 HttpSession session = request.getSession(); 102 HttpSession session = request.getSession();
@@ -140,22 +143,84 @@ public class OAuthController { @@ -140,22 +143,84 @@ public class OAuthController {
140 * @return 143 * @return
141 * 2018年8月2日 wangfs.<br/> 144 * 2018年8月2日 wangfs.<br/>
142 */ 145 */
143 - private List<Long> queryOpTreeByOpId(Long parentOpId,List<Long> opList){  
144 - if(parentOpId != null && !parentOpId.equals(-1L)){  
145 - AsraOpQueryReq asraOpQueryRe = new AsraOpQueryReq();  
146 - asraOpQueryRe.setId(parentOpId);  
147 - BizResult<AsraOpDTO> asraOpReult = asraOpQueryService.queryAsraOp(asraOpQueryRe);  
148 - if(asraOpReult != null && asraOpReult.getData() != null){  
149 - AsraOpDTO data = asraOpReult.getData();  
150 - if(data != null){  
151 - opList.add(data.getId());  
152 - }  
153 - queryOpTreeByOpId(data.getParentId(),opList);  
154 - }  
155 - } 146 + private List<Long> queryOpTreeByOpId(Long opId){
  147 + List<Long> rootAllList = new ArrayList<>();
  148 + rootAllList.add(opId);
  149 + //1.查找第一级下的所有用户
  150 + List<Long> rootOpIds = this.getRootOpIds(opId);
156 151
157 - return opList; 152 + //2.查找第二级以下所有用户
  153 + if(CollectionUtil.isNotEmpty(rootOpIds)){
  154 + rootAllList.addAll(rootOpIds);
  155 + for(Long getOpId:rootOpIds ){
  156 + List<Long> childOpIds = new ArrayList<>();
  157 + this.getChildOpIds(getOpId,childOpIds);
  158 + rootAllList.addAll(childOpIds);
  159 + }
  160 +
  161 + }
  162 + return rootAllList;
  163 + }
  164 +
  165 + /**
  166 + * 递归查找一级以下的用户
  167 + * @param parentId
  168 + * @return
  169 + * 2018年8月2日 wangfs.<br/>
  170 + */
  171 + private List<Long> getChildOpIds(Long parentId,List<Long> childOpIds){
  172 + AsraOpQueryReq asraOpQueryRe = new AsraOpQueryReq();
  173 + asraOpQueryRe.setParentId(parentId);
  174 + BizResult<List<AsraOpDTO>> asraOpReult = asraOpQueryService.queryAsraOpByParentId(asraOpQueryRe);
  175 + if(asraOpReult != null && CollectionUtil.isNotEmpty(asraOpReult.getData())){
  176 + List<AsraOpDTO> list = asraOpReult.getData();
  177 + for(AsraOpDTO asraOpDTO :list){
  178 + if(asraOpDTO == null){
  179 + continue;
  180 + }
  181 + childOpIds.add(asraOpDTO.getId());
  182 + }
  183 +
  184 + //遍历下一级
  185 + if(CollectionUtil.isNotEmpty(childOpIds)){
  186 + for(Long opId:childOpIds){
  187 + if(opId != null && !opId.equals(parentId)){
  188 + getChildOpIds(opId,childOpIds);
  189 + }
  190 + break;
  191 +
  192 + }
  193 +
  194 + }
  195 + }
  196 +
  197 + return childOpIds;
158 } 198 }
  199 +
  200 + /**
  201 + * 查找登陆用户下一级用户
  202 + * @param opId
  203 + * @param opList
  204 + * @return
  205 + * 2018年8月2日 wangfs.<br/>
  206 + */
  207 + private List<Long> getRootOpIds(Long parentId){
  208 + List<Long> opList = new ArrayList<>();
  209 + AsraOpQueryReq asraOpQueryRe = new AsraOpQueryReq();
  210 + asraOpQueryRe.setParentId(parentId);
  211 + BizResult<List<AsraOpDTO>> asraOpReult = asraOpQueryService.queryAsraOpByParentId(asraOpQueryRe);
  212 + if(asraOpReult != null && CollectionUtil.isNotEmpty(asraOpReult.getData())){
  213 + List<AsraOpDTO> list = asraOpReult.getData();
  214 + for(AsraOpDTO asraOpDTO :list){
  215 + if(asraOpDTO == null){
  216 + continue;
  217 + }
  218 + opList.add(asraOpDTO.getId());
  219 + }
  220 + }
  221 + return opList;
  222 + }
  223 +
159 224
160 225
161 } 226 }