From 83e3d34abd06c0256f61382c4c9cf89c4be109d8 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 19 五月 2025 19:35:41 +0800 Subject: [PATCH] #问题修复 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java | 8 ++ rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java | 2 rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx | 4 rsf-server/src/main/java/com/vincent/rsf/server/api/service/WcsService.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 4 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java | 4 - rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java | 4 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java | 8 +- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 11 +-- rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java | 1 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java | 18 ++++-- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java | 53 +++++++++++++---- 13 files changed, 82 insertions(+), 39 deletions(-) diff --git a/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx b/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx index 115901a..fc25ff4 100644 --- a/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx +++ b/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx @@ -36,10 +36,10 @@ }; React.useEffect(() => { - if (record?.areaIds && record.areaIds.length > 0) { + if (record?.areaIds && record.areaIds.length !== 0 && record.areaIds.length > 0) { fetchAreaNames(); } - }, [record]); + }, [record]); if (loading) { return <CircularProgress size={20} />; diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java index 129de11..48df947 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java @@ -38,7 +38,7 @@ if (Cools.isEmpty(param.getLocType1())){ return R.error("楂樹綆妫�娴嬩俊鍙蜂笉鑳戒负绌�"); } - InTaskMsgDto msgDto = wcsService.createInTask(param,getLoginUserId()); + InTaskMsgDto msgDto = wcsService.createInTask(param); return R.ok(msgDto); @@ -56,7 +56,7 @@ if (Cools.isEmpty(param.getBarcode())) { return R.error("鏉$爜涓嶈兘涓虹┖"); } - if (param.getIoType().equals(TaskType.TASK_TYPE_AGV_IN.type)) { + if (!param.getIoType().equals(TaskType.TASK_TYPE_IN.type)) { return R.error("鍏ュ簱绫诲瀷鏈夎"); } wcsService.agvTaskPickUpComplete(param); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java index aee0ee6..155829f 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java @@ -9,6 +9,7 @@ private Integer sourceStaNo; //浣滀笟绔欑偣 or 鏉ユ簮绔欑偣 private String barcode; //瀹瑰櫒鏉$爜 private Integer locType1; //搴撲綅绫诲瀷 + private Long user; // private Integer locType2; //搴撲綅绫诲瀷 // private Integer locType3; //搴撲綅绫诲瀷 } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/WcsService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/WcsService.java index 46b655a..0048a4d 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/WcsService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/WcsService.java @@ -4,7 +4,7 @@ import com.vincent.rsf.server.api.controller.params.TaskInParam; public interface WcsService { - InTaskMsgDto createInTask(TaskInParam param, Long loginUserId); + InTaskMsgDto createInTask(TaskInParam param); void agvTaskPickUpComplete(TaskInParam param); } 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 index dc2d1f8..5793052 100644 --- 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 @@ -82,6 +82,7 @@ @Override + @Transactional(rollbackFor = Exception.class) public R AGVInTaskStart(Map<String, Object> params,Long loginUserId ) { String sta = params.get("sta").toString(); String area = params.get("area").toString(); @@ -112,6 +113,13 @@ taskService.generateAGVTasks(waitPakin,targetLoc,sta,loginUserId); + basStation.setUseStatus(StaUseStatusType.TYPE_R.type); + if (!basStationService.updateById(basStation)){ + throw new CoolException("鏇存柊绔欑偣鐘舵�佸け璐�"); + } + + + return R.ok(); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java index bfe75b6..638917e 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java @@ -940,8 +940,8 @@ // List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val), Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val)); WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>() - .eq(!Cools.isEmpty(params.get("barcode")),WaitPakin::getBarcode, params.get("barcode").toString()) - .eq(!Cools.isEmpty(params.get("code")),WaitPakin::getCode, params.get("code").toString()) + .eq(!Cools.isEmpty(params.get("barcode")),WaitPakin::getBarcode, params.get("barcode")) + .eq(!Cools.isEmpty(params.get("code")),WaitPakin::getCode, params.get("code")) .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val)); if (Objects.isNull(waitPakin)) { return R.error("鏈壘鍒拌瀹瑰櫒鐮佺殑缁勬墭鏄庣粏锛岃妫�鏌ョ粍鎵樼姸鎬�"); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java index 4e610b6..84f477e 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java @@ -83,7 +83,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public InTaskMsgDto createInTask(TaskInParam param, Long loginUserId) { + public InTaskMsgDto createInTask(TaskInParam param) { // 鑾峰彇搴撲綅鍙� InTaskMsgDto locNo = getLocNo(param); @@ -98,7 +98,7 @@ // 鍒涘缓骞朵繚瀛樹换鍔� Task task = createTask(ruleCode, locNo.getLocNo(), waitPakin.getBarcode(), - deviceSite.getDeviceSite(), param.getSourceStaNo().toString(), loginUserId); + deviceSite.getDeviceSite(), param.getSourceStaNo().toString(), param.getUser()); // 鏇存柊搴撲綅鐘舵�� updateLocStatus(task.getTargLoc(), waitPakin.getBarcode()); @@ -107,10 +107,10 @@ List<WaitPakinItem> waitPakinItems = getWaitPakinItems(waitPakin.getId()); // 鍒涘缓骞朵繚瀛樹换鍔℃槑缁� - saveTaskItems(task.getId(), waitPakinItems, loginUserId); + saveTaskItems(task.getId(), waitPakinItems, param.getUser()); // 鏇存柊缁勬墭鐘舵�� - updateWaitPakinStatus(param.getBarcode(), loginUserId); + updateWaitPakinStatus(param.getBarcode(), param.getUser()); // 璁剧疆宸ヤ綔鍗曞彿骞惰繑鍥� locNo.setWorkNo(ruleCode); 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 f9fa107..2d70b3b 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 @@ -33,13 +33,16 @@ PageParam<BasStation, BaseParam> pageParam = new PageParam<>(baseParam, BasStation.class); PageParam<BasStation, BaseParam> page = basStationService.page(pageParam, pageParam.buildWrapper(true)); for (BasStation station : page.getRecords()) { - String content = station.getCrossZoneArea().substring(1, station.getCrossZoneArea().length() - 1); - String[] parts = content.split(","); - Long[] longArray = new Long[parts.length]; - for (int i = 0; i < parts.length; i++) { - longArray[i] = Long.parseLong(parts[i].trim()); + if (!Cools.isEmpty(station.getCrossZoneArea())) { + String content = station.getCrossZoneArea().substring(1, station.getCrossZoneArea().length() - 1); + String[] parts = content.split(","); + Long[] longArray = new Long[parts.length]; + for (int i = 0; i < parts.length; i++) { + longArray[i] = Long.parseLong(parts[i].trim()); + } + station.setAreaIds(longArray); } - station.setAreaIds(longArray); + } return R.ok().add(page); } @@ -85,6 +88,9 @@ if (!Cools.isEmpty(serviceOne)) { return R.error(basStation.getStationName()+"绔欏凡琚垵濮嬪寲"); } + if (null !=basStation.getAreaIds()){ + basStation.setCrossZoneArea(Arrays.toString(basStation.getAreaIds())); + } if (!basStationService.save(basStation)) { return R.error("淇濆瓨澶辫触"); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java index 9741a32..114e815 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java @@ -6,21 +6,15 @@ 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.manager.enums.TaskStsType; +import com.vincent.rsf.server.manager.entity.*; +import com.vincent.rsf.server.manager.enums.*; import com.vincent.rsf.server.common.utils.ExcelUtil; import com.vincent.rsf.server.common.annotation.OperationLog; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.KeyValVo; import com.vincent.rsf.server.common.domain.PageParam; -import com.vincent.rsf.server.manager.entity.Loc; -import com.vincent.rsf.server.manager.entity.Task; -import com.vincent.rsf.server.manager.entity.TaskItem; -import com.vincent.rsf.server.manager.entity.WaitPakin; -import com.vincent.rsf.server.manager.enums.PakinIOStatus; -import com.vincent.rsf.server.manager.service.LocService; -import com.vincent.rsf.server.manager.service.TaskItemService; -import com.vincent.rsf.server.manager.service.TaskService; -import com.vincent.rsf.server.manager.service.WaitPakinService; +import com.vincent.rsf.server.manager.service.*; +import com.vincent.rsf.server.manager.service.impl.BasStationServiceImpl; import com.vincent.rsf.server.system.controller.BaseController; import com.vincent.rsf.server.system.enums.LocStsType; import io.swagger.annotations.ApiOperation; @@ -46,6 +40,8 @@ @Autowired private LocService locService; + @Autowired + private BasStationService basStationService; @PreAuthorize("hasAuthority('manager:task:list')") @PostMapping("/task/page") @@ -120,7 +116,8 @@ if (null != waitPakin) { waitPakin.setIoStatus(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val)); if (!waitPakinService.updateById(waitPakin)) { - return R.error("鏇存柊缁勬墭鐘舵�佸け璐�"); + throw new CoolException("鏇存柊缁勬墭鐘舵�佸け璐ワ紒锛�"); + } } Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>() @@ -132,9 +129,41 @@ loc.setUseStatus(LocStsType.LOC_STS_TYPE_O.type); if (!locService.updateById(loc)) { - return R.error("鏇存柊搴撲綅鐘舵�佸け璐�"); + throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐ワ紒锛�"); } } + if (task.getWarehType().equals(WarehType.WAREHOUSE_TYPE_AGV.id)){ + BasStation basStation = null; + if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type) + || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type) + ){ + basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>() + .eq(BasStation::getStationName, task.getOrgSite()) + .eq(BasStation::getUseStatus, StaUseStatusType.TYPE_R.type) + ); + + + } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type) + || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_IN.type) + || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type) + || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type) + || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type) + ) { + basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>() + .eq(BasStation::getStationName, task.getTargLoc()) + .eq(BasStation::getUseStatus, StaUseStatusType.TYPE_R.type) + ); + } + if (null == basStation) { + throw new CoolException("绔欑偣鐘舵�侀敊璇紒锛�"); + } + basStation.setUseStatus(StaUseStatusType.TYPE_F.type); + if (!basStationService.updateById(basStation)){ + throw new CoolException("鏇存柊绔欑偣鐘舵�佸け璐ワ紒锛�"); + } + } + + } if (!taskService.removeByIds(Arrays.asList(ids))) { return R.error("Delete Fail"); 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 index 4a14128..6aec967 100644 --- 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 @@ -4,6 +4,8 @@ //璁㈠崟绫诲瀷 TYPE_O("O", "绌洪棽"), TYPE_F("F", "鍗犵敤"), + TYPE_S("S", "棰勭害鍏ョ珯"), + TYPE_R("R", "棰勭害鍑虹珯"), TYPE_X("X", "绂佺敤"), ; diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java index 8ee875c..8e01b64 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java @@ -10,15 +10,13 @@ public enum TaskType { TASK_TYPE_IN("1", "鍏ュ簱"), - TASK_TYPE_FLAT_WAREHOUSE_IN("2", "骞冲簱涓婃灦"), - TASK_TYPE_AGV_IN("3", "AGV鍏ュ簱"), TASK_TYPE_EMPITY_IN("10", "绌烘澘鍏ュ簱"), TASK_TYPE_LOC_MOVE("11", "搴撴牸绉昏浇"), TASK_TYPE_PICK_IN("53", "鎷f枡鍐嶅叆搴�"), TASK_TYPE_MERGE_IN("54", "骞舵澘鍐嶅叆搴�"), TASK_TYPE_CHECK_IN("57", "鐩樼偣鍐嶅叆搴�"), TASK_TYPE_OUT("101", "鍑哄簱"), - TASK_TYPE_PICK_AGAIN_IN("103", "鎷f枡鍏ュ簱"), + TASK_TYPE_PICK_AGAIN_IN("103", "鎷f枡鍑哄簱"), TASK_TYPE_MERGE_OUT("104", "骞舵澘鍑哄簱"), TASK_TYPE_CHECK_OUT("107", "鐩樼偣鍑哄簱"), TASK_TYPE_EMPITY_OUT("110", "绌烘澘鍑哄簱"), diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java index 54675bd..9df319a 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java @@ -56,7 +56,7 @@ * @time 2025/4/2 12:37 */ // @Scheduled(cron = "0 0/05 * * * ? ") - @Scheduled(cron = "0/15 * * * * ?") + @Scheduled(cron = "0/3 * * * * ?") @Transactional(rollbackFor = Exception.class) public void completeInStock() throws Exception { List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id)); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java index c8291e1..ecbe972 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java @@ -3,15 +3,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.vincent.rsf.framework.common.Cools; -import com.vincent.rsf.server.manager.enums.OrderType; -import com.vincent.rsf.server.manager.enums.TaskStsType; +import com.vincent.rsf.server.manager.enums.*; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; -import com.vincent.rsf.server.manager.enums.TaskType; import com.vincent.rsf.server.api.utils.LocUtils; import com.vincent.rsf.server.manager.controller.params.GenerateTaskParams; import com.vincent.rsf.server.manager.entity.*; -import com.vincent.rsf.server.manager.enums.PakinIOStatus; import com.vincent.rsf.server.manager.mapper.TaskMapper; import com.vincent.rsf.server.manager.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -93,7 +90,8 @@ Task task = new Task(); task.setTaskCode(ruleCode) .setTaskStatus(TaskStsType.GENERATE_IN.id.shortValue()) - .setTaskType(TaskType.TASK_TYPE_AGV_IN.type.shortValue()) + .setTaskType(TaskType.TASK_TYPE_IN.type.shortValue()) + .setWarehType(WarehType.WAREHOUSE_TYPE_AGV.id) .setTargLoc(targetLoc) .setOrgSite(orgSta) .setBarcode(pakin.getBarcode()) @@ -178,7 +176,8 @@ Task task = new Task(); task.setTaskCode(ruleCode) .setTaskStatus(TaskStsType.COMPLETE_IN.id.shortValue()) - .setTaskType(TaskType.TASK_TYPE_FLAT_WAREHOUSE_IN.type.shortValue()) + .setTaskType(TaskType.TASK_TYPE_IN.type.shortValue()) + .setWarehType(WarehType.WAREHOUSE_TYPE_PLAT.id) .setTargLoc(targetLoc) .setBarcode(pakin.getBarcode()) .setCreateBy(loginUserId) -- Gitblit v1.9.1