From 46dce9167257a70814d2533a0ddb67d9041e510d Mon Sep 17 00:00:00 2001 From: aikai Date: Thu, 6 Feb 2025 16:22:22 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat(system):=20=E5=A2=9E=E5=8A=A0=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E7=BB=91=E5=AE=9A=E8=AE=BE=E5=A4=87=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E5=BA=93=E4=BD=8D=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增地图绑定设备接口和相关DTO - 实现地图绑定设备的业务逻辑 - 优化库位信息获取接口,支持按地图点位ID查询- 修复设备信息列表查询接口,增加多种查询条件 -优化库区和库位相关的数据结构和接口 --- .../housearea/vo/HouseAreaSaveReqVO.java | 3 ++ .../WareHouseLocationController.java | 49 +++++++++++-------- .../DeviceInformationController.java | 13 ++++- .../information/dto/DeviceInformationDTO.java | 25 ++++++++++ .../information/dto/MapBindDeviceInfoDTO.java | 16 ++++++ .../dal/dataobject/housearea/HouseAreaDO.java | 13 +++-- .../houselocation/WareHouseLocationDO.java | 8 +-- .../information/DeviceInformationDO.java | 7 ++- .../mapnode/strategy/DeviceStrategyImpl.java | 4 -- .../strategy/HouseLocationStrategyImpl.java | 12 ++++- .../houselocation/HouseLocationService.java | 11 ++++- .../HouseLocationServiceImpl.java | 9 +++- .../information/DeviceInformationService.java | 13 ++++- .../DeviceInformationServiceImpl.java | 22 ++++++++- 14 files changed, 158 insertions(+), 47 deletions(-) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/DeviceInformationDTO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/MapBindDeviceInfoDTO.java diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/housearea/vo/HouseAreaSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/housearea/vo/HouseAreaSaveReqVO.java index 2b3c1c952..a6a3f7a8f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/housearea/vo/HouseAreaSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/housearea/vo/HouseAreaSaveReqVO.java @@ -15,6 +15,9 @@ public class HouseAreaSaveReqVO { @Schema(description = "地图id", example = "芋艿") private Long positionMapId; + @Schema(description = "地图id", example = "芋艿") + private String skuInfo; + @Schema(description = "库区名称", example = "李四") private String areaName; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java index 303017949..80addcbe1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java @@ -1,35 +1,33 @@ package cn.iocoder.yudao.module.system.controller.admin.houselocation; +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationRespVO; import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationVO; import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO; import cn.iocoder.yudao.module.system.service.houselocation.HouseLocationService; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.List; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - -import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; -import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; - @Tag(name = "管理后台 - 库位") @RestController @@ -73,6 +71,15 @@ public class WareHouseLocationController { return success(BeanUtils.toBean(houseLocation, WareHouseLocationRespVO.class)); } + @GetMapping("/getByMapItemId") + @Operation(summary = "根据点位获取库位信息列表") + @Parameter(name = "mapId", description = "地图id", required = true, example = "1024") + @Parameter(name = "mapItemId", description = "地图点位id", required = true, example = "1024") + public CommonResult> getByMapItemId(@RequestParam("mapId") Long mapId, @RequestParam("mapItemId") Long mapItemId) { + List list = houseLocationService.getByMapItemId(mapId, mapItemId); + return success(BeanUtils.toBean(list, WareHouseLocationRespVO.class)); + } + @GetMapping("/page") @Operation(summary = "获得库位分页") @PreAuthorize("@ss.hasPermission('ware:house-location:query')") @@ -86,12 +93,12 @@ public class WareHouseLocationController { @PreAuthorize("@ss.hasPermission('ware:house-location:export')") @ApiAccessLog(operateType = EXPORT) public void exportHouseLocationExcel(@Valid WareHouseLocationPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = houseLocationService.getHouseLocationPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "库位.xls", "数据", WareHouseLocationRespVO.class, - BeanUtils.toBean(list, WareHouseLocationRespVO.class)); + BeanUtils.toBean(list, WareHouseLocationRespVO.class)); } @PostMapping("/getLocationByName") @@ -101,4 +108,4 @@ public class WareHouseLocationController { return success(houseLocationService.getLocationByName(requestVO)); } -} \ No newline at end of file +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/DeviceInformationController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/DeviceInformationController.java index 7438b8daa..1fe556188 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/DeviceInformationController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/DeviceInformationController.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.system.controller.admin.information; +import cn.iocoder.yudao.module.system.controller.admin.information.dto.DeviceInformationDTO; +import cn.iocoder.yudao.module.system.controller.admin.information.dto.MapBindDeviceInfoDTO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationRespVO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationSaveReqVO; @@ -74,11 +76,18 @@ public class DeviceInformationController { @GetMapping("/list") @Operation(summary = "获得设备信息列表") - public CommonResult> getList(@Valid DeviceInformationPageReqVO pageReqVO) { - List list = informationService.getList(pageReqVO); + public CommonResult> getList(@Valid DeviceInformationDTO dto) { + List list = informationService.getList(dto); return success(BeanUtils.toBean(list, DeviceInformationRespVO.class)); } + @PostMapping("/mapBindDeviceInfo") + @Operation(summary = "地图绑定设备") + public CommonResult mapBindDeviceInfo(@Valid MapBindDeviceInfoDTO dto) { + informationService.mapBindDeviceInfo(dto); + return success(true); + } + @GetMapping("/page") @Operation(summary = "获得设备信息分页") @PreAuthorize("@ss.hasPermission('device:information:query')") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/DeviceInformationDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/DeviceInformationDTO.java new file mode 100644 index 000000000..6f96a8218 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/DeviceInformationDTO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.controller.admin.information.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +@Schema(description = "管理后台 - 设备信息 DTO") +@Data +@ToString(callSuper = true) +public class DeviceInformationDTO { + @Schema(description = "获取未绑定地图的设备 0否 1是 默认否", example = "6609") + private Integer unboundFlag; + + @Schema(description = "地图id", example = "6609") + private Long positionMapId; + + @Schema(description = "设备类型(1:充电桩、2:输送线、 3:码垛机、4:拆垛机、5:自动门、6:提升机、7:信号灯、8:按钮盒)", example = "2") + private Integer deviceType; + + @Schema(description = "设备状态(1:在线、2:离线、 3:异常)", example = "1") + private Integer deviceStatus; + + @Schema(description = "设备启用禁用(0:禁用、1:启用)") + private Integer deviceEnable; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/MapBindDeviceInfoDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/MapBindDeviceInfoDTO.java new file mode 100644 index 000000000..2730d398f --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/MapBindDeviceInfoDTO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.system.controller.admin.information.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +@Schema(description = "管理后台 - 地图绑定设备DTO") +@Data +public class MapBindDeviceInfoDTO { + @Schema(description = "地图id", example = "6609") + private Long positionMapId; + @Schema(description = "设备id", example = "6609") + private Long deviceInfoId; + @Schema(description = "类型 1绑定 2取消绑定") + private Integer type; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/housearea/HouseAreaDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/housearea/HouseAreaDO.java index de288d6f6..50cf8d101 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/housearea/HouseAreaDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/housearea/HouseAreaDO.java @@ -1,9 +1,11 @@ package cn.iocoder.yudao.module.system.dal.dataobject.housearea; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; /** * 库区 DO @@ -30,7 +32,10 @@ public class HouseAreaDO extends BaseDO { * 地图id */ private Long positionMapId; - + /** + * 物料信息 + */ + private String skuInfo; /** * 库区名称 */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseLocationDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseLocationDO.java index 7cc11e61a..b138a1e78 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseLocationDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseLocationDO.java @@ -1,10 +1,10 @@ package cn.iocoder.yudao.module.system.dal.dataobject.houselocation; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.*; +import lombok.*; + +import java.math.BigDecimal; /** * 库位 DO diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java index 6945bc8be..02f05b1cf 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java @@ -1,10 +1,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.information; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.KeySequence; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.*; import java.math.BigDecimal; @@ -33,10 +30,12 @@ public class DeviceInformationDO extends BaseDO { /** * 地图id */ + @TableField(updateStrategy = FieldStrategy.IGNORED) private Long positionMapId; /** * 地图子表节点id */ + @TableField(updateStrategy = FieldStrategy.IGNORED) private Long positionMapItemId; /** * 库位坐标x轴 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/DeviceStrategyImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/DeviceStrategyImpl.java index 0157b54b4..0be191c6e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/DeviceStrategyImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/DeviceStrategyImpl.java @@ -23,7 +23,6 @@ public class DeviceStrategyImpl implements NodeProcessingStrategy { public void processNodes(Long positionMapId, List nodeBaseDTOS) { // -- 策略3 处理设备点 // -- 将data里面的json 数据转为实体类 - 再对比节点id - 然后做新增删除修改操作 - // --------------- dataJSON里面没有具体的类的id - 然后库位要根据层数添加 多个库位数据 即 一个点位 对应多个库位 List newList = new ArrayList<>(); nodeBaseDTOS.forEach(item -> { if (item.getId() == null) { @@ -31,9 +30,6 @@ public class DeviceStrategyImpl implements NodeProcessingStrategy { } item.setPositionMapId(positionMapId); DeviceInformationDO deviceInformationDO = JSONUtil.toBean(item.getDataJson(), DeviceInformationDO.class); - if (deviceInformationDO.getId() == null) { - deviceInformationDO.setId(getId()); - } deviceInformationDO.setLocationX(item.getLocationX()); deviceInformationDO.setLocationY(item.getLocationY()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/HouseLocationStrategyImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/HouseLocationStrategyImpl.java index fa9b82d26..769480f76 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/HouseLocationStrategyImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/HouseLocationStrategyImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.system.handler.mapnode.strategy; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.NodeBaseDTO; @@ -31,16 +32,23 @@ public class HouseLocationStrategyImpl implements NodeProcessingStrategy { item.setPositionMapId(positionMapId); // -- 如果是库位点 - 可能是一对多情况 - 需要将多个库位点的id set进去 List wareHouseLocationDOS = JSONUtil.toList(item.getDataJson(), WareHouseLocationDO.class); - wareHouseLocationDOS.forEach(wareHouseLocationDO -> { + // -- 筛选出 库位编号不为空 - 并且第最后一组数据 最大的值 - 如果没有则为0 + int max = wareHouseLocationDOS.stream().map(WareHouseLocationDO::getLocationNo).filter(StrUtil::isNotEmpty) + .mapToInt(s -> Integer.parseInt(s.split("_")[2])).max().orElse(0); + for (WareHouseLocationDO wareHouseLocationDO : wareHouseLocationDOS) { wareHouseLocationDO.setLocationX(item.getLocationX()); wareHouseLocationDO.setLocationY(item.getLocationY()); if (wareHouseLocationDO.getId() == null) { wareHouseLocationDO.setId(getId()); } + if (StrUtil.isEmpty(wareHouseLocationDO.getLocationNo())) { + // -- 生成库位编号 - + wareHouseLocationDO.setLocationNo(positionMapId + "_" + item.getId() + "_" + max++); + } wareHouseLocationDO.setMapId(positionMapId); wareHouseLocationDO.setMapItemId(item.getId()); newList.add(wareHouseLocationDO); - }); + } item.setDataJson(JSONUtil.toJsonStr(wareHouseLocationDOS)); }); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java index 856e185fa..e192bfb29 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationService.java @@ -71,10 +71,19 @@ public interface HouseLocationService extends IService { * @return */ List getByMapId(Long positionMapId); + /** - * * @param requestVO * @return */ List getLocationByName(WareHouseLocationVO requestVO); + + /** + * 根据地图id 点位id 获取库位信息 + * + * @param mapId + * @param mapItemId + * @return + */ + List getByMapItemId(Long mapId, Long mapItemId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java index 9c24b7fc1..6caca5d7f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java @@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHous import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseLocationVO; import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO; import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseLocationMapper; -import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -81,6 +81,13 @@ public class HouseLocationServiceImpl extends ServiceImpl getByMapItemId(Long mapId, Long mapItemId) { + return houseLocationMapper.selectList(new LambdaQueryWrapper() + .eq(WareHouseLocationDO::getMapId, mapId) + .eq(WareHouseLocationDO::getMapItemId, mapItemId)); + } + @Override public void batchSaveOrEditOrDel(Long positionMapId, List> list) { //批量添加、修改、删除 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java index a2cf194e0..3374b706c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.system.service.information; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.information.dto.DeviceInformationDTO; +import cn.iocoder.yudao.module.system.controller.admin.information.dto.MapBindDeviceInfoDTO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO; @@ -72,8 +74,15 @@ public interface DeviceInformationService { /** * 获取设备列表 * - * @param pageReqVO + * @param dto * @return */ - List getList(@Valid DeviceInformationPageReqVO pageReqVO); + List getList(@Valid DeviceInformationDTO dto); + + /** + * 地图绑定设备 + * + * @param dto + */ + void mapBindDeviceInfo(@Valid MapBindDeviceInfoDTO dto); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java index e1b68369f..8c1a61e67 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java @@ -5,6 +5,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.grpc.api.GrpcServiceApi; +import cn.iocoder.yudao.module.system.controller.admin.information.dto.DeviceInformationDTO; +import cn.iocoder.yudao.module.system.controller.admin.information.dto.MapBindDeviceInfoDTO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO; @@ -113,9 +115,25 @@ public class DeviceInformationServiceImpl implements DeviceInformationService { } @Override - public List getList(DeviceInformationPageReqVO pageReqVO) { + public List getList(DeviceInformationDTO dto) { return informationMapper.selectList(new LambdaQueryWrapper() - .eq(pageReqVO.getDeviceType() != null, DeviceInformationDO::getDeviceType, pageReqVO.getDeviceType())); + .isNull(dto.getUnboundFlag() != null && dto.getUnboundFlag() == 1, DeviceInformationDO::getPositionMapId) + .eq(dto.getPositionMapId() != null, DeviceInformationDO::getPositionMapId, dto.getPositionMapId()) + .eq(dto.getDeviceType() != null, DeviceInformationDO::getDeviceType, dto.getDeviceType()) + .eq(dto.getDeviceStatus() != null, DeviceInformationDO::getDeviceStatus, dto.getDeviceStatus()) + .eq(dto.getDeviceEnable() != null, DeviceInformationDO::getDeviceEnable, dto.getDeviceEnable()) + ); } + @Override + public void mapBindDeviceInfo(MapBindDeviceInfoDTO dto) { + DeviceInformationDO deviceInformationDO = informationMapper.selectById(dto.getDeviceInfoId()); + if (dto.getType() == 1) { + deviceInformationDO.setPositionMapId(dto.getPositionMapId()); + } else { + deviceInformationDO.setPositionMapId(null); + deviceInformationDO.setPositionMapItemId(null); + } + informationMapper.updateById(deviceInformationDO); + } } From 14e33270d62171559263c39025ff58e1f2caba3d Mon Sep 17 00:00:00 2001 From: aikai Date: Sat, 8 Feb 2025 09:10:53 +0800 Subject: [PATCH 2/4] =?UTF-8?q?refactor(system):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=9E=8B=E6=8F=8F=E8=BF=B0=E5=B9=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AD=97=E5=85=B8=E6=95=B0=E6=8D=AE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3-=20=E4=BF=AE=E6=94=B9=E8=AE=BE=E5=A4=87=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=AD=97=E6=AE=B5=E6=8F=8F=E8=BF=B0=E4=B8=BA"?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=9E=8B=20=E5=AD=97=E5=85=B8device?= =?UTF-8?q?=5Ftype"=EF=BC=8C=E7=BB=9F=E4=B8=80=E6=8F=8F=E8=BF=B0=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=20-=20=E5=9C=A8=20DictDataController=20=E4=B8=AD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20getByDictType=20=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E7=94=A8=E4=BA=8E=E8=8E=B7=E5=8F=96=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=AD=97=E5=85=B8?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/admin/dict/DictDataController.java | 7 +++++++ .../admin/information/dto/DeviceInformationDTO.java | 2 +- .../admin/information/vo/DeviceInformationPageReqVO.java | 2 +- .../admin/information/vo/DeviceInformationRespVO.java | 4 ++-- .../admin/information/vo/DeviceInformationSaveReqVO.java | 2 +- .../dal/dataobject/information/DeviceInformationDO.java | 2 +- 6 files changed, 13 insertions(+), 6 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java index d7402a174..e71ef92ee 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java @@ -72,6 +72,13 @@ public class DictDataController { return success(BeanUtils.toBean(list, DictDataSimpleRespVO.class)); } + @GetMapping("/getByDictType") + @Operation(summary = "根据字典类型获取字典信息列表", description = "一般用于管理后台缓存字典数据在本地") + public CommonResult> getByDictType(@RequestParam String dictType) { + List list = dictDataService.getDictDataListByDictType(dictType); + return success(list); + } + @GetMapping("/page") @Operation(summary = "/获得字典类型的分页列表") @PreAuthorize("@ss.hasPermission('system:dict:query')") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/DeviceInformationDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/DeviceInformationDTO.java index 6f96a8218..f9fcdb9ea 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/DeviceInformationDTO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/dto/DeviceInformationDTO.java @@ -14,7 +14,7 @@ public class DeviceInformationDTO { @Schema(description = "地图id", example = "6609") private Long positionMapId; - @Schema(description = "设备类型(1:充电桩、2:输送线、 3:码垛机、4:拆垛机、5:自动门、6:提升机、7:信号灯、8:按钮盒)", example = "2") + @Schema(description = "设备类型 字典device_type", example = "2") private Integer deviceType; @Schema(description = "设备状态(1:在线、2:离线、 3:异常)", example = "1") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationPageReqVO.java index 1b6df9623..98e8309eb 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationPageReqVO.java @@ -35,7 +35,7 @@ public class DeviceInformationPageReqVO extends PageParam { @Schema(description = "深度") private BigDecimal locationDeep; - @Schema(description = "设备类型(1:充电桩、2:输送线、 3:码垛机、4:拆垛机、5:自动门、6:提升机、7:信号灯、8:按钮盒)", example = "2") + @Schema(description = "设备类型 字典device_type", example = "2") private Integer deviceType; @Schema(description = "设备编号") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationRespVO.java index 98eaaac38..536bc7fa3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationRespVO.java @@ -42,8 +42,8 @@ public class DeviceInformationRespVO { @ExcelProperty("深度") private BigDecimal locationDeep; - @Schema(description = "设备类型(1:充电桩、2:输送线、 3:码垛机、4:拆垛机、5:自动门、6:提升机、7:信号灯、8:按钮盒)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - @ExcelProperty("设备类型(1:充电桩、2:输送线、 3:码垛机、4:拆垛机、5:自动门、6:提升机、7:信号灯、8:按钮盒)") + @Schema(description = "设备类型 字典device_type", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("设备类型 字典device_type") private Integer deviceType; @Schema(description = "设备编号") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationSaveReqVO.java index aa4a7fbe5..3afd87a6c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/information/vo/DeviceInformationSaveReqVO.java @@ -34,7 +34,7 @@ public class DeviceInformationSaveReqVO { @Schema(description = "深度") private BigDecimal locationDeep; - @Schema(description = "设备类型(1:充电桩、2:输送线、 3:码垛机、4:拆垛机、5:自动门、6:提升机、7:信号灯、8:按钮盒)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @Schema(description = "设备类型 字典device_type", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "设备类型不能为空") private Integer deviceType; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java index 02f05b1cf..e539b5101 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/information/DeviceInformationDO.java @@ -54,7 +54,7 @@ public class DeviceInformationDO extends BaseDO { */ private BigDecimal locationDeep; /** - * 设备类型(1:充电桩、2:输送线、 3:码垛机、4:拆垛机、5:自动门、6:提升机、7:信号灯、8:按钮盒) + * 设备类型 字典device_type */ private Integer deviceType; /** From 21225701e4db09e43330b9b2bab1eded47742673 Mon Sep 17 00:00:00 2001 From: aikai Date: Sat, 8 Feb 2025 15:53:11 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat(system):=20=E6=B7=BB=E5=8A=A0=E8=BD=A6?= =?UTF-8?q?=E8=BE=86=E5=BC=82=E5=B8=B8=E8=AE=B0=E5=BD=95=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E5=9C=B0=E5=9B=BE=E8=BF=9E=E7=BA=BF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增车辆异常记录相关功能,包括错误记录的保存和分页查询 - 重构仓库点位地图连线接口,支持批量创建、编辑和删除操作 - 优化地图连线列表获取方式,提高查询效率 --- .../errorrecord/ErrorRecordController.java | 39 +++++++++++++++ .../errorrecord/vo/ErrorRecordPageReqVO.java | 34 ++++++++++++++ .../errorrecord/vo/ErrorRecordRespVO.java | 39 +++++++++++++++ .../errorrecord/vo/ErrorRecordSaveReqVO.java | 27 +++++++++++ .../PositionMapLineController.java | 12 ++--- .../dataobject/errorrecord/ErrorRecordDO.java | 47 +++++++++++++++++++ .../mysql/errorrecord/ErrorRecordMapper.java | 28 +++++++++++ .../errorrecord/ErrorRecordService.java | 27 +++++++++++ .../errorrecord/ErrorRecordServiceImpl.java | 34 ++++++++++++++ .../positionmap/PositionMapLineService.java | 19 +++++++- .../PositionMapLineServiceImpl.java | 40 +++++++++++++--- .../robot/job/DistributeTasksServiceImpl.java | 12 +++-- .../mapper/errorrecord/ErrorRecordMapper.xml | 12 +++++ 13 files changed, 351 insertions(+), 19 deletions(-) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/ErrorRecordController.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordPageReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordRespVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordSaveReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorrecord/ErrorRecordDO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorrecord/ErrorRecordMapper.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordService.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordServiceImpl.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/errorrecord/ErrorRecordMapper.xml diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/ErrorRecordController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/ErrorRecordController.java new file mode 100644 index 000000000..2157efac7 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/ErrorRecordController.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.controller.admin.errorrecord; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo.ErrorRecordPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo.ErrorRecordRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.errorrecord.ErrorRecordDO; +import cn.iocoder.yudao.module.system.service.errorrecord.ErrorRecordService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 车辆异常记录") +@RestController +@RequestMapping("/system/error-record") +@Validated +public class ErrorRecordController { + + @Resource + private ErrorRecordService errorRecordService; + + @GetMapping("/page") + @Operation(summary = "获得车辆异常记录分页") + @PreAuthorize("@ss.hasPermission('system:error-record:query')") + public CommonResult> getErrorRecordPage(@Valid ErrorRecordPageReqVO pageReqVO) { + PageResult pageResult = errorRecordService.getErrorRecordPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ErrorRecordRespVO.class)); + } +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordPageReqVO.java new file mode 100644 index 000000000..7642c1f49 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordPageReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 车辆异常记录分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ErrorRecordPageReqVO extends PageParam { + + @Schema(description = "AGV编号") + private String robotNo; + + @Schema(description = "告警等级(1-4)") + private Integer level; + + @Schema(description = "异常Id") + private String errCode; + + @Schema(description = "告警信息") + private String errMsg; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordRespVO.java new file mode 100644 index 000000000..aa3572ddc --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 车辆异常记录 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ErrorRecordRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7461") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "AGV编号") + @ExcelProperty("AGV编号") + private String robotNo; + + @Schema(description = "告警等级(1-4)") + @ExcelProperty("告警等级(1-4)") + private Integer level; + + @Schema(description = "异常Id") + @ExcelProperty("异常Id") + private String errCode; + + @Schema(description = "告警信息") + @ExcelProperty("告警信息") + private String errMsg; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordSaveReqVO.java new file mode 100644 index 000000000..8cf38e53b --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordSaveReqVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 车辆异常记录新增/修改 Request VO") +@Data +public class ErrorRecordSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7461") + private Long id; + + @Schema(description = "AGV编号") + private String robotNo; + + @Schema(description = "告警等级(1-4)") + private Integer level; + + @Schema(description = "异常Id") + private String errCode; + + @Schema(description = "告警信息") + private String errMsg; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapLineController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapLineController.java index 1ecc1c62f..e9133d8ac 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapLineController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapLineController.java @@ -29,11 +29,12 @@ public class PositionMapLineController { @Resource private PositionMapLineService positionMapLineService; - @PostMapping("/createOrEdit") - @Operation(summary = "创建编辑仓库点位地图连线") + @PostMapping("/createOrEditOrDel") + @Operation(summary = "创建编辑删除仓库点位地图连线") @PreAuthorize("@ss.hasPermission('system:position-map-line:create')") - public CommonResult createPositionMapLine(@Valid @RequestBody PositionMapLineSaveReqVO createReqVO) { - return success(positionMapLineService.createOrEditPositionMapLine(createReqVO)); + public CommonResult createOrEditOrDel(@RequestParam Long positionMapId, @Valid @RequestBody List createReqVO) { + positionMapLineService.createOrEditPositionMapLine(positionMapId, createReqVO); + return success(true); } @DeleteMapping("/delete") @@ -58,8 +59,7 @@ public class PositionMapLineController { @Operation(summary = "通过地图id获取连线列表") @PreAuthorize("@ss.hasPermission('system:position-map-line:query')") public CommonResult> list(@RequestParam Long positionMapId) { - List list = positionMapLineService.list(new LambdaQueryWrapperX() - .eq(PositionMapLineDO::getPositionMapId, positionMapId)); + List list = positionMapLineService.getByMapId(positionMapId); return success(BeanUtils.toBean(list, PositionMapLineRespVO.class)); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorrecord/ErrorRecordDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorrecord/ErrorRecordDO.java new file mode 100644 index 000000000..908e5b8af --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorrecord/ErrorRecordDO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.errorrecord; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 车辆异常记录 DO + * + * @author 芋道源码 + */ +@TableName("robot_error_record") +@KeySequence("robot_error_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ErrorRecordDO extends BaseDO { + + /** + * 主键ID + */ + @TableId + private Long id; + /** + * AGV编号 + */ + private String robotNo; + /** + * 告警等级(1-4) + */ + private Integer level; + /** + * 异常Id + */ + private String errCode; + /** + * 告警信息 + */ + private String errMsg; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorrecord/ErrorRecordMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorrecord/ErrorRecordMapper.java new file mode 100644 index 000000000..5846a3ec6 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorrecord/ErrorRecordMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.dal.mysql.errorrecord; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo.ErrorRecordPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.errorrecord.ErrorRecordDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 车辆异常记录 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface ErrorRecordMapper extends BaseMapperX { + + default PageResult selectPage(ErrorRecordPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ErrorRecordDO::getRobotNo, reqVO.getRobotNo()) + .eqIfPresent(ErrorRecordDO::getLevel, reqVO.getLevel()) + .eqIfPresent(ErrorRecordDO::getErrCode, reqVO.getErrCode()) + .eqIfPresent(ErrorRecordDO::getErrMsg, reqVO.getErrMsg()) + .betweenIfPresent(ErrorRecordDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ErrorRecordDO::getId)); + } + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordService.java new file mode 100644 index 000000000..ac46c76fb --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordService.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.service.errorrecord; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo.ErrorRecordPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.errorrecord.ErrorRecordDO; + +import javax.validation.Valid; + +/** + * 车辆异常记录 Service 接口 + * + * @author 芋道源码 + */ +public interface ErrorRecordService { + /** + * 新增异常记录 + */ + void save(ErrorRecordDO errorRecordDO); + + /** + * 分页列表 + * + * @param pageReqVO + * @return + */ + PageResult getErrorRecordPage(@Valid ErrorRecordPageReqVO pageReqVO); +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordServiceImpl.java new file mode 100644 index 000000000..ca6918d79 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordServiceImpl.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.service.errorrecord; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo.ErrorRecordPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.errorrecord.ErrorRecordDO; +import cn.iocoder.yudao.module.system.dal.mysql.errorrecord.ErrorRecordMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 车辆异常记录 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class ErrorRecordServiceImpl implements ErrorRecordService { + + @Resource + private ErrorRecordMapper errorRecordMapper; + + + @Override + public void save(ErrorRecordDO errorRecordDO) { + errorRecordMapper.insert(errorRecordDO); + } + + @Override + public PageResult getErrorRecordPage(ErrorRecordPageReqVO pageReqVO) { + return errorRecordMapper.selectPage(pageReqVO); + } +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineService.java index 5deaf7db2..0c311c22c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineService.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapLine import com.baomidou.mybatisplus.extension.service.IService; import javax.validation.Valid; +import java.util.List; /** * 仓库点位地图连线 Service 接口 @@ -41,8 +42,24 @@ public interface PositionMapLineService extends IService { /** * 创建编辑仓库点位地图连线 * + * @param positionMapId * @param createReqVO * @return */ - Long createOrEditPositionMapLine(@Valid PositionMapLineSaveReqVO createReqVO); + void createOrEditPositionMapLine(Long positionMapId, @Valid List createReqVO); + + /** + * 根据地图id获取连线列表 + * + * @param positionMapId + * @return + */ + List getByMapId(Long positionMapId); + + /** + * 疲劳新增删除编辑 + * + * @param list + */ + void batchSaveOrEditOrDel(List> list); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineServiceImpl.java index 79f370c1d..6040d1cc1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineServiceImpl.java @@ -1,16 +1,24 @@ package cn.iocoder.yudao.module.system.service.positionmap; +import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapLinePageReqVO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapLineSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapLineDO; import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapLineMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.List; + +import static cn.hutool.core.collection.CollUtil.isNotEmpty; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; /** * 仓库点位地图连线 Service 实现类 @@ -41,14 +49,32 @@ public class PositionMapLineServiceImpl extends ServiceImpl createReqVO) { + List newList = BeanUtils.toBean(createReqVO, PositionMapLineDO.class); + List oldList = this.getByMapId(positionMapId); + List> list = CollectionUtils.diffList(oldList, newList, + (oldVal, newVal) -> ObjectUtil.equal(oldVal.getId(), newVal.getId())); + this.batchSaveOrEditOrDel(list); + } + + @Override + public List getByMapId(Long positionMapId) { + return positionMapLineMapper.selectList(new LambdaQueryWrapper() + .eq(PositionMapLineDO::getPositionMapId, positionMapId)); + } + + @Override + public void batchSaveOrEditOrDel(List> list) { + //批量添加、修改、删除 + if (isNotEmpty(list.get(0))) { + positionMapLineMapper.insertBatch(list.get(0)); + } + if (isNotEmpty(list.get(1))) { + positionMapLineMapper.updateBatch(list.get(1)); + } + if (isNotEmpty(list.get(2))) { + positionMapLineMapper.deleteByIds(convertList(list.get(2), PositionMapLineDO::getId)); } - return positionMapLine.getId(); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java index c3030f23c..5b65bbf41 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/DistributeTasksServiceImpl.java @@ -21,6 +21,8 @@ import cn.iocoder.yudao.module.system.enums.robot.*; import cn.iocoder.yudao.module.system.util.redis.RedisUtil; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -29,12 +31,12 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import java.util.stream.Collectors; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; - @Service @Slf4j public class DistributeTasksServiceImpl implements DistributeTasksService { @@ -109,7 +111,7 @@ public class DistributeTasksServiceImpl implements DistributeTasksService { @Override @Transactional(rollbackFor = Exception.class) public Pair, List> getRobotAndTaskDetails() { - Pair, List> pair = Pair.of(new ArrayList<>(), new ArrayList<>());; + Pair, List> pair = Pair.of(new ArrayList<>(), new ArrayList<>()); TenantContextHolder.setTenantId(1L); List robots = robotInformationMapper.selectList(new LambdaQueryWrapperX() .eq(RobotInformationDO::getRobotStatus, (RobotStatusEnum.STAND_BY.getType())) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/errorrecord/ErrorRecordMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/errorrecord/ErrorRecordMapper.xml new file mode 100644 index 000000000..08e0ef297 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/errorrecord/ErrorRecordMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file From adfb5dc8ba7c837e85d0fa0ba2b922b13c91e719 Mon Sep 17 00:00:00 2001 From: aikai Date: Sat, 8 Feb 2025 15:58:47 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../errorrecord/ErrorRecordController.java | 39 --------------- .../errorrecord/vo/ErrorRecordPageReqVO.java | 34 -------------- .../errorrecord/vo/ErrorRecordRespVO.java | 39 --------------- .../errorrecord/vo/ErrorRecordSaveReqVO.java | 27 ----------- .../dataobject/errorrecord/ErrorRecordDO.java | 47 ------------------- .../mysql/errorrecord/ErrorRecordMapper.java | 28 ----------- .../errorrecord/ErrorRecordService.java | 27 ----------- .../errorrecord/ErrorRecordServiceImpl.java | 34 -------------- .../mapper/errorrecord/ErrorRecordMapper.xml | 12 ----- 9 files changed, 287 deletions(-) delete mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/ErrorRecordController.java delete mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordPageReqVO.java delete mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordRespVO.java delete mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordSaveReqVO.java delete mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorrecord/ErrorRecordDO.java delete mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorrecord/ErrorRecordMapper.java delete mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordService.java delete mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordServiceImpl.java delete mode 100644 yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/errorrecord/ErrorRecordMapper.xml diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/ErrorRecordController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/ErrorRecordController.java deleted file mode 100644 index 2157efac7..000000000 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/ErrorRecordController.java +++ /dev/null @@ -1,39 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.errorrecord; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo.ErrorRecordPageReqVO; -import cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo.ErrorRecordRespVO; -import cn.iocoder.yudao.module.system.dal.dataobject.errorrecord.ErrorRecordDO; -import cn.iocoder.yudao.module.system.service.errorrecord.ErrorRecordService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import javax.validation.Valid; - -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -@Tag(name = "管理后台 - 车辆异常记录") -@RestController -@RequestMapping("/system/error-record") -@Validated -public class ErrorRecordController { - - @Resource - private ErrorRecordService errorRecordService; - - @GetMapping("/page") - @Operation(summary = "获得车辆异常记录分页") - @PreAuthorize("@ss.hasPermission('system:error-record:query')") - public CommonResult> getErrorRecordPage(@Valid ErrorRecordPageReqVO pageReqVO) { - PageResult pageResult = errorRecordService.getErrorRecordPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, ErrorRecordRespVO.class)); - } -} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordPageReqVO.java deleted file mode 100644 index 7642c1f49..000000000 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordPageReqVO.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo; - -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@Schema(description = "管理后台 - 车辆异常记录分页 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class ErrorRecordPageReqVO extends PageParam { - - @Schema(description = "AGV编号") - private String robotNo; - - @Schema(description = "告警等级(1-4)") - private Integer level; - - @Schema(description = "异常Id") - private String errCode; - - @Schema(description = "告警信息") - private String errMsg; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordRespVO.java deleted file mode 100644 index aa3572ddc..000000000 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordRespVO.java +++ /dev/null @@ -1,39 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; -import com.alibaba.excel.annotation.*; - -@Schema(description = "管理后台 - 车辆异常记录 Response VO") -@Data -@ExcelIgnoreUnannotated -public class ErrorRecordRespVO { - - @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7461") - @ExcelProperty("主键ID") - private Long id; - - @Schema(description = "AGV编号") - @ExcelProperty("AGV编号") - private String robotNo; - - @Schema(description = "告警等级(1-4)") - @ExcelProperty("告警等级(1-4)") - private Integer level; - - @Schema(description = "异常Id") - @ExcelProperty("异常Id") - private String errCode; - - @Schema(description = "告警信息") - @ExcelProperty("告警信息") - private String errMsg; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") - private LocalDateTime createTime; - -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordSaveReqVO.java deleted file mode 100644 index 8cf38e53b..000000000 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorrecord/vo/ErrorRecordSaveReqVO.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import jakarta.validation.constraints.*; - -@Schema(description = "管理后台 - 车辆异常记录新增/修改 Request VO") -@Data -public class ErrorRecordSaveReqVO { - - @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7461") - private Long id; - - @Schema(description = "AGV编号") - private String robotNo; - - @Schema(description = "告警等级(1-4)") - private Integer level; - - @Schema(description = "异常Id") - private String errCode; - - @Schema(description = "告警信息") - private String errMsg; - -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorrecord/ErrorRecordDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorrecord/ErrorRecordDO.java deleted file mode 100644 index 908e5b8af..000000000 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorrecord/ErrorRecordDO.java +++ /dev/null @@ -1,47 +0,0 @@ -package cn.iocoder.yudao.module.system.dal.dataobject.errorrecord; - -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; - -/** - * 车辆异常记录 DO - * - * @author 芋道源码 - */ -@TableName("robot_error_record") -@KeySequence("robot_error_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class ErrorRecordDO extends BaseDO { - - /** - * 主键ID - */ - @TableId - private Long id; - /** - * AGV编号 - */ - private String robotNo; - /** - * 告警等级(1-4) - */ - private Integer level; - /** - * 异常Id - */ - private String errCode; - /** - * 告警信息 - */ - private String errMsg; - -} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorrecord/ErrorRecordMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorrecord/ErrorRecordMapper.java deleted file mode 100644 index 5846a3ec6..000000000 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorrecord/ErrorRecordMapper.java +++ /dev/null @@ -1,28 +0,0 @@ -package cn.iocoder.yudao.module.system.dal.mysql.errorrecord; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo.ErrorRecordPageReqVO; -import cn.iocoder.yudao.module.system.dal.dataobject.errorrecord.ErrorRecordDO; -import org.apache.ibatis.annotations.Mapper; - -/** - * 车辆异常记录 Mapper - * - * @author 芋道源码 - */ -@Mapper -public interface ErrorRecordMapper extends BaseMapperX { - - default PageResult selectPage(ErrorRecordPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(ErrorRecordDO::getRobotNo, reqVO.getRobotNo()) - .eqIfPresent(ErrorRecordDO::getLevel, reqVO.getLevel()) - .eqIfPresent(ErrorRecordDO::getErrCode, reqVO.getErrCode()) - .eqIfPresent(ErrorRecordDO::getErrMsg, reqVO.getErrMsg()) - .betweenIfPresent(ErrorRecordDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(ErrorRecordDO::getId)); - } - -} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordService.java deleted file mode 100644 index ac46c76fb..000000000 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordService.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.iocoder.yudao.module.system.service.errorrecord; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo.ErrorRecordPageReqVO; -import cn.iocoder.yudao.module.system.dal.dataobject.errorrecord.ErrorRecordDO; - -import javax.validation.Valid; - -/** - * 车辆异常记录 Service 接口 - * - * @author 芋道源码 - */ -public interface ErrorRecordService { - /** - * 新增异常记录 - */ - void save(ErrorRecordDO errorRecordDO); - - /** - * 分页列表 - * - * @param pageReqVO - * @return - */ - PageResult getErrorRecordPage(@Valid ErrorRecordPageReqVO pageReqVO); -} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordServiceImpl.java deleted file mode 100644 index ca6918d79..000000000 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorrecord/ErrorRecordServiceImpl.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.system.service.errorrecord; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.system.controller.admin.errorrecord.vo.ErrorRecordPageReqVO; -import cn.iocoder.yudao.module.system.dal.dataobject.errorrecord.ErrorRecordDO; -import cn.iocoder.yudao.module.system.dal.mysql.errorrecord.ErrorRecordMapper; -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - -import javax.annotation.Resource; - -/** - * 车辆异常记录 Service 实现类 - * - * @author 芋道源码 - */ -@Service -@Validated -public class ErrorRecordServiceImpl implements ErrorRecordService { - - @Resource - private ErrorRecordMapper errorRecordMapper; - - - @Override - public void save(ErrorRecordDO errorRecordDO) { - errorRecordMapper.insert(errorRecordDO); - } - - @Override - public PageResult getErrorRecordPage(ErrorRecordPageReqVO pageReqVO) { - return errorRecordMapper.selectPage(pageReqVO); - } -} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/errorrecord/ErrorRecordMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/errorrecord/ErrorRecordMapper.xml deleted file mode 100644 index 08e0ef297..000000000 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/errorrecord/ErrorRecordMapper.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - \ No newline at end of file