自动化立体仓库 - WMS系统
src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -1,23 +1,21 @@
package com.zy.asrs.service.impl;
import com.alibaba.excel.util.DateUtils;
import com.alibaba.excel.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.mes.*;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.entity.rcs.*;
import com.zy.asrs.mapper.AgvInfoMapper;
import com.zy.asrs.mapper.MatItemBarcodeMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.model.DetlDto;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import lombok.extern.slf4j.Slf4j;
@@ -30,16 +28,22 @@
import javax.annotation.Resource;
import java.text.ParseException;
import java.util.*;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Slf4j
@Service
public class MesServiceImpl implements MesService {
    @Value("${mes.url}")
    public String MES_URL;
    // 海康RCS地址
    @Value("${hik.url}")
    private String HIK_URL;
    // 华晓RCS地址
    @Value("${hx.url}")
    private String HX_URL;
    @Value("${wms.currentName}")
    public String WMS_CURRENT_NAME;
    @Value("${wms.wmsTransStartStation1}")
@@ -243,7 +247,7 @@
            OrderPakin orderPakin = new OrderPakin();
            orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
            orderPakin.setOrderNo(entry.getKey());
            orderPakin.setOrderTime(com.core.common.DateUtils.convert(now));
            orderPakin.setOrderTime(DateUtils.convert(now));
            orderPakin.setDocType(docType);
            orderPakin.setSettle(1L);
            orderPakin.setStatus(1);
@@ -553,7 +557,7 @@
            OrderPakin orderPakin = new OrderPakin();
            orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
            orderPakin.setOrderNo(mesInApply.getOrderNo());
            orderPakin.setOrderTime(com.core.common.DateUtils.convert(now));
            orderPakin.setOrderTime(DateUtils.convert(now));
            orderPakin.setDocType(docType);
            orderPakin.setSettle(settle);
            orderPakin.setStatus(1);
@@ -956,7 +960,7 @@
            OrderPakout orderPakout = new OrderPakout();
            orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
            orderPakout.setOrderNo(mesCallOutApply.getOrderNo());
            orderPakout.setOrderTime(com.core.common.DateUtils.convert(now));
            orderPakout.setOrderTime(DateUtils.convert(now));
            orderPakout.setDocType(docType.getDocId());
            orderPakout.setSettle(settle);
            orderPakout.setStatus(1);
@@ -978,6 +982,10 @@
                    set.add(mesOutApplyItem.getTrayid());
                    Mat mat = matService.selectByMatnr(mesOutApplyItem.getItemno());
                    if (Cools.isEmpty(mat)) {
                        log.error("物料编号不存在: {}", mesOutApplyItem.getItemno());
                        throw new CoolException("物料编号不存在: " + mesOutApplyItem.getItemno());
                    }
                    OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
                    orderDetlPakout.setOrderId(orderPakout.getId());
                    orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
@@ -1027,7 +1035,7 @@
            OrderPakin orderPakin = new OrderPakin();
            orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
            orderPakin.setOrderNo(mesCallOutApply.getOrderNo());
            orderPakin.setOrderTime(com.core.common.DateUtils.convert(now));
            orderPakin.setOrderTime(DateUtils.convert(now));
            orderPakin.setDocType(docType.getDocId());
            orderPakin.setSettle(1L);
            orderPakin.setStatus(1);
@@ -1108,7 +1116,9 @@
        Date now = new Date();
        Task task = new Task();
        task.setWrkNo(workNo);
        task.setTaskType("ZX-AGV");
        //08-1是空托盘转序任务
        //08-2是物料转序任务
        task.setTaskType("ZX-AGV-"+transTask.getTransType());
        task.setWrkSts(301L);//301.AGV任务创建
        task.setIoType(3);//3.站到站
        task.setIoPri(10.00);
@@ -1232,7 +1242,7 @@
        if ("Y".equals(allow.getStatus())) {
            String TaskNo = allow.getTaskno();
            if(allow.getTaskno().contains("-")){
                TaskNo = allow.getTaskno().split("-")[0];
                TaskNo = allow.getTaskno().substring(0, allow.getTaskno().length() - 2);
            }
            Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", TaskNo));
            if (Cools.isEmpty(task)) {
@@ -1324,7 +1334,7 @@
        if ("Y".equals(allow.getStatus())) {
            String TaskNo = allow.getTaskno();
            if(allow.getTaskno().contains("-")){
                TaskNo = allow.getTaskno().split("-")[0];
                TaskNo = allow.getTaskno().substring(0, allow.getTaskno().length() - 2);
            }
            Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", TaskNo));
            if (Cools.isEmpty(task)) {
@@ -1390,6 +1400,27 @@
        return mesReturn;
    }
    @Override
    public int AGVPause(JSONObject params, int AGVType){
        MesReturn mesReturn = new MesReturn();
        String hik_url = "api/robot/controller/zone/pause";
        String hx_url = "";
        String URL = "";
        if (AGVType == 1){
            URL = HIK_URL + hik_url;
        }else {
            URL = HX_URL + hx_url;
        }
        String response = RcsServiceImpl.sendPost(URL, JSONObject.toJSONString(params));
        JSONObject jsonObject = JSON.parseObject(response);
        if (!StringUtils.isEmpty(response) && jsonObject.getString("code").equals("SUCCESS")) {
                return 1;
        }else
            return 2;
    }
    // endregion
    /**