自动化立体仓库 - WMS系统
zwl
2025-06-25 6efef82561e2cf14f09871d63e1581c6174cfe10
src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java
@@ -19,6 +19,7 @@
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
@Slf4j
@@ -35,61 +36,63 @@
    private String attrcs;
    public ReturnT<String> start(WrkMast wrkMast) {
        RCSParam rcsParam = new RCSParam();
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String noww="bb" + new Date().getTime();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formattedDate = now.format(formatter); // 格式化日期时间
        //网络流水号
        rcsParam.setReqId(now.toString());
        //应用标识
        rcsParam.setClientId("WMS");
        //通知时间
        rcsParam.setReqTime(formattedDate);
        RCSParam.DataBody dataBody=new RCSParam.DataBody();
        //任务号
        dataBody.setId(wrkMast.getWrkNo()+"");
        List<RCSParam.TaskBody> taskBodyList=new ArrayList<>();
        RCSParam.TaskBody taskBody=new RCSParam.TaskBody();
        //取货类型
        taskBody.setType("load");
        taskBody.setStation(wrkMast.getStaNo()+"");
        taskBodyList.add(taskBody);
        LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>();
        rcsParam.put("task_id",noww);
        rcsParam.put("start_location","102");
        rcsParam.put("start_site_level",1);
        rcsParam.put("start_command",1);
        rcsParam.put("target_location",wrkMast.getMemo());
        rcsParam.put("target_site_level",1);
        rcsParam.put("target_command",2);
        rcsParam.put("priority",1);
        rcsParam.put("robot_type",3);//车 辆 类 型 0:XC 1:XCD 2:XP_T 3:XP_L
        rcsParam.put("MoverID","XS1");
        RCSParam.TaskBody taskBody1=new RCSParam.TaskBody();
        //放货类型
        taskBody1.setType("unload");
        taskBody1.setStation(wrkMast.getMemo());
        taskBodyList.add(taskBody1);
        dataBody.setTasks(taskBodyList);
        rcsParam.setData(dataBody);
        LinkedHashMap<String,Object> map=new LinkedHashMap<>();
        map.put("data",rcsParam);
        String response ="";
        Boolean bool =false;
        String msg = "";
        wrkMast.setPauseMk(noww);
        try {
            log.info("wms派发搬运任务给AGV搬运={}", rcsParam);
            response = new HttpHandler.Builder()
                    // .setHeaders(headParam)
                    .setUri(url)
                    .setPath(attrcs)
                    .setJson(JSON.toJSONString(rcsParam))
                    .setJson(JSON.toJSONString(map))
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            if(jsonObject.getBoolean("IsSuccess")){
                wrkMast.setWrkSts(31L);//WMS下发搬运任务给RCS成功
            JSONObject data = jsonObject.getJSONObject("data");
            JSONObject errInfo = jsonObject.getJSONObject("err_info");
            if(data.getInteger("result")==0){
                if(wrkMast.getIoType()==103||wrkMast.getIoType()==107){
                    wrkMast.setWrkSts(16L);//待回库
                }else{
                    wrkMast.setWrkSts(15L);//下发RCS-成功
                }
                wrkMast.setErrorMemo(noww);
                wrkMastService.updateById(wrkMast);
                bool = true;
            }else{
                msg=errInfo.getString("err_msg");
            }
        } catch (Exception e) {
            log.error("wms派发搬运任务给AGV搬运失败{},返回值={}", wrkMast, response);
            log.error("wms派发搬运任务给AGV搬运失败返回值={}", response);
        } finally {
            apiLogService.save("wms派发搬运任务给AGV搬运"
                    , url + attrcs
                    , null
                    , "127.0.0.1"
                    , JSON.toJSONString(rcsParam)
                    , JSON.toJSONString(map)
                    , response
                    , bool
            );