自动化立体仓库 - WMS系统
#
lsh
2024-02-18 6f1daffee3b65b5943dad26e1af3cbcafa46fd90
#
6个文件已修改
150 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/WrkMast.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMastLog.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WorkMastScheduler.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastLogMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -325,6 +325,13 @@
    @TableField("take_none")
    private String takeNone;
    /**
     * 伴生工作号
     */
    @ApiModelProperty(value= "伴生工作号")
    @TableField("work_no_other")
    private Integer workNoOther;
    public WrkMast() {}
    public String getYmd$(){
src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -324,6 +324,13 @@
    @TableField("take_none")
    private String takeNone;
    /**
     * 伴生工作号
     */
    @ApiModelProperty(value= "伴生工作号")
    @TableField("work_no_other")
    private Integer workNoOther;
    public WrkMastLog() {}
    public String getWrkNo$(){
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -536,8 +536,17 @@
        if (Cools.isEmpty(param.getOutSite())) {
            throw new CoolException("站点不存在");
        }
        List<String> locNoOtherList = new ArrayList<>();
        List<String> locNoOtherListOne = new ArrayList<>();
        for (String locNo : param.getLocNos()) {
            //小料箱伴生出库
            if (Utils.getRow(locNo)<=8){
                String locNoOther = staNoOther(locNo);
                if (!param.getLocNos().contains(locNoOther)){
                    locNoOtherListOne.add(locNoOther);
                }
            }
            // 获取工作号
            int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
            // 获取库位
@@ -593,21 +602,112 @@
                }
            }
        }
        for (String locNo:locNoOtherListOne){
            // 获取工作号
            int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
            //伴生入库工作号
            int workNoRu = commonService.getWorkNo(0);
            // 获取库位
            LocMast locMast = locMastService.selectById(locNo);
            if (Cools.isEmpty(locMast)) {
                throw new CoolException(locNo+"库位不存在");
            }
            if (!locMast.getLocSts().equals("D")){
                throw new CoolException("所选库位存在状态不为D的库位,库位号:"+locMast.getLocNo()+" 、当前状态:"+locMast.getLocSts()+"-"+locMast.getLocSts$());
            }
            // 获取源站
            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                    .eq("type_no", 110)
                    .eq("stn_no", param.getOutSite())
                    .eq("crn_no", locMast.getCrnNo());
            StaDesc staDesc = staDescService.selectOne(wrapper);
            Integer sourceStaNo = staDesc.getCrnStn();
            if (Cools.isEmpty(sourceStaNo)) {
                throw new CoolException("检索源站失败");
            }
            Date now = new Date();
            // 保存工作档
            WrkMast wrkMast = new WrkMast();
            wrkMast.setWrkNo(workNo);
            wrkMast.setIoTime(now);
            wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
            wrkMast.setIoType(110); // 入出库状态: 110.空板出库
            wrkMast.setIoPri(10D);
            wrkMast.setSourceStaNo(sourceStaNo); // 源站
            wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 目标站  堆垛机入库口
            wrkMast.setCrnNo(locMast.getCrnNo());
            wrkMast.setSourceLocNo(locNo); // 源库位
            wrkMast.setFullPlt("N"); // 满板:Y
            wrkMast.setPicking("N"); // 拣料
            wrkMast.setExitMk("N"); // 退出
            wrkMast.setEmptyMk("Y"); // 空板
            wrkMast.setLinkMis("N");
            wrkMast.setAppeUser(userId);
            wrkMast.setAppeTime(now);
            wrkMast.setModiUser(userId);
            wrkMast.setModiTime(now);
            wrkMast.setWorkNoOther(workNoRu);
            boolean res = wrkMastService.insert(wrkMast);
            if (!res) {
                throw new CoolException("保存工作档失败");
            }
            // 更新库位状态 D.空板 -> R.出库预约
            if (locMast.getLocSts().equals("D")){
                locMast.setLocSts("R");
                locMast.setModiUser(userId);
                locMast.setModiTime(now);
                if (!locMastService.updateById(locMast)) {
                    throw new CoolException("更新库位状态失败");
                }
            }
            // 生成工作档
            WrkMast wrkMastRu = new WrkMast();
            wrkMastRu.setWrkNo(workNoRu);
            wrkMastRu.setIoTime(new Date());
            wrkMastRu.setWrkSts(2L); // 工作状态:生成入库ID
            wrkMastRu.setIoType(10); // 入出库状态:10.空板入库
            wrkMastRu.setIoPri(13D); // 优先级
            wrkMastRu.setCrnNo(wrkMast.getCrnNo());
            wrkMastRu.setSourceStaNo(wrkMast.getSourceStaNo());
            wrkMastRu.setStaNo(wrkMast.getStaNo());
//        wrkMast.setLocNo(dto.getLocNo());
            wrkMastRu.setFullPlt("N"); // 满板
            wrkMastRu.setPicking("N"); // 拣料
            wrkMastRu.setExitMk("N"); // 退出
            wrkMastRu.setEmptyMk("Y"); // 空板
            wrkMastRu.setLinkMis("Y");
            wrkMastRu.setCtnType(wrkMast.getCtnType()); // 容器类型
            // 操作人员数据
            wrkMastRu.setAppeTime(new Date());
            wrkMastRu.setModiTime(new Date());
            boolean resOther = wrkMastService.insert(wrkMastRu);
            if (!resOther) {
                throw new CoolException("保存工作档失败");
            }
        }
    }
    public String[] staNoOther(String locNo){
        String[] strings = new String[2];
    public Integer crnStaRu(Integer crnNo){
        switch (crnNo){
            case 1:
                return 153;
            case 2:
                return 145;
            default:
                return null;
        }
    }
    public String staNoOther(String locNo){
        int row = Utils.getRow(locNo);
        if (row==1 || row==5 ){
            strings[0] = locNo;
            strings[1] = getDeepLoc2(locNo,row);
            return strings;
        } else if (row == 4 || row == 8){
            strings[0] = getDeepLoc2(locNo,row);
            strings[1] = locNo;
            return strings;
        if (row%4==0 || row%4==1){
            return getDeepLoc2(locNo,row);
        }else {
            return null;
            return getDeepLoc(locNo,row);
        }
    }
src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -39,11 +39,11 @@
            return;
        }
        for (WrkMast wrkMast : wrkMasts) {
            if (wrkMast.getIoType().equals(101)){
                if (Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("3")){
                    continue;
                }
            }
//            if (wrkMast.getIoType().equals(101)){
//                if (Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("3")){
//                    continue;
//                }
//            }
            ReturnT<String> returnT = workMastHandler.start(wrkMast);
            if (!returnT.isSuccess()) {
                wrkMast.setUpdMk("X");
src/main/resources/mapper/WrkMastLogMapper.xml
@@ -61,6 +61,7 @@
        <result column="full_plt" property="fullPlt" />
        <result column="pre_have" property="preHave" />
        <result column="take_none" property="takeNone" />
        <result column="work_no_other" property="workNoOther" />
    </resultMap>
</mapper>
src/main/resources/mapper/WrkMastMapper.xml
@@ -60,6 +60,7 @@
        <result column="full_plt" property="fullPlt" />
        <result column="pre_have" property="preHave" />
        <result column="take_none" property="takeNone" />
        <result column="work_no_other" property="workNoOther" />
    </resultMap>
    <select id="selectToBeCompleteData" resultMap="BaseResultMap">