zy-acs-cv/src/main/java/com/zy/Boot.java
@@ -5,9 +5,11 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; @EnableAsync @SpringBootApplication @EnableScheduling public class Boot extends SpringBootServletInitializer { public static void main(String[] args) { zy-acs-cv/src/main/java/com/zy/asrs/controller/CtuController.java
@@ -55,7 +55,7 @@ stationResponseParam.setStaNo(staNo); stationResponseParam.setOccupied(staProtocol.isLoading()); stationResponseParam.setInEnable((staProtocol.isInEnable() && staProtocol.getWorkNo() == 0 ? true : false)); stationResponseParam.setOutEnable((staProtocol.isOutEnable() && staProtocol.getWorkNo() > 0 ? true : false)); stationResponseParam.setOutEnable((staProtocol.isOutEnable() ? true : false)); stationResponseParam.setOnline(staProtocol.isAutoing()); list.add(stationResponseParam); } zy-acs-cv/src/main/java/com/zy/asrs/controller/vo/ApplyInDto.java
@@ -12,5 +12,7 @@ private String barcode; private Boolean full; } zy-acs-cv/src/main/java/com/zy/asrs/entity/Job.java
@@ -27,15 +27,14 @@ /** * 任务号 */ @TableField("out_task_no") private String outTaskNo; @TableField("task_no") private String taskNo; /** * 任务号 * */ @TableField("in_task_no") private String inTaskNo; @TableField("barcode") private String barcode; /** * 批次号 zy-acs-cv/src/main/java/com/zy/asrs/mapper/JobMapper.java
@@ -13,15 +13,19 @@ public interface JobMapper extends BaseMapper<Job> { Job getJobByInTaskNo(@Param("seqNum") String seqNum); Job getJobByOutTaskNo(@Param("seqNum") String seqNum); Job getJobByTaskNo(@Param("seqNum") String seqNum); Job getJobByJobNo(@Param("workNo") Integer workNo); Job getJobByJobNoAndJobSts(@Param("workNo") Integer workNo, @Param("jobSts") Integer jobSts); Job getJobByBarcodeAndJobSts(@Param("barcode") String barcode, @Param("jobSts") Integer jobSts); Job getJobByBarcode(@Param("barcode") String barcode); List<Job> listJobByJobSts(@Param("jobSts") Integer jobSts); zy-acs-cv/src/main/java/com/zy/asrs/scheduler/JobLogScheduler.java
@@ -16,9 +16,6 @@ public class JobLogScheduler { // job数据保存天数 public static final int JOB_SAVE_DAY = 3; @Autowired private JobService jobService; @@ -27,9 +24,14 @@ private JobMapper jobMapper; @Scheduled(cron = "0 0 2 * * ?") //@Scheduled(cron = "0 0 2 * * ?") @Scheduled(cron = "*/5 * * * * ?") public void autoToLog() { List<Job> jobs = jobMapper.listJobByJobSts(6); List<Job> jobs = jobMapper.listJobByJobSts(8); for (Job job : jobs) { jobService.saveJobLog(job); } jobs = jobMapper.listJobByJobSts(2); for (Job job : jobs) { jobService.saveJobLog(job); } zy-acs-cv/src/main/java/com/zy/asrs/service/JobService.java
@@ -7,9 +7,12 @@ public interface JobService extends IService<Job> { Job getJobByInTaskNo(String seqNum); Job getJobByOutTaskNo(String seqNum); Job getJobByTaskNo(String seqNum); Job getJobByBarcodeAndJobSts(String barcode, Integer jobSts); Job getJobByBarcode(String barcode); Job getJobByJobNo(Integer jobNo); zy-acs-cv/src/main/java/com/zy/asrs/service/impl/JobServiceImpl.java
@@ -20,14 +20,10 @@ private JobLogMapper jobLogMapper; @Override public Job getJobByInTaskNo(String seqNum) { return baseMapper.getJobByInTaskNo(seqNum); } @Override public Job getJobByOutTaskNo(String seqNum) { return baseMapper.getJobByOutTaskNo(seqNum); public Job getJobByTaskNo(String seqNum) { return baseMapper.getJobByTaskNo(seqNum); } @Override @@ -40,6 +36,15 @@ return baseMapper.getJobByJobNoAndJobSts(workNo, jobSts); } @Override public Job getJobByBarcodeAndJobSts(String barcode, Integer jobSts) { return baseMapper.getJobByBarcodeAndJobSts(barcode, jobSts); } @Override public Job getJobByBarcode(String barcode) { return baseMapper.getJobByBarcode(barcode); } @Override public List<Job> listJobByJobSts(Integer jobSts) { zy-acs-cv/src/main/java/com/zy/asrs/service/impl/WmsMainServiceImpl.java
@@ -58,9 +58,9 @@ .setJson(JSON.toJSONString(applyInDto)) .build() .doPost(); log.info("WMS返回数据:{}", response); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger(code).equals(codeValue)) { log.info("WMS返回数据:{}", response); if (jsonObject.get(code) != null && jsonObject.getInteger(code).equals(codeValue)) { return JSONObject.parseObject(jsonObject.getString(dataCode), ApplyInRepsonseDto.class); } else { log.error("调用下发任务接口报错,响应码:{},响应内容:{}", jsonObject.getInteger(code), response); zy-acs-cv/src/main/java/com/zy/core/operation/handler/AppleLocOperationHandler.java
@@ -4,6 +4,7 @@ import com.zy.asrs.controller.vo.ApplyInDto; import com.zy.asrs.controller.vo.ApplyInRepsonseDto; import com.zy.asrs.entity.Job; import com.zy.asrs.enums.WorkNoTypeType; import com.zy.asrs.service.JobService; import com.zy.asrs.service.WmsMainService; import com.zy.asrs.service.WrkLastnoService; @@ -73,27 +74,33 @@ return; } if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) { Job job = jobService.getJobByJobNoAndJobSts(staProtocol.getWorkNo(), 2); if (job != null) { String barcode = barcodeThread.getBarcode(); if (Cools.isEmpty(barcode)) { log.info("未扫到码值:{}",barcode); return; } ApplyInDto applyInDto = new ApplyInDto(); applyInDto.setStaNo(inSta.getStaNo() + ""); applyInDto.setBarcode(barcode); ApplyInRepsonseDto locOfWms = wmsMainService.getLocOfWms(applyInDto); if (locOfWms != null) { job.setLoc(locOfWms.getLocNo()); job.setInTaskNo(locOfWms.getTaskNo()); job.setBatchNo(locOfWms.getBatchNo()); job.setStaNo(inSta.getTargetSta() + ""); job.setJobSts(4); job.setWmsTime(new Date()); jobService.updateById(job); } else { log.info("WMS未返回库位信息,{}", applyInDto); String barcode = barcodeThread.getBarcode(); if (Cools.isEmpty(barcode)) { log.info("未扫到码值:{}", barcode); return; } 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); if (locOfWms != null) { job = new Job(); job.setLoc(locOfWms.getLocNo()); job.setTaskNo(locOfWms.getTaskNo()); job.setBatchNo(locOfWms.getBatchNo()); job.setBarcode(barcode); job.setStaNo(inSta.getTargetSta() + ""); job.setJobNo(wrkLastnoService.nextWorkNo(WorkNoTypeType.WORK_NO_TYPE.type)); job.setJobSts(4); job.setWmsTime(new Date()); jobService.insert(job); } else { log.info("WMS未返回库位信息,{}", applyInDto); } } } } zy-acs-cv/src/main/java/com/zy/core/operation/handler/ClearSingleOperationHandler.java
File was renamed from zy-acs-cv/src/main/java/com/zy/core/operation/handler/ClearOperationHandler.java @@ -26,7 +26,7 @@ */ @Slf4j @Component public class ClearOperationHandler implements OperationHandler { public class ClearSingleOperationHandler implements OperationHandler { @Autowired private SlaveProperties slaveProperties; @@ -68,13 +68,15 @@ } if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) { Job job = jobService.getJobByJobNo(staProtocol.getWorkNo()); if (job != null && job.getJobSts() >= 6) { String s = ctuMainService.checkStationStatus(takeSta.getStaNo()); if (job != null && job.getJobSts() == 7) { //String s = ctuMainService.checkStationStatus(takeSta.getStaNo()); staProtocol.setWorkNo(0); staProtocol.setStaNo(0); boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); if (result) { log.info("" + config.getMark() + "站点清空失败:{},{}", takeSta.getStaNo(), staProtocol.getWorkNo()); job.setJobSts(8); jobService.updateById(job); } } } zy-acs-cv/src/main/java/com/zy/core/operation/handler/FakeUserOperationHandler.java
@@ -30,11 +30,6 @@ private SlaveProperties slaveProperties; @Autowired private WrkLastnoService wrkLastnoService; @Autowired private CtuMainService ctuMainService; @Autowired private JobService jobService; zy-acs-cv/src/main/java/com/zy/core/operation/handler/InOperationHandler.java
@@ -1,5 +1,6 @@ package com.zy.core.operation.handler; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.Job; import com.zy.asrs.service.CtuMainService; @@ -15,6 +16,7 @@ import com.zy.core.operation.OperationHandler; import com.zy.core.properties.CtuOperationConfig; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.BarcodeThread; import com.zy.core.thread.SiemensDevpThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -67,13 +69,15 @@ return; } if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) { //StaProtocol targetStaProtocol = devpThread.getStation().get(inSta.getTargetSta()); //if (targetStaProtocol.getWorkNo() == 0 && targetStaProtocol.isAutoing() && !targetStaProtocol.isLoading()) { Job job = jobService.getJobByJobNoAndJobSts(staProtocol.getWorkNo(), 4); BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, devp.getId()); String barcode = barcodeThread.getBarcode(); if (Cools.isEmpty(barcode)){ return; } Job job = jobService.getJobByBarcode(barcode); if (job != null) { Integer workNo = staProtocol.getWorkNo(); Integer targetSta = inSta.getTargetSta(); staProtocol.setWorkNo(workNo); staProtocol.setWorkNo(job.getJobNo()); staProtocol.setStaNo(targetSta); boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); if (result) { zy-acs-cv/src/main/java/com/zy/core/operation/handler/OutOperationHandler.java
@@ -67,18 +67,17 @@ if (!staProtocol.isLoading()) { continue; } //&& staProtocol.isOutEnable() if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0) { String seqNum = ctuMainService.checkStationStatus(releaseSta.getStaNo()); if (seqNum != null) { Job jobBySeqNum = jobService.getJobByOutTaskNo(seqNum); Job jobBySeqNum = jobService.getJobByTaskNo(seqNum); if (jobBySeqNum == null) { int workNo = wrkLastnoService.nextWorkNo(WorkNoTypeType.WORK_NO_TYPE.type); // 下发移动 且 下发plc命令 staProtocol.setWorkNo(workNo); staProtocol.setStaNo(releaseSta.getTargetSta()); Job job = new Job(); job.setOutTaskNo(seqNum); job.setTaskNo(seqNum); job.setJobNo(workNo); job.setJobSts(2); if (!jobService.insert(job)) { zy-acs-cv/src/main/java/com/zy/core/operation/handler/SendTaskOperationHandler.java
@@ -73,7 +73,7 @@ openBusSubmitParam.setBatchNo(job.getBatchNo()); List<TaskDto> taskList = new ArrayList<>(); TaskDto taskDto = new TaskDto(); taskDto.setTaskNo(job.getInTaskNo()); taskDto.setTaskNo(job.getTaskNo()); taskDto.setBatchNo(job.getBatchNo()); taskDto.setOriSta(job.getStaNo()); taskDto.setDestLoc(job.getLoc()); @@ -84,9 +84,9 @@ job.setJobSts(7); job.setRcsTime(new Date()); jobService.updateById(job); log.info("任务发送给RCS成功," + job.getInTaskNo() + " - " + job.getJobNo()); log.info("任务发送给RCS成功," + job.getTaskNo() + " - " + job.getJobNo()); } else { log.info("任务发送给RCS失败," + job.getInTaskNo() + " - " + job.getJobNo()); log.info("任务发送给RCS失败," + job.getTaskNo() + " - " + job.getJobNo()); } } } zy-acs-cv/src/main/resources/application.yml
@@ -17,7 +17,7 @@ static-path-pattern: /** wms: url: 10.10.10.251:8082 url: 10.10.10.220:8081 apply: /rsf-open-api/rcs/api/open/location/allocate ctu: url: 10.10.10.200:8088 @@ -30,15 +30,15 @@ - type: OUTBOUND mark: 10 max-retries: 3 retry-delay: 500 retry-delay: 800 - type: FAKEUSER mark: 20 max-retries: 2 retry-delay: 300 retry-delay: 800 - type: APPLYLOC mark: 30 max-retries: 2 retry-delay: 300 retry-delay: 2000 - type: INBOUND mark: 40 max-retries: 3 @@ -46,11 +46,11 @@ - type: CLEARSIGNAL mark: 50 max-retries: 2 retry-delay: 300 retry-delay: 800 - type: SENDTASK mark: 60 max-retries: 2 retry-delay: 300 retry-delay: 800 mybatis-plus: mapper-locations: classpath:mapper/*.xml zy-acs-cv/src/main/resources/mapper/JobMapper.xml
@@ -10,6 +10,7 @@ <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="wms_time" property="wmsTime"/> @@ -24,30 +25,39 @@ <result column="memo" property="memo"/> </resultMap> <select id="getJobByInTaskNo" resultMap="BaseResultMap"> select * from cv_job where in_task_no = #{seqNum} </select> <select id="getJobByOutTaskNo" resultMap="BaseResultMap"> <select id="getJobByTaskNo" resultMap="BaseResultMap"> select * from cv_job where out_task_no = #{seqNum} where task_no = #{seqNum} order by id desc limit 1 </select> <select id="getJobByJobNo" resultMap="BaseResultMap"> select * from cv_job where job_no = #{workNo} 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} 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 </select> <select id="getJobByBarcode" resultMap="BaseResultMap"> select * from cv_job where barcode = #{barcode} order by id desc limit 1 </select>