20 changed files with 291 additions and 14 deletions
@ -0,0 +1,31 @@
|
||||
package com.biutag.supervision.controller.sensitivePerception; |
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import com.biutag.supervision.pojo.Result; |
||||
import com.biutag.supervision.pojo.entity.ModelClue; |
||||
import com.biutag.supervision.pojo.model.ModelClueModel; |
||||
import com.biutag.supervision.pojo.param.ModelClueQueryParam; |
||||
import com.biutag.supervision.pojo.param.ModelQueryParam; |
||||
import com.biutag.supervision.service.ModelClueService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* @author wxc |
||||
* @date 2024/10/16 |
||||
*/ |
||||
@RequestMapping("model/clues") |
||||
@RequiredArgsConstructor |
||||
@RestController |
||||
public class ModelClueController { |
||||
|
||||
private final ModelClueService modelClueService; |
||||
|
||||
@GetMapping |
||||
public Result<Page<ModelClueModel>> page(ModelClueQueryParam param) { |
||||
return Result.success(modelClueService.page(param)); |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,35 @@
|
||||
package com.biutag.supervision.controller.sensitivePerception; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import com.biutag.supervision.pojo.Result; |
||||
import com.biutag.supervision.pojo.entity.ModelClueRecord; |
||||
import com.biutag.supervision.service.ModelClueRecordService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.PathVariable; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author wxc |
||||
* @date 2024/10/16 |
||||
*/ |
||||
@RequestMapping("model/clue/records") |
||||
@RequiredArgsConstructor |
||||
@RestController |
||||
public class ModelClueRecordController { |
||||
|
||||
private final ModelClueRecordService modelClueRecordService; |
||||
|
||||
@GetMapping("/{modelId}/top") |
||||
public Result<List<ModelClueRecord>> list(@PathVariable Integer modelId) { |
||||
LambdaUpdateWrapper<ModelClueRecord> queryWrapper = new LambdaUpdateWrapper<ModelClueRecord>() |
||||
.set(ModelClueRecord::getModelId, modelId) |
||||
.orderByDesc(ModelClueRecord::getCreateTime); |
||||
return Result.success(modelClueRecordService.page(new Page<>(1, 8), queryWrapper).getRecords()); |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,8 @@
|
||||
package com.biutag.supervision.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.biutag.supervision.pojo.entity.ModelClueRecord; |
||||
|
||||
public interface ModelClueRecordMapper extends BaseMapper<ModelClueRecord> { |
||||
|
||||
} |
||||
@ -0,0 +1,38 @@
|
||||
package com.biutag.supervision.pojo.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.annotation.TableField; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import lombok.Getter; |
||||
import lombok.Setter; |
||||
|
||||
import java.time.LocalDateTime; |
||||
|
||||
@Setter |
||||
@Getter |
||||
public class ModelClueRecord { |
||||
|
||||
//
|
||||
@TableId(type = IdType.AUTO) |
||||
private Integer id; |
||||
|
||||
// 模型ID
|
||||
private String modelId; |
||||
|
||||
// 条数
|
||||
@TableField("size") |
||||
private Integer size; |
||||
|
||||
// 创建时间
|
||||
@TableField("create_time") |
||||
private LocalDateTime createTime; |
||||
|
||||
// 状态 success-成功 fail-失败
|
||||
@TableField("state") |
||||
private String state; |
||||
|
||||
// 异常详情
|
||||
@TableField("err_msg") |
||||
private String errMsg; |
||||
|
||||
} |
||||
@ -0,0 +1,39 @@
|
||||
package com.biutag.supervision.pojo.model; |
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
import lombok.Getter; |
||||
import lombok.Setter; |
||||
|
||||
import java.time.LocalDateTime; |
||||
|
||||
/** |
||||
* |
||||
* @author wxc |
||||
* @date 2024/10/16 |
||||
*/ |
||||
@Setter |
||||
@Getter |
||||
public class ModelClueModel { |
||||
|
||||
private Integer id; |
||||
|
||||
private Integer modelId; |
||||
|
||||
private String modelName; |
||||
|
||||
// 涉及单位
|
||||
private String involveDepartName; |
||||
|
||||
|
||||
// 预警内容
|
||||
private String thingDesc; |
||||
|
||||
// 分发状态
|
||||
private String distributionState; |
||||
|
||||
@JsonFormat(pattern = "YYYY-MM-dd HH:mm") |
||||
private LocalDateTime createTime; |
||||
|
||||
private String data; |
||||
|
||||
} |
||||
@ -0,0 +1,23 @@
|
||||
package com.biutag.supervision.pojo.param; |
||||
|
||||
import lombok.Getter; |
||||
import lombok.Setter; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author wxc |
||||
* @date 2024/10/16 |
||||
*/ |
||||
@Setter |
||||
@Getter |
||||
public class ModelClueQueryParam extends BasePage { |
||||
private Integer modelId; |
||||
private String modelType; |
||||
|
||||
private List<LocalDateTime> createTime; |
||||
private Integer involveDepartId; |
||||
private String thingDesc; |
||||
private String distributionState; |
||||
} |
||||
@ -0,0 +1,11 @@
|
||||
package com.biutag.supervision.service; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.biutag.supervision.pojo.entity.ModelClueRecord; |
||||
import com.biutag.supervision.mapper.ModelClueRecordMapper; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
@Service |
||||
public class ModelClueRecordService extends ServiceImpl<ModelClueRecordMapper, ModelClueRecord> { |
||||
|
||||
} |
||||
@ -1,11 +1,50 @@
|
||||
package com.biutag.supervision.service; |
||||
|
||||
import cn.hutool.core.bean.BeanUtil; |
||||
import cn.hutool.core.util.StrUtil; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.biutag.supervision.pojo.entity.Model; |
||||
import com.biutag.supervision.pojo.entity.ModelClue; |
||||
import com.biutag.supervision.mapper.ModelClueMapper; |
||||
import com.biutag.supervision.pojo.model.ModelClueModel; |
||||
import com.biutag.supervision.pojo.param.ModelClueQueryParam; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.Objects; |
||||
import java.util.Set; |
||||
import java.util.stream.Collectors; |
||||
|
||||
@RequiredArgsConstructor |
||||
@Service |
||||
public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> { |
||||
|
||||
private final ModelService modelService; |
||||
|
||||
public Page<ModelClueModel> page(ModelClueQueryParam param) { |
||||
LambdaQueryWrapper<ModelClue> queryWrapper = new LambdaQueryWrapper<ModelClue>() |
||||
.eq(Objects.nonNull(param.getInvolveDepartId()), ModelClue::getInvolveDepartId, param.getInvolveDepartId()) |
||||
.eq(StrUtil.isNotBlank(param.getDistributionState()), ModelClue::getDistributionState, param.getDistributionState()) |
||||
.like(StrUtil.isNotBlank(param.getThingDesc()), ModelClue::getThingDesc, param.getThingDesc()) |
||||
.orderByDesc(ModelClue::getCreateTime); |
||||
Page<ModelClue> page = page(Page.of(param.getCurrent(), param.getSize()), queryWrapper); |
||||
if (page.getRecords().isEmpty()) { |
||||
return new Page<ModelClueModel>().setRecords(new ArrayList<>()).setTotal(0); |
||||
} |
||||
Set<Integer> modelIds = page.getRecords().stream().map(ModelClue::getModelId).collect(Collectors.toSet()); |
||||
List<Model> models = modelService.listByIds(modelIds); |
||||
List<ModelClueModel> list = page.getRecords().stream().map(item -> { |
||||
ModelClueModel modelClueModel = new ModelClueModel(); |
||||
BeanUtil.copyProperties(item, modelClueModel); |
||||
String modelName = models.stream().filter(model -> model.getId().equals(item.getModelId())).findFirst().map(Model::getModelName).orElse(""); |
||||
modelClueModel.setModelName(modelName); |
||||
return modelClueModel; |
||||
}).toList(); |
||||
return new Page<ModelClueModel>().setRecords(list).setTotal(page.getTotal()); |
||||
} |
||||
|
||||
} |
||||
|
||||
Loading…
Reference in new issue