下发充电任务 断电任务

This commit is contained in:
liuhanqing
2025-12-01 11:03:48 +08:00
parent b484605c9c
commit d765c0a8cb

View File

@@ -56,21 +56,21 @@ public class CdzThread implements Runnable {
List<DeviceSrgv> middleBatterySRgv = new ArrayList<>(); List<DeviceSrgv> middleBatterySRgv = new ArrayList<>();
for (String sRgv : PlcSrgvRead.deviceSrgvMap.keySet()) { for (String sRgv : PlcSrgvRead.deviceSrgvMap.keySet()) {
DeviceSrgv deviceSrgv = PlcSrgvRead.deviceSrgvMap.get(sRgv); DeviceSrgv deviceSrgv = PlcSrgvRead.deviceSrgvMap.get(sRgv);
if (deviceSrgv.getWorkMode()==5 && deviceSrgv.getStatus()!=3 ){ if (deviceSrgv.getWorkMode() == 5 && deviceSrgv.getStatus() != 3) {
if (deviceSrgv.getBattery()<=LITTLE_BETTERY){ if (deviceSrgv.getBattery() <= LITTLE_BETTERY) {
littleBatterySRgv.add(deviceSrgv); littleBatterySRgv.add(deviceSrgv);
}else if (deviceSrgv.getBattery()<=MIDDLE_BETTERY){ } else if (deviceSrgv.getBattery() <= MIDDLE_BETTERY) {
middleBatterySRgv.add(deviceSrgv); middleBatterySRgv.add(deviceSrgv);
} }
} }
} }
//优先低电量小车充电 //优先低电量小车充电
if (CollUtil.isNotEmpty(littleBatterySRgv)){ if (CollUtil.isNotEmpty(littleBatterySRgv)) {
//生成充电任务 //生成充电任务
createChargingInJob(littleBatterySRgv); createChargingInJob(littleBatterySRgv);
}else { } else {
if (CollUtil.isNotEmpty(middleBatterySRgv)){ if (CollUtil.isNotEmpty(middleBatterySRgv)) {
//生成充电任务 //生成充电任务
createChargingInJob(middleBatterySRgv); createChargingInJob(middleBatterySRgv);
} }
@@ -94,12 +94,15 @@ public class CdzThread implements Runnable {
if (CollUtil.isNotEmpty(srgvChargingJobs)) { if (CollUtil.isNotEmpty(srgvChargingJobs)) {
for (SrgvChargingJob srgvChargingJob : srgvChargingJobs) { for (SrgvChargingJob srgvChargingJob : srgvChargingJobs) {
int i = PlcCdzRead.WriteToCdz("", null); if ("0".equals(srgvChargingJob.getChargingStatus())) {
if (i == 1) { int i = PlcCdzRead.WriteToCdz("", null);
srgvChargingJob.setChargingStatus("1"); if (i == 1) {
srgvChargingJob.setChargingDate(DateUtil.formatDateTime(DateUtil.date())); srgvChargingJob.setChargingStatus("2");
chargingJobService.updateSrgvChargingJob(srgvChargingJob); 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()); DeviceSrgv deviceSrgv = PlcSrgvRead.deviceSrgvMap.get(deviceCdz.getSpare1());
if (deviceSrgv.getBattery() >= 50) { if (deviceSrgv.getBattery() >= 50) {
//生成断电任务 //生成断电任务
createChargingOutJob(deviceSrgv,deviceCdz); createChargingOutJob(deviceSrgv, deviceCdz);
break;
} }
} }
} }
@@ -142,13 +146,16 @@ public class CdzThread implements Runnable {
List<SrgvChargingJob> srgvChargingJobDds = chargingJobService.selectSrgvChargingJobList(srgvChargingJobDdParam); List<SrgvChargingJob> srgvChargingJobDds = chargingJobService.selectSrgvChargingJobList(srgvChargingJobDdParam);
if (CollUtil.isNotEmpty(srgvChargingJobDds)) { if (CollUtil.isNotEmpty(srgvChargingJobDds)) {
for (SrgvChargingJob srgvChargingJob : srgvChargingJobDds) { for (SrgvChargingJob srgvChargingJob : srgvChargingJobs) {
int i = PlcCdzRead.WriteToCdz("", null); if ("0".equals(srgvChargingJob.getChargingStatus())) {
if (i == 1) { int i = PlcCdzRead.WriteToCdz("", null);
srgvChargingJob.setChargingStatus("1"); if (i == 1) {
srgvChargingJob.setChargingDate(DateUtil.formatDateTime(DateUtil.date())); srgvChargingJob.setChargingStatus("1");
chargingJobService.updateSrgvChargingJob(srgvChargingJob); srgvChargingJob.setChargingDate(DateUtil.formatDateTime(DateUtil.date()));
chargingJobService.updateSrgvChargingJob(srgvChargingJob);
}
} }
} }
} }
@@ -157,19 +164,20 @@ public class CdzThread implements Runnable {
/** /**
* 创建充电任务 * 创建充电任务
*
* @param srgvList * @param srgvList
*/ */
private void createChargingInJob(List<DeviceSrgv> srgvList) { private void createChargingInJob(List<DeviceSrgv> srgvList) {
srgvList.sort((o1, o2) -> o2.getBattery()-o1.getBattery()); srgvList.sort((o1, o2) -> o2.getBattery() - o1.getBattery());
for (DeviceSrgv deviceSrgv : srgvList) { for (DeviceSrgv deviceSrgv : srgvList) {
SrgvChargingJob wcsChargingJob = new SrgvChargingJob(); SrgvChargingJob wcsChargingJob = new SrgvChargingJob();
wcsChargingJob.setJobType("1"); wcsChargingJob.setJobType("1");
wcsChargingJob.setAgvId(deviceSrgv.getDeviceId().toString()); wcsChargingJob.setAgvId(deviceSrgv.getDeviceId().toString());
List<SrgvChargingJob> srgvChargingJobs = chargingJobService.selectSrgvChargingJobList(wcsChargingJob); List<SrgvChargingJob> srgvChargingJobs = chargingJobService.selectSrgvChargingJobList(wcsChargingJob);
if (CollUtil.isEmpty(srgvChargingJobs)){ if (CollUtil.isEmpty(srgvChargingJobs)) {
List<DeviceCdz> cdzList = deviceCdzService.selectDeviceCdzListNoSRgvId(); List<DeviceCdz> cdzList = deviceCdzService.selectDeviceCdzListNoSRgvId();
if (CollUtil.isNotEmpty(cdzList)){ if (CollUtil.isNotEmpty(cdzList)) {
//寻找最接近的充电桩 //寻找最接近的充电桩
Integer floor = deviceSrgv.getCurrFloor(); Integer floor = deviceSrgv.getCurrFloor();
DeviceCdz cdz = null; DeviceCdz cdz = null;
@@ -212,29 +220,22 @@ public class CdzThread implements Runnable {
* @param deviceSrgv * @param deviceSrgv
*/ */
private void createChargingOutJob(DeviceSrgv deviceSrgv, DeviceCdz cdz) { private void createChargingOutJob(DeviceSrgv deviceSrgv, DeviceCdz cdz) {
SrgvChargingJob wcsChargingJob = new SrgvChargingJob(); SrgvChargingJob srgvChargingJobParam = new SrgvChargingJob();
wcsChargingJob.setJobType("2"); srgvChargingJobParam.setAgvId(deviceSrgv.getDeviceId().toString());
wcsChargingJob.setAgvId(deviceSrgv.getDeviceId().toString()); srgvChargingJobParam.setChargingSite(cdz.getSiteId());
List<SrgvChargingJob> srgvChargingJobs = chargingJobService.selectSrgvChargingJobList(wcsChargingJob); srgvChargingJobParam.setChargingId(cdz.getId().toString());
if (CollUtil.isEmpty(srgvChargingJobs)) { List<SrgvChargingJob> srgvChargingJobs = chargingJobService.selectSrgvChargingJobList(srgvChargingJobParam);
//生成充电任务 if (CollUtil.isNotEmpty(srgvChargingJobs)) {
SrgvChargingJob srgvChargingJobParam = new SrgvChargingJob(); SrgvChargingJob scj = srgvChargingJobs.get(0);
srgvChargingJobParam.setAgvId(deviceSrgv.getDeviceId().toString()); //scj.setGuid(IdUtil.fastSimpleUUID());
srgvChargingJobParam.setChargingSite(cdz.getSiteId()); scj.setChargingSite(cdz.getSiteId());
srgvChargingJobParam.setChargingId(cdz.getId().toString()); scj.setJobStatus("1");
List<SrgvChargingJob> wcsChargingJobs = chargingJobService.selectSrgvChargingJobList(srgvChargingJobParam); scj.setChargingStatus("0");
if (CollUtil.isEmpty(wcsChargingJobs)) { scj.setStartDate(DateUtil.now());
SrgvChargingJob scj = new SrgvChargingJob(); scj.setJobType("2");//到充电桩
scj.setGuid(IdUtil.fastSimpleUUID()); scj.setAgvId(deviceSrgv.getDeviceId().toString());
scj.setChargingSite(cdz.getSiteId()); scj.setChargingId(deviceSrgv.getDeviceId().toString());
scj.setJobStatus("1"); chargingJobService.insertSrgvChargingJob(scj);
scj.setChargingStatus("0");
scj.setStartDate(DateUtil.now());
scj.setJobType("2");//到充电桩
scj.setAgvId(deviceSrgv.getDeviceId().toString());
scj.setChargingId(deviceSrgv.getDeviceId().toString());
chargingJobService.insertSrgvChargingJob(scj);
}
} }
} }