| | |
| | | import com.zy.core.cache.OutputQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.enums.TaskType; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | |
| | | if (pakMk != null) { |
| | | staProtocol.setPakMk(pakMk.equals("Y")); |
| | | } |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(TaskType.WRITE, staProtocol)); |
| | | if (result) { |
| | | return R.ok(); |
| | | } else { |
| | |
| | | package com.zy.asrs.controller; |
| | | |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.zy.asrs.controller.requestParam.StaParam; |
| | | import com.zy.asrs.controller.requestParam.StationRequestParam; |
| | | import com.zy.asrs.controller.responseParam.StationResponseParam; |
| | | import com.zy.asrs.entity.Job; |
| | | import com.zy.asrs.service.JobService; |
| | |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class StaParam implements Serializable { |
| | |
| | | @TableField("job_sts") |
| | | private Integer jobSts; |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @TableField("start_time") |
| | | private Date startTime; |
| | | /** |
| | | * 入库时间 |
| | | */ |
| | | @TableField("wms_time") |
| | |
| | | public interface JobMapper extends BaseMapper<Job> { |
| | | |
| | | |
| | | |
| | | Job getJobByTaskNo(@Param("seqNum") String seqNum); |
| | | |
| | | Job getJobByJobNo(@Param("workNo") Integer workNo); |
| | |
| | | |
| | | List<Job> listJobByJobSts(@Param("jobSts") Integer jobSts); |
| | | |
| | | List<Job> listJobToLog(@Param("jobSts") Integer jobSts, @Param("day") Integer day); |
| | | |
| | | |
| | | } |
| | |
| | | import com.zy.asrs.entity.Job; |
| | | import com.zy.asrs.mapper.JobMapper; |
| | | import com.zy.asrs.service.JobService; |
| | | import com.zy.core.enums.ConveyorStateType; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | |
| | | //@Scheduled(cron = "0 0 2 * * ?") |
| | | @Scheduled(cron = "*/5 * * * * ?") |
| | | public void autoToLog() { |
| | | List<Job> jobs = jobMapper.listJobByJobSts(8); |
| | | List<Job> jobs = jobMapper.listJobByJobSts(ConveyorStateType.CLEARSIGNAL.getStatus()); |
| | | for (Job job : jobs) { |
| | | jobService.saveJobLog(job); |
| | | } |
| | | jobs = jobMapper.listJobByJobSts(2); |
| | | jobs = jobMapper.listJobToLog(ConveyorStateType.OUTBOUND.getStatus(), 1); |
| | | for (Job job : jobs) { |
| | | jobService.saveJobLog(job); |
| | | } |
| | |
| | | private JobLogMapper jobLogMapper; |
| | | |
| | | |
| | | |
| | | @Override |
| | | public Job getJobByTaskNo(String seqNum) { |
| | | return baseMapper.getJobByTaskNo(seqNum); |
| | |
| | | try { |
| | | // 执行配置的操作序列 |
| | | for (CtuOperationConfig config : properties.getOperations()) { |
| | | log.info("执行输送线操作: {}", config.getType()); |
| | | operationExecutor.execute(config); |
| | | } |
| | | |
| | |
| | | |
| | | public enum ConveyorStateType { |
| | | //出库设备上走 |
| | | OUTBOUND, |
| | | OUTBOUND(2), |
| | | //模拟用户 |
| | | FAKEUSER, |
| | | FAKEUSER(3), |
| | | //入库申请 |
| | | APPLYLOC, |
| | | APPLYLOC(4), |
| | | //入库设备上走 |
| | | INBOUND, |
| | | //清除输送线上的信号 |
| | | CLEARSIGNAL, |
| | | INBOUND(5), |
| | | //发送任务给RCS |
| | | SENDTASK; |
| | | SENDTASK(7), |
| | | //清除输送线上的信号 |
| | | CLEARSIGNAL(8), |
| | | ; |
| | | |
| | | private int status; |
| | | |
| | | ConveyorStateType() { |
| | | |
| | | ConveyorStateType(int status) { |
| | | this.status = status; |
| | | } |
| | | |
| | | |
| | | public int getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public void setStatus(int status) { |
| | | this.status = status; |
| | | } |
| | | } |
| New file |
| | |
| | | package com.zy.core.enums; |
| | | |
| | | public enum TaskType { |
| | | |
| | | READ, |
| | | WRITE, |
| | | ; |
| | | |
| | | |
| | | } |
| | |
| | | package com.zy.core.model; |
| | | |
| | | import com.zy.core.enums.TaskType; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | |
| | | @Data |
| | | public class Task { |
| | | |
| | | private Integer step; |
| | | private TaskType step; |
| | | |
| | | private Object data; |
| | | |
| | | public Task() { |
| | | } |
| | | |
| | | public Task(Integer step, Object data) { |
| | | public Task(TaskType step, Object data) { |
| | | this.step = step; |
| | | this.data = data; |
| | | } |
| | |
| | | StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, devp.getId()); |
| | | if (staProtocol == null) { |
| | | return; |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | // 判断是否满足条件 |
| | | if (!staProtocol.isLoading()) { |
| | | return; |
| | | continue; |
| | | } |
| | | if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) { |
| | | String barcode = barcodeThread.getBarcode(); |
| | | if (Cools.isEmpty(barcode)) { |
| | | log.info("未扫到码值:{}", barcode); |
| | | if (barcodeThread == null || Cools.isEmpty(barcode)) { |
| | | log.error("站点:{},未扫到码值:{}", staProtocol.getSiteId(), barcode); |
| | | return; |
| | | } |
| | | // 9991是空板,9992是满板 |
| | | if (staProtocol.getWorkNo() >= 9991 && staProtocol.getWorkNo() <= 9992) { |
| | | Job job = jobService.getJobByBarcode(barcode); |
| | | // 申请入库 |
| | | if (job == null || (job != null && job.getJobSts() == 8)) { |
| | | ApplyInDto applyInDto = new ApplyInDto(); |
| | | applyInDto.setStaNo(inSta.getStaNo() + ""); |
| | | applyInDto.setBarcode(barcode); |
| | | applyInDto.setFull(staProtocol.getWorkNo() == 9992); |
| | | ApplyInRepsonseDto locOfWms = wmsMainService.getLocOfWms(applyInDto); |
| | | ApplyInRepsonseDto locOfWms = wmsMainService.getLocOfWms(applyIn(barcode, inSta.getStaNo() + "", staProtocol)); |
| | | if (locOfWms != null) { |
| | | job = new Job(); |
| | | job.setLoc(locOfWms.getLocNo()); |
| | |
| | | job.setBarcode(barcode); |
| | | job.setStaNo(inSta.getTargetSta() + ""); |
| | | job.setJobNo(wrkLastnoService.nextWorkNo(WorkNoTypeType.WORK_NO_TYPE.type)); |
| | | job.setJobSts(4); |
| | | job.setJobSts(ConveyorStateType.APPLYLOC.getStatus()); |
| | | job.setWmsTime(new Date()); |
| | | jobService.insert(job); |
| | | } else { |
| | | log.info("WMS未返回库位信息,{}", applyInDto); |
| | | log.info("WMS未返回库位信息,条码:{},站点:{}", barcode, inSta.getStaNo()); |
| | | } |
| | | } |
| | | } |
| | |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | } |
| | | } |
| | | |
| | | private ApplyInDto applyIn(String barcode, String staNo, StaProtocol staProtocol) { |
| | | ApplyInDto applyInDto = new ApplyInDto(); |
| | | applyInDto.setStaNo(staNo); |
| | | applyInDto.setBarcode(barcode); |
| | | applyInDto.setFull(staProtocol.getWorkNo() == 9992); |
| | | return applyInDto; |
| | | } |
| | | } |
| | |
| | | package com.zy.core.operation.handler; |
| | | |
| | | import com.zy.asrs.entity.Job; |
| | | import com.zy.asrs.service.CtuMainService; |
| | | import com.zy.asrs.service.JobService; |
| | | import com.zy.asrs.service.WrkLastnoService; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.ConveyorStateType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.enums.TaskType; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | |
| | | |
| | | |
| | | @Autowired |
| | | private WrkLastnoService wrkLastnoService; |
| | | |
| | | @Autowired |
| | | private CtuMainService ctuMainService; |
| | | |
| | | @Autowired |
| | | private JobService jobService; |
| | | |
| | | |
| | |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(takeSta.getStaNo()); |
| | | if (staProtocol == null) { |
| | | return; |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | // 判断是否满足条件 |
| | | if (staProtocol.isLoading()) { |
| | | return; |
| | | continue; |
| | | } |
| | | if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) { |
| | | Job job = jobService.getJobByJobNo(staProtocol.getWorkNo()); |
| | | if (job != null && job.getJobSts() == 7) { |
| | | if (job != null && job.getJobSts() == ConveyorStateType.SENDTASK.getStatus()) { |
| | | //String s = ctuMainService.checkStationStatus(takeSta.getStaNo()); |
| | | staProtocol.setWorkNo(0); |
| | | staProtocol.setStaNo(0); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(TaskType.WRITE, staProtocol)); |
| | | if (result) { |
| | | log.info("" + config.getMark() + "站点清空失败:{},{}", takeSta.getStaNo(), staProtocol.getWorkNo()); |
| | | job.setJobSts(8); |
| | | job.setJobSts(ConveyorStateType.CLEARSIGNAL.getStatus()); |
| | | jobService.updateById(job); |
| | | } |
| | | } |
| | |
| | | package com.zy.core.operation.handler; |
| | | |
| | | import com.zy.asrs.entity.Job; |
| | | import com.zy.asrs.service.CtuMainService; |
| | | import com.zy.asrs.service.JobService; |
| | | import com.zy.asrs.service.WrkLastnoService; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.ConveyorStateType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.enums.TaskType; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | | import com.zy.core.operation.OperationHandler; |
| | |
| | | |
| | | @Autowired |
| | | private SlaveProperties slaveProperties; |
| | | |
| | | |
| | | |
| | | @Autowired |
| | |
| | | Job jobByWorkNo = jobService.getJobByJobNo(staProtocol.getWorkNo()); |
| | | if (jobByWorkNo != null && jobByWorkNo.getJobSts() == 1) { |
| | | staProtocol.setStaNo(1006); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(TaskType.WRITE, staProtocol)); |
| | | if (result) { |
| | | jobByWorkNo.setJobSts(3); |
| | | jobByWorkNo.setMemo("模拟按按钮"); |
| | |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.ConveyorStateType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.enums.TaskType; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 入库 |
| | |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); |
| | | if (staProtocol == null) { |
| | | return; |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | // 判断是否满足条件 |
| | | if (!staProtocol.isLoading()) { |
| | | return; |
| | | continue; |
| | | } |
| | | if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) { |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, devp.getId()); |
| | | String barcode = barcodeThread.getBarcode(); |
| | | if (Cools.isEmpty(barcode)){ |
| | | return; |
| | | continue; |
| | | } |
| | | Job job = jobService.getJobByBarcode(barcode); |
| | | if (job != null) { |
| | | Integer targetSta = inSta.getTargetSta(); |
| | | staProtocol.setWorkNo(job.getJobNo()); |
| | | staProtocol.setStaNo(targetSta); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(TaskType.WRITE, staProtocol)); |
| | | if (result) { |
| | | job.setJobSts(5); |
| | | job.setJobSts(ConveyorStateType.INBOUND.getStatus()); |
| | | job.setStartTime(new Date()); |
| | | if (!jobService.updateById(job)) { |
| | | throw new CoolException("更新输送线任务失败," + " - " + staProtocol.getWorkNo()); |
| | | } |
| | | log.info("" + config.getMark() + "入库前进:{},{}", staProtocol.getWorkNo(), inSta.getTargetSta()); |
| | | log.info("入库前进:{},{}", staProtocol.getWorkNo(), inSta.getTargetSta()); |
| | | } |
| | | } else { |
| | | // 模拟操作逻辑 |
| | | } |
| | | //} |
| | | } |
| | | } |
| | | } |
| | |
| | | import com.zy.asrs.service.CtuMainService; |
| | | import com.zy.asrs.service.JobService; |
| | | import com.zy.asrs.service.WrkLastnoService; |
| | | import com.zy.common.utils.News; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.ConveyorStateType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.enums.TaskType; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | |
| | | } |
| | | // 判断是否满足条件 |
| | | if (!staProtocol.isLoading()) { |
| | | if (staProtocol.getWorkNo() > 0) { |
| | | log.error("输送线上有任务号无货,需要人工处理:{}", staProtocol.getSiteId()); |
| | | } |
| | | continue; |
| | | } |
| | | |
| | | if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0) { |
| | | if (staProtocol.isInEnable()) { |
| | | log.error("没有可入信号:{}", staProtocol.getSiteId()); |
| | | continue; |
| | | } |
| | | String seqNum = ctuMainService.checkStationStatus(releaseSta.getStaNo()); |
| | | if (seqNum != null) { |
| | | Job jobBySeqNum = jobService.getJobByTaskNo(seqNum); |
| | |
| | | Job job = new Job(); |
| | | job.setTaskNo(seqNum); |
| | | job.setJobNo(workNo); |
| | | job.setJobSts(2); |
| | | job.setJobSts(ConveyorStateType.OUTBOUND.getStatus()); |
| | | if (!jobService.insert(job)) { |
| | | throw new CoolException("插入输送线任务失败," + jobBySeqNum + " - " + workNo); |
| | | } |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(TaskType.WRITE, staProtocol)); |
| | | if (result) { |
| | | log.info("输送线下发:{},{}", staProtocol.getWorkNo(), releaseSta.getTargetSta()); |
| | | } else { |
| | | News.error("" + config.getMark() + " - 发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId()); |
| | | log.error("发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId()); |
| | | } |
| | | } |
| | | } else { |
| | | News.errorNoLog("" + config.getMark() + " - 站点信息不符合入库条件!!!" + " 调用RCS检验未通过,站点:" + staProtocol.getSiteId()); |
| | | log.info("站点信息不符合入库条件!!!" + " 调用RCS检验未通过,站点:{}", staProtocol.getSiteId()); |
| | | } |
| | | } else { |
| | | News.errorNoLog("" + config.getMark() + " - 站点信息不符合入库条件!!!" + " 自动信号:" + staProtocol.isLoading() + "、可入信号:" + staProtocol.isInEnable() + "、空板信号:" + staProtocol.isEmptyMk() + "、工作号:" + staProtocol.getWorkNo() + "、锁定标记" + staProtocol.isPakMk()); |
| | | } |
| | | } |
| | | } |
| | |
| | | package com.zy.core.operation.handler; |
| | | |
| | | import com.core.common.DateUtils; |
| | | import com.zy.asrs.controller.vo.OpenBusSubmitParam; |
| | | import com.zy.asrs.controller.vo.TaskDto; |
| | | import com.zy.asrs.entity.Job; |
| | |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(inSta.getTargetSta()); |
| | | if (staProtocol == null) { |
| | | return; |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | // 判断是否满足条件 |
| | | if (!staProtocol.isLoading()) { |
| | | return; |
| | | if (staProtocol.getWorkNo() > 0) { |
| | | log.error("输送线上有任务号无货,需要人工处理:{}", staProtocol.getSiteId()); |
| | | } |
| | | if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) { |
| | | continue; |
| | | } |
| | | if (staProtocol.getWorkNo() == 0) { |
| | | log.error("输送线上有货无任务号,需要人工处理:{}", staProtocol.getSiteId()); |
| | | continue; |
| | | } |
| | | if (staProtocol.isAutoing()) { |
| | | Job job = jobService.getJobByJobNo(staProtocol.getWorkNo()); |
| | | if (job != null && job.getJobSts() == 5) { |
| | | if (job != null && job.getJobSts() == ConveyorStateType.INBOUND.getStatus()) { |
| | | if (ctuMainService.sendTask(process(job))) { |
| | | job.setJobSts(ConveyorStateType.SENDTASK.getStatus()); |
| | | job.setRcsTime(new Date()); |
| | | jobService.updateById(job); |
| | | log.info("任务发送给RCS成功,WMS任务号:{},输送线工作号:{}", job.getTaskNo(), job.getJobNo()); |
| | | } else { |
| | | log.info("任务发送给RCS失败,WMS任务号:{},输送线工作号:{}", job.getTaskNo(), job.getJobNo()); |
| | | } |
| | | } |
| | | } else { |
| | | log.error("输送线为自动,需要开启:{}", staProtocol.getSiteId()); |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 处理任务 |
| | | * |
| | | * @param job |
| | | * @return |
| | | */ |
| | | private OpenBusSubmitParam process(Job job) { |
| | | OpenBusSubmitParam openBusSubmitParam = new OpenBusSubmitParam(); |
| | | openBusSubmitParam.setBatchNo(job.getBatchNo()); |
| | | List<TaskDto> taskList = new ArrayList<>(); |
| | |
| | | taskDto.setPriority(1); |
| | | taskList.add(taskDto); |
| | | openBusSubmitParam.setTasks(taskList); |
| | | if (ctuMainService.sendTask(openBusSubmitParam)) { |
| | | job.setJobSts(7); |
| | | job.setRcsTime(new Date()); |
| | | jobService.updateById(job); |
| | | log.info("任务发送给RCS成功," + job.getTaskNo() + " - " + job.getJobNo()); |
| | | } else { |
| | | log.info("任务发送给RCS失败," + job.getTaskNo() + " - " + job.getJobNo()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | } |
| | | return openBusSubmitParam; |
| | | } |
| | | } |
| | |
| | | import com.zy.core.cache.OutputQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.enums.TaskType; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | |
| | | }}; |
| | | |
| | | |
| | | |
| | | public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{ |
| | | add(1); |
| | | }}; |
| | |
| | | connect(); |
| | | while (true) { |
| | | try { |
| | | int step = 1; |
| | | TaskType step = TaskType.READ; |
| | | Task task = MessageQueue.poll(SlaveType.Devp, slave.getId()); |
| | | if (task != null) { |
| | | step = task.getStep(); |
| | | } |
| | | switch (step) { |
| | | // 读数据 |
| | | case 1: |
| | | case READ: |
| | | read(); |
| | | break; |
| | | // 写数据 ID+目标站 |
| | | case 2: |
| | | case WRITE: |
| | | write((StaProtocol) task.getData()); |
| | | break; |
| | | default: |
| | |
| | | News.error("SiemensDevp" + " - 4" + " - 写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(staProtocol)); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | mark: 10 |
| | | max-retries: 3 |
| | | retry-delay: 800 |
| | | - type: FAKEUSER |
| | | mark: 20 |
| | | max-retries: 2 |
| | | retry-delay: 800 |
| | | # - type: FAKEUSER |
| | | # mark: 20 |
| | | # max-retries: 2 |
| | | # retry-delay: 800 |
| | | - type: APPLYLOC |
| | | mark: 30 |
| | | max-retries: 2 |
| | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.Job"> |
| | | <id column="id" property="id"/> |
| | | <result column="in_task_no" property="inTaskNo"/> |
| | | <result column="out_task_no" property="outTaskNo"/> |
| | | <result column="task_no" property="taskNo"/> |
| | | <result column="batch_no" property="batchNo"/> |
| | | <result column="loc" property="loc"/> |
| | | <result column="sta_no" property="staNo"/> |
| | | <result column="barcode" property="barcode"/> |
| | | <result column="job_no" property="jobNo"/> |
| | | <result column="job_sts" property="jobSts"/> |
| | | <result column="start_time" property="startTime"/> |
| | | <result column="wms_time" property="wmsTime"/> |
| | | <result column="rcs_time" property="rcsTime"/> |
| | | <result column="status" property="status"/> |
| | |
| | | </resultMap> |
| | | |
| | | |
| | | |
| | | <select id="getJobByTaskNo" resultMap="BaseResultMap"> |
| | | select * |
| | | from cv_job |
| | | where task_no = #{seqNum} order by id desc limit 1 |
| | | where task_no = #{seqNum} |
| | | order by id desc limit 1 |
| | | </select> |
| | | |
| | | |
| | | <select id="getJobByJobNo" resultMap="BaseResultMap"> |
| | | select * |
| | | from cv_job |
| | | where job_no = #{workNo} order by id desc limit 1 |
| | | where job_no = #{workNo} |
| | | order by id desc limit 1 |
| | | </select> |
| | | |
| | | <select id="getJobByJobNoAndJobSts" resultMap="BaseResultMap"> |
| | | select * |
| | | from cv_job |
| | | where job_no = #{workNo} |
| | | and job_sts = #{jobSts} order by id desc limit 1 |
| | | and job_sts = #{jobSts} |
| | | order by id desc limit 1 |
| | | </select> |
| | | |
| | | <select id="getJobByBarcodeAndJobSts" resultMap="BaseResultMap"> |
| | | select * |
| | | from cv_job |
| | | where barcode = #{barcode} |
| | | and job_sts = #{jobSts} order by id desc limit 1 |
| | | and job_sts = #{jobSts} |
| | | order by id desc limit 1 |
| | | </select> |
| | | |
| | | <select id="getJobByBarcode" resultMap="BaseResultMap"> |
| | | select * |
| | | from cv_job |
| | | where barcode = #{barcode} order by id desc limit 1 |
| | | where barcode = #{barcode} |
| | | order by id desc limit 1 |
| | | </select> |
| | | |
| | | |
| | |
| | | where job_sts = #{jobSts} |
| | | </select> |
| | | |
| | | |
| | | <select id="listJobToLog" resultMap="BaseResultMap"> |
| | | select * |
| | | from cv_job |
| | | where job_sts = #{jobSts} and DATEDIFF(NOW(), #{day}) > 1 |
| | | </select> |
| | | </mapper> |