From 6d6a1b26fcdad0ae743a6e99c8f321969bd2345f Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期一, 12 五月 2025 16:26:16 +0800 Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop --- rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx | 2 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java | 77 +++++++++++++++++++++++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java | 18 ++++++ rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java | 9 +++ rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/AgvController.java | 45 +++++++++++++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java | 4 + 6 files changed, 154 insertions(+), 1 deletions(-) diff --git a/rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx b/rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx index 172f17c..6509b57 100644 --- a/rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx +++ b/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" diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/AgvController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/AgvController.java new file mode 100644 index 0000000..f436604 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/AgvController.java @@ -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); + } +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java new file mode 100644 index 0000000..5f12328 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java @@ -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); +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java new file mode 100644 index 0000000..3e87aed --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java @@ -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; + } +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java index 6bea7f0..7a5e03e 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java +++ b/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("淇濆瓨澶辫触"); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java new file mode 100644 index 0000000..4a14128 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java @@ -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; +} -- Gitblit v1.9.1