| | |
| | | package com.example.springboot.service; |
| | | |
| | | 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.S7control; |
| | | import com.example.springboot.entity.StorageCage; |
| | | import com.example.springboot.entity.StorageTask; |
| | | import com.example.springboot.mapper.HomeMapper; |
| | |
| | | private SpianService spianService; |
| | | |
| | | 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.198", 14).toString(); |
| | | if (types == 0) {// 终止进片任务 |
| | | List<StorageTask> cageList = homeMapper.SelectTaskByState(types); |
| | | for (StorageTask storageTask : cageList) { |
| | | outSliceServive.StopTask(storageTask.getGlassId(), types); |
| | | // 判断出片任务位置并清除对应玻璃id |
| | | if (storageTask.getGlassId() == A01glassid1 || storageTask.getGlassId() == A01glassid2) { |
| | | outSliceServive.StopTask(storageTask.getGlassId(), types); |
| | | ClearGlassId("DB101.10.0"); |
| | | } else if (storageTask.getGlassId() == B01glassid) { |
| | | outSliceServive.StopTask(storageTask.getGlassId(), types); |
| | | ClearGlassId("DB101.10.2"); |
| | | } else if (storageTask.getGlassId() == B02glassid) { |
| | | ClearGlassId("DB101.10.3"); |
| | | outSliceServive.StopTask(storageTask.getGlassId(), types); |
| | | } |
| | | } |
| | | // 发送终止进片任务信号 |
| | | } else {// 终止出片任务 |
| | |
| | | } else {// 出片 |
| | | outSliceServive.StopTask(storageCagez.getGlassId(), types); |
| | | } |
| | | // 判断出片任务位置并清除对应玻璃id |
| | | if (storageCagez.getGlassId() == A02glassid1) { |
| | | outSliceServive.StopTask(storageCagez.getGlassId(), types); |
| | | ClearGlassId("DB101.10.1"); |
| | | } else if (storageCagez.getGlassId() == B01glassid) { |
| | | outSliceServive.StopTask(storageCagez.getGlassId(), types); |
| | | ClearGlassId("DB101.10.2"); |
| | | } else if (storageCagez.getGlassId() == B02glassid) { |
| | | 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); |
| | | } |
| | | // 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 == 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); |
| | | } |
| | | |
| | | } |