充电桩逻辑
This commit is contained in:
@@ -50,6 +50,15 @@ public class SrgvChargingJob extends BaseEntity
|
||||
@Excel(name = "充电桩编号")
|
||||
private String chargingId;
|
||||
|
||||
private String taskNo;
|
||||
|
||||
public String getTaskNo() {
|
||||
return taskNo;
|
||||
}
|
||||
public void setTaskNo(String taskNo) {
|
||||
this.taskNo = taskNo;
|
||||
}
|
||||
|
||||
public void setGuid(String guid)
|
||||
{
|
||||
this.guid = guid;
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.ruoyi.bas.srgvmap.service.IWcsSrgvMapService;
|
||||
import com.ruoyi.bas.srgvmap.service.RoadCacheService;
|
||||
import com.ruoyi.common.domain.SendData2;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
import com.ruoyi.device.cdz.domain.DeviceCdz;
|
||||
import com.ruoyi.device.srgv.domain.DeviceSrgv;
|
||||
import com.ruoyi.device.srgv.service.IDeviceSrgvService;
|
||||
import com.ruoyi.device.tsj.domain.DeviceTsj;
|
||||
@@ -23,6 +24,7 @@ import com.ruoyi.queue.srgv.service.IWcsSrgvQueueFinishService;
|
||||
import com.ruoyi.queue.srgv.service.IWcsSrgvQueueService;
|
||||
import com.ruoyi.queue.tsj.domain.TsjDeviceExecutionQueue;
|
||||
import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueService;
|
||||
import com.ruoyi.schedule.plcRead.cdz.PlcCdzRead;
|
||||
import com.ruoyi.schedule.plcRead.srgv.PlcSrgvRead;
|
||||
import com.ruoyi.schedule.plcRead.srgv.roadUtil.PathFinder;
|
||||
import com.ruoyi.schedule.plcRead.tsj.PlcTsjRead;
|
||||
@@ -98,7 +100,6 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
|
||||
createCarQueue(deviceSrgv);
|
||||
|
||||
|
||||
inCharging(deviceSrgv);
|
||||
|
||||
outCharging(deviceSrgv);
|
||||
@@ -129,7 +130,25 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
* @param deviceSrgv
|
||||
*/
|
||||
private void outCharging(DeviceSrgv deviceSrgv) {
|
||||
|
||||
SrgvChargingJob param = new SrgvChargingJob();
|
||||
param.setJobStatus("1");
|
||||
param.setJobType("2");
|
||||
param.setAgvId(deviceSrgv.getDeviceId().toString());
|
||||
List<SrgvChargingJob> srgvChargingJobs = srgvChargingJobMapper.selectSrgvChargingJobList(param);
|
||||
if (CollUtil.isNotEmpty(srgvChargingJobs)) {
|
||||
for (SrgvChargingJob srgvChargingJob : srgvChargingJobs) {
|
||||
String chargingId = srgvChargingJob.getChargingId();
|
||||
DeviceCdz deviceCdz = PlcCdzRead.deviceCdzMap.get(chargingId);
|
||||
if (ObjUtil.isNotNull(deviceCdz)){
|
||||
//下发断电任务
|
||||
int i = PlcCdzRead.WriteToCdz("", null);
|
||||
if (i == 1){
|
||||
srgvChargingJobMapper.insertHistory(srgvChargingJob.getGuid());
|
||||
srgvChargingJobMapper.deleteSrgvChargingJobByGuid(srgvChargingJob.getGuid());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -146,12 +165,45 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
List<SrgvChargingJob> srgvChargingJobs = srgvChargingJobMapper.selectSrgvChargingJobList(param);
|
||||
if (CollUtil.isNotEmpty(srgvChargingJobs)) {
|
||||
SrgvChargingJob srgvChargingJob = srgvChargingJobs.get(0);
|
||||
if ("1".equals(srgvChargingJob.getChargingStatus())){
|
||||
//初始状态
|
||||
|
||||
//判断小车和充电桩是否在同一层
|
||||
String agvId = srgvChargingJob.getAgvId();
|
||||
String chargingId = srgvChargingJob.getChargingId();
|
||||
DeviceSrgv srgv = PlcSrgvRead.deviceSrgvMap.get(agvId);
|
||||
DeviceCdz cdz = PlcCdzRead.deviceCdzMap.get(chargingId);
|
||||
if (srgv.getCurrFloor().equals(cdz.getSzcs())){
|
||||
//生成四向小车充电队列
|
||||
String chargingSite = srgvChargingJob.getChargingSite();//充电桩站点
|
||||
WcsSrgvQueue wcsSrgvQueueParam = new WcsSrgvQueue();
|
||||
wcsSrgvQueueParam.setAgvId(deviceSrgv.getDeviceId().toString());
|
||||
List<WcsSrgvQueue> wcsSrgvQueues = wcsSagvQueueMapper.selectWcsSrgvQueueList(wcsSrgvQueueParam);
|
||||
if (CollUtil.isEmpty(wcsSrgvQueues)) {
|
||||
//生成队列
|
||||
createSrgvChargingQueue(deviceSrgv, chargingSite,"8");
|
||||
srgvChargingJob.setJobStatus("3");
|
||||
srgvChargingJobMapper.updateSrgvChargingJob(srgvChargingJob);
|
||||
}
|
||||
}else {
|
||||
//生成四向小车换层队列
|
||||
WcsSrgvQueue wcsSrgvQueueParam = new WcsSrgvQueue();
|
||||
wcsSrgvQueueParam.setAgvId(deviceSrgv.getDeviceId().toString());
|
||||
String chargingSite = srgvChargingJob.getChargingSite();//充电桩站点
|
||||
List<WcsSrgvQueue> wcsSrgvQueues = wcsSagvQueueMapper.selectWcsSrgvQueueList(wcsSrgvQueueParam);
|
||||
if (CollUtil.isEmpty(wcsSrgvQueues)) {
|
||||
createSrgvChargingQueue(deviceSrgv, chargingSite,"4");
|
||||
srgvChargingJob.setJobStatus("2");
|
||||
srgvChargingJobMapper.updateSrgvChargingJob(srgvChargingJob);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void createSrgvChargingQueue(DeviceSrgv deviceSrgv, String chargingSite,String type) {
|
||||
WcsSrgvQueue wcsSrgvQueue = new WcsSrgvQueue();
|
||||
wcsSrgvQueue.setGuid(UUID.randomUUID().toString());
|
||||
wcsSrgvQueue.setTaskNo("");
|
||||
@@ -163,12 +215,11 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
wcsSrgvQueue.setCargoPickSite("");
|
||||
wcsSrgvQueue.setCargoPlaceSite("");
|
||||
wcsSrgvQueue.setStartSite(deviceSrgv.getCurrSite());
|
||||
|
||||
WcsSrgvMap wcsSrgvMap = wcsSrgvMapService.selectWcsSrgvMapBySiteId(chargingSite);
|
||||
if (wcsSrgvMap.getTheLayer().equals(deviceSrgv.getCurrFloor())) {
|
||||
wcsSrgvQueue.setEndSite(chargingSite);
|
||||
} else {
|
||||
if ("4".equals(type)){
|
||||
wcsSrgvQueue.setEndSite("tsj");
|
||||
}else if ("8".equals(type)){
|
||||
wcsSrgvQueue.setEndSite(chargingSite);
|
||||
}
|
||||
wcsSrgvQueue.setTheFloor(deviceSrgv.getCurrFloor().toString());
|
||||
wcsSrgvQueue.setCreateDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
||||
@@ -177,8 +228,6 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
wcsSrgvQueue.setDefault07(Convert.toStr(wcsSrgvMap.getZ()));
|
||||
wcsSagvQueueMapper.insertWcsSrgvQueue(wcsSrgvQueue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 四向小车任务处理
|
||||
@@ -291,7 +340,8 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
} else{
|
||||
if ( "1".equals(wcsSrgvQueue.getIssued())) {
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(wcsSrgvQueue.getTaskNo()));
|
||||
if (deviceSrgv.getCurrSite().equals(wcsSrgvQueue.getEndSite()) && wcsSrgvQueue.getTaskType().equals("1")) {
|
||||
if (mydoJob != null){
|
||||
if (deviceSrgv.getCurrSite().equals(wcsSrgvQueue.getEndSite()) && "1".equals(wcsSrgvQueue.getTaskType())) {
|
||||
// todo 通知wms入库完成 完成队列 完成作业
|
||||
wcsSagvQueueMapper.insertHistory(wcsSrgvQueue.getTaskNo());
|
||||
wcsSagvQueueMapper.deleteWcsSrgvQueueByGuid(wcsSrgvQueue.getGuid());
|
||||
@@ -299,14 +349,14 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
mydoJobService.insertHistory(mydoJob.getJobId());
|
||||
mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId());
|
||||
|
||||
} else if (deviceSrgv.getCurrSite().equals(wcsSrgvQueue.getDefault03()) && wcsSrgvQueue.getTaskType().equals("2")) {
|
||||
} else if (deviceSrgv.getCurrSite().equals(wcsSrgvQueue.getDefault03()) && "2".equals(wcsSrgvQueue.getTaskType())) {
|
||||
//完成队列 更新作业阶段
|
||||
wcsSagvQueueMapper.insertHistory(wcsSrgvQueue.getTaskNo());
|
||||
wcsSagvQueueMapper.deleteWcsSrgvQueueByGuid(wcsSrgvQueue.getGuid());
|
||||
//提升机修改阶段
|
||||
// mydoJob.setExecutionPhase("");
|
||||
// mydoJobService.updateMydoJob(mydoJob);
|
||||
} else if (deviceSrgv.getCurrSite().equals(wcsSrgvQueue.getDefault03()) && wcsSrgvQueue.getTaskType().equals("4")) {
|
||||
} else if (deviceSrgv.getCurrSite().equals(wcsSrgvQueue.getEndSite()) && "4".equals(wcsSrgvQueue.getTaskType())) {
|
||||
//根据任务类型 ,生成队列
|
||||
if (Convert.toInt(mydoJob.getInOrOut()) < 20) {
|
||||
wcsSagvQueueMapper.insertHistory(wcsSrgvQueue.getTaskNo());
|
||||
@@ -318,17 +368,36 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
wcsSagvQueueMapper.deleteWcsSrgvQueueByGuid(wcsSrgvQueue.getGuid());
|
||||
createCarQueue(mydoJob, deviceSrgv, "2","0");
|
||||
}
|
||||
}else if(deviceSrgv.getCurrSite().equals(wcsSrgvQueue.getDefault03()) && wcsSrgvQueue.getTaskType().equals("8")){
|
||||
}else if(deviceSrgv.getCurrSite().equals(wcsSrgvQueue.getDefault03()) && "8".equals(wcsSrgvQueue.getTaskType())){
|
||||
wcsSagvQueueMapper.insertHistory(wcsSrgvQueue.getTaskNo());
|
||||
wcsSagvQueueMapper.deleteWcsSrgvQueueByGuid(wcsSrgvQueue.getGuid());
|
||||
|
||||
}else if ( deviceSrgv.getCurrSite().equals(wcsSrgvQueue.getEndSite()) && wcsSrgvQueue.getTaskType().equals("3")) {
|
||||
//充电任务
|
||||
}
|
||||
}else {
|
||||
//查询充电任务
|
||||
SrgvChargingJob srgvChargingJob = new SrgvChargingJob();
|
||||
srgvChargingJob.setAgvId(String.valueOf(wcsSrgvQueue.getAgvId()));
|
||||
srgvChargingJob.setTaskNo(wcsSrgvQueue.getTaskNo());
|
||||
srgvChargingJob.setJobStatus("2");
|
||||
srgvChargingJob.setJobType("1");
|
||||
List<SrgvChargingJob> srgvChargingJobs = srgvChargingJobMapper.selectSrgvChargingJobList(srgvChargingJob);
|
||||
if (!srgvChargingJobs.isEmpty()){
|
||||
SrgvChargingJob srgvChargingJob1 = srgvChargingJobs.get(0);
|
||||
if ( deviceSrgv.getCurrSite().equals(wcsSrgvQueue.getDefault03()) && "4".equals(wcsSrgvQueue.getTaskType())) {
|
||||
//查询换层任务
|
||||
wcsSagvQueueMapper.insertHistory(wcsSrgvQueue.getTaskNo());
|
||||
wcsSagvQueueMapper.deleteWcsSrgvQueueByGuid(wcsSrgvQueue.getGuid());
|
||||
//修改充电任务
|
||||
srgvChargingJob1.setJobStatus("1");
|
||||
srgvChargingJobMapper.updateSrgvChargingJob(srgvChargingJob1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// }
|
||||
|
||||
@@ -129,11 +129,11 @@ public class TsjThread implements Runnable {
|
||||
if (CollUtil.isNotEmpty(wcsSrgvQueues)) {
|
||||
WcsSrgvQueue wcsSrgvQueue = wcsSrgvQueues.get(0);
|
||||
String rwlx = "";
|
||||
if ("2".equals(wcsSrgvQueue.getDefault02())){
|
||||
if ("2".equals(wcsSrgvQueue.getTaskType())){
|
||||
//出库
|
||||
rwlx = "1";
|
||||
}
|
||||
if ("4".equals(wcsSrgvQueue.getDefault02()) || "3".equals(wcsSrgvQueue.getDefault02()) || "8".equals(wcsSrgvQueue.getDefault02())){
|
||||
if ( "3".equals(wcsSrgvQueue.getTaskType()) || "8".equals(wcsSrgvQueue.getTaskType())){
|
||||
//
|
||||
rwlx = "2";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user