package com.zy.asrs.service.impl;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.core.exception.CoolException;
|
import com.zy.asrs.controller.requestParam.StationRequestParam;
|
import com.zy.asrs.controller.vo.ApplyInDto;
|
import com.zy.asrs.controller.vo.ApplyInRepsonseDto;
|
import com.zy.asrs.controller.vo.OpenBusSubmitParam;
|
import com.zy.asrs.controller.vo.StationStatus;
|
import com.zy.asrs.service.CtuMainService;
|
import com.zy.asrs.service.WmsMainService;
|
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 WmsMainServiceImpl implements WmsMainService {
|
|
|
@Value("${ctu.url}")
|
private String wmsUrl;
|
|
|
|
@Value("${ctu.sendTask}")
|
private String apply;
|
|
private String code ="code";
|
|
private String dataCode ="data";
|
|
private Integer codeValue =200;
|
|
private Integer timeout = 1200;
|
|
|
|
/**
|
* 检查站点状态
|
*
|
* @param applyInDto 站点编号
|
* @return 库位信息
|
*/
|
public ApplyInRepsonseDto getLocOfWms(ApplyInDto applyInDto) {
|
String response = "";
|
try {
|
response = new HttpHandler.Builder()
|
.setUri(wmsUrl)
|
.setPath(apply)
|
.setTimeout(timeout, TimeUnit.SECONDS)
|
.setJson(JSON.toJSONString(applyInDto))
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
if (jsonObject.getInteger(code).equals(codeValue)) {
|
log.info("WMS返回数据:{}", response);
|
JSONArray data = jsonObject.getJSONArray(dataCode);
|
return JSONObject.parseObject(data.toString(), ApplyInRepsonseDto.class);
|
} 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("检查站点状态失败,条码编号:{},站点:{}", applyInDto.getBarcode(),applyInDto.getStaNo(), e);
|
}
|
return null;
|
}
|
}
|