自动化立体仓库 - WCS系统
4e0da368106385d208157b9d565374733b7c4a87..364b9ccc44bc6863280c5cc00aa8512cfff548d4
2 天以前 ZY
123
364b9c 对比 | 目录
2 天以前 ZY
123
1a1e33 对比 | 目录
50个文件已修改
732 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/CrnController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MonitorController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java 380 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ReportQueryController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/TaskWrkLogController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/TransferTaskController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/TransferTaskLogController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/dto/AxisBean.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/dto/WorkChartAxis.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/vo/LocChartPie.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ApiConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ApiLog.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasCrnOpt.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasErrLog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasPlcerrorLog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/CommandInfoLog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/TaskWrkLog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/TransferTask.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ViewInOutBean.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ViewStockUseBean.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ViewWorkInBean.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/TaskOverParam.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/DevpTaskMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocMastMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/TransferTaskLogMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/ApiConfigService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasCrnOptService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasDevpService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasErrLogService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocDetlService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocMastService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/TaskWrkLogService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/TaskWrkService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/ToWmsService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/TransferTaskLogService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 148 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/TaskWrkReportServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/TaskReportScheduler.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/VersionUtils.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/TransferTaskMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -21,7 +21,6 @@
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.impl.MainServiceImpl;
import com.zy.asrs.utils.VersionUtils;
import com.zy.core.CrnThread;
import com.zy.core.cache.MessageQueue;
@@ -38,7 +37,6 @@
import com.zy.core.properties.SystemProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
@@ -53,7 +51,6 @@
@Slf4j
@RestController
public class CrnController {
    @Autowired
src/main/java/com/zy/asrs/controller/MonitorController.java
@@ -258,6 +258,7 @@
    /**
     * x轴单位转换
     *
     * @param dot y轴数值保留小数位
     */
    private List<Map<String, Object>> convert(List<Map<String, Object>> list, StatsType statsType, int dot) {
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,7 +1,6 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.AppAuth;
import com.core.common.BaseRes;
@@ -9,18 +8,18 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.param.CrnStatusParam;
import com.zy.asrs.entity.param.TaskCreateParam;
import com.zy.asrs.entity.param.TaskOverParam;
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
@@ -105,25 +104,6 @@
        }
    }
    //agv任务完成
    @PostMapping("/toAgvTaskOver")
    @AppAuth(memo = "agv任务完成接口")
    public R getAgvTaskOver(@RequestHeader String appkey,
                            @RequestBody TaskOverParam param,
                            HttpServletRequest request) {
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
        if (Cools.isEmpty(param.getStartPoint())) {
            return R.error("码头[wharfCode]不能为空");
        }
        if (Cools.isEmpty(param.getStatus())) {
            return R.error("完成标记[status]不能为空");
        }
        openService.getAgvTaskOver(param);
        return R.ok();
    }
    //创建任务
    @PostMapping("/taskCreate")
@@ -189,17 +169,82 @@
        return R.ok();
    }
    //查询任务详情
    @GetMapping("/queryTask")
    public R queryTask(@RequestHeader String appkey,
                       @RequestParam String taskNo,
                       HttpServletRequest request) {
        auth(appkey, taskNo, request);
        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
        if (taskWrk == null) {
            return R.error("任务不存在");
    //任务取消接口
    @PostMapping("/taskCancel")
    public R taskCancel(@RequestHeader String appkey,
                        @RequestBody WMSAndAGVInterfaceParam param,
                        HttpServletRequest request) {
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.error("参数为空!");
        } else if (Cools.isEmpty(param.getTaskNo())) {
            return R.error("工作号为空!");
        } else if (Cools.isEmpty(param.getIoType())) {
            return R.error("操作类型为空!");
        } else if (Cools.isEmpty(param.getBarcode())) {
            return R.error("托盘码不能为空!");
        }
        return R.ok().add(taskWrk);
        TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>()
                .eq("task_no", param.getTaskNo())
                .eq("io_type", param.getIoType())
                .eq("barcode", param.getBarcode()));
        if (Cools.isEmpty(taskWrk)) {
            return R.error("未查到当前任务---" + param);
        }
        boolean sign = false;
        switch (param.getTaskStatus()) {
            case 1://正常取消
                if (taskWrk.getStatus() > 1) {
                    return R.error("任务已开始执行");
                }
                break;
            case 2://正常完成
                if (taskWrk.getStatus() > 1) {
                    return R.error("任务已开始执行");
                }
                sign = true;
                break;
            default:
                return R.error("未知操作");
        }
        return taskWrkOperate(taskWrk, sign);
    }
    //任务操作
    private R taskWrkOperate(TaskWrk taskWrk, boolean sign) {
        try {
            if (sign) {//完成
                return taskWrkController.complete(taskWrk.getTaskNo());
            } else {//取消
                return taskWrkController.cancel(taskWrk.getTaskNo());
            }
        } catch (Exception e) {
            return R.error();
        }
    }
    //设备状态查询接口
    @GetMapping("/deviceStatus")
    @Transactional
    public R deviceStatus() {
        List<CrnStatusParam> crnStatusParams = new ArrayList<>();
        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
        for (BasCrnp basCrnp : basCrnps) {
            CrnStatusParam crnStatusParam = new CrnStatusParam();
            crnStatusParam.setCrnNo(basCrnp.getCrnNo());
            crnStatusParam.setCrnSts(basCrnp.getCrnSts());
            crnStatusParam.setErrorCode(basCrnp.getCrnErr());
            BasCrnError error = basCrnErrorService.selectOne(new EntityWrapper<BasCrnError>().eq("error_code", basCrnp.getCrnErr()));
            if (Cools.isEmpty(error)) {
                crnStatusParam.setErrorMsg("");
            } else {
                crnStatusParam.setErrorMsg(error.getErrName());
            }
            crnStatusParams.add(crnStatusParam);
        }
        return R.ok(crnStatusParams);
    }
    //取放货申请
