自动化立体仓库 - WMS系统
skyouc
3 天以前 56b1b873191d6e7022ed225cf81c3eda774f210e
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,26 +1,25 @@
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;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SnowflakeIdWorker;
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.entity.param.FullStoreParam;
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.param.CompleteParam;
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.constant.MesConstant;
import com.zy.common.model.*;
import com.zy.common.model.enums.IoWorkType;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.web.WcsController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -1404,4 +1403,73 @@
        }
    }
    /**
     * 执行移库任务
     * @param combParam
     * @param userId
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R taskMove(CompleteParam combParam, Long userId) {
        if (Objects.isNull(combParam.getTaskNo())) {
            return R.error("任务号不能为空");
        }
        if (Objects.isNull(combParam.getSourceLocNo())) {
            return R.error("源库位不能为空!!");
        }
        if (Objects.isNull(combParam.getLocNo())) {
            return R.error("目标库位不能为空!");
        }
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", combParam.getTaskNo()));
        if (Objects.isNull(wrkMast)) {
            return R.error("任务档不存在!!");
        }
        String body = JSON.toJSONString(combParam);
        boolean success = false;
        String response = "";
        try {
            response = new HttpHandler.Builder()
                    .setUri(MesConstant.WCS_URL)
                    .setPath(MesConstant.MOVE_LOC_TASK)
                    .setJson(body)
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            if (jsonObject.getInteger("code").equals(200)) {
                wrkMast.setWrkSts(2L);
                if (!wrkMastService.updateById(wrkMast)) {
                    throw new CoolException("任务状态更新失败!!");
                }
                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
                if (!Objects.isNull(locMast)) {
                    locMast.setMoveStatus(1);
                    locMastService.updateById(locMast);
                }
                success = true;
            } else {
                log.error("发送agv任务失败!!!url:{};request:{};response:{}", MesConstant.WCS_URL + MesConstant.MOVE_LOC_TASK, body, response);
            }
        } catch (Exception e) {
            log.error("发送agv任务异常", e);
        } finally {
            try {
                // 保存接口日志
                apiLogService.save(
                        "发送agv任务",
                        MesConstant.WCS_URL + MesConstant.MOVE_LOC_TASK,
                        null,
                        "127.0.0.1",
                        body,
                        response,
                        success);
            } catch (Exception e) {
                log.error("", e);
            }
        }
        return null;
    }
}