自动化立体仓库 - WMS系统
pang.jiabao
2024-11-07 e726415232fd4141135a399aa51ffafd45d8deff
一楼返修入库,和出库推送mes记录日志
4个文件已修改
159 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/param/GwmsGenerateInventoryDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/constant/MesConstant.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/GwmsGenerateInventoryDto.java
@@ -1,5 +1,6 @@
package com.zy.asrs.entity.param;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.List;
@@ -17,6 +18,8 @@
    public static class MatList{
        private String boxPos; // 箱子位置
        private String packageGroupNo; // 包装组号
        private String outOrIn; // out出,in入
        private String stockType; // 出入类型
        private String boxType; // 木箱类型
        private String rollType; // 管芯类型
        private String wideInWidth; // 实测宽幅(分切成品下料)
@@ -24,6 +27,7 @@
        private List<Rolls> rolls; // 卷集合
    }
    @Data
    @AllArgsConstructor
    public static class Rolls{
        private String rollNo; // 卷号
        private String boxNo; // 箱号
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1547,10 +1547,67 @@
            throw new CoolException(dto.getLocNo() + "目标库位已被占用");
        }
        // 一楼返修入库推送mes做记录
        pushFxrkToMes(param);
        // 返回GWCS目标信息
        openServiceImpl.pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode(), "二楼返修入库推送gwcs");
        return R.ok("反修入库成功");
    }
    private void pushFxrkToMes(GwmsGenerateInventoryDto param) {
        for (GwmsGenerateInventoryDto.MatList matList : param.getMatList()){
            matList.setOutOrIn("in");
            matList.setStockType("返修入库");
        }
        boolean success = false;
        // 获取请求头
        Map<String,Object> headers = new HashMap<>();
        headers.put("Content-Type","application/json;charset=UTF-8");
        // 构造请求体
        String body = JSON.toJSONString(param);
        String response = "";
        try {
            response = new HttpHandler.Builder()
                    .setUri(MesConstant.MES_CC_IP_PORT)
                    .setPath(MesConstant.MES_CC_FXRK_URL)
                    .setHeaders(headers)
                    .setJson(body)
                    .build()
                    .doGet();
            if (!Cools.isEmpty(response)) {
                JSONObject jsonObject1 = JSONObject.parseObject(response);
                int code = (int) jsonObject1.get("code");
                boolean state  = jsonObject1.getBoolean("state");
                if (code == 200 && state) {
                    success = true;
                }
            } else {
                log.error("返修入库推送mes记录失败!!!url:{};request:{};response:{}", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_FXRK_URL, body, response);
            }
        } catch (Exception e) {
            log.error("返修入库推送mes记录异常:{}", e.getMessage());
        } finally {
            try {
                // 保存接口日志
                apiLogService.save(
                        "返修入库推送mes记录",
                        MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_FXRK_URL,
                        null,
                        "127.0.0.1",
                        body,
                        response,
                        success
                );
            } catch (Exception e) {
                log.error("", e);
            }
        }
    }
    @Override
