任务进度甘特图bug修复
This commit is contained in:
parent
598a2a87e1
commit
556159fb96
@ -9,6 +9,7 @@ import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.jeecg.common.util.oConvertUtils;
|
||||
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressAlarm;
|
||||
import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressAlarmService;
|
||||
import com.zhgd.xmgl.util.PageUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
@ -49,10 +50,6 @@ public class TaskProgressAlarmController {
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @param taskProgressAlarm
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "分页列表查询任务进度甘特图-报警信息信息", notes = "分页列表查询任务进度甘特图-报警信息信息", httpMethod = "GET")
|
||||
@ -63,14 +60,11 @@ public class TaskProgressAlarmController {
|
||||
@ApiImplicitParam(name = "createDate_end", value = "报警时间结束", paramType = "query", dataType = "String"),
|
||||
})
|
||||
@GetMapping(value = "/page")
|
||||
public Result<IPage<TaskProgressAlarm>> queryPageList(TaskProgressAlarm taskProgressAlarm,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
Result<IPage<TaskProgressAlarm>> result = new Result<IPage<TaskProgressAlarm>>();
|
||||
QueryWrapper<TaskProgressAlarm> queryWrapper = QueryGenerator.initQueryWrapper(taskProgressAlarm, req.getParameterMap());
|
||||
public Result<IPage<TaskProgressAlarm>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
|
||||
Result<IPage<TaskProgressAlarm>> result = new Result<>();
|
||||
QueryWrapper<TaskProgressAlarm> queryWrapper = QueryGenerator.initPageQueryWrapper(TaskProgressAlarm.class, paramMap);
|
||||
queryWrapper.lambda().orderByDesc(TaskProgressAlarm::getCreateDate);
|
||||
Page<TaskProgressAlarm> page = new Page<TaskProgressAlarm>(pageNo, pageSize);
|
||||
Page page = PageUtil.getPage(paramMap);
|
||||
IPage<TaskProgressAlarm> pageList = taskProgressAlarmService.page(page, queryWrapper);
|
||||
result.setSuccess(true);
|
||||
result.setResult(pageList);
|
||||
|
||||
@ -86,7 +86,7 @@ public class TaskProgressController {
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", dataType = "String", required = true, paramType = "body"),
|
||||
@ApiImplicitParam(name = "taskName", value = "任务名称", dataType = "String", paramType = "body"),
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", dataType = "String", paramType = "body"),
|
||||
@ApiImplicitParam(name = "status", value = "状态,0未开始 ,1进行中,2已完成,3已逾期 默认未开始", dataType = "String", paramType = "body"),
|
||||
@ApiImplicitParam(name = "status", value = "状态,0未开始 ,1进行中,2已完成 默认未开始", dataType = "String", paramType = "body"),
|
||||
@ApiImplicitParam(name = "actualFinishDate_begin", value = "实际完成日期开始", dataType = "String", paramType = "body"),
|
||||
@ApiImplicitParam(name = "actualFinishDate_end", value = "实际完成日期结束", dataType = "String", paramType = "body"),
|
||||
})
|
||||
@ -100,7 +100,6 @@ public class TaskProgressController {
|
||||
*
|
||||
* @return 所有进度甘特图
|
||||
*/
|
||||
@PostMapping(value = "/getParentChildPage")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", dataType = "String", required = true, paramType = "body"),
|
||||
@ApiImplicitParam(name = "taskName", value = "任务名称", dataType = "String", paramType = "body"),
|
||||
@ -112,6 +111,7 @@ public class TaskProgressController {
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"),
|
||||
})
|
||||
@ApiOperation(value = "所有进度甘特图, 以父子节点形式呈现")
|
||||
@PostMapping(value = "/getParentChildPage")
|
||||
public Result<IPage<TaskProgress>> getParentChildPage(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
|
||||
return Result.success(taskProgressService.getParentChildPage(paramMap));
|
||||
}
|
||||
|
||||
@ -67,6 +67,7 @@ public class TaskProgressMaterialRelController {
|
||||
@ApiOperation(value = "树形列表查询任务进度甘特图-计划材料工程列表", notes = "树形列表查询任务进度甘特图-计划材料工程列表", httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "query", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "taskName", value = "任务名称", paramType = "query", required = false, dataType = "String"),
|
||||
})
|
||||
@GetMapping(value = "/tree/list")
|
||||
public Result<List<TaskProgress>> queryTreeList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
|
||||
|
||||
@ -7,6 +7,7 @@ import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressMaterialType;
|
||||
import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressMaterialTypeService;
|
||||
import com.zhgd.xmgl.util.RefUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -72,7 +73,7 @@ public class TaskProgressMaterialTypeController {
|
||||
public Result<List<TaskProgressMaterialType>> queryList(TaskProgressMaterialType taskProgressMaterialType,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<TaskProgressMaterialType> queryWrapper = QueryGenerator.initQueryWrapper(taskProgressMaterialType, req.getParameterMap());
|
||||
return Result.success(taskProgressMaterialTypeService.list(queryWrapper));
|
||||
return Result.success(taskProgressMaterialTypeService.queryList(queryWrapper));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -108,10 +108,10 @@ public class TaskProgress implements Serializable {
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private java.util.Date updateDate;
|
||||
/**
|
||||
* 状态,0未开始 ,1进行中,2已完成,3已逾期 默认未开始
|
||||
* 状态,0未开始 ,1进行中,2已完成 默认未开始
|
||||
*/
|
||||
@Excel(name = "执行状态", width = 15, replace = {"未开始_0", "进行中_1", "已完成_2", "已逾期_3"})
|
||||
@ApiModelProperty(value = "状态,0未开始 ,1进行中,2已完成,3已逾期 默认未开始")
|
||||
@ApiModelProperty(value = "状态,0未开始 ,1进行中,2已完成 默认未开始")
|
||||
private java.lang.Integer status;
|
||||
|
||||
/**
|
||||
@ -171,4 +171,8 @@ public class TaskProgress implements Serializable {
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "任务进度甘特图-材料类型数量-计划用量")
|
||||
private List<TaskProgressMaterialRelPlan> relPlanList;
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "甘特图状态,0未开始 ,1进行中,2已完成 ,3已逾期")
|
||||
private java.lang.Integer mppStatus;
|
||||
|
||||
}
|
||||
|
||||
@ -26,5 +26,7 @@ public interface TaskProgressMapper extends BaseMapper<TaskProgress> {
|
||||
|
||||
IPage<TaskProgress> queryList(@Param("p") HashMap<String, Object> paramMap, Page<TaskProgress> page);
|
||||
|
||||
void insertBatch(Collection<TaskProgress> progressTaskList);
|
||||
void updateByTaskName(TaskProgress taskProgress);
|
||||
|
||||
void updateByPrimaryId(TaskProgress taskProgress);
|
||||
}
|
||||
|
||||
@ -1,8 +1,13 @@
|
||||
package com.zhgd.xmgl.modules.taskprogress.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressMaterialType;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 任务进度甘特图-材料类型
|
||||
@ -13,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
@Mapper
|
||||
public interface TaskProgressMaterialTypeMapper extends BaseMapper<TaskProgressMaterialType> {
|
||||
|
||||
List<TaskProgressMaterialType> queryList(@Param(Constants.WRAPPER) QueryWrapper<TaskProgressMaterialType> queryWrapper);
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
from task_progress tp
|
||||
left join system_user su on su.user_id = tp.duty_user_id
|
||||
where tp.project_sn = #{p.projectSn}
|
||||
<if test="p.status != null">
|
||||
<if test="(p.status != null and p.status != '') or p.status == '0'.toString()">
|
||||
and tp.status = #{p.status}
|
||||
</if>
|
||||
<if test="p.taskName != null and p.taskName != ''">
|
||||
@ -25,4 +25,88 @@
|
||||
AND tp.actual_finish_date <= CONCAT(DATE_FORMAT(#{p.actualFinishDate_end}, '%Y-%m-%d'), ' 23:59:59')
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<update id="updateByTaskName" parameterType="com.zhgd.xmgl.modules.taskprogress.entity.TaskProgress">
|
||||
update task_progress
|
||||
<set>
|
||||
<if test="id != null">
|
||||
id = #{id},
|
||||
</if>
|
||||
<if test="projectSn != null">
|
||||
project_sn = #{projectSn,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="taskName != null">
|
||||
task_name = #{taskName,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="duration != null">
|
||||
duration = #{duration,jdbcType=DOUBLE},
|
||||
</if>
|
||||
<if test="progressRatio != null">
|
||||
progress_ratio = #{progressRatio,jdbcType=DOUBLE},
|
||||
</if>
|
||||
<if test="startDate != null">
|
||||
start_date = #{startDate,jdbcType=DATE},
|
||||
</if>
|
||||
<if test="actualStartDate != null">
|
||||
actual_start_date = #{actualStartDate,jdbcType=DATE},
|
||||
</if>
|
||||
<if test="finishDate != null">
|
||||
finish_date = #{finishDate,jdbcType=DATE},
|
||||
</if>
|
||||
<if test="actualFinishDate != null">
|
||||
actual_finish_date = #{actualFinishDate,jdbcType=DATE},
|
||||
</if>
|
||||
<if test="createDate != null">
|
||||
create_date = #{createDate,jdbcType=TIMESTAMP},
|
||||
</if>
|
||||
<if test="updateDate != null">
|
||||
update_date = #{updateDate,jdbcType=TIMESTAMP},
|
||||
</if>
|
||||
<if test="status != null">
|
||||
`status` = #{status,jdbcType=INTEGER},
|
||||
</if>
|
||||
<if test="parentId != null">
|
||||
parent_id = #{parentId,jdbcType=BIGINT},
|
||||
</if>
|
||||
<if test="dutyUserId != null">
|
||||
duty_user_id = #{dutyUserId,jdbcType=BIGINT},
|
||||
</if>
|
||||
<if test="predecessorIds != null">
|
||||
predecessor_ids = #{predecessorIds,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="remark != null">
|
||||
remark = #{remark,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="createUserId != null">
|
||||
create_user_id = #{createUserId,jdbcType=BIGINT},
|
||||
</if>
|
||||
<if test="endWarning != null">
|
||||
end_warning = #{endWarning,jdbcType=INTEGER},
|
||||
</if>
|
||||
<if test="beginWarning != null">
|
||||
begin_warning = #{beginWarning,jdbcType=INTEGER},
|
||||
</if>
|
||||
</set>
|
||||
where project_sn = #{projectSn}
|
||||
and task_name = #{taskName}
|
||||
</update>
|
||||
<update id="updateByPrimaryId" parameterType="com.zhgd.xmgl.modules.taskprogress.entity.TaskProgress">
|
||||
update task_progress
|
||||
<set>
|
||||
project_sn = #{projectSn,jdbcType=VARCHAR},
|
||||
task_name = #{taskName,jdbcType=VARCHAR},
|
||||
progress_ratio = #{progressRatio,jdbcType=DOUBLE},
|
||||
start_date = #{startDate,jdbcType=DATE},
|
||||
actual_start_date = #{actualStartDate,jdbcType=DATE},
|
||||
finish_date = #{finishDate,jdbcType=DATE},
|
||||
actual_finish_date = #{actualFinishDate,jdbcType=DATE},
|
||||
parent_id = #{parentId,jdbcType=BIGINT},
|
||||
duty_user_id = #{dutyUserId,jdbcType=BIGINT},
|
||||
remark = #{remark,jdbcType=VARCHAR},
|
||||
begin_warning = #{beginWarning},
|
||||
end_warning = #{endWarning},
|
||||
status = #{status},
|
||||
</set>
|
||||
where id = #{id}
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
left join task_progress_material_rel_plan p
|
||||
on t.id = p.task_progress_material_type_id and p.task_progress_id = #{taskProgressId}
|
||||
where t.project_sn = #{projectSn}
|
||||
order by t.type ,t.id
|
||||
</select>
|
||||
|
||||
<select id="queryNewestPlanList" resultType="com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressMaterialRelPlan">
|
||||
|
||||
@ -1,4 +1,9 @@
|
||||
<?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.TaskProgressMaterialTypeMapper">
|
||||
<select id="queryList" resultType="com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressMaterialType">
|
||||
select * from task_progress_material_type
|
||||
${ew.customSqlSegment}
|
||||
order by type ,id
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -1,8 +1,11 @@
|
||||
package com.zhgd.xmgl.modules.taskprogress.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressMaterialType;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 任务进度甘特图-材料类型
|
||||
* @author: pds
|
||||
@ -14,4 +17,6 @@ public interface ITaskProgressMaterialTypeService extends IService<TaskProgressM
|
||||
void add(TaskProgressMaterialType taskProgressMaterialType);
|
||||
|
||||
void edit(TaskProgressMaterialType taskProgressMaterialType);
|
||||
|
||||
List<TaskProgressMaterialType> queryList(QueryWrapper<TaskProgressMaterialType> queryWrapper);
|
||||
}
|
||||
|
||||
@ -20,7 +20,6 @@ import org.springframework.stereotype.Service;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -39,10 +38,14 @@ public class TaskProgressContentServiceImpl extends ServiceImpl<TaskProgressCont
|
||||
@Override
|
||||
public void add(TaskProgressContent taskProgressContent) {
|
||||
TaskProgress taskProgress = taskProgressMapper.selectById(taskProgressContent.getTaskProgressId());
|
||||
if (Objects.equals(taskProgress.getStatus(), 0)) {
|
||||
if (taskProgressContent.getProgressRatio().equals(100D)) {
|
||||
taskProgress.setStatus(2);
|
||||
} else if (taskProgressContent.getProgressRatio().equals(0D)) {
|
||||
taskProgress.setStatus(0);
|
||||
} else {
|
||||
taskProgress.setStatus(1);
|
||||
taskProgressMapper.updateById(taskProgress);
|
||||
}
|
||||
taskProgressMapper.updateById(taskProgress);
|
||||
String projectSn = taskProgress.getProjectSn();
|
||||
taskProgressContent.setProjectSn(projectSn);
|
||||
UserInfo user = SecurityUtils.getUser();
|
||||
|
||||
@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.taskprogress.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
@ -15,6 +16,8 @@ import com.zhgd.xmgl.modules.taskprogress.mapper.TaskProgressMaterialRelMapper;
|
||||
import com.zhgd.xmgl.modules.taskprogress.mapper.TaskProgressMaterialRelPlanMapper;
|
||||
import com.zhgd.xmgl.modules.taskprogress.mapper.TaskProgressMaterialTypeMapper;
|
||||
import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressMaterialRelService;
|
||||
import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressMaterialTypeService;
|
||||
import com.zhgd.xmgl.util.RefUtil;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
@ -53,6 +56,8 @@ public class TaskProgressMaterialRelServiceImpl extends ServiceImpl<TaskProgress
|
||||
TaskProgressServiceImpl taskProgressService;
|
||||
@Autowired
|
||||
TaskProgressMaterialTypeMapper taskProgressMaterialTypeMapper;
|
||||
@Autowired
|
||||
private ITaskProgressMaterialTypeService taskProgressMaterialTypeService;
|
||||
|
||||
@Override
|
||||
public List<TaskProgressMaterialRel> queryNewestDetailList(HashMap<String, Object> paramMap) {
|
||||
@ -70,12 +75,38 @@ public class TaskProgressMaterialRelServiceImpl extends ServiceImpl<TaskProgress
|
||||
@Override
|
||||
public List<TaskProgress> queryTreeList(HashMap<String, Object> paramMap) {
|
||||
String projectSn = MapUtils.getString(paramMap, "projectSn");
|
||||
List<TaskProgress> progressTaskList = taskProgressMapper.selectList(Wrappers.lambdaQuery(TaskProgress.class).eq(TaskProgress::getProjectSn, projectSn));
|
||||
String taskName = MapUtils.getString(paramMap, "taskName");
|
||||
List<TaskProgress> progressTaskList = taskProgressMapper.selectList(Wrappers.lambdaQuery(TaskProgress.class)
|
||||
.eq(TaskProgress::getProjectSn, projectSn)
|
||||
.like(StringUtils.isNotBlank(taskName), TaskProgress::getTaskName, taskName)
|
||||
);
|
||||
List<Long> ids = progressTaskList.stream().map(TaskProgress::getId).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(ids)) {
|
||||
setRelActualAndPlanList(paramMap, projectSn, progressTaskList, ids);
|
||||
}
|
||||
List<TaskProgress> rtList;
|
||||
if (StringUtils.isBlank(taskName)) {
|
||||
Map<Long, List<TaskProgress>> parentIdTaskListMap = progressTaskList.stream().collect(Collectors.groupingBy(TaskProgress::getParentId));
|
||||
rtList = taskProgressService.getChild(parentIdTaskListMap, 0L);
|
||||
} else {
|
||||
rtList = progressTaskList;
|
||||
}
|
||||
return rtList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置实际和计划数量
|
||||
*
|
||||
* @param paramMap
|
||||
* @param projectSn
|
||||
* @param progressTaskList
|
||||
* @param ids
|
||||
*/
|
||||
private void setRelActualAndPlanList(HashMap<String, Object> paramMap, String projectSn, List<TaskProgress> progressTaskList, List<Long> ids) {
|
||||
paramMap.put("list", ids);
|
||||
List<TaskProgressMaterialType> types = taskProgressMaterialTypeMapper.selectList(new LambdaQueryWrapper<TaskProgressMaterialType>()
|
||||
.eq(TaskProgressMaterialType::getProjectSn, projectSn));
|
||||
QueryWrapper<TaskProgressMaterialType> typeQueryWrapper = new QueryWrapper<>();
|
||||
typeQueryWrapper.eq(RefUtil.fieldNameUlc(TaskProgressMaterialType::getProjectSn), projectSn);
|
||||
List<TaskProgressMaterialType> types = taskProgressMaterialTypeService.queryList(typeQueryWrapper);
|
||||
|
||||
//设置relActualList
|
||||
List<TaskProgressMaterialRel> taskProgresses = taskProgressMaterialRelMapper.queryNewestActualList(paramMap);
|
||||
@ -92,7 +123,7 @@ public class TaskProgressMaterialRelServiceImpl extends ServiceImpl<TaskProgress
|
||||
TaskProgressMaterialRel r = m.get(type.getId());
|
||||
if (r == null) {
|
||||
r = new TaskProgressMaterialRel();
|
||||
r.setActualUsage(0D);
|
||||
r.setActualUsage(null);
|
||||
r.setName(type.getName());
|
||||
}
|
||||
rl.add(r);
|
||||
@ -110,7 +141,7 @@ public class TaskProgressMaterialRelServiceImpl extends ServiceImpl<TaskProgress
|
||||
TaskProgressMaterialRelPlan r = pM.get(type.getId());
|
||||
if (r == null) {
|
||||
r = new TaskProgressMaterialRelPlan();
|
||||
r.setPlanUsage(0D);
|
||||
r.setPlanUsage(null);
|
||||
r.setName(type.getName());
|
||||
}
|
||||
planList.add(r);
|
||||
@ -119,9 +150,6 @@ public class TaskProgressMaterialRelServiceImpl extends ServiceImpl<TaskProgress
|
||||
taskProgress.setRelPlanList(planList);
|
||||
}
|
||||
}
|
||||
Map<Long, List<TaskProgress>> parentIdTaskListMap = progressTaskList.stream().collect(Collectors.groupingBy(TaskProgress::getParentId));
|
||||
return taskProgressService.getChild(parentIdTaskListMap, 0L);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exportXls(HashMap<String, Object> paramMap, HttpServletResponse response) {
|
||||
@ -139,8 +167,9 @@ public class TaskProgressMaterialRelServiceImpl extends ServiceImpl<TaskProgress
|
||||
entityList.add(new ExcelExportEntity("id", "id"));
|
||||
entityList.add(new ExcelExportEntity("父级id", "pid"));
|
||||
entityList.add(new ExcelExportEntity("分部分项工程名称", "taskName"));
|
||||
List<TaskProgressMaterialType> taskProgressMaterialRels = taskProgressMaterialTypeMapper.selectList(new LambdaQueryWrapper<TaskProgressMaterialType>()
|
||||
.eq(TaskProgressMaterialType::getProjectSn, projectSn));
|
||||
QueryWrapper<TaskProgressMaterialType> typeQueryWrapper = new QueryWrapper<>();
|
||||
typeQueryWrapper.eq(RefUtil.fieldNameUlc(TaskProgressMaterialType::getProjectSn), projectSn);
|
||||
List<TaskProgressMaterialType> taskProgressMaterialRels = taskProgressMaterialTypeService.queryList(typeQueryWrapper);
|
||||
String p = "p";
|
||||
String a = "a";
|
||||
for (TaskProgressMaterialType rel : taskProgressMaterialRels) {
|
||||
@ -180,12 +209,12 @@ public class TaskProgressMaterialRelServiceImpl extends ServiceImpl<TaskProgress
|
||||
//导出
|
||||
if (CollUtil.isNotEmpty(relActualList) && Objects.equals(type, 2)) {
|
||||
for (TaskProgressMaterialRel rel : relActualList) {
|
||||
map.put(a + rel.getTaskProgressMaterialTypeId() + "", rel.getActualUsage() + "");
|
||||
map.put(a + rel.getTaskProgressMaterialTypeId() + "", rel.getActualUsage() != null ? rel.getActualUsage() + "" : "");
|
||||
}
|
||||
}
|
||||
if (CollUtil.isNotEmpty(relPlanList) && Objects.equals(type, 2)) {
|
||||
for (TaskProgressMaterialRelPlan rel : relPlanList) {
|
||||
map.put(p + rel.getTaskProgressMaterialTypeId() + "", rel.getPlanUsage() + "");
|
||||
map.put(p + rel.getTaskProgressMaterialTypeId() + "", rel.getPlanUsage() != null ? rel.getPlanUsage() + "" : "");
|
||||
}
|
||||
}
|
||||
list.add(map);
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.zhgd.xmgl.modules.taskprogress.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressMaterialType;
|
||||
import com.zhgd.xmgl.modules.taskprogress.mapper.TaskProgressMaterialTypeMapper;
|
||||
@ -9,6 +10,8 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 任务进度甘特图-材料类型
|
||||
* @author: pds
|
||||
@ -41,4 +44,9 @@ public class TaskProgressMaterialTypeServiceImpl extends ServiceImpl<TaskProgres
|
||||
}
|
||||
updateById(taskProgressMaterialType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskProgressMaterialType> queryList(QueryWrapper<TaskProgressMaterialType> queryWrapper) {
|
||||
return baseMapper.queryList(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.zhgd.xmgl.modules.taskprogress.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@ -8,8 +9,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
@ -18,7 +17,6 @@ import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
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.project.constants.ProgressTaskConstant;
|
||||
import com.zhgd.xmgl.modules.taskprogress.entity.*;
|
||||
import com.zhgd.xmgl.modules.taskprogress.mapper.*;
|
||||
import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressService;
|
||||
@ -83,32 +81,17 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
public List<TaskProgress> getParentChildList(HashMap<String, Object> paramMap) {
|
||||
// 查询项目下的节点集合,通过父节点分组
|
||||
List<TaskProgress> progressTaskList = baseMapper.queryList(paramMap);
|
||||
for (TaskProgress taskProgress : progressTaskList) {
|
||||
if (Objects.equals(taskProgress.getBeginWarning(), 3) || Objects.equals(taskProgress.getEndWarning(), 3)) {
|
||||
taskProgress.setMppStatus(3);
|
||||
} else {
|
||||
taskProgress.setMppStatus(taskProgress.getStatus());
|
||||
}
|
||||
}
|
||||
Map<Long, List<TaskProgress>> parentIdTaskListMap = progressTaskList.stream().collect(Collectors.groupingBy(TaskProgress::getParentId));
|
||||
return getChild(parentIdTaskListMap, 0L);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取预警状态
|
||||
*
|
||||
* @param plan
|
||||
* @param actual
|
||||
* @return
|
||||
*/
|
||||
private Integer getWarningStatus(Date plan, Date actual) {
|
||||
if (actual != null) {
|
||||
int i = plan.compareTo(actual);
|
||||
if (i > 0) {
|
||||
return 1;
|
||||
} else if (i < 0) {
|
||||
return 3;
|
||||
} else {
|
||||
return 2;
|
||||
}
|
||||
} else {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(TaskProgress taskProgress) {
|
||||
if (!Objects.equals(taskProgress.getParentId(), 0L)) {
|
||||
@ -117,15 +100,18 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
taskProgress.setPredecessorIds(tp.getPredecessorIds() + "," + taskProgress.getParentId());
|
||||
}
|
||||
setStatusRel(taskProgress);
|
||||
taskProgress.setBeginWarning(getWarningStatus(taskProgress.getStartDate(), taskProgress.getActualStartDate()));
|
||||
taskProgress.setEndWarning(getWarningStatus(taskProgress.getFinishDate(), taskProgress.getActualFinishDate()));
|
||||
save(taskProgress);
|
||||
addWarning(taskProgress);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置状态相关
|
||||
*
|
||||
* @param taskProgress
|
||||
*/
|
||||
private void setStatusRel(TaskProgress taskProgress) {
|
||||
if (taskProgress.getActualStartDate() != null && taskProgress.getStartDate().compareTo(taskProgress.getActualStartDate()) < 0) {
|
||||
taskProgress.setBeginWarning(3);
|
||||
taskProgress.setStatus(3);
|
||||
} else if (taskProgress.getActualStartDate() != null && taskProgress.getStartDate().compareTo(taskProgress.getActualStartDate()) > 0) {
|
||||
taskProgress.setBeginWarning(1);
|
||||
} else {
|
||||
@ -134,7 +120,6 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
|
||||
if (taskProgress.getActualFinishDate() != null && taskProgress.getFinishDate().compareTo(taskProgress.getActualFinishDate()) < 0) {
|
||||
taskProgress.setEndWarning(3);
|
||||
taskProgress.setStatus(3);
|
||||
} else if (taskProgress.getActualFinishDate() != null && taskProgress.getFinishDate().compareTo(taskProgress.getActualFinishDate()) > 0) {
|
||||
taskProgress.setEndWarning(1);
|
||||
} else {
|
||||
@ -149,10 +134,40 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
taskProgress.setActualStartDate(taskProgress.getStartDate());
|
||||
}
|
||||
taskProgress.setStatus(2);
|
||||
} else if (taskProgress.getProgressRatio().equals(0D)) {
|
||||
taskProgress.setStatus(0);
|
||||
} else {
|
||||
taskProgress.setStatus(1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加预警信息
|
||||
*
|
||||
* @param taskProgress
|
||||
*/
|
||||
private void addWarning(TaskProgress taskProgress) {
|
||||
//添加预警
|
||||
if (Objects.equals(taskProgress.getBeginWarning(), 3)) {
|
||||
TaskProgressAlarm alarm = new TaskProgressAlarm();
|
||||
alarm.setProjectSn(taskProgress.getProjectSn());
|
||||
alarm.setTaskProgressId(taskProgress.getId());
|
||||
alarm.setAlarmDetails("当前任务预计开始时间为:" + DateUtil.formatDate(taskProgress.getStartDate()) + "," + "实际任务开始时间为:" + DateUtil.formatDate(taskProgress.getActualStartDate()));
|
||||
alarm.setTaskName(taskProgress.getTaskName());
|
||||
taskProgressAlarmMapper.insert(alarm);
|
||||
}
|
||||
if (Objects.equals(taskProgress.getEndWarning(), 3)) {
|
||||
TaskProgressAlarm alarm = new TaskProgressAlarm();
|
||||
alarm.setProjectSn(taskProgress.getProjectSn());
|
||||
alarm.setTaskProgressId(taskProgress.getId());
|
||||
alarm.setAlarmDetails("当前任务预计完成时间为:" + DateUtil.formatDate(taskProgress.getFinishDate()) + "," + "实际任务完成时间为:" + DateUtil.formatDate(taskProgress.getActualFinishDate()));
|
||||
alarm.setTaskName(taskProgress.getTaskName());
|
||||
taskProgressAlarmMapper.insert(alarm);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void delete(HashMap<String, Object> map) {
|
||||
String id = MapUtils.getString(map, "id");
|
||||
@ -179,7 +194,6 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
taskProgressMapper.delete(queryWrapper);
|
||||
taskProgressContentMapper.delete(Wrappers.lambdaQuery(TaskProgressContent.class).eq(TaskProgressContent::getProjectSn, projectSn));
|
||||
taskProgressMaterialRelMapper.delete(Wrappers.lambdaQuery(TaskProgressMaterialRel.class).eq(TaskProgressMaterialRel::getProjectSn, projectSn));
|
||||
taskProgressAlarmMapper.delete(Wrappers.lambdaQuery(TaskProgressAlarm.class).eq(TaskProgressAlarm::getProjectSn, projectSn));
|
||||
taskProgressMaterialRelPlanMapper.delete(Wrappers.lambdaQuery(TaskProgressMaterialRelPlan.class).eq(TaskProgressMaterialRelPlan::getProjectSn, projectSn));
|
||||
if (CollUtil.isNotEmpty(progressTaskList)) {
|
||||
this.saveBatch(progressTaskList);
|
||||
@ -196,10 +210,7 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
for (TaskProgress taskProgress : progressTaskList) {
|
||||
String taskName = taskProgress.getTaskName();
|
||||
if (oldSet.contains(taskName)) {
|
||||
taskProgressMapper.update(taskProgress, new LambdaQueryWrapper<TaskProgress>()
|
||||
.eq(TaskProgress::getProjectSn, projectSn)
|
||||
.eq(TaskProgress::getTaskName, taskName)
|
||||
);
|
||||
taskProgressMapper.updateByTaskName(taskProgress);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -275,7 +286,11 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
long id = IdUtil.getSnowflake().nextId();
|
||||
progressTask.setId(id);
|
||||
// 任务名称
|
||||
progressTask.setTaskName(task.getName());
|
||||
String taskName = task.getName();
|
||||
if (StrUtil.isBlank(taskName)) {
|
||||
throw new OpenAlertException("任务名称不能为空");
|
||||
}
|
||||
progressTask.setTaskName(taskName);
|
||||
// 工期
|
||||
progressTask.setDuration(task.getDuration().getDuration());
|
||||
// 父节点id
|
||||
@ -295,15 +310,8 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
progressTask.setActualFinishDate(actualFinishDate);
|
||||
progressTask.setRemark(task.getNotes());
|
||||
// 设置当前状态
|
||||
if (progressRatio == 0 || actualStartDate == null || actualStartDate.getTime() > System.currentTimeMillis()) {
|
||||
progressTask.setProgressRatio(0D);
|
||||
progressTask.setStatus(ProgressTaskConstant.NOT_STARTED);
|
||||
} else if (progressRatio == 100D || (actualFinishDate != null && actualFinishDate.getTime() <= System.currentTimeMillis())) {
|
||||
progressTask.setProgressRatio(100D);
|
||||
progressTask.setStatus(ProgressTaskConstant.FINISH);
|
||||
} else {
|
||||
progressTask.setStatus(ProgressTaskConstant.RUNNING);
|
||||
}
|
||||
setStatusRel(progressTask);
|
||||
|
||||
// 负责人名称
|
||||
String dutyUserName = task.getText(4);
|
||||
progressTask.setDutyUserName(dutyUserName);
|
||||
@ -319,6 +327,7 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
}
|
||||
predecessorIds = progressTask.getPredecessorIds() + "," + progressTask.getId();
|
||||
|
||||
addWarning(progressTask);
|
||||
progressTaskList.add(progressTask);
|
||||
structureTaskDataList(progressTaskList, userNameSet, task.getChildTasks(), progressTask.getId(), projectSn, createUserId, predecessorIds);
|
||||
}
|
||||
@ -407,6 +416,7 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
@Override
|
||||
public void edit(TaskProgress taskProgress) {
|
||||
setStatusRel(taskProgress);
|
||||
updateById(taskProgress);
|
||||
baseMapper.updateByPrimaryId(taskProgress);
|
||||
addWarning(taskProgress);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user