zyx
2024-01-31 ca8f5a8f133e7f5b00b9d35ff6d15720804569af
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;
@@ -11,9 +10,8 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.TaskOverParam;
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.entity.param.taskCreateParam;
import com.zy.asrs.entity.param.TaskCreateParam;
import com.zy.asrs.service.*;
import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -23,10 +21,7 @@
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Slf4j
@RestController
@@ -45,9 +40,12 @@
    private BasDevpService basDevpService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private LocMastService locMastService;
    @Value("${wms.url}")
    private String wmsUrl;
@@ -80,7 +78,7 @@
    //创建任务
    @PostMapping("/taskCreate")
    public R taskCreate(@RequestHeader String appkey,
                          @RequestBody taskCreateParam param,
                          @RequestBody TaskCreateParam param,
                          HttpServletRequest request) {
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
@@ -185,22 +183,26 @@
        }
        Map<String,Integer> map = new HashMap<>();
        map.put("J-1101",102);map.put("J-1102",101);
        map.put("J-1103",106);map.put("J-1104",105);
        map.put("J-1105",110);map.put("J-1106",109);
        map.put("J-1107",114);map.put("J-1108",113);
        map.put("J-1109",118);map.put("J-1110",117);
        map.put("J-1111",122);map.put("J-1112",121);
        map.put("J-1102",102);map.put("J-1101",101);
        map.put("J-1103",105);map.put("J-1104",106);
        map.put("J-1105",109);map.put("J-1106",110);
        map.put("J-1107",113);map.put("J-1108",114);
        map.put("J-1109",117);map.put("J-1110",118);
        map.put("J-1111",121);map.put("J-1112",122);
        map.put("H-1102",300);map.put("H-1101",305);
        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                .eq("stn_desc", param.getWharfCode()));
        if (Cools.isEmpty(staDesc)){
            return R.error("程序报错,未查询到站点");
        map.put("G-1102",400);map.put("G-1101",405);
//        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
//                .eq("stn_desc", param.getWharfCode()));
//
//        if (Cools.isEmpty(staDesc)){
//            return R.error("程序报错,未查询到站点");
//        }
        if (Cools.isEmpty(map.get(param.getWharfCode()))){
            return R.error("未查询到站点");
        }
        //BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode()));
        BasDevp basDevp = basDevpService.selectById(staDesc.getStnNo());
        if (basDevp.getAutoing().equals("Y")){
        BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode()));
//        BasDevp basDevp = basDevpService.selectById(staDesc.getStnNo());
        if (basDevp.getAutoing().equals("Y") && (basDevp.getInEnable().equals("Y") || basDevp.getOutEnable().equals("Y"))){
            apiLogService.save("AGV请求入库码头接口"
                    ,request.getRemoteAddr()+request.getRequestURI()
                    ,appkey
@@ -209,7 +211,7 @@
                    ,R.ok().toString()
                    ,true
            );
            return R.ok();
            return R.ok("可入");
        }else {
            apiLogService.save("AGV请求入库码头接口"
                    ,request.getRemoteAddr()+request.getRequestURI()
@@ -238,53 +240,90 @@
        List<WMSAndAGVInterfaceParam> params1 =new ArrayList<>();
        for (WMSAndAGVInterfaceParam param:params){
                if (Cools.isEmpty(param)){
                    return R.error("参数为空!");
                } else if (Cools.isEmpty(param.getTaskNo())){
                    return R.error("任务号为空!");
                } else if (Cools.isEmpty(param.getTaskType())){
                    return R.error("任务类型为空!");
                } else if (Cools.isEmpty(param.getWarehouseId())){
                    return R.error("仓库标识为空!");
                }
                if (Cools.isEmpty(param.getTaskPriority())){
                    param.setTaskPriority(1);
                }
                if (Cools.isEmpty(param.getContainerCode())){
                    return R.error("容器编码(托盘码)为空!");
                }
                if (Cools.isEmpty(param.getEmptyContainer())){
                    return R.error("是否空托盘信号为空!");
                }
                if (Cools.isEmpty(param.getTargetWharf())){
                    return R.error("目标码头区域为空!");//G开头=7车间,H开头=8层,J开头=9车间
                }
                StaDesc staDesc = new StaDesc();
                if (param.getTaskType().equals("CK") && param.getTargetWharf().contains("J")){
                    staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                            .eq("crn_no", param.getTaskTunnel()).eq("type_no",2).lt("crn_stn", 200));
                }else {
                    staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                            .eq("crn_no", param.getTaskTunnel()).eq("type_no",2).ge("crn_stn", 200));
            if (Cools.isEmpty(param)){
                return R.error("参数为空!");
            } else if (Cools.isEmpty(param.getTaskNo())){
                return R.error("任务号为空!");
            } else if (Cools.isEmpty(param.getTaskType())){
                return R.error("任务类型为空!");
            } else if (Cools.isEmpty(param.getWarehouseId())){
                return R.error("仓库标识为空!");
            }
            if (Cools.isEmpty(param.getTaskPriority())){
                param.setTaskPriority(1);
            }
            if (Cools.isEmpty(param.getSourceLocationCode()) || Cools.isEmpty(param.getTargetLocationCode())){
                return R.error("初始目标或者目标位为空");
            }
//            if (Cools.isEmpty(param.getContainerCode())){
//                return R.error("容器编码(托盘码)为空!");
//            }
//            if (Cools.isEmpty(param.getEmptyContainer())){
//                return R.error("是否空托盘信号为空!");
//            }
//            if (!param.getTaskType().equals("YK")){
//                if (Cools.isEmpty(param.getTargetWharf())){
//                    return R.error("目标码头区域为空!");//G开头=7车间,H开头=8层,J开头=9车间
//                }
//            }
            LocMast locMast = locMastService.selectByLocNo(param.getSourceLocationCode());
            if(Cools.isEmpty(locMast)){
                return R.error("初始库位无法找到");
            }
            Integer ioType = TaskCreateParam.convertParamIoType(param.getTaskType());
            if(ioType == 2){
                //出库任务创建
                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                        .eq("type_no",2)
                        .eq("crn_no",locMast.getCrnNo())
                        .eq("stn_no",param.getTargetLocationCode()));
                if(Cools.isEmpty(staDesc)){
                    return R.error("出库路劲不存在");
                }
                param.setTargetLocationCode(staDesc.getStnNo().toString());
                R r = openService.taskCreate(new TaskCreateParam(param));
            }else if (ioType == 3){
                //移库任务创建
            }
//            if (param.getTaskType().equals("CK") && param.getTargetWharf().contains("J")){
//                staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
//                        .eq("crn_no",param.getTaskTunnel())
//                        .eq("type_no",2)
//                        .lt("stn_no",200));
//            }else if (param.getTaskType().equals("CK") && param.getTargetWharf().contains("H")){
//                staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
//                        .eq("crn_no",param.getTaskTunnel())
//                        .eq("type_no",2)
//                        .lt("stn_no",400)
//                        .gt("stn_no",200));
//            }else {
//                staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
//                        .eq("crn_no",param.getTaskTunnel())
//                        .eq("type_no",2)
//                        .lt("stn_no",500)
//                        .ge("stn_no",400));
//            }
            //param.setTargetLocationCode(staDesc.getStnNo().toString());
                R r = openService.taskCreate(new taskCreateParam(param));
            R r = openService.taskCreate(new TaskCreateParam(param));
                apiLogService.save("Wms任务下发接口"
                        ,request.getRemoteAddr()+request.getRequestURI()
                        ,appkey
                        ,request.getRemoteAddr()
                        ,JSON.toJSONString(param)
                        ,r.toString()
                        ,true
                );
                return r;
            apiLogService.save("Wms任务下发接口"
                    ,request.getRemoteAddr()+request.getRequestURI()
                    ,appkey
                    ,request.getRemoteAddr()
                    ,JSON.toJSONString(param)
                    ,r.toString()
                    ,true
            );
        }
        return null;
        return R.ok();
    }
    //任务取消接口
@@ -292,6 +331,7 @@
    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())){
@@ -347,6 +387,37 @@
        }
    }
    //设备状态查询接口
    @PostMapping("/deviceStatus")
    @Transactional
    public R deviceStatus(@RequestHeader String appkey,
                              HttpServletRequest request) {
        auth(appkey, "设备状态查询接口", request);
        List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
        List<Map<String, Object>> list = new ArrayList<>();
        for (BasDevp basDevp:basDevps){
            Map<String, Object> map = new HashMap<>();
            map.put("devNo", basDevp.getDevNo());
            map.put("devType", "输送线");
            map.put("devStatus", basDevp.getAutoing().equals("Y")? 1:0);
            map.put("errorCode", 0);
            map.put("errorMsg", "");
            map.put("newDate",new Date());
            list.add(map);
        }
        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
        for (BasCrnp basCrnp:basCrnps){
            Map<String, Object> map = new HashMap<>();
            map.put("devNo", basCrnp.getCrnNo());
            map.put("devType", "堆垛机");
            map.put("devStatus", basCrnp.getCrnSts());
            map.put("errorCode", 0);
            map.put("errorMsg", "");
            map.put("newDate",new Date());
            list.add(map);
        }
        return R.ok(list);
    }
}