Compare commits
No commits in common. "0edd75eabdced0a76ce120c95b73d361af06bad2" and "ccf5c1d7b531c95dd4bf6663dce9aaa514593d7d" have entirely different histories.
0edd75eabd
...
ccf5c1d7b5
@ -92,18 +92,6 @@ public class PositionMapLineDTO {
|
|||||||
@Schema(description = "膨胀区域右")
|
@Schema(description = "膨胀区域右")
|
||||||
private BigDecimal expansionZoneRight;
|
private BigDecimal expansionZoneRight;
|
||||||
|
|
||||||
@Schema(description = "起点宽")
|
|
||||||
private BigDecimal beginWidth;
|
|
||||||
|
|
||||||
@Schema(description = "起点高")
|
|
||||||
private BigDecimal beginHigh;
|
|
||||||
|
|
||||||
@Schema(description = "终点宽")
|
|
||||||
private BigDecimal endWidth;
|
|
||||||
|
|
||||||
@Schema(description = "终点高")
|
|
||||||
private BigDecimal endHigh;
|
|
||||||
|
|
||||||
@Schema(description = "车头朝向( 0:正正 1:正反 2:反正 3:反反)", example = "15890")
|
@Schema(description = "车头朝向( 0:正正 1:正反 2:反正 3:反反)", example = "15890")
|
||||||
private Integer toward;
|
private Integer toward;
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package cn.iocoder.yudao.module.system.controller.admin.bulletinboard.vo;
|
package cn.iocoder.yudao.module.system.controller.admin.bulletinboard.vo;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.DeviceStatusInfoVO;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationStatisticsVO;
|
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationStatisticsVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotWarnMsgDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotWarnMsgDO;
|
||||||
@ -23,8 +22,4 @@ public class BulletinBoardVO {
|
|||||||
private RobotInformationStatisticsVO statistics;
|
private RobotInformationStatisticsVO statistics;
|
||||||
@Schema(description = "车辆异常信息")
|
@Schema(description = "车辆异常信息")
|
||||||
private List<RobotWarnMsgDO> robotWarnMsgDOS;
|
private List<RobotWarnMsgDO> robotWarnMsgDOS;
|
||||||
@Schema(description = "车辆信息")
|
|
||||||
List<RobotElectricityLevelVO> robotElectricityLevelVOS;
|
|
||||||
@Schema(description = "设备信息")
|
|
||||||
private List<DeviceStatusInfoVO> deviceStatusInfoVOS;
|
|
||||||
}
|
}
|
||||||
|
@ -9,20 +9,8 @@ import lombok.ToString;
|
|||||||
public class RobotElectricityLevelVO {
|
public class RobotElectricityLevelVO {
|
||||||
@Schema(description = "AGV编号")
|
@Schema(description = "AGV编号")
|
||||||
private String robotNo;
|
private String robotNo;
|
||||||
@Schema(description = "设备mac地址")
|
@Schema(description = "状态")
|
||||||
private String macAddress;
|
private String status;
|
||||||
@Schema(description = "待命 0否 1是")
|
|
||||||
private Integer standby = 0;
|
|
||||||
@Schema(description = "任务中 0否 1是")
|
|
||||||
private Integer inTask = 0;
|
|
||||||
@Schema(description = "锁定 0否 1是")
|
|
||||||
private Integer doLock = 0;
|
|
||||||
@Schema(description = "离线 0否 1是")
|
|
||||||
private Integer offline = 0;
|
|
||||||
@Schema(description = "充电中 0否 1是")
|
|
||||||
private Integer charge = 0;
|
|
||||||
@Schema(description = "故障 0否 1是")
|
|
||||||
private Integer fault = 0;
|
|
||||||
@Schema(description = "电量")
|
@Schema(description = "电量")
|
||||||
private String batSoc;
|
private String batSoc;
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,8 @@ package cn.iocoder.yudao.module.system.controller.admin.housearea;
|
|||||||
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaRespVO;
|
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaRespVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLanePageReqVO;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneRespVO;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselane.WareHouseLaneDO;
|
|
||||||
import cn.iocoder.yudao.module.system.service.housearea.HouseAreaService;
|
import cn.iocoder.yudao.module.system.service.housearea.HouseAreaService;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@ -90,12 +87,4 @@ public class HouseAreaController {
|
|||||||
return success(BeanUtils.toBean(list, HouseAreaRespVO.class));
|
return success(BeanUtils.toBean(list, HouseAreaRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping("/delete")
|
|
||||||
@Operation(summary = "删除库区")
|
|
||||||
@Parameter(name = "id", description = "菜单编号", required= true, example = "1024")
|
|
||||||
public CommonResult<Boolean> delete(@RequestParam("id") Long id) {
|
|
||||||
houseAreaService.delete(id);
|
|
||||||
return success(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -28,10 +28,6 @@ public class HouseAreaRespVO {
|
|||||||
@ExcelProperty("库区说明")
|
@ExcelProperty("库区说明")
|
||||||
private String areaMsg;
|
private String areaMsg;
|
||||||
|
|
||||||
@Schema(description = "物料信息")
|
|
||||||
@ExcelProperty("物料信息")
|
|
||||||
private String skuInfo;
|
|
||||||
|
|
||||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("创建时间")
|
@ExcelProperty("创建时间")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
@ -1,15 +1,10 @@
|
|||||||
package cn.iocoder.yudao.module.system.controller.admin.houselane;
|
package cn.iocoder.yudao.module.system.controller.admin.houselane;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
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.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaPageReqVO;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaRespVO;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLanePageReqVO;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneRespVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneRespVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO;
|
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselane.WareHouseLaneDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.houselane.WareHouseLaneDO;
|
||||||
import cn.iocoder.yudao.module.system.service.houselane.WareHouseLaneService;
|
import cn.iocoder.yudao.module.system.service.houselane.WareHouseLaneService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -67,20 +62,4 @@ public class WareHouseLaneController {
|
|||||||
.orderByAsc(WareHouseLaneDO::getId));
|
.orderByAsc(WareHouseLaneDO::getId));
|
||||||
return success(BeanUtils.toBean(list, WareHouseLaneRespVO.class));
|
return success(BeanUtils.toBean(list, WareHouseLaneRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/page")
|
|
||||||
@Operation(summary = "获得线库分页")
|
|
||||||
@PreAuthorize("@ss.hasPermission('ware:house-area:query')")
|
|
||||||
public CommonResult<PageResult<WareHouseLaneRespVO>> getHouseAreaPage(@Valid WareHouseLanePageReqVO pageReqVO) {
|
|
||||||
PageResult<WareHouseLaneDO> pageResult = houseLaneService.getHouseLanePage(pageReqVO);
|
|
||||||
return success(BeanUtils.toBean(pageResult, WareHouseLaneRespVO.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping("/delete")
|
|
||||||
@Operation(summary = "删除线库")
|
|
||||||
@Parameter(name = "id", description = "菜单编号", required= true, example = "1024")
|
|
||||||
public CommonResult<Boolean> delete(@RequestParam("id") Long id) {
|
|
||||||
houseLaneService.delete(id);
|
|
||||||
return success(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
package cn.iocoder.yudao.module.system.controller.admin.positionmap;
|
package cn.iocoder.yudao.module.system.controller.admin.positionmap;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.NodeTypeEnum;
|
import cn.iocoder.yudao.framework.common.enums.NodeTypeEnum;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.NodeBaseDTO;
|
import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.NodeBaseDTO;
|
||||||
@ -21,7 +19,6 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -48,15 +45,12 @@ public class PositionMapItemController {
|
|||||||
Map<Integer, List<NodeBaseDTO>> map = nodeBaseDTOS.stream().collect(Collectors.groupingBy(NodeBaseDTO::getType));
|
Map<Integer, List<NodeBaseDTO>> map = nodeBaseDTOS.stream().collect(Collectors.groupingBy(NodeBaseDTO::getType));
|
||||||
// -- 获取到对应地图的所有点位
|
// -- 获取到对应地图的所有点位
|
||||||
List<PositionMapItemDO> oldList = positionMapItemService.getByMapId(positionMapId);
|
List<PositionMapItemDO> oldList = positionMapItemService.getByMapId(positionMapId);
|
||||||
List<PositionMapItemDO> newAllList = new ArrayList<>();
|
Map<Integer, List<PositionMapItemDO>> oldMap = oldList.stream().collect(Collectors.groupingBy(PositionMapItemDO::getType));
|
||||||
for (Integer key : NodeTypeEnum.getAllTypes()) {
|
for (Integer key : NodeTypeEnum.getAllTypes()) {
|
||||||
List<NodeBaseDTO> nodeBaseDTOList = CollectionUtil.isEmpty(map.get(key)) ? Collections.emptyList() : map.get(key);
|
List<NodeBaseDTO> nodeBaseDTOList = CollectionUtil.isEmpty(map.get(key)) ? Collections.emptyList() : map.get(key);
|
||||||
List<PositionMapItemDO> newList = nodeProcessingContext.processNodesByStrategy(positionMapId, key, nodeBaseDTOList);
|
List<PositionMapItemDO> oldItemList = CollectionUtil.isEmpty(oldMap.get(key)) ? Collections.emptyList() : oldMap.get(key);
|
||||||
newAllList.addAll(newList);
|
nodeProcessingContext.processNodesByStrategy(positionMapId, oldItemList, key, nodeBaseDTOList);
|
||||||
}
|
}
|
||||||
List<List<PositionMapItemDO>> list = CollectionUtils.compareLists(oldList, newAllList,
|
|
||||||
(oldVal, newVal) -> ObjectUtil.equal(oldVal.getId(), newVal.getId()));
|
|
||||||
positionMapItemService.batchSaveOrEditOrDel(positionMapId, list);
|
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,18 +90,6 @@ public class PositionMapLineDTO {
|
|||||||
@Schema(description = "膨胀区域右")
|
@Schema(description = "膨胀区域右")
|
||||||
private BigDecimal expansionZoneRight;
|
private BigDecimal expansionZoneRight;
|
||||||
|
|
||||||
@Schema(description = "起点宽")
|
|
||||||
private BigDecimal beginWidth;
|
|
||||||
|
|
||||||
@Schema(description = "起点高")
|
|
||||||
private BigDecimal beginHigh;
|
|
||||||
|
|
||||||
@Schema(description = "终点宽")
|
|
||||||
private BigDecimal endWidth;
|
|
||||||
|
|
||||||
@Schema(description = "终点高")
|
|
||||||
private BigDecimal endHigh;
|
|
||||||
|
|
||||||
@Schema(description = "车头朝向( 0:正正 1:正反 2:反正 3:反反)")
|
@Schema(description = "车头朝向( 0:正正 1:正反 2:反正 3:反反)")
|
||||||
private Integer toward;
|
private Integer toward;
|
||||||
}
|
}
|
||||||
|
@ -85,18 +85,6 @@ public class PositionMapLinePageReqVO extends PageParam {
|
|||||||
@Schema(description = "膨胀区域右", example = "15890")
|
@Schema(description = "膨胀区域右", example = "15890")
|
||||||
private BigDecimal expansionZoneRight;
|
private BigDecimal expansionZoneRight;
|
||||||
|
|
||||||
@Schema(description = "起点宽")
|
|
||||||
private BigDecimal beginWidth;
|
|
||||||
|
|
||||||
@Schema(description = "起点高")
|
|
||||||
private BigDecimal beginHigh;
|
|
||||||
|
|
||||||
@Schema(description = "终点宽")
|
|
||||||
private BigDecimal endWidth;
|
|
||||||
|
|
||||||
@Schema(description = "终点高")
|
|
||||||
private BigDecimal endHigh;
|
|
||||||
|
|
||||||
@Schema(description = "行走方法 0.直线 1.曲线")
|
@Schema(description = "行走方法 0.直线 1.曲线")
|
||||||
private Integer method;
|
private Integer method;
|
||||||
|
|
||||||
|
@ -94,18 +94,6 @@ public class PositionMapLineRespVO {
|
|||||||
@ExcelProperty("膨胀区域右")
|
@ExcelProperty("膨胀区域右")
|
||||||
private BigDecimal expansionZoneRight;
|
private BigDecimal expansionZoneRight;
|
||||||
|
|
||||||
@Schema(description = "起点宽")
|
|
||||||
private BigDecimal beginWidth;
|
|
||||||
|
|
||||||
@Schema(description = "起点高")
|
|
||||||
private BigDecimal beginHigh;
|
|
||||||
|
|
||||||
@Schema(description = "终点宽")
|
|
||||||
private BigDecimal endWidth;
|
|
||||||
|
|
||||||
@Schema(description = "终点高")
|
|
||||||
private BigDecimal endHigh;
|
|
||||||
|
|
||||||
@Schema(description = "行走方法 0.直线 1.曲线")
|
@Schema(description = "行走方法 0.直线 1.曲线")
|
||||||
@ExcelProperty("行走方法 0.直线 1.曲线")
|
@ExcelProperty("行走方法 0.直线 1.曲线")
|
||||||
private Integer method;
|
private Integer method;
|
||||||
|
@ -82,18 +82,6 @@ public class PositionMapLineSaveReqVO {
|
|||||||
@Schema(description = "膨胀区域右", example = "15890")
|
@Schema(description = "膨胀区域右", example = "15890")
|
||||||
private BigDecimal expansionZoneRight;
|
private BigDecimal expansionZoneRight;
|
||||||
|
|
||||||
@Schema(description = "起点宽")
|
|
||||||
private BigDecimal beginWidth;
|
|
||||||
|
|
||||||
@Schema(description = "起点高")
|
|
||||||
private BigDecimal beginHigh;
|
|
||||||
|
|
||||||
@Schema(description = "终点宽")
|
|
||||||
private BigDecimal endWidth;
|
|
||||||
|
|
||||||
@Schema(description = "终点高")
|
|
||||||
private BigDecimal endHigh;
|
|
||||||
|
|
||||||
@Schema(description = "行走方法 0.直线 1.曲线")
|
@Schema(description = "行走方法 0.直线 1.曲线")
|
||||||
private Integer method;
|
private Integer method;
|
||||||
|
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.system.controller.admin.robot.vo;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设备状态数量信息
|
|
||||||
*
|
|
||||||
* @author 艾楷
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class DeviceStatusInfoVO {
|
|
||||||
|
|
||||||
@Schema(description = "设备类型")
|
|
||||||
private Integer deviceType;
|
|
||||||
|
|
||||||
@Schema(description = "总数量")
|
|
||||||
private Integer totalNum = 0;
|
|
||||||
|
|
||||||
@Schema(description = "正常数量")
|
|
||||||
private Integer normalNum = 0;
|
|
||||||
|
|
||||||
@Schema(description = "异常数量")
|
|
||||||
private Integer abnormalNum = 0;
|
|
||||||
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.system.controller.admin.robot.vo;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class RobotInfoStatusVO {
|
|
||||||
@Schema(description = "设备mac地址")
|
|
||||||
private String macAddress;
|
|
||||||
@Schema(description = "待命 0否 1是")
|
|
||||||
private Integer standby = 0;
|
|
||||||
@Schema(description = "任务中 0否 1是")
|
|
||||||
private Integer inTask = 0;
|
|
||||||
@Schema(description = "锁定 0否 1是")
|
|
||||||
private Integer doLock = 0;
|
|
||||||
@Schema(description = "离线 0否 1是")
|
|
||||||
private Integer offline = 0;
|
|
||||||
@Schema(description = "充电中 0否 1是")
|
|
||||||
private Integer charge = 0;
|
|
||||||
@Schema(description = "故障 0否 1是")
|
|
||||||
private Integer fault = 0;
|
|
||||||
}
|
|
@ -32,7 +32,6 @@ public class PositionMapItemDO extends BaseDO {
|
|||||||
/**
|
/**
|
||||||
* 库区id
|
* 库区id
|
||||||
*/
|
*/
|
||||||
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
|
||||||
private Long areaId;
|
private Long areaId;
|
||||||
/**
|
/**
|
||||||
* 线库id
|
* 线库id
|
||||||
|
@ -122,27 +122,6 @@ public class PositionMapLineDO extends BaseDO {
|
|||||||
* 膨胀区域右
|
* 膨胀区域右
|
||||||
*/
|
*/
|
||||||
private BigDecimal expansionZoneRight;
|
private BigDecimal expansionZoneRight;
|
||||||
|
|
||||||
/**
|
|
||||||
* 起点宽
|
|
||||||
*/
|
|
||||||
private BigDecimal beginWidth;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 起点高
|
|
||||||
*/
|
|
||||||
private BigDecimal beginHigh;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 终点宽
|
|
||||||
*/
|
|
||||||
private BigDecimal endWidth;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 终点高
|
|
||||||
*/
|
|
||||||
private BigDecimal endHigh;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 行走方法 0.直线 1.曲线
|
* 行走方法 0.直线 1.曲线
|
||||||
*/
|
*/
|
||||||
|
@ -20,7 +20,6 @@ public interface WareHouseLaneMapper extends BaseMapperX<WareHouseLaneDO> {
|
|||||||
|
|
||||||
default PageResult<WareHouseLaneDO> selectPage(WareHouseLanePageReqVO reqVO) {
|
default PageResult<WareHouseLaneDO> selectPage(WareHouseLanePageReqVO reqVO) {
|
||||||
return selectPage(reqVO, new LambdaQueryWrapperX<WareHouseLaneDO>()
|
return selectPage(reqVO, new LambdaQueryWrapperX<WareHouseLaneDO>()
|
||||||
.eqIfPresent(WareHouseLaneDO::getPositionMapId, reqVO.getPositionMapId())
|
|
||||||
.likeIfPresent(WareHouseLaneDO::getLaneName, reqVO.getLaneName())
|
.likeIfPresent(WareHouseLaneDO::getLaneName, reqVO.getLaneName())
|
||||||
.eqIfPresent(WareHouseLaneDO::getLaneMsg, reqVO.getLaneMsg())
|
.eqIfPresent(WareHouseLaneDO::getLaneMsg, reqVO.getLaneMsg())
|
||||||
.betweenIfPresent(WareHouseLaneDO::getCreateTime, reqVO.getCreateTime())
|
.betweenIfPresent(WareHouseLaneDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
@ -8,7 +8,6 @@ import cn.iocoder.yudao.module.mqtt.api.task.dto.Pose2ds;
|
|||||||
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -32,7 +31,6 @@ public interface PositionMapItemMapper extends BaseMapperX<PositionMapItemDO> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据库位id查询
|
* 根据库位id查询
|
||||||
*
|
|
||||||
* @param locationId
|
* @param locationId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -40,24 +38,8 @@ public interface PositionMapItemMapper extends BaseMapperX<PositionMapItemDO> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据position_map_id 查询
|
* 根据position_map_id 查询
|
||||||
*
|
|
||||||
* @param positionMapId
|
* @param positionMapId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<PositionMapItemSynDTO> getAllByMapId(Long positionMapId);
|
List<PositionMapItemSynDTO> getAllByMapId(Long positionMapId);
|
||||||
|
|
||||||
/**
|
|
||||||
* 将areaId设为空
|
|
||||||
*
|
|
||||||
* @param mapId
|
|
||||||
* @param areaId
|
|
||||||
*/
|
|
||||||
void emptyAreaId(@Param("mapId") Long mapId, @Param("areaId") Long areaId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将laneId设为空
|
|
||||||
* @param mapId
|
|
||||||
* @param laneId
|
|
||||||
*/
|
|
||||||
void emptyLaneId(@Param("mapId") Long mapId, @Param("laneId") Long laneId);
|
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,10 @@ import org.springframework.stereotype.Component;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class NodeProcessingContext {
|
public class NodeProcessingContext {
|
||||||
@ -54,14 +57,18 @@ public class NodeProcessingContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public List<PositionMapItemDO> processNodesByStrategy(Long positionMapId, int key, List<NodeBaseDTO> nodeBaseDTOS) {
|
public void processNodesByStrategy(Long positionMapId, List<PositionMapItemDO> oldItemList, int key, List<NodeBaseDTO> nodeBaseDTOS) {
|
||||||
// -- 获取对应的策略 - 如果没有对应的直接 return
|
// -- 获取对应的策略 - 如果没有对应的直接 return
|
||||||
NodeProcessingStrategy strategy = strategyMap.get(key);
|
NodeProcessingStrategy strategy = strategyMap.get(key);
|
||||||
if (strategy == null) {
|
if (strategy == null) {
|
||||||
return Collections.emptyList();
|
return;
|
||||||
}
|
}
|
||||||
// 策略模式 策略实现 - 组装好数据后返回给上一层
|
// 策略模式 策略实现
|
||||||
strategy.processNodes(positionMapId, nodeBaseDTOS);
|
strategy.processNodes(positionMapId, nodeBaseDTOS);
|
||||||
return BeanUtil.copyToList(nodeBaseDTOS, PositionMapItemDO.class);
|
|
||||||
|
List<PositionMapItemDO> newList = BeanUtil.copyToList(nodeBaseDTOS, PositionMapItemDO.class);
|
||||||
|
List<List<PositionMapItemDO>> list = CollectionUtils.compareLists(oldItemList, newList,
|
||||||
|
(oldVal, newVal) -> ObjectUtil.equal(oldVal.getId(), newVal.getId()));
|
||||||
|
positionMapItemService.batchSaveOrEditOrDel(positionMapId, list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,8 +24,6 @@ public class DeviceStrategyImpl implements NodeProcessingStrategy {
|
|||||||
// -- 策略3 处理设备点
|
// -- 策略3 处理设备点
|
||||||
// -- 将data里面的json 数据转为实体类 - 再对比节点id - 然后做新增删除修改操作
|
// -- 将data里面的json 数据转为实体类 - 再对比节点id - 然后做新增删除修改操作
|
||||||
List<DeviceInformationDO> newList = new ArrayList<>();
|
List<DeviceInformationDO> newList = new ArrayList<>();
|
||||||
// -- 拿到这个地图所绑定的设备 -
|
|
||||||
List<DeviceInformationDO> oldList = deviceInformationService.getDeviceInfoBindByMapId(positionMapId);
|
|
||||||
nodeBaseDTOS.forEach(item -> {
|
nodeBaseDTOS.forEach(item -> {
|
||||||
if (item.getId() == null) {
|
if (item.getId() == null) {
|
||||||
item.setId(getId());
|
item.setId(getId());
|
||||||
@ -36,14 +34,16 @@ public class DeviceStrategyImpl implements NodeProcessingStrategy {
|
|||||||
deviceInformationDO.setLocationY(item.getLocationY());
|
deviceInformationDO.setLocationY(item.getLocationY());
|
||||||
deviceInformationDO.setActualLocationX(item.getActualLocationX());
|
deviceInformationDO.setActualLocationX(item.getActualLocationX());
|
||||||
deviceInformationDO.setActualLocationY(item.getActualLocationY());
|
deviceInformationDO.setActualLocationY(item.getActualLocationY());
|
||||||
|
|
||||||
deviceInformationDO.setPositionMapId(positionMapId);
|
deviceInformationDO.setPositionMapId(positionMapId);
|
||||||
deviceInformationDO.setPositionMapItemId(item.getId());
|
deviceInformationDO.setPositionMapItemId(item.getId());
|
||||||
newList.add(deviceInformationDO);
|
newList.add(deviceInformationDO);
|
||||||
item.setDataJson(JSONUtil.toJsonStr(deviceInformationDO));
|
item.setDataJson(JSONUtil.toJsonStr(deviceInformationDO));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
List<DeviceInformationDO> oldList = deviceInformationService.getByMapId(positionMapId);
|
||||||
List<List<DeviceInformationDO>> list = CollectionUtils.compareLists(oldList, newList,
|
List<List<DeviceInformationDO>> list = CollectionUtils.compareLists(oldList, newList,
|
||||||
(oldVal, newVal) -> ObjectUtil.equal(oldVal.getId(), newVal.getId()));
|
(oldVal, newVal) -> ObjectUtil.equal(oldVal.getId(), newVal.getId()));
|
||||||
deviceInformationService.batchEditOrDel(list);
|
deviceInformationService.batchSaveOrEditOrDel(positionMapId, list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package cn.iocoder.yudao.module.system.service.bulletinboard;
|
package cn.iocoder.yudao.module.system.service.bulletinboard;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
@ -10,15 +9,11 @@ import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant;
|
|||||||
import cn.iocoder.yudao.module.system.controller.admin.bulletinboard.vo.BulletinBoardVO;
|
import cn.iocoder.yudao.module.system.controller.admin.bulletinboard.vo.BulletinBoardVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.bulletinboard.vo.RobotElectricityLevelVO;
|
import cn.iocoder.yudao.module.system.controller.admin.bulletinboard.vo.RobotElectricityLevelVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.bulletinboard.vo.TaskStatusVO;
|
import cn.iocoder.yudao.module.system.controller.admin.bulletinboard.vo.TaskStatusVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.DeviceStatusInfoVO;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInfoStatusVO;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationStatisticsVO;
|
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationStatisticsVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO;
|
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotInformationDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotInformationDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotWarnMsgDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotWarnMsgDO;
|
||||||
import cn.iocoder.yudao.module.system.enums.robot.RobotTaskDetailStatusEnum;
|
import cn.iocoder.yudao.module.system.enums.robot.RobotTaskDetailStatusEnum;
|
||||||
import cn.iocoder.yudao.module.system.service.information.DeviceInformationService;
|
|
||||||
import cn.iocoder.yudao.module.system.service.robot.RobotInformationService;
|
import cn.iocoder.yudao.module.system.service.robot.RobotInformationService;
|
||||||
import cn.iocoder.yudao.module.system.service.robot.RobotTaskService;
|
import cn.iocoder.yudao.module.system.service.robot.RobotTaskService;
|
||||||
import cn.iocoder.yudao.module.system.service.robot.RobotWarnMsgService;
|
import cn.iocoder.yudao.module.system.service.robot.RobotWarnMsgService;
|
||||||
@ -31,7 +26,6 @@ import java.time.LocalDateTime;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -50,8 +44,6 @@ public class BulletinBoardServiceImpl implements BulletinBoardService {
|
|||||||
private RobotInformationService robotInformationService;
|
private RobotInformationService robotInformationService;
|
||||||
@Resource
|
@Resource
|
||||||
private RedisUtil redisUtil;
|
private RedisUtil redisUtil;
|
||||||
@Resource
|
|
||||||
private DeviceInformationService deviceInformationService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BulletinBoardVO getBulletinBoard() {
|
public BulletinBoardVO getBulletinBoard() {
|
||||||
@ -102,49 +94,21 @@ public class BulletinBoardServiceImpl implements BulletinBoardService {
|
|||||||
vo.setStatistics(statisticsVO);
|
vo.setStatistics(statisticsVO);
|
||||||
// 车辆异常信息
|
// 车辆异常信息
|
||||||
vo.setRobotWarnMsgDOS(robotWarnMsgDOS);
|
vo.setRobotWarnMsgDOS(robotWarnMsgDOS);
|
||||||
|
|
||||||
List<RobotElectricityLevelVO> robotElectricityLevelVOS = new ArrayList<>();
|
List<RobotElectricityLevelVO> robotElectricityLevelVOS = new ArrayList<>();
|
||||||
List<RobotInformationDO> allRobot = robotInformationService.getAllRobot();
|
List<RobotInformationDO> allRobot = robotInformationService.getAllRobot();
|
||||||
List<RobotInfoStatusVO> agvListStatusInfo = robotInformationService.getAGVListStatusInfo();
|
|
||||||
Map<String, RobotInfoStatusVO> map = agvListStatusInfo.stream().collect(Collectors.toMap(RobotInfoStatusVO::getMacAddress, Function.identity()));
|
|
||||||
for (RobotInformationDO robotInformationDO : allRobot) {
|
for (RobotInformationDO robotInformationDO : allRobot) {
|
||||||
String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC + robotInformationDO.getMacAddress();
|
String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC + robotInformationDO.getMacAddress();
|
||||||
Object object = redisUtil.get(pose2dKey);
|
Object object = redisUtil.get(pose2dKey);
|
||||||
RobotStatusDataPoseDTO robotStatusDataPoseDTO = JSONUtil.toBean((String) object, RobotStatusDataPoseDTO.class);
|
RobotStatusDataPoseDTO robotStatusDataPoseDTO = JSONUtil.toBean((String) object, RobotStatusDataPoseDTO.class);
|
||||||
if (robotStatusDataPoseDTO != null) {
|
if (robotStatusDataPoseDTO != null) {
|
||||||
RobotElectricityLevelVO robotElectricityLevelVO = new RobotElectricityLevelVO();
|
RobotElectricityLevelVO robotElectricityLevelVO = new RobotElectricityLevelVO();
|
||||||
//todo 这里缺少一个状态
|
|
||||||
RobotInfoStatusVO item = map.get(robotInformationDO.getMacAddress());
|
|
||||||
if (item != null) {
|
|
||||||
BeanUtil.copyProperties(item, robotElectricityLevelVO);
|
|
||||||
}
|
|
||||||
robotElectricityLevelVO.setRobotNo(robotInformationDO.getRobotNo());
|
robotElectricityLevelVO.setRobotNo(robotInformationDO.getRobotNo());
|
||||||
robotElectricityLevelVO.setBatSoc(robotStatusDataPoseDTO.getBat_soc());
|
robotElectricityLevelVO.setBatSoc(robotStatusDataPoseDTO.getBat_soc());
|
||||||
robotElectricityLevelVOS.add(robotElectricityLevelVO);
|
robotElectricityLevelVOS.add(robotElectricityLevelVO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vo.setRobotElectricityLevelVOS(robotElectricityLevelVOS);
|
return null;
|
||||||
// - 获取所有设备
|
|
||||||
List<DeviceInformationDO> deviceInformationDOS = deviceInformationService.list();
|
|
||||||
//根据设备类型分组
|
|
||||||
Map<Integer, List<DeviceInformationDO>> deviceMap = deviceInformationDOS.stream().collect(Collectors.groupingBy(DeviceInformationDO::getDeviceType));
|
|
||||||
List<DeviceStatusInfoVO> deviceStatusInfoVOS = new ArrayList<>();
|
|
||||||
for (Map.Entry<Integer, List<DeviceInformationDO>> entry : deviceMap.entrySet()) {
|
|
||||||
Integer deviceType = entry.getKey();
|
|
||||||
DeviceStatusInfoVO deviceStatusInfoVO = new DeviceStatusInfoVO();
|
|
||||||
deviceStatusInfoVO.setDeviceType(deviceType);
|
|
||||||
List<DeviceInformationDO> deviceInformationDOList = entry.getValue();
|
|
||||||
if (CollectionUtil.isEmpty(deviceInformationDOList)) {
|
|
||||||
deviceStatusInfoVOS.add(deviceStatusInfoVO);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
deviceStatusInfoVO.setTotalNum(deviceInformationDOList.size());
|
|
||||||
long count = deviceInformationDOList.stream().filter(a -> a.getDeviceStatus().equals(3)).count();
|
|
||||||
deviceStatusInfoVO.setNormalNum((int) count);
|
|
||||||
deviceStatusInfoVO.setAbnormalNum(deviceStatusInfoVO.getTotalNum() - deviceStatusInfoVO.getNormalNum());
|
|
||||||
deviceStatusInfoVOS.add(deviceStatusInfoVO);
|
|
||||||
}
|
|
||||||
vo.setDeviceStatusInfoVOS(deviceStatusInfoVOS);
|
|
||||||
return vo;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
|
||||||
@ -172,9 +171,7 @@ public class DictDataServiceImpl implements DictDataService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DictDataDO> getDictDataListByDictType(String dictType) {
|
public List<DictDataDO> getDictDataListByDictType(String dictType) {
|
||||||
List<DictDataDO> list = dictDataMapper.selectList(new LambdaQueryWrapperX<DictDataDO>()
|
List<DictDataDO> list = dictDataMapper.selectList(DictDataDO::getDictType, dictType);
|
||||||
.eq(DictDataDO::getDictType, dictType)
|
|
||||||
.eq(DictDataDO::getStatus, CommonStatusEnum.ENABLE.getStatus()));
|
|
||||||
list.sort(Comparator.comparing(DictDataDO::getSort));
|
list.sort(Comparator.comparing(DictDataDO::getSort));
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|||||||
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -14,7 +13,7 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author 陈宾顺
|
* @author 陈宾顺
|
||||||
*/
|
*/
|
||||||
public interface HouseAreaService extends IService<HouseAreaDO> {
|
public interface HouseAreaService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建库区
|
* 创建库区
|
||||||
@ -63,15 +62,7 @@ public interface HouseAreaService extends IService<HouseAreaDO> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得全部库区
|
* 获得全部库区
|
||||||
*
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<HouseAreaDO> getHouseAreaList(Long positionMapId);
|
List<HouseAreaDO> getHouseAreaList(Long positionMapId);
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除库区
|
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
*/
|
|
||||||
void delete(Long id);
|
|
||||||
}
|
}
|
||||||
|
@ -18,9 +18,7 @@ import cn.iocoder.yudao.module.system.dal.mysql.housearea.HouseAreaMapper;
|
|||||||
import cn.iocoder.yudao.module.system.service.houselocation.HouseLocationService;
|
import cn.iocoder.yudao.module.system.service.houselocation.HouseLocationService;
|
||||||
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService;
|
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@ -40,7 +38,7 @@ import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.THERE_ARE_
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
public class HouseAreaServiceImpl extends ServiceImpl<HouseAreaMapper, HouseAreaDO> implements HouseAreaService {
|
public class HouseAreaServiceImpl implements HouseAreaService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private HouseAreaMapper houseAreaMapper;
|
private HouseAreaMapper houseAreaMapper;
|
||||||
@ -68,7 +66,6 @@ public class HouseAreaServiceImpl extends ServiceImpl<HouseAreaMapper, HouseArea
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public void deleteHouseArea(Long id) {
|
public void deleteHouseArea(Long id) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateHouseAreaExists(id);
|
validateHouseAreaExists(id);
|
||||||
@ -93,7 +90,6 @@ public class HouseAreaServiceImpl extends ServiceImpl<HouseAreaMapper, HouseArea
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public void createOrEditOrDel(HouseAreaSaveReqVO createReqVO) {
|
public void createOrEditOrDel(HouseAreaSaveReqVO createReqVO) {
|
||||||
HouseAreaDO houseArea = BeanUtil.copyProperties(createReqVO, HouseAreaDO.class);
|
HouseAreaDO houseArea = BeanUtil.copyProperties(createReqVO, HouseAreaDO.class);
|
||||||
houseAreaMapper.insertOrUpdate(houseArea);
|
houseAreaMapper.insertOrUpdate(houseArea);
|
||||||
@ -166,14 +162,4 @@ public class HouseAreaServiceImpl extends ServiceImpl<HouseAreaMapper, HouseArea
|
|||||||
.orderByAsc(HouseAreaDO::getId));
|
.orderByAsc(HouseAreaDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public void delete(Long id) {
|
|
||||||
HouseAreaDO areaDO = this.getById(id);
|
|
||||||
this.removeById(id);
|
|
||||||
//获取当前库区所对应的地图
|
|
||||||
// 点位中包含库区id的数据设为null
|
|
||||||
positionMapItemService.emptyAreaId(areaDO.getPositionMapId(), id);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -39,9 +39,4 @@ public interface WareHouseLaneService extends IService<WareHouseLaneDO> {
|
|||||||
*/
|
*/
|
||||||
void createOrEditOrDel(@Valid WareHouseLaneSaveReqVO createReqVO);
|
void createOrEditOrDel(@Valid WareHouseLaneSaveReqVO createReqVO);
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除线库
|
|
||||||
* @param id
|
|
||||||
*/
|
|
||||||
void delete(Long id);
|
|
||||||
}
|
}
|
||||||
|
@ -7,11 +7,9 @@ import cn.hutool.json.JSONUtil;
|
|||||||
import cn.iocoder.yudao.framework.common.enums.NodeTypeEnum;
|
import cn.iocoder.yudao.framework.common.enums.NodeTypeEnum;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLanePageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLanePageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.PositionMapConditionDTO;
|
import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.PositionMapConditionDTO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO;
|
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselane.WareHouseLaneDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.houselane.WareHouseLaneDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO;
|
||||||
@ -144,13 +142,4 @@ public class WareHouseLaneServiceImpl extends ServiceImpl<WareHouseLaneMapper, W
|
|||||||
houseLocationService.updateBatchById(wareHouseLocationList);
|
houseLocationService.updateBatchById(wareHouseLocationList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public void delete(Long id) {
|
|
||||||
WareHouseLaneDO wareHouseLaneDO = this.getById(id);
|
|
||||||
this.removeById(id);
|
|
||||||
// 点位中包含线库id的数据设为null
|
|
||||||
positionMapItemService.emptyLaneId(wareHouseLaneDO.getPositionMapId(), id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,6 @@ import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseLocationM
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@ -36,7 +35,6 @@ public class HouseLocationServiceImpl extends ServiceImpl<WareHouseLocationMappe
|
|||||||
private WareHouseLocationMapper houseLocationMapper;
|
private WareHouseLocationMapper houseLocationMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public Long createHouseLocation(WareHouseLocationSaveReqVO createReqVO) {
|
public Long createHouseLocation(WareHouseLocationSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
WareHouseLocationDO houseLocation = BeanUtils.toBean(createReqVO, WareHouseLocationDO.class);
|
WareHouseLocationDO houseLocation = BeanUtils.toBean(createReqVO, WareHouseLocationDO.class);
|
||||||
@ -46,7 +44,6 @@ public class HouseLocationServiceImpl extends ServiceImpl<WareHouseLocationMappe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public void updateHouseLocation(WareHouseLocationSaveReqVO updateReqVO) {
|
public void updateHouseLocation(WareHouseLocationSaveReqVO updateReqVO) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateHouseLocationExists(updateReqVO.getId());
|
validateHouseLocationExists(updateReqVO.getId());
|
||||||
@ -56,7 +53,6 @@ public class HouseLocationServiceImpl extends ServiceImpl<WareHouseLocationMappe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public void deleteHouseLocation(Long id) {
|
public void deleteHouseLocation(Long id) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateHouseLocationExists(id);
|
validateHouseLocationExists(id);
|
||||||
@ -93,7 +89,6 @@ public class HouseLocationServiceImpl extends ServiceImpl<WareHouseLocationMappe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public void batchSaveOrEditOrDel(Long positionMapId, List<List<WareHouseLocationDO>> list) {
|
public void batchSaveOrEditOrDel(Long positionMapId, List<List<WareHouseLocationDO>> list) {
|
||||||
//批量添加、修改、删除
|
//批量添加、修改、删除
|
||||||
if (isNotEmpty(list.get(0))) {
|
if (isNotEmpty(list.get(0))) {
|
||||||
|
@ -7,7 +7,6 @@ import cn.iocoder.yudao.module.system.controller.admin.information.dto.Statistic
|
|||||||
import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationPageReqVO;
|
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.controller.admin.information.vo.DeviceInformationSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -18,7 +17,7 @@ import java.util.Map;
|
|||||||
*
|
*
|
||||||
* @author 陈宾顺
|
* @author 陈宾顺
|
||||||
*/
|
*/
|
||||||
public interface DeviceInformationService extends IService<DeviceInformationDO> {
|
public interface DeviceInformationService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建设备信息
|
* 创建设备信息
|
||||||
@ -61,9 +60,10 @@ public interface DeviceInformationService extends IService<DeviceInformationDO>
|
|||||||
/**
|
/**
|
||||||
* 批量新增删除修改
|
* 批量新增删除修改
|
||||||
*
|
*
|
||||||
|
* @param positionMapId
|
||||||
* @param list
|
* @param list
|
||||||
*/
|
*/
|
||||||
void batchEditOrDel(List<List<DeviceInformationDO>> list);
|
void batchSaveOrEditOrDel(Long positionMapId, List<List<DeviceInformationDO>> list);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过地图id获取设备列表
|
* 通过地图id获取设备列表
|
||||||
@ -90,31 +90,20 @@ public interface DeviceInformationService extends IService<DeviceInformationDO>
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得设备信息分类列表
|
* 获得设备信息分类列表
|
||||||
*
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Map<Integer, List<DeviceInformationDO>> classification();
|
Map<Integer, List<DeviceInformationDO>> classification();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计设备
|
* 统计设备
|
||||||
*
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<StatisticsInformationDTO> getDeviceNumber();
|
List<StatisticsInformationDTO> getDeviceNumber();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查看全部设备
|
* 查看全部设备
|
||||||
*
|
|
||||||
* @param pageReqVO
|
* @param pageReqVO
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<DeviceInformationDO> getInformationList(@Valid DeviceInformationPageReqVO pageReqVO);
|
List<DeviceInformationDO> getInformationList(@Valid DeviceInformationPageReqVO pageReqVO);
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取设备信息 通过地图id - 并且设备有绑定具体点位 即点位id不为空
|
|
||||||
*
|
|
||||||
* @param positionMapId
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
List<DeviceInformationDO> getDeviceInfoBindByMapId(Long positionMapId);
|
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.grpc.api.GrpcServiceApi;
|
||||||
import cn.iocoder.yudao.module.system.constant.device.DeviceChcheConstant;
|
import cn.iocoder.yudao.module.system.constant.device.DeviceChcheConstant;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.information.dto.DeviceInformationDTO;
|
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.dto.MapBindDeviceInfoDTO;
|
||||||
@ -12,13 +13,13 @@ import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInfo
|
|||||||
import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.information.vo.DeviceInformationSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.mysql.config.CommonConfigMapper;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.information.DeviceInformationMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.information.DeviceInformationMapper;
|
||||||
import cn.iocoder.yudao.module.system.enums.device.DeviceStatusEnum;
|
import cn.iocoder.yudao.module.system.enums.device.DeviceStatusEnum;
|
||||||
import cn.iocoder.yudao.module.system.enums.device.PictureConfigEnum;
|
import cn.iocoder.yudao.module.system.enums.device.PictureConfigEnum;
|
||||||
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
||||||
import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
|
import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -32,6 +33,7 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
import static cn.hutool.core.collection.CollUtil.isNotEmpty;
|
import static cn.hutool.core.collection.CollUtil.isNotEmpty;
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
||||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.INFORMATION_MAC_EXIST;
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.INFORMATION_MAC_EXIST;
|
||||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.INFORMATION_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.INFORMATION_NOT_EXISTS;
|
||||||
|
|
||||||
@ -43,7 +45,7 @@ import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.INFORMATIO
|
|||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationMapper, DeviceInformationDO> implements DeviceInformationService {
|
public class DeviceInformationServiceImpl implements DeviceInformationService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DeviceInformationMapper informationMapper;
|
private DeviceInformationMapper informationMapper;
|
||||||
@ -51,14 +53,18 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
@Resource
|
@Resource
|
||||||
private DictDataService dictDataService;
|
private DictDataService dictDataService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private GrpcServiceApi grpcServiceApi;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RedisUtil redisUtil;
|
private RedisUtil redisUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createInformation(DeviceInformationSaveReqVO createReqVO) {
|
public Long createInformation(DeviceInformationSaveReqVO createReqVO) {
|
||||||
// -- 先判断库里是否有相通的mac地址数据
|
DeviceInformationPageReqVO pageReqVO = new DeviceInformationPageReqVO();
|
||||||
long count = this.count(new LambdaQueryWrapper<DeviceInformationDO>().eq(DeviceInformationDO::getMacAddress, createReqVO.getMacAddress()));
|
pageReqVO.setMacAddress(createReqVO.getMacAddress());
|
||||||
if (count > 0L) {
|
PageResult<DeviceInformationDO> pageResult = informationMapper.selectPage(pageReqVO);
|
||||||
|
if (ObjectUtil.isNotEmpty(pageResult.getList())) {
|
||||||
throw exception(INFORMATION_MAC_EXIST);
|
throw exception(INFORMATION_MAC_EXIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,7 +123,7 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
// 校验存在
|
// 校验存在
|
||||||
validateInformationExists(id);
|
validateInformationExists(id);
|
||||||
DeviceInformationDO deviceInformationDO = informationMapper.selectById(id);
|
DeviceInformationDO deviceInformationDO = informationMapper.selectById(id);
|
||||||
String deviceKey = DeviceChcheConstant.DEVICE_LAST_TIME + deviceInformationDO.getMacAddress();
|
String deviceKey = DeviceChcheConstant.DEVICE_LAST_TIME +deviceInformationDO.getMacAddress();
|
||||||
Object object = redisUtil.get(deviceKey);
|
Object object = redisUtil.get(deviceKey);
|
||||||
if (ObjectUtil.isEmpty(object)) {
|
if (ObjectUtil.isEmpty(object)) {
|
||||||
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.OFF_LINE.getType());
|
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.OFF_LINE.getType());
|
||||||
@ -125,11 +131,11 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
LocalDateTime curTimeLDT = LocalDateTime.parse((String) object, df);
|
LocalDateTime curTimeLDT = LocalDateTime.parse((String)object, df);
|
||||||
deviceInformationDO.setDeviceLastTime(curTimeLDT);
|
deviceInformationDO.setDeviceLastTime(curTimeLDT);
|
||||||
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.ON_LINE.getType());
|
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.ON_LINE.getType());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("查询设备最后通讯时间异常 :{}", e.getMessage());
|
log.info("查询设备最后通讯时间异常 :{}",e.getMessage());
|
||||||
}
|
}
|
||||||
return deviceInformationDO;
|
return deviceInformationDO;
|
||||||
}
|
}
|
||||||
@ -141,19 +147,16 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void batchEditOrDel(List<List<DeviceInformationDO>> list) {
|
public void batchSaveOrEditOrDel(Long positionMapId, List<List<DeviceInformationDO>> list) {
|
||||||
//批量添加、修改、删除
|
//批量添加、修改、删除
|
||||||
List<DeviceInformationDO> editList = new ArrayList<>();
|
if (isNotEmpty(list.get(0))) {
|
||||||
if (isNotEmpty(list.get(0)) || isNotEmpty(list.get(1))) {
|
informationMapper.insertBatch(list.get(0));
|
||||||
editList.addAll(list.get(0));
|
}
|
||||||
editList.addAll(list.get(1));
|
if (isNotEmpty(list.get(1))) {
|
||||||
|
informationMapper.updateBatch(list.get(1));
|
||||||
}
|
}
|
||||||
if (isNotEmpty(list.get(2))) {
|
if (isNotEmpty(list.get(2))) {
|
||||||
list.get(2).forEach(a -> a.setPositionMapItemId(null));
|
informationMapper.deleteByIds(convertList(list.get(2), DeviceInformationDO::getId));
|
||||||
editList.addAll(list.get(2));
|
|
||||||
}
|
|
||||||
if (isNotEmpty(editList)){
|
|
||||||
informationMapper.updateBatch(editList);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +179,6 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得设备信息分类列表
|
* 获得设备信息分类列表
|
||||||
*
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@ -188,7 +190,7 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
|
|
||||||
// todo 需要设置设备通讯的时间
|
// todo 需要设置设备通讯的时间
|
||||||
for (DeviceInformationDO deviceInformationDO : deviceInformationDOS) {
|
for (DeviceInformationDO deviceInformationDO : deviceInformationDOS) {
|
||||||
String deviceKey = DeviceChcheConstant.DEVICE_LAST_TIME + deviceInformationDO.getMacAddress();
|
String deviceKey = DeviceChcheConstant.DEVICE_LAST_TIME +deviceInformationDO.getMacAddress();
|
||||||
Object object = redisUtil.get(deviceKey);
|
Object object = redisUtil.get(deviceKey);
|
||||||
if (ObjectUtil.isEmpty(object)) {
|
if (ObjectUtil.isEmpty(object)) {
|
||||||
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.OFF_LINE.getType());
|
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.OFF_LINE.getType());
|
||||||
@ -196,11 +198,11 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
LocalDateTime curTimeLDT = LocalDateTime.parse((String) object, df);
|
LocalDateTime curTimeLDT = LocalDateTime.parse((String)object, df);
|
||||||
deviceInformationDO.setDeviceLastTime(curTimeLDT);
|
deviceInformationDO.setDeviceLastTime(curTimeLDT);
|
||||||
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.ON_LINE.getType());
|
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.ON_LINE.getType());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("查询设备最后通讯时间异常 :{}", e.getMessage());
|
log.info("查询设备最后通讯时间异常 :{}",e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,8 +211,8 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
.collect(Collectors.groupingBy(DeviceInformationDO::getDeviceType));
|
.collect(Collectors.groupingBy(DeviceInformationDO::getDeviceType));
|
||||||
|
|
||||||
ArrayList<Map.Entry<Integer, List<DeviceInformationDO>>> list = new ArrayList<Map.Entry<Integer, List<DeviceInformationDO>>>(collect.entrySet());
|
ArrayList<Map.Entry<Integer, List<DeviceInformationDO>>> list = new ArrayList<Map.Entry<Integer, List<DeviceInformationDO>>>(collect.entrySet());
|
||||||
Collections.sort(list, new Comparator<Map.Entry<Integer, List<DeviceInformationDO>>>() {
|
Collections.sort(list, new Comparator<Map.Entry<Integer, List<DeviceInformationDO>>>() {
|
||||||
public int compare(Map.Entry<Integer, List<DeviceInformationDO>> o1, Map.Entry<Integer, List<DeviceInformationDO>> o2) {
|
public int compare(Map.Entry<Integer, List<DeviceInformationDO>> o1, Map.Entry<Integer, List<DeviceInformationDO>> o2) {
|
||||||
return o1.getKey().compareTo(o2.getKey()); // 按照值排序
|
return o1.getKey().compareTo(o2.getKey()); // 按照值排序
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -220,7 +222,6 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计设备
|
* 统计设备
|
||||||
*
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@ -260,7 +261,7 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
|
|
||||||
// todo 需要设置设备通讯的时间
|
// todo 需要设置设备通讯的时间
|
||||||
for (DeviceInformationDO deviceInformationDO : deviceInformationDOS) {
|
for (DeviceInformationDO deviceInformationDO : deviceInformationDOS) {
|
||||||
String deviceKey = DeviceChcheConstant.DEVICE_LAST_TIME + deviceInformationDO.getMacAddress();
|
String deviceKey = DeviceChcheConstant.DEVICE_LAST_TIME +deviceInformationDO.getMacAddress();
|
||||||
Object object = redisUtil.get(deviceKey);
|
Object object = redisUtil.get(deviceKey);
|
||||||
if (ObjectUtil.isEmpty(object)) {
|
if (ObjectUtil.isEmpty(object)) {
|
||||||
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.OFF_LINE.getType());
|
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.OFF_LINE.getType());
|
||||||
@ -268,24 +269,17 @@ public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationM
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
LocalDateTime curTimeLDT = LocalDateTime.parse((String) object, df);
|
LocalDateTime curTimeLDT = LocalDateTime.parse((String)object, df);
|
||||||
deviceInformationDO.setDeviceLastTime(curTimeLDT);
|
deviceInformationDO.setDeviceLastTime(curTimeLDT);
|
||||||
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.ON_LINE.getType());
|
deviceInformationDO.setDeviceStatus(DeviceStatusEnum.ON_LINE.getType());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("查询设备最后通讯时间异常 :{}", e.getMessage());
|
log.info("查询设备最后通讯时间异常 :{}",e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return deviceInformationDOS;
|
return deviceInformationDOS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<DeviceInformationDO> getDeviceInfoBindByMapId(Long positionMapId) {
|
|
||||||
return informationMapper.selectList(new LambdaQueryWrapperX<DeviceInformationDO>()
|
|
||||||
.eq(DeviceInformationDO::getPositionMapId, positionMapId)
|
|
||||||
.isNotNull(DeviceInformationDO::getPositionMapItemId));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mapBindDeviceInfo(MapBindDeviceInfoDTO dto) {
|
public void mapBindDeviceInfo(MapBindDeviceInfoDTO dto) {
|
||||||
DeviceInformationDO deviceInformationDO = informationMapper.selectById(dto.getDeviceInfoId());
|
DeviceInformationDO deviceInformationDO = informationMapper.selectById(dto.getDeviceInfoId());
|
||||||
|
@ -77,19 +77,4 @@ public interface PositionMapItemService extends IService<PositionMapItemDO> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<PositionMapItemDO> getByCondition(PositionMapConditionDTO positionMapConditionDTO);
|
List<PositionMapItemDO> getByCondition(PositionMapConditionDTO positionMapConditionDTO);
|
||||||
|
|
||||||
/**
|
|
||||||
* 清空areaId
|
|
||||||
*
|
|
||||||
* @param mapId
|
|
||||||
* @param areaId
|
|
||||||
*/
|
|
||||||
void emptyAreaId(Long mapId, Long areaId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 清空laneId
|
|
||||||
* @param mapId
|
|
||||||
* @param laneId
|
|
||||||
*/
|
|
||||||
void emptyLaneId(Long mapId, Long laneId);
|
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,6 @@ import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItem
|
|||||||
import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapItemMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapItemMapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@ -70,7 +69,6 @@ public class PositionMapItemServiceImpl extends ServiceImpl<PositionMapItemMappe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public void batchSaveOrEditOrDel(Long positionMapId, List<List<PositionMapItemDO>> list) {
|
public void batchSaveOrEditOrDel(Long positionMapId, List<List<PositionMapItemDO>> list) {
|
||||||
//批量添加、修改、删除
|
//批量添加、修改、删除
|
||||||
if (isNotEmpty(list.get(0))) {
|
if (isNotEmpty(list.get(0))) {
|
||||||
@ -97,15 +95,5 @@ public class PositionMapItemServiceImpl extends ServiceImpl<PositionMapItemMappe
|
|||||||
.eqIfPresent(PositionMapItemDO::getLaneId, dto.getLaneId()));
|
.eqIfPresent(PositionMapItemDO::getLaneId, dto.getLaneId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void emptyAreaId(Long positionMapId, Long areaId) {
|
|
||||||
positionMapItemMapper.emptyAreaId(positionMapId, areaId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void emptyLaneId(Long mapId, Long laneId) {
|
|
||||||
positionMapItemMapper.emptyLaneId(mapId, laneId);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -63,12 +63,6 @@ public interface RobotInformationService extends IService<RobotInformationDO> {
|
|||||||
*/
|
*/
|
||||||
RobotInformationStatisticsVO statisticsInformation();
|
RobotInformationStatisticsVO statisticsInformation();
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取所有AGV状态
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
List<RobotInfoStatusVO> getAGVListStatusInfo();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询能正常使用的车辆
|
* 查询能正常使用的车辆
|
||||||
*
|
*
|
||||||
|
@ -344,48 +344,6 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<RobotInfoStatusVO> getAGVListStatusInfo() {
|
|
||||||
List<RobotInfoStatusVO> list = new ArrayList<>();
|
|
||||||
// -- 先从缓存中 获取AGV状态信息 - 如果没有的话 - 再从数据库中获取 - 并且缓存到redis中
|
|
||||||
List<RobotInformationDO> robotInformationDO = informationMapper.selectList();
|
|
||||||
if (robotInformationDO == null) {
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
for (RobotInformationDO informationDO : robotInformationDO) {
|
|
||||||
RobotInfoStatusVO vo = new RobotInfoStatusVO();
|
|
||||||
//0:待命、1:任务中、2:锁定、3:离线、4:充电中、5:故障
|
|
||||||
String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC + informationDO.getMacAddress();
|
|
||||||
Object object = redisUtil.get(pose2dKey);
|
|
||||||
if (ObjectUtil.isEmpty(object)) {
|
|
||||||
//离线
|
|
||||||
vo.setOffline(1);
|
|
||||||
}
|
|
||||||
if (RobotTaskModelEnum.REJECTION.getType().equals(informationDO.getRobotTaskModel())) {
|
|
||||||
//锁定
|
|
||||||
vo.setDoLock(1);
|
|
||||||
}
|
|
||||||
//设置异常
|
|
||||||
String errorLevelKey = RobotTaskChcheConstant.ROBOT_ERROR_LEVEL + informationDO.getMacAddress();
|
|
||||||
Object errorLevel = redisUtil.get(errorLevelKey);
|
|
||||||
if (ObjectUtil.isNotEmpty(errorLevel) && Integer.parseInt(errorLevel.toString()) >= 3) {
|
|
||||||
vo.setFault(1);
|
|
||||||
}
|
|
||||||
if (RobotStatusEnum.STAND_BY.getType().equals(informationDO.getRobotStatus())) {
|
|
||||||
//待命中
|
|
||||||
vo.setStandby(1);
|
|
||||||
} else if (RobotStatusEnum.CHARGE.getType().equals(informationDO.getRobotStatus())) {
|
|
||||||
//充电中
|
|
||||||
vo.setCharge(1);
|
|
||||||
} else {
|
|
||||||
//任务中
|
|
||||||
vo.setInTask(1);
|
|
||||||
}
|
|
||||||
list.add(vo);
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@ -267,18 +267,6 @@
|
|||||||
</set>
|
</set>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
<update id="emptyAreaId">
|
|
||||||
update ware_position_map_item
|
|
||||||
set area_id = null
|
|
||||||
where position_map_id = #{mapId}
|
|
||||||
and area_id = #{areaId}
|
|
||||||
</update>
|
|
||||||
<update id="emptyLaneId">
|
|
||||||
update ware_position_map_item
|
|
||||||
set lane_id = null
|
|
||||||
where position_map_id = #{mapId}
|
|
||||||
and lane_id = #{laneId}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<!--通过主键删除-->
|
<!--通过主键删除-->
|
||||||
<delete id="deleteById">
|
<delete id="deleteById">
|
||||||
|
Loading…
Reference in New Issue
Block a user