diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/ExceptionInfo.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/ExceptionInfo.java new file mode 100644 index 000000000..02dde9cd8 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/ExceptionInfo.java @@ -0,0 +1,60 @@ +package org.springblade.desk.logistics.pojo.entity; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 异常信息实体类 + * + * @author liweidong + * @since 2026-06-25 + */ +@Data +@TableName("LM_EXCEPTION_INFO") +@Schema(description = "异常信息对象") +@EqualsAndHashCode(callSuper = true) +public class ExceptionInfo extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 箱条码 + */ + @Schema(description = "箱条码") + private String boxBarcode; + + /** + * 异常信息 + */ + @Schema(description = "异常信息") + private String exceptionMessage; + + /** + * 来源 + */ + @Schema(description = "来源") + private String source; + + /** + * 备注 + */ + @Schema(description = "备注") + private String remarks; + + /** + * 状态 1:有效 0:无效 + */ + @Schema(description = "状态 1:有效 0:无效") + private Integer status; + + /** + * 删除标记 0:未删除 1:已删除 + */ + @Schema(description = "删除标记 0:未删除 1:已删除") + private Integer isDeleted; +} \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/ExceptionInfoController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/ExceptionInfoController.java new file mode 100644 index 000000000..15185a5db --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/ExceptionInfoController.java @@ -0,0 +1,51 @@ +package org.springblade.desk.logistics.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.desk.logistics.pojo.entity.ExceptionInfo; +import org.springblade.desk.logistics.service.IExceptionInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author liweidong + */ +@RestController +@AllArgsConstructor +@RequestMapping("/exceptionInfo") +@Tag(name = "异常信息", description = "站点相关接口") +public class ExceptionInfoController { + + @Autowired + IExceptionInfoService exceptionInfoService; + + /** + * 获取异常信息列表 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 1) + @Operation(summary = "分页", description = "获取异常信息列表") + public R> list(@Parameter(hidden = true) ExceptionInfo exceptionInfo, Query query) { + + IPage pages = exceptionInfoService.getExceptionInfoList(Condition.getPage(query), exceptionInfo); + + return R.data(pages); + } + + + + + + + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java index fa5f0596c..e05eef7d0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java @@ -29,6 +29,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springblade.core.boot.ctrl.BladeController; @@ -36,17 +37,13 @@ import org.springblade.core.log.exception.ServiceException; import org.springblade.core.tool.api.R; import org.springblade.desk.basic.util.StatusCountMap; import org.springblade.desk.logistics.pojo.dto.ReturnToWarehouseDto; +import org.springblade.desk.logistics.pojo.entity.ExceptionInfo; import org.springblade.desk.logistics.pojo.entity.Station; -import org.springblade.desk.logistics.service.IOrderBindService; -import org.springblade.desk.logistics.service.IOrderBoxService; -import org.springblade.desk.logistics.service.IPipelineService; -import org.springblade.desk.logistics.service.ITaskExecuteRecordService; +import org.springblade.desk.logistics.service.*; import org.springblade.desk.logistics.utils.AgvTaskTypeUtil; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + import java.math.BigDecimal; import java.util.LinkedHashMap; import java.util.Map; @@ -68,7 +65,8 @@ public class PipelineController extends BladeController { IPipelineService pipelineService; @Autowired IOrderBoxService iOrderBoxService; - + @Autowired + IExceptionInfoService exceptionInfoService; /** * 根据物料箱号查询已绑定预估重量 @@ -200,4 +198,25 @@ public class PipelineController extends BladeController { return R.data(b); } + /** + * 接收异常信息 + */ + @PostMapping("/receiveExceptionInfo") + @ApiOperationSupport(order = 4) + @Operation(summary = "接收异常信息", description = "接收异常信息") + public R receiveExceptionInfo(@Valid @RequestBody ExceptionInfo exceptionInfo) { + if (exceptionInfo == null) { + return R.fail("请求参数不能为空"); + } + + boolean b = exceptionInfoService.saveExceptionInfo(exceptionInfo); + + if (b) { + return R.data(true, "异常信息接收成功"); + } else { + return R.fail("异常信息接收失败"); + } + } + + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/ExceptionInfoMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/ExceptionInfoMapper.java new file mode 100644 index 000000000..7c87f33c6 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/ExceptionInfoMapper.java @@ -0,0 +1,16 @@ +package org.springblade.desk.logistics.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.desk.logistics.pojo.entity.ExceptionInfo; + +import java.util.List; + +/** + * @author liweidong + */ +public interface ExceptionInfoMapper extends BaseMapper { + + List selectExceptionInfoList(IPage page, @Param("exceptionInfo")ExceptionInfo exceptionInfo); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/ExceptionInfoMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/ExceptionInfoMapper.xml new file mode 100644 index 000000000..aaff3b64c --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/ExceptionInfoMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IExceptionInfoService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IExceptionInfoService.java new file mode 100644 index 000000000..4235d2137 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IExceptionInfoService.java @@ -0,0 +1,54 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.logistics.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.logistics.pojo.entity.ExceptionInfo; + +/** + * 异常信息 服务类 + * + * @author BladeX + * @since 2025-11-12 + */ +public interface IExceptionInfoService extends BaseService { + + /** + * 接收异常信息 + * @param exceptionInfo + * @return + */ + boolean saveExceptionInfo(ExceptionInfo exceptionInfo); + + /** + * 列表 + * @param page + * @param exceptionInfo + * @return + */ + IPage getExceptionInfoList(IPage page, ExceptionInfo exceptionInfo); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/ExceptionInfoServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/ExceptionInfoServiceImpl.java new file mode 100644 index 000000000..5fd652411 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/ExceptionInfoServiceImpl.java @@ -0,0 +1,41 @@ +package org.springblade.desk.logistics.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.logistics.mapper.ExceptionInfoMapper; +import org.springblade.desk.logistics.pojo.entity.ExceptionInfo; +import org.springblade.desk.logistics.pojo.vo.StationVO; +import org.springblade.desk.logistics.service.IExceptionInfoService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 异常信息 + * + * @author qyl + * @since 2026-01-08 + */ +@Service +@Slf4j +public class ExceptionInfoServiceImpl extends BaseServiceImpl implements IExceptionInfoService { + + @Override + public boolean saveExceptionInfo(ExceptionInfo exceptionInfo) { + try { + return this.save(exceptionInfo); + } catch (Exception e) { + log.error("保存异常信息失败:{}", e.getMessage(), e); + return false; + } + } + + @Override + public IPage getExceptionInfoList(IPage page, ExceptionInfo exceptionInfo) { + + List exceptionInfoList = baseMapper.selectExceptionInfoList(page, exceptionInfo); + + return page.setRecords(exceptionInfoList); + } +} \ No newline at end of file