@@ -240,6 +285,31 @@
        return openService.getAgvPickAndPlaceV2(param);
    }
    private void auth(String appkey, Object obj, HttpServletRequest request) {
        log.info("{}接口被访问;appkey:{};请求数据:{}", request.getServletPath(), appkey, JSON.toJSONString(obj));
        request.setAttribute("cache", obj);
        if (Cools.isEmpty(appkey)) {
            throw new CoolException("认证失败,请确认appkey无误!");
        }
        if (!APP_KEY_LIST.contains(appkey)) {
            throw new CoolException("认证失败,请确认appkey无误!");
        }
    }
    //查询任务详情
    @GetMapping("/queryTask")
    public R queryTask(@RequestHeader String appkey,
                       @RequestParam String taskNo,
                       HttpServletRequest request) {
        auth(appkey, taskNo, request);
        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
        if (taskWrk == null) {
            return R.error("任务不存在");
        }
        return R.ok().add(taskWrk);
    }
    //查询任务指令集合
    @GetMapping("/queryTaskCommand")
    public R queryTaskCommand(@RequestHeader String appkey,
@@ -255,16 +325,74 @@
        return R.ok().add(commandInfos);
    }
    private void auth(String appkey, Object obj, HttpServletRequest request) {
        log.info("{}接口被访问;appkey:{};请求数据:{}", request.getServletPath(), appkey, JSON.toJSONString(obj));
        request.setAttribute("cache", obj);
        if (Cools.isEmpty(appkey)) {
            throw new CoolException("认证失败,请确认appkey无误!");
        }
        if (!APP_KEY_LIST.contains(appkey)) {
            throw new CoolException("认证失败,请确认appkey无误!");
        }
    }
    //任务下发接口
//    @PostMapping("/outboundTaskSend")
//    @Transactional
//    public HashMap<String, Object> outboundTaskSend(@RequestBody List<CarryParam> params) {
//        HashMap<String, Object> map = new HashMap<>();
//        for (CarryParam param : params) {
//            if (Cools.isEmpty(param)) {
//                map.put("Code", "0");
//                map.put("Msg", "参数为空!");
//                return map;
//            } else if (Cools.isEmpty(param.getTaskNo())) {
//                map.put("Code", "0");
//                map.put("Msg", "任务号为空!");
//                return map;
//            } else if (Cools.isEmpty(param.getStereoscopicTaskType())) {
//                map.put("Code", "0");
//                map.put("Msg", "任务类型为空!");
//                return map;
//            }
//            String fusion = Utils.Fusion(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo());
//            param.setStartPoint(fusion);
//            LocMast locMast = locMastService.selectByLocNo(param.getStartPoint());
//            if (Cools.isEmpty(locMast)) {
//                map.put("Code", "0");
//                map.put("Msg", "初始库位无法找到!");
//                return map;
//            }
//
//            HashMap<String, Object> r = new HashMap<>();
//
//            if (param.getStereoscopicTaskType() == 2) {
//                //出库任务创建
//                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
//                        .eq("type_no", 2)
//                        .eq("crn_no", locMast.getCrnNo())
//                        .eq("stn_no", param.getTerminalNo()));
//                if (Cools.isEmpty(staDesc)) {
//                    map.put("Code", "0");
//                    map.put("Msg", "出库路径不存在!");
//                    return map;
//                }
//                r = openService.taskCreate(new TaskCreateParam(param, staDesc.getCrnNo()));
//                if (r.get("Code").equals("0")) {
//                    return r;
//                }
//            } else if (param.getStereoscopicTaskType() == 3) {
//                String fusion1 = Utils.Fusion(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo());
//                param.setTerminalNo(fusion1);
//                //移库任务创建
//                r = openService.taskCreate(new TaskCreateParam(param, locMast.getCrnNo()));
//                if (r.get("Code").equals("0")) {
//                    return r;
//                }
//            }
//            apiLogService.save("Wms任务下发接口"
//                    , request.getRemoteAddr() + request.getRequestURI()
//                    , ""
//                    , request.getRemoteAddr()
//                    , JSON.toJSONString(param)
//                    , r.toString()
//                    , true
//            );
//        }
//        map.put("Code", "1");
//        map.put("Msg", "ok");
//        return map;
//    }
    //AGV请求入库码头接口
