设备添加取放货点
This commit is contained in:
parent
d5d0f5bdcb
commit
035c8d6096
@ -338,4 +338,7 @@ public interface ErrorCodeConstants {
|
||||
|
||||
//========== 车辆行走路线耗时记录 1_002_061_001 ==========
|
||||
ErrorCode TASK_LINE_TIME_CONSUMING_NOT_EXISTS = new ErrorCode(1_002_061_001, "车辆行走路线耗时记录不存在");
|
||||
|
||||
// ========== 取货点位 1_002_062_001 ==========
|
||||
ErrorCode HOUSE_TAKE_POINT_NOT_EXISTS = new ErrorCode(1_002_062_001, "取货点位不存在");
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.common.util.date.DateUtils;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
||||
import cn.iocoder.yudao.module.infra.api.websocket.WebSocketSenderApi;
|
||||
import cn.iocoder.yudao.module.mqtt.api.common.CommonApi;
|
||||
import cn.iocoder.yudao.module.system.api.path.vo.RobotClosePathPlantingDTO;
|
||||
import cn.iocoder.yudao.module.system.api.robot.dto.FloorZoneDTO;
|
||||
import cn.iocoder.yudao.module.system.api.robot.dto.RobotCommandStateDTO;
|
||||
@ -16,7 +15,6 @@ import cn.iocoder.yudao.module.system.api.robot.websocket.WsWareHouseLocationDTO
|
||||
import cn.iocoder.yudao.module.system.config.mqtt.util.MqttUtils;
|
||||
import cn.iocoder.yudao.module.system.config.poperties.ZnConfigConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.CommonConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.area.FloorAreaConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.path.PathPlanningChcheConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.path.PathPlanningTopicConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.robot.RobotExecutionStateConstant;
|
||||
@ -38,7 +36,7 @@ import cn.iocoder.yudao.module.system.enums.robot.actionlog.ActionStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.charge.ChargeTaskStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.RobotStatusCodeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.RobotTaskStageEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.event.RobotTaskEventTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.event.EventTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.mq.message.task.TaskDistributionMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.producer.task.TaskDistributionProducer;
|
||||
import cn.iocoder.yudao.module.system.service.information.DeviceInformationService;
|
||||
@ -52,7 +50,6 @@ import com.alibaba.fastjson.JSON;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -63,8 +60,6 @@ import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import static cn.iocoder.yudao.module.system.service.robot.RobotInformationServiceImpl.key;
|
||||
|
||||
@Slf4j
|
||||
@RestController // 提供 RESTful API 接口,给 Feign 调用
|
||||
@Validated
|
||||
@ -286,7 +281,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
addTaskDetailActionDoneLog(robotCompleteTaskDTO, robotTaskDetail);
|
||||
|
||||
TaskDistributionMessage mess = new TaskDistributionMessage(this, robotCompleteTaskDTO.getOrderId() + "",
|
||||
RobotTaskEventTypeEnum.DONE.getType());
|
||||
EventTypeEnum.TASK_DONE.getType());
|
||||
taskDistributionProducer.sendSmsSendMessage(mess);
|
||||
}
|
||||
|
||||
|
@ -7,20 +7,18 @@ import cn.iocoder.yudao.module.system.constant.robot.RobotExecutionStateConstant
|
||||
import cn.iocoder.yudao.module.system.controller.admin.log.vo.RobotOperationLogSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDetailDO;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotTaskDetailMapper;
|
||||
import cn.iocoder.yudao.module.system.enums.common.ZeroOneEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.path.PathIsReachEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.CommandTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.RobotTaskDetailStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.RobotTaskTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.RobotTaskStageEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.WorkProgressEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.event.RobotTaskEventTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.event.EventTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.mq.message.task.TaskDistributionMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.producer.task.TaskDistributionProducer;
|
||||
import cn.iocoder.yudao.module.system.service.log.RobotOperationLogService;
|
||||
import cn.iocoder.yudao.module.system.service.path.PathPlanningService;
|
||||
import cn.iocoder.yudao.module.system.service.robot.RobotInformationService;
|
||||
import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -71,7 +69,7 @@ public class RobotWorkStatusApiImpl implements RobotWorkStatusApi {
|
||||
operationLogService.createOperationLog(createReqVO);
|
||||
|
||||
TaskDistributionMessage mess = new TaskDistributionMessage(this,message,
|
||||
RobotTaskEventTypeEnum.TIME.getType());
|
||||
EventTypeEnum.TASK_TIME.getType());
|
||||
taskDistributionProducer.sendSmsSendMessage(mess);
|
||||
|
||||
if ((CommandTypeEnum.WORK_PICK_UP_GOODS_MOVE_TO_CHECK.getType().equals(data.getCommandType())
|
||||
|
@ -0,0 +1,105 @@
|
||||
package cn.iocoder.yudao.module.system.controller.admin.houselocation;
|
||||
|
||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseTakePointPageReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseTakePointRespVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseTakePointSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseTakePointDO;
|
||||
import cn.iocoder.yudao.module.system.service.houselocation.WareHouseTakePointService;
|
||||
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 javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
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.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
|
||||
@RequestMapping("/system/ware/house-take-point")
|
||||
@Validated
|
||||
public class WareHouseTakePointController {
|
||||
|
||||
@Resource
|
||||
private WareHouseTakePointService houseTakePointService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建取货点位")
|
||||
@PreAuthorize("@ss.hasPermission('ware:house-take-point:create')")
|
||||
public CommonResult<Long> createHouseTakePoint(@Valid @RequestBody WareHouseTakePointSaveReqVO createReqVO) {
|
||||
return success(houseTakePointService.createHouseTakePoint(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新取货点位")
|
||||
@PreAuthorize("@ss.hasPermission('ware:house-take-point:update')")
|
||||
public CommonResult<Boolean> updateHouseTakePoint(@Valid @RequestBody WareHouseTakePointSaveReqVO updateReqVO) {
|
||||
houseTakePointService.updateHouseTakePoint(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除取货点位")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('ware:house-take-point:delete')")
|
||||
public CommonResult<Boolean> deleteHouseTakePoint(@RequestParam("id") Long id) {
|
||||
houseTakePointService.deleteHouseTakePoint(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得取货点位")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('ware:house-take-point:query')")
|
||||
public CommonResult<WareHouseTakePointRespVO> getHouseTakePoint(@RequestParam("id") Long id) {
|
||||
WareHouseTakePointDO houseTakePoint = houseTakePointService.getHouseTakePoint(id);
|
||||
return success(BeanUtils.toBean(houseTakePoint, WareHouseTakePointRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得取货点位分页")
|
||||
@PreAuthorize("@ss.hasPermission('ware:house-take-point:query')")
|
||||
public CommonResult<PageResult<WareHouseTakePointRespVO>> getHouseTakePointPage(@Valid WareHouseTakePointPageReqVO pageReqVO) {
|
||||
PageResult<WareHouseTakePointDO> pageResult = houseTakePointService.getHouseTakePointPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, WareHouseTakePointRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得取货点位集合")
|
||||
@PreAuthorize("@ss.hasPermission('ware:house-take-point:list')")
|
||||
public CommonResult<List<WareHouseTakePointRespVO>> getHouseTakePointList() {
|
||||
List<WareHouseTakePointDO> list = houseTakePointService.getHouseTakePointList();
|
||||
return success(BeanUtils.toBean(list, WareHouseTakePointRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出取货点位 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('ware:house-take-point:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportHouseTakePointExcel(@Valid WareHouseTakePointPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<WareHouseTakePointDO> list = houseTakePointService.getHouseTakePointPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "取货点位.xls", "数据", WareHouseTakePointRespVO.class,
|
||||
BeanUtils.toBean(list, WareHouseTakePointRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package cn.iocoder.yudao.module.system.controller.admin.houselocation.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import java.math.BigDecimal;
|
||||
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 WareHouseTakePointPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "点位类型名称", example = "李四")
|
||||
private String pointName;
|
||||
|
||||
@Schema(description = "点位类型(备用)", example = "2")
|
||||
private Integer pointType;
|
||||
|
||||
@Schema(description = "总高度")
|
||||
private BigDecimal totalHeight;
|
||||
|
||||
@Schema(description = "托盘高度")
|
||||
private BigDecimal trayHeight;
|
||||
|
||||
@Schema(description = "点位状态, 0:空闲, 1:有货", example = "2")
|
||||
private Integer pointStatus;
|
||||
|
||||
@Schema(description = "地图id", example = "25285")
|
||||
private Long positionMapId;
|
||||
|
||||
@Schema(description = "地图字表节点id", example = "527")
|
||||
private Long positionMapItemId;
|
||||
|
||||
@Schema(description = "实际坐标x轴")
|
||||
private String actualLocationX;
|
||||
|
||||
@Schema(description = "实际坐标y轴")
|
||||
private String actualLocationY;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package cn.iocoder.yudao.module.system.controller.admin.houselocation.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 取货点位 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class WareHouseTakePointRespVO {
|
||||
|
||||
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11573")
|
||||
@ExcelProperty("主键ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "点位类型名称", example = "李四")
|
||||
@ExcelProperty("点位类型名称")
|
||||
private String pointName;
|
||||
|
||||
@Schema(description = "点位类型(备用)", example = "2")
|
||||
@ExcelProperty("点位类型(备用)")
|
||||
private Integer pointType;
|
||||
|
||||
@Schema(description = "总高度")
|
||||
@ExcelProperty("总高度")
|
||||
private BigDecimal totalHeight;
|
||||
|
||||
@Schema(description = "托盘高度")
|
||||
@ExcelProperty("托盘高度")
|
||||
private BigDecimal trayHeight;
|
||||
|
||||
@Schema(description = "点位状态, 0:空闲, 1:有货", example = "2")
|
||||
@ExcelProperty("点位状态, 0:空闲, 1:有货")
|
||||
private Integer pointStatus;
|
||||
|
||||
@Schema(description = "地图id", example = "25285")
|
||||
@ExcelProperty("地图id")
|
||||
private Long positionMapId;
|
||||
|
||||
@Schema(description = "地图字表节点id", example = "527")
|
||||
@ExcelProperty("地图字表节点id")
|
||||
private Long positionMapItemId;
|
||||
|
||||
@Schema(description = "实际坐标x轴")
|
||||
@ExcelProperty("实际坐标x轴")
|
||||
private String actualLocationX;
|
||||
|
||||
@Schema(description = "实际坐标y轴")
|
||||
@ExcelProperty("实际坐标y轴")
|
||||
private String actualLocationY;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package cn.iocoder.yudao.module.system.controller.admin.houselocation.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Schema(description = "管理后台 - 取货点位新增/修改 Request VO")
|
||||
@Data
|
||||
public class WareHouseTakePointSaveReqVO {
|
||||
|
||||
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11573")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "点位类型名称", example = "李四")
|
||||
private String pointName;
|
||||
|
||||
@Schema(description = "点位类型(备用)", example = "2")
|
||||
private Integer pointType;
|
||||
|
||||
@Schema(description = "总高度")
|
||||
private BigDecimal totalHeight;
|
||||
|
||||
@Schema(description = "托盘高度")
|
||||
private BigDecimal trayHeight;
|
||||
|
||||
@Schema(description = "点位状态, 0:空闲, 1:有货", example = "2")
|
||||
private Integer pointStatus;
|
||||
|
||||
@Schema(description = "地图id", example = "25285")
|
||||
private Long positionMapId;
|
||||
|
||||
@Schema(description = "地图字表节点id", example = "527")
|
||||
private Long positionMapItemId;
|
||||
|
||||
@Schema(description = "实际坐标x轴")
|
||||
private String actualLocationX;
|
||||
|
||||
@Schema(description = "实际坐标y轴")
|
||||
private String actualLocationY;
|
||||
|
||||
}
|
@ -41,7 +41,7 @@ public class DeviceInformationPageReqVO extends PageParam {
|
||||
@Schema(description = "深度")
|
||||
private BigDecimal locationDeep;
|
||||
|
||||
//1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机, 9:摄像头
|
||||
//1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机, 9:摄像头,10 :翻转机
|
||||
@Schema(description = "设备类型 字典device_type", example = "2")
|
||||
private Integer deviceType;
|
||||
|
||||
@ -101,4 +101,7 @@ public class DeviceInformationPageReqVO extends PageParam {
|
||||
@Schema(description = "摄像头编号")
|
||||
private String cameraCode;
|
||||
|
||||
@Schema(description = "ware_house_take_point的id")
|
||||
private Long takePointId;
|
||||
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ public class DeviceInformationRespVO {
|
||||
@ExcelProperty("深度")
|
||||
private BigDecimal locationDeep;
|
||||
|
||||
//1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机, 9:摄像头
|
||||
//1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机, 9:摄像头,10 :翻转机
|
||||
@Schema(description = "设备类型 字典device_type", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty("设备类型 字典device_type")
|
||||
private Integer deviceType;
|
||||
@ -135,4 +135,8 @@ public class DeviceInformationRespVO {
|
||||
@Schema(description = "摄像头编号")
|
||||
@ExcelProperty("摄像头编号")
|
||||
private String cameraCode;
|
||||
|
||||
@Schema(description = "ware_house_take_point的id")
|
||||
@ExcelProperty("ware_house_take_point的id")
|
||||
private Long takePointId;
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ public class DeviceInformationSaveReqVO {
|
||||
@Schema(description = "深度")
|
||||
private BigDecimal locationDeep;
|
||||
|
||||
//1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机 9:摄像头
|
||||
//1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机 9:摄像头,10 :翻转机
|
||||
@Schema(description = "设备类型 字典device_type", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@NotNull(message = "设备类型不能为空")
|
||||
private Integer deviceType;
|
||||
@ -100,4 +100,7 @@ public class DeviceInformationSaveReqVO {
|
||||
|
||||
@Schema(description = "摄像头编号")
|
||||
private String cameraCode;
|
||||
|
||||
@Schema(description = "ware_house_take_point的id")
|
||||
private Long takePointId;
|
||||
}
|
||||
|
@ -18,13 +18,14 @@ import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMa
|
||||
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapLineSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapLineDO;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.event.EventTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.handler.mapnode.NodeProcessingContext;
|
||||
import cn.iocoder.yudao.module.system.mq.message.map.MapMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.producer.map.MapProducer;
|
||||
import cn.iocoder.yudao.module.system.service.log.UserOperationLogService;
|
||||
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService;
|
||||
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapLineService;
|
||||
import cn.iocoder.yudao.module.system.service.robot.RobotTaskService;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@ -43,6 +44,7 @@ import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Slf4j
|
||||
@Tag(name = "管理后台 - 仓库点位地图子表")
|
||||
@RestController
|
||||
@ -66,7 +68,7 @@ public class PositionMapItemController {
|
||||
private RobotTaskService taskService;
|
||||
|
||||
@Resource
|
||||
private PathApi pathApi;
|
||||
private MapProducer mapProducer;
|
||||
|
||||
// -- 前端给所有的节点信息 -
|
||||
@PostMapping("/batchSaveOrEditOrDel")
|
||||
@ -93,7 +95,9 @@ public class PositionMapItemController {
|
||||
.nickName(SecurityFrameworkUtils.getLoginUserNickname()).build();
|
||||
userOperationLogService.createUserOperationLog(operationLog);
|
||||
|
||||
pathApi.pathInitData();
|
||||
MapMessage mes = new MapMessage(this, positionMapId + "",
|
||||
EventTypeEnum.MAP_UPDATE.getType());
|
||||
mapProducer.sendSmsSendMessage(mes);
|
||||
|
||||
return success(true);
|
||||
}
|
||||
@ -139,7 +143,7 @@ public class PositionMapItemController {
|
||||
@PostMapping("/lineAddItem")
|
||||
@Operation(summary = "线上加点保存点位")
|
||||
@PreAuthorize("@ss.hasPermission('system:position-map-item:lineAddItem')")
|
||||
public CommonResult<Map<String,Object>> lineAddItem(@Valid @RequestBody List<PositionMapItemNodeDTO> list) {
|
||||
public CommonResult<Map<String, Object>> lineAddItem(@Valid @RequestBody List<PositionMapItemNodeDTO> list) {
|
||||
|
||||
PositionMapItemSaveReqVO positionMapItem = BeanUtils.toBean(list.get(0), PositionMapItemSaveReqVO.class);
|
||||
positionMapItemService.createPositionMapItem(positionMapItem);
|
||||
@ -153,7 +157,7 @@ public class PositionMapItemController {
|
||||
itemIds.add(positionMapLineDO.getEndPointId());
|
||||
}
|
||||
|
||||
Map<Long,Long> sortNumMap = positionMapItemService.getSortNumMapByIds(itemIds);
|
||||
Map<Long, Long> sortNumMap = positionMapItemService.getSortNumMapByIds(itemIds);
|
||||
|
||||
for (PositionMapLineDO positionMapLineDO : lineList) {
|
||||
positionMapLineDO.setPositionMapId(positionMapItem.getPositionMapId());
|
||||
@ -161,9 +165,9 @@ public class PositionMapItemController {
|
||||
positionMapLineDO.setEndPointSortNum(sortNumMap.get(positionMapLineDO.getEndPointId()).intValue());
|
||||
}
|
||||
positionMapLineService.batchSaveLines(lineList);
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("ITEM",positionMapItemService.getPositionMapItem(positionMapItem.getId()));
|
||||
map.put("LINE",lineList);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("ITEM", positionMapItemService.getPositionMapItem(positionMapItem.getId()));
|
||||
map.put("LINE", lineList);
|
||||
return success(map);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,69 @@
|
||||
package cn.iocoder.yudao.module.system.dal.dataobject.houselocation;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
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("ware_house_take_point")
|
||||
@KeySequence("ware_house_take_point_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class WareHouseTakePointDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 点位类型名称
|
||||
*/
|
||||
private String pointName;
|
||||
/**
|
||||
* 点位类型(备用)
|
||||
*/
|
||||
private Integer pointType;
|
||||
/**
|
||||
* 总高度
|
||||
*/
|
||||
private BigDecimal totalHeight;
|
||||
/**
|
||||
* 托盘高度
|
||||
*/
|
||||
private BigDecimal trayHeight;
|
||||
/**
|
||||
* 点位状态, 0:空闲, 1:有货
|
||||
*/
|
||||
private Integer pointStatus;
|
||||
/**
|
||||
* 地图id
|
||||
*/
|
||||
private Long positionMapId;
|
||||
/**
|
||||
* 地图字表节点id
|
||||
*/
|
||||
private Long positionMapItemId;
|
||||
/**
|
||||
* 实际坐标x轴
|
||||
*/
|
||||
private String actualLocationX;
|
||||
/**
|
||||
* 实际坐标y轴
|
||||
*/
|
||||
private String actualLocationY;
|
||||
|
||||
}
|
@ -67,7 +67,7 @@ public class DeviceInformationDO extends BaseDO {
|
||||
*/
|
||||
private BigDecimal locationDeep;
|
||||
/**
|
||||
* 1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机, 9:摄像头
|
||||
* 1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机, 9:摄像头 ,10 :翻转机
|
||||
* 设备类型 字典device_type
|
||||
*/
|
||||
private Integer deviceType;
|
||||
@ -144,4 +144,9 @@ public class DeviceInformationDO extends BaseDO {
|
||||
* 摄像头编号
|
||||
*/
|
||||
private String cameraCode;
|
||||
|
||||
/**
|
||||
* ware_house_take_point的id
|
||||
*/
|
||||
private Long takePointId;
|
||||
}
|
||||
|
@ -0,0 +1,35 @@
|
||||
package cn.iocoder.yudao.module.system.dal.mysql.houselocation;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseTakePointPageReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseTakePointDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 取货点位 Mapper
|
||||
*
|
||||
* @author 陈宾顺
|
||||
*/
|
||||
@Mapper
|
||||
public interface WareHouseTakePointMapper extends BaseMapperX<WareHouseTakePointDO> {
|
||||
|
||||
default PageResult<WareHouseTakePointDO> selectPage(WareHouseTakePointPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<WareHouseTakePointDO>()
|
||||
.likeIfPresent(WareHouseTakePointDO::getPointName, reqVO.getPointName())
|
||||
.eqIfPresent(WareHouseTakePointDO::getPointType, reqVO.getPointType())
|
||||
.eqIfPresent(WareHouseTakePointDO::getTotalHeight, reqVO.getTotalHeight())
|
||||
.eqIfPresent(WareHouseTakePointDO::getTrayHeight, reqVO.getTrayHeight())
|
||||
.eqIfPresent(WareHouseTakePointDO::getPointStatus, reqVO.getPointStatus())
|
||||
.eqIfPresent(WareHouseTakePointDO::getPositionMapId, reqVO.getPositionMapId())
|
||||
.eqIfPresent(WareHouseTakePointDO::getPositionMapItemId, reqVO.getPositionMapItemId())
|
||||
.eqIfPresent(WareHouseTakePointDO::getActualLocationX, reqVO.getActualLocationX())
|
||||
.eqIfPresent(WareHouseTakePointDO::getActualLocationY, reqVO.getActualLocationY())
|
||||
.betweenIfPresent(WareHouseTakePointDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(WareHouseTakePointDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -15,7 +15,8 @@ public enum DeviceTypeEnum {
|
||||
SIGNAL_LIGHT(6, "信号灯"),
|
||||
BUTTON_BOX(7, "按钮盒"),
|
||||
DISMANTLING_MACHINE(8, "拆垛机"),
|
||||
CAMERA(9, "摄像头");
|
||||
CAMERA(9, "摄像头"),
|
||||
FLIP(10, "翻转机");
|
||||
|
||||
/**
|
||||
* 类型
|
||||
@ -41,6 +42,8 @@ public enum DeviceTypeEnum {
|
||||
return 10;
|
||||
}if (BUTTON_BOX.type.equals(type)) {
|
||||
return 11;
|
||||
}if (FLIP.type.equals(type)) {
|
||||
return 14;
|
||||
}else {
|
||||
return 12;
|
||||
}
|
||||
|
@ -5,10 +5,11 @@ import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum RobotTaskEventTypeEnum {
|
||||
DISTRIBUTION("DISTRIBUTION","任务分配"),
|
||||
DONE("DONE","任务完成"),
|
||||
TIME("TIME","统计时间");
|
||||
public enum EventTypeEnum {
|
||||
TASK_DISTRIBUTION("DISTRIBUTION","任务分配"),
|
||||
TASK_DONE("DONE","任务完成"),
|
||||
TASK_TIME("TIME","统计时间"),
|
||||
MAP_UPDATE("MAP_UPDATE","修改地图");
|
||||
/**
|
||||
* 类型
|
||||
*/
|
@ -0,0 +1,38 @@
|
||||
package cn.iocoder.yudao.module.system.mq.consumer.map;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.module.system.api.path.PathApi;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO;
|
||||
import cn.iocoder.yudao.module.system.enums.device.DeviceTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.event.EventTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.mq.message.map.MapMessage;
|
||||
import cn.iocoder.yudao.module.system.service.information.DeviceInformationService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class MapConsumer {
|
||||
|
||||
@Resource
|
||||
private PathApi pathApi;
|
||||
|
||||
@Resource
|
||||
private DeviceInformationService informationService;
|
||||
|
||||
//更新翻转机
|
||||
@EventListener
|
||||
@Async
|
||||
public void onMessage(MapMessage message) {
|
||||
if (EventTypeEnum.MAP_UPDATE.getType().equals(message.getEventType())) {
|
||||
pathApi.pathInitData();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
package cn.iocoder.yudao.module.system.mq.consumer.remote;
|
||||
|
||||
import cn.iocoder.yudao.module.system.mq.message.RemoteSendMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.message.remote.RemoteSendMessage;
|
||||
import cn.iocoder.yudao.module.system.service.remote.RemoteControllerInformationService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.event.EventListener;
|
||||
|
@ -1,6 +1,5 @@
|
||||
package cn.iocoder.yudao.module.system.mq.consumer.task;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.common.util.date.DateUtils;
|
||||
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
||||
import cn.iocoder.yudao.module.system.api.robot.vo.RobotWorkStatusDTO;
|
||||
@ -13,7 +12,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDetailDO;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.CommandTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.RobotTaskTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.WorkProgressEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.event.RobotTaskEventTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.event.EventTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.mq.message.task.TaskDistributionMessage;
|
||||
import cn.iocoder.yudao.module.system.service.log.RobotTaskTimeConsumingService;
|
||||
import cn.iocoder.yudao.module.system.service.robot.RobotTaskDetailService;
|
||||
@ -31,8 +30,6 @@ import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
@ -58,7 +55,7 @@ public class TaskDistributionConsumer {
|
||||
public void onMessage(TaskDistributionMessage message) {
|
||||
log.info("111111, 任务 : {}", JSON.toJSONString(message));
|
||||
TenantContextHolder.setTenantId(1L);
|
||||
if (RobotTaskEventTypeEnum.DISTRIBUTION.getType().equals(message.getEventType())) {
|
||||
if (EventTypeEnum.TASK_DISTRIBUTION.getType().equals(message.getEventType())) {
|
||||
RobotTaskDetailDO taskDetail = robotTaskDetailService.getTaskDetail(Long.valueOf(message.getMessage()));
|
||||
robotWorkingHoursStatisticsService.createFreeTime(taskDetail.getRobotNo());
|
||||
RobotTaskDO task = taskService.getTask(taskDetail.getRobotTaskId());
|
||||
@ -71,10 +68,10 @@ public class TaskDistributionConsumer {
|
||||
.setToLocationNo(taskDetail.getToLocationNo())
|
||||
.setRobotNo(taskDetail.getRobotNo());
|
||||
robotTaskTimeConsumingService.createRobotTaskTimeConsuming(data);
|
||||
} else if (RobotTaskEventTypeEnum.TIME.getType().equals(message.getEventType())) {
|
||||
} else if (EventTypeEnum.TASK_TIME.getType().equals(message.getEventType())) {
|
||||
RobotWorkStatusDTO data = JSON.parseObject(message.getMessage(), RobotWorkStatusDTO.class);
|
||||
addTaskTimeLog(data);
|
||||
} else if (RobotTaskEventTypeEnum.DONE.getType().equals(message.getEventType())) {
|
||||
} else if (EventTypeEnum.TASK_DONE.getType().equals(message.getEventType())) {
|
||||
String orderId = message.getMessage();
|
||||
String endTime = DateUtils.getYearMonthDayHourMinuteSecon();
|
||||
try {
|
||||
|
@ -0,0 +1,22 @@
|
||||
package cn.iocoder.yudao.module.system.mq.message.map;
|
||||
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
public class MapMessage extends ApplicationEvent {
|
||||
|
||||
private String msg;
|
||||
private String eventType;
|
||||
public MapMessage(Object source, String msg,String eventType) {
|
||||
super(source);
|
||||
this.msg = msg;
|
||||
this.eventType = eventType;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public String getEventType() {
|
||||
return eventType;
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package cn.iocoder.yudao.module.system.mq.message;
|
||||
package cn.iocoder.yudao.module.system.mq.message.remote;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
@ -0,0 +1,21 @@
|
||||
package cn.iocoder.yudao.module.system.mq.producer.map;
|
||||
|
||||
import cn.iocoder.yudao.module.system.mq.message.map.MapMessage;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class MapProducer {
|
||||
|
||||
@Resource
|
||||
private ApplicationContext applicationContext;
|
||||
|
||||
public void sendSmsSendMessage(MapMessage message) {
|
||||
applicationContext.publishEvent(message);
|
||||
}
|
||||
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
package cn.iocoder.yudao.module.system.mq.producer.remote;
|
||||
|
||||
import cn.iocoder.yudao.module.system.mq.message.RemoteSendMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.message.remote.RemoteSendMessage;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
@ -1,6 +1,5 @@
|
||||
package cn.iocoder.yudao.module.system.mq.producer.task;
|
||||
|
||||
import cn.iocoder.yudao.module.system.mq.message.RemoteSendMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.message.task.TaskDistributionMessage;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
@ -0,0 +1,59 @@
|
||||
package cn.iocoder.yudao.module.system.service.houselocation;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
|
||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseTakePointPageReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseTakePointSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseTakePointDO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 取货点位 Service 接口
|
||||
*
|
||||
* @author 陈宾顺
|
||||
*/
|
||||
public interface WareHouseTakePointService extends IService<WareHouseTakePointDO> {
|
||||
|
||||
/**
|
||||
* 创建取货点位
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createHouseTakePoint(@Valid WareHouseTakePointSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新取货点位
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateHouseTakePoint(@Valid WareHouseTakePointSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除取货点位
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteHouseTakePoint(Long id);
|
||||
|
||||
/**
|
||||
* 获得取货点位
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 取货点位
|
||||
*/
|
||||
WareHouseTakePointDO getHouseTakePoint(Long id);
|
||||
|
||||
/**
|
||||
* 获得取货点位分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 取货点位分页
|
||||
*/
|
||||
PageResult<WareHouseTakePointDO> getHouseTakePointPage(WareHouseTakePointPageReqVO pageReqVO);
|
||||
|
||||
List<WareHouseTakePointDO> getHouseTakePointList();
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package cn.iocoder.yudao.module.system.service.houselocation;
|
||||
|
||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseTakePointPageReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseTakePointSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseTakePointDO;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseTakePointMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.HOUSE_TAKE_POINT_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
* 取货点位 Service 实现类
|
||||
*
|
||||
* @author 陈宾顺
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class WareHouseTakePointServiceImpl extends ServiceImpl<WareHouseTakePointMapper, WareHouseTakePointDO> implements WareHouseTakePointService {
|
||||
|
||||
@Resource
|
||||
private WareHouseTakePointMapper houseTakePointMapper;
|
||||
|
||||
@Override
|
||||
public Long createHouseTakePoint(WareHouseTakePointSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
WareHouseTakePointDO houseTakePoint = BeanUtils.toBean(createReqVO, WareHouseTakePointDO.class);
|
||||
houseTakePointMapper.insert(houseTakePoint);
|
||||
// 返回
|
||||
return houseTakePoint.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateHouseTakePoint(WareHouseTakePointSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateHouseTakePointExists(updateReqVO.getId());
|
||||
// 更新
|
||||
WareHouseTakePointDO updateObj = BeanUtils.toBean(updateReqVO, WareHouseTakePointDO.class);
|
||||
houseTakePointMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteHouseTakePoint(Long id) {
|
||||
// 校验存在
|
||||
validateHouseTakePointExists(id);
|
||||
// 删除
|
||||
houseTakePointMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateHouseTakePointExists(Long id) {
|
||||
if (houseTakePointMapper.selectById(id) == null) {
|
||||
throw exception(HOUSE_TAKE_POINT_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public WareHouseTakePointDO getHouseTakePoint(Long id) {
|
||||
return houseTakePointMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<WareHouseTakePointDO> getHouseTakePointPage(WareHouseTakePointPageReqVO pageReqVO) {
|
||||
return houseTakePointMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WareHouseTakePointDO> getHouseTakePointList() {
|
||||
return houseTakePointMapper.selectList();
|
||||
}
|
||||
|
||||
}
|
@ -11,7 +11,7 @@ import cn.iocoder.yudao.module.system.api.remote.dto.RemoteTaskTransferDTO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.remote.vo.RemoteControllerInformationPageReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.remote.vo.RemoteControllerInformationSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.remote.RemoteControllerInformationDO;
|
||||
import cn.iocoder.yudao.module.system.mq.message.RemoteSendMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.message.remote.RemoteSendMessage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
|
||||
|
@ -2,8 +2,6 @@ package cn.iocoder.yudao.module.system.service.remote;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import cn.iocoder.yudao.module.mqtt.api.common.CommonApi;
|
||||
import cn.iocoder.yudao.module.mqtt.api.path.dto.PathPosedsDTO;
|
||||
import cn.iocoder.yudao.module.mqtt.api.path.dto.PathToRobotDTO;
|
||||
import cn.iocoder.yudao.module.mqtt.api.path.dto.remote.RemotePathPlanningDTO;
|
||||
import cn.iocoder.yudao.module.mqtt.api.path.dto.remote.RobotModeDTO;
|
||||
@ -29,7 +27,6 @@ import cn.iocoder.yudao.module.system.dal.dataobject.log.RobotTaskDetailActionLo
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.remote.RemoteControllerInformationDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotInformationDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotMapStopDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDetailDO;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.config.CommonConfigMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.remote.RemoteControllerInformationMapper;
|
||||
@ -45,7 +42,7 @@ import cn.iocoder.yudao.module.system.enums.robot.remote.RemoteOperationModeEnum
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.RobotCommandTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.RobotTaskManualInterventionEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.RobotTaskStageEnum;
|
||||
import cn.iocoder.yudao.module.system.mq.message.RemoteSendMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.message.remote.RemoteSendMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.producer.remote.RemoteControllerProducer;
|
||||
import cn.iocoder.yudao.module.system.service.log.RobotTaskDetailActionLogService;
|
||||
import cn.iocoder.yudao.module.system.service.log.UserOperationLogService;
|
||||
|
@ -9,7 +9,6 @@ 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.util.MyBatisUtils;
|
||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import cn.iocoder.yudao.module.mqtt.api.common.CommonApi;
|
||||
import cn.iocoder.yudao.module.mqtt.api.task.dto.*;
|
||||
import cn.iocoder.yudao.module.mqtt.enums.task.ExecutionTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.api.path.vo.RobotClosePathPlantingDTO;
|
||||
@ -42,14 +41,12 @@ import cn.iocoder.yudao.module.system.dal.mysql.housearea.HouseAreaMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.houselane.WareHouseLaneMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseLocationMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.information.DeviceInformationMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.log.RobotTaskDetailActionLogMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotChargeLogMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotInformationMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotTaskDetailMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotTaskMapper;
|
||||
import cn.iocoder.yudao.module.system.enums.common.ZeroOneEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.device.DeviceUseStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.item.PositionMapItemEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.item.UseStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.path.PathTaskTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.redis.RobotCacheLockEnum;
|
||||
@ -61,16 +58,14 @@ import cn.iocoder.yudao.module.system.enums.robot.task.RobotCommandTypeEnum;
|
||||
//import cn.iocoder.yudao.module.system.service.robot.job.RobotCommonTaskService;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.RobotTaskManualInterventionEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.RobotTaskStageEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.event.RobotTaskEventTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.event.EventTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.mq.message.task.TaskDistributionMessage;
|
||||
import cn.iocoder.yudao.module.system.mq.producer.remote.RemoteControllerProducer;
|
||||
import cn.iocoder.yudao.module.system.mq.producer.task.TaskDistributionProducer;
|
||||
import cn.iocoder.yudao.module.system.service.information.DeviceInformationService;
|
||||
import cn.iocoder.yudao.module.system.service.log.RobotTaskDetailActionLogService;
|
||||
import cn.iocoder.yudao.module.system.service.log.UserOperationLogService;
|
||||
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService;
|
||||
import cn.iocoder.yudao.module.system.service.robot.simulation.RobotSimulationService;
|
||||
import cn.iocoder.yudao.module.system.service.statistics.RobotWorkingHoursStatisticsService;
|
||||
import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
|
||||
import cn.iocoder.yudao.module.system.util.redis.RedissonUtils;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@ -82,7 +77,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.redisson.api.RLock;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -653,7 +647,7 @@ public class RobotTaskServiceImpl extends ServiceImpl<RobotTaskMapper, RobotTask
|
||||
|
||||
try {
|
||||
TaskDistributionMessage mess = new TaskDistributionMessage(this, taskAssignDTO.getOrderId() + "",
|
||||
RobotTaskEventTypeEnum.DISTRIBUTION.getType());
|
||||
EventTypeEnum.TASK_DISTRIBUTION.getType());
|
||||
taskDistributionProducer.sendSmsSendMessage(mess);
|
||||
} catch (Exception e) {
|
||||
log.info(e.getMessage());
|
||||
|
Loading…
Reference in New Issue
Block a user