自动化立体仓库 - WMS系统
zhangc
2025-01-20 37f55514ad2f02397fd75c7d98cea25e371243c7
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -29,6 +29,9 @@
@Slf4j
public class AgvWrkMastServiceImp extends ServiceImpl<AgvWrkMastMapper, AgvWrkMast> implements AgvWrkMastService {
    @Value("${agv.flag}")
    private boolean flag;
    @Value("${agv.url}")
    private String url;
@@ -63,13 +66,13 @@
    private AgvWrkMastService agvWrkMastService;
    public void updateWrkStsByWrkNo(int wrkNo, long wrkSts) {
    public Boolean updateWrkStsByWrkNo(int wrkNo, long wrkSts) {
        AgvWrkMast agvWrkMast = this.selectById(wrkNo);
        //判断要修改的工作档状态是否合理,如果不合理则抛出异常
        checkWrkSts(agvWrkMast, wrkSts);
        agvWrkMast.setWrkSts(wrkSts);
        agvWrkMast.setModiTime(new Date());
        this.updateById(agvWrkMast);
        return this.updateById(agvWrkMast);
    }
    public void updateWrkStsByWrkNo(int wrkNo, long wrkSts, String manuType, long userId) {
@@ -270,9 +273,42 @@
    }
    // TODO 四期
    private boolean processUseTiShengJi(String sourceLocNo, String locNo) {
        // 判断是否是提升机
        if (sourceLocNo.startsWith("YZ")) {
            if (sourceLocNo.endsWith("01F2") && !locNo.startsWith("YZ") && locNo.endsWith("F4") && locNo.startsWith("Q")) {
                // 从生产二厂的库位到吸塑二厂的点位上
                return true;
            } else if (sourceLocNo.endsWith("01F2") && locNo.startsWith("YZ") && locNo.endsWith("02F1")) {
                // 从生产二厂的库位到吸塑二厂的库位
                return true;
            } else if (sourceLocNo.endsWith("02F1") && locNo.startsWith("YZ") && locNo.endsWith("01F2")) {
                // 吸塑二楼的库位到生产二厂的库位
                return true;
            } else if (sourceLocNo.endsWith("02F1") && !locNo.startsWith("YZ") && locNo.endsWith("F2")) {
                // 吸塑二楼的库位到生产二厂的点位
                return true;
            }
        } else {
            if (sourceLocNo.endsWith("F4") && locNo.startsWith("YZ") && locNo.endsWith("01F2")) {
                // 从吸塑二楼的点位到生产二厂的库位
                return true;
            } else if (sourceLocNo.endsWith("F2") && locNo.startsWith("YZ") && locNo.endsWith("02F1")) {
                // 从生产二厂的点位到吸塑二楼的库位
                return true;
            }
        }
        return false;
    }
    private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip) {
        if (!flag) {
            return 1;
        }
        String response = "";
        boolean success = false;
        int code = 0;
        try {
            response = new HttpHandler.Builder()
                    .setUri(url)
@@ -283,7 +319,7 @@
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            int code = Integer.parseInt(jsonObject.get("code").toString());
            code = Integer.parseInt(jsonObject.get("code").toString());
            if (code != 0) {
                if (code == 6) {
                    log.info("AGV任务单号已上报:{}", response);
@@ -300,19 +336,20 @@
            return code;
        } catch (Exception e) {
            log.error(e.getMessage());
            //TODO 张超
            throw new CoolException("调用AGV响应错误");
            //return 1;
        } finally {
            apiLogService.save(
                    namespace,
                    url + path,
                    appkey,
                    ip,
                    JSON.toJSONString(JSONObject.toJSONString(requestParam)),
                    response,
                    success
            );
            if (code != 6) {
                apiLogService.save(
                        namespace,
                        url + path,
                        appkey,
                        ip,
                        JSON.toJSONString(JSONObject.toJSONString(requestParam)),
                        response,
                        success
                );
            }
        }
    }