From 5e2acc9a099a711578765dc7821046ccdf746d66 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 21 Mar 2025 14:05:50 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E9=A3=9E=E8=A1=8C=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/log/enums/OperatorType.java | 7 +- .../controller/DeviceQrtzController.java | 115 ++++++++++++++ .../manage/mapper/IDeviceQrtzDateMapper.java | 17 +++ .../manage/mapper/IDeviceQrtzFileMapper.java | 12 ++ .../manage/mapper/IDeviceQrtzMapper.java | 39 +++++ .../manage/model/dto/DeviceQrtzDTO.java | 93 ++++++++++++ .../manage/model/dto/DeviceQrtzDateDTO.java | 76 ++++++++++ .../manage/model/dto/DeviceQrtzFileDTO.java | 84 ++++++++++ .../model/entity/DeviceQrtzDateEntity.java | 81 ++++++++++ .../manage/model/entity/DeviceQrtzEntity.java | 81 ++++++++++ .../model/entity/DeviceQrtzFileEntity.java | 86 +++++++++++ .../service/IDeviceQrtzDateService.java | 14 ++ .../service/IDeviceQrtzFileService.java | 8 + .../manage/service/IDeviceQrtzService.java | 48 ++++++ .../impl/DeviceQrtzDateServiceImpl.java | 24 +++ .../impl/DeviceQrtzFileServiceImpl.java | 13 ++ .../service/impl/DeviceQrtzServiceImpl.java | 143 ++++++++++++++++++ .../resources/mapper/DeviceQrtzDateMapper.xml | 22 +++ .../resources/mapper/DeviceQrtzFileMapper.xml | 9 ++ .../resources/mapper/DeviceQrtzMapper.xml | 55 +++++++ pom.xml | 2 +- 21 files changed, 1027 insertions(+), 2 deletions(-) create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzDateMapper.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzFileMapper.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzMapper.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDateDTO.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzFileDTO.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzDateEntity.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzEntity.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzFileEntity.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzDateService.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzFileService.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzDateServiceImpl.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzFileServiceImpl.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java create mode 100644 dk-modules/sample/src/main/resources/mapper/DeviceQrtzDateMapper.xml create mode 100644 dk-modules/sample/src/main/resources/mapper/DeviceQrtzFileMapper.xml create mode 100644 dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml diff --git a/dk-common/common-log/src/main/java/org/dromara/common/log/enums/OperatorType.java b/dk-common/common-log/src/main/java/org/dromara/common/log/enums/OperatorType.java index de9328b..747cf4c 100644 --- a/dk-common/common-log/src/main/java/org/dromara/common/log/enums/OperatorType.java +++ b/dk-common/common-log/src/main/java/org/dromara/common/log/enums/OperatorType.java @@ -19,5 +19,10 @@ public enum OperatorType { /** * 手机端用户 */ - MOBILE + MOBILE , + + /** + * 前台用户 + */ + CLIENTELE } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java new file mode 100644 index 0000000..ecb05d5 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java @@ -0,0 +1,115 @@ +package org.dromara.sample.manage.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.sample.manage.model.dto.DeviceQrtzDTO; +import org.dromara.sample.manage.model.entity.DeviceQrtzDateEntity; +import org.dromara.sample.manage.model.entity.DeviceQrtzEntity; +import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; +import org.dromara.sample.manage.service.IDeviceQrtzDateService; +import org.dromara.sample.manage.service.IDeviceQrtzService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @auther yq + * @data 2025/3/21 + */ + +@RestController +@RequestMapping("/devict/qrtz") +@Validated +@Tag(name = "自动飞行设备模块") +public class DeviceQrtzController extends BaseController { + + @Autowired + private IDeviceQrtzService deviceQrtzService; + + + /** + *自动飞行设备列表 + * */ + @SaCheckPermission("devict:qrtz:list") + @GetMapping(value = "/page") + public TableDataInfo queryPageDept(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, DeviceQrtzDTO deviceQrtzDTO) { + Page page = new Page(pageNo,pageSize); + return deviceQrtzService.listManageDeviceQrtz(page, deviceQrtzDTO); + } + /** + *自动飞行日历列表 + * + * */ + @SaCheckPermission("devict:qrtz:list") + @GetMapping(value = "/listFileExecDate") + public R>> listFileExecDate(String qrtzId) { + List waylineDeviceQrtzFiles = deviceQrtzService.manageDeviceQrtzFileByQrtzId(qrtzId); + Map> listMap = waylineDeviceQrtzFiles.stream().filter(f-> ObjectUtil.isNotEmpty(f.getExecDate())).collect(Collectors.groupingBy(DeviceQrtzFileEntity::getExecDate)); + return R.ok(listMap); + } + + /** + * 设备定时飞行详情 + * + * @param id 主键 + */ + @SaCheckPermission("devict:qrtz:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + DeviceQrtzEntity deviceQrtzEntity = deviceQrtzService.queryById(id); + return R.ok(deviceQrtzEntity); + } + + /** + * 自动飞行编辑 + */ + @SaCheckPermission("devict:qrtz:edit") + @Log(title = "自动飞行编辑", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody DeviceQrtzEntity entity) { + return toAjax(deviceQrtzService.updateByBo(entity)); + } + /** + * 自动飞行新增 + */ + @SaCheckPermission("devict:qrtz:add") + @Log(title = "自动飞行新增", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PutMapping() + public R add(@Validated(AddGroup.class) @RequestBody DeviceQrtzEntity entity) { + return toAjax(deviceQrtzService.updateByBo(entity)); + } + + /** + * 自动飞行删除 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:client:remove") + @Log(title = "自动飞行删除", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(deviceQrtzService.deleteIds(List.of(ids))); + } +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzDateMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzDateMapper.java new file mode 100644 index 0000000..775d212 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzDateMapper.java @@ -0,0 +1,17 @@ +package org.dromara.sample.manage.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.dromara.sample.manage.model.entity.DeviceQrtzDateEntity; + +import java.util.List; + +/** + * @auther yq + * @data 2025/3/20 + */ +public interface IDeviceQrtzDateMapper extends BaseMapper { + List listDeviceQrtzDateByQrtzIdAndDate(@Param("condition") DeviceQrtzDateEntity deviceQrtzDateEntity); + + List listDeviceQrtzDateByQrtzAndDate(@Param("qrtzId") Long qrtzId); +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzFileMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzFileMapper.java new file mode 100644 index 0000000..3b89f68 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzFileMapper.java @@ -0,0 +1,12 @@ +package org.dromara.sample.manage.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.sample.manage.model.entity.DevicePayloadEntity; +import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; + +/** + * @auther yq + * @data 2025/3/20 + */ +public interface IDeviceQrtzFileMapper extends BaseMapper { +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzMapper.java new file mode 100644 index 0000000..5a09fd7 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzMapper.java @@ -0,0 +1,39 @@ +package org.dromara.sample.manage.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; + +import org.dromara.sample.manage.model.dto.DeviceQrtzDTO; +import org.dromara.sample.manage.model.entity.DeviceQrtzEntity; +import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; + +import java.text.ParseException; +import java.util.List; +import java.util.Map; + +/** + * @auther yq + * @data 2025/3/20 + */ +public interface IDeviceQrtzMapper extends BaseMapper { + + + IPage listManageDeviceQrtz(Page page, @Param("condition") DeviceQrtzDTO deviceQrtzDTO); + + List listManageDeviceQrtz( @Param("condition") DeviceQrtzDTO deviceQrtzDTO); + List manageDeviceQrtzFileByQrtzId(@Param("qrtzId") String qrtzId); + + + + + + + + + + + + + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java new file mode 100644 index 0000000..ac17929 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java @@ -0,0 +1,93 @@ +package org.dromara.sample.manage.model.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.sample.manage.model.entity.DeviceQrtzDateEntity; +import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @auther yq + * @data 2025/3/20 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class DeviceQrtzDTO { + + /** + * id + */ + @NotNull(message = "id不能为空", groups = { EditGroup.class }) + @TableId(type = IdType.AUTO) + private Long id; + + /** + * sn + */ + private String deviceSn; + /** + * deviceId + */ + + private String deviceId; + /** + * 飞行计划名称 + */ + private String name; + + /** + 状态(1-使用,2-暂停,0-异常暂停) + */ + private Integer status; + + /** + 计划时间 + */ + private List deviceQrtzDates = new ArrayList<>(); + + /** + 计划航线 + */ + private List deviceQrtzFiles = new ArrayList<>(); + + + + /** + * 创建人 + */ + + private String createBy; + + /** + * 创建时间 + */ + + private Date createTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 删除 0 正常 1已删除 + */ + private Integer delFlag; +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDateDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDateDTO.java new file mode 100644 index 0000000..1d393c5 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDateDTO.java @@ -0,0 +1,76 @@ +package org.dromara.sample.manage.model.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @auther yq + * @data 2025/3/20 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class DeviceQrtzDateDTO { + /** + * ID + */ + @TableId(type = IdType.AUTO) + private String id; + + /**任务id*/ + private String qrtzId; + + /** + * 开始时间 + */ + private String startDate; + + /** + * 结束时间 + */ + private String endDate; + + + @TableField(exist = false) + private String currentDate; + + + /** + * 创建人 + */ + + + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + + private String updateBy; + + /** + * 更新时间 + */ + + private Date updateTime; + + /** + * 删除 0 正常 1已删除 + */ + + private Integer delFlag; + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzFileDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzFileDTO.java new file mode 100644 index 0000000..9709e34 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzFileDTO.java @@ -0,0 +1,84 @@ +package org.dromara.sample.manage.model.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @auther yq + * @data 2025/3/20 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class DeviceQrtzFileDTO { + /** + * ID + */ + @TableId(type = IdType.AUTO) + private String id; + private String qrtzId; + + + private String fileId; + + + private String waylineName; + + + private String sort; + + + private Integer status; + + @TableField(exist = false) + private Integer fileNumber; + + @TableField(exist = false) + private String fileStr; + + + + private Date flightDate; + + + private Date execDate; + + /** + * 创建人 + */ + + + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + + private String updateBy; + + /** + * 更新时间 + */ + + private Date updateTime; + + /** + * 删除 0 正常 1已删除 + */ + + private Integer delFlag; + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzDateEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzDateEntity.java new file mode 100644 index 0000000..03c677c --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzDateEntity.java @@ -0,0 +1,81 @@ +package org.dromara.sample.manage.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @auther yq + * @data 2025/3/20 + */ +@TableName("manage_device_qrtz_date") +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DeviceQrtzDateEntity implements Serializable { + + /** + * ID + */ + @TableId(type = IdType.AUTO) + private Long id; + + /**任务id*/ + private String qrtzId; + + /** + * 开始时间 + */ + private String startDate; + + /** + * 结束时间 + */ + private String endDate; + + + + + /** + * 创建人 + */ + + + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + + private String updateBy; + + /** + * 更新时间 + */ + + private Date updateTime; + + /** + * 删除 0 正常 1已删除 + */ + + private Integer delFlag; + + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzEntity.java new file mode 100644 index 0000000..dc2e6c4 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzEntity.java @@ -0,0 +1,81 @@ +package org.dromara.sample.manage.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +/** + * @Description: + * @Author: wy + * @Date: 2023-03-07 + * @Version: V1.0 + */ + +@TableName("manage_device_qrtz") +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DeviceQrtzEntity implements Serializable { + + @TableId(type = IdType.AUTO) + private String id; + + private String deviceId; + + private String name; + + private Integer status; + + private String deviceSn; + /** + 计划时间 + */ + @TableField(exist = false) + private List deviceQrtzDates = new ArrayList<>(); + + /** + 计划航线 + */ + @TableField(exist = false) + private List deviceQrtzFiles = new ArrayList<>(); + + + /** + * 创建人 + */ + + private String createBy; + + /** + * 创建时间 + */ + + private Date createTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 删除 0 正常 1已删除 + */ + private Integer delFlag; + +} + diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzFileEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzFileEntity.java new file mode 100644 index 0000000..8b57218 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzFileEntity.java @@ -0,0 +1,86 @@ +package org.dromara.sample.manage.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @auther yq + * @data 2025/3/20 + */ +@TableName("manage_device_qrtz_file") +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DeviceQrtzFileEntity implements Serializable { + + /** + * ID + */ + @TableId(type = IdType.AUTO) + private String id; + private String qrtzId; + + + private String fileId; + + + private String waylineName; + + + private String sort; + + + private Integer status; + + + + + + private Date flightDate; + + + private Date execDate; + + /** + * 创建人 + */ + + + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + + private String updateBy; + + /** + * 更新时间 + */ + + private Date updateTime; + + /** + * 删除 0 正常 1已删除 + */ + + private Integer delFlag; + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzDateService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzDateService.java new file mode 100644 index 0000000..602a9ec --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzDateService.java @@ -0,0 +1,14 @@ +package org.dromara.sample.manage.service; + +import org.dromara.sample.manage.model.entity.DeviceQrtzDateEntity; + +import java.util.List; + +/** + * @auther yq + * @data 2025/3/20 + */ +public interface IDeviceQrtzDateService { + + List listManageDeviceQrtzDate(Long qrtzId); +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzFileService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzFileService.java new file mode 100644 index 0000000..fa2c113 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzFileService.java @@ -0,0 +1,8 @@ +package org.dromara.sample.manage.service; + +/** + * @auther yq + * @data 2025/3/20 + */ +public interface IDeviceQrtzFileService { +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java new file mode 100644 index 0000000..87a5108 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java @@ -0,0 +1,48 @@ +package org.dromara.sample.manage.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sample.manage.model.dto.DeviceDTO; +import org.dromara.sample.manage.model.dto.DeviceQrtzDTO; +import org.dromara.sample.manage.model.dto.DeviceQrtzFileDTO; +import org.dromara.sample.manage.model.entity.DeviceQrtzEntity; +import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; + +import java.text.ParseException; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * @auther yq + * @data 2025/3/20 + */ +public interface IDeviceQrtzService { + + TableDataInfo listManageDeviceQrtz(Page page, DeviceQrtzDTO deviceQrtzDTO); + + + DeviceQrtzEntity queryById(Long id); + + List listManageDeviceQrtz(DeviceQrtzDTO deviceQrtzDTO); + Map calendarList(String time) throws ParseException; + + boolean addAndUpdateManageDeviceQrtz(DeviceQrtzDTO deviceQrtzDTO); + + boolean addManageDeviceQrtzFile(DeviceQrtzFileDTO deviceQrtzFileDTO); + + boolean updateManageDeviceQrtzFile(DeviceQrtzFileDTO deviceQrtzFileDTO); + + boolean deleteManageDeviceQrtz(DeviceQrtzDTO deviceQrtzDTO); + + List manageDeviceQrtzFileByQrtzId(String qrtzId); + boolean copy(String deviceSn,String starDate,String endDate); + boolean deleteManageDeviceQrtzFile(String id); + + void jobWayline(DeviceDTO deviceDTO); + + Boolean updateByBo(DeviceQrtzEntity entity); + Boolean add(DeviceQrtzEntity entity); + Boolean deleteIds(Collection ids); +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzDateServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzDateServiceImpl.java new file mode 100644 index 0000000..600bc66 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzDateServiceImpl.java @@ -0,0 +1,24 @@ +package org.dromara.sample.manage.service.impl; + +import org.dromara.sample.manage.mapper.IDeviceQrtzDateMapper; +import org.dromara.sample.manage.mapper.IDeviceQrtzMapper; +import org.dromara.sample.manage.model.entity.DeviceQrtzDateEntity; +import org.dromara.sample.manage.service.IDeviceQrtzDateService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @auther yq + * @data 2025/3/20 + */ +@Service +public class DeviceQrtzDateServiceImpl implements IDeviceQrtzDateService { + @Autowired + private IDeviceQrtzDateMapper deviceQrtzDateMapper; + @Override + public List listManageDeviceQrtzDate(Long qrtzId) { + return deviceQrtzDateMapper.listDeviceQrtzDateByQrtzAndDate(qrtzId); + } +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzFileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzFileServiceImpl.java new file mode 100644 index 0000000..e0c9b70 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzFileServiceImpl.java @@ -0,0 +1,13 @@ +package org.dromara.sample.manage.service.impl; + +import org.dromara.sample.manage.service.IDeviceQrtzFileService; +import org.springframework.stereotype.Service; + +/** + * @auther yq + * @data 2025/3/20 + */ +@Service +public class DeviceQrtzFileServiceImpl implements IDeviceQrtzFileService { + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java new file mode 100644 index 0000000..50f0d3d --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java @@ -0,0 +1,143 @@ +package org.dromara.sample.manage.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.sample.manage.mapper.IDeviceMapper; +import org.dromara.sample.manage.mapper.IDeviceQrtzDateMapper; +import org.dromara.sample.manage.mapper.IDeviceQrtzMapper; +import org.dromara.sample.manage.model.dto.DeviceDTO; +import org.dromara.sample.manage.model.dto.DeviceQrtzDTO; +import org.dromara.sample.manage.model.dto.DeviceQrtzFileDTO; +import org.dromara.sample.manage.model.entity.DeviceQrtzDateEntity; +import org.dromara.sample.manage.model.entity.DeviceQrtzEntity; +import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; +import org.dromara.sample.manage.service.IDeviceQrtzDateService; +import org.dromara.sample.manage.service.IDeviceQrtzFileService; +import org.dromara.sample.manage.service.IDeviceQrtzService; +import org.dromara.sample.manage.service.IDeviceService; +import org.dromara.system.api.model.LoginUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.text.ParseException; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * @auther yq + * @data 2025/3/20 + */ +@Service +public class DeviceQrtzServiceImpl implements IDeviceQrtzService { + @Autowired + private IDeviceQrtzMapper deviceQrtzMapper; + @Autowired + private IDeviceQrtzDateMapper deviceQrtzDateMapper; + @Autowired + private IDeviceService deviceService; + @Autowired + private IDeviceQrtzDateService deviceQrtzDateService; + + @Override + public TableDataInfo listManageDeviceQrtz(Page page, DeviceQrtzDTO deviceQrtzDTO) { + return TableDataInfo.build(deviceQrtzMapper.listManageDeviceQrtz(page, deviceQrtzDTO)); + } + + @Override + public DeviceQrtzEntity queryById(Long id) { + DeviceQrtzEntity deviceQrtzEntity = deviceQrtzMapper.selectById(id); + List qrtzDateEntityList = deviceQrtzDateService.listManageDeviceQrtzDate(id); + deviceQrtzEntity.setDeviceQrtzDates(qrtzDateEntityList); + return deviceQrtzEntity; + } + + @Override + public List listManageDeviceQrtz(DeviceQrtzDTO deviceQrtzDTO) { + return deviceQrtzMapper.listManageDeviceQrtz(deviceQrtzDTO); + } + + @Override + public Map calendarList(String time) throws ParseException { + LoginUser loginUser = LoginHelper.getLoginUser(); + + return Map.of(); + } + + @Override + public boolean addAndUpdateManageDeviceQrtz(DeviceQrtzDTO deviceQrtzDTO) { + return false; + } + + @Override + public boolean addManageDeviceQrtzFile(DeviceQrtzFileDTO deviceQrtzFileDTO) { + return false; + } + + @Override + public boolean updateManageDeviceQrtzFile(DeviceQrtzFileDTO deviceQrtzFileDTO) { + return false; + } + + @Override + public boolean deleteManageDeviceQrtz(DeviceQrtzDTO deviceQrtzDTO) { + return false; + } + + @Override + public List manageDeviceQrtzFileByQrtzId(String qrtzId) { + return deviceQrtzMapper.manageDeviceQrtzFileByQrtzId(qrtzId); + } + + @Override + public boolean copy(String deviceSn, String starDate, String endDate) { + return false; + } + + @Override + public boolean deleteManageDeviceQrtzFile(String id) { + return false; + } + + @Override + public void jobWayline(DeviceDTO deviceDTO) { + + } + + @Override + public Boolean updateByBo(DeviceQrtzEntity entity) { + deviceQrtzDateMapper.delete(new QueryWrapper().eq("qrtz_id", entity.getId())); + if(!CollectionUtils.isEmpty(entity.getDeviceQrtzDates())){ + entity.getDeviceQrtzDates().forEach(e->{ + e.setQrtzId(entity.getId()); + deviceQrtzDateMapper.insert(e); + }); + } + return deviceQrtzMapper.updateById(entity)>0; + } + + @Override + public Boolean add(DeviceQrtzEntity entity) { + int insert = deviceQrtzMapper.insert(entity); + if(!CollectionUtils.isEmpty(entity.getDeviceQrtzDates())){ + entity.getDeviceQrtzDates().forEach(e->{ + e.setQrtzId(entity.getId()); + deviceQrtzDateMapper.insert(e); + }); + } + return insert>0; + } + + @Override + public Boolean deleteIds(Collection ids) { + for (Long qrtzId : ids) { + deviceQrtzDateMapper.delete(new QueryWrapper().eq("qrtz_id",qrtzId)); + } + return deviceQrtzMapper.deleteBatchIds(ids)>0; + } +} diff --git a/dk-modules/sample/src/main/resources/mapper/DeviceQrtzDateMapper.xml b/dk-modules/sample/src/main/resources/mapper/DeviceQrtzDateMapper.xml new file mode 100644 index 0000000..998991a --- /dev/null +++ b/dk-modules/sample/src/main/resources/mapper/DeviceQrtzDateMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/dk-modules/sample/src/main/resources/mapper/DeviceQrtzFileMapper.xml b/dk-modules/sample/src/main/resources/mapper/DeviceQrtzFileMapper.xml new file mode 100644 index 0000000..28dfcdf --- /dev/null +++ b/dk-modules/sample/src/main/resources/mapper/DeviceQrtzFileMapper.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml b/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml new file mode 100644 index 0000000..7b61437 --- /dev/null +++ b/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index 2577794..63a9d40 100644 --- a/pom.xml +++ b/pom.xml @@ -82,7 +82,7 @@ - wuyuan + dev dev From ec109ef91221104d4a1a7b05a328bda9154d9a65 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 21 Mar 2025 14:43:07 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E9=A2=84?= =?UTF-8?q?=E7=BA=A6=E5=B7=A5=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/business/domain/BusinessTask.java | 9 +++------ .../dromara/business/domain/bo/BusinessOperationBo.java | 2 +- .../org/dromara/business/domain/bo/BusinessTaskBo.java | 4 +++- .../org/dromara/business/domain/vo/BusinessTaskVo.java | 2 +- .../sample/manage/controller/DeviceQrtzController.java | 2 +- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessTask.java b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessTask.java index b95ad04..4e7bfcd 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessTask.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessTask.java @@ -1,9 +1,6 @@ package org.dromara.business.domain; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; import org.dromara.common.mybatis.core.domain.BaseEntity; @@ -27,7 +24,7 @@ public class BusinessTask extends BaseEntity { /** * id */ - @TableId(value = "id") + @TableId(value = "id", type = IdType.AUTO) private Long id; @TableField(fill = FieldFill.INSERT) @@ -65,7 +62,7 @@ public class BusinessTask extends BaseEntity { private String nickName; private String deptName; - private String fileId; + private Integer fileId; private String fileName; private String jobName; private String jobId; diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java index 3aef0d0..8d63409 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java @@ -82,7 +82,7 @@ public class BusinessOperationBo { * 航线id * */ @NotBlank(message = "航线id不能为空", groups = { AddGroup.class, EditGroup.class }) - private String fileId; + private Integer fileId; /** * 航线名称 * */ diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessTaskBo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessTaskBo.java index 88f6894..6a2fc34 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessTaskBo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessTaskBo.java @@ -2,6 +2,8 @@ package org.dromara.business.domain.bo; import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import org.dromara.business.domain.BusinessTask; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -73,7 +75,7 @@ public class BusinessTaskBo extends BaseEntity { private String nickName; private String deptName; - private String fileId; + private Integer fileId; private String fileName; private String jobName; private String jobId; diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java index 78f415d..8090eae 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java @@ -79,7 +79,7 @@ public class BusinessTaskVo implements Serializable { private String nickName; private Long createDept; private String deptName; - private String fileId; + private Integer fileId; private String fileName; private String jobName; private String jobId; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java index ecb05d5..f9971f0 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java @@ -95,7 +95,7 @@ public class DeviceQrtzController extends BaseController { @SaCheckPermission("devict:qrtz:add") @Log(title = "自动飞行新增", businessType = BusinessType.INSERT) @RepeatSubmit() - @PutMapping() + @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody DeviceQrtzEntity entity) { return toAjax(deviceQrtzService.updateByBo(entity)); } From 62dab1c420d8f20ee38cc85b9feb0fa16d7ab8c2 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 21 Mar 2025 15:26:09 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E8=BF=90?= =?UTF-8?q?=E8=90=A5=E4=B8=AD=E5=BF=83=E4=BF=AE=E6=94=B9=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=20fileId=20=E2=86=92=20waylineId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/dromara/business/domain/BusinessTask.java | 2 +- .../org/dromara/business/domain/bo/BusinessOperationBo.java | 2 +- .../java/org/dromara/business/domain/bo/BusinessTaskBo.java | 2 +- .../java/org/dromara/business/domain/vo/BusinessTaskVo.java | 2 +- .../business/service/impl/BusinessOperationServiceImpl.java | 2 +- .../dromara/sample/manage/controller/DeviceQrtzController.java | 2 -- 6 files changed, 5 insertions(+), 7 deletions(-) diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessTask.java b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessTask.java index 4e7bfcd..01bbece 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessTask.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessTask.java @@ -62,7 +62,7 @@ public class BusinessTask extends BaseEntity { private String nickName; private String deptName; - private Integer fileId; + private String waylineId; private String fileName; private String jobName; private String jobId; diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java index 8d63409..b32d452 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessOperationBo.java @@ -82,7 +82,7 @@ public class BusinessOperationBo { * 航线id * */ @NotBlank(message = "航线id不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer fileId; + private String waylineId; /** * 航线名称 * */ diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessTaskBo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessTaskBo.java index 6a2fc34..d0d8695 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessTaskBo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessTaskBo.java @@ -75,7 +75,7 @@ public class BusinessTaskBo extends BaseEntity { private String nickName; private String deptName; - private Integer fileId; + private String waylineId; private String fileName; private String jobName; private String jobId; diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java index 8090eae..f8f2965 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessTaskVo.java @@ -79,7 +79,7 @@ public class BusinessTaskVo implements Serializable { private String nickName; private Long createDept; private String deptName; - private Integer fileId; + private String waylineId; private String fileName; private String jobName; private String jobId; diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessOperationServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessOperationServiceImpl.java index 93783ce..133ddfc 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessOperationServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessOperationServiceImpl.java @@ -108,7 +108,7 @@ public class BusinessOperationServiceImpl implements IBusinessOperationService { public Boolean insertByBo(BusinessOperationBo bo) { //根据工单绘制上传航线,绑定航线,填报信息 BusinessTaskVo businessTaskVo = businessTaskService.queryById(bo.getTaskId()); - businessTaskVo.setFileId(bo.getFileId()); + businessTaskVo.setWaylineId(bo.getWaylineId()); businessTaskVo.setFileName(bo.getFileName()); businessTaskVo.setStatus(BusinessConstants.TASK_STATUS_1); BusinessTask businessTask = MapstructUtils.convert(businessTaskVo, BusinessTask.class); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java index f9971f0..5f7bf36 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java @@ -15,10 +15,8 @@ import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; import org.dromara.sample.manage.model.dto.DeviceQrtzDTO; -import org.dromara.sample.manage.model.entity.DeviceQrtzDateEntity; import org.dromara.sample.manage.model.entity.DeviceQrtzEntity; import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; -import org.dromara.sample.manage.service.IDeviceQrtzDateService; import org.dromara.sample.manage.service.IDeviceQrtzService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; From f6d388271f2b235d17c8456874549bc4420ae3dc Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 21 Mar 2025 18:40:01 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E6=AF=94?= =?UTF-8?q?=E5=AF=B9=E3=80=81=E8=87=AA=E5=8A=A8=E9=A3=9E=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeviceQrtzController.java | 6 +- .../manage/mapper/IDeviceQrtzMapper.java | 2 +- .../manage/model/dto/DeviceQrtzDTO.java | 18 ++-- .../manage/model/dto/DeviceQrtzDateDTO.java | 2 +- .../manage/model/dto/DeviceQrtzFileDTO.java | 8 +- .../model/entity/DeviceQrtzDateEntity.java | 7 +- .../manage/model/entity/DeviceQrtzEntity.java | 27 ++---- .../model/entity/DeviceQrtzFileEntity.java | 10 ++- .../manage/service/IDeviceQrtzService.java | 6 +- .../service/impl/DeviceQrtzServiceImpl.java | 34 +++++--- .../controller/AiCompareController.java | 20 +++++ .../wayline/mapper/IAiCompareMapper.java | 10 +++ .../wayline/mapper/IAiCompareQueueMapper.java | 10 +++ .../wayline/mapper/IWaylineFileMapper.java | 1 - .../wayline/model/dto/AiCompareDTO.java | 83 +++++++++++++++++++ .../wayline/model/dto/AiCompareQueueDTO.java | 60 ++++++++++++++ .../wayline/model/entity/AiCompareEntity.java | 64 ++++++++++++++ .../model/entity/AiCompareQueueEntity.java | 64 ++++++++++++++ .../service/IAiCompareQueueService.java | 8 ++ .../wayline/service/IAiCompareService.java | 8 ++ .../impl/AiCompareQueueServiceImpl.java | 14 ++++ .../service/impl/AiCompareServiceImpl.java | 15 ++++ .../resources/mapper/DeviceQrtzMapper.xml | 8 +- 23 files changed, 432 insertions(+), 53 deletions(-) create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareQueueMapper.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareQueueDTO.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareQueueEntity.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java index 5f7bf36..63ea876 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java @@ -58,7 +58,7 @@ public class DeviceQrtzController extends BaseController { * */ @SaCheckPermission("devict:qrtz:list") @GetMapping(value = "/listFileExecDate") - public R>> listFileExecDate(String qrtzId) { + public R>> listFileExecDate(Long qrtzId) { List waylineDeviceQrtzFiles = deviceQrtzService.manageDeviceQrtzFileByQrtzId(qrtzId); Map> listMap = waylineDeviceQrtzFiles.stream().filter(f-> ObjectUtil.isNotEmpty(f.getExecDate())).collect(Collectors.groupingBy(DeviceQrtzFileEntity::getExecDate)); return R.ok(listMap); @@ -94,8 +94,8 @@ public class DeviceQrtzController extends BaseController { @Log(title = "自动飞行新增", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody DeviceQrtzEntity entity) { - return toAjax(deviceQrtzService.updateByBo(entity)); + public R add(@Validated(AddGroup.class) @RequestBody DeviceQrtzDTO deviceQrtzDTO) { + return toAjax(deviceQrtzService.add(deviceQrtzDTO)); } /** diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzMapper.java index 5a09fd7..de7b211 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzMapper.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceQrtzMapper.java @@ -22,7 +22,7 @@ public interface IDeviceQrtzMapper extends BaseMapper { IPage listManageDeviceQrtz(Page page, @Param("condition") DeviceQrtzDTO deviceQrtzDTO); List listManageDeviceQrtz( @Param("condition") DeviceQrtzDTO deviceQrtzDTO); - List manageDeviceQrtzFileByQrtzId(@Param("qrtzId") String qrtzId); + List manageDeviceQrtzFileByQrtzId(@Param("qrtzId") Long qrtzId); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java index ac17929..8b7f833 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java @@ -8,6 +8,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.sample.manage.model.entity.DeviceQrtzDateEntity; import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; @@ -29,22 +30,19 @@ public class DeviceQrtzDTO { /** * id */ - @NotNull(message = "id不能为空", groups = { EditGroup.class }) - @TableId(type = IdType.AUTO) + private Long id; /** * sn */ + private String deviceSn; - /** - * deviceId - */ - private String deviceId; /** * 飞行计划名称 */ + private String name; /** @@ -90,4 +88,12 @@ public class DeviceQrtzDTO { * 删除 0 正常 1已删除 */ private Integer delFlag; + + private String startDate; + + private String endDate; + + private String deptName; + + private ListdeptIds; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDateDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDateDTO.java index 1d393c5..48681f2 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDateDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDateDTO.java @@ -22,7 +22,7 @@ public class DeviceQrtzDateDTO { /** * ID */ - @TableId(type = IdType.AUTO) + private String id; /**任务id*/ diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzFileDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzFileDTO.java index 9709e34..0033b2c 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzFileDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzFileDTO.java @@ -22,7 +22,7 @@ public class DeviceQrtzFileDTO { /** * ID */ - @TableId(type = IdType.AUTO) + private String id; private String qrtzId; @@ -45,9 +45,15 @@ public class DeviceQrtzFileDTO { private String fileStr; + /** + * 飞行时间 + */ private Date flightDate; + /** + * 执行时间 + */ private Date execDate; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzDateEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzDateEntity.java index 03c677c..fc6dbe1 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzDateEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzDateEntity.java @@ -5,10 +5,13 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; @@ -32,16 +35,18 @@ public class DeviceQrtzDateEntity implements Serializable { private Long id; /**任务id*/ - private String qrtzId; + private Long qrtzId; /** * 开始时间 */ + @NotNull(message = "开始时间", groups = { AddGroup.class, EditGroup.class }) private String startDate; /** * 结束时间 */ + @NotNull(message = "结束时间", groups = { AddGroup.class, EditGroup.class }) private String endDate; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzEntity.java index dc2e6c4..18fe58a 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzEntity.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.io.Serializable; @@ -25,12 +26,12 @@ import java.util.List; @Builder @NoArgsConstructor @AllArgsConstructor -public class DeviceQrtzEntity implements Serializable { +public class DeviceQrtzEntity extends BaseEntity { @TableId(type = IdType.AUTO) - private String id; + private Long id; + - private String deviceId; private String name; @@ -51,27 +52,15 @@ public class DeviceQrtzEntity implements Serializable { /** - * 创建人 - */ - - private String createBy; + * 部门名称 */ - /** - * 创建时间 - */ + private String deptName; - private Date createTime; /** - * 更新人 - */ - private String updateBy; - - /** - * 更新时间 - */ - private Date updateTime; + * 用户名称 */ + private String nickName; /** * 删除 0 正常 1已删除 */ diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzFileEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzFileEntity.java index 8b57218..0badac3 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzFileEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceQrtzFileEntity.java @@ -29,8 +29,8 @@ public class DeviceQrtzFileEntity implements Serializable { * ID */ @TableId(type = IdType.AUTO) - private String id; - private String qrtzId; + private Long id; + private Long qrtzId; private String fileId; @@ -47,9 +47,15 @@ public class DeviceQrtzFileEntity implements Serializable { + /** + * 飞行时间 + */ private Date flightDate; + /** + * 执行时间 + */ private Date execDate; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java index 87a5108..2631adb 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java @@ -36,13 +36,13 @@ public interface IDeviceQrtzService { boolean deleteManageDeviceQrtz(DeviceQrtzDTO deviceQrtzDTO); - List manageDeviceQrtzFileByQrtzId(String qrtzId); + List manageDeviceQrtzFileByQrtzId(Long qrtzId); boolean copy(String deviceSn,String starDate,String endDate); - boolean deleteManageDeviceQrtzFile(String id); + boolean deleteManageDeviceQrtzFile(Long id); void jobWayline(DeviceDTO deviceDTO); Boolean updateByBo(DeviceQrtzEntity entity); - Boolean add(DeviceQrtzEntity entity); + Boolean add( DeviceQrtzDTO deviceQrtzDTO); Boolean deleteIds(Collection ids); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java index 50f0d3d..a62fa5f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java @@ -4,10 +4,12 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.sample.manage.mapper.IDeviceMapper; import org.dromara.sample.manage.mapper.IDeviceQrtzDateMapper; +import org.dromara.sample.manage.mapper.IDeviceQrtzFileMapper; import org.dromara.sample.manage.mapper.IDeviceQrtzMapper; import org.dromara.sample.manage.model.dto.DeviceDTO; import org.dromara.sample.manage.model.dto.DeviceQrtzDTO; @@ -26,6 +28,7 @@ import org.springframework.util.CollectionUtils; import java.text.ParseException; import java.util.Collection; +import java.util.Date; import java.util.List; import java.util.Map; @@ -40,7 +43,7 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { @Autowired private IDeviceQrtzDateMapper deviceQrtzDateMapper; @Autowired - private IDeviceService deviceService; + private IDeviceQrtzFileMapper deviceQrtzFileMapper; @Autowired private IDeviceQrtzDateService deviceQrtzDateService; @@ -90,8 +93,8 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { } @Override - public List manageDeviceQrtzFileByQrtzId(String qrtzId) { - return deviceQrtzMapper.manageDeviceQrtzFileByQrtzId(qrtzId); + public List manageDeviceQrtzFileByQrtzId(Long qrtzId) { + return deviceQrtzFileMapper.selectList(new QueryWrapper().eq("qrtz_id", qrtzId)); } @Override @@ -100,8 +103,8 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { } @Override - public boolean deleteManageDeviceQrtzFile(String id) { - return false; + public boolean deleteManageDeviceQrtzFile(Long id) { + return deviceQrtzMapper.deleteById(id)>0; } @Override @@ -122,15 +125,24 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { } @Override - public Boolean add(DeviceQrtzEntity entity) { - int insert = deviceQrtzMapper.insert(entity); - if(!CollectionUtils.isEmpty(entity.getDeviceQrtzDates())){ - entity.getDeviceQrtzDates().forEach(e->{ - e.setQrtzId(entity.getId()); + public Boolean add( DeviceQrtzDTO deviceQrtzDTO) { + + if(!CollectionUtils.isEmpty(deviceQrtzDTO.getDeviceQrtzDates())){ + deviceQrtzDTO.getDeviceQrtzDates().forEach(e->{ + e.setQrtzId(deviceQrtzDTO.getId()); deviceQrtzDateMapper.insert(e); }); } - return insert>0; + DeviceQrtzEntity entity = new DeviceQrtzEntity(); + entity.setDeviceSn(deviceQrtzDTO.getDeviceSn()); + entity.setName(deviceQrtzDTO.getName()); + LoginUser loginUser = LoginHelper.getLoginUser(); + entity.setCreateBy(loginUser.getUserId()); + entity.setCreateTime(new Date()); + entity.setNickName(loginUser.getNickname()); + entity.setCreateDept(loginUser.getDeptId()); + entity.setDeptName(loginUser.getDeptName()); + return deviceQrtzMapper.insert(entity)>0; } @Override diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java new file mode 100644 index 0000000..ccc9667 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java @@ -0,0 +1,20 @@ +package org.dromara.sample.wayline.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import org.dromara.common.web.core.BaseController; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @auther yq + * @data 2025/3/21 + */ +@RestController +@RequestMapping("/ai/compare") +@Validated +@Tag(name="算法比对模块") +public class AiCompareController extends BaseController { + + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java new file mode 100644 index 0000000..2f48e28 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java @@ -0,0 +1,10 @@ +package org.dromara.sample.wayline.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.sample.wayline.model.entity.AiCompareEntity; + +/** + * @auther yq + * @data 2025/3/21 + */ +public interface IAiCompareMapper extends BaseMapper { +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareQueueMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareQueueMapper.java new file mode 100644 index 0000000..0febb94 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareQueueMapper.java @@ -0,0 +1,10 @@ +package org.dromara.sample.wayline.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; + +/** + * @auther yq + * @data 2025/3/21 + */ +public interface IAiCompareQueueMapper extends BaseMapper { +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineFileMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineFileMapper.java index d8300ae..9562c24 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineFileMapper.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineFileMapper.java @@ -1,7 +1,6 @@ package org.dromara.sample.wayline.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.sample.wayline.model.entity.WaylineFileEntity; /** diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java new file mode 100644 index 0000000..b3a72be --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java @@ -0,0 +1,83 @@ +package org.dromara.sample.wayline.model.dto; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; + +import java.util.HashMap; +import java.util.Map; + +/** + * @auther yq + * @data 2025/3/21 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class AiCompareDTO { + + + private Long id; + + /** + * 0:是否比对 1:算法比对中 2:人工查看 3:可提交预警 4:完成对比 + * */ + private String status; + + /** + * 模板id + * */ + @NotNull(message = "开始时间", groups = { AddGroup.class, EditGroup.class }) + private Long templateId; + + /** + * 算法数量 + * */ + + private Integer illegalNum; + + + /** + * 总数量 + * */ + private Integer totalNum; + + /** + *部门名称 + * */ + private String deptName; + /** + * 任务名称 + * */ + @NotNull(message = "任务名称", groups = { AddGroup.class, EditGroup.class }) + private String jobName; + + /** + * 任务id + * */ + @NotNull(message = "任务id", groups = { AddGroup.class, EditGroup.class }) + private String jobId; + /** + * 搜索值 + */ + @JsonIgnore + @TableField(exist = false) + private String searchValue; + + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map params = new HashMap<>(); + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareQueueDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareQueueDTO.java new file mode 100644 index 0000000..21d2e38 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareQueueDTO.java @@ -0,0 +1,60 @@ +package org.dromara.sample.wayline.model.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @auther yq + * @data 2025/3/21 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class AiCompareQueueDTO { + + + + private Long id; + + /** + * 航线id 对应wayline_id 字段 + * */ + private String fileId; + + /** + * 航线名称 + * */ + private String fileName; + + /** + * 任务id + * */ + private Integer jobId; + + /** + *任务名称 + * */ + private String jobName; + + /** + *图片数量 + * */ + private Integer pictureNumber; + + /** + *创建时间 + * */ + private Date createTime; + + /** + *队列类型 0:未比对 1:比对 + * */ + private Byte queueType; +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java new file mode 100644 index 0000000..e4e235c --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java @@ -0,0 +1,64 @@ +package org.dromara.sample.wayline.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.dromara.common.mybatis.core.domain.BaseEntity; + + + +/** + * @auther yq + * @data 2025/3/21 + */ +@Data +@TableName("ai_compare") +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class AiCompareEntity extends BaseEntity { + + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 0:是否比对 1:算法比对中 2:人工查看 3:可提交预警 4:完成对比 + * */ + private String status; + + /** + * 模板id + * */ + private Long templateId; + + /** + * 算法数量 + * */ + private Integer illegalNum; + + + /** + * 总数量 + * */ + private Integer totalNum; + + /** + *部门名称 + * */ + private String deptName; + /** + * 任务名称 + * */ + private String jobName; + + /** + * 任务id + * */ + private String jobId; + + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareQueueEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareQueueEntity.java new file mode 100644 index 0000000..f154460 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareQueueEntity.java @@ -0,0 +1,64 @@ +package org.dromara.sample.wayline.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Builder; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; + +/** + * @auther yq + * @data 2025/3/21 + */ +@Data +@TableName("ai_compare_queue") +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class AiCompareQueueEntity implements Serializable { + + + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 航线id 对应wayline_id 字段 + * */ + private String fileId; + + /** + * 航线名称 + * */ + private String fileName; + + /** + * 任务id + * */ + private Integer jobId; + + /** + *任务名称 + * */ + private String jobName; + + /** + *图片数量 + * */ + private Integer pictureNumber; + + /** + *创建时间 + * */ + private Date createTime; + + /** + *队列类型 0:未比对 1:比对 + * */ + private Byte queueType; + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java new file mode 100644 index 0000000..d9c4152 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java @@ -0,0 +1,8 @@ +package org.dromara.sample.wayline.service; + +/** + * @auther yq + * @data 2025/3/21 + */ +public interface IAiCompareQueueService { +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java new file mode 100644 index 0000000..2dd2a5c --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java @@ -0,0 +1,8 @@ +package org.dromara.sample.wayline.service; + +/** + * @auther yq + * @data 2025/3/21 + */ +public interface IAiCompareService { +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java new file mode 100644 index 0000000..030c1eb --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java @@ -0,0 +1,14 @@ +package org.dromara.sample.wayline.service.impl; + +import lombok.extern.slf4j.Slf4j; +import org.dromara.sample.wayline.service.IAiCompareQueueService; +import org.springframework.stereotype.Service; + +/** + * @auther yq + * @data 2025/3/21 + */ +@Service +@Slf4j +public class AiCompareQueueServiceImpl implements IAiCompareQueueService { +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java new file mode 100644 index 0000000..03451ea --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -0,0 +1,15 @@ +package org.dromara.sample.wayline.service.impl; + +import lombok.extern.slf4j.Slf4j; +import org.dromara.sample.wayline.service.IAiCompareService; +import org.springframework.stereotype.Service; + +/** + * @auther yq + * @data 2025/3/21 + */ +@Service +@Slf4j +public class AiCompareServiceImpl implements IAiCompareService { + +} diff --git a/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml b/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml index 7b61437..84d33a5 100644 --- a/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml +++ b/dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml @@ -17,8 +17,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" From dc098ce37a20b97790a426ede9554b77f0e02efe Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Tue, 25 Mar 2025 08:49:13 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=AF=94=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/AiCompareStatusConstants.java | 36 +++++ .../controller/DeviceQrtzController.java | 4 +- .../controller/AiCompareController.java | 107 ++++++++++++++- .../wayline/mapper/IAiCompareMapper.java | 5 + .../wayline/mapper/IAiCompareQueueMapper.java | 9 ++ .../wayline/model/dto/AiCompareDTO.java | 67 +++++++--- .../model/dto/AiCompareMediaFileDTO.java | 75 +++++++++++ .../wayline/model/dto/AiCompareQueueDTO.java | 29 +++- .../wayline/model/entity/AiCompareEntity.java | 18 +-- .../model/entity/AiCompareQueueEntity.java | 8 +- .../service/IAiCompareQueueService.java | 13 ++ .../wayline/service/IAiCompareService.java | 18 +++ .../impl/AiCompareQueueServiceImpl.java | 70 ++++++++++ .../service/impl/AiCompareServiceImpl.java | 125 ++++++++++++++++++ .../main/resources/mapper/AiCompareMapper.xml | 24 ++++ .../resources/mapper/AiCompareQueueMapper.xml | 21 +++ 16 files changed, 592 insertions(+), 37 deletions(-) create mode 100644 dk-common/common-core/src/main/java/org/dromara/common/core/constant/AiCompareStatusConstants.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java create mode 100644 dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml create mode 100644 dk-modules/sample/src/main/resources/mapper/AiCompareQueueMapper.xml diff --git a/dk-common/common-core/src/main/java/org/dromara/common/core/constant/AiCompareStatusConstants.java b/dk-common/common-core/src/main/java/org/dromara/common/core/constant/AiCompareStatusConstants.java new file mode 100644 index 0000000..20fd053 --- /dev/null +++ b/dk-common/common-core/src/main/java/org/dromara/common/core/constant/AiCompareStatusConstants.java @@ -0,0 +1,36 @@ +package org.dromara.common.core.constant; + +/** + * @auther yq + * @data 2025/3/22 + */ +public interface AiCompareStatusConstants { + /** + * "是否比对" + * */ + String COMPARE_STATUS_0="0"; + + /** + * "算法比对中" + * */ + String COMPARE_STATUS_1="1"; + /** + * "人工查看" + * */ + String COMPARE_STATUS_2="2"; + /** + * "可提交预警" + * */ + String COMPARE_STATUS_3="3"; + /** + * "完成对比" + * */ + String COMPARE_STATUS_4="4"; + + + /** + * 队列类型 0:未比对 1:比对*/ + String QUEUW_TYPE_0="0"; + + String QUEUW_TYPE_1="1"; +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java index 63ea876..4c923c1 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceQrtzController.java @@ -47,9 +47,9 @@ public class DeviceQrtzController extends BaseController { * */ @SaCheckPermission("devict:qrtz:list") @GetMapping(value = "/page") - public TableDataInfo queryPageDept(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + public TableDataInfo queryPageDept(@RequestParam(name="pageNum", defaultValue="1") Integer pageNum, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, DeviceQrtzDTO deviceQrtzDTO) { - Page page = new Page(pageNo,pageSize); + Page page = new Page(pageNum,pageSize); return deviceQrtzService.listManageDeviceQrtz(page, deviceQrtzDTO); } /** diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java index ccc9667..a5a702c 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java @@ -1,20 +1,121 @@ package org.dromara.sample.wayline.controller; +import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; +import org.dromara.sample.wayline.model.dto.AiCompareDTO; +import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; +import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO; +import org.dromara.sample.wayline.model.entity.AiCompareEntity; +import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; +import org.dromara.sample.wayline.model.entity.WaylineJobEntity; +import org.dromara.sample.wayline.service.IAiCompareQueueService; +import org.dromara.sample.wayline.service.IAiCompareService; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; +import java.util.Map; /** * @auther yq * @data 2025/3/21 */ @RestController -@RequestMapping("/ai/compare") +@RequiredArgsConstructor +@RequestMapping("/compare") @Validated @Tag(name="算法比对模块") public class AiCompareController extends BaseController { + private final IAiCompareQueueService aiCompareQueueService; + + private final IAiCompareService aiCompareService; + + /** + * 图片对比列表 + */ + @SaCheckPermission("sample:compare:list") + @GetMapping("/list") + public TableDataInfo list(AiCompareDTO bo, PageQuery pageQuery) { + return aiCompareService.queryPageList(bo, pageQuery); + } + + /** + * 提交对比列表 + */ + @SaCheckPermission("sample:compare:list") + @GetMapping("/queueList") + public TableDataInfo queueList(AiCompareQueueDTO bo, PageQuery pageQuery) { + return aiCompareQueueService.queueList(bo, pageQuery); + } + + /** + * 模板列表 + * @param waylineId + * param createTime 当前记录的时间 + */ + @SaCheckPermission("sample:compare:list") + @GetMapping("/templateList") + public List templateList(String waylineId, Date createTime) { + return aiCompareQueueService.templateList(waylineId,createTime); + } + + /** + * 对比编辑 + * + * @param id 主键 + */ + @SaCheckPermission("sample:compare:query") + @GetMapping("/{id}") + public R> queryById(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(aiCompareService.queryById(id)); + } + + /** + * 模板回显 + * + * @param id 主键 + */ + @SaCheckPermission("sample:compare:query") + @GetMapping("/getInfo/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(aiCompareService.getInfo(id)); + } + /** + * 新增比对 + */ + @SaCheckPermission("sample:compare:add") + @Log(title = "算法比对", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody List> compareDTOList) { + return toAjax(aiCompareService.insertByBo(compareDTOList)); + } + + /** + * 重新比对 + */ + @SaCheckPermission("sample:compare:edit") + @Log(title = "算法重新比对", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody Map bo) { + return toAjax(aiCompareService.update(bo)); + } + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java index 2f48e28..ac3d6cb 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java @@ -1,10 +1,15 @@ package org.dromara.sample.wayline.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; import org.dromara.sample.wayline.model.entity.AiCompareEntity; +import java.util.List; + /** * @auther yq * @data 2025/3/21 */ public interface IAiCompareMapper extends BaseMapper { + + ListlistMediaFile(AiCompareEntity aiCompareEntity); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareQueueMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareQueueMapper.java index 0febb94..7f6e943 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareQueueMapper.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareQueueMapper.java @@ -1,10 +1,19 @@ package org.dromara.sample.wayline.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO; import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; +import java.util.List; + /** * @auther yq * @data 2025/3/21 */ public interface IAiCompareQueueMapper extends BaseMapper { + IPage queueList(@Param("bo") AiCompareQueueDTO bo, @Param("page") Page page); + + Boolean updateStatus(@Param("ids") List ids, @Param("queueType") String queueType); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java index b3a72be..f827e58 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java @@ -1,17 +1,20 @@ package org.dromara.sample.wayline.model.dto; +import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; +import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotNull; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; +import org.dromara.sample.wayline.model.entity.AiCompareEntity; +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -20,24 +23,29 @@ import java.util.Map; * @data 2025/3/21 */ @Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class AiCompareDTO { +@EqualsAndHashCode() +@AutoMapper(target = AiCompareEntity.class, reverseConvertGenerate = false) +public class AiCompareDTO implements Serializable { + + @NotNull(message = "主键id", groups = {EditGroup.class }) private Long id; /** * 0:是否比对 1:算法比对中 2:人工查看 3:可提交预警 4:完成对比 * */ private String status; + @JsonIgnore + @NotNull(message = "未比对列表主键id", groups = { AddGroup.class}) + private Long queueId; + /**航线名称*/ + private String waylineName; /** - * 模板id + * 模板id 对应模板的jobId * */ - @NotNull(message = "开始时间", groups = { AddGroup.class, EditGroup.class }) - private Long templateId; + private String templateId; /** * 算法数量 @@ -49,6 +57,7 @@ public class AiCompareDTO { /** * 总数量 * */ + private Integer totalNum; /** @@ -58,26 +67,54 @@ public class AiCompareDTO { /** * 任务名称 * */ - @NotNull(message = "任务名称", groups = { AddGroup.class, EditGroup.class }) private String jobName; /** * 任务id * */ - @NotNull(message = "任务id", groups = { AddGroup.class, EditGroup.class }) private String jobId; + /** * 搜索值 */ @JsonIgnore - @TableField(exist = false) private String searchValue; + /** + * 创建部门 + */ + + private Long createDept; + + /** + * 创建者 + */ + + private Long createBy; + /** + *用户昵称 + * */ + private String nickName; + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新者 + */ + + private Long updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + /** * 请求参数 */ @JsonInclude(JsonInclude.Include.NON_EMPTY) - @TableField(exist = false) private Map params = new HashMap<>(); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java new file mode 100644 index 0000000..e511aeb --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java @@ -0,0 +1,75 @@ +package org.dromara.sample.wayline.model.dto; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @auther yq + * @data 2025/3/21 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class AiCompareMediaFileDTO { + + + private String id; + + /**上云文件id*/ + private String fileId; + + @Schema(description = "文件名") + private String fileName; + + @Schema(description = "文件的路径") + private String filePath; + + @Schema(description = "文件所属的工作区") + private String workspaceId; + @Schema(description = "桶中文件的关链字") + private String objectKey; + + @Schema(description = "此属性仅适用于由Pilot上传的图像文件。0:正常图片;1:全景。") + private String subFileType; + + @Schema(description = "是否原始图像") + private Boolean isOriginal; + + @Schema(description = "创建文件的无人机的sn。") + private String drone; + + @Schema(description = "创建文件的无人机有效载荷的名称。") + private String payload; + + @Schema(description = "文件的小指纹。此属性仅适用于由Pilot上传的媒体文件") + private String tinnyFingerprint; + + @Schema(description = "文件的指纹。此属性仅适用于由Pilot上传的媒体文件。") + private String fingerprint; + + private Date createTime; + + private String jobId; + + @Schema(description = "模板图片名称") + private String mateFileName; + + @Schema(description = "模板图url") + private String mateFilePath; + + @Schema(description = "模板拍照时间") + private Date mateFileDate; + + + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareQueueDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareQueueDTO.java index 21d2e38..003d031 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareQueueDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareQueueDTO.java @@ -1,13 +1,19 @@ package org.dromara.sample.wayline.model.dto; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.HashMap; +import java.util.Map; /** * @auther yq @@ -23,20 +29,20 @@ public class AiCompareQueueDTO { private Long id; + /** * 航线id 对应wayline_id 字段 * */ - private String fileId; + private String waylineId; /** * 航线名称 * */ - private String fileName; - + private String waylineName; /** * 任务id * */ - private Integer jobId; + private String jobId; /** *任务名称 @@ -56,5 +62,18 @@ public class AiCompareQueueDTO { /** *队列类型 0:未比对 1:比对 * */ - private Byte queueType; + @NotNull(message = "队列类型 0:未比对 1:比对") + private String queueType; + + /** + * 搜索值 + */ + @JsonIgnore + private String searchValue; + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Map params = new HashMap<>(); + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java index e4e235c..22cbb84 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java @@ -3,10 +3,7 @@ package org.dromara.sample.wayline.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; import org.dromara.common.mybatis.core.domain.BaseEntity; @@ -16,10 +13,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; * @data 2025/3/21 */ @Data +@EqualsAndHashCode(callSuper = true) @TableName("ai_compare") -@Builder -@AllArgsConstructor -@NoArgsConstructor public class AiCompareEntity extends BaseEntity { @TableId(type = IdType.AUTO) @@ -30,10 +25,13 @@ public class AiCompareEntity extends BaseEntity { * */ private String status; + + /**航线名称*/ + private String waylineName; /** * 模板id * */ - private Long templateId; + private String templateId; /** * 算法数量 @@ -45,6 +43,10 @@ public class AiCompareEntity extends BaseEntity { * 总数量 * */ private Integer totalNum; + /** + *用户昵称 + * */ + private String nickName; /** *部门名称 diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareQueueEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareQueueEntity.java index f154460..0bb8205 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareQueueEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareQueueEntity.java @@ -29,17 +29,17 @@ public class AiCompareQueueEntity implements Serializable { /** * 航线id 对应wayline_id 字段 * */ - private String fileId; + private String waylineId; /** * 航线名称 * */ - private String fileName; + private String waylineName; /** * 任务id * */ - private Integer jobId; + private String jobId; /** *任务名称 @@ -59,6 +59,6 @@ public class AiCompareQueueEntity implements Serializable { /** *队列类型 0:未比对 1:比对 * */ - private Byte queueType; + private String queueType; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java index d9c4152..f0310a3 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareQueueService.java @@ -1,8 +1,21 @@ package org.dromara.sample.wayline.service; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO; +import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; +import org.dromara.sample.wayline.model.entity.WaylineJobEntity; + +import java.util.Date; +import java.util.List; + /** * @auther yq * @data 2025/3/21 */ public interface IAiCompareQueueService { + TableDataInfo queueList(AiCompareQueueDTO bo, PageQuery pageQuery); + ListtemplateList(String waylineId, Date createTime); + AiCompareQueueEntity getInfo(Long queueId); + Boolean updateStatus(List ids,String queueType); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java index 2dd2a5c..6fbfb90 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java @@ -1,8 +1,26 @@ package org.dromara.sample.wayline.service; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sample.wayline.model.dto.AiCompareDTO; +import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; +import org.dromara.sample.wayline.model.entity.AiCompareEntity; + +import java.util.List; +import java.util.Map; + /** * @auther yq * @data 2025/3/21 */ public interface IAiCompareService { + + TableDataInfo queryPageList(AiCompareDTO bo, PageQuery pageQuery); + + Boolean insertByBo(List>compareDTOList); + + Boolean update(Map compareDTO); + + AiCompareEntity getInfo(Long id); + List queryById(Long id); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java index 030c1eb..263e92c 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java @@ -1,14 +1,84 @@ package org.dromara.sample.wayline.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.tdunning.math.stats.Sort; +import lombok.Data; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sample.wayline.mapper.IAiCompareQueueMapper; +import org.dromara.sample.wayline.mapper.IWaylineJobMapper; +import org.dromara.sample.wayline.model.dto.AiCompareDTO; +import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO; +import org.dromara.sample.wayline.model.entity.AiCompareEntity; +import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; +import org.dromara.sample.wayline.model.entity.WaylineJobEntity; import org.dromara.sample.wayline.service.IAiCompareQueueService; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Date; +import java.util.List; +import java.util.Map; + /** * @auther yq * @data 2025/3/21 */ +@RequiredArgsConstructor @Service @Slf4j public class AiCompareQueueServiceImpl implements IAiCompareQueueService { + + private final IAiCompareQueueMapper aiCompareQueueMapper; + private final IWaylineJobMapper waylineJobMapper; + @Override + public TableDataInfo queueList(AiCompareQueueDTO bo, PageQuery pageQuery) { + return TableDataInfo.build(aiCompareQueueMapper.selectPage(pageQuery.build(),this.buildAiCompareDTOQueryWrapper(bo))); + } + + @Override + public List templateList(String waylineId, Date createTime) { + QueryWrapper wrapper = Wrappers.query(); + // 如果 createTime 为空,使用当前时间 + if (createTime == null) { + createTime = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant()); + } + //获取最新的10条数据 + wrapper + .eq(StringUtils.isNotBlank(waylineId),"wayline_id", waylineId) + .lt(ObjectUtil.isNotEmpty(createTime),"create_time",createTime) // 增加创建时间小于指定时间的条件 + .orderByDesc("create_time") + .last("limit 10"); + List jobEntityList = waylineJobMapper.selectList(wrapper); + return jobEntityList; + } + + private QueryWrapper buildAiCompareDTOQueryWrapper(AiCompareQueueDTO bo) { + QueryWrapper wrapper = Wrappers.query(); + wrapper + .eq(ObjectUtil.isNotEmpty(bo.getQueueType()), "queue_type",bo.getQueueType()) + .like(StringUtils.isNotBlank(bo.getWaylineName()), "lower(wayline_name)", StringUtils.lowerCase(bo.getWaylineName())) + .like(StringUtils.isNotBlank(bo.getJobName()), "lower(job_name)", StringUtils.lowerCase(bo.getJobName())) + .orderByDesc("create_time"); + return wrapper; + } + @Override + public AiCompareQueueEntity getInfo(Long queueId) { + return aiCompareQueueMapper.selectById(queueId); + } + + @Override + public Boolean updateStatus(List ids,String queueType) { + return aiCompareQueueMapper.updateStatus(ids,queueType); + } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index 03451ea..2ab193a 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -1,15 +1,140 @@ package org.dromara.sample.wayline.service.impl; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.executor.BatchResult; +import org.dromara.common.core.constant.AiCompareStatusConstants; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.sample.wayline.mapper.IAiCompareMapper; +import org.dromara.sample.wayline.mapper.IWaylineJobMapper; +import org.dromara.sample.wayline.model.dto.AiCompareDTO; +import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; +import org.dromara.sample.wayline.model.entity.AiCompareEntity; +import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; +import org.dromara.sample.wayline.model.entity.WaylineJobEntity; +import org.dromara.sample.wayline.service.IAiCompareQueueService; import org.dromara.sample.wayline.service.IAiCompareService; +import org.dromara.system.api.model.LoginUser; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @auther yq * @data 2025/3/21 */ +@RequiredArgsConstructor @Service @Slf4j public class AiCompareServiceImpl implements IAiCompareService { + private final IAiCompareQueueService aiCompareQueueService; + private final IAiCompareMapper aiCompareMapper; + private final IWaylineJobMapper waylineJobMapper; + + @Override + public TableDataInfo queryPageList(AiCompareDTO bo, PageQuery pageQuery) { + return TableDataInfo.build(aiCompareMapper.selectPage(pageQuery.build(),this.buildAiCompareDTOQueryWrapper(bo))); + } + private QueryWrapper buildAiCompareDTOQueryWrapper(AiCompareDTO bo) { + Map params = bo.getParams(); + QueryWrapper wrapper = Wrappers.query(); + wrapper + .eq(StringUtils.isNotEmpty(bo.getStatus()), "status",bo.getStatus()) + .eq(ObjectUtil.isNotEmpty(bo.getCreateBy()), "create_by",bo.getCreateBy()) + .like(StringUtils.isNotBlank(bo.getDeptName()), "lower(dept_name)", StringUtils.lowerCase(bo.getDeptName())) + .like(StringUtils.isNotBlank(bo.getJobName()), "lower(job_name)", StringUtils.lowerCase(bo.getJobName())) + .between(params.get("beginTime") != null && params.get("endTime") != null, + "create_time", params.get("beginTime"), params.get("endTime")); + return wrapper; + } + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(List> compareDTOList) { + if(compareDTOList.isEmpty()){ + throw new RuntimeException("未选择比对数据"); + } + List insertList =new ArrayList<>(); + for (Map bo : compareDTOList) { + Long queueId = Convert.toLong(bo.get("queueId")); + AiCompareQueueEntity serviceInfo = aiCompareQueueService.getInfo(queueId); + AiCompareEntity aiCompareEntity = new AiCompareEntity(); + LoginUser loginUser = LoginHelper.getLoginUser(); + aiCompareEntity.setWaylineName(serviceInfo.getWaylineName()); + aiCompareEntity.setJobId(serviceInfo.getJobId()); + aiCompareEntity.setJobName(serviceInfo.getJobName()); + aiCompareEntity.setTotalNum(serviceInfo.getPictureNumber()); + aiCompareEntity.setCreateBy(loginUser.getUserId()); + aiCompareEntity.setNickName(loginUser.getNickname()); + aiCompareEntity.setDeptName(loginUser.getDeptName()); + aiCompareEntity.setCreateDept(loginUser.getDeptId()); + aiCompareEntity.setStatus(AiCompareStatusConstants.COMPARE_STATUS_1); + aiCompareEntity.setCreateTime(new Date()); + String templateId = Convert.toStr(bo.get("templateId")); + if(ObjectUtil.isNotEmpty(templateId)){ + aiCompareEntity.setTemplateId(templateId); + }else { + //获取最新一条的模板进行比对 + LambdaQueryWrapper lasted = Wrappers.lambdaQuery() + .eq(WaylineJobEntity::getFileId, serviceInfo.getWaylineId()) + .lt(WaylineJobEntity::getCreateTime, serviceInfo.getCreateTime()) // 增加创建时间小于指定时间的条件 + .orderByDesc(WaylineJobEntity::getCreateTime) + .last("limit 1"); + List jobEntityList = waylineJobMapper.selectList(lasted); + if(jobEntityList.isEmpty()){ + throw new RuntimeException("("+serviceInfo.getWaylineName()+")未找到对应的模板"); + }else { + aiCompareEntity.setTemplateId(jobEntityList.get(0).getJobId()); + } + } + insertList.add(aiCompareEntity); + } + List resultList = aiCompareMapper.insertOrUpdate(insertList, 10); + System.out.println(resultList); + List list =compareDTOList.stream().map(e->Convert.toLong(e.get("queueId"))).collect(Collectors.toList()); + ; + return aiCompareQueueService.updateStatus(list,AiCompareStatusConstants.QUEUW_TYPE_1); + } + + @Override + public Boolean update(Map compareDTO) { + AiCompareEntity aiCompareEntity =new AiCompareEntity(); + Long id = Convert.toLong(compareDTO.get("id")); + aiCompareEntity.setId(id); + String templateId = Convert.toStr(compareDTO.get("templateId")); + if(StrUtil.isNotEmpty(templateId)){ + aiCompareEntity.setTemplateId(templateId); + } + + return aiCompareMapper.updateById(aiCompareEntity)>0; + } + + @Override + public AiCompareEntity getInfo(Long id) { + return aiCompareMapper.selectById(id); + } + + @Override + public List queryById(Long id) { + AiCompareEntity aiCompareEntity = aiCompareMapper.selectById(id); + List mediaFileDTOList = aiCompareMapper.listMediaFile(aiCompareEntity); + return mediaFileDTOList; + } } diff --git a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml new file mode 100644 index 0000000..b30ec1f --- /dev/null +++ b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + diff --git a/dk-modules/sample/src/main/resources/mapper/AiCompareQueueMapper.xml b/dk-modules/sample/src/main/resources/mapper/AiCompareQueueMapper.xml new file mode 100644 index 0000000..cb15b2f --- /dev/null +++ b/dk-modules/sample/src/main/resources/mapper/AiCompareQueueMapper.xml @@ -0,0 +1,21 @@ + + + + + update ai_compare_queue + + queue_type = #{queueType} + + where id in + + #{id} + + + + + +