|
@@ -30,11 +30,14 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.http.HttpEntity;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
import org.springframework.http.MediaType;
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Calendar;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
@@ -66,6 +69,25 @@ public class AgvHikOrderInfoServiceImpl extends SuperCacheServiceImpl<AgvHikOrde
|
|
|
return CacheKey.USER;
|
|
|
}
|
|
|
|
|
|
+ private static final List<String> agvWorkList = new ArrayList<String>(){
|
|
|
+ {
|
|
|
+ add("1");
|
|
|
+ add("2");
|
|
|
+ add("6");
|
|
|
+ }
|
|
|
+ };
|
|
|
+ private static final List<String> agvNoWorkList = new ArrayList<String>(){
|
|
|
+ {
|
|
|
+ add("4");
|
|
|
+ }
|
|
|
+ };
|
|
|
+ private static final List<String> agvchargingList = new ArrayList<String>(){
|
|
|
+ {
|
|
|
+ add("7");
|
|
|
+ add("9");
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<AgvHikOrderInfo> pageList(IPage<AgvHikOrderInfo> page, String orderName, String orderNo, String partName, String partNo, String createTime, LbqWrapper<AgvHikOrderInfo> wrapper){
|
|
|
return baseMapper.pageList(page,orderName,orderNo,partName, partNo,createTime, wrapper, new DataScope());
|
|
@@ -181,4 +203,84 @@ public class AgvHikOrderInfoServiceImpl extends SuperCacheServiceImpl<AgvHikOrde
|
|
|
agvHikOrderDetailInfoService.save(agvOrderDetailInfo);
|
|
|
return R.success();
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R queryAgvStatus(Map<String, String> data){
|
|
|
+ JSONArray agvStatusArray = new JSONArray();
|
|
|
+ BaseContextHandler.setTenant(BizConstant.TENANT);
|
|
|
+ String agvStatusUrl = "";
|
|
|
+ if(null==redisTemplate.opsForValue().get(ParameterKey.GET_AGV_STATUS)){
|
|
|
+ agvStatusUrl = parameterService.getValue(ParameterKey.GET_AGV_STATUS, null);
|
|
|
+ if(StringUtils.isEmpty(agvStatusUrl)){
|
|
|
+ return R.fail("agv状态查询地址未配置");
|
|
|
+ }else{
|
|
|
+ redisTemplate.opsForValue().set(ParameterKey.GET_AGV_STATUS,agvStatusUrl);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ agvStatusUrl = (String)redisTemplate.opsForValue().get(ParameterKey.GET_AGV_STATUS);
|
|
|
+ }
|
|
|
+
|
|
|
+ String reqCode = UniqueKeyGenerator.getUniqueKeyStartWithTimestamp(32);
|
|
|
+ String reqTime = DateUtil.format(Calendar.getInstance().getTime(), DatePattern.NORM_DATETIME_MS_PATTERN);
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("reqCode",reqCode);
|
|
|
+ jsonObject.put("reqTime",reqTime);
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
+ // TODO 后续联调真实对接
|
|
|
+// HttpEntity<String> agvStatusRequest = new HttpEntity<String>(jsonObject.toJSONString(), headers);
|
|
|
+// ResponseEntity<String> agvStatusEntity = restTemplate.postForEntity(agvStatusUrl, agvStatusRequest, String.class);
|
|
|
+//
|
|
|
+// String retData = agvStatusEntity.getBody();
|
|
|
+ String retData = "{\n" +
|
|
|
+ " \"code\": \"0\",\n" +
|
|
|
+ " \"data\": [\n" +
|
|
|
+ " {\n" +
|
|
|
+ " \"robotCode\": \"10001\",\n" +
|
|
|
+ " \"status\": \"1\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " {\n" +
|
|
|
+ " \"robotCode\": \"10002\",\n" +
|
|
|
+ " \"status\": \"2\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " {\n" +
|
|
|
+ " \"robotCode\": \"10003\",\n" +
|
|
|
+ " \"status\": \"4\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " {\n" +
|
|
|
+ " \"robotCode\": \"10004\",\n" +
|
|
|
+ " \"status\": \"5\"\n" +
|
|
|
+ " },\n" +
|
|
|
+ " {\n" +
|
|
|
+ " \"robotCode\": \"10005\",\n" +
|
|
|
+ " \"status\": \"7\"\n" +
|
|
|
+ " }\n" +
|
|
|
+ " ]\n" +
|
|
|
+ "}";
|
|
|
+ log.info("agvStatus = {}",retData);
|
|
|
+
|
|
|
+ JSONObject retObj = JSONObject.parseObject(retData);
|
|
|
+ if("0".equals(retObj.getString("code"))){
|
|
|
+ JSONArray retAgvStatusArray = retObj.getJSONArray("data");
|
|
|
+ for(int i = 0; i < retAgvStatusArray.size(); i++){
|
|
|
+ JSONObject agvStatus = new JSONObject();
|
|
|
+ JSONObject retAgvStatus = retAgvStatusArray.getJSONObject(i);
|
|
|
+ agvStatus.put("robotCode",retAgvStatus.getString("robotCode"));
|
|
|
+ String taskStatus = retAgvStatus.getString("status");
|
|
|
+ if(agvWorkList.contains(taskStatus)){
|
|
|
+ agvStatus.put("status","生产中");
|
|
|
+ }else if(agvNoWorkList.contains(taskStatus)){
|
|
|
+ agvStatus.put("status","空闲");
|
|
|
+ }else if(agvchargingList.contains(taskStatus)){
|
|
|
+ agvStatus.put("status","充电中");
|
|
|
+ }else{
|
|
|
+ agvStatus.put("status","报警");
|
|
|
+ }
|
|
|
+ agvStatusArray.add(agvStatus);
|
|
|
+ }
|
|
|
+ return R.success(agvStatusArray.toJSONString());
|
|
|
+ }else{
|
|
|
+ return R.fail("agv查询状态失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|