From 903825e4434a91ef5d29f8565551dbcc0a4eadaa Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期三, 03 四月 2024 12:49:40 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java | 8 +- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/DeviceDataLogServiceImpl.java | 5 + zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java | 4 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 126 ++++++++++++++++++++++++++++++++++++++++++ zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/task/ClearDeviceDataLogScheduler.java | 24 ++++++++ zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/mapper/DeviceDataLogMapper.java | 4 + zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/DeviceDataLogService.java | 2 7 files changed, 167 insertions(+), 6 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java index 88f8c0a..7696f04 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java @@ -63,10 +63,10 @@ // mainService.ledExecute(); // // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 // mainService.ledReset(); -// // 绌挎杞� ===>> 灏忚溅鐢甸噺妫�娴嬪厖鐢� -// mainService.loopShuttleCharge(); -// // 绌挎杞� ===>> 灏忚溅鐢甸噺婊$數鍚庡洖寰呮満浣� -// mainService.loopShuttleToStandbyCauseCharge(); + // 绌挎杞� ===>> 灏忚溅鐢甸噺妫�娴嬪厖鐢� + mainService.loopShuttleCharge(); + // 绌挎杞� ===>> 灏忚溅鐢甸噺婊$數鍚庡洖寰呮満浣� + mainService.loopShuttleToStandbyCauseCharge(); // // 鎵弿宸茬粡鍦ㄥ嚭搴撳彛鐨勮揣鐗� => 鍛煎彨agv鑷虫斁璐х珯鐐� // mainService.scanOutCallAgv(); diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java index 0b8e774..b804446 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java @@ -123,4 +123,130 @@ } } + /** + * 鍥涘悜绌挎杞︾數閲忔娴� ===>> 鍙戣捣鍏呯數 + */ + public synchronized void loopShuttleCharge() { +// ShuttleChargeType shuttleCharge = ShuttleChargeType.CHARGE_1; +// for (ShuttleSlave shuttle : slaveProperties.getShuttle()) { +// // 鍒ゆ柇鍏呯數浣嶆槸鍚﹁鍗犵敤 +// if (wrkChargeService.hasShuttleInChargeLoc(shuttleCharge.locNo, shuttle.getId())) { +// continue; +// } +// +// //鑾峰彇鍥涘悜绌挎杞︾嚎绋� +// ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId()); +// ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); +// if (shuttleProtocol == null) { +// continue; +// } +// if (motionService.selectCount(new EntityWrapper<Motion>() +// .eq("device_ctg", DeviceCtgType.SHUTTLE.val()) +// .eq("device", shuttle.getId()) +// .eq("motion_sts", MotionStsType.EXECUTING.val())) > 0) { +// continue; +// } +// +// //鍒ゆ柇褰撳墠灏忚溅鏄惁婊¤冻闇�瑕佸厖鐢佃姹� +// if (!shuttleProtocol.isRequireCharge()) { +// continue; +// } +// +// WrkCharge wrkCharge = wrkChargeService.selectWorking(null); +// if (wrkCharge != null) {//宸叉湁鍏呯數浠诲姟 +// continue; +// } +// +// String chargeLocNo = shuttleCharge.locNo; +// wrkCharge = new WrkCharge(); +// wrkCharge.setShuttleNo(shuttle.getId()); +// wrkCharge.setCharge(shuttleCharge.id); +// wrkCharge.setWrkNo(commonService.getChargeWorkNo(4)); +// wrkCharge.setUuid(String.valueOf(snowflakeIdWorker.nextId())); +// wrkCharge.setWrkSts(WrkMastStsType.NEW_CHARGE.sts); // 鍏呯數浠诲姟 +// wrkCharge.setIoType(WrkIoTypeType.CHARGE.sts); +// wrkCharge.setIoPri((double) 10); +// wrkCharge.setLocNo(chargeLocNo); +// wrkCharge.setMemo("charge"); +// wrkCharge.setAppeTime(new Date()); +// +// // generate motion list +// List<Motion> motionList = analyzeService.generateChargeMotion(wrkCharge); +// if (Cools.isEmpty(motionList)) { +// News.error("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟澶辫触!!!", shuttle.getId()); +// continue; +// } +// motionService.batchInsert(motionList, wrkCharge.getUuid(), wrkCharge.getWrkNo()); +// +// wrkCharge.setWrkSts(WrkMastStsType.ANALYZE_CHARGE.sts); +// +// if (!wrkChargeService.insert(wrkCharge)) { +// News.error("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟澶辫触!!!", shuttle.getId()); +// continue; +// } +// +// News.info("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟鎴愬姛!!!", shuttle.getId()); +// } + } + + /** + * 鍥涘悜绌挎杞︾數閲忔娴� ===>> 婊$數鍚庡洖鍒板緟鏈轰綅 + */ + public synchronized void loopShuttleToStandbyCauseCharge() { +// ShuttleChargeType shuttleCharge = ShuttleChargeType.CHARGE_1; +// Integer enoughPower = 90; +// Config config = configService.selectOne(new EntityWrapper<Config>() +// .eq("code", "chargeMaxValue") +// .eq("status", 1)); +// if (config != null) { +// enoughPower = Integer.parseInt(config.getValue()); +// } +// +// for (ShuttleSlave shuttle : slaveProperties.getShuttle()) { +// //鑾峰彇鍥涘悜绌挎杞︾嚎绋� +// ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId()); +// ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol(); +// if (shuttleProtocol == null) { +// continue; +// } +// // 鏄惁瀛樺湪鍏呯數浠诲姟 +// WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttle.getId()); +// if (wrkCharge == null) { +// continue; +// } +// +// if (motionService.selectCount(new EntityWrapper<Motion>() +// .eq("device_ctg", DeviceCtgType.SHUTTLE.val()) +// .eq("device", shuttle.getId()) +// .eq("motion_sts", MotionStsType.EXECUTING.val())) > 0) { +// continue; +// } +// // 涓嶅浜庡厖鐢典腑 +// if (!shuttleProtocol.getPlcOutputCharge()) { +// continue; +// } +// // 鍦ㄥ厖鐢典綅 +// if (!shuttleProtocol.getCurrentLocNo().equals(shuttleCharge.locNo)) { +// continue; +// } +// // 鐢甸噺鏄惁杈惧埌婊$數瑕佹眰 +// if (shuttleProtocol.getBatteryPower$().intValue() < enoughPower) { +// continue; +// } +// // 宸叉湁杩佺Щ浠诲姟 +// if (wrkChargeService.selectMoveWorking(shuttle.getId()) != null) { +// continue; +// } +// +// // 寰呮満浣� +// String standByLocNo = ShuttleTempLocType.query(shuttleProtocol.getShuttleNo().intValue(), 2, Utils.getLev(shuttleCharge.locNo)).locNo; +// +// shuttleDispatcher.generateShuttleChargeWrkComplete(shuttleProtocol.getShuttleNo().intValue(), standByLocNo); +// +// wrkCharge.setWrkSts(WrkMastStsType.COMPLETE_CHARGE.sts); +// wrkCharge.setIoTime(new Date()); +// wrkChargeMapper.updateById(wrkCharge); +// } + } + } diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/task/ClearDeviceDataLogScheduler.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/task/ClearDeviceDataLogScheduler.java new file mode 100644 index 0000000..0a12c94 --- /dev/null +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/task/ClearDeviceDataLogScheduler.java @@ -0,0 +1,24 @@ +package com.zy.asrs.wcs.core.task; + +import com.zy.asrs.wcs.rcs.service.DeviceDataLogService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class ClearDeviceDataLogScheduler { + + @Autowired + private DeviceDataLogService deviceDataLogService; + + /** + * 姣忓垎閽熸竻鐞�24灏忔椂涔嬪墠鐨勬棩蹇� + */ + @Scheduled(cron = "1 * * * * ? ") + public void clear() { + deviceDataLogService.clearLog(); + } + +} diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/mapper/DeviceDataLogMapper.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/mapper/DeviceDataLogMapper.java index 92f5c85..02adc83 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/mapper/DeviceDataLogMapper.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/mapper/DeviceDataLogMapper.java @@ -2,6 +2,7 @@ import com.zy.asrs.wcs.rcs.entity.DeviceDataLog; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @@ -9,4 +10,7 @@ @Repository public interface DeviceDataLogMapper extends BaseMapper<DeviceDataLog> { + @Delete("delete from wcs_device_data_log where create_time < DATEADD(HOUR, -24, GETDATE())") + int clearLog(); + } diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/DeviceDataLogService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/DeviceDataLogService.java index 83d10de..e73be6a 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/DeviceDataLogService.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/DeviceDataLogService.java @@ -5,4 +5,6 @@ public interface DeviceDataLogService extends IService<DeviceDataLog> { + int clearLog();//娓呯悊瓒呰繃24灏忔椂鏃ュ織鏁版嵁 + } diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/DeviceDataLogServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/DeviceDataLogServiceImpl.java index 7a538f8..1f0705a 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/DeviceDataLogServiceImpl.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/service/impl/DeviceDataLogServiceImpl.java @@ -9,4 +9,9 @@ @Service("deviceDataLogService") public class DeviceDataLogServiceImpl extends ServiceImpl<DeviceDataLogMapper, DeviceDataLog> implements DeviceDataLogService { + @Override + public int clearLog() { + return this.baseMapper.clearLog(); + } + } diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java index 5fb8600..75dd1fd 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java @@ -109,14 +109,14 @@ //鏄惁椤跺崌 shuttleProtocol.setHasLift(data.getInteger("palletStatus") == 1 ? true : false); //鏄惁鏈夋墭鐩� - shuttleProtocol.setHasPallet(data.getInteger("hasPallet") != 2 ? true : false); + shuttleProtocol.setHasPallet(data.getInteger("hasPallet") == null ? true : data.getInteger("hasPallet") != 2 ? true : false); //琛岄┒鏂瑰悜 shuttleProtocol.setRunDirection(data.getString("direction") == null ? "none" : data.getString("direction")); //鏄惁涓哄厖鐢电姸鎬� shuttleProtocol.setHasCharge((deviceStatus == 5 || deviceStatus == 13) ? true : false); //*********璇诲彇鎵╁睍瀛楁********** - InnerSuhttleExtend extend = JSON.parseObject(JSON.toJSONString(shuttleProtocol.getExtend()), InnerSuhttleExtend.class); + InnerSuhttleExtend extend = (InnerSuhttleExtend) shuttleProtocol.getExtend(); extend.setMapVersion(data.getString("version"));//鍦板浘鐗堟湰 extend.setStatusDescription(data.getString("statusDescription"));//鐘舵�佹弿杩� shuttleProtocol.setExtend(extend);//鎵╁睍瀛楁 -- Gitblit v1.9.1