Browse Source

统计图0602

master
zy_Java 5 years ago
parent
commit
06229583d1
  1. 2
      cloudutil/src/main/resources/application-util-test.yml
  2. 7
      tall/src/main/java/com/ccsens/tall/bean/vo/ChartVo.java
  3. 2
      tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java
  4. 2
      tall/src/main/java/com/ccsens/tall/persist/dao/ProTaskCommentDao.java
  5. 1
      tall/src/main/java/com/ccsens/tall/persist/dao/SysProjectDao.java
  6. 13
      tall/src/main/java/com/ccsens/tall/service/ChartService.java
  7. 11
      tall/src/main/java/com/ccsens/tall/service/ExcelService.java
  8. 2
      tall/src/main/java/com/ccsens/tall/service/IChartService.java
  9. 3
      tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
  10. 3
      tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java
  11. 6
      tall/src/main/java/com/ccsens/tall/service/WbsSubSheetService.java
  12. 6
      tall/src/main/resources/application-test.yml
  13. 4
      tall/src/main/resources/druid-test.yml
  14. 3
      tall/src/main/resources/mapper_dao/ProTaskCommentDao.xml
  15. 34
      tall/src/main/resources/mapper_dao/SysProjectDao.xml
  16. 9
      util/src/main/java/com/ccsens/util/DateUtil.java
  17. 30
      util/src/main/java/com/ccsens/util/StringUtil.java

2
cloudutil/src/main/resources/application-util-test.yml

@ -20,7 +20,7 @@ eureka:
service-url:
# 指定eureka server通信地址,注意/eureka/小尾巴不能少
#defaultZone: http://admin:admin@peer1:8761/eureka/,http://admin:admin@peer2:8762/eureka/
defaultZone: http://admin:admin@49.233.89.188:7010/eureka/
defaultZone: http://admin:admin@192.168.0.99:7010/eureka/
instance:
# 是否注册IP到eureka server,如不指定或设为false,那就回注册主机名到eureka server
prefer-ip-address: true

7
tall/src/main/java/com/ccsens/tall/bean/vo/ChartVo.java

@ -85,6 +85,13 @@ public class ChartVo {
}
return null;
}
public Integer getTodayUndone(){
if(ObjectUtil.isNotNull(today) && ObjectUtil.isNotNull(todayCompleted)){
return today - todayCompleted;
}
return null;
}
}
@Data

2
tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java

@ -59,6 +59,8 @@ public class PluginVo {
private Long commentTime;
@ApiModelProperty("评论内容")
private String description;
@ApiModelProperty("是否属于自己的评论,0否 1是")
private int mine;
}
}

2
tall/src/main/java/com/ccsens/tall/persist/dao/ProTaskCommentDao.java

@ -9,6 +9,6 @@ import java.util.List;
@Repository
public interface ProTaskCommentDao extends ProTaskCommentMapper {
List<PluginVo.CommentInfo> getCommentByTaskId(@Param("taskId") Long taskId);
List<PluginVo.CommentInfo> getCommentByTaskId(@Param("userId")Long userId,@Param("taskId") Long taskId);
}

1
tall/src/main/java/com/ccsens/tall/persist/dao/SysProjectDao.java

@ -39,4 +39,5 @@ public interface SysProjectDao extends SysProjectMapper{
Integer getTaskTotalByProjectId(@Param("projectId")Long projectId, @Param("start")Long start, @Param("end")Long end, @Param("roleId")Long roleId);
ChartVo.ProjectOverview getOverviewByToDay(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime);
}

13
tall/src/main/java/com/ccsens/tall/service/ChartService.java

@ -1,6 +1,7 @@
package com.ccsens.tall.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.tall.bean.dto.ChartDto;
@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
@ -75,8 +77,17 @@ public class ChartService implements IChartService{
* @return
*/
@Override
public ChartVo.ProjectOverview getOverview(Long currentUserId, Long projectId) {
public ChartVo.ProjectOverview getOverview(Long currentUserId, Long projectId) throws Exception {
//获取全部的数据
ChartVo.ProjectOverview projectOverview = sysProjectDao.getOverview(projectId);
//获取当天零点和二十四点的时间
Long startTime = DateUtil.beginOfDay(new Date()).getTime();
Long endTime = DateUtil.endOfDay(new Date()).getTime();
//获取当天的数据
ChartVo.ProjectOverview projectOverview1 = sysProjectDao.getOverviewByToDay(projectId,startTime,endTime);
//将数据整合在一起
projectOverview.setTodayCompleted(projectOverview1.getTodayCompleted() == null ? 0 : projectOverview1.getTodayCompleted());
projectOverview.setToday(projectOverview1.getToday());
return projectOverview;
}

11
tall/src/main/java/com/ccsens/tall/service/ExcelService.java

@ -15,8 +15,6 @@ import com.ccsens.util.cron.CronConstant;
import com.ccsens.util.cron.NatureToDate;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import net.sf.jsqlparser.expression.LongValue;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
@ -28,8 +26,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@Slf4j
@ -690,8 +686,12 @@ public class ExcelService implements IExcelService {
taskDetail.setAllMember((byte) 1);
//子项目
if (StrUtil.isNotEmpty(subProject)) {
subProject = StringUtil.replaceComma(subProject);
List<String> projectId = StringUtil.extractMessage(subProject);
if(CollectionUtil.isNotEmpty(projectId)) {
Long projectId1 = Long.valueOf(projectId.get(0));
// SysProject project = projectService.selectByNameAndUserId(subProject, currentUserId);
SysProject project = sysProjectDao.selectByPrimaryKey(Long.valueOf(subProject));
SysProject project = sysProjectDao.selectByPrimaryKey(projectId1);
if (ObjectUtil.isNotNull(project)) {
taskDetail.setSubProjectId(project.getId());
taskDetail.setSubProject(project.getName());
@ -699,6 +699,7 @@ public class ExcelService implements IExcelService {
projectService.updateProject(project);
}
}
}
//负责人
if (CollectionUtil.isNotEmpty(proRoles)) {
Long executorRoleId = null;

2
tall/src/main/java/com/ccsens/tall/service/IChartService.java

@ -12,7 +12,7 @@ public interface IChartService {
List<ChartVo.ProjectTrendVo> getProjectTrend(Long currentUserId, ChartDto.ProjectTrendDto projectTrendDto);
ChartVo.ProjectOverview getOverview(Long currentUserId, Long projectId);
ChartVo.ProjectOverview getOverview(Long currentUserId, Long projectId) throws Exception;
List<ChartVo.BurnoutFigure> getBurnoutFigure(Long currentUserId, ChartDto.ProjectTrendDto projectTrendDto);

3
tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java

@ -774,9 +774,10 @@ public class TaskDeliverService implements ITaskDeliverService {
for(ProTaskDeliverPostLog deliverPostLog : postLogList){
//删除文件
SysCommitedFile file = commitedFileDao.selectByPrimaryKey(deliverPostLog.getFileId());
if(ObjectUtil.isNotNull(file)) {
file.setRecStatus((byte) 2);
commitedFileDao.updateByPrimaryKeySelective(file);
}
// deleteFile(file.getPath());
// commitedFileDao.deleteByPrimaryKey(deliverPostLog.getId());
//删除交付物和文件、检查人的关联信息

3
tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java

@ -136,6 +136,7 @@ public class TaskPluginService implements ITaskPluginService{
commentInfo.setTaskId(proTaskComment.getTaskSubTimeId());
commentInfo.setCommentTime(proTaskComment.getTime());
commentInfo.setDescription(proTaskComment.getDescription());
commentInfo.setMine(1);
//查询用户头像和昵称
SysUser sysUser = sysUserDao.selectByPrimaryKey(userId);
commentInfo.setAvatarUrl(sysUser.getAvatarUrl());
@ -158,7 +159,7 @@ public class TaskPluginService implements ITaskPluginService{
@Override
public List<PluginVo.CommentInfo> getComment(Long currentUserId, Long taskId) {
List<PluginVo.CommentInfo> commentInfoList = proTaskCommentDao.getCommentByTaskId(taskId);
List<PluginVo.CommentInfo> commentInfoList = proTaskCommentDao.getCommentByTaskId(currentUserId,taskId);
return commentInfoList;
}

6
tall/src/main/java/com/ccsens/tall/service/WbsSubSheetService.java

@ -557,10 +557,11 @@ public class WbsSubSheetService implements IWbsSubSheetService {
XSSFSheet relevanceSheet = xssfWorkbook.getSheet("关联项目表");
if(ObjectUtil.isNotNull(relevanceSheet)){
for (int i = 1; i <= relevanceSheet.getLastRowNum(); i++) {
if (ObjectUtil.isNotNull(relevanceSheet.getRow(i))){
String relevanceProjectId = ExcelUtil.getCellValue(relevanceSheet.getRow(i).getCell(2));
if(StrUtil.isNotEmpty(relevanceProjectId)){
if (StrUtil.isNotEmpty(relevanceProjectId)) {
SysProject sysProject = sysProjectDao.selectByPrimaryKey(Long.valueOf(relevanceProjectId));
if(ObjectUtil.isNull(sysProject)){
if (ObjectUtil.isNull(sysProject)) {
throw new BaseException(CodeEnum.NOT_PROJECT.addMsg("关联项目表" + i));
}
SysRelevanceProject sysRelevanceProject = new SysRelevanceProject();
@ -572,4 +573,5 @@ public class WbsSubSheetService implements IWbsSubSheetService {
}
}
}
}
}

6
tall/src/main/resources/application-test.yml

@ -11,7 +11,7 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
rabbitmq:
host: api.ccsens.com
host: 127.0.0.1
password: 111111
port: 5672
username: admin
@ -31,5 +31,5 @@ swagger:
enable: true
eureka:
instance:
ip-address: 49.233.89.188
gatewayUrl: https://test.tall.wiki/gateway/
ip-address: 192.168.0.99
gatewayUrl: http://192.168.0.99/gateway/

4
tall/src/main/resources/druid-test.yml

@ -15,7 +15,7 @@ spring:
maxWait: 60000
minEvictableIdleTimeMillis: 300000
minIdle: 5
password:
password: 68073a279b399baa1fa12cf39bfbb65bfc1480ffee7b659ccc81cf19be8c4473
poolPreparedStatements: true
servletLogSlowSql: true
servletLoginPassword: 111111
@ -27,7 +27,7 @@ spring:
testOnReturn: false
testWhileIdle: true
timeBetweenEvictionRunsMillis: 60000
url: jdbc:mysql://127.0.0.1/tall?useUnicode=true&characterEncoding=UTF-8
url: jdbc:mysql://49.233.89.188/tall?useUnicode=true&characterEncoding=UTF-8
username: root
validationQuery: SELECT 1 FROM DUAL
env: CCSENS_TALL

3
tall/src/main/resources/mapper_dao/ProTaskCommentDao.xml

@ -10,7 +10,8 @@
s.avatar_url as avatarUrl,
c.task_sub_time_id as taskId,
c.`time` as commentTime,
c.description as description
c.description as description,
if(c.user_id = #{userId},1,0) as mine
FROM
`t_pro_task_comment` c left join t_sys_user s on c.user_id = s.id left join t_sys_auth a on s.id = a.user_id and a.identify_type = 3
WHERE

34
tall/src/main/resources/mapper_dao/SysProjectDao.xml

@ -377,7 +377,7 @@
(m.complated_status = 2
or
m.complated_status is null)
GROUP BY st.id
GROUP BY st.task_detail_id
) t on t.sTaskId = td.id
WHERE
td.project_id = #{projectId}
@ -385,6 +385,38 @@
td.`level` in (2,3)
</select>
<select id="getOverviewByToDay" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.ChartVo$ProjectOverview">
SELECT
count(td.id) as today,
sum(t.isFinish) as todayCompleted
FROM
t_pro_task_detail td LEFT JOIN
(
SELECT
st.id as sId,
st.task_detail_id as sTaskId,
if(count(m.id)=0,FALSE,true) as isFinish,
if(count(m.id)>0
and m.real_finish_time &gt; st.begin_time
and m.real_finish_time &lt;= st.end_time,true,false) as completedOnTime
FROM
t_pro_task_sub_time st LEFT JOIN t_pro_sub_time_member m on st.id = m.task_sub_time_id
WHERE
(m.complated_status = 2
or
m.complated_status is null)
GROUP BY st.task_detail_id
) t on t.sTaskId = td.id
WHERE
td.project_id = #{projectId}
and
td.`level` in (2,3)
and
td.begin_time &lt; #{endTime}
and
td.end_time &gt; #{startTime}
</select>
<select id="getBurnoutFigure" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.ChartVo$BurnoutFigure">
SELECT

9
util/src/main/java/com/ccsens/util/DateUtil.java

@ -1,5 +1,6 @@
package com.ccsens.util;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.StrUtil;
import com.ccsens.util.exception.BaseException;
@ -153,10 +154,12 @@ public class DateUtil extends cn.hutool.core.date.DateUtil {
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime().getTime();
}
//
// public static void main(String[] args) throws Exception {
//
// System.out.println(getZeroTime(new Date()));
// DateTime endTime = cn.hutool.core.date.DateUtil.endOfDay(new Date());
// DateTime beginTime = cn.hutool.core.date.DateUtil.beginOfDay(new Date());
// System.out.println(endTime);
// System.out.println(beginTime);
// }
}

30
util/src/main/java/com/ccsens/util/StringUtil.java

@ -59,21 +59,21 @@ public class StringUtil {
return matcher.matches();
}
public static void main(String[] args) {
// matchSingle("每天5分", MINUTE_REGEXP);
// public static void main(String[] args) {
//// matchSingle("每天5分", MINUTE_REGEXP);
////
//// String[] split = "a至b".split("[到\\-至]");
//// for (String s: split) {
//// System.out.println("split:" + s);
//// }
//// System.out.println(isMatch("3到5",CONTINUE_RANGE));
//// System.out.println("------------------------------------------------" + (null + "hello wold"));
//// match("3-5小时", "(每隔?\\d*小?时)|(\\d+\\-\\d+小?时)|(\\d*点)|(\\d*时)");
//
// String[] split = "a至b".split("[到\\-至]");
// for (String s: split) {
// System.out.println("split:" + s);
//// System.out.println(isMatch("每周一5点", EVERY_WEEK_MORE));
//// System.out.println(isMatch("每周5点", EVERY_WEEK_MORE));
// System.out.println(matchSingle("第一百零三个", CHINESE_NUM));
// }
// System.out.println(isMatch("3到5",CONTINUE_RANGE));
// System.out.println("------------------------------------------------" + (null + "hello wold"));
// match("3-5小时", "(每隔?\\d*小?时)|(\\d+\\-\\d+小?时)|(\\d*点)|(\\d*时)");
// System.out.println(isMatch("每周一5点", EVERY_WEEK_MORE));
// System.out.println(isMatch("每周5点", EVERY_WEEK_MORE));
System.out.println(matchSingle("第一百零三个", CHINESE_NUM));
}
@ -235,7 +235,9 @@ public class StringUtil {
}
// public static void main(String[] args) {
// List<String> list = extractMessage("");
// String a = "员工成长(112333)";
//
// List<String> list = extractMessage(a);
// for(String s : list){
// System.out.println(s);
// }

Loading…
Cancel
Save