//    @PostMapping("/targetWharfApply")
@@ -363,150 +491,22 @@
//
//
//    }
    //任务下发接口
    @PostMapping("/outboundTaskSend")
    @Transactional
    public HashMap<String, Object> outboundTaskSend(@RequestBody List<CarryParam> params) {
        HashMap<String, Object> map = new HashMap<>();
        for (CarryParam param : params) {
            if (Cools.isEmpty(param)) {
                map.put("Code", "0");
                map.put("Msg", "参数为空!");
                return map;
            } else if (Cools.isEmpty(param.getTaskNo())) {
                map.put("Code", "0");
                map.put("Msg", "任务号为空!");
                return map;
            } else if (Cools.isEmpty(param.getStereoscopicTaskType())) {
                map.put("Code", "0");
                map.put("Msg", "任务类型为空!");
                return map;
            }
            String fusion = Utils.Fusion(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo());
            param.setStartPoint(fusion);
            LocMast locMast = locMastService.selectByLocNo(param.getStartPoint());
            if (Cools.isEmpty(locMast)) {
                map.put("Code", "0");
                map.put("Msg", "初始库位无法找到!");
                return map;
            }
            HashMap<String, Object> r = new HashMap<>();
            if (param.getStereoscopicTaskType() == 2) {
                //出库任务创建
                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                        .eq("type_no", 2)
                        .eq("crn_no", locMast.getCrnNo())
                        .eq("stn_no", param.getTerminalNo()));
                if (Cools.isEmpty(staDesc)) {
                    map.put("Code", "0");
                    map.put("Msg", "出库路劲不存在!");
                    return map;
                }
                r = openService.taskCreate(new TaskCreateParam(param, staDesc.getCrnNo()));
                if (r.get("Code").equals("0")) {
                    return r;
                }
            } else if (param.getStereoscopicTaskType() == 3) {
                String fusion1 = Utils.Fusion(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo());
                param.setTerminalNo(fusion1);
                //移库任务创建
                r = openService.taskCreate(new TaskCreateParam(param, locMast.getCrnNo()));
                if (r.get("Code").equals("0")) {
                    return r;
                }
            }
            apiLogService.save("Wms任务下发接口"
                    , request.getRemoteAddr() + request.getRequestURI()
                    , ""
                    , request.getRemoteAddr()
                    , JSON.toJSONString(param)
                    , r.toString()
                    , true
            );
        }
        map.put("Code", "1");
        map.put("Msg", "ok");
        return map;
    }
    //任务取消接口
    @PostMapping("/taskCancel")
    public R taskCancel(@RequestHeader String appkey,
                        @RequestBody WMSAndAGVInterfaceParam param,
                        HttpServletRequest request) {
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.error("参数为空!");
        } else if (Cools.isEmpty(param.getTaskNo())) {
            return R.error("工作号为空!");
        } else if (Cools.isEmpty(param.getIoType())) {
            return R.error("操作类型为空!");
        } else if (Cools.isEmpty(param.getBarcode())) {
            return R.error("托盘码不能为空!");
        }
        TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>()
                .eq("task_no", param.getTaskNo())
                .eq("io_type", param.getIoType())
                .eq("barcode", param.getBarcode()));
        if (Cools.isEmpty(taskWrk)) {
            return R.error("未查到当前任务---" + param);
        }
        boolean sign = false;
        switch (param.getTaskStatus()) {
            case 1://正常取消
                if (taskWrk.getStatus() > 1) {
                    return R.error("任务已开始执行");
                }
                break;
            case 2://正常完成
                if (taskWrk.getStatus() > 1) {
                    return R.error("任务已开始执行");
                }
                sign = true;
                break;
            default:
                return R.error("未知操作");
        }
        return taskWrkOperate(taskWrk, sign);
    }
    //任务操作
    private R taskWrkOperate(TaskWrk taskWrk, boolean sign) {
        try {
            if (sign) {//完成
                return taskWrkController.complete(taskWrk.getTaskNo());
            } else {//取消
                return taskWrkController.cancel(taskWrk.getTaskNo());
            }
        } catch (Exception e) {
            return R.error();
        }
    }
    //设备状态查询接口
    @GetMapping("/deviceStatus")
    @Transactional
    public R deviceStatus() {
        List<CrnStatusParam> crnStatusParams = new ArrayList<>();
        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
        for (BasCrnp basCrnp : basCrnps) {
            CrnStatusParam crnStatusParam = new CrnStatusParam();
            crnStatusParam.setCrnNo(basCrnp.getCrnNo());
            crnStatusParam.setCrnSts(basCrnp.getCrnSts());
            crnStatusParam.setErrorCode(basCrnp.getCrnErr());
            BasCrnError error = basCrnErrorService.selectOne(new EntityWrapper<BasCrnError>().eq("error_code", basCrnp.getCrnErr()));
            if (Cools.isEmpty(error)) {
                crnStatusParam.setErrorMsg("");
            } else {
                crnStatusParam.setErrorMsg(error.getErrName());
            }
            crnStatusParams.add(crnStatusParam);
        }
        return R.ok(crnStatusParams);
    }
