package com.example.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.example.common.Result; import com.example.entity.DataExcel; import com.example.entity.DataTask; import com.example.service.DataExcelService; import com.example.service.DataTaskService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/data-task") public class DataTaskController { @Autowired private DataTaskService dataTaskService; @Autowired private DataExcelService dataExcelService; @GetMapping("/page") public Result> page( @RequestParam(defaultValue = "1") Long current, @RequestParam(defaultValue = "10") Long size, @RequestParam(required = false) String unitCode, @RequestParam(required = false) String status) { Page page = new Page<>(current, size); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if (unitCode != null && !unitCode.isEmpty()) { wrapper.eq(DataTask::getUnitCode, unitCode); } if (status != null && !status.isEmpty()) { wrapper.eq(DataTask::getStatus, status); } wrapper.orderByDesc(DataTask::getCreateTime); IPage dataTaskPage = dataTaskService.page(page, wrapper); return Result.success(dataTaskPage); } @GetMapping("/pageNew") public Result> pageNew( @RequestParam(defaultValue = "1") Long current, @RequestParam(defaultValue = "10") Long size, @RequestParam(required = false) String unitCode, @RequestParam(required = false) String status) { Page page = new Page<>(current, size); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if (unitCode != null && !unitCode.isEmpty()) { wrapper.eq(DataTask::getUnitCode, unitCode); } if (status != null && !status.isEmpty()) { wrapper.eq(DataTask::getStatus, status); } wrapper.orderByDesc(DataTask::getCreateTime); IPage dataTaskPage = dataTaskService.page(page, wrapper); for (DataTask record : dataTaskPage.getRecords()) { LambdaQueryWrapper excelLambdaQueryWrapper = new LambdaQueryWrapper<>(); excelLambdaQueryWrapper.eq(DataExcel::getUnitCode,record.getUnitCode()); excelLambdaQueryWrapper.orderByDesc(DataExcel::getCreateTime); List list = dataExcelService.list(excelLambdaQueryWrapper); if(list.isEmpty()){ record.setStatus(0); record.setSuccessCount(0); dataTaskService.updateById(record); }else { record.setSuccessCount(list.size()); if( list.size() >= record.getTaskCount()){ record.setStatus(1); }else { record.setStatus(0); } dataTaskService.updateById(record); } } return Result.success(dataTaskPage); } @GetMapping("/{id}") public Result getById(@PathVariable Long id) { DataTask dataTask = dataTaskService.getById(id); return Result.success(dataTask); } @PostMapping public Result save(@RequestBody DataTask dataTask) { // 检查单位id是否已存在 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(DataTask::getUnitCode, dataTask.getUnitCode()); if (dataTaskService.count(wrapper) > 0) { return Result.error("该单位任务已存在"); } DataTask task = new DataTask(); BeanUtils.copyProperties(dataTask,task); task.setStatus(0); return Result.success(dataTaskService.save(task)); } @PutMapping public Result update(@RequestBody DataTask dataTask) { return Result.success(dataTaskService.updateById(dataTask)); } @DeleteMapping("/{id}") public Result delete(@PathVariable Long id) { return Result.success(dataTaskService.removeById(id)); } }