From 617a8c4fc0b81ec4b96db8a013a91f4e666b0b96 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期三, 08 一月 2025 14:33:45 +0800 Subject: [PATCH] 出现空指针异常 --- src/main/java/com/zy/asrs/task/AutoMoveScheduler.java | 122 ++++++++++++++++++++++++++++++++++------ 1 files changed, 102 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java index 1c82e8f..74828c9 100644 --- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java +++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java @@ -1,7 +1,11 @@ package com.zy.asrs.task; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; +import com.core.exception.CoolException; import com.zy.asrs.entity.AgvBasDevp; import com.zy.asrs.entity.AgvLocMast; import com.zy.asrs.entity.AgvWrkMast; @@ -10,11 +14,15 @@ import com.zy.asrs.service.AgvWrkMastService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.AutoMoveHandler; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -31,6 +39,8 @@ private AgvWrkMastService agvWrkMastService; @Autowired private AgvBasDevpService agvBasDevpService; + @Autowired + private ConfigService configService; // 璋冩嫧鍑哄簱 // @Scheduled(cron = "0/2 * * * * ? ") @@ -56,8 +66,8 @@ * ioType 108.鑷姩璋冩嫧 * crnNo :2鐩爣妤煎眰 */ - @Scheduled(cron = "0/2 * * * * ? ") - private void execute2(){ + @Scheduled(cron = "0/1 * * * * ? ") + private synchronized void execute2(){ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() .eq("wrk_sts", 22) .andNew().eq("io_type",108) @@ -72,7 +82,7 @@ try{ autoMoveHandler.start2(agvWrkMast); } catch (Exception e){ - log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + //log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); } } @@ -119,6 +129,27 @@ for (AgvWrkMast agvWrkMast : agvWrkMastList) { try{ autoMoveHandler.start3(agvWrkMast); + } catch (Exception e){ + //log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + } + } + + } + + @Scheduled(cron = "0/2 * * * * ? ") + private void execute4(){ + List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() + .eq("wrk_sts", 22) + .andNew().eq("io_type",114) + .orderBy("io_pri",false) + .orderBy("appe_time",true) + ); + if (agvWrkMastList.isEmpty()) { + return; + } + for (AgvWrkMast agvWrkMast : agvWrkMastList) { + try{ + autoMoveHandler.start4(agvWrkMast); } catch (Exception e){ log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); } @@ -203,24 +234,22 @@ */ @Scheduled(cron = "0/2 * * * * ? ") private void autoEmptyBack4(){ -// if (determineFloorConnection(2)){ - // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋� - List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( - new EntityWrapper<AgvLocMast>() - .ne("floor", 1) - .eq("loc_sts","D") - .eq("loc_type1",3)); - if (agvLocMasts.isEmpty()) { - return; + // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋� + List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( + new EntityWrapper<AgvLocMast>() + .ne("floor", 1) + .eq("loc_sts","D") + .eq("loc_type1",3)); + if (agvLocMasts.isEmpty()) { + return; + } + for (AgvLocMast agvLocMast : agvLocMasts) { + try{ + autoMoveHandler.autoEmptyBack4(agvLocMast); + } catch (Exception e){ + log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); } - for (AgvLocMast agvLocMast : agvLocMasts) { - try{ - autoMoveHandler.autoEmptyBack4(agvLocMast); - } catch (Exception e){ - log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); - } - } -// } + } } private boolean determineFloorConnection(Integer floor){ @@ -286,4 +315,57 @@ } } } + + /** + * 鑷姩绉诲簱 + * + */ + @Scheduled(cron = "0/2 * * * * ? ") + private void autoEmptyBack7() throws ParseException { + Date now = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String currentDay = sdf.format(now); + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoTime")); + if (Cools.isEmpty(config)) { + + } else { + if (config.getStatus().intValue() == 0) { + return; + } + JSONObject jsonObject = JSON.parseObject(config.getValue().toString()); + Integer maxTansk = jsonObject.getInteger("maxTansk"); + //Integer startTime = jsonObject.getInteger("startTime"); + String startTime = jsonObject.getString("startTime"); + long time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(currentDay + " " + startTime).getTime(); + long time = now.getTime(); + long time3 = time - time1; + + + + if (time3 > 0 && time3 < (1000* 60 * 10)) { + + List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1").eq("io_type",12)); + if (maxTansk <= agvWrkMasts.size()){ + return; + } + + List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( + new EntityWrapper<AgvLocMast>() + .eq("floor", 1) + .eq("lev1", 1) + .eq("loc_sts","F") + .eq("loc_type1",3)); + if (agvLocMasts.isEmpty()) { + return; + } + for (AgvLocMast agvLocMast : agvLocMasts) { + try{ + autoMoveHandler.autoTransfers(agvLocMast,maxTansk); + } catch (Exception e){ + log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"瀹氭椂绉诲簱浠诲姟 鍚稿涓�妤� --> 鍚稿浜屾ゼ,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + } + } + } + } + } } -- Gitblit v1.9.1