feat:排版任务信息查询详情接口,排版任务信息删除接口,排版任务信息修改接口

This commit is contained in:
qiaoqinzheng 2023-05-16 16:43:24 +08:00
parent f614cf391b
commit 8910b3f92a
6 changed files with 165 additions and 6 deletions

View File

@ -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<List<SysTask>> result = sysTaskService.findInfo(day);
return result;
}
@PostMapping("create")
@ApiOperation(value = "新增排班任务", notes = "新增排班任务")
public Result create(@RequestBody @Validated List<SysTask> sysTasks){
public Result create(@RequestBody @Validated(value = InsertGroup.class) List<SysTask> sysTasks){
return sysTaskService.create(sysTasks);
}
@PutMapping("update")
public Result update(){
return null;
@ApiOperation(value = "修改排班任务", notes = "修改排班任务")
public Result update(@RequestBody @Validated(value = UpdateGroup.class) List<SysTask> sysTasks){
return sysTaskService.update(sysTasks);
}
@DeleteMapping("deleteById")
@ApiOperation(value = "删除排班任务", notes = "删除排班任务")
public Result deleteById(String taskId, String userId){
return sysTaskService.deleteById(taskId, userId);
}
}

View File

@ -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")

View File

@ -16,4 +16,12 @@ public interface SysTaskMapper extends BaseMapper<SysTask> {
*/
List<SysTaskVo> selectTasks(String firstDay, String lastDay);
/**
* 查询日期范围内的排班任务信息
* @param firstDay
* @param lastDay
* @return
*/
List<SysTask> selectTaskByDate(String firstDay, String lastDay);
}

View File

@ -17,4 +17,15 @@
group by t.user_id,t.scheduling_date,t.id,u.username
</select>
<select id="selectTaskByDate" resultType="org.jeecg.modules.system.entity.SysTask">
SELECT
t.user_id as userId,
t.scheduling_date as schedulingDate,
t.id
FROM
sys_task t
left join sys_task_station s on t.id = s.task_id
where t.scheduling_date BETWEEN #{firstDay} and #{lastDay}
</select>
</mapper>

View File

@ -11,8 +11,35 @@ import java.util.Map;
public interface ISysTaskService extends IService<SysTask> {
/**
* 查询一个月的排班任务信息
* @param yearMonth
* @return
*/
Result<Map<String, List<SysTaskVo>>> findList(Date yearMonth);
Result<List<SysTask>> findInfo(Date day);
/**
* 新增排班任务信息
* @param sysTasks
* @return
*/
Result create(List<SysTask> sysTasks);
/**
* 修改用户的任务信息
* @param sysTasks
* @return
*/
Result update(List<SysTask> sysTasks);
/**
* 删除排班任务信息
* @param taskId
* @param userId
* @return
*/
Result deleteById(String taskId, String userId);
}

View File

@ -45,9 +45,8 @@ public class SysTaskServiceImpl extends ServiceImpl<SysTaskMapper, SysTask> impl
//获取全部台站信息
List<GardsStations> 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<SysTaskMapper, SysTask> impl
return result;
}
@Override
public Result<List<SysTask>> findInfo(Date day) {
Result<List<SysTask>> 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<SysTask> sysTasks = this.baseMapper.selectTaskByDate(date, date);
if (CollectionUtils.isNotEmpty(sysTasks)){
List<String> taskIds = sysTasks.stream().map(SysTask::getId).collect(Collectors.toList());
LambdaQueryWrapper<SysTaskStation> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SysTaskStation::getTaskId, taskIds);
queryWrapper.select(SysTaskStation::getId,SysTaskStation::getTaskId,SysTaskStation::getStationId);
List<SysTaskStation> taskStations = sysTaskStationMapper.selectList(queryWrapper);
if (CollectionUtils.isNotEmpty(taskStations)){
for (SysTask sysTask:sysTasks) {
List<SysTaskStation> 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<SysTask> sysTasks){
@ -150,5 +178,75 @@ public class SysTaskServiceImpl extends ServiceImpl<SysTaskMapper, SysTask> impl
return result;
}
@Override
@Transactional
public Result update(List<SysTask> 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<SysTask> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysTask::getSchedulingDate, DateUtils.formatDate(schedulingDate, "yyyy-MM-dd"));
List<SysTask> sysTasks = this.baseMapper.selectList(queryWrapper);
//获取任务信息的id
List<String> taskIds = sysTasks.stream().map(SysTask::getId).collect(Collectors.toList());
//根据任务id删除关联的台站信息
LambdaQueryWrapper<SysTaskStation> 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<SysTaskStation> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysTaskStation::getTaskId, taskId);
sysTaskStationMapper.delete(queryWrapper);
LambdaQueryWrapper<SysTask> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysTask::getId, taskId);
wrapper.eq(SysTask::getUserId, userId);
this.baseMapper.delete(wrapper);
result.success("删除成功");
return result;
}
}