//    @PostMapping("/toAgvTaskOver")
//    @AppAuth(memo = "agv任务完成接口")
//    public R getAgvTaskOver(@RequestHeader String appkey,
//                            @RequestBody TaskOverParam param,
//                            HttpServletRequest request) {
//        auth(appkey, param, request);
//        if (Cools.isEmpty(param)) {
//            return R.parse(BaseRes.PARAM);
//        }
//        if (Cools.isEmpty(param.getStartPoint())) {
//            return R.error("码头[wharfCode]不能为空");
//        }
//        if (Cools.isEmpty(param.getStatus())) {
//            return R.error("完成标记[status]不能为空");
//        }
//        openService.getAgvTaskOver(param);
//        return R.ok();
//    }
}
src/main/java/com/zy/asrs/controller/ReportQueryController.java
@@ -22,6 +22,7 @@
/**
 * 日志统计控制器层
 *
 * @author admin
 * @date 2018年11月23日
 */
@@ -158,6 +159,7 @@
    /**
     * 日入库汇总查询
     *
     * @return
     */
    @RequestMapping("/viewWorkCountInList.action")
src/main/java/com/zy/asrs/controller/TaskWrkLogController.java
@@ -1,6 +1,5 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -10,17 +9,12 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.TaskWrkLog;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.TaskWrkLogService;
import com.zy.asrs.service.TaskWrkReportService;
import com.zy.asrs.service.ToWmsService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.util.*;
src/main/java/com/zy/asrs/controller/TransferTaskController.java
@@ -20,7 +20,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
@RestController
@Slf4j
@@ -38,7 +40,6 @@
    @Autowired
    private ToWmsService toWmsService;
    @RequestMapping(value = "/transferTask/{wrkNo}/auth")
    @ManagerAuth
@@ -129,7 +130,6 @@
        List<TaskWrk> list = taskWrkService.selectList(wrapper);
        return R.ok(exportSupport(list, fields));
    }
    @RequestMapping(value = "/transferTask/check/column/auth")
src/main/java/com/zy/asrs/controller/TransferTaskLogController.java
@@ -40,7 +40,6 @@
    @Autowired
    private ToWmsService toWmsService;
    @RequestMapping(value = "/transferTaskLog/{wrkNo}/auth")
    @ManagerAuth
@@ -131,7 +130,6 @@
        List<TaskWrk> list = taskWrkService.selectList(wrapper);
        return R.ok(exportSupport(list, fields));
    }
    @RequestMapping(value = "/transferTaskLog/check/column/auth")
src/main/java/com/zy/asrs/domain/dto/AxisBean.java
@@ -2,8 +2,8 @@
/**
 * 曲线图表json键
 * @author admin
 *
 * @author admin
 */
