自动化立体仓库 - WMS系统
pang.jiabao
2024-07-18 8e0335c10755399ba4eda92512939995d844e7bd
src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
@@ -1,13 +1,16 @@
package com.zy.asrs.task.handler;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.mapper.OrderMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.WrkDetlService;
import com.zy.common.constant.MesConstant;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
@@ -17,7 +20,9 @@
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @author pang.jiabao
@@ -37,6 +42,9 @@
    @Resource
    private WrkMastMapper wrkMastMapper;
    @Resource
    private WrkDetlService wrkDetlService;
    @Transactional
    public void startCkrwPushGwcs(WrkMast wrkMast) {
@@ -44,11 +52,15 @@
        Map<String, Object> headers = new HashMap<>();
        headers.put("Content-Type", "application/json;charset=UTF-8");
        // 下发给gwcs要走的路径标识
        int descFlag = getDescToGwcs(wrkMast);
        // 构造请求体
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("workNo", wrkMast.getWrkNo());
        jsonObject.put("staNo", wrkMast.getStaNo());
        jsonObject.put("sourceStaNo", wrkMast.getSourceStaNo());
        jsonObject.put("descFlag", descFlag); // 101出库时用,0只有一条路径,1理货贴标路径,2贴标打带路径
        String body = jsonObject.toJSONString();
        boolean success = false;
@@ -89,6 +101,30 @@
        }
    }
    /**
     * 全板出库到3077或3106的任务,判断出库要走的路径
     * @param wrkMast 工作主档
     * @return 0.只有一条路径,1.理货贴标出库路径,2.贴标打带出库路径
     */
    private int getDescToGwcs(WrkMast wrkMast) {
        int flag = 0;
        if (wrkMast.getIoType() == 101 && (wrkMast.getStaNo() == 3077 || wrkMast.getStaNo() == 3106)) {
            List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
            // 出的物料有几个位置
            List<String> collect = wrkDetls.stream().map(WrkDetl::getOrigin).distinct().collect(Collectors.toList());
            if (collect.size() == 1) { // 一箱
                if (wrkDetls.size() == 1) { // 一卷去贴标
                     flag = 1;
                } else { // 多卷直接出
                }
            } else if(collect.size() == 2) { // 两箱去贴标打带
                    flag = 2;
            }
        }
        return flag;
    }
    @Transactional
    public void OutBoundCompleteReport(Order order) {