From ceecd86aa3cc4828992d895858ad28bef64493e2 Mon Sep 17 00:00:00 2001 From: shiji <1913712590@qq.com> Date: Fri, 21 Jul 2023 14:34:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/controller/TaskController.java | 56 +++++++++++-------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/task/controller/TaskController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/task/controller/TaskController.java index 91e35c3..28b30e7 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/task/controller/TaskController.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/task/controller/TaskController.java @@ -61,13 +61,13 @@ public class TaskController extends JeecgController { private static final String ADMIN = "admin"; private static final String FORMAT = "yyyy/MM/dd HH:mm:ss"; - private static final long DAYWORKTIME = 35*60*60*100*2; - private static final long DAYTIME = 24*60*60*1000; + private static final long DAYWORKTIME = 35 * 60 * 60 * 100 * 2; + private static final long DAYTIME = 24 * 60 * 60 * 1000; private static final String MORINGSTART = " 08:30:00"; private static final String MORINGEND = " 12:00:00"; private static final String AFTERNOONSTART = " 14:30:00"; - private static final String AFTERNOONEND= " 18:00:00"; + private static final String AFTERNOONEND = " 18:00:00"; @Resource private IProjectxService iProjectxService; @@ -328,7 +328,9 @@ public class TaskController extends JeecgController { avatars.append(byId.getAvatar()).append(","); } - avatars = new StringBuilder(avatars.substring(0, avatars.length() - 1)); + if (avatars.length() != 0) { + avatars = new StringBuilder(avatars.substring(0, avatars.length() - 1)); + } e.setHeadpic(avatars.toString()); } @@ -350,6 +352,9 @@ public class TaskController extends JeecgController { if (count > 0) { return Result.error("名字不能重复"); } + task.setUpdateTime(new Date()); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + task.setUpdateBy(user.getUsername()); taskService.save(task); return Result.OK("添加成功!"); } @@ -367,9 +372,11 @@ public class TaskController extends JeecgController { taskService.updateById(task); return Result.OK("编辑成功!"); } + /** * 提交任务,更新状态,同时计算实际任务时长 * 计算一整天,之后算头和尾时间 + * * @param task * @return */ @@ -378,7 +385,7 @@ public class TaskController extends JeecgController { public Result updateWorkStatus(@RequestBody Task task) { Date time = new Date(); - if (task.getWorkStatus() == 3){ + if (task.getWorkStatus() == 3) { //获取数据 Task oldTask = taskService.query().eq("id", task.getId()).one(); Date startTime = oldTask.getStartTime(); @@ -390,7 +397,7 @@ public class TaskController extends JeecgController { } //设置更新数据 - double realTimeHour = (double)realTime/(60*60*1000); + double realTimeHour = (double) realTime / (60 * 60 * 1000); realTimeHour = new BigDecimal(realTimeHour).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue(); task.setRealDuration(realTimeHour); task.setSubmitTime(time); @@ -428,15 +435,15 @@ public class TaskController extends JeecgController { Date date4 = sdf.parse(time4); //从start往后推到end,要判断大量情况 - if (startTime.compareTo(endTime) > 0){ + if (startTime.compareTo(endTime) > 0) { //时间跨度两天,但总时间不超过24小时 if (startTime.compareTo(date1) <= 0) startTime = date1; //任务发布在8点前,从8点开始算 - if (startTime.compareTo(date2) <= 0){ + if (startTime.compareTo(date2) <= 0) { //早上有工作时间 workTime += date2.getTime() - startTime.getTime(); //跨度两天,下午必有任务时间 - workTime += DAYWORKTIME/2; + workTime += DAYWORKTIME / 2; //第二天下午必没有工作时间,判断第二天早上是否有部分工作时间 if (endTime.compareTo(date1) > 0) workTime += endTime.getTime() - date1.getTime(); //第二天早上有工作时间 @@ -450,24 +457,24 @@ public class TaskController extends JeecgController { workTime += date4.getTime() - startTime.getTime(); if (endTime.compareTo(date1) <= 0) return workTime; //第二天没有工作时间 - if (endTime.compareTo(date2) <= 0){ + if (endTime.compareTo(date2) <= 0) { workTime += endTime.getTime() - date1.getTime(); //第二天上午有部分工作时间 return workTime; //必然下午没有工作时间 } - workTime += DAYWORKTIME/2; //第二天上午工作时间占满 + workTime += DAYWORKTIME / 2; //第二天上午工作时间占满 if (endTime.compareTo(date3) <= 0) return workTime; //下午没有工作时间 if (endTime.compareTo(date4) >= 0) endTime = date4; //下午干满了 workTime += endTime.getTime() - date3.getTime(); return workTime; - }else { + } else { //时间跨度没有超过两天 if (startTime.compareTo(date1) <= 0) startTime = date1; //发布任务在8点之前 - if (startTime.compareTo(date2) <= 0){ + if (startTime.compareTo(date2) <= 0) { //上午发布的任务 - if (endTime.compareTo(date2) <= 0){ + if (endTime.compareTo(date2) <= 0) { //上午提交的任务 workTime += endTime.getTime() - startTime.getTime(); return workTime; @@ -478,7 +485,7 @@ public class TaskController extends JeecgController { if (endTime.compareTo(date4) >= 0) endTime = date4; //时间偏移 workTime += endTime.getTime() - date3.getTime(); //下午工作时间 - }else { + } else { //下午发布的任务 if (startTime.compareTo(date3) <= 0) startTime = date3; //12点之后,14点之前发布任务 @@ -492,11 +499,12 @@ public class TaskController extends JeecgController { /** * 计算预计结束时间 + * * @param task * @return */ @GetMapping("/estimateTime") - public Result calculating(Task task){ + public Result calculating(Task task) { if (task.getStartTime() == null || task.getExpectedDuration() == null) return Result.error("参数不足,无法计算预计结束时间"); Date date = null; @@ -510,6 +518,7 @@ public class TaskController extends JeecgController { /** * 计算预计结束时间方法 + * * @param startTime * @param expectedDuration * @return @@ -538,11 +547,11 @@ public class TaskController extends JeecgController { long tempTime = 0; if (startTime.compareTo(date1) <= 0) startTime = date1; //任务发布在8点半之前,修正时间 - if (startTime.compareTo(date2) < 0){ + if (startTime.compareTo(date2) < 0) { //上午发布任务 tempTime = date2.getTime() - startTime.getTime(); if (tempTime >= millisecond) - return new Date(startTime.getTime() + millisecond + DAYTIME*offset); //预计上午结束,直接偏移剩余时间 + return new Date(startTime.getTime() + millisecond + DAYTIME * offset); //预计上午结束,直接偏移剩余时间 //上午剩余时间全部工作,时间进行修正到下午工作开始时间 millisecond -= tempTime; startTime = date3; @@ -550,23 +559,24 @@ public class TaskController extends JeecgController { if (startTime.compareTo(date3) <= 0) startTime = date3; //任务是下午发布且在2点半之前,修正时间 - if (startTime.compareTo(date4) < 0){ + if (startTime.compareTo(date4) < 0) { //下午发布任务 tempTime = date4.getTime() - startTime.getTime(); if (tempTime >= millisecond) - return new Date(startTime.getTime() + millisecond + DAYTIME*offset); + return new Date(startTime.getTime() + millisecond + DAYTIME * offset); } //时间修正,天数偏移量加1,到这里有两中情况,1、白天工作时间不足抵消 2、下午6点之后发布任务 - offset ++; + offset++; startTime = date1; tempTime = date2.getTime() - date1.getTime(); if (tempTime >= millisecond) - return new Date(startTime.getTime() + millisecond + DAYTIME*offset); + return new Date(startTime.getTime() + millisecond + DAYTIME * offset); //上午偏移不足,下午一定够,因为不会跨两天 millisecond -= tempTime; - return new Date(startTime.getTime() + millisecond + DAYTIME*offset); + return new Date(startTime.getTime() + millisecond + DAYTIME * offset); } + /** * 通过id删除 *