public class AxisBean {
    private String name;
src/main/java/com/zy/asrs/domain/dto/WorkChartAxis.java
@@ -2,6 +2,7 @@
/**
 * 入出库统计曲线图
 *
 * @author admin
 * @date 2018年12月12日
 */
src/main/java/com/zy/asrs/domain/vo/LocChartPie.java
@@ -2,6 +2,7 @@
/**
 * 库位占用百分比
 *
 * @author admin
 * @date 2018年12月12日
 */
src/main/java/com/zy/asrs/entity/ApiConfig.java
@@ -33,7 +33,7 @@
    private String url;
    /**
     * 状态 0: 正常  1: 禁用
     * 状态 0: 正常  1: 禁用
     */
    @ApiModelProperty(value = "状态 0: 正常  1: 禁用  ")
    private Integer status;
src/main/java/com/zy/asrs/entity/ApiLog.java
@@ -82,13 +82,13 @@
    private String err;
    /**
     * 结果 1: 成功  0: 失败
     * 结果 1: 成功  0: 失败
     */
    @ApiModelProperty(value = "结果 1: 成功  0: 失败  ")
    private Integer result;
    /**
     * 状态 1: 正常  0: 禁用
     * 状态 1: 正常  0: 禁用
     */
    @ApiModelProperty(value = "状态 1: 正常  0: 禁用  ")
    private Integer status;
src/main/java/com/zy/asrs/entity/BasCrnOpt.java
@@ -110,7 +110,7 @@
    private Integer posSta;
    /**
     * 响应结果 1: 正常  0: 失败
     * 响应结果 1: 正常  0: 失败
     */
    @ApiModelProperty(value = "响应结果 1: 正常  0: 失败  ")
    private Integer response;
src/main/java/com/zy/asrs/entity/BasErrLog.java
@@ -129,7 +129,7 @@
    private String error;
    /**
     * 异常情况 1: 未处理  2: 已修复
     * 异常情况 1: 未处理  2: 已修复
     */
    @ApiModelProperty(value = "异常情况 1: 未处理  2: 已修复  ")
    private Integer status;
src/main/java/com/zy/asrs/entity/BasPlcerrorLog.java
@@ -120,7 +120,7 @@
    private String err;
    /**
     * 异常情况 1: 未处理  2: 已修复
     * 异常情况 1: 未处理  2: 已修复
     */
    @ApiModelProperty(value = "异常情况 1: 未处理  2: 已修复  ")
    private Integer status;
src/main/java/com/zy/asrs/entity/CommandInfoLog.java
@@ -46,7 +46,7 @@
    private String endPos;
    /**
     * 指令状态 1: 创建  2: 执行  3: 完成
     * 指令状态 1: 创建  2: 执行  3: 完成
     */
    @ApiModelProperty(value = "指令状态 1: 创建  2: 执行  3: 完成  ")
    @TableField("command_status")
src/main/java/com/zy/asrs/entity/TaskWrkLog.java
@@ -30,7 +30,7 @@
    private String taskNo;
    /**
     * 任务状态 1: 接收  2: 派发  3: 完结  4: 取消
     * 任务状态 1: 接收  2: 派发  3: 完结  4: 取消
     */
    @ApiModelProperty(value = "任务状态 1: 接收  2: 派发  3: 完结  4: 取消  ")
    private Integer status;
src/main/java/com/zy/asrs/entity/TransferTask.java
@@ -122,6 +122,4 @@
    private Date cancelTime;
}
src/main/java/com/zy/asrs/entity/ViewInOutBean.java
@@ -2,6 +2,7 @@
/**
 * 日出入库次数统计
 *
 * @author admin
 * @date 2018年11月24日
 */
src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java
@@ -13,6 +13,7 @@
/**
 * 库存滞留时间实体类
 *
 * @author admin
 * @date 2018年11月23日
 */
src/main/java/com/zy/asrs/entity/ViewStockUseBean.java
@@ -2,6 +2,7 @@
/**
 * 库位使用率视图实体类
 *
 * @author admin
 * @date 2018年11月23日
 */
src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
@@ -13,6 +13,7 @@
/**
 * 入库明细统计
 *
 * @author admin
 * @date 2018年11月26日
 */
src/main/java/com/zy/asrs/entity/param/TaskOverParam.java
@@ -17,6 +17,11 @@
     */
    private Integer startPoint;
    /**
     * 高度
     */
    private Integer height;
    /**
     * 1放。0取
     */
    private int type;
src/main/java/com/zy/asrs/mapper/DevpTaskMapper.java
@@ -2,17 +2,12 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.DevpTask;
import com.zy.asrs.entity.TaskWrk;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface DevpTaskMapper extends BaseMapper<DevpTask> {
}
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -39,4 +39,5 @@
    List<LocMast> selectLocByLev(@Param("lev") Integer lev);
}
src/main/java/com/zy/asrs/mapper/TransferTaskLogMapper.java
@@ -1,7 +1,6 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.TransferTask;
import com.zy.asrs.entity.TransferTaskLog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@@ -9,7 +8,6 @@
@Mapper
@Repository
public interface TransferTaskLogMapper extends BaseMapper<TransferTaskLog> {
}
src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java
@@ -9,6 +9,8 @@
@Repository
public interface TransferTaskMapper extends BaseMapper<TransferTask> {
    TransferTask selectByStartPoint(Integer startPoint);
    TransferTask selectByEndPoint(Integer endPoint);
}
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -81,6 +81,7 @@
    /**
     * 堆垛机是否存在出库任务
     *
     * @param crnNo
     * @return
     */
@@ -88,6 +89,7 @@
    /**
     * 输送线是否存在入库任务
     *
     * @param crnNo
     * @return
     */
