package com.zy.asrs.controller;
|
|
import com.core.common.R;
|
import com.zy.asrs.entity.LocDetl;
|
import com.zy.asrs.entity.LocMast;
|
import com.zy.asrs.entity.digitaltwin.*;
|
import com.zy.asrs.service.DigitalTwinService;
|
import com.zy.common.web.BaseController;
|
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.util.ArrayList;
|
import java.util.List;
|
|
@RequestMapping("/digitalTwin")
|
@RestController
|
public class DigitalTwinController extends BaseController {
|
|
@Resource
|
private DigitalTwinService digitalTwinService;
|
|
/**
|
* 数据总览
|
*
|
* @param areaId 库区编码
|
* @return
|
*/
|
@RequestMapping(value = "/overview")
|
// @ManagerAuth
|
public R overview(@RequestParam(required = false) String areaId){
|
|
//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){
|
|
// 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){
|
|
// digitalTwinService.recentLoc(areaId, startDate, endDate);
|
|
DtLocVo dtLocVo = DtLocVo.builder()
|
.locDate("2025-10-22")
|
.idleNum(208)
|
.build();
|
DtLocVo dtLocVo2 = DtLocVo.builder()
|
.locDate("2025-10-23")
|
.idleNum(177)
|
.build();
|
List<DtLocVo> locVoList = new ArrayList<>();
|
locVoList.add(dtLocVo);
|
locVoList.add(dtLocVo2);
|
|
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){
|
|
// digitalTwinService.inAndOutBound(areaId, startDate, endDate);
|
|
DtInAndOutBoundVo dtInAndOutBoundVo = DtInAndOutBoundVo.builder()
|
.boundDate("2025-10-22")
|
.inBoundNum(237)
|
.outBoundNum(487)
|
.build();
|
DtInAndOutBoundVo dtInAndOutBoundVo2 = DtInAndOutBoundVo.builder()
|
.boundDate("2025-10-23")
|
.inBoundNum(187)
|
.outBoundNum(287)
|
.build();
|
List<DtInAndOutBoundVo> inAndOutBoundVoList = new ArrayList<>();
|
inAndOutBoundVoList.add(dtInAndOutBoundVo);
|
inAndOutBoundVoList.add(dtInAndOutBoundVo2);
|
|
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){
|
|
// digitalTwinService.recentDetainMat(areaId, overDayNum, pageIndex, pageSize);
|
|
DtDetainMatVo dtDetainMatVo = DtDetainMatVo.builder()
|
.belongAreaId("A1")
|
.belongAreaName("刀具库")
|
.matId("mat10001")
|
.matName("道具把")
|
.lokId("loc1001")
|
.lokName("库位10001")
|
.detainTime(765)
|
.inBoundTime("2025-10-11T11:15:16")
|
.build();
|
DtDetainMatVo dtDetainMatVo2 = DtDetainMatVo.builder()
|
.belongAreaId("A1")
|
.belongAreaName("刀具库")
|
.matId("mat10002")
|
.matName("道具把")
|
.lokId("loc1002")
|
.lokName("库位10002")
|
.detainTime(665)
|
.inBoundTime("2025-10-10T11:15:16")
|
.build();
|
List<DtDetainMatVo> detainMatVoList = new ArrayList<>();
|
detainMatVoList.add(dtDetainMatVo);
|
detainMatVoList.add(dtDetainMatVo2);
|
|
return R.ok().add(detainMatVoList);
|
}
|
|
/**
|
* 设备运行信息
|
*
|
* @param areaId
|
* @return
|
*/
|
@RequestMapping(value = "/equipment")
|
// @ManagerAuth
|
public R equipment(@RequestParam(required = false) String areaId){
|
|
DtEquipmentVo dtDetainMatVo = DtEquipmentVo.builder()
|
.equipmentId("eq1001")
|
.equipmentName("堆垛机1")
|
.equipmentType(1)
|
.belongAreaId("A1")
|
.belongAreaName("刀具库")
|
.verticalSpeed(288)
|
.horizontalSpeed(203)
|
.voltage(48)
|
.status(1)
|
.operateMethod(1)
|
.build();
|
DtEquipmentVo dtDetainMatVo2 = DtEquipmentVo.builder()
|
.equipmentId("eq1002")
|
.equipmentName("堆垛机2")
|
.equipmentType(1)
|
.belongAreaId("A1")
|
.belongAreaName("刀具库")
|
.verticalSpeed(208)
|
.horizontalSpeed(253)
|
.voltage(48)
|
.status(1)
|
.operateMethod(1)
|
.build();
|
List<DtEquipmentVo> dtEquipmentVoList = new ArrayList<>();
|
dtEquipmentVoList.add(dtDetainMatVo);
|
dtEquipmentVoList.add(dtDetainMatVo2);
|
|
return R.ok().add(dtEquipmentVoList);
|
}
|
|
/**
|
* 库位和库存详情
|
*
|
* @param areaId
|
* @return
|
*/
|
@RequestMapping(value = "/warehouseDetail")
|
// @ManagerAuth
|
public R warehouseDetail(@RequestParam(required = false) String areaId){
|
|
// digitalTwinService.warehouseDetail(areaId);
|
|
List<DtLocDetailVo> dtLocDetailVoList = new ArrayList<>();
|
DtLocDetailVo dtLocDetailVo = new DtLocDetailVo();
|
dtLocDetailVo.setLocNo("CA0100202");
|
dtLocDetailVo.setLocSts("O");
|
dtLocDetailVo.setAreaId(10010L);
|
dtLocDetailVo.setAreaName("刀具库");
|
dtLocDetailVo.setRow1(1);
|
dtLocDetailVo.setBay1(2);
|
dtLocDetailVo.setLev1(2);
|
|
LocMast locMast = new LocMast();
|
locMast.setLocNo("CA0100202");
|
locMast.setLocSts("O");
|
locMast.setRow1(1);
|
locMast.setBay1(2);
|
locMast.setLev1(2);
|
dtLocDetailVo.setLocMast(locMast);
|
|
LocDetl locDetl = new LocDetl();
|
locDetl.setLocNo("CA0100202");
|
locDetl.setAreaId(10010L);
|
locDetl.setAreaName("刀具库");
|
locDetl.setMatnr("mat10001");
|
locDetl.setMaktx("刀把");
|
dtLocDetailVo.setLocDetl(locDetl);
|
dtLocDetailVoList.add(dtLocDetailVo);
|
|
|
DtLocDetailVo dtLocDetailVo2 = new DtLocDetailVo();
|
dtLocDetailVo2.setLocNo("CA0100202");
|
dtLocDetailVo2.setLocSts("O");
|
dtLocDetailVo2.setAreaId(10010L);
|
dtLocDetailVo2.setAreaName("刀具库");
|
dtLocDetailVo2.setRow1(1);
|
dtLocDetailVo2.setBay1(2);
|
dtLocDetailVo2.setLev1(2);
|
|
LocMast locMast2 = new LocMast();
|
locMast2.setLocNo("CA0100203");
|
locMast2.setLocSts("O");
|
locMast2.setRow1(1);
|
locMast2.setBay1(2);
|
locMast2.setLev1(3);
|
dtLocDetailVo2.setLocMast(locMast2);
|
|
LocDetl locDetl2 = new LocDetl();
|
locDetl2.setLocNo("CA0100203");
|
locDetl2.setAreaId(10010L);
|
locDetl2.setAreaName("刀具库");
|
locDetl2.setMatnr("mat10001");
|
locDetl2.setMaktx("刀把");
|
dtLocDetailVo2.setLocDetl(locDetl2);
|
dtLocDetailVoList.add(dtLocDetailVo2);
|
|
|
// LocDetl locDetl2 = new LocDetl();
|
// locDetl2.setLocNo("1001");
|
// locDetl2.setAreaId(10010L);
|
// locDetl2.setAreaName("刀具库");
|
// locDetl2.setMatnr("mat10001");
|
// locDetl2.setMaktx("刀把");
|
//
|
//// List<LocDetl> locDetlList = new ArrayList<>();
|
//// locDetlList.add(locDetl);
|
//// locDetlList.add(locDetl2);
|
|
return R.ok().add(dtLocDetailVoList);
|
}
|
|
}
|