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 f5bf5960..a8792ff4 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 @@ -1,17 +1,13 @@ package org.jeecg.modules.system.controller; -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import com.baomidou.mybatisplus.core.toolkit.IdWorker; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; 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.SysTaskChangeVo; import org.jeecg.modules.system.entity.vo.SysTaskVo; import org.jeecg.modules.system.service.ISysTaskService; import org.springframework.beans.factory.annotation.Autowired; @@ -19,7 +15,6 @@ import org.springframework.format.annotation.DateTimeFormat; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.List; import java.util.Map; @@ -65,4 +60,10 @@ public class SysTaskController { return sysTaskService.deleteById(taskId, userId); } + @PutMapping("changeScheduling") + @ApiOperation(value = "交接排班任务", notes = "交接排班任务") + public Result changeScheduling(@RequestBody SysTaskChangeVo sysTaskChangeVo){ + return sysTaskService.changeScheduling(sysTaskChangeVo); + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/vo/SysTaskChangeVo.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/vo/SysTaskChangeVo.java new file mode 100644 index 00000000..cf928013 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/vo/SysTaskChangeVo.java @@ -0,0 +1,23 @@ +package org.jeecg.modules.system.entity.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +@Data +public class SysTaskChangeVo { + + private String fromUserId; + + private String toUserId; + + private List stationIds; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date day; + +} 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 99b62c31..ca5be283 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 @@ -1,7 +1,9 @@ package org.jeecg.modules.system.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.jeecg.modules.system.entity.SysTask; +import org.jeecg.modules.system.entity.SysTaskStation; import org.jeecg.modules.system.entity.vo.SysTaskVo; import java.util.List; @@ -24,4 +26,5 @@ public interface SysTaskMapper extends BaseMapper { */ List selectTaskByDate(String firstDay, String lastDay); + List selectList(LambdaQueryWrapper sysTaskStationQueryWrapper); } 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 11e4fc19..d9ccf852 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 @@ -3,6 +3,7 @@ package org.jeecg.modules.system.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.system.entity.SysTask; +import org.jeecg.modules.system.entity.vo.SysTaskChangeVo; import org.jeecg.modules.system.entity.vo.SysTaskVo; import java.util.Date; @@ -42,4 +43,10 @@ public interface ISysTaskService extends IService { */ Result deleteById(String taskId, String userId); + /** + * 交接排班任务 + * @param sysTaskChangeVo + * @return + */ + Result changeScheduling(SysTaskChangeVo sysTaskChangeVo); } 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 770689ce..d7e9fb97 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 @@ -12,6 +12,7 @@ import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.system.entity.GardsStations; import org.jeecg.modules.system.entity.SysTask; import org.jeecg.modules.system.entity.SysTaskStation; +import org.jeecg.modules.system.entity.vo.SysTaskChangeVo; import org.jeecg.modules.system.entity.vo.SysTaskVo; import org.jeecg.modules.system.mapper.SysTaskMapper; import org.jeecg.modules.system.mapper.SysTaskStationMapper; @@ -261,5 +262,45 @@ public class SysTaskServiceImpl extends ServiceImpl impl return result; } + @Override + @Transactional + public Result changeScheduling(SysTaskChangeVo sysTaskChangeVo) { + Result result = new Result(); + //来源用户相关信息查询 + //查询出当前来源用户在排版日期的任务信息 + LambdaQueryWrapper fromQueryWrapper = new LambdaQueryWrapper<>(); + fromQueryWrapper.eq(SysTask::getUserId, sysTaskChangeVo.getFromUserId()); + fromQueryWrapper.eq(SysTask::getSchedulingDate, DateUtils.formatDate(sysTaskChangeVo.getDay(), "yyyy-MM-dd")); + SysTask fromSysTask = this.baseMapper.selectOne(fromQueryWrapper); + //根据来源用户的任务以及台站信息查询出对应的任务及台站信息 + LambdaQueryWrapper fromTaskQueryWrapper = new LambdaQueryWrapper<>(); + fromTaskQueryWrapper.eq(SysTaskStation::getTaskId, fromSysTask.getId()); + fromTaskQueryWrapper.in(SysTaskStation::getStationId, sysTaskChangeVo.getStationIds()); + List sysTaskStations = sysTaskStationMapper.selectList(fromTaskQueryWrapper); + //转移到用户相关信息查询 + //查询出当前转移到用户在排班日期的任务信息 + LambdaQueryWrapper toQueryWrapper = new LambdaQueryWrapper<>(); + toQueryWrapper.eq(SysTask::getUserId, sysTaskChangeVo.getToUserId()); + toQueryWrapper.eq(SysTask::getSchedulingDate, DateUtils.formatDate(sysTaskChangeVo.getDay(), "yyyy-MM-dd")); + SysTask toSysTask = this.baseMapper.selectOne(toQueryWrapper); + //台站信息不为空 + if (CollectionUtils.isNotEmpty(sysTaskStations)){ + //遍历当前要进行修改的台站信息 + for (SysTaskStation taskStation:sysTaskStations) { + taskStation.setTaskId(toSysTask.getId()); + sysTaskStationMapper.updateById(taskStation); + } + } + //判断 如果当前来源用户及日期下的排班任务对应的台站信息为空,排班任务信息删除 + LambdaQueryWrapper sysTaskStationQueryWrapper = new LambdaQueryWrapper<>(); + sysTaskStationQueryWrapper.eq(SysTaskStation::getTaskId, fromSysTask.getId()); + List stations = sysTaskStationMapper.selectList(sysTaskStationQueryWrapper); + if (CollectionUtils.isEmpty(stations)){ + this.baseMapper.deleteById(fromSysTask); + } + result.setSuccess(true); + result.success("交接完成"); + return result; + } }