@@ -1914,7 +1971,7 @@
                }
                throw new CoolException(msg);
            } else {
                log.error("返修品入库给mes推送待判失败!!!url:{};request:{};response:{}", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_IP_PORT, body, response);
                log.error("返修品入库给mes推送待判失败!!!url:{};request:{};response:{}", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_DP_URL, body, response);
                throw new CoolException("返修品入库给mes推送待判失败");
            }
        } catch (Exception e) {
@@ -1924,7 +1981,7 @@
                // 保存接口日志
                apiLogService.save(
                        "返修品入库给mes推送待判",
                        MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_IP_PORT,
                        MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_DP_URL,
                        null,
                        "127.0.0.1",
                        body,
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -1486,9 +1487,99 @@
            wrkMastService.updateById(wrkMast);
        }
        // 出库上报推送mes记录
        ckjgsbPushMes(wrkMast,wrkDetls);
        return "出库结果上报成功";
    }
    private void ckjgsbPushMes(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
        GwmsGenerateInventoryDto gwmsGenerateInventoryDto = new GwmsGenerateInventoryDto();
        gwmsGenerateInventoryDto.setBarcode(wrkMast.getBarcode());
        gwmsGenerateInventoryDto.setPalletizingNo(wrkMast.getStaNo());
        List<GwmsGenerateInventoryDto.MatList> matLists = new ArrayList<>();
        for (WrkDetl wrkDetl:wrkDetls) {
            boolean flag = true;
            for (GwmsGenerateInventoryDto.MatList matList : matLists) {
                if (matList.getPackageGroupNo().equals(wrkDetl.getBrand())) {
                    matList.getRolls().add(new GwmsGenerateInventoryDto.Rolls(wrkDetl.getModel(),
                                    wrkDetl.getUnit(),wrkDetl.getMaktx(),wrkDetl.getLength(),
                                    Integer.parseInt(wrkDetl.getSpecs()),wrkDetl.getWeight(),wrkDetl.getVolume(),
                                    wrkDetl.getManuDate()));
                    flag = false;
                    break;
                }
            }
            if (flag) {
                GwmsGenerateInventoryDto.MatList matList = new GwmsGenerateInventoryDto.MatList();
                matList.setBoxPos(wrkDetl.getOrigin());
                matList.setPackageGroupNo(wrkDetl.getBrand());
                matList.setOutOrIn("out");
                matList.setStockType(wrkMast.getStaNo() == 2041 ? "返修出库" : "成品出库");
                matList.setBoxType(wrkDetl.getColor());
                matList.setRollType(wrkDetl.getManu());
                matList.setWideInWidth(wrkDetl.getSku());
                matList.setThickness(wrkDetl.getItemNum());
                List<GwmsGenerateInventoryDto.Rolls> rollsList = new ArrayList<>();
                GwmsGenerateInventoryDto.Rolls roll = new GwmsGenerateInventoryDto.Rolls(wrkDetl.getModel(),
                        wrkDetl.getUnit(),wrkDetl.getMaktx(),wrkDetl.getLength(),
                        Integer.parseInt(wrkDetl.getSpecs()),wrkDetl.getWeight(),wrkDetl.getVolume(),
                        wrkDetl.getManuDate());
                rollsList.add(roll);
                matList.setRolls(rollsList);
                matLists.add(matList);
            }
        }
       gwmsGenerateInventoryDto.setMatList(matLists);
        boolean success = false;
        // 获取请求头
        Map<String,Object> headers = new HashMap<>();
        headers.put("Content-Type","application/json;charset=UTF-8");
        // 构造请求体
        String body = JSON.toJSONString(gwmsGenerateInventoryDto);
        String response = "";
        try {
            response = new HttpHandler.Builder()
                    .setUri(MesConstant.MES_CC_IP_PORT)
                    .setPath(MesConstant.MES_CC_FXRK_URL)
                    .setHeaders(headers)
                    .setJson(body)
                    .build()
                    .doGet();
            if (!Cools.isEmpty(response)) {
                JSONObject jsonObject1 = JSONObject.parseObject(response);
                int code = (int) jsonObject1.get("code");
                boolean state  = jsonObject1.getBoolean("state");
                if (code == 200 && state) {
                    success = true;
                }
            } else {
                log.error("出库上报推送mes记录失败!!!url:{};request:{};response:{}", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_FXRK_URL, body, response);
            }
        } catch (Exception e) {
            log.error("出库上报推送mes记录异常:{}", e.getMessage());
        } finally {
            try {
                // 保存接口日志
                apiLogService.save(
                        "出库上报推送mes记录",
                        MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_FXRK_URL,
                        null,
                        "127.0.0.1",
                        body,
                        response,
                        success
                );
            } catch (Exception e) {
                log.error("", e);
            }
        }
    }
    @Autowired
    private BasCrnpService basCrnpService;
src/main/java/com/zy/common/constant/MesConstant.java
@@ -27,6 +27,9 @@
    // 给仓储MES推送盘点异常调整结果
    public static final String MES_CC_YCTZ_URL = "/productInventory/v1/exception";
    // 一楼返修入库推送mes做记录
    public static final String MES_CC_FXRK_URL = "/productInventory/v1/saveDto";
    // MES质量IP地址**********************************************************
    public static final String MES_ZL_IP_PORT = "http://172.22.152.3:8157";