任务进度甘特图大屏
This commit is contained in:
parent
556159fb96
commit
1265732fe8
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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分钟,请稍后重试");
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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(" 当前查询条件结果不存在!");
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否本地开发环境
|
||||
*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user