zy-acs-cv/src/main/java/com/zy/asrs/controller/WmsController.java
New file @@ -0,0 +1,61 @@ 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.common.web.BaseController; import com.zy.core.DevpThread; 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 org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 对ctu系统的接口 */ @Slf4j @RestController public class WmsController extends BaseController { @Autowired private JobService jobService; /** * 站点查询 */ @ResponseBody @PostMapping("/station/getTaskNo") public R query(@RequestBody StaParam param) { log.info("根据站点查询taskNo:{}", param); String staNo = param.getStaNo(); DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, param.getDevpId()); List<StationResponseParam> list = new ArrayList<>(); Map<Integer, StaProtocol> station = devpThread.getStation(); StaProtocol staProtocol = station.get(Integer.parseInt(staNo)); Integer workNo = staProtocol.getWorkNo(); if (workNo != null) { Job jobByJobNo = jobService.getJobByJobNo(workNo); if (jobByJobNo != null) { return R.ok(jobByJobNo.getJobNo()); } } return R.ok(list); } } zy-acs-cv/src/main/java/com/zy/asrs/controller/requestParam/StaParam.java
New file @@ -0,0 +1,19 @@ package com.zy.asrs.controller.requestParam; import lombok.Data; import java.io.Serializable; import java.util.List; @Data public class StaParam implements Serializable { /** * 站点列表 */ private String staNo; /** * 输送线编号 */ private Integer devpId = 1; } zy-acs-cv/src/main/java/com/zy/asrs/controller/requestParam/StationRequestParam.java
@@ -11,6 +11,11 @@ * 站点列表 */ private List<String> staNos; /** * 站点列表 */ private String staNo; /** * 输送线编号 */ zy-acs-cv/src/main/java/com/zy/asrs/controller/vo/ApplyInDto.java
@@ -13,6 +13,4 @@ private String barcode; } zy-acs-cv/src/main/java/com/zy/asrs/controller/vo/ApplyInRepsonseDto.java
@@ -8,7 +8,7 @@ @Data public class ApplyInRepsonseDto { private String loc; private String locNo; private String taskNo; zy-acs-cv/src/main/java/com/zy/asrs/entity/Job.java
@@ -27,8 +27,14 @@ /** * 任务号 */ @TableField("task_no") private String taskNo; @TableField("out_task_no") private String outTaskNo; /** * 任务号 */ @TableField("in_task_no") private String inTaskNo; /** @@ -52,7 +58,6 @@ */ @TableField("job_no") private Integer jobNo; /** zy-acs-cv/src/main/java/com/zy/asrs/mapper/JobMapper.java
@@ -13,7 +13,9 @@ public interface JobMapper extends BaseMapper<Job> { Job getJobByTaskNo(@Param("seqNum") String seqNum); Job getJobByInTaskNo(@Param("seqNum") String seqNum); Job getJobByOutTaskNo(@Param("seqNum") String seqNum); Job getJobByJobNo(@Param("workNo") Integer workNo); zy-acs-cv/src/main/java/com/zy/asrs/service/JobService.java
@@ -7,7 +7,9 @@ public interface JobService extends IService<Job> { Job getJobBySeqNum(String seqNum); Job getJobByInTaskNo(String seqNum); Job getJobByOutTaskNo(String seqNum); Job getJobByJobNo(Integer jobNo); zy-acs-cv/src/main/java/com/zy/asrs/service/WmsMainService.java
@@ -2,14 +2,12 @@ import com.zy.asrs.controller.vo.ApplyInDto; import com.zy.asrs.controller.vo.ApplyInRepsonseDto; import com.zy.asrs.controller.vo.OpenBusSubmitParam; /** * 立体仓库WCS系统主流程业务接口 * Created by vincent on 2020/8/6 */ public interface WmsMainService { /** zy-acs-cv/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
@@ -3,11 +3,8 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.controller.requestParam.StationRequestParam; import com.zy.asrs.controller.vo.ApplyInDto; import com.zy.asrs.controller.vo.ApplyInRepsonseDto; import com.zy.asrs.controller.vo.OpenBusSubmitParam; import com.zy.asrs.controller.vo.StationStatus; import com.zy.asrs.service.CtuMainService; @@ -121,7 +118,6 @@ } return null; } } zy-acs-cv/src/main/java/com/zy/asrs/service/impl/JobServiceImpl.java
@@ -21,8 +21,13 @@ @Override public Job getJobBySeqNum(String seqNum) { return baseMapper.getJobByTaskNo(seqNum); public Job getJobByInTaskNo(String seqNum) { return baseMapper.getJobByInTaskNo(seqNum); } @Override public Job getJobByOutTaskNo(String seqNum) { return baseMapper.getJobByOutTaskNo(seqNum); } @Override zy-acs-cv/src/main/java/com/zy/asrs/service/impl/WmsMainServiceImpl.java
@@ -1,15 +1,10 @@ package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.core.exception.CoolException; import com.zy.asrs.controller.requestParam.StationRequestParam; import com.zy.asrs.controller.vo.ApplyInDto; import com.zy.asrs.controller.vo.ApplyInRepsonseDto; import com.zy.asrs.controller.vo.OpenBusSubmitParam; import com.zy.asrs.controller.vo.StationStatus; import com.zy.asrs.service.CtuMainService; import com.zy.asrs.service.WmsMainService; import com.zy.common.utils.HttpHandler; import lombok.Data; @@ -18,8 +13,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; /** @@ -33,12 +26,11 @@ public class WmsMainServiceImpl implements WmsMainService { @Value("${ctu.url}") @Value("${wms.url}") private String wmsUrl; @Value("${ctu.sendTask}") @Value("${wms.apply}") private String apply; private String code ="code"; @@ -48,7 +40,6 @@ private Integer codeValue =200; private Integer timeout = 1200; /** @@ -70,15 +61,14 @@ JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger(code).equals(codeValue)) { log.info("WMS返回数据:{}", response); JSONArray data = jsonObject.getJSONArray(dataCode); return JSONObject.parseObject(data.toString(), ApplyInRepsonseDto.class); return JSONObject.parseObject(jsonObject.getString(dataCode), ApplyInRepsonseDto.class); } else { log.error("调用下发任务接口报错,响应码:{},响应内容:{}", jsonObject.getInteger(code), response); throw new CoolException("调用下发任务接口报错,响应码:" + jsonObject.getInteger(code)); //throw new CoolException("调用下发任务接口报错,响应码:" + jsonObject.getInteger(code)); } } catch (CoolException e) { log.error("调用站点状态接口异常", e); throw e; //throw e; } catch (Exception e) { log.error("检查站点状态失败,条码编号:{},站点:{}", applyInDto.getBarcode(),applyInDto.getStaNo(), e); } zy-acs-cv/src/main/java/com/zy/core/operation/handler/AppleLocOperationHandler.java
@@ -1,19 +1,15 @@ package com.zy.core.operation.handler; import com.core.exception.CoolException; import com.zy.asrs.controller.vo.ApplyInDto; import com.zy.asrs.controller.vo.ApplyInRepsonseDto; import com.zy.asrs.entity.Job; import com.zy.asrs.service.CtuMainService; import com.zy.asrs.service.JobService; import com.zy.asrs.service.WmsMainService; 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.model.DevpSlave; import com.zy.core.model.Task; import com.zy.core.model.protocol.StaProtocol; import com.zy.core.operation.OperationHandler; import com.zy.core.properties.CtuOperationConfig; @@ -23,6 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.Date; @@ -54,6 +51,7 @@ } @Override @Transactional(rollbackFor = Exception.class) public synchronized void execute(CtuOperationConfig config) { try { // 根据输送线plc遍历 @@ -81,13 +79,13 @@ applyInDto.setStaNo(inSta.getStaNo()+""); applyInDto.setBarcode(barcodeThread.getBarcode()); //TODO ApplyInRepsonseDto locOfWms =new ApplyInRepsonseDto(); locOfWms.setTaskNo(System.currentTimeMillis()+""); locOfWms.setBatchNo(System.currentTimeMillis()+""); //ApplyInRepsonseDto locOfWms = wmsMainService.getLocOfWms(applyInDto); // ApplyInRepsonseDto locOfWms =new ApplyInRepsonseDto(); // locOfWms.setTaskNo(System.currentTimeMillis()+""); // locOfWms.setBatchNo(System.currentTimeMillis()+""); ApplyInRepsonseDto locOfWms = wmsMainService.getLocOfWms(applyInDto); if (locOfWms != null) { job.setLoc(locOfWms.getLoc()); job.setTaskNo(locOfWms.getTaskNo()); job.setLoc(locOfWms.getLocNo()); job.setInTaskNo(locOfWms.getTaskNo()); job.setBatchNo(locOfWms.getBatchNo()); job.setStaNo(inSta.getTargetSta()+""); job.setJobSts(4); zy-acs-cv/src/main/java/com/zy/core/operation/handler/InOperationHandler.java
@@ -21,8 +21,6 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.Date; /** * 入库 */ zy-acs-cv/src/main/java/com/zy/core/operation/handler/OutOperationHandler.java
@@ -71,14 +71,14 @@ if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0) { String seqNum = ctuMainService.checkStationStatus(releaseSta.getStaNo()); if (seqNum != null) { Job jobBySeqNum = jobService.getJobBySeqNum(seqNum); Job jobBySeqNum = jobService.getJobByOutTaskNo(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.setTaskNo(seqNum); job.setOutTaskNo(seqNum); job.setJobNo(workNo); job.setJobSts(2); if (!jobService.insert(job)) { zy-acs-cv/src/main/java/com/zy/core/operation/handler/SendTaskOperationHandler.java
@@ -1,6 +1,5 @@ package com.zy.core.operation.handler; import com.core.common.Cools; import com.core.common.DateUtils; import com.zy.asrs.controller.vo.OpenBusSubmitParam; import com.zy.asrs.controller.vo.TaskDto; @@ -71,24 +70,23 @@ Job job = jobService.getJobByJobNo(staProtocol.getWorkNo()); if (job != null && job.getJobSts() == 5) { OpenBusSubmitParam openBusSubmitParam = new OpenBusSubmitParam(); openBusSubmitParam.setBatchNo(DateUtils.convert(new Date())); openBusSubmitParam.setBatchNo(job.getBatchNo()); List<TaskDto> taskList = new ArrayList<>(); TaskDto taskDto = new TaskDto(); taskDto.setTaskNo(job.getTaskNo()); taskDto.setTaskNo(job.getInTaskNo()); taskDto.setBatchNo(job.getBatchNo()); taskDto.setOriSta(job.getStaNo()); taskDto.setDestLoc(job.getLoc()); //TODO taskDto.setPriority(9527); 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()); log.info("任务发送给RCS成功," + job.getInTaskNo() + " - " + job.getJobNo()); } else { log.info("任务发送给RCS失败," + job.getTaskNo() + " - " + job.getJobNo()); log.info("任务发送给RCS失败," + job.getInTaskNo() + " - " + job.getJobNo()); } } } zy-acs-cv/src/main/resources/application.yml
@@ -16,7 +16,9 @@ mvc: static-path-pattern: /** wms: url: 10.10.10.251:8082 apply: /rsf-open-api/rcs/api/open/location/allocate ctu: url: 10.10.10.200:8088 station: /api/open/station/convey zy-acs-cv/src/main/resources/mapper/JobMapper.xml
@@ -5,7 +5,8 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.Job"> <id column="id" property="id"/> <result column="task_no" property="taskNo"/> <result column="in_task_no" property="inTaskNo"/> <result column="out_task_no" property="outTaskNo"/> <result column="batch_no" property="batchNo"/> <result column="loc" property="loc"/> <result column="sta_no" property="staNo"/> @@ -23,10 +24,16 @@ <result column="memo" property="memo"/> </resultMap> <select id="getJobByTaskNo" resultMap="BaseResultMap"> <select id="getJobByInTaskNo" resultMap="BaseResultMap"> select * from cv_job where task_no = #{seqNum} where in_task_no = #{seqNum} </select> <select id="getJobByOutTaskNo" resultMap="BaseResultMap"> select * from cv_job where out_task_no = #{seqNum} </select>