From 8910b3f92a200cffd50795d7021f125bd6b07b44 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 16 May 2023 16:43:24 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=8E=92=E7=89=88=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=BF=A1=E6=81=AF=E6=9F=A5=E8=AF=A2=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=8E=92=E7=89=88=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E6=8E=92=E7=89=88=E4=BB=BB=E5=8A=A1=E4=BF=A1=E6=81=AF=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysTaskController.java | 22 +++- .../jeecg/modules/system/entity/SysTask.java | 1 + .../modules/system/mapper/SysTaskMapper.java | 8 ++ .../system/mapper/xml/SysTaskMapper.xml | 11 ++ .../system/service/ISysTaskService.java | 27 +++++ .../service/impl/SysTaskServiceImpl.java | 102 +++++++++++++++++- 6 files changed, 165 insertions(+), 6 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java index 39393ef0..f5bf5960 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java @@ -9,6 +9,8 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.util.IpUtils; import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.config.valid.InsertGroup; +import org.jeecg.config.valid.UpdateGroup; import org.jeecg.modules.system.entity.SysTask; import org.jeecg.modules.system.entity.vo.SysTaskVo; import org.jeecg.modules.system.service.ISysTaskService; @@ -38,17 +40,29 @@ public class SysTaskController { return result; } + @GetMapping("findInfo") + @ApiOperation(value = "查询日期当天的排班任务详情信息", notes = "查询日期当天的排班任务详情信息") + public Result findInfo(@DateTimeFormat(pattern = "yyyy-MM-dd") Date day){ + Result> result = sysTaskService.findInfo(day); + return result; + } + @PostMapping("create") @ApiOperation(value = "新增排班任务", notes = "新增排班任务") - public Result create(@RequestBody @Validated List sysTasks){ + public Result create(@RequestBody @Validated(value = InsertGroup.class) List sysTasks){ return sysTaskService.create(sysTasks); } @PutMapping("update") - public Result update(){ - return null; + @ApiOperation(value = "修改排班任务", notes = "修改排班任务") + public Result update(@RequestBody @Validated(value = UpdateGroup.class) List sysTasks){ + return sysTaskService.update(sysTasks); } - + @DeleteMapping("deleteById") + @ApiOperation(value = "删除排班任务", notes = "删除排班任务") + public Result deleteById(String taskId, String userId){ + return sysTaskService.deleteById(taskId, userId); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysTask.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysTask.java index 0671429f..855165e5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysTask.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysTask.java @@ -29,6 +29,7 @@ public class SysTask implements Serializable { @TableField(value = "scheduling_date") @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") + @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private Date schedulingDate; @TableField(value = "create_by") diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTaskMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTaskMapper.java index d7609811..99b62c31 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTaskMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTaskMapper.java @@ -16,4 +16,12 @@ public interface SysTaskMapper extends BaseMapper { */ List selectTasks(String firstDay, String lastDay); + /** + * 查询日期范围内的排班任务信息 + * @param firstDay + * @param lastDay + * @return + */ + List selectTaskByDate(String firstDay, String lastDay); + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysTaskMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysTaskMapper.xml index 142cce30..68e7cb29 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysTaskMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysTaskMapper.xml @@ -17,4 +17,15 @@ group by t.user_id,t.scheduling_date,t.id,u.username + + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTaskService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTaskService.java index ee0cebf9..11e4fc19 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTaskService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTaskService.java @@ -11,8 +11,35 @@ import java.util.Map; public interface ISysTaskService extends IService { + /** + * 查询一个月的排班任务信息 + * @param yearMonth + * @return + */ Result>> findList(Date yearMonth); + Result> findInfo(Date day); + + /** + * 新增排班任务信息 + * @param sysTasks + * @return + */ Result create(List sysTasks); + /** + * 修改用户的任务信息 + * @param sysTasks + * @return + */ + Result update(List sysTasks); + + /** + * 删除排班任务信息 + * @param taskId + * @param userId + * @return + */ + Result deleteById(String taskId, String userId); + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java index cc512539..bebc38de 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java @@ -45,9 +45,8 @@ public class SysTaskServiceImpl extends ServiceImpl impl //获取全部台站信息 List gardsStations = gardsStationsService.getGardsStations(); try { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String yearMonthStr = dateFormat.format(yearMonth); + String yearMonthStr = DateUtils.formatDate(yearMonth, "yyyy-MM"); yearMonthStr = yearMonthStr + "-01"; String firstday = ""; String lastday = ""; @@ -116,6 +115,35 @@ public class SysTaskServiceImpl extends ServiceImpl impl return result; } + @Override + public Result> findInfo(Date day) { + Result> result = new Result(); + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar cal = Calendar.getInstance(); + cal.setTime(sdf.parse(DateUtils.formatDate(day, "yyyy-MM-dd"))); + String date = sdf.format(cal.getTime()); + List sysTasks = this.baseMapper.selectTaskByDate(date, date); + if (CollectionUtils.isNotEmpty(sysTasks)){ + List taskIds = sysTasks.stream().map(SysTask::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(SysTaskStation::getTaskId, taskIds); + queryWrapper.select(SysTaskStation::getId,SysTaskStation::getTaskId,SysTaskStation::getStationId); + List taskStations = sysTaskStationMapper.selectList(queryWrapper); + if (CollectionUtils.isNotEmpty(taskStations)){ + for (SysTask sysTask:sysTasks) { + List stations = taskStations.stream().filter(item -> item.getTaskId().equals(sysTask.getId())).collect(Collectors.toList()); + sysTask.setStationList(stations); + } + } + } + result.setResult(sysTasks); + } catch (ParseException e) { + throw new RuntimeException(e); + } + return result; + } + @Override @Transactional public Result create(List sysTasks){ @@ -150,5 +178,75 @@ public class SysTaskServiceImpl extends ServiceImpl impl return result; } + @Override + @Transactional + public Result update(List sysTasks) { + Result result = new Result(); + //获取request + HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); + //获取当前操作人用户名 + String username = JwtUtil.getUserNameByToken(request); + //设置IP地址 + String ipAddr = IpUtils.getIpAddr(request); + //如果新增排班任务不为空 + if (CollectionUtils.isNotEmpty(sysTasks)){ + //获取第一个排班任务的信息 + SysTask task = sysTasks.get(0); + this.deleteByDate(task.getSchedulingDate()); + //遍历排班任务进行存储 + for (SysTask sysTask:sysTasks) { + //操作人 + sysTask.setCreateBy(username); + //操作人的ip + sysTask.setOperateIp(ipAddr); + //id + sysTask.setId(String.valueOf(IdWorker.getId())); + //创建时间 + sysTask.setCreateTime(new Date()); + this.baseMapper.insert(sysTask); + //如果排班任务中台站信息不为空 + if (CollectionUtils.isNotEmpty(sysTask.getStationList())){ + sysTaskStationService.create(sysTask.getId(), ipAddr, sysTask.getStationList()); + } + } + } + result.setSuccess(true); + result.success("修改成功"); + return result; + } + + /** + * 根据排班任务日期删除历史任务信息 + * @param schedulingDate + */ + private void deleteByDate(Date schedulingDate){ + //根据排班日期查询对应的任务信息 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysTask::getSchedulingDate, DateUtils.formatDate(schedulingDate, "yyyy-MM-dd")); + List sysTasks = this.baseMapper.selectList(queryWrapper); + //获取任务信息的id + List taskIds = sysTasks.stream().map(SysTask::getId).collect(Collectors.toList()); + //根据任务id删除关联的台站信息 + LambdaQueryWrapper taskStationQueryWrapper = new LambdaQueryWrapper<>(); + taskStationQueryWrapper.in(SysTaskStation::getTaskId, taskIds); + sysTaskStationMapper.delete(taskStationQueryWrapper); + //根据任务id删除任务信息 + this.baseMapper.deleteBatchIds(taskIds); + } + + @Override + public Result deleteById(String taskId, String userId) { + Result result = new Result(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysTaskStation::getTaskId, taskId); + sysTaskStationMapper.delete(queryWrapper); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysTask::getId, taskId); + wrapper.eq(SysTask::getUserId, userId); + this.baseMapper.delete(wrapper); + result.success("删除成功"); + return result; + } + }