Commit 58cb0f6caab2b23b663211ec94956b63c9521ad8

Authored by 王富生
1 parent 04bcc6f5

更改工时查询sql

src/main/java/com/zteits/oa/api/base/constants/SessionEnum.java
@@ -17,9 +17,9 @@ public enum SessionEnum { @@ -17,9 +17,9 @@ public enum SessionEnum {
17 //验证码 17 //验证码
18 IMAGE_CODE("imageCode"), 18 IMAGE_CODE("imageCode"),
19 //user 与 session 关联关系 19 //user 与 session 关联关系
20 - USER_SESSION_REL("user:session"), 20 + USER_SESSION_REL("useroa:session"),
21 //user 对象 21 //user 对象
22 - USER_INFO("userop:session"), 22 + USER_INFO("useroa:session"),
23 //登录密码输错次数 23 //登录密码输错次数
24 PASS_WRONG_NUM("pass:wrong:num"); 24 PASS_WRONG_NUM("pass:wrong:num");
25 25
src/main/java/com/zteits/oa/report/biz/AsraDailyQueryServiceImpl.java
@@ -42,24 +42,24 @@ import java.util.Date; @@ -42,24 +42,24 @@ import java.util.Date;
42 @Service 42 @Service
43 public class AsraDailyQueryServiceImpl implements AsraDailyQueryService { 43 public class AsraDailyQueryServiceImpl implements AsraDailyQueryService {
44 44
45 - @Autowired  
46 - private AsraDailyDao asraDailyDao;  
47 -  
48 - @Override  
49 - public BizResult<List<AsraDailyDTO>> queryAsraDailyList(AsraDailyQueryReq asraDailyQueryReq) {  
50 - List<AsraDailyDTO> asraDailyDTOs = new ArrayList<>();  
51 - List<AsraDaily> asraDailies = asraDailyDao.queryAsraDailyList(asraDailyQueryReq);  
52 - if(CollectionUtil.isNotEmpty(asraDailies)){  
53 - for(AsraDaily asraDaily:asraDailies){  
54 - AsraDailyDTO asraDailyDTO = new AsraDailyDTO();  
55 - BeanUtils.copyProperties(asraDaily,asraDailyDTO);  
56 - asraDailyDTOs.add(asraDailyDTO);  
57 - }  
58 - }  
59 - return new BizResult<>(asraDailyDTOs);  
60 - }  
61 -  
62 - /** 45 + @Autowired
  46 + private AsraDailyDao asraDailyDao;
  47 +
  48 + @Override
  49 + public BizResult<List<AsraDailyDTO>> queryAsraDailyList(AsraDailyQueryReq asraDailyQueryReq) {
  50 + List<AsraDailyDTO> asraDailyDTOs = new ArrayList<>();
  51 + List<AsraDaily> asraDailies = asraDailyDao.queryAsraDailyList(asraDailyQueryReq);
  52 + if(CollectionUtil.isNotEmpty(asraDailies)){
  53 + for(AsraDaily asraDaily:asraDailies){
  54 + AsraDailyDTO asraDailyDTO = new AsraDailyDTO();
  55 + BeanUtils.copyProperties(asraDaily,asraDailyDTO);
  56 + asraDailyDTOs.add(asraDailyDTO);
  57 + }
  58 + }
  59 + return new BizResult<>(asraDailyDTOs);
  60 + }
  61 +
  62 + /**
63 * 工时查询-当天提交及未提交人数汇总.<br/> 63 * 工时查询-当天提交及未提交人数汇总.<br/>
64 * @param request 64 * @param request
65 * @return 65 * @return
@@ -85,83 +85,64 @@ public class AsraDailyQueryServiceImpl implements AsraDailyQueryService { @@ -85,83 +85,64 @@ public class AsraDailyQueryServiceImpl implements AsraDailyQueryService {
85 AsraDailyForTotalNumAndDetailReq request) { 85 AsraDailyForTotalNumAndDetailReq request) {
86 QueryAsraDailyAllForListReqDTO queryAsraDailyAllForListReqDTO = new QueryAsraDailyAllForListReqDTO(); 86 QueryAsraDailyAllForListReqDTO queryAsraDailyAllForListReqDTO = new QueryAsraDailyAllForListReqDTO();
87 List<AsraProjectAndPersonNumDTO> personNumDTOList = new ArrayList<>(); 87 List<AsraProjectAndPersonNumDTO> personNumDTOList = new ArrayList<>();
88 -  
89 - 88 + //1.查询项目填报人数
  89 + personNumDTOList = asraDailyDao.queryAsraDailyAllCountForList(request);
  90 + //查询项目明细
90 List<AsraDailyDO> list = asraDailyDao.queryAsraDailyAllForList(request); 91 List<AsraDailyDO> list = asraDailyDao.queryAsraDailyAllForList(request);
91 - //添加项目  
92 - if(CollectionUtil.isNotEmpty(list)){ 92 +
  93 + //2.添加明细
  94 + for(AsraProjectAndPersonNumDTO asraProjectAndPersonNumDTO:personNumDTOList){
  95 + List<QueryAsraDailyAllDetailForListReqDTO> listDetail = new ArrayList<>();
  96 + if(asraProjectAndPersonNumDTO == null){
  97 + continue;
  98 + }
93 for(AsraDailyDO asraDailyDO:list){ 99 for(AsraDailyDO asraDailyDO:list){
94 if(asraDailyDO == null){ 100 if(asraDailyDO == null){
95 continue; 101 continue;
96 } 102 }
97 - AsraProjectAndPersonNumDTO asraProjectAndPersonNumDTO = new AsraProjectAndPersonNumDTO();  
98 - BeanUtils.copyProperties(asraDailyDO, asraProjectAndPersonNumDTO);  
99 - if(!personNumDTOList.contains(asraProjectAndPersonNumDTO)){  
100 - personNumDTOList.add(asraProjectAndPersonNumDTO);  
101 - }else{  
102 - for (AsraProjectAndPersonNumDTO getAsraProjectAndPersonNumDTO:personNumDTOList){  
103 - if(getAsraProjectAndPersonNumDTO == null){  
104 - continue;  
105 - }  
106 - if(getAsraProjectAndPersonNumDTO.getProjectId().equals(asraDailyDO.getProjectId())){  
107 - getAsraProjectAndPersonNumDTO.setCommitPersonNum(getAsraProjectAndPersonNumDTO.getCommitPersonNum()+asraDailyDO.getCommitPersonNum());  
108 - }  
109 - }  
110 - }  
111 - }  
112 - //2.添加明细  
113 - for(AsraProjectAndPersonNumDTO asraProjectAndPersonNumDTO:personNumDTOList){  
114 - List<QueryAsraDailyAllDetailForListReqDTO> listDetail = new ArrayList<>();  
115 - if(asraProjectAndPersonNumDTO == null){  
116 - continue;  
117 - }  
118 - for(AsraDailyDO asraDailyDO:list){  
119 - if(asraDailyDO == null){  
120 - continue;  
121 - }  
122 - if(asraProjectAndPersonNumDTO.getProjectId().equals(asraDailyDO.getProjectId())){  
123 - QueryAsraDailyAllDetailForListReqDTO dto = new QueryAsraDailyAllDetailForListReqDTO();  
124 - BeanUtils.copyProperties(asraDailyDO, dto);  
125 - if(asraDailyDO.getDailyDate()!=null){  
126 - String dailyDate = DateUtil.format(asraDailyDO.getDailyDate(),"yyyy-MM-dd");  
127 - dto.setDailyDate(dailyDate.substring(0,4)+"年"+dailyDate.substring(5,7)+"月"+dailyDate.substring(8)+"日");  
128 - }  
129 - listDetail.add(dto);  
130 - 103 + if(asraProjectAndPersonNumDTO.getProjectId().equals(asraDailyDO.getProjectId())){
  104 + QueryAsraDailyAllDetailForListReqDTO dto = new QueryAsraDailyAllDetailForListReqDTO();
  105 + BeanUtils.copyProperties(asraDailyDO, dto);
  106 + if(asraDailyDO.getDailyDate()!=null){
  107 + String dailyDate = DateUtil.format(asraDailyDO.getDailyDate(),"yyyy-MM-dd");
  108 + dto.setDailyDate(dailyDate.substring(0,4)+"年"+dailyDate.substring(5,7)+"月"+dailyDate.substring(8)+"日");
131 } 109 }
  110 + listDetail.add(dto);
  111 +
132 } 112 }
133 - asraProjectAndPersonNumDTO.setListDetail(listDetail);  
134 } 113 }
  114 + asraProjectAndPersonNumDTO.setListDetail(listDetail);
135 } 115 }
136 - queryAsraDailyAllForListReqDTO.setList(personNumDTOList);  
137 -  
138 - return new BizResult<QueryAsraDailyAllForListReqDTO>(queryAsraDailyAllForListReqDTO);  
139 - }  
140 -  
141 -  
142 - @Override  
143 - public BizResult<Long> saveOrUpdateAsraDaily(AsraDailySaveOrUpdateReq request) {  
144 - AsraDaily asraDaily = new AsraDaily();  
145 - BeanUtils.copyProperties(request, asraDaily);  
146 - asraDaily.setModfiyDate(new Date());  
147 - asraDaily.setModfiyEmpid(request.getAsarOpId() + "");  
148 - asraDaily.setModfiyEmpName(request.getAsarOpName() + "");  
149 - Date dailyDate = DateUtil.parseDate(request.getDailyDate());  
150 - asraDaily.setDailyDate(dailyDate);  
151 -  
152 - Long id;  
153 - if (null == request.getId()) {  
154 - //新增  
155 - asraDaily.setDataState(1);  
156 - asraDaily.setCreateDate(new Date());  
157 - asraDaily.setCreateEmpid(request.getAsarOpId()+"");  
158 - asraDaily.setCreateEmpName(request.getAsarOpName() + ""); 116 +
  117 + queryAsraDailyAllForListReqDTO.setList(personNumDTOList);
  118 +
  119 + return new BizResult<QueryAsraDailyAllForListReqDTO>(queryAsraDailyAllForListReqDTO);
  120 +}
  121 +
  122 +
  123 + @Override
  124 + public BizResult<Long> saveOrUpdateAsraDaily(AsraDailySaveOrUpdateReq request) {
  125 + AsraDaily asraDaily = new AsraDaily();
  126 + BeanUtils.copyProperties(request, asraDaily);
  127 + asraDaily.setModfiyDate(new Date());
  128 + asraDaily.setModfiyEmpid(request.getAsarOpId() + "");
  129 + asraDaily.setModfiyEmpName(request.getAsarOpName() + "");
  130 + Date dailyDate = DateUtil.parseDate(request.getDailyDate());
  131 + asraDaily.setDailyDate(dailyDate);
  132 +
  133 + Long id;
  134 + if (null == request.getId()) {
  135 + //新增
  136 + asraDaily.setDataState(1);
  137 + asraDaily.setCreateDate(new Date());
  138 + asraDaily.setCreateEmpid(request.getAsarOpId()+"");
  139 + asraDaily.setCreateEmpName(request.getAsarOpName() + "");
159 id = asraDailyDao.saveAsraDaily(asraDaily); 140 id = asraDailyDao.saveAsraDaily(asraDaily);
160 - } else {  
161 - //更新 141 + } else {
  142 + //更新
162 id = asraDailyDao.updateAsraDaily(asraDaily); 143 id = asraDailyDao.updateAsraDaily(asraDaily);
163 - } 144 + }
164 145
165 - return new BizResult<>(id);  
166 - } 146 + return new BizResult<>(id);
  147 + }
167 } 148 }
src/main/java/com/zteits/oa/report/dao/AsraDailyDao.java
@@ -2,6 +2,7 @@ package com.zteits.oa.report.dao; @@ -2,6 +2,7 @@ package com.zteits.oa.report.dao;
2 2
3 import java.util.List; 3 import java.util.List;
4 4
  5 +import com.zteits.oa.api.dto.asradaily.AsraProjectAndPersonNumDTO;
5 import com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq; 6 import com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq;
6 import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq; 7 import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq;
7 import com.zteits.oa.report.domain.AsraDaily; 8 import com.zteits.oa.report.domain.AsraDaily;
@@ -48,6 +49,14 @@ public interface AsraDailyDao { @@ -48,6 +49,14 @@ public interface AsraDailyDao {
48 List<AsraDailyDO> queryAsraDailyAllForList(AsraDailyForTotalNumAndDetailReq request); 49 List<AsraDailyDO> queryAsraDailyAllForList(AsraDailyForTotalNumAndDetailReq request);
49 50
50 /** 51 /**
  52 + * 工时查询-所有员工及自己项目人数统计.<br/>
  53 + * @param request
  54 + * @return
  55 + * 2018年8月1日 wangfs.<br/>
  56 + */
  57 + List<AsraProjectAndPersonNumDTO> queryAsraDailyAllCountForList(AsraDailyForTotalNumAndDetailReq request);
  58 +
  59 + /**
51 * 保存日报信息 60 * 保存日报信息
52 * @param 61 * @param
53 * @return 62 * @return
src/main/java/com/zteits/oa/report/dao/impl/AsraDailyDaoImpl.java
@@ -5,6 +5,7 @@ import java.util.Date; @@ -5,6 +5,7 @@ import java.util.Date;
5 import java.util.List; 5 import java.util.List;
6 6
7 import com.xiaoleilu.hutool.util.CollectionUtil; 7 import com.xiaoleilu.hutool.util.CollectionUtil;
  8 +import com.zteits.oa.api.dto.asradaily.AsraProjectAndPersonNumDTO;
8 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.stereotype.Component; 10 import org.springframework.stereotype.Component;
10 11
@@ -36,7 +37,7 @@ public class AsraDailyDaoImpl implements AsraDailyDao{ @@ -36,7 +37,7 @@ public class AsraDailyDaoImpl implements AsraDailyDao{
36 37
37 @Autowired 38 @Autowired
38 private AsraDailyMapper asraDailyMapper; 39 private AsraDailyMapper asraDailyMapper;
39 - 40 +
40 @Autowired 41 @Autowired
41 private AsraDailySmapper asraDailySmapper; 42 private AsraDailySmapper asraDailySmapper;
42 43
@@ -102,4 +103,15 @@ public class AsraDailyDaoImpl implements AsraDailyDao{ @@ -102,4 +103,15 @@ public class AsraDailyDaoImpl implements AsraDailyDao{
102 // TODO Auto-generated method stub 103 // TODO Auto-generated method stub
103 return asraDailySmapper.queryAsraDailyAllForList(request); 104 return asraDailySmapper.queryAsraDailyAllForList(request);
104 } 105 }
  106 +
  107 + /**
  108 + * 工时查询-所有员工及自己项目人数统计.<br/>
  109 + * @param request
  110 + * @return
  111 + * 2018年8月1日 wangfs.<br/>
  112 + */
  113 + @Override
  114 + public List<AsraProjectAndPersonNumDTO> queryAsraDailyAllCountForList(AsraDailyForTotalNumAndDetailReq request) {
  115 + return asraDailySmapper.queryAsraDailyAllCountForList(request);
  116 + }
105 } 117 }
src/main/java/com/zteits/oa/report/mapper/smapper/AsraDailySmapper.java
1 package com.zteits.oa.report.mapper.smapper; 1 package com.zteits.oa.report.mapper.smapper;
2 2
  3 +import com.zteits.oa.api.dto.asradaily.AsraProjectAndPersonNumDTO;
3 import com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq; 4 import com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq;
4 import com.zteits.oa.report.domain.sdo.AsraDailyDO; 5 import com.zteits.oa.report.domain.sdo.AsraDailyDO;
5 6
@@ -13,6 +14,13 @@ public interface AsraDailySmapper { @@ -13,6 +14,13 @@ public interface AsraDailySmapper {
13 * 2018年8月1日 wangfs.<br/> 14 * 2018年8月1日 wangfs.<br/>
14 */ 15 */
15 List<AsraDailyDO> queryAsraDailyAllForList(AsraDailyForTotalNumAndDetailReq request); 16 List<AsraDailyDO> queryAsraDailyAllForList(AsraDailyForTotalNumAndDetailReq request);
  17 + /**
  18 + * 工时查询-所有员工及自己或者自己项目人数.<br/>
  19 + * @param request
  20 + * @return
  21 + * 2018年8月1日 wangfs.<br/>
  22 + */
  23 + List<AsraProjectAndPersonNumDTO> queryAsraDailyAllCountForList(AsraDailyForTotalNumAndDetailReq request);
16 24
17 /** 25 /**
18 * 查询当天填报人数.<br/> 26 * 查询当天填报人数.<br/>
src/main/resources/mybatis/smapper/AsraDailySmapper.xml
@@ -32,15 +32,14 @@ @@ -32,15 +32,14 @@
32 <select id="queryAsraDailyAllForList" parameterType="com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq" 32 <select id="queryAsraDailyAllForList" parameterType="com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq"
33 resultType="com.zteits.oa.report.domain.sdo.AsraDailyDO"> 33 resultType="com.zteits.oa.report.domain.sdo.AsraDailyDO">
34 SELECT 34 SELECT
35 - a.id as id, 35 + max(a.id) as id,
36 a.project_id as projectId, 36 a.project_id as projectId,
37 c.projec_name as projectName, 37 c.projec_name as projectName,
38 a.asar_op_id as asarOpId, 38 a.asar_op_id as asarOpId,
39 a.asar_op_name as asarOpName, 39 a.asar_op_name as asarOpName,
40 a.daily_date as dailyDate, 40 a.daily_date as dailyDate,
41 max(a.daily_content) as dailyContent, 41 max(a.daily_content) as dailyContent,
42 - '8' as asraHours,  
43 - count(a.asar_op_id) as commitPersonNum 42 + '8' as asraHours
44 FROM 43 FROM
45 asra_project c, 44 asra_project c,
46 asra_daily a 45 asra_daily a
@@ -65,8 +64,7 @@ @@ -65,8 +64,7 @@
65 c.projec_name, 64 c.projec_name,
66 a.asar_op_id, 65 a.asar_op_id,
67 a.asar_op_name, 66 a.asar_op_name,
68 - a.daily_date,  
69 - a.id 67 + a.daily_date
70 order by a.project_id asc,asar_op_id asc,a.daily_date desc 68 order by a.project_id asc,asar_op_id asc,a.daily_date desc
71 </select> 69 </select>
72 <!-- 查询当天填报人数--> 70 <!-- 查询当天填报人数-->
@@ -88,4 +86,38 @@ @@ -88,4 +86,38 @@
88 group by a.asar_op_id,a.daily_date)c 86 group by a.asar_op_id,a.daily_date)c
89 87
90 </select> 88 </select>
  89 + <!--工时查询-所有员工及自己或者自己项目人数 -->
  90 + <select id="queryAsraDailyAllCountForList" parameterType="com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq"
  91 + resultType="com.zteits.oa.api.dto.asradaily.AsraProjectAndPersonNumDTO">
  92 + SELECT
  93 +
  94 + a.project_id as projectId,
  95 + c.projec_name as projectName,
  96 + count(DISTINCT a.asar_op_id) as commitPersonNum
  97 + FROM
  98 + asra_project c,
  99 + asra_daily a
  100 + WHERE
  101 + 1 = 1
  102 + AND a.project_id = c.id
  103 + AND a.asar_op_id in
  104 + <foreach collection="opIds" item="opId" open="(" close=")" separator=",">
  105 + #{opId}
  106 + </foreach>
  107 + AND a.data_state =1
  108 + <![CDATA[AND a.daily_date >= #{beginTime} ]]>
  109 + <![CDATA[AND a.daily_date <= #{endTime}]]>
  110 + <if test="projectId != null and projectId !=''">
  111 + and a.project_id=#{projectId}
  112 + </if>
  113 + <if test="opName != null and opName !=''">
  114 + and a.asar_op_name like CONCAT('%',#{opName},'%')
  115 + </if>
  116 + GROUP BY
  117 + a.project_id,
  118 + c.projec_name
  119 +
  120 + </select>
  121 +
  122 +
91 </mapper> 123 </mapper>
92 \ No newline at end of file 124 \ No newline at end of file