package com.zy.asrs.controller;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.core.common.R;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.zy.asrs.entity.LocChartPie;
|
import com.zy.asrs.entity.LocDetl;
|
import com.zy.asrs.entity.LocMast;
|
import com.zy.asrs.entity.digitaltwin.*;
|
import com.zy.asrs.mapper.LocDetlMapper;
|
import com.zy.asrs.mapper.ReportQueryMapper;
|
import com.zy.asrs.service.DigitalTwinService;
|
import com.zy.common.utils.HttpHandler;
|
import com.zy.common.web.BaseController;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
import javax.annotation.Resource;
|
import java.io.IOException;
|
import java.text.ParseException;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@RequestMapping("/digitalTwin")
|
@RestController
|
public class DigitalTwinController extends BaseController {
|
|
@Value("${digitalTwins.jgUrl}")
|
private String JG_URL;
|
|
@Value("${digitalTwins.djUrl}")
|
private String DJ_URL;
|
|
@Value("${digitalTwins.ljqUrl}")
|
private String LJQ_URL;
|
|
@Resource
|
private DigitalTwinService digitalTwinService;
|
@Autowired
|
ReportQueryMapper reportQueryMapper;
|
@Autowired
|
private LocDetlMapper locDetlMapper;
|
|
/**
|
* 数据总览
|
*
|
* @param areaId 库区编码
|
* @return
|
*/
|
@RequestMapping(value = "/overview")
|
// @ManagerAuth
|
public R overview(@RequestParam(required = false) String areaId) throws IOException {
|
|
Map<String, Object> map = new HashMap<>();
|
if (areaId != null) {
|
map.put("areaId", areaId);
|
}
|
HttpHandler.Builder builder = new HttpHandler.Builder()
|
.setPath("/digitalTwin/overview")
|
.setParams(map);
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
if (areaId != null) {
|
switch (areaId) {
|
case "A": {
|
String resA = builder.setUri(JG_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
Map<String, Object> data = (Map<String, Object>) result.get("data");
|
return R.ok(data);
|
}
|
case "B": {
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resB, Map.class);
|
|
// 如果只需要data部分
|
Map<String, Object> data = (Map<String, Object>) result.get("data");
|
return R.ok(data);
|
}
|
case "C": {
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resC, Map.class);
|
|
// 如果只需要data部分
|
Map<String, Object> data = (Map<String, Object>) result.get("data");
|
return R.ok(data);
|
}
|
case "D": {
|
return R.ok(digitalTwinService.overview(areaId));
|
}
|
default:
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.overview(areaId);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
} else {
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.overview(areaId);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
}
|
|
/**
|
* 近期订单(默认7天)
|
*
|
* @param areaId 库区编码
|
* @param startDate 格式:yyyyMMdd,20251022
|
* @param endDate 格式:yyyyMMdd,20251027
|
* @return
|
*/
|
@RequestMapping(value = "/recentOrder")
|
// @ManagerAuth
|
public R recentOrder(@RequestParam(required = false) String areaId,
|
@RequestParam(required = false) String startDate,
|
@RequestParam(required = false) String endDate) throws IOException {
|
|
Map<String, Object> map = new HashMap<>();
|
if (areaId != null) {
|
map.put("areaId", areaId);
|
}
|
if (startDate != null) {
|
map.put("startDate", startDate);
|
}
|
if (endDate != null) {
|
map.put("endDate", endDate);
|
}
|
HttpHandler.Builder builder = new HttpHandler.Builder()
|
.setPath("/digitalTwin/recentOrder")
|
.setParams(map);
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
if (areaId != null) {
|
switch (areaId) {
|
case "A": {
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "B": {
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resB, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "C": {
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resC, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "D": {
|
return R.ok(digitalTwinService.order(startDate, endDate));
|
}
|
default:
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.order(startDate, endDate);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
} else {
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.order(startDate, endDate);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
}
|
|
/**
|
* 近期剩余库位(默认7天)
|
*
|
* @param areaId 库区编码
|
* @param startDate 格式:yyyyMMdd,20251022
|
* @param endDate 格式:yyyyMMdd,20251027
|
* @return
|
*/
|
@RequestMapping(value = "/recentIdleLoc")
|
// @ManagerAuth
|
public R recentIdleLoc(@RequestParam(required = false) String areaId,
|
@RequestParam(required = false) String startDate,
|
@RequestParam(required = false) String endDate) throws IOException {
|
|
Map<String, Object> map = new HashMap<>();
|
if (areaId != null) {
|
map.put("areaId", areaId);
|
}
|
if (startDate != null) {
|
map.put("startDate", startDate);
|
}
|
if (endDate != null) {
|
map.put("endDate", endDate);
|
}
|
HttpHandler.Builder builder = new HttpHandler.Builder()
|
.setPath("/digitalTwin/recentIdleLoc")
|
.setParams(map);
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
if (areaId != null) {
|
switch (areaId) {
|
case "A": {
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "B": {
|
|
String resA = builder.setUri(DJ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "C": {
|
|
String resA = builder.setUri(LJQ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "D": {
|
return R.ok(digitalTwinService.recentLoc(areaId, startDate, endDate));
|
}
|
default:
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.recentLoc(areaId, startDate, endDate);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
} else {
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.recentLoc(areaId, startDate, endDate);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
}
|
|
/**
|
* 近期出入库(默认7天)
|
*
|
* @param areaId 库区编码
|
* @param startDate 格式:yyyyMMdd,20251022
|
* @param endDate 格式:yyyyMMdd,20251027
|
* @return
|
*/
|
@RequestMapping(value = "/recentInAndOutBound")
|
// @ManagerAuth
|
public R recentInAndOutBound(@RequestParam(required = false) String areaId,
|
@RequestParam(required = false) String startDate,
|
@RequestParam(required = false) String endDate) throws ParseException, IOException {
|
|
Map<String, Object> map = new HashMap<>();
|
if (areaId != null) {
|
map.put("areaId", areaId);
|
}
|
if (startDate != null) {
|
map.put("startDate", startDate);
|
}
|
if (endDate != null) {
|
map.put("endDate", endDate);
|
}
|
HttpHandler.Builder builder = new HttpHandler.Builder()
|
.setPath("/digitalTwin/recentInAndOutBound")
|
.setParams(map);
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
if (areaId != null) {
|
switch (areaId) {
|
case "A": {
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "B": {
|
|
String resA = builder.setUri(DJ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "C": {
|
|
String resA = builder.setUri(LJQ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "D": {
|
return R.ok(digitalTwinService.inAndOutBound(areaId, startDate, endDate));
|
}
|
default:
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.inAndOutBound(areaId, startDate, endDate);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
} else {
|
// 如果没有提供areaId,默认调用本地服务
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.inAndOutBound(areaId, startDate, endDate);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
}
|
|
/**
|
* 近期呆滞品(默认超30天)
|
*
|
* @param areaId 库区编码
|
* @param overDayNum 呆滞品天数,默认30天
|
* @return
|
*/
|
@RequestMapping(value = "/recentDetainMat")
|
// @ManagerAuth
|
public R recentDetainMat(@RequestParam(required = false) String areaId,
|
@RequestParam(required = false) Integer overDayNum,
|
@RequestParam(required = false) Integer pageIndex,
|
@RequestParam(required = false) Integer pageSize,
|
@RequestParam(required = false) String condition) throws IOException {
|
|
Map<String, Object> map = new HashMap<>();
|
if (areaId != null) {
|
map.put("areaId", areaId);
|
}
|
if (overDayNum != null) {
|
map.put("overDayNum", overDayNum);
|
}
|
if (pageIndex != null) {
|
map.put("pageIndex", pageIndex);
|
}
|
if (pageSize != null) {
|
map.put("pageSize", pageSize);
|
}
|
if (condition != null) {
|
map.put("condition", condition);
|
}
|
HttpHandler.Builder builder = new HttpHandler.Builder()
|
.setPath("/digitalTwin/recentDetainMat")
|
.setParams(map);
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
if (areaId != null) {
|
switch (areaId) {
|
case "A": {
|
String resA = builder.setUri(JG_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "B": {
|
String resA = builder.setUri(DJ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "C": {
|
String resA = builder.setUri(LJQ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "D": {
|
return R.ok(digitalTwinService.recentDetainMat(areaId, overDayNum, pageIndex, pageSize, condition));
|
}
|
default:
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.recentDetainMat(areaId, overDayNum, pageIndex, pageSize, condition);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
} else {
|
// 如果没有提供areaId,默认调用本地服务
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.recentDetainMat(areaId, overDayNum, pageIndex, pageSize, condition);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
}
|
|
/**
|
* 设备运行信息
|
*
|
* @param areaId
|
* @return
|
*/
|
@RequestMapping(value = "/equipment")
|
// @ManagerAuth
|
public R equipment(@RequestParam(required = false) String areaId) throws IOException {
|
|
Map<String, Object> map = new HashMap<>();
|
map.put("areaId", areaId);
|
HttpHandler.Builder builder = new HttpHandler.Builder()
|
.setPath("/digitalTwin/equipment")
|
.setParams(map);
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
if (areaId != null){
|
switch (areaId) {
|
case "A": {
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
DtEquipmentVo data = objectMapper.convertValue(result.get("data"), DtEquipmentVo.class);
|
// 如果只需要data部分
|
//DtEquipmentVo data = (DtEquipmentVo) result.get("data");
|
return R.ok(data);
|
}
|
case "B": {
|
String resA = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
DtEquipmentVo data = objectMapper.convertValue(result.get("data"), DtEquipmentVo.class);
|
// 如果只需要data部分
|
//DtEquipmentVo data = (DtEquipmentVo) result.get("data");
|
return R.ok(data);
|
}
|
case "C": {
|
String resA = builder.setUri(LJQ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
DtEquipmentVo data = objectMapper.convertValue(result.get("data"), DtEquipmentVo.class);
|
// 如果只需要data部分
|
//DtEquipmentVo data = (DtEquipmentVo) result.get("data");
|
return R.ok(data);
|
}
|
case "D": {
|
return R.ok(digitalTwinService.equipment(areaId));
|
}
|
default:
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.equipment(areaId);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
}else {
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.equipment(areaId);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
}
|
|
/**
|
* 库位和库存详情
|
*
|
* @param areaId
|
* @return
|
*/
|
@RequestMapping(value = "/warehouseDetail")
|
// @ManagerAuth
|
public R warehouseDetail(@RequestParam(required = false) String areaId) throws IOException {
|
Map<String, Object> map = new HashMap<>();
|
if (areaId != null) {
|
map.put("areaId", areaId);
|
}
|
|
HttpHandler.Builder builder = new HttpHandler.Builder()
|
.setPath("/digitalTwin/warehouseDetail")
|
.setParams(map);
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
if (areaId != null) {
|
switch (areaId) {
|
case "A": {
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "B": {
|
builder.setPath("/digitalTwin/warehouseDetail");
|
String resA = builder.setUri(DJ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "C": {
|
|
String resA = builder.setUri(LJQ_URL).build().doGet();
|
|
Map<String, Object> result = objectMapper.readValue(resA, Map.class);
|
|
// 如果只需要data部分
|
List data = (List) result.get("data");
|
return R.ok(data);
|
}
|
case "D": {
|
return R.ok(digitalTwinService.warehouseDetail(areaId));
|
}
|
default:
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.warehouseDetail(areaId);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
} else {
|
// 如果没有提供areaId,默认调用本地服务
|
Map<String, Object> mergedResult = new HashMap<>();
|
Map<String, Object> mergedData = new HashMap<>();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
Object resultD = digitalTwinService.warehouseDetail(areaId);
|
if (resultD != null) {
|
mergedData.put("D", resultD);
|
}
|
|
return R.ok(mergedData);
|
}
|
}
|
/**
|
* 查询所有库位状态和物料-二机床信息化数字孪生用
|
*/
|
@RequestMapping(value = "/getAllLocations")
|
public R getAllLocations() throws IOException {
|
Map<String, Object> mergedData = new HashMap<>();
|
HttpHandler.Builder builder = new HttpHandler.Builder()
|
.setPath("/digitalTwin/getAllLocations");
|
ObjectMapper objectMapper = new ObjectMapper();
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
mergedData.put("D",digitalTwinService.getAllLocations());
|
|
return R.ok(mergedData);
|
}
|
/**
|
* 查询所有库的库位利用率
|
*/
|
@RequestMapping(value = "/getLocalInfo")
|
public R getLocalInfo() throws IOException {
|
Map<String, Object> mergedData = new HashMap<>();
|
HttpHandler.Builder builder = new HttpHandler.Builder()
|
.setPath("/digitalTwin/getLocalInfo");
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
mergedData.put("A", resultA);
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
mergedData.put("B", resultB);
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
mergedData.put("C", resultC);
|
|
LocChartPie locUseRate = reportQueryMapper.getLocUseRate();
|
mergedData.put("D", locUseRate);
|
|
return R.ok(mergedData);
|
}
|
/**
|
* 查询所有库的库存明细
|
*/
|
@RequestMapping(value = "/getLocalDetal")
|
public R getLocalDetal() throws IOException {
|
Map<String, Object> mergedData = new HashMap<>();
|
HttpHandler.Builder builder = new HttpHandler.Builder()
|
.setPath("/digitalTwin/getLocalDetal");
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
String resA = builder.setUri(JG_URL).build().doGet();
|
Map<String, Object> resultA = objectMapper.readValue(resA, Map.class);
|
if (resultA.get("data") != null) {
|
mergedData.put("A", resultA.get("data"));
|
}
|
|
String resB = builder.setUri(DJ_URL).build().doGet();
|
Map<String, Object> resultB = objectMapper.readValue(resB, Map.class);
|
if (resultB.get("data") != null) {
|
mergedData.put("B", resultB.get("data"));
|
}
|
|
String resC = builder.setUri(LJQ_URL).build().doGet();
|
Map<String, Object> resultC = objectMapper.readValue(resC, Map.class);
|
if (resultC.get("data") != null) {
|
mergedData.put("C", resultC.get("data"));
|
}
|
|
List<Map<String, Object>> detalList = digitalTwinService.getLocalDetal();
|
mergedData.put("D", detalList);
|
|
return R.ok(mergedData);
|
}
|
|
}
|