package com.zy.asrs.controller;
|
|
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.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.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@RequestMapping("/digitalTwin")
|
@RestController
|
public class DigitalTwinController extends BaseController {
|
|
@Resource
|
private DigitalTwinService digitalTwinService;
|
@Autowired
|
private ReportQueryMapper reportQueryMapper;
|
|
/**
|
* 数据总览
|
*
|
* @param areaId 库区编码
|
* @return
|
*/
|
@RequestMapping(value = "/overview")
|
// @ManagerAuth
|
public R overview(@RequestParam(required = false) String areaId){
|
|
DtOverviewVo dtOverviewVo = digitalTwinService.overview(areaId);
|
|
// DtOverviewVo dtOverviewVo = DtOverviewVo.builder()
|
// .totalLoc(999)
|
// .useLoc(900)
|
// .idleLoc(99)
|
// .todayOutbound(160)
|
// .todayWarehousing(170)
|
// .remainingStock(180)
|
// .build();
|
|
return R.ok().add(dtOverviewVo);
|
}
|
|
/**
|
* 近期订单(默认7天)
|
*
|
* @param startDate 格式:yyyyMMdd,20251022
|
* @param endDate 格式:yyyyMMdd,20251027
|
* @return
|
*/
|
@RequestMapping(value = "/recentOrder")
|
// @ManagerAuth
|
public R recentOrder(@RequestParam(required = false) String startDate,
|
@RequestParam(required = false) String endDate){
|
|
List<DtOrderVo> orderVoList = digitalTwinService.order(startDate, endDate);
|
|
// DtOrderVo dtOrderVo = DtOrderVo.builder()
|
// .orderDate("2025-10-22")
|
// .orderNum(156)
|
// .build();
|
// DtOrderVo dtOrderVo2 = DtOrderVo.builder()
|
// .orderDate("2025-10-23")
|
// .orderNum(166)
|
// .build();
|
// List<DtOrderVo> orderVoList = new ArrayList<>();
|
// orderVoList.add(dtOrderVo);
|
// orderVoList.add(dtOrderVo2);
|
|
return R.ok().add(orderVoList);
|
}
|
|
/**
|
* 近期剩余库位(默认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){
|
|
List<DtLocVo> locVoList = digitalTwinService.recentLoc(areaId, startDate, endDate);
|
return R.ok().add(locVoList);
|
}
|
|
/**
|
* 近期出入库(默认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){
|
|
List<DtInAndOutBoundVo> inAndOutBoundVoList = digitalTwinService.inAndOutBound(areaId, startDate, endDate);
|
|
return R.ok().add(inAndOutBoundVoList);
|
}
|
|
/**
|
* 近期呆滞品(默认超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){
|
|
List<DtDetainMatVo> detainMatVoList = digitalTwinService.recentDetainMat(areaId, overDayNum, pageIndex, pageSize);
|
return R.ok().add(detainMatVoList);
|
}
|
|
/**
|
* 设备运行信息
|
*
|
* @param areaId
|
* @return
|
*/
|
@RequestMapping(value = "/equipment")
|
// @ManagerAuth
|
public R equipment(@RequestParam(required = false) String areaId){
|
|
return R.ok(digitalTwinService.equipment(areaId));
|
}
|
|
/**
|
* 库位和库存详情
|
*
|
* @param areaId
|
* @return
|
*/
|
@RequestMapping(value = "/warehouseDetail")
|
// @ManagerAuth
|
public R warehouseDetail(@RequestParam(required = false) String areaId){
|
|
return R.ok(digitalTwinService.warehouseDetail(areaId));
|
}
|
|
|
/**
|
* 查询所有库位状态和物料-二机床信息化数字孪生用
|
*/
|
@RequestMapping(value = "/getAllLocations")
|
public R getAllLocations() {
|
return digitalTwinService.getAllLocations();
|
}
|
|
|
/**
|
* 查询在库数量等信息
|
*/
|
@RequestMapping(value = "/getLocalInfo")
|
public LocChartPie getLocalInfo() {
|
|
LocChartPie locUseRate = reportQueryMapper.getLocUseRate();
|
|
return locUseRate;
|
}
|
|
/**
|
* 查询所有库的库存明细
|
*/
|
@RequestMapping(value = "/getLocalDetal")
|
public R getLocalDetal() throws IOException {
|
|
return R.ok(digitalTwinService.getLocalDetal());
|
}
|
}
|