任务进度甘特图大屏

This commit is contained in:
guo 2023-11-07 18:24:50 +08:00
parent 556159fb96
commit 1265732fe8
25 changed files with 380 additions and 66 deletions

View File

@ -26,23 +26,6 @@ public class SectorVo {
private String count;
private List<SectorOneVo> data;
/**
* 计算data的百分比
*
* @param vo
*/
private static void calPercent(SectorVo vo) {
String count = vo.getCount();
for (SectorOneVo one : vo.getData()) {
Double d = Double.valueOf(count);
if (d.equals(0.0)) {
one.setPercent("0");
} else {
one.setPercent(NumberUtil.roundStr(Double.valueOf(one.getCount()) / d * 100, 2));
}
}
}
/**
* 获取扇形图表通过枚举
@ -110,4 +93,22 @@ public class SectorVo {
public static void calCount(SectorVo vo) {
vo.setCount(String.valueOf(vo.getData().stream().mapToInt(o -> Integer.parseInt(o.getCount())).sum()));
}
/**
* 计算data的百分比
*
* @param vo
*/
private static void calPercent(SectorVo vo) {
String count = vo.getCount();
for (SectorOneVo one : vo.getData()) {
Double d = Double.valueOf(count);
if (d.equals(0.0)) {
one.setPercent("0");
} else {
one.setPercent(NumberUtil.roundStr(Double.valueOf(one.getCount()) / d * 100, 2));
}
}
}
}

View File

@ -318,4 +318,40 @@ public class ParamEnum {
this.desc = desc;
}
}
/**
* 甘特图状态0未开始 ,1进行中2已完成 3已逾期
*/
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum TaskProgressMppStatusEnum implements BaseEnum {
HAS_NOT_STARTED(0, "未开始"),
IN_PROGRESS(1, "进行中"),
COMPLETED(2, "已完成"),
OVERDUE(3, "已逾期"),
;
TaskProgressMppStatusEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
private Integer value;
private String desc;
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
}

View File

