From e0fbb31fcf45f56b7b57c741a6b11f03cf205512 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 12 五月 2025 15:16:51 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 201 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 7ef38e2..a374e5f 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -5,9 +5,13 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.exception.CoolException; import com.zy.asrs.domain.enums.TaskStatusType; +import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.GenerateAgvTaskParam; import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; +import com.zy.asrs.utils.Utils; +import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; @@ -57,11 +61,208 @@ private CommandInfoService commandInfoService; @Autowired private ApiLogService apiLogService; + @Autowired + private OpenService openService; + @Autowired + private CommonService commonService; @Value("${wcs.urlWcs}") private String wcsUrl; @Value("${wcs.inboundTaskApplyPathWcs}") private String wcsInboundTaskApplyPath; + public synchronized void demo() { + boolean demoEnable = false; + Config demoEnableConfig = configService.selectByCode("demoEnable"); + if(demoEnableConfig != null) { + demoEnable = Boolean.parseBoolean(demoEnableConfig.getValue()); + } + + if (!demoEnable) { + return; + } + + //婕旂ず妯″紡-AGV鍑哄簱 + demoAgvOut(); + //婕旂ず妯″紡-AGV鍏ュ簱 + demoAgvIn(); + //婕旂ず妯″紡-鍥涘悜搴撳嚭搴� + demoShuttleOut(); + //婕旂ず妯″紡-鍥涘悜搴撳叆搴� + demoShuttleIn(); + } + + //婕旂ず妯″紡-AGV鍑哄簱 + private synchronized void demoAgvOut() { + LocMast locMast = locMastService.selectByLocNo("1100601"); + if(locMast == null) { + return; + } + + if (!locMast.getLocSts().equals("O")) { + return; + } + + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("mk", "agv") + .eq("loc_sts", "F") + .notIn("loc_no", "0900601") + ); + + if (locMasts.isEmpty()) { + return; + } + + LocMast originLocMast = locMasts.get(0); + + //鐢熸垚AGV鍑哄簱浠诲姟 + GenerateAgvTaskParam param = new GenerateAgvTaskParam(); + param.setOriginPoint(originLocMast.getLocNo()); + param.setTargetPoint(locMast.getLocNo()); + openService.generateAgvTask(param); + } + + //婕旂ず妯″紡-AGV鍏ュ簱 + private synchronized void demoAgvIn() { + LocMast locMast = locMastService.selectByLocNo("0900601"); + if(locMast == null) { + return; + } + + if (!locMast.getLocSts().equals("F")) { + return; + } + + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("mk", "agv") + .eq("loc_sts", "O") + .notIn("loc_no", "1100601") + ); + + if (locMasts.isEmpty()) { + return; + } + + LocMast targetLocMast = locMasts.get(0); + + //鐢熸垚AGV鍑哄簱浠诲姟 + GenerateAgvTaskParam param = new GenerateAgvTaskParam(); + param.setOriginPoint(locMast.getLocNo()); + param.setTargetPoint(targetLocMast.getLocNo()); + openService.generateAgvTask(param); + } + + //婕旂ず妯″紡-鍥涘悜搴撳嚭搴� + private synchronized void demoShuttleOut() { + LocMast locMast = locMastService.selectByLocNo("0900601"); + if(locMast == null) { + return; + } + + if (!locMast.getLocSts().equals("O")) { + return; + } + + ArrayList<Integer> disableLevList = new ArrayList<>(); + + //query in task + List<TaskWrk> taskWrks = taskWrkService.selectList(new EntityWrapper<TaskWrk>() + .eq("io_type", 1)); + for (TaskWrk taskWrk : taskWrks) { + int lev = Utils.getLev(taskWrk.getTargetPoint()); + if(!disableLevList.contains(lev)) { + disableLevList.add(lev); + } + } + + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .notIn("lev1", disableLevList) + .eq("loc_sts", "F") + ); + + if(locMasts.isEmpty()) { + return; + } + + LocMast locMast1 = locMasts.get(0); + + Date now = new Date(); + TaskWrk taskWrk = new TaskWrk(); + int workNo1 = commonService.getWorkNo(WorkNoType.PAKOUT.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙� + taskWrk.setTaskNo(String.valueOf(workNo1));//浠诲姟鍙� + taskWrk.setWrkNo(workNo1); + taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹 + taskWrk.setCreateTime(now); + taskWrk.setIoType(1);//鍏ュ簱 + taskWrk.setIoPri(100);//浼樺厛绾� + taskWrk.setOriginTargetPoint(locMast1.getLocNo()); + taskWrk.setTargetPoint("1");//缁堢偣 + boolean result = taskWrkService.insert(taskWrk); + + locMast1.setLocSts("R"); + locMast1.setModiTime(now); + locMastService.updateById(locMast1); + + locMast.setLocSts("S"); + locMast.setModiTime(now); + locMastService.updateById(locMast); + } + + //婕旂ず妯″紡-鍥涘悜搴撳叆搴� + private synchronized void demoShuttleIn() { + LocMast locMast = locMastService.selectByLocNo("1100601"); + if(locMast == null) { + return; + } + + if (!locMast.getLocSts().equals("F")) { + return; + } + + ArrayList<Integer> disableLevList = new ArrayList<>(); + + //query out task + List<TaskWrk> taskWrks = taskWrkService.selectList(new EntityWrapper<TaskWrk>() + .eq("io_type", 2)); + for (TaskWrk taskWrk : taskWrks) { + int lev = Utils.getLev(taskWrk.getTargetPoint()); + if(!disableLevList.contains(lev)) { + disableLevList.add(lev); + } + } + + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .notIn("lev1", disableLevList) + .eq("loc_sts", "O") + ); + + if(locMasts.isEmpty()) { + return; + } + + LocMast locMast1 = locMasts.get(0); + + Date now = new Date(); + TaskWrk taskWrk = new TaskWrk(); + int workNo1 = commonService.getWorkNo(WorkNoType.PAKOUT.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙� + taskWrk.setTaskNo(String.valueOf(workNo1));//浠诲姟鍙� + taskWrk.setWrkNo(workNo1); + taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹 + taskWrk.setCreateTime(now); + taskWrk.setIoType(1);//鍏ュ簱 + taskWrk.setIoPri(100);//浼樺厛绾� + taskWrk.setOriginTargetPoint("101"); + taskWrk.setTargetPoint(locMast1.getLocNo());//缁堢偣 + boolean result = taskWrkService.insert(taskWrk); + + locMast1.setLocSts("S"); + locMast1.setModiTime(now); + locMastService.updateById(locMast1); + + locMast.setLocSts("R"); + locMast.setModiTime(now); + locMastService.updateById(locMast); + } + /** * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯 */ -- Gitblit v1.9.1