rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/AgvController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx
@@ -140,7 +140,7 @@ label="table.field.basStation.outAble" render={record => record.inAble === 1 ? '是' : '否'} /> <TextField source="useStatus" label="table.field.basStation.useStatus" /> <TextField source="useStatus$" label="table.field.basStation.useStatus" /> <NumberField source="area$" label="table.field.basStation.area" /> <FunctionField source="isCrossZone" rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/AgvController.java
New file @@ -0,0 +1,45 @@ package com.vincent.rsf.server.api.controller.pda; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.server.api.service.AgvService; import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Map; import java.util.Objects; @Api(tags = "PDA操作接口") @RequestMapping("/pda") @RestController public class AgvController extends BaseController { @Autowired private AgvService agvService; @PreAuthorize("hasAuthority('manager:basStation:list')") @ApiOperation("获取拖盘明细") @PostMapping("/AGV/staBind") public R getAGVStaBind(@RequestBody Map<String, Object> params) { if (Objects.isNull(params)) { return R.error("参数不能为空!!"); } return agvService.getAGVStaBind(params); } @PreAuthorize("hasAuthority('manager:asnOrderItem:list')") @ApiOperation("获取拖盘明细") @PostMapping("/AGV/staUnBind") public R getAGVStaUnBind(@RequestBody Map<String, Object> params) { if (Objects.isNull(params)) { return R.error("参数不能为空!!"); } return agvService.getAGVStaBind(params); } } rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java
New file @@ -0,0 +1,9 @@ package com.vincent.rsf.server.api.service; import com.vincent.rsf.framework.common.R; import java.util.Map; public interface AgvService { R getAGVStaBind(Map<String, Object> params); } rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
New file @@ -0,0 +1,77 @@ package com.vincent.rsf.server.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.api.service.AgvService; import com.vincent.rsf.server.manager.entity.BasStation; import com.vincent.rsf.server.manager.entity.WaitPakin; import com.vincent.rsf.server.manager.enums.PakinIOStatus; import com.vincent.rsf.server.manager.enums.StaUseStatusType; import com.vincent.rsf.server.manager.service.BasStationService; import com.vincent.rsf.server.manager.service.WaitPakinService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @Service public class AgvServiceImpl implements AgvService { @Autowired private WaitPakinService waitPakinService; @Autowired private BasStationService basStationService; @Override @Transactional(rollbackFor = Exception.class) public R getAGVStaBind(Map<String, Object> params) { String barcode = params.get("barcode").toString(); String sta = params.get("sta").toString(); //验证基础信息 BasStation basStation = checkStaStatus(barcode, sta); //更新站点状态 basStation.setUseStatus(StaUseStatusType.TYPE_F.type); basStation.setBarcode(barcode); if (!basStationService.updateById(basStation)){ throw new CoolException("更新站点状态失败"); } return R.ok("绑定成功"); } private BasStation checkStaStatus(String barcode, String sta){ if (Cools.isEmpty(barcode)){ throw new CoolException("容器码不能为空"); } if (Cools.isEmpty(sta)){ throw new CoolException("接驳位条码不能为空"); } WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>() .eq(WaitPakin::getBarcode, barcode) .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val) ); if (Cools.isEmpty(waitPakin)){ throw new CoolException("容器码未找到组托信息,请检查组托状态"); } BasStation isBarcodeSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>() .eq(BasStation::getBarcode, barcode) ,false ); if (!Cools.isEmpty(isBarcodeSta)){ throw new CoolException("该条码已被"+isBarcodeSta.getStationName()+"站绑定"); } BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>() .eq(BasStation::getStationName, sta) ); if (Cools.isEmpty(basStation)){ throw new CoolException("未找到站点信息"); } if (!basStation.getUseStatus().equals("O")){ throw new CoolException("站点状态不为空闲"); } return basStation; } } rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java
@@ -80,6 +80,10 @@ basStation.setCreateTime(new Date()); basStation.setUpdateBy(getLoginUserId()); basStation.setUpdateTime(new Date()); BasStation serviceOne = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, basStation.getStationName())); if (!Cools.isEmpty(serviceOne)) { return R.error(basStation.getStationName()+"站已被初始化"); } if (!basStationService.save(basStation)) { return R.error("保存失败"); } rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java
New file @@ -0,0 +1,18 @@ package com.vincent.rsf.server.manager.enums; public enum StaUseStatusType { //订单类型 TYPE_O("O", "空闲"), TYPE_F("F", "占用"), TYPE_X("X", "禁用"), ; StaUseStatusType(String type, String desc) { this.type = type; this.desc = desc; } public String type; public String desc; }