自动化立体仓库 - WMS系统
pang.jiabao
20 小时以前 f1a3407130d88ad15320ab9fcfabd109e5127c78
获取堆垛机状态及所属巷道库位统计信息
1个文件已添加
5个文件已修改
108 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/CrnLaneWayInfoDto.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OpenService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BasCrnpMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -193,6 +193,14 @@
        return openService.getUnfulfilledOrders();
    }
    @PostMapping("/getCrnLaneWayInfo")
    @AppAuth(memo = "获取堆垛机状态及所属巷道库位统计信息")
    public synchronized R getCrnLaneWayInfo(@RequestHeader(required = false) String appkey,
                                               HttpServletRequest request) {
        auth(appkey, null, request);
        return openService.getCrnLaneWayInfo();
    }
    /*@PostMapping("/order/matSync/default/v1")
    @AppAuth(memo = "商品信息同步接口")
src/main/java/com/zy/asrs/entity/CrnLaneWayInfoDto.java
New file
@@ -0,0 +1,53 @@
package com.zy.asrs.entity;
import lombok.Data;
/**
 * @author pang.jiabao
 * @description 堆垛机状态及所属巷道统计信息
 * @createDate 2025/4/27 13:37
 */
@Data
public class CrnLaneWayInfoDto {
    /**
     * 堆垛机号
     */
    private Integer crnNo;
    /**
     * 堆垛机状态 -1.离线, 0.维修, 1.手动,2.半自动,3.自动,100.其他
     */
    private Integer crnSts;
    /**
     * 堆垛机是否异常 0.未异常,1.异常
     */
    private Integer crnErr;
    /**
     * 巷道库位总数
     */
    private Integer count;
    /**
     * 在库数
     */
    private Integer stockQty;
    /**
     * 空托盘数
     */
    private Integer emptyPalletQty;
    /**
     * 空库位数
     */
    private Integer emptySlotQty;
    /**
     * 其他状态库位数
     */
    private Integer otherQty;
}
src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java
@@ -2,11 +2,18 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.CrnLaneWayInfoDto;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface BasCrnpMapper extends BaseMapper<BasCrnp> {
    /**
     * 获取堆垛机状态及所属巷道库位统计信息
     */
    List<CrnLaneWayInfoDto> getCrnLaneWayInfo();
}
src/main/java/com/zy/asrs/service/OpenService.java
@@ -90,6 +90,11 @@
     */
    R getUnfulfilledOrders();
    /**
     * 获取堆垛机状态及所属巷道库位统计信息
     */
    R getCrnLaneWayInfo();
    /**
     * 添加入库单
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -15,10 +15,7 @@
import com.zy.asrs.entity.result.StockVo;
import com.zy.asrs.entity.result.ZphjcdgzVo;
import com.zy.asrs.entity.result.ZphjcdwcVo;
import com.zy.asrs.mapper.LocDetlMapper;
import com.zy.asrs.mapper.MatMapper;
import com.zy.asrs.mapper.OrderMapper;
import com.zy.asrs.mapper.TagMapper;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.MatUtils;
import com.zy.common.constant.MesConstant;
@@ -111,6 +108,9 @@
    @Resource
    private OrderMapper orderMapper;
    @Resource
    private BasCrnpMapper basCrnpMapper;
    @Override
    @Transactional
@@ -1973,6 +1973,12 @@
        return R.ok(unfulfilledOrders);
    }
    @Override
    public R getCrnLaneWayInfo() {
        List<CrnLaneWayInfoDto> crnLaneWayInfo = basCrnpMapper.getCrnLaneWayInfo();
        return R.ok(crnLaneWayInfo);
    }
    /**
     * 创建桁架理货出库的工作档
     */
src/main/resources/mapper/BasCrnpMapper.xml
@@ -27,5 +27,26 @@
        <result column="tank_qty1" property="tankQty1" />
        <result column="origin" property="origin" />
    </resultMap>
    <select id="getCrnLaneWayInfo" resultType="com.zy.asrs.entity.CrnLaneWayInfoDto">
        select
            crn.crn_no crnNo ,
            crn.crn_sts crnSts,
            case when crn.crn_err != 0 then 1 else 0 end as crnErr,
            count(loc.loc_no) count,
            count(case when loc.loc_sts = 'F' then 1 end) stockQty,
            count(case when loc.loc_sts = 'D' then 1 end) emptyPalletQty,
            count(case when loc.loc_sts = 'O' then 1 end) emptySlotQty,
            count(case when loc.loc_sts != 'O' and loc.loc_sts != 'D' and loc.loc_sts != 'F' then 1 end) otherQty
        from
            asr_bas_crnp crn
        left join asr_loc_mast loc on
            crn.crn_no = loc.crn_no
        group by
            crn.crn_no,
            crn.crn_sts,
            crn.crn_err
        order by
            crn.crn_no
    </select>
</mapper>