1
zhang
昨天 b7e27e0760d7a912de932dc24cb49a5302530355
1
2个文件已添加
16个文件已修改
260 ■■■■■ 已修改文件
zy-acs-cv/src/main/java/com/zy/asrs/controller/WmsController.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/controller/requestParam/StaParam.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/controller/requestParam/StationRequestParam.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/controller/vo/ApplyInDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/controller/vo/ApplyInRepsonseDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/entity/Job.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/mapper/JobMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/service/JobService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/service/WmsMainService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/service/impl/JobServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/asrs/service/impl/WmsMainServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/core/operation/handler/AppleLocOperationHandler.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/core/operation/handler/InOperationHandler.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/core/operation/handler/OutOperationHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/java/com/zy/core/operation/handler/SendTaskOperationHandler.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/resources/application.yml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-cv/src/main/resources/mapper/JobMapper.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,7 +2,6 @@
import com.zy.asrs.controller.vo.ApplyInDto;
import com.zy.asrs.controller.vo.ApplyInRepsonseDto;
import com.zy.asrs.controller.vo.OpenBusSubmitParam;
/**
 * 立体仓库WCS系统主流程业务接口
@@ -11,13 +10,12 @@
public interface WmsMainService {
    /**
     * 检查站点状态
     *
     * @param applyInDto 站点编号
     * @return 库位信息
     */
     ApplyInRepsonseDto getLocOfWms(ApplyInDto applyInDto);
    ApplyInRepsonseDto getLocOfWms(ApplyInDto applyInDto);
}
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;
@@ -42,11 +39,11 @@
    @Value("${ctu.sendTask}")
    private String sendTask;
    private String code ="code";
    private String code = "code";
    private String dataCode ="data";
    private String dataCode = "data";
    private Integer codeValue =200;
    private Integer codeValue = 200;
    private Integer timeout = 1200;
@@ -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,22 +26,20 @@
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";
    private String code = "code";
    private String dataCode ="data";
    private String dataCode = "data";
    private Integer codeValue =200;
    private Integer codeValue = 200;
    private Integer timeout = 1200;
    /**
@@ -70,17 +61,16 @@
            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);
            log.error("检查站点状态失败,条码编号:{},站点:{}", applyInDto.getBarcode(), applyInDto.getStaNo(), e);
        }
        return null;
    }
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遍历
@@ -77,24 +75,24 @@
                    if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing()) {
                        Job job = jobService.getJobByJobNoAndJobSts(staProtocol.getWorkNo(), 2);
                        if (job != null) {
                            ApplyInDto applyInDto=new ApplyInDto();
                            applyInDto.setStaNo(inSta.getStaNo()+"");
                            ApplyInDto applyInDto = new ApplyInDto();
                            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.setStaNo(inSta.getTargetSta() + "");
                                job.setJobSts(4);
                                job.setWmsTime(new Date());
                                jobService.updateById(job);
                            }else {
                                log.info("WMS未返回库位信息,{}",applyInDto);
                            } else {
                                log.info("WMS未返回库位信息,{}", applyInDto);
                            }
                        }
                    }
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;
/**
 * 入库
 */
@@ -71,27 +69,27 @@
                    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);
                            if (job != null) {
                                Integer workNo = staProtocol.getWorkNo();
                                Integer targetSta = inSta.getTargetSta();
                                staProtocol.setWorkNo(0);
                                staProtocol.setStaNo(0);
                                MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                                Thread.sleep(1500L);
                                staProtocol.setWorkNo(workNo);
                                staProtocol.setStaNo(targetSta);
                                boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                                if (result) {
                                    job.setJobSts(5);
                                    if (!jobService.updateById(job)) {
                                        throw new CoolException("更新输送线任务失败," + " - " + staProtocol.getWorkNo());
                                    }
                                    log.info("" + config.getMark() + "入库前进:{},{}", staProtocol.getWorkNo(), inSta.getTargetSta());
                        Job job = jobService.getJobByJobNoAndJobSts(staProtocol.getWorkNo(), 4);
                        if (job != null) {
                            Integer workNo = staProtocol.getWorkNo();
                            Integer targetSta = inSta.getTargetSta();
                            staProtocol.setWorkNo(0);
                            staProtocol.setStaNo(0);
                            MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                            Thread.sleep(1500L);
                            staProtocol.setWorkNo(workNo);
                            staProtocol.setStaNo(targetSta);
                            boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                            if (result) {
                                job.setJobSts(5);
                                if (!jobService.updateById(job)) {
                                    throw new CoolException("更新输送线任务失败," + " - " + staProtocol.getWorkNo());
                                }
                            } else {
                                // 模拟操作逻辑
                                log.info("" + config.getMark() + "入库前进:{},{}", staProtocol.getWorkNo(), inSta.getTargetSta());
                            }
                        } else {
                            // 模拟操作逻辑
                        }
                        //}
                    }
                }
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>