package com.example.springboot.service;
|
|
import java.sql.SQLException;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.concurrent.TimeUnit;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import com.example.springboot.common.Result;
|
import com.example.springboot.component.Plchome;
|
import com.example.springboot.component.S7control;
|
import com.example.springboot.entity.Queue;
|
import com.example.springboot.entity.StorageCage;
|
import com.example.springboot.entity.StorageTask;
|
import com.example.springboot.entity.north_glass_buffer1;
|
import com.example.springboot.mapper.HomeMapper;
|
|
import lombok.extern.slf4j.Slf4j;
|
@Slf4j
|
@Service
|
public class StorageCageService {
|
@Autowired
|
private HomeMapper homeMapper;
|
|
@Autowired
|
private OutSliceServive outSliceServive;
|
|
@Autowired
|
private SpianService spianService;
|
|
@Autowired
|
private JdbcConnections jdbcConnections;
|
|
public void EndTask(int types) {
|
String A01glassid1 = spianService.queGlassid("DB103.128", 14).toString();
|
String A01glassid2 = spianService.queGlassid("DB103.142", 14).toString();
|
String A02glassid1 = spianService.queGlassid("DB103.156", 14).toString();
|
String B01glassid = spianService.queGlassid("DB103.184", 14).toString();
|
String B02glassid = spianService.queGlassid("DB103.212", 14).toString();
|
String D02glassid = spianService.queGlassid("DB103.58", 14).toString();
|
List<Short> DeviceList = S7control.getinstance().ReadWord("DB103.0", 10);
|
if (types == 0) {// 终止进片任务
|
List<StorageTask> cageList = homeMapper.SelectTaskByState(types);
|
for (StorageTask storageTask : cageList) {
|
// 判断出片任务位置并清除对应玻璃id
|
if ((storageTask.getGlassId().equals(A01glassid1) || storageTask.getGlassId().equals(A01glassid2))
|
&& DeviceList.get(4) == 0) {
|
outSliceServive.StopTask(storageTask.getGlassId(), types);
|
ClearGlassId("DB101.10.0");
|
}
|
if (storageTask.getGlassId().equals(B01glassid) && DeviceList.get(2) == 0) {
|
outSliceServive.StopTask(storageTask.getGlassId(), types);
|
ClearGlassId("DB101.10.2");
|
}
|
if (storageTask.getGlassId().equals(B02glassid) && DeviceList.get(3) == 0) {
|
ClearGlassId("DB101.10.3");
|
outSliceServive.StopTask(storageTask.getGlassId(), types);
|
}
|
log.info("stopfeedid:"+storageTask.getGlassId()+"D02id:"+D02glassid+"devicestate:"+DeviceList.get(1));
|
if (storageTask.getGlassId().equals(D02glassid) && DeviceList.get(1) == 0) {
|
ClearGlassId("DB101.9.3");
|
outSliceServive.StopTask(storageTask.getGlassId(), types);
|
}
|
}
|
// 发送终止进片任务信号
|
} else {// 终止出片任务
|
List<StorageTask> cageLists = homeMapper.SelectTaskByState(types);
|
List<StorageTask> cageList2 = homeMapper.SelectTaskByState(2);
|
if (cageList2.size() > 0) {
|
cageLists.add(cageList2.get(0));
|
}
|
for (StorageTask cageList : cageLists) {
|
if (cageList.getTaskType().equals("1")) {
|
System.out.println(DeviceList.get(5));
|
if (cageList.getGlassId().equals(A02glassid1) && DeviceList.get(5) == 0) {
|
outSliceServive.StopTask(cageList.getGlassId(), types);
|
ClearGlassId("DB101.10.1");
|
}
|
if (cageList.getGlassId().equals(B01glassid) && DeviceList.get(2) == 0) {
|
outSliceServive.StopTask(cageList.getGlassId(), types);
|
ClearGlassId("DB101.10.2");
|
}
|
if (cageList.getGlassId().equals(B02glassid) && DeviceList.get(3) == 0) {
|
outSliceServive.StopTask(cageList.getGlassId(), types);
|
ClearGlassId("DB101.10.3");
|
}
|
} else if (cageList.getTaskType().equals("2")) {
|
if (cageList.getGlassId().equals(A02glassid1) && DeviceList.get(5) == 0) {
|
outSliceServive.StopTask(cageList.getGlassId(), 2);
|
ClearGlassId("DB101.10.1");
|
}
|
if (cageList.getGlassId().equals(B01glassid) && DeviceList.get(2) == 0) {
|
outSliceServive.StopTask(cageList.getGlassId(), 2);
|
ClearGlassId("DB101.10.2");
|
}
|
if (cageList.getGlassId().equals(B02glassid) && DeviceList.get(3) == 0) {
|
outSliceServive.StopTask(cageList.getGlassId(), 2);
|
ClearGlassId("DB101.10.3");
|
}
|
}
|
}
|
|
// List<StorageCage> storageCages = homeMapper.selectinout(3);
|
// for (StorageCage storageCage : storageCages) {
|
// List<StorageCage> storageCagess =
|
// homeMapper.SelectStoragesGlassById(storageCage.getGlassId());
|
|
// for (StorageCage storageCagez : storageCagess) {
|
|
// if (storageCagez.getState().equals("2")) {// 调拨进片
|
// outSliceServive.StopTask(storageCagez.getGlassId(), 0);
|
// } else {// 出片
|
// outSliceServive.StopTask(storageCagez.getGlassId(), types);
|
// }
|
|
// // 判断出片任务位置并清除对应玻璃id
|
// if (storageCagez.getGlassId() == A02glassid1&&DeviceList.get(5)==0) {
|
// outSliceServive.StopTask(storageCagez.getGlassId(), types);
|
// ClearGlassId("DB101.10.1");
|
// } else if (storageCagez.getGlassId() == B01glassid&&DeviceList.get(2)==0) {
|
// outSliceServive.StopTask(storageCagez.getGlassId(), types);
|
// ClearGlassId("DB101.10.2");
|
// } else if (storageCagez.getGlassId() == B02glassid&&DeviceList.get(3)==0) {
|
// ClearGlassId("DB101.10.3");
|
// outSliceServive.StopTask(storageCagez.getGlassId(), types);
|
// }
|
// }
|
// }
|
}
|
}
|
|
// 手动完成任务
|
public void UpdateTask(Integer types, Integer shelfrack, String glassid) {
|
if (types == 0) {// 完成进片
|
spianService.overtask(glassid);
|
} else if (types == 1) {// 完成出片
|
spianService.overtask(glassid);
|
}
|
// else if (types == 2) {// 终止进片任务
|
// outSliceServive.StopTask(glassid, 0);
|
// // 发送终止进片任务信号
|
// } else {// 终止出片任务
|
// outSliceServive.StopTask(glassid, 1);
|
// }
|
}
|
|
// 判断任务类型后清除对应玻璃id
|
public Result ClearGlassId(String position, String glassid) {
|
Map<String, Object> map = new HashMap<>();
|
if (S7control.getinstance().CheckConnected() == true) {
|
// 判断进出还是出片任务
|
Short type = homeMapper.SelectTaskByGlassId(glassid);
|
if (type != null) {
|
if (type == 0) {
|
// 进片
|
outSliceServive.StopTask(glassid, 0);
|
} else if (type == 1) {
|
// 出片
|
outSliceServive.StopTask(glassid, 1);
|
} else {
|
// 调拨
|
outSliceServive.StopTask(glassid, 0);
|
outSliceServive.StopTask(glassid, 1);
|
}
|
}
|
ClearGlassId(position);
|
map.put("message", "200");
|
} else {
|
map.put("message", "300");
|
}
|
return Result.success(map);
|
}
|
|
// 清除玻璃id
|
public Result ClearGlassId(String position) {
|
Map<String, Object> map = new HashMap<>();
|
if (S7control.getinstance().CheckConnected() == true) {
|
S7control.getinstance().WriteBit(position, true);
|
try {
|
TimeUnit.MILLISECONDS.sleep(300);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
S7control.getinstance().WriteBit(position, false);
|
map.put("message", "200");
|
} else {
|
map.put("message", "300");
|
}
|
return Result.success(map);
|
}
|
|
public Result InsertQueueGlassId(Short id, Queue queue) throws SQLException {
|
Map<String, Object> map = new HashMap<>();
|
|
Short zhi = 200;
|
short result = homeMapper.SelectStorageByGlassId(queue.getglassId());
|
if (result > 0) {
|
map.put("message", "500");
|
} else {
|
if (id == 1) {
|
// 调用伍存储过程
|
north_glass_buffer1 north_glass_buffer1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(queue.getglassId(), "", "");
|
zhi = spianService.selectAll(north_glass_buffer1);
|
if (zhi == 200) {
|
homeMapper.InsertQueueGlassId(queue, id);
|
}
|
}
|
map.put("message", zhi);
|
}
|
if (zhi != 200) {
|
Plchome.FeedState = true;
|
}
|
return Result.success(map);
|
}
|
|
public Short InsertQueueGlassIds(Short id, Queue queue) throws SQLException {
|
Map<String, Object> map = new HashMap<>();
|
|
Short zhi = 0;
|
short result = homeMapper.SelectStorageByGlassId(queue.getglassId());
|
if (result > 0) {
|
zhi=500;
|
map.put("message", "500");
|
} else {
|
if (id == 1) {
|
// 调用伍存储过程
|
north_glass_buffer1 north_glass_buffer1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(queue.getglassId(), "", "");
|
zhi = spianService.selectAll(north_glass_buffer1);
|
if (zhi == 200) {
|
homeMapper.InsertQueueGlassId(queue, id);
|
}
|
}
|
map.put("message", zhi);
|
}
|
if (zhi != 200) {
|
Plchome.FeedState = true;
|
}
|
return zhi;
|
}
|
|
}
|