| New file |
| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.zy.acs.framework.exception.CoolException; |
| | | import com.zy.asrs.controller.requestParam.StationRequestParam; |
| | | import com.zy.asrs.controller.vo.OpenBusSubmitParam; |
| | | import com.zy.asrs.controller.vo.StationStatus; |
| | | import com.zy.asrs.service.CtuMainService; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import lombok.Data; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * 立体仓库WCS系统主流程业务 |
| | | * Created by vincent on 2020/8/6 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | @Transactional |
| | | @Data |
| | | public class CtuMainServiceImpl implements CtuMainService { |
| | | |
| | | |
| | | @Value("${ctu.url}") |
| | | private String ctuUrl; |
| | | |
| | | @Value("${ctu.station}") |
| | | private String station; |
| | | |
| | | @Value("${ctu.sendTask}") |
| | | private String sendTask; |
| | | |
| | | private String code = "code"; |
| | | |
| | | private String dataCode = "data"; |
| | | |
| | | private Integer codeValue = 200; |
| | | |
| | | private Integer timeout = 1200; |
| | | |
| | | |
| | | @Transactional |
| | | public boolean sendTask(OpenBusSubmitParam openBusSubmitParam) { |
| | | String response = ""; |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setUri(ctuUrl) |
| | | .setPath(sendTask) |
| | | .setTimeout(timeout, TimeUnit.SECONDS) |
| | | .setJson(JSON.toJSONString(openBusSubmitParam)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getInteger(code).equals(codeValue)) { |
| | | log.info("下发任务返回数据:{}", response); |
| | | return true; |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("请求接口失败!!!url:{};request:{};response:{}", ctuUrl + sendTask, JSON.toJSONString(openBusSubmitParam), response); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 检查站点状态 |
| | | * |
| | | * @param staNo 站点编号 |
| | | * @return 站点是否可通行 |
| | | */ |
| | | public String checkStationStatus(Integer staNo) { |
| | | StationRequestParam stationRequestParam = new StationRequestParam(); |
| | | List<String> staNos = new ArrayList<>(); |
| | | staNos.add(staNo + ""); |
| | | stationRequestParam.setStaNos(staNos); |
| | | String response = ""; |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setUri(ctuUrl) |
| | | .setPath(station) |
| | | .setTimeout(timeout, TimeUnit.SECONDS) |
| | | .setJson(JSON.toJSONString(stationRequestParam)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getInteger(code).equals(codeValue)) { |
| | | log.info("RCS返回数据:{}", response); |
| | | JSONArray data = jsonObject.getJSONArray(dataCode); |
| | | List<StationStatus> stationStatuses = JSONArray.parseArray(data.toString(), StationStatus.class); |
| | | for (StationStatus object : stationStatuses) { |
| | | if (object.getStaNo().equals(staNo + "")) { |
| | | if (object.getConveyable()) { |
| | | return object.getTaskNo(); |
| | | } else { |
| | | log.info("站点:{}状态不对", staNo); |
| | | return null; |
| | | } |
| | | } |
| | | } |
| | | log.info("未返回站点状态:{}", staNo); |
| | | } else { |
| | | log.error("调用下发任务接口报错,响应码:{},响应内容:{}", jsonObject.getInteger(code), response); |
| | | throw new CoolException("调用下发任务接口报错,响应码:" + jsonObject.getInteger(code)); |
| | | } |
| | | } catch (CoolException e) { |
| | | log.error("调用站点状态接口异常", e); |
| | | throw e; |
| | | } catch (Exception e) { |
| | | log.error("检查站点状态失败,站点编号:{}", staNo, e); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | } |