自动化立体仓库 - WMS系统
zyx
2023-10-12 cf55ca39fd7f7d65d5119313dff6315ac63aad8c
src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
@@ -1,6 +1,5 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -12,18 +11,14 @@
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.AgvWrkMast;
import com.zy.asrs.entity.param.AgvTaskCreateParam;
import com.zy.asrs.entity.param.AgvTaskParam;
import com.zy.asrs.entity.param.AgvTaskkDescribeParam;
import com.zy.asrs.service.AgvWaitPakinService;
import com.zy.asrs.service.AgvWrkMastService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/agv")
@@ -31,6 +26,8 @@
    @Autowired
    AgvWrkMastService agvWrkMastService;
    @Autowired
    AgvWaitPakinService agvWaitPakinService;
    @RequestMapping(value = "/wrkMast/{id}/auth")
    @ManagerAuth
@@ -168,43 +165,23 @@
        if (Cools.isEmpty(agvWrkMastList)){
            return R.error();
        }
        int startWrkCode = agvWrkMastService.startWrk(agvWrkMastList,"putaway");
        AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
        agvTaskCreateParam.setTaskType("putaway");
        List<AgvTaskParam> agvTaskParamList = agvWrkMastList.stream().map(agvWrkMast -> {
            AgvTaskParam agvTaskParam = new AgvTaskParam();
            AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam();
            agvTaskParam.setTaskDescribe(agvTaskkDescribeParam);
            //AgvTaskParam
            agvTaskParam.setTaskCode(agvWrkMast.getWrkNo().toString());
            agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue());
            //AgvTaskkDescribeParam
            agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo());
            agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo());
            agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode());
            return agvTaskParam;
        }).collect(Collectors.toList());
        agvTaskCreateParam.setTasks(agvTaskParamList);
        String response = new HttpHandler.Builder()
                .setUri("localhost:8080")
                .setPath("test/task/create")
                .setJson(JSONObject.toJSONString(agvTaskCreateParam))
                .build()
                .doPost();
        JSONObject jsonObject = JSON.parseObject(response);
        int code = (int) jsonObject.get("code");
        System.out.println(response);
        int code = agvWrkMastService.containerMove(agvWrkMastList);
        if(code == 0){
            agvWrkMastList.forEach(agvWrkMast -> {
                //202.RCS取货中
                agvWrkMast.setWrkSts((long)202);
                //修改AGV入库通知档状态入出状态为Y
                agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
            });
            agvWrkMastService.updateBatchById(agvWrkMastList);
            return R.ok("任务启动成功");
        }
        return R.error("任务启动失败");
        return R.ok();
    }
}