From d765c0a8cb0fd5ee48b5ba0bd3c9252daf14faae Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Mon, 1 Dec 2025 11:03:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E5=8F=91=E5=85=85=E7=94=B5=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=20=E6=96=AD=E7=94=B5=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedule/scheduleTask/cdz/CdzThread.java | 89 ++++++++++--------- 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/cdz/CdzThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/cdz/CdzThread.java index f13aecc..2dc6f08 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/cdz/CdzThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/cdz/CdzThread.java @@ -56,21 +56,21 @@ public class CdzThread implements Runnable { List middleBatterySRgv = new ArrayList<>(); for (String sRgv : PlcSrgvRead.deviceSrgvMap.keySet()) { DeviceSrgv deviceSrgv = PlcSrgvRead.deviceSrgvMap.get(sRgv); - if (deviceSrgv.getWorkMode()==5 && deviceSrgv.getStatus()!=3 ){ - if (deviceSrgv.getBattery()<=LITTLE_BETTERY){ + if (deviceSrgv.getWorkMode() == 5 && deviceSrgv.getStatus() != 3) { + if (deviceSrgv.getBattery() <= LITTLE_BETTERY) { littleBatterySRgv.add(deviceSrgv); - }else if (deviceSrgv.getBattery()<=MIDDLE_BETTERY){ + } else if (deviceSrgv.getBattery() <= MIDDLE_BETTERY) { middleBatterySRgv.add(deviceSrgv); } } } //优先低电量小车充电 - if (CollUtil.isNotEmpty(littleBatterySRgv)){ + if (CollUtil.isNotEmpty(littleBatterySRgv)) { //生成充电任务 createChargingInJob(littleBatterySRgv); - }else { - if (CollUtil.isNotEmpty(middleBatterySRgv)){ + } else { + if (CollUtil.isNotEmpty(middleBatterySRgv)) { //生成充电任务 createChargingInJob(middleBatterySRgv); } @@ -94,12 +94,15 @@ public class CdzThread implements Runnable { if (CollUtil.isNotEmpty(srgvChargingJobs)) { for (SrgvChargingJob srgvChargingJob : srgvChargingJobs) { - int i = PlcCdzRead.WriteToCdz("", null); - if (i == 1) { - srgvChargingJob.setChargingStatus("1"); - srgvChargingJob.setChargingDate(DateUtil.formatDateTime(DateUtil.date())); - chargingJobService.updateSrgvChargingJob(srgvChargingJob); + if ("0".equals(srgvChargingJob.getChargingStatus())) { + int i = PlcCdzRead.WriteToCdz("", null); + if (i == 1) { + srgvChargingJob.setChargingStatus("2"); + srgvChargingJob.setChargingDate(DateUtil.formatDateTime(DateUtil.date())); + chargingJobService.updateSrgvChargingJob(srgvChargingJob); + } } + } } @@ -126,7 +129,8 @@ public class CdzThread implements Runnable { DeviceSrgv deviceSrgv = PlcSrgvRead.deviceSrgvMap.get(deviceCdz.getSpare1()); if (deviceSrgv.getBattery() >= 50) { //生成断电任务 - createChargingOutJob(deviceSrgv,deviceCdz); + createChargingOutJob(deviceSrgv, deviceCdz); + break; } } } @@ -142,13 +146,16 @@ public class CdzThread implements Runnable { List srgvChargingJobDds = chargingJobService.selectSrgvChargingJobList(srgvChargingJobDdParam); if (CollUtil.isNotEmpty(srgvChargingJobDds)) { - for (SrgvChargingJob srgvChargingJob : srgvChargingJobDds) { - int i = PlcCdzRead.WriteToCdz("", null); - if (i == 1) { - srgvChargingJob.setChargingStatus("1"); - srgvChargingJob.setChargingDate(DateUtil.formatDateTime(DateUtil.date())); - chargingJobService.updateSrgvChargingJob(srgvChargingJob); + for (SrgvChargingJob srgvChargingJob : srgvChargingJobs) { + if ("0".equals(srgvChargingJob.getChargingStatus())) { + int i = PlcCdzRead.WriteToCdz("", null); + if (i == 1) { + srgvChargingJob.setChargingStatus("1"); + srgvChargingJob.setChargingDate(DateUtil.formatDateTime(DateUtil.date())); + chargingJobService.updateSrgvChargingJob(srgvChargingJob); + } } + } } @@ -157,19 +164,20 @@ public class CdzThread implements Runnable { /** * 创建充电任务 + * * @param srgvList */ private void createChargingInJob(List srgvList) { - srgvList.sort((o1, o2) -> o2.getBattery()-o1.getBattery()); + srgvList.sort((o1, o2) -> o2.getBattery() - o1.getBattery()); for (DeviceSrgv deviceSrgv : srgvList) { SrgvChargingJob wcsChargingJob = new SrgvChargingJob(); wcsChargingJob.setJobType("1"); wcsChargingJob.setAgvId(deviceSrgv.getDeviceId().toString()); List srgvChargingJobs = chargingJobService.selectSrgvChargingJobList(wcsChargingJob); - if (CollUtil.isEmpty(srgvChargingJobs)){ + if (CollUtil.isEmpty(srgvChargingJobs)) { List cdzList = deviceCdzService.selectDeviceCdzListNoSRgvId(); - if (CollUtil.isNotEmpty(cdzList)){ + if (CollUtil.isNotEmpty(cdzList)) { //寻找最接近的充电桩 Integer floor = deviceSrgv.getCurrFloor(); DeviceCdz cdz = null; @@ -212,29 +220,22 @@ public class CdzThread implements Runnable { * @param deviceSrgv */ private void createChargingOutJob(DeviceSrgv deviceSrgv, DeviceCdz cdz) { - SrgvChargingJob wcsChargingJob = new SrgvChargingJob(); - wcsChargingJob.setJobType("2"); - wcsChargingJob.setAgvId(deviceSrgv.getDeviceId().toString()); - List srgvChargingJobs = chargingJobService.selectSrgvChargingJobList(wcsChargingJob); - if (CollUtil.isEmpty(srgvChargingJobs)) { - //生成充电任务 - SrgvChargingJob srgvChargingJobParam = new SrgvChargingJob(); - srgvChargingJobParam.setAgvId(deviceSrgv.getDeviceId().toString()); - srgvChargingJobParam.setChargingSite(cdz.getSiteId()); - srgvChargingJobParam.setChargingId(cdz.getId().toString()); - List wcsChargingJobs = chargingJobService.selectSrgvChargingJobList(srgvChargingJobParam); - if (CollUtil.isEmpty(wcsChargingJobs)) { - SrgvChargingJob scj = new SrgvChargingJob(); - scj.setGuid(IdUtil.fastSimpleUUID()); - scj.setChargingSite(cdz.getSiteId()); - scj.setJobStatus("1"); - scj.setChargingStatus("0"); - scj.setStartDate(DateUtil.now()); - scj.setJobType("2");//到充电桩 - scj.setAgvId(deviceSrgv.getDeviceId().toString()); - scj.setChargingId(deviceSrgv.getDeviceId().toString()); - chargingJobService.insertSrgvChargingJob(scj); - } + SrgvChargingJob srgvChargingJobParam = new SrgvChargingJob(); + srgvChargingJobParam.setAgvId(deviceSrgv.getDeviceId().toString()); + srgvChargingJobParam.setChargingSite(cdz.getSiteId()); + srgvChargingJobParam.setChargingId(cdz.getId().toString()); + List srgvChargingJobs = chargingJobService.selectSrgvChargingJobList(srgvChargingJobParam); + if (CollUtil.isNotEmpty(srgvChargingJobs)) { + SrgvChargingJob scj = srgvChargingJobs.get(0); + //scj.setGuid(IdUtil.fastSimpleUUID()); + scj.setChargingSite(cdz.getSiteId()); + scj.setJobStatus("1"); + scj.setChargingStatus("0"); + scj.setStartDate(DateUtil.now()); + scj.setJobType("2");//到充电桩 + scj.setAgvId(deviceSrgv.getDeviceId().toString()); + scj.setChargingId(deviceSrgv.getDeviceId().toString()); + chargingJobService.insertSrgvChargingJob(scj); } }