@@ -98,6 +100,7 @@
    /**
     * 查找堆垛机号对应所有待出库工作档
     *
     * @param crnNO
     * @param sourceStaNo
     * @return
src/main/java/com/zy/asrs/service/ApiConfigService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.ApiConfig;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.ApiConfig;
public interface ApiConfigService extends IService<ApiConfig> {
src/main/java/com/zy/asrs/service/BasCrnOptService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.BasCrnOpt;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.BasCrnOpt;
public interface BasCrnOptService extends IService<BasCrnOpt> {
src/main/java/com/zy/asrs/service/BasDevpService.java
@@ -9,38 +9,44 @@
    /**
     * 入库站
     *
     * @return
     */
    List<Integer> getAvailableInSite();
    /**
     * 空板入库站
     *
     * @return
     */
    List<Integer> getAvailableEmptyInSite();
    /**
     * 出库站
     *
     * @return
     */
    List<Integer> getAvailableOutSite(Integer typeNo);
    /**
     * 空板出库站
     *
     * @return
     */
    List<Integer> getAvailableEmptyOutSite();
    /**
     * 目标站点状态检测
     *
     * @param devpNo
     */
    BasDevp checkSiteStatus(Integer devpNo);
    /**
     * 目标站点状态检测
     *
     * @param devpNo
     * @param put 是否入库操作 true 是 ; false 不是
     * @param put    是否入库操作 true 是 ; false 不是
     */
    BasDevp checkSiteStatus(Integer devpNo, boolean put);
