From 93c5730c4c9ff51c18c380f8e9979f5e5a6a1edc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Fri, 9 May 2025 22:25:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/manage/ProPlanMapper.xml | 30 +++++-- .../manage/controller/ProPlanController.java | 5 +- .../impl/ProPlanScheduleServiceImpl.java | 78 +++++++++---------- .../src/views/manage/schedule/indexViews.vue | 14 ++-- 4 files changed, 73 insertions(+), 54 deletions(-) diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProPlanMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProPlanMapper.xml index 609e249c..235adaa0 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProPlanMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProPlanMapper.xml @@ -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) = ]]> 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) 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) = ]]> date(NOW()) THEN + 'zcjxz' + WHEN pp.start_date IS NOT NULL + AND pp.finish_date IS NULL + AND date(pp.plan_finish_date) 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 = ]]> pp.finish_date THEN + AND date(pp.plan_finish_date) = ]]> 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 pp.finish_date THEN + AND date(pp.plan_finish_date) date(pp.finish_date) THEN 'zhwc' WHEN pp.start_date IS NOT NULL AND pp.finish_date IS NULL - AND pp.plan_finish_date = ]]> NOW() THEN + AND date(pp.plan_finish_date) = ]]> date(NOW()) THEN 'zcjxz' WHEN pp.start_date IS NOT NULL AND pp.finish_date IS NULL - AND pp.plan_finish_date NOW() THEN + AND date(pp.plan_finish_date) date(NOW()) THEN 'zhjxz' END AS task_status, CASE diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java index a4ad3c10..09cbc9ec 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java @@ -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 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 proPlans) { diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProPlanScheduleServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProPlanScheduleServiceImpl.java index 939a88e0..ee663abe 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProPlanScheduleServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProPlanScheduleServiceImpl.java @@ -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 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 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 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()); diff --git a/yanzhu-ui-vue3/src/views/manage/schedule/indexViews.vue b/yanzhu-ui-vue3/src/views/manage/schedule/indexViews.vue index f1607cf1..3b3503f9 100644 --- a/yanzhu-ui-vue3/src/views/manage/schedule/indexViews.vue +++ b/yanzhu-ui-vue3/src/views/manage/schedule/indexViews.vue @@ -89,13 +89,13 @@