自动化立体仓库 - WMS系统
pang.jiabao
2026-01-26 eed51ce47f20afb0661acc42baa680fcb6351a39
6.8	查询所有库位状态和物料-二机床信息化数字孪生用
1个文件已添加
3个文件已修改
82 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/DigitalTwinController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/digitaltwin/AllLocationsVo.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/DigitalTwinService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/DigitalTwinController.java
@@ -22,6 +22,14 @@
    private DigitalTwinService digitalTwinService;
    /**
     * 查询所有库位状态和物料-二机床信息化数字孪生用
     */
    @RequestMapping(value = "/getAllLocations")
    public R getAllLocations(){
        return digitalTwinService.getAllLocations();
    }
    /**
     * 数据总览
     *
     * @param areaId    库区编码
src/main/java/com/zy/asrs/entity/digitaltwin/AllLocationsVo.java
New file
@@ -0,0 +1,36 @@
package com.zy.asrs.entity.digitaltwin;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
 * @author pang.jiabao
 * @description 查询所有库位状态和物料-二机床信息化数字孪生用
 * @createDate 2026/1/26 11:13
 */
@Data
public class AllLocationsVo {
    // 库位号
    private String locNo;
    // 库位状态,O空库位(英文不是数字);F 在库;D 空板;P 出库中;R 出库预约;S 入库预约;其他 其他;
    private String locSts;
    private List<LocDetl> locDetls  = new ArrayList<>();
    @Data
    public static class LocDetl {
        @ApiModelProperty(value = "商品编号")
        private String matnr;
        @ApiModelProperty(value = "商品名称")
        private String maktx;
        private Double anfme;
    }
}
src/main/java/com/zy/asrs/service/DigitalTwinService.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service;
import com.core.common.R;
import com.zy.asrs.entity.digitaltwin.*;
import java.util.List;
@@ -69,4 +70,9 @@
    void locNumCount();
    DtEquipmentVo equipment(String areaId);
    /**
     * 查询所有库位状态和物料-二机床信息化数字孪生用
     */
    R getAllLocations();
}
src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.LocCount;
import com.zy.asrs.entity.LocDetl;
@@ -11,6 +12,7 @@
import com.zy.asrs.mapper.LocCountMapper;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.DigitalTwinService;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -282,6 +284,36 @@
                .horizontalSpeed(Integer.valueOf( Cools.isEmpty(crnp.getCtlRest()) ? "0" : crnp.getCtlRest())).voltage(220).status(crnp.getCrnErr() == 0 ? 1 : 3).operateMethod(crnp.getCrnSts() == 3 ? 1 : 3).build();
    }
    @Resource
    private LocDetlService locDetlService;
    @Override
    public R getAllLocations() {
        List<AllLocationsVo> allLocationsVos = new ArrayList<>();
        List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<>());
        locMastList.forEach(locMast -> {
            AllLocationsVo allLocationsVo = new AllLocationsVo();
            allLocationsVo.setLocNo(locMast.getLocNo());
            String locSts = locMast.getLocSts();
            allLocationsVo.setLocSts(locSts);
            // 有库存
            if (locSts.equals("F") || locSts.equals("P") || locSts.equals("Q") || locSts.equals("R")) {
                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
                if (!locDetls.isEmpty()) {
                    List<AllLocationsVo.LocDetl> locDetlList = locDetls.stream().map(locDetl -> {
                                AllLocationsVo.LocDetl locDetl1 = new AllLocationsVo.LocDetl();
                                BeanUtils.copyProperties(locDetl, locDetl1);
                                return locDetl1;
                            }
                    ).collect(Collectors.toList());
                    allLocationsVo.setLocDetls(locDetlList);
                }
            }
            allLocationsVos.add(allLocationsVo);
        });
        return R.ok(allLocationsVos);
    }
    // region 数字孪生