Browse Source

feat(agv-station): 添加AGV站点删除功能

- 实现删除AGV站点的控制器方法,支持传入站点编码进行删除操作
- 添加删除前校验逻辑,确保站点处于禁用状态且无栈板占用
- 在服务层定义删除AGV站点的方法接口
- 完成删除功能的具体实现,包含参数验证、状态检查和数据库删除操作
- 添加详细的删除业务逻辑,包括禁用状态验证和栈板数量检查
- 实现删除失败时的异常处理和错误消息返回
master
常熟吴彦祖 4 weeks ago
parent
commit
a53c094d3b
  1. 19
      src/main/java/com/gaotao/modules/automatedWarehouse/controller/AgvStationController.java
  2. 13
      src/main/java/com/gaotao/modules/automatedWarehouse/service/AgvStationService.java
  3. 53
      src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AgvStationServiceImpl.java

19
src/main/java/com/gaotao/modules/automatedWarehouse/controller/AgvStationController.java

@ -65,6 +65,25 @@ public class AgvStationController {
return R.ok();
}
/**
* @Description 删除AGV站点 - rqrq
* <p>删除前校验</p>
* <ul>
* <li>站点必须是禁用状态active='N'</li>
* <li>站点下不能有栈板</li>
* </ul>
* @param data 站点信息包含stationCode
* @return R
* @author rqrq
* @date 2025/02/06
*/
@PostMapping(value="/delete")
@ResponseBody
public R delete(@RequestBody AgvStationData data) throws Exception {
agvStationService.deleteAgvStation(data);
return R.ok();
}
/**
* @Description 获取区域类型下拉选项 - rqrq
* @return R

13
src/main/java/com/gaotao/modules/automatedWarehouse/service/AgvStationService.java

@ -41,6 +41,19 @@ public interface AgvStationService extends IService<AgvStation> {
*/
void updateAgvStation(AgvStationData data) throws Exception;
/**
* @Description 删除AGV站点 - rqrq
* <p>删除前校验</p>
* <ul>
* <li>站点必须是禁用状态active='N'</li>
* <li>站点下不能有栈板</li>
* </ul>
* @param data 站点信息包含stationCode
* @author rqrq
* @date 2025/02/06
*/
void deleteAgvStation(AgvStationData data) throws Exception;
/**
* @Description 获取区域类型下拉选项 - rqrq
* @return List<Area>

53
src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AgvStationServiceImpl.java

@ -221,6 +221,59 @@ public class AgvStationServiceImpl extends ServiceImpl<AgvStationMapper, AgvStat
System.out.println("修改AGV站点完成 - rqrq");
}
/**
* @Description 删除AGV站点 - rqrq
* <p>删除前校验</p>
* <ul>
* <li>站点必须是禁用状态active='N'</li>
* <li>站点下不能有栈板</li>
* </ul>
* @param data 站点信息包含stationCode
* @author rqrq
* @date 2025/02/06
*/
@Override
public void deleteAgvStation(AgvStationData data) throws Exception {
System.out.println("开始删除AGV站点 - rqrq,站点编码:" + data.getStationCode());
// 校验参数 - rqrq
if (!StringUtils.hasText(data.getStationCode())) {
throw new RuntimeException("站点编码不能为空");
}
String stationCode = data.getStationCode();
// 查询站点信息 - rqrq
AgvStation station = this.lambdaQuery()
.eq(AgvStation::getStationCode, stationCode)
.one();
if (station == null) {
throw new RuntimeException("站点不存在:" + stationCode);
}
// 1. 校验站点必须是禁用状态 - rqrq
if (!"N".equals(station.getActive())) {
String errorMsg = "只有禁用状态的站点才能删除,请先禁用该站点";
System.out.println("删除站点失败 - rqrq:" + errorMsg);
throw new RuntimeException(errorMsg);
}
// 2. 校验站点下不能有栈板 - rqrq
Integer palletCount = this.baseMapper.countPalletByLocationCode(stationCode);
if (palletCount != null && palletCount > 0) {
String errorMsg = "该站点下还有 " + palletCount + " 个栈板,不允许删除";
System.out.println("删除站点失败 - rqrq:" + errorMsg);
throw new RuntimeException(errorMsg);
}
// 3. 执行删除 - rqrq
System.out.println("校验通过,执行删除操作 - rqrq");
this.removeById(station.getId());
System.out.println("删除AGV站点完成 - rqrq");
}
/**
* @Description 获取状态描述 - rqrq
* @param statusDb 状态值

Loading…
Cancel
Save