@ -33,6 +33,7 @@ import com.zhgd.xmgl.modules.worker.service.IUserEnterpriseService;
import com.zhgd.xmgl.security.JwtTokenProvider;
import com.zhgd.xmgl.security.entity.UserInfo;
import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.util.EnvironmentUtil;
import com.zhgd.xmgl.util.GovDanzhouSafeHatUtil;
import com.zhgd.xmgl.util.MessageUtil;
import com.zhgd.xmgl.util.PwUtil;
@ -140,7 +141,7 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
log.info(passwordEncoder.encode(password));
//登录失败次数不得多于5次登录失败后锁定时间不少于10分钟
String key = PW_FAILED_COUNT_PREFIX + account;
String key = PW_FAILED_COUNT_PREFIX + EnvironmentUtil.getActiveEnvironment() + ":" + account;
Integer num = (Integer) redisRepository.get(key);
if (num != null && num >= 5) {
throw new OpenAlertException("您已登录失败次数达到5次锁定账号时间10分钟请稍后重试");
@ -1066,7 +1067,7 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
String md5Password = MapUtils.getString(map, "md5Password");
//登录失败次数不得多于5次登录失败后锁定时间不少于10分钟
String key = PW_FAILED_COUNT_PREFIX + account;
String key = PW_FAILED_COUNT_PREFIX + EnvironmentUtil.getActiveEnvironment() + ":" + account;
Integer num = (Integer) redisRepository.get(key);
if (num != null && num >= 5) {
throw new OpenAlertException("您已登录失败次数达到5次锁定账号时间10分钟请稍后重试");

View File

@ -14,10 +14,7 @@ import com.zhgd.xmgl.async.AsyncProject;
import com.zhgd.xmgl.entity.vo.ZwProjectDataVo;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.dto.SjProjectDto;
import com.zhgd.xmgl.modules.project.entity.vo.ConstructionStageVo;
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectProgressVo;
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectTypeVo;
import com.zhgd.xmgl.modules.project.entity.vo.ProjectDurationVO;
import com.zhgd.xmgl.modules.project.entity.vo.*;
import com.zhgd.xmgl.modules.project.enums.SanjiangProgressProjectEnum;
import com.zhgd.xmgl.modules.project.service.IProjectService;
import com.zhgd.xmgl.modules.project.service.impl.ProjectServiceImpl;
@ -251,7 +248,7 @@ public class ProjectController {
@ApiOperation(value = "通过项目SN查询项目信息", notes = "通过项目SN查询项目信息", httpMethod = "POST")
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String")
@PostMapping(value = "/getProjectInfoBySn")
public Result<EntityMap> getProjectInfoBySn(@RequestBody Map<String, Object> map) {
public Result<ProjectInfoExtVo> getProjectInfoBySn(@RequestBody Map<String, Object> map) {
return Result.success(projectService.getProjectInfoBySn(map));
}

View File

@ -0,0 +1,117 @@
package com.zhgd.xmgl.modules.project.entity.vo;
import com.zhgd.xmgl.modules.project.entity.Project;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ProjectInfoExtVo extends Project {
/**
* 合同签订日期
*/
@ApiModelProperty(value = "合同签订日期")
private java.lang.String contractSignTime;
/**
* 合同金额
*/
@ApiModelProperty(value = "合同金额")
private java.lang.String contractPrice;
/**
* 合同工期开始时间
*/
@ApiModelProperty(value = "合同工期开始时间")
private java.lang.String contractPeriodStartTime;
/**
* 合同工期结束时间
*/
@ApiModelProperty(value = "合同工期结束时间")
private java.lang.String contractPeriodEndTime;
/**
* 实际工期开始时间
*/
@ApiModelProperty(value = "实际工期开始时间")
private java.lang.String realPeriodStartTime;
/**
* 实际工期结束时间
*/
@ApiModelProperty(value = "实际工期结束时间")
private java.lang.String realPeriodEndTime;
/**
* 中标单位
*/
@ApiModelProperty(value = "中标单位")
private java.lang.String bidWinner;
/**
* 建设单位
*/
@ApiModelProperty(value = "建设单位")
private java.lang.String constructionUnit;
/**
* 设计单位
*/
@ApiModelProperty(value = "设计单位")
private java.lang.String designUnit;
/**
* 监理单位
*/
@ApiModelProperty(value = "监理单位")
private java.lang.String supervisorUnit;
/**
* 业主单位
*/
@ApiModelProperty(value = "业主单位")
private java.lang.String ownerUnit;
/**
* 工程概况
*/
@ApiModelProperty(value = "工程概况")
private java.lang.String projectOverview;
/**
* 工程结束时间
*/
@ApiModelProperty(value = "工程结束时间")
private java.lang.String engineeringEndTime;
/**
* 质量目标
*/
@ApiModelProperty(value = "质量目标")
private String qualityTarget;
/**
* 安全目标
*/
@ApiModelProperty(value = "安全目标")
private String safeTarget;
/**
* 科技目标
*/
@ApiModelProperty(value = "科技目标")
private String technologyTarget;
/**
* 设计目标
*/
@ApiModelProperty(value = "设计目标")
private String designTarget;
/**
* 绿色施工
*/
@ApiModelProperty(value = "绿色施工")
private String greenConstruction;
@ApiModelProperty(value = "项目总体倒计时(天)")
private String totalProjectDay;
private String companyName;
private String areaName;
private String videoNum;
private String name;
private String provinceName;
private Double periodRatio;
private String ufaceDevNum;
private String cityName;
private String surplusDay;
private String contractPeriodType;
}

View File

@ -6,10 +6,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.basicdata.entity.vo.CompanyProjectTypeCountVo;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.bo.ProjectStatisticsCountBo;
import com.zhgd.xmgl.modules.project.entity.vo.ConstructionStageVo;
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectProgressVo;
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectTypeVo;
import com.zhgd.xmgl.modules.project.entity.vo.ProjectDurationVO;
import com.zhgd.xmgl.modules.project.entity.vo.*;
import com.zhgd.xmgl.modules.yunlianwanwu.middle.entity.bo.ProjectBo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -30,7 +27,7 @@ public interface ProjectMapper extends BaseMapper<Project> {
EntityMap getProjectInfoById(Map<String, Object> map);
EntityMap getProjectInfoBySn(Map<String, Object> map);
ProjectInfoExtVo getProjectInfoBySn(Map<String, Object> map);
List<EntityMap> selectCompanyProjectList(Map<String, Object> map);

View File

@ -29,7 +29,8 @@
LEFT JOIN system_areas e ON a.area_code = e.areaid
WHERE a.project_id = #{projectId}
</select>
<select id="getProjectInfoBySn" resultType="com.zhgd.jeecg.common.mybatis.EntityMap" parameterType="map">
<select id="getProjectInfoBySn" resultType="com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo"
parameterType="map">
SELECT a.*,
b.company_name,
c.province province_name,

View File

@ -6,10 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.entity.vo.ZwProjectDataVo;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.vo.ConstructionStageVo;
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectProgressVo;
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectTypeVo;
import com.zhgd.xmgl.modules.project.entity.vo.ProjectDurationVO;
import com.zhgd.xmgl.modules.project.entity.vo.*;
import java.util.HashMap;
import java.util.List;
@ -33,7 +30,7 @@ public interface IProjectService extends IService<Project> {
EntityMap getProjectInfoById(Map<String, Object> map);
EntityMap getProjectInfoBySn(Map<String, Object> map);
ProjectInfoExtVo getProjectInfoBySn(Map<String, Object> map);
List<EntityMap> selectCompanyProjectList(Map<String, Object> map);

View File

@ -47,10 +47,7 @@ import com.zhgd.xmgl.modules.massrebound.service.IFunctionRoomService;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.ProjectConfig;
import com.zhgd.xmgl.modules.project.entity.WSSsdrAddress;
import com.zhgd.xmgl.modules.project.entity.vo.ConstructionStageVo;
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectProgressVo;
import com.zhgd.xmgl.modules.project.entity.vo.GroupByProjectTypeVo;
import com.zhgd.xmgl.modules.project.entity.vo.ProjectDurationVO;
import com.zhgd.xmgl.modules.project.entity.vo.*;
import com.zhgd.xmgl.modules.project.enums.SanjiangProgressProjectEnum;
import com.zhgd.xmgl.modules.project.mapper.ProjectConfigMapper;
import com.zhgd.xmgl.modules.project.mapper.ProjectEnterpriseMapper;
@ -208,8 +205,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
}
@Override
public EntityMap getProjectInfoBySn(Map<String, Object> map) {
EntityMap info = redisRepository.getOrSetEx("projectInfoBySn:" + map.get("projectSn"), (() -> projectMapper.getProjectInfoBySn(map)));
public ProjectInfoExtVo getProjectInfoBySn(Map<String, Object> map) {
ProjectInfoExtVo info = redisRepository.getOrSetEx("projectInfoBySn:" + map.get("projectSn"), (() -> projectMapper.getProjectInfoBySn(map)));
if (info == null) {
throw new NullPointerException(" 当前查询条件结果不存在!");
}

View File

@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.jeecg.common.util.oConvertUtils;
import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressAlarm;
import com.zhgd.xmgl.modules.taskprogress.entity.vo.CountDutyUserNameVo;
import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressAlarmService;
import com.zhgd.xmgl.util.PageUtil;
import io.swagger.annotations.Api;
@ -191,4 +193,12 @@ public class TaskProgressAlarmController {
return mv;
}
@ApiOperation(value = "进度预警(按人员)", notes = "进度预警(按人员)", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
})
@PostMapping(value = "/countDutyUserName")
public Result<List<CountDutyUserNameVo>> countDutyUserName(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
return Result.success(taskProgressAlarmService.countDutyUserName(paramMap));
}
}

View File

@ -2,10 +2,12 @@ package com.zhgd.xmgl.modules.taskprogress.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.base.entity.vo.TrendVo;
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgress;
import com.zhgd.xmgl.modules.taskprogress.entity.vo.CountTaskProgressVo;
import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -55,6 +57,7 @@ public class TaskProgressController {
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "type", value = "1.本月2.下月", paramType = "query", required = false, dataType = "Integer"),
})
@GetMapping(value = "/page")
public Result<IPage<TaskProgress>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
@ -228,4 +231,26 @@ public class TaskProgressController {
public ModelAndView exportXls(@ApiIgnore @RequestBody HashMap<String, Object> paramMap, HttpServletRequest request) {
return taskProgressService.exportXls(paramMap, request);
}
@ApiOperation(value = "工作一览(统计)", notes = "工作一览(统计)", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "type", value = "1.本月2.下月", paramType = "body", required = false, dataType = "Integer"),
})
@PostMapping(value = "/countTaskProgress")
public Result<CountTaskProgressVo> countTaskProgress(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
return Result.success(taskProgressService.countTaskProgress(paramMap));
}
@ApiOperation(value = "状态统计", notes = "状态统计", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
})
@PostMapping(value = "/countMppStatus")
public Result<SectorVo> countMppStatus(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
return Result.success(taskProgressService.countMppStatus(paramMap));
}
}

View File

@ -1,7 +1,6 @@
package com.zhgd.xmgl.modules.taskprogress.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -49,12 +48,6 @@ public class TaskProgressAlarm implements Serializable {
@Excel(name = "报警详情", width = 15)
@ApiModelProperty(value = "报警详情")
private java.lang.String alarmDetails;
/**
* 报警类型 1逾期未开始 2逾期未完成
*/
@Excel(name = "报警类型 1逾期未开始 2逾期未完成", width = 15)
@ApiModelProperty(value = "报警类型 1逾期未开始 2逾期未完成")
private java.lang.Integer alarmType;
/**
* 报警时间
*/
@ -74,4 +67,13 @@ public class TaskProgressAlarm implements Serializable {
@ApiModelProperty(value = "任务名称")
private java.lang.String taskName;
@ApiModelProperty(value = "负责人id")
private java.lang.Long dutyUserId;
/**
* 负责人名称
*/
@ApiModelProperty(value = "负责人名称")
private String dutyUserName;
}

View File

@ -0,0 +1,11 @@
package com.zhgd.xmgl.modules.taskprogress.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CountDutyUserNameVo {
@ApiModelProperty(value = "负责人名称")
private java.lang.String dutyUserName;
private Integer count;
}

View File

@ -0,0 +1,14 @@
package com.zhgd.xmgl.modules.taskprogress.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CountTaskProgressVo {
@ApiModelProperty("工作总数")
private Integer workCount;
@ApiModelProperty("延迟工作(那按照实际开始时间来算,实际开始时间提前就算提前工作,实际开始时间逾期就算延迟工作)")
private Integer delayCount;
@ApiModelProperty("提前工作(那按照实际开始时间来算,实际开始时间提前就算提前工作,实际开始时间逾期就算延迟工作)")
private Integer aheadCount;
}

View File

@ -1,9 +1,13 @@
package com.zhgd.xmgl.modules.taskprogress.mapper;
import com.zhgd.xmgl.modules.taskprogress.entity.vo.CountDutyUserNameVo;
import org.apache.ibatis.annotations.Mapper;
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressAlarm;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.HashMap;
import java.util.List;
/**
* @Description: 任务进度甘特图-报警信息
* @author pds
@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper
public interface TaskProgressAlarmMapper extends BaseMapper<TaskProgressAlarm> {
List<CountDutyUserNameVo> countDutyUserName(HashMap<String, Object> paramMap);
}

View File

@ -3,7 +3,9 @@ package com.zhgd.xmgl.modules.taskprogress.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgress;
import com.zhgd.xmgl.modules.taskprogress.entity.vo.CountTaskProgressVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -29,4 +31,8 @@ public interface TaskProgressMapper extends BaseMapper<TaskProgress> {
void updateByTaskName(TaskProgress taskProgress);
void updateByPrimaryId(TaskProgress taskProgress);
List<SectorOneVo> countMppStatus(HashMap<String, Object> paramMap);
CountTaskProgressVo countTaskProgress(HashMap<String, Object> paramMap);
}

View File

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.taskprogress.mapper.TaskProgressAlarmMapper">
<select id="countDutyUserName" resultType="com.zhgd.xmgl.modules.taskprogress.entity.vo.CountDutyUserNameVo">
select count(*) count, duty_user_name
from task_progress_alarm
where project_sn = #{projectSn}
group by duty_user_id, duty_user_name
</select>
</mapper>

View File

@ -109,4 +109,35 @@
</set>
where id = #{id}
</update>
<select id="countMppStatus" resultType="com.zhgd.xmgl.base.entity.vo.SectorOneVo">
select count(*) count, t.mppStatus as enumType
from (
select *,
CASE
WHEN
(begin_warning = 3 or end_warning = 3)
THEN 3
ELSE start_date END as mppStatus
from task_progress
where project_sn = #{projectSn}
) t
group by t.mppStatus
</select>
<select id="countTaskProgress" resultType="com.zhgd.xmgl.modules.taskprogress.entity.vo.CountTaskProgressVo">
select count(*) workCount,
sum(if(begin_warning = 3, 1, 0)) delayCount,
sum(if(begin_warning = 1, 1, 0)) aheadCount
from task_progress
where project_sn = #{projectSn}
<if test="type == '1'.toString()">
and (start_date >= last_day(curdate())
or finish_date >= date_add(curdate(), interval - day(curdate()) + 1 day))
</if>
<if test="type == '2'.toString()">
and (start_date >= last_day(date_add(curdate(), interval 1 month))
or finish_date >= date_add(date_add(curdate(), interval 1 month), interval - day(curdate()) + 1 day))
</if>
</select>
</mapper>

View File

@ -2,6 +2,10 @@ package com.zhgd.xmgl.modules.taskprogress.service;
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressAlarm;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.taskprogress.entity.vo.CountDutyUserNameVo;
import java.util.HashMap;
import java.util.List;
/**
* @Description: 任务进度甘特图-报警信息
@ -11,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface ITaskProgressAlarmService extends IService<TaskProgressAlarm> {
List<CountDutyUserNameVo> countDutyUserName(HashMap<String, Object> paramMap);
}

View File

@ -2,7 +2,11 @@ package com.zhgd.xmgl.modules.taskprogress.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.base.entity.vo.TrendVo;
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgress;
import com.zhgd.xmgl.modules.taskprogress.entity.vo.CountTaskProgressVo;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
@ -33,4 +37,9 @@ public interface ITaskProgressService extends IService<TaskProgress> {
IPage<TaskProgress> queryPageList(HashMap<String, Object> paramMap);
void edit(TaskProgress taskProgress);
CountTaskProgressVo countTaskProgress(HashMap<String, Object> paramMap);
SectorVo countMppStatus(HashMap<String, Object> paramMap);
}

View File

@ -1,12 +1,16 @@
package com.zhgd.xmgl.modules.taskprogress.service.impl;
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressAlarm;
import com.zhgd.xmgl.modules.taskprogress.entity.vo.CountDutyUserNameVo;
import com.zhgd.xmgl.modules.taskprogress.mapper.TaskProgressAlarmMapper;
import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressAlarmService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.HashMap;
import java.util.List;
/**
* @Description: 任务进度甘特图-报警信息
* @author pds
@ -16,4 +20,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class TaskProgressAlarmServiceImpl extends ServiceImpl<TaskProgressAlarmMapper, TaskProgressAlarm> implements ITaskProgressAlarmService {
@Override
public List<CountDutyUserNameVo> countDutyUserName(HashMap<String, Object> paramMap) {
return baseMapper.countDutyUserName(paramMap);
}
}

View File

@ -45,6 +45,7 @@ public class TaskProgressContentServiceImpl extends ServiceImpl<TaskProgressCont
} else {
taskProgress.setStatus(1);
}
taskProgress.setProgressRatio(taskProgressContent.getProgressRatio());
taskProgressMapper.updateById(taskProgress);
String projectSn = taskProgress.getProjectSn();
taskProgressContent.setProjectSn(projectSn);

View File

@ -14,10 +14,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.enums.ParamEnum;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
import com.zhgd.xmgl.modules.basicdata.service.UploadFileService;
import com.zhgd.xmgl.modules.taskprogress.entity.*;
import com.zhgd.xmgl.modules.taskprogress.entity.vo.CountTaskProgressVo;
import com.zhgd.xmgl.modules.taskprogress.mapper.*;
import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressService;
import com.zhgd.xmgl.security.util.SecurityUtils;
@ -81,6 +84,17 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
public List<TaskProgress> getParentChildList(HashMap<String, Object> paramMap) {
// 查询项目下的节点集合通过父节点分组
List<TaskProgress> progressTaskList = baseMapper.queryList(paramMap);
setMppStatus(progressTaskList);
Map<Long, List<TaskProgress>> parentIdTaskListMap = progressTaskList.stream().collect(Collectors.groupingBy(TaskProgress::getParentId));
return getChild(parentIdTaskListMap, 0L);
}
/**
* 设置甘特图状态
*
* @param progressTaskList
*/
private void setMppStatus(List<TaskProgress> progressTaskList) {
for (TaskProgress taskProgress : progressTaskList) {
if (Objects.equals(taskProgress.getBeginWarning(), 3) || Objects.equals(taskProgress.getEndWarning(), 3)) {
taskProgress.setMppStatus(3);
@ -88,8 +102,6 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
taskProgress.setMppStatus(taskProgress.getStatus());
}
}
Map<Long, List<TaskProgress>> parentIdTaskListMap = progressTaskList.stream().collect(Collectors.groupingBy(TaskProgress::getParentId));
return getChild(parentIdTaskListMap, 0L);
}
@Override
@ -409,8 +421,20 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
@Override
public IPage<TaskProgress> queryPageList(HashMap<String, Object> paramMap) {
QueryWrapper<TaskProgress> queryWrapper = QueryGenerator.initPageQueryWrapper(TaskProgress.class, paramMap);
Integer type = MapUtils.getInteger(paramMap, "type");
if (Objects.equals(type, 1)) {
//本月
queryWrapper.lambda().and(w -> w.ge(TaskProgress::getStartDate, DateUtil.formatDate(DateUtil.beginOfMonth(new Date())))
.or().ge(TaskProgress::getFinishDate, DateUtil.formatDate(DateUtil.endOfMonth(new Date()))));
} else if (Objects.equals(type, 2)) {
//下月
queryWrapper.lambda().and(w -> w.ge(TaskProgress::getStartDate, DateUtil.formatDate(DateUtil.beginOfMonth(DateUtil.offsetMonth(new Date(), 1))))
.or().ge(TaskProgress::getFinishDate, DateUtil.formatDate(DateUtil.endOfMonth(DateUtil.offsetMonth(new Date(), 1)))));
}
Page page = PageUtil.getPage(paramMap);
return page(page, queryWrapper);
Page p = page(page, queryWrapper);
setMppStatus(p.getRecords());
return p;
}
@Override
@ -419,4 +443,15 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
baseMapper.updateByPrimaryId(taskProgress);
addWarning(taskProgress);
}
@Override
public CountTaskProgressVo countTaskProgress(HashMap<String, Object> paramMap) {
return baseMapper.countTaskProgress(paramMap);
}
@Override
public SectorVo countMppStatus(HashMap<String, Object> paramMap) {
return SectorVo.getSectorVoByEnum(baseMapper.countMppStatus(paramMap), ParamEnum.TaskProgressMppStatusEnum.values());
}
}

View File

@ -38,8 +38,6 @@ public class JwtTokenProvider {
@Autowired
private MyUserDetailsImpl myUserDetailsImpl;
@Autowired
private SystemUserMapper systemUserMapper;
@PostConstruct
protected void init() {
@ -76,7 +74,7 @@ public class JwtTokenProvider {
.compact();
userMap.put(username, token);
//刷新token
String key = USER_TOKEN_EXPIRE_PREFIX + EnvironmentUtil.activeEnvironment + ":" + username + ":" + uuid;
String key = USER_TOKEN_EXPIRE_PREFIX + EnvironmentUtil.getActiveEnvironment() + ":" + username + ":" + uuid;
redisRepository.set(key, "", userTokenExpireMinute * 60L);
return token;
}
@ -111,7 +109,7 @@ public class JwtTokenProvider {
Map<String, Object> cs = (Map<String, Object>) body;
if (Objects.equals(cs.get("loginTimeOut"), 1)) {
//判断token过期没有
String key = USER_TOKEN_EXPIRE_PREFIX + EnvironmentUtil.activeEnvironment + ":" + cs.get("account") + ":" + cs.get("uuid");
String key = USER_TOKEN_EXPIRE_PREFIX + EnvironmentUtil.getActiveEnvironment() + ":" + cs.get("account") + ":" + cs.get("uuid");
if (redisRepository.get(key) == null) {
return false;
}

View File

@ -15,13 +15,17 @@ public class EnvironmentUtil {
/**
* 激活的环境
*/
public static String activeEnvironment;
private static String activeEnvironment;
@Value("${active.environment.name}")
public void setActiveEnvironment(String activeEnvironment) {
EnvironmentUtil.activeEnvironment = activeEnvironment;
}
public static String getActiveEnvironment() {
return activeEnvironment;
}
/**
* 是否本地开发环境
*