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 17 //验证码
18 18 IMAGE_CODE("imageCode"),
19 19 //user 与 session 关联关系
20   - USER_SESSION_REL("user:session"),
  20 + USER_SESSION_REL("useroa:session"),
21 21 //user 对象
22   - USER_INFO("userop:session"),
  22 + USER_INFO("useroa:session"),
23 23 //登录密码输错次数
24 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 42 @Service
43 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 63 * 工时查询-当天提交及未提交人数汇总.<br/>
64 64 * @param request
65 65 * @return
... ... @@ -85,83 +85,64 @@ public class AsraDailyQueryServiceImpl implements AsraDailyQueryService {
85 85 AsraDailyForTotalNumAndDetailReq request) {
86 86 QueryAsraDailyAllForListReqDTO queryAsraDailyAllForListReqDTO = new QueryAsraDailyAllForListReqDTO();
87 87 List<AsraProjectAndPersonNumDTO> personNumDTOList = new ArrayList<>();
88   -
89   -
  88 + //1.查询项目填报人数
  89 + personNumDTOList = asraDailyDao.queryAsraDailyAllCountForList(request);
  90 + //查询项目明细
90 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 99 for(AsraDailyDO asraDailyDO:list){
94 100 if(asraDailyDO == null){
95 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 140 id = asraDailyDao.saveAsraDaily(asraDaily);
160   - } else {
161   - //更新
  141 + } else {
  142 + //更新
162 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 2  
3 3 import java.util.List;
4 4  
  5 +import com.zteits.oa.api.dto.asradaily.AsraProjectAndPersonNumDTO;
5 6 import com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq;
6 7 import com.zteits.oa.api.dto.asradaily.param.AsraDailyQueryReq;
7 8 import com.zteits.oa.report.domain.AsraDaily;
... ... @@ -48,6 +49,14 @@ public interface AsraDailyDao {
48 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 61 * @param
53 62 * @return
... ...
src/main/java/com/zteits/oa/report/dao/impl/AsraDailyDaoImpl.java
... ... @@ -5,6 +5,7 @@ import java.util.Date;
5 5 import java.util.List;
6 6  
7 7 import com.xiaoleilu.hutool.util.CollectionUtil;
  8 +import com.zteits.oa.api.dto.asradaily.AsraProjectAndPersonNumDTO;
8 9 import org.springframework.beans.factory.annotation.Autowired;
9 10 import org.springframework.stereotype.Component;
10 11  
... ... @@ -36,7 +37,7 @@ public class AsraDailyDaoImpl implements AsraDailyDao{
36 37  
37 38 @Autowired
38 39 private AsraDailyMapper asraDailyMapper;
39   -
  40 +
40 41 @Autowired
41 42 private AsraDailySmapper asraDailySmapper;
42 43  
... ... @@ -102,4 +103,15 @@ public class AsraDailyDaoImpl implements AsraDailyDao{
102 103 // TODO Auto-generated method stub
103 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 1 package com.zteits.oa.report.mapper.smapper;
2 2  
  3 +import com.zteits.oa.api.dto.asradaily.AsraProjectAndPersonNumDTO;
3 4 import com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq;
4 5 import com.zteits.oa.report.domain.sdo.AsraDailyDO;
5 6  
... ... @@ -13,6 +14,13 @@ public interface AsraDailySmapper {
13 14 * 2018年8月1日 wangfs.<br/>
14 15 */
15 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 26 * 查询当天填报人数.<br/>
... ...
src/main/resources/mybatis/smapper/AsraDailySmapper.xml
... ... @@ -32,15 +32,14 @@
32 32 <select id="queryAsraDailyAllForList" parameterType="com.zteits.oa.api.dto.asradaily.param.AsraDailyForTotalNumAndDetailReq"
33 33 resultType="com.zteits.oa.report.domain.sdo.AsraDailyDO">
34 34 SELECT
35   - a.id as id,
  35 + max(a.id) as id,
36 36 a.project_id as projectId,
37 37 c.projec_name as projectName,
38 38 a.asar_op_id as asarOpId,
39 39 a.asar_op_name as asarOpName,
40 40 a.daily_date as dailyDate,
41 41 max(a.daily_content) as dailyContent,
42   - '8' as asraHours,
43   - count(a.asar_op_id) as commitPersonNum
  42 + '8' as asraHours
44 43 FROM
45 44 asra_project c,
46 45 asra_daily a
... ... @@ -65,8 +64,7 @@
65 64 c.projec_name,
66 65 a.asar_op_id,
67 66 a.asar_op_name,
68   - a.daily_date,
69   - a.id
  67 + a.daily_date
70 68 order by a.project_id asc,asar_op_id asc,a.daily_date desc
71 69 </select>
72 70 <!-- 查询当天填报人数-->
... ... @@ -88,4 +86,38 @@
88 86 group by a.asar_op_id,a.daily_date)c
89 87  
90 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 123 </mapper>
92 124 \ No newline at end of file
... ...