WmsInfoController.java 2.99 KB
package com.huaheng.api.wmsinfo.controller;

import com.huaheng.api.wmsinfo.domain.*;
import com.huaheng.pc.config.location.domain.CscLocation;
import com.huaheng.pc.config.location.domain.Location;
import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

/**
 * 数字孪生面板 控制器
 */
@RestController
@RequestMapping("/api/wms/info")
public class WmsInfoController {

    public static final String TIME = "2023-03-28 12:12:00";
    public static final String MATERIAL_NAME = "纸箱";
    public static final String FROM_LOCATION = "L020202";
    public static final String TO_LOCATION = "L010101";
    /**
     * 仓库数据概况
     */
    @GetMapping()
    @ResponseBody
    public WmsInfoResult getInfo() {
        WmsInfoResult result = new WmsInfoResult();
        result.status = 200;
        result.data.add(getLocationInfo());
        result.data.add(getMaterialInfo());
        result.data.add(getTurnOverRateInfo());
        result.data.add(getWarehouseUsageInfo());
        result.data.add(getWarehouseActionInfo());
        return result;
    }

    private DataItem<List<LocationInfo>> getLocationInfo(){
        DataItem data = new DataItem("库位信息");
        List<LocationInfo> list = new ArrayList<>();
        list.add(LocationInfo.parse(new Location()));
        list.add(LocationInfo.parse(new CscLocation()));
        data.Json = list;
        return data;
    }

    private DataItem<List<MaterialInfo>> getMaterialInfo(){
        DataItem data = new DataItem("物资信息");
        List<MaterialInfo> list = new ArrayList<>();
        list.add(MaterialInfo.parse(new InventoryDetail()));
        data.Json = list;
        return data;
    }

    private DataItem<WarehouseUsageInfo> getWarehouseUsageInfo(){
        DataItem data = new DataItem("库容使用率");
        WarehouseUsageInfo body = new WarehouseUsageInfo();
        body.addUsage(100, 26640, "CSC", "穿梭车库");
        body.addUsage(120, 1046, "LK", "立体库");
        return data;
    }

    private DataItem<TurnOverRateInfo> getTurnOverRateInfo(){
        DataItem data = new DataItem("物资周转退库率");
        TurnOverRateInfo body = new TurnOverRateInfo();
        body.setBackoutRate(1.0f, TIME);
        body.setTurnOverRate(1.0f, TIME);
        return data;
    }

    private DataItem<WarehouseActionInfo> getWarehouseActionInfo(){
        DataItem data = new DataItem("仓库变化信息");
        WarehouseActionInfo body = new WarehouseActionInfo();
        data.Json = body;
        body.addRuKu(TIME, 100, MATERIAL_NAME, TO_LOCATION);
        body.addChuKu(TIME, 100, MATERIAL_NAME, TO_LOCATION);
        body.addYiKu(TIME, 100, MATERIAL_NAME, FROM_LOCATION, TO_LOCATION);
        return data;
    }
}