src/main/java/com/zy/asrs/service/BasErrLogService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.BasErrLog;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.BasErrLog;
public interface BasErrLogService extends IService<BasErrLog> {
src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -19,6 +19,7 @@
    /**
     * 获取当天相同规格货物的深库位号
     *
     * @param matnr 物料号
     * @return locNo 库位号
     */
src/main/java/com/zy/asrs/service/LocMastService.java
@@ -20,6 +20,7 @@
    /**
     * 获取同组货架的空库位
     *
     * @param sourceLocNo 源库位
     * @return 同组空库位集合
     */
@@ -27,6 +28,7 @@
    /**
     * 堆垛机演示获取源库位
     *
     * @param crn
     * @return
     */
@@ -34,6 +36,7 @@
    /**
     * 堆垛机演示获取目标库位
     *
     * @param crn
     * @return
     */
@@ -41,6 +44,7 @@
    /**
     * 检查当前库位所属巷道的空库位数量
     *
     * @param locMast
     * @return
     */
src/main/java/com/zy/asrs/service/TaskWrkLogService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.TaskWrkLog;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.TaskWrkLog;
public interface TaskWrkLogService extends IService<TaskWrkLog> {
src/main/java/com/zy/asrs/service/TaskWrkService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.TaskWrk;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.TaskWrk;
import java.util.List;
src/main/java/com/zy/asrs/service/ToWmsService.java
@@ -4,7 +4,6 @@
import com.zy.asrs.entity.TaskWrkLog;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.wms.StorageEscalationParam;
import com.zy.asrs.entity.wms.WmsResult;
public interface ToWmsService {
src/main/java/com/zy/asrs/service/TransferTaskLogService.java
@@ -1,8 +1,6 @@
package com.zy.asrs.service;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.TaskWrkLog;
import com.zy.asrs.entity.TransferTask;
import com.zy.asrs.entity.TransferTaskLog;
public interface TransferTaskLogService extends IService<TransferTaskLog> {
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -1,7 +1,5 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
@@ -9,13 +7,9 @@
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WmsLocStatus;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.utils.Utils;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.HashMap;
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -7,12 +7,17 @@
import com.core.exception.CoolException;
import com.zy.asrs.controller.CrnController;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.domain.param.CrnOperatorParam;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.wms.StorageEscalationParam;
import com.zy.asrs.mapper.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
import com.zy.asrs.mapper.StaDescMapper;
import com.zy.asrs.mapper.TaskWrkMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.service.CommonService;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -29,6 +34,7 @@
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -36,6 +42,7 @@
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Random;
/**
 * 立体仓库WCS系统主流程业务
@@ -55,6 +62,8 @@
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private BasDevpService basDevpService;
@@ -66,10 +75,9 @@
    private TaskWrkMapper taskWrkMapper;
    @Autowired
    private DevpTaskMapper devpTaskMapper;
    @Autowired
    private TaskWrkService taskWrkService;
    @Autowired
    private CommonService commonService;
    @Autowired
    private StaDescMapper staDescMapper;
@@ -87,6 +95,22 @@
    @Autowired
    private TransferTaskService transferTaskService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Value("${loc-move.enable}")
    private boolean enable;
    @Value("${loc-move.crn1}")
    private boolean crn1;
    @Value("${loc-move.crn2}")
    private boolean crn2;
    @Value("${loc-move.crn3}")
    private boolean crn3;
    public void generateStoreWrkFile() throws IOException, InterruptedException {
        try {
@@ -838,7 +862,7 @@
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
                if (devp.getId() == 2){
                if (devp.getId() == 2) {
                    continue;
                }
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -1003,23 +1027,117 @@
    /**
     * 跑库程序
     */
    public void debug() {
        //首先库位有一个在库的库位
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F"));
        if (locMast != null) {
            // 再生成一个移库任务
            LocMast mk = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").ne("mk", 1));
    public void debug(String sts, Long modiUser, Integer loc_type1) {
        if (!enable) {
            return;
        }
        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>());
        if (basCrnps.isEmpty()) {
            return;
        }
        for (BasCrnp basCrnp : basCrnps) {
            if (!basCrnp.getInEnable().equals("N") || !basCrnp.getOutEnable().equals("Y")) {
                continue;
            }
            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", basCrnp.getCrnNo()).eq("io_type", 11));
            if (Cools.isEmpty(wrkMasts) || wrkMasts.isEmpty()) {
                int i = locMastService.selectCount(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser));
                LocMast locMastStart = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser));
                if (locMastStart == null || i > 1) {
                    continue;
                }
                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                        .eq("loc_sts", "O")
                        .eq("crn_no", basCrnp.getCrnNo())
                        .eq("loc_type1", locMastStart.getLocType1())
                        .ne("modi_user", 77));
                if (Cools.isEmpty(locMasts)) {
                    continue;
                }
                Random random = new Random();
                LocMast locMastEnd = locMasts.get(random.nextInt(locMasts.size()));
                locMove(locMastStart, locMastEnd, Long.parseLong(basCrnp.getCrnNo().toString()));
            }
        }
    }
    public void locMove(LocMast sourceLoc, LocMast locNo, Long userId) {
        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLoc.getLocNo()));
        LocMast loc = locMastService.selectById(locNo);
        if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
            throw new CoolException("移转库位属于不同堆垛机");
        }
        Date now = new Date();
        // 获取工作号
        int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
        // 保存工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
        wrkMast.setIoType(11); // 入出库状态: 11.库格移载
        wrkMast.setIoPri(10D);
        wrkMast.setCrnNo(sourceLoc.getCrnNo());
        wrkMast.setSourceLocNo(sourceLoc.getLocNo()); // 源库位
        wrkMast.setLocNo(locNo.getLocNo()); // 目标库位
        wrkMast.setFullPlt(Cools.isEmpty(locDetls) ? "N" : "Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
        wrkMast.setExitMk("N"); // 退出
        wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D") ? "Y" : "N"); // 空板
        wrkMast.setBarcode(sourceLoc.getBarcode()); // 托盘码
        wrkMast.setLinkMis("N");
        wrkMast.setAppeUser(userId);
        wrkMast.setAppeTime(now);
        wrkMast.setModiUser(userId);
        wrkMast.setModiTime(now);
        boolean res = wrkMastService.insert(wrkMast);
        if (!res) {
            throw new CoolException("保存工作档失败");
        }
        // 工作档明细保存
        for (LocDetl locDetl : locDetls) {
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(locDetl);
            wrkDetl.setWrkNo(workNo);
            wrkDetl.setIoTime(now);
            wrkDetl.setAnfme(locDetl.getAnfme());
            wrkDetl.setAppeTime(now);
            wrkDetl.setAppeUser(userId);
            wrkDetl.setModiTime(now);
            wrkDetl.setModiUser(userId);
            if (!wrkDetlService.insert(wrkDetl)) {
                throw new CoolException("保存工作档明细失败");
            }
        }
        // 修改源库位状态
        if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
            sourceLoc.setLocSts("R"); // R.出库预约
            sourceLoc.setModiUser(userId);
            sourceLoc.setModiTime(now);
            if (!locMastService.updateById(sourceLoc)) {
                throw new CoolException("更新源库位状态失败");
            }
        } else {
            throw new CoolException("源库位出库失败,状态:" + sourceLoc.getLocSts$());
        }
        // 修改目标库位状态
        if (loc.getLocSts().equals("O")) {
            loc.setLocSts("S"); // S.入库预约
            loc.setModiTime(now);
            loc.setModiUser(userId);
            if (!locMastService.updateById(loc)) {
                throw new CoolException("更新目标库位状态失败");
            }
        } else {
            throw new CoolException("移转失败,目标库位状态:" + loc.getLocSts$());
        }
    }
    /**
     * 转移任务下发
     */
    public void transferTaskStart() {
        for (DevpSlave.Sta sta : slaveProperties.getDevp().get(1).getInSta()) {
            try {
                // 获取入库站信息
@@ -1082,7 +1200,7 @@
                        continue;
                    }
                    log.info("转移任务完成:transferTask:" + JSON.toJSONString(transferTask));
                    transferTask.setStatus(5);
                    transferTask.setStatus(3);
                    transferTaskService.updateById(transferTask);
                }
            } catch (Exception e) {
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -270,7 +270,11 @@
        if (Cools.isEmpty(basDevp)) {
            return R.error("站点号有误" + param.getStartPoint());
        }
        if (Cools.isEmpty(param.getHeight())) {
            return R.error("高度不能为空" + param.getStartPoint());
        }
        if (param.getType() == 0 && basDevp.getAgvStartPick() == 1) {
            basDevp.setInreq2(param.getHeight().toString());
            return R.ok();
        } else if (param.getType() == 1 && basDevp.getAgvStartPlace() == 1) {
            return R.ok();
src/main/java/com/zy/asrs/service/impl/TaskWrkReportServiceImpl.java
@@ -1,42 +1,11 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.StaDesc;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.entity.TaskWrkReport;
import com.zy.asrs.mapper.TaskWrkMapper;
import com.zy.asrs.mapper.TaskWrkReportMapper;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.StaDescService;
import com.zy.asrs.service.TaskWrkReportService;
import com.zy.asrs.service.TaskWrkService;
import com.zy.asrs.utils.Utils;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.core.DevpThread;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.CrnTaskModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CrnSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.protocol.StaProtocol;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Slf4j
@Service
src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java
@@ -14,11 +14,11 @@
    @Override
    public TransferTask selectByStartPoint(Integer startPoint) {
        return null;
        return this.baseMapper.selectByStartPoint(startPoint);
    }
    @Override
    public TransferTask selectByEndPoint(Integer endPoint) {
        return null;
        return this.baseMapper.selectByEndPoint(endPoint);
    }
}
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,16 +1,13 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.*;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -32,11 +29,7 @@
    private WrkMastLogService wrkMastLogService;
    @Autowired
    private ToWmsService    toWmsService;
    private ToWmsService toWmsService;
    @Override
src/main/java/com/zy/asrs/task/TaskReportScheduler.java
@@ -17,7 +17,6 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.io.IOException;
src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -62,7 +62,7 @@
    }
    /**
     *  库位移转时类型检测
     * 库位移转时类型检测
     **/
    public static void locMoveCheckLocType(LocMast sourceLoc, LocMast loc) {
        // 如果源库位是高库位,目标库位是低库位
@@ -72,7 +72,7 @@
    }
    /**
     *  库位移转时类型检测
     * 库位移转时类型检测
     **/
    public static boolean locMoveCheckLocType(LocMast loc, LocTypeDto dto) {
src/main/java/com/zy/core/MainProcess.java
@@ -39,8 +39,11 @@
                    if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
                        continue;
                    }
                    // 跑库程序
                    //mainService.debug();
                    // 跑库程序.未调试测试
                    //mainService.debug("F");
                    //独立输送线任务.未调试测试
                    //mainService.transferTaskStart();
                    //mainService.transferTaskEnd();
                    // 入库  ===>> 入库站到堆垛机站,根据条码扫描生成入库工作档
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -121,20 +121,6 @@
        this.slave = slave;
    }
    public static void main(String[] args) {
        ArrayList<Integer> staNos = staNos1;
        System.out.println(staNos.indexOf(129));
        System.out.println(staNos.size());
        for (int i = 0; i < staNos.size(); i++) {
//            System.out.println(i*2);
//            System.out.println(i*2 + 200);
//            System.out.println(i);
        }
        int index = staNos.indexOf(128);
        System.out.println(index * 2);
        System.out.println(index * 2 + 200);
    }
    private ArrayList<Integer> getStaNo() {
        switch (slave.getId()) {
@@ -586,25 +572,5 @@
        siemensS7Net.ConnectClose();
    }
//    public static void main(String[] args) throws Exception {
//        DevpSlave slave = new DevpSlave();
//        slave.setIp("192.168.2.125");
//        SiemensDevpThread devpThread = new SiemensDevpThread(slave);
//        devpThread.connect();
//        devpThread.read();
//        // 写
//        StaProtocol staProtocol = devpThread.getStation().get(1);
//        staProtocol.setWorkNo((short) 232);
//        staProtocol.setStaNo((short) 6);
//        staProtocol.setAutoing(true);
//        staProtocol.setEmptyMk(true);
//        staProtocol.setInEnable(true);
//        devpThread.write(staProtocol);
//        System.out.println("----------------------------------------");
//        // 读
//        devpThread.read();
//        System.out.println(JSON.toJSONString(devpThread.station));
//
//    }
}
src/main/resources/application.yml
@@ -60,3 +60,9 @@
  successCode: 200
  msg: msg
  data: data
loc-move:
  enable: false
  crn1: false
  crn2: false
  crn3: false
  crn4: false
src/main/resources/mapper/TransferTaskMapper.xml
@@ -4,4 +4,12 @@
    <select id="selectByStartPoint" resultType="com.zy.asrs.entity.TransferTask">
        select top 1 * from wcs_transfer_task where start_point = #{startPoint} and  status = 1
    </select>
    <select id="selectByEndPoint" resultType="com.zy.asrs.entity.TransferTask">
        select top 1 * from wcs_transfer_task where targetPoint = #{endPoint} and  status = 2
    </select>
</mapper>