提交代码
parent
58e87b2416
commit
93c5730c4c
|
@ -43,7 +43,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
pp.task_outline_level, pp.task_name, pp.task_duation, pp.start_date, pp.finish_date,
|
||||
pp.predecessors, pp.plan_start_date, pp.plan_finish_date, pp.bim_id, pp.operator, pp.operator_id,
|
||||
pp.group_id, pp.group_name, pp.schedule_node, pp.is_del, pp.create_by, pp.create_time, pp.update_by, pp.update_time, pp.remark,
|
||||
dp.`dept_name` comp_name,pi.`project_name`
|
||||
dp.`dept_name` comp_name,pi.`project_name`,
|
||||
CASE
|
||||
WHEN pp.start_date IS NULL THEN
|
||||
'wks'
|
||||
WHEN pp.start_date IS NOT NULL
|
||||
AND pp.finish_date IS NOT NULL
|
||||
AND date(pp.plan_finish_date) <![CDATA[ >= ]]> date(pp.finish_date) THEN
|
||||
'zcwc'
|
||||
WHEN pp.start_date IS NOT NULL
|
||||
AND pp.finish_date IS NOT NULL
|
||||
AND date(pp.plan_finish_date) <![CDATA[ < ]]> date(pp.finish_date) THEN
|
||||
'zhwc'
|
||||
WHEN pp.start_date IS NOT NULL
|
||||
AND pp.finish_date IS NULL
|
||||
AND date(pp.plan_finish_date) <![CDATA[ >= ]]> date(NOW()) THEN
|
||||
'zcjxz'
|
||||
WHEN pp.start_date IS NOT NULL
|
||||
AND pp.finish_date IS NULL
|
||||
AND date(pp.plan_finish_date) <![CDATA[ < ]]> date(NOW()) THEN
|
||||
'zhjxz'
|
||||
END AS task_status
|
||||
from pro_plan pp
|
||||
LEFT JOIN sys_dept dp ON pp.`comid`=dp.`dept_id`
|
||||
LEFT JOIN pro_project_info pi ON pp.`project_id`=pi.`id`
|
||||
|
@ -291,19 +311,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
'wks'
|
||||
WHEN pp.start_date IS NOT NULL
|
||||
AND pp.finish_date IS NOT NULL
|
||||
AND pp.plan_finish_date <![CDATA[ >= ]]> pp.finish_date THEN
|
||||
AND date(pp.plan_finish_date) <![CDATA[ >= ]]> date(pp.finish_date) THEN
|
||||
'zcwc'
|
||||
WHEN pp.start_date IS NOT NULL
|
||||
AND pp.finish_date IS NOT NULL
|
||||
AND pp.plan_finish_date <![CDATA[ < ]]> pp.finish_date THEN
|
||||
AND date(pp.plan_finish_date) <![CDATA[ < ]]> date(pp.finish_date) THEN
|
||||
'zhwc'
|
||||
WHEN pp.start_date IS NOT NULL
|
||||
AND pp.finish_date IS NULL
|
||||
AND pp.plan_finish_date <![CDATA[ >= ]]> NOW() THEN
|
||||
AND date(pp.plan_finish_date) <![CDATA[ >= ]]> date(NOW()) THEN
|
||||
'zcjxz'
|
||||
WHEN pp.start_date IS NOT NULL
|
||||
AND pp.finish_date IS NULL
|
||||
AND pp.plan_finish_date <![CDATA[ < ]]> NOW() THEN
|
||||
AND date(pp.plan_finish_date) <![CDATA[ < ]]> date(NOW()) THEN
|
||||
'zhjxz'
|
||||
END AS task_status,
|
||||
CASE
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.yanzhu.manage.controller;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.aspose.tasks.Project;
|
||||
import com.aspose.tasks.Task;
|
||||
import com.aspose.tasks.TaskCollection;
|
||||
|
@ -105,15 +106,17 @@ public class ProPlanController extends BaseController
|
|||
Project prj=new Project(file.getInputStream());
|
||||
List<ProPlan> proPlans=new ArrayList<>();
|
||||
tasksToPlans(prj.getRootTask().getChildren(),proPlans);
|
||||
System.out.println("prj.getRootTask().getChildren().size()===>"+ prj.getRootTask().getChildren().size());
|
||||
for(ProPlan proPlan:proPlans){
|
||||
proPlan.setComid(compId);
|
||||
proPlan.setProjectId(projectId);
|
||||
}
|
||||
System.out.println("proPlanService.addTasks(proPlans)==>"+proPlans.size());
|
||||
proPlanService.addTasks(proPlans);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return AjaxResult.success();
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
private void tasksToPlans(TaskCollection children, List<ProPlan> proPlans) {
|
||||
|
|
|
@ -76,7 +76,7 @@ public class ProPlanScheduleServiceImpl implements IProPlanScheduleService
|
|||
ProPlan plan = proPlanMapper.selectProPlanById(proPlanSchedule.getPlanId());
|
||||
plan.setScheduleNode(proPlanSchedule.getSchedulePercent().toString());
|
||||
plan.setUpdateTime(proPlanSchedule.getCreateDate());
|
||||
if(proPlanSchedule.getSchedulePercent()>=100){
|
||||
if(proPlanSchedule.getSchedulePercent()>=100L){
|
||||
if(plan.getStartDate()==null){
|
||||
plan.setStartDate(proPlanSchedule.getCreateDate());
|
||||
}
|
||||
|
@ -281,51 +281,47 @@ public class ProPlanScheduleServiceImpl implements IProPlanScheduleService
|
|||
if(plan.getFinishDate()!=null){
|
||||
int res = proPlanMapper.updateProPlan(plan);
|
||||
if(res>0){
|
||||
// 判断当前结构其它部位是否已全部完成
|
||||
List<ProPlan> brothers = proPlanMapper.selectProPlanBrothers(plan.getProjectId(),plan.getParentId());
|
||||
if(brothers.size()==0){
|
||||
ProPlan entity = proPlanMapper.selectProPlanByParams(plan.getProjectId(),plan.getParentId());
|
||||
ProPlan entity = proPlanMapper.selectProPlanByParams(plan.getProjectId(),plan.getParentId());
|
||||
if(entity!=null){
|
||||
entity.setUpdateTime(plan.getUpdateTime());
|
||||
if(entity!=null){
|
||||
if(entity.getStartDate()==null){
|
||||
entity.setStartDate(entity.getUpdateTime());
|
||||
}
|
||||
List<ProPlan> belows = proPlanMapper.selectProPlanBelows(entity.getProjectId(),entity.getTaskId());
|
||||
Float Finished = 0.0F;
|
||||
try {
|
||||
if(belows.size()>0){
|
||||
for(ProPlan item:belows){
|
||||
Float sNode = Convert.toFloat(item.getScheduleNode(),0.0F);
|
||||
if(sNode>0){
|
||||
if(sNode==100){
|
||||
Finished += Convert.toFloat(item.getTaskDuation(),0.0F);
|
||||
}else{
|
||||
Finished += Convert.toFloat(item.getTaskDuation()*(sNode/100));
|
||||
}
|
||||
if(entity.getStartDate()==null){
|
||||
entity.setStartDate(entity.getUpdateTime());
|
||||
}
|
||||
List<ProPlan> belows = proPlanMapper.selectProPlanBelows(entity.getProjectId(),entity.getTaskId());
|
||||
Float Finished = 0.0F;
|
||||
try {
|
||||
if(belows.size()>0){
|
||||
for(ProPlan item:belows){
|
||||
Float sNode = Convert.toFloat(item.getScheduleNode(),0.0F);
|
||||
if(sNode>0){
|
||||
if(sNode==100){
|
||||
Finished += Convert.toFloat(item.getTaskDuation(),0.0F);
|
||||
}else{
|
||||
Finished += Convert.toFloat(item.getTaskDuation()*(sNode/100));
|
||||
}
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(Finished==0){
|
||||
entity.setScheduleNode("0");
|
||||
}else{
|
||||
Double _cn = Convert.toDouble(Finished/entity.getTaskDuation())*100;
|
||||
if(_cn>100){
|
||||
entity.setScheduleNode("100");
|
||||
}else{
|
||||
entity.setScheduleNode(String.format("%.2f", _cn));
|
||||
}
|
||||
}
|
||||
// 更新总进度
|
||||
if(entity.getTaskOutlineLevel()==1){
|
||||
proPlanScheduleMapper.updateProPlanTotalSchedule(entity.getProjectId(),entity.getScheduleNode());
|
||||
}
|
||||
System.out.println("RecursionEditFinishDate.entity.getScheduleNode()..."+entity.getScheduleNode());
|
||||
entity.setFinishDate(plan.getFinishDate());
|
||||
RecursionEditFinishDate(entity);
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(Finished==0){
|
||||
entity.setScheduleNode("0");
|
||||
}else{
|
||||
Double _cn = Convert.toDouble(Finished/entity.getTaskDuation())*100;
|
||||
if(_cn>100){
|
||||
entity.setScheduleNode("100");
|
||||
}else{
|
||||
entity.setScheduleNode(String.format("%.2f", _cn));
|
||||
}
|
||||
}
|
||||
// 更新总进度
|
||||
if(entity.getTaskOutlineLevel()==1L){
|
||||
proPlanScheduleMapper.updateProPlanTotalSchedule(entity.getProjectId(),entity.getScheduleNode());
|
||||
}
|
||||
System.out.println("RecursionEditFinishDate.entity.getScheduleNode()..."+entity.getScheduleNode());
|
||||
entity.setFinishDate(plan.getFinishDate());
|
||||
RecursionEditFinishDate(entity);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
|
@ -362,7 +358,7 @@ public class ProPlanScheduleServiceImpl implements IProPlanScheduleService
|
|||
}
|
||||
}
|
||||
// 更新总进度
|
||||
if(entity.getTaskOutlineLevel()==1){
|
||||
if(entity.getTaskOutlineLevel()==1L){
|
||||
proPlanScheduleMapper.updateProPlanTotalSchedule(entity.getProjectId(),entity.getScheduleNode());
|
||||
}
|
||||
System.out.println("RecursionEditFinishDate.entity.getScheduleNode()..."+entity.getScheduleNode());
|
||||
|
|
|
@ -89,13 +89,13 @@
|
|||
<el-table-column label="完成进度" align="center" prop="operator" width="250">
|
||||
<template #default="scope">
|
||||
<el-progress
|
||||
v-if="scope.row.Progress==0"
|
||||
v-if="scope.row.taskStatus=='zhjxz' || scope.row.taskStatus=='zcjxz'"
|
||||
:percentage="Number(scope.row.scheduleNode)"
|
||||
:stroke-width="15"
|
||||
:text-inside="true"
|
||||
/>
|
||||
<el-progress
|
||||
v-if="scope.row.Progress==-2"
|
||||
v-if="scope.row.taskStatus=='wks'"
|
||||
:percentage="Number(scope.row.scheduleNode)"
|
||||
:stroke-width="15"
|
||||
status="exception"
|
||||
|
@ -103,14 +103,14 @@
|
|||
:indeterminate="true"
|
||||
/>
|
||||
<el-progress
|
||||
v-if="scope.row.Progress==-1"
|
||||
v-if="scope.row.taskStatus=='zhwc'"
|
||||
:percentage="Number(scope.row.scheduleNode)"
|
||||
:stroke-width="15"
|
||||
status="warning"
|
||||
:text-inside="true"
|
||||
/>
|
||||
<el-progress
|
||||
v-if="scope.row.Progress==1"
|
||||
v-if="scope.row.taskStatus=='zcwc'"
|
||||
:percentage="Number(scope.row.scheduleNode)"
|
||||
:stroke-width="15"
|
||||
status="success"
|
||||
|
@ -166,9 +166,9 @@ function getList() {
|
|||
loading.value = true;
|
||||
listPlan(queryParams.value).then((response) => {
|
||||
let tmps = response.data || [];
|
||||
tmps.forEach(tmp => {
|
||||
tmp.Progress = compareDate(tmp.planFinishDate,tmp.finishDate);
|
||||
})
|
||||
// tmps.forEach(tmp => {
|
||||
// tmp.Progress = compareDate(tmp.planFinishDate,tmp.finishDate);
|
||||
// })
|
||||
let objs = buildTree(tmps, 0);
|
||||
planList.value = objs;
|
||||
loading.value = false;
|
||||
|
|
Loading…
Reference in New Issue