| | |
| | | import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol; |
| | | import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol; |
| | | import com.zy.asrs.wcs.rcs.service.DeviceService; |
| | | import com.zy.asrs.wcs.rcs.thread.*; |
| | | import com.zy.asrs.wcs.rcs.thread.DevpThread; |
| | | import com.zy.asrs.wcs.rcs.thread.LedThread; |
| | | import com.zy.asrs.wcs.rcs.thread.LiftThread; |
| | | import com.zy.asrs.wcs.rcs.thread.ShuttleThread; |
| | | import com.zy.asrs.wcs.system.entity.Dict; |
| | | import com.zy.asrs.wcs.system.service.DictService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | private LiftDispatcher liftDispatcher; |
| | | @Autowired |
| | | private ShuttleStandbyService shuttleStandbyService; |
| | | |
| | | |
| | | private boolean isInEnable(DevpThread devpThread, Integer staNo) { |
| | | if (staNo == null) { |
| | | return false; |
| | | } |
| | | // 获取入库站信息 |
| | | switch (staNo) { |
| | | case 1011: |
| | | case 1012: |
| | | devpThread.getStation().get(1012).isInEnable(); |
| | | break; |
| | | case 1021: |
| | | case 1022: |
| | | case 1023: |
| | | devpThread.getStation().get(1022).isInEnable(); |
| | | break; |
| | | case 1031: |
| | | case 1032: |
| | | devpThread.getStation().get(1032).isInEnable(); |
| | | break; |
| | | case 1025: |
| | | case 1026: |
| | | devpThread.getStation().get(1025).isInEnable(); |
| | | break; |
| | | case 1013: |
| | | case 1014: |
| | | case 1015: |
| | | devpThread.getStation().get(1014).isInEnable(); |
| | | break; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | private boolean isOutEnable(DevpThread devpThread, Integer staNo) { |
| | | if (staNo == null) { |
| | | return false; |
| | | } |
| | | // 获取入库站信息 |
| | | switch (staNo) { |
| | | case 1011: |
| | | case 1012: |
| | | devpThread.getStation().get(1012).isOutEnable(); |
| | | break; |
| | | case 1021: |
| | | case 1022: |
| | | case 1023: |
| | | devpThread.getStation().get(1022).isOutEnable(); |
| | | break; |
| | | case 1031: |
| | | case 1032: |
| | | devpThread.getStation().get(1032).isOutEnable(); |
| | | break; |
| | | case 1025: |
| | | case 1026: |
| | | devpThread.getStation().get(1025).isOutEnable(); |
| | | break; |
| | | case 1013: |
| | | case 1014: |
| | | case 1015: |
| | | devpThread.getStation().get(1014).isOutEnable(); |
| | | break; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 组托 |
| | |
| | | |
| | | // 判断是否满足入库条件 |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() |
| | | && staProtocol.isInEnable() |
| | | && isInEnable(devpThread, inSta.getStaNo()) |
| | | && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) |
| | | && staProtocol.isPakMk() |
| | | ) { |
| | |
| | | if (task1 != null) { |
| | | News.error("工作档已存在,工作号={}", task1.getTaskNo()); |
| | | if (staProtocol.getWorkNo().intValue() != Integer.parseInt(task1.getTaskNo())) { |
| | | devpThread.writeWorkSta(staProtocol.getSiteId(), Short.parseShort(task1.getTaskNo()), Short.parseShort(task1.getOriginSite())); |
| | | devpThread.writeWorkSta(staProtocol.getSiteId(), Short.parseShort(task1.getTaskNo()), Short.parseShort(task1.getDestSite())); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | News.info("输送线入库命令下发,任务数据={}", JSON.toJSON(task1)); |
| | | } |
| | |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | int workNo = staProtocol.getWorkNo().intValue(); |
| | | |
| | | int workNo = 0; |
| | | // 判断是否满足入库条件 |
| | | if (staProtocol.isAutoing() |
| | | && staProtocol.isLoading() |
| | | && staProtocol.isInEnable() |
| | | && (workNo >= 0) |
| | | // && staProtocol.isPakMk() |
| | | ) { |
| | | if ((staProtocol.getSiteId() == 1015 || staProtocol.getSiteId() == 1023 || staProtocol.getSiteId() == 1026 || staProtocol.getSiteId() == 1032) && |
| | | staProtocol.isAutoing() && staProtocol.isLoading()) { |
| | | workNo = staProtocol.getFinishWorkNo().intValue(); |
| | | } else if ((staProtocol.getSiteId() == 1012) && staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()) { |
| | | workNo = staProtocol.getWorkNo().intValue(); |
| | | } else { |
| | | continue; |
| | | } |
| | | |
| | | Task task = taskService.getOne(new LambdaQueryWrapper<Task>() |
| | | .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts) |
| | |
| | | News.error("更新工作档失败!!! [工作号:{}]", task.getTaskNo()); |
| | | } |
| | | break; |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | for (Integer staNo : staArr) { |
| | | // 获取叉车站点 |
| | | StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | if (staProtocol == null) { continue; } |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } |
| | | if (staProtocol.getWorkNo() != 0) { |
| | | reset = false; |
| | | break; |