自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-05-14 89af7e4c0a0fcd715bad4dbcf4e66442c0bf5975
#
11个文件已修改
114 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/WorkController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/RowLastnoMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/StaDescMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/RowLastnoService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/StaDescService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WorkService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/RowLastnoServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/RowLastnoMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/StaDescMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WorkController.java
@@ -154,8 +154,8 @@
    @RequestMapping("/deal/preHave/start")
    @ManagerAuth(memo = "先入品处理")
    public R dealPreHave(@RequestParam Integer wrkNo) {
        StartupDto startupDto = workService.dealPreHaveStart(wrkNo, getUserId());
        return R.ok("任务重新入库,目标库位:" + startupDto.getLocNo());
        String locNo = workService.dealPreHaveStart(wrkNo, getUserId());
        return R.ok("任务重新入库,目标库位:" + locNo);
    }
}
src/main/java/com/zy/asrs/mapper/RowLastnoMapper.java
@@ -9,4 +9,6 @@
@Repository
public interface RowLastnoMapper extends BaseMapper<RowLastno> {
    RowLastno findBySection(Integer row);
}
src/main/java/com/zy/asrs/mapper/StaDescMapper.java
@@ -14,4 +14,6 @@
    List<Integer> queryOutStaNosByLocNo(@Param("locNo") String locNo, @Param("typeNo") Integer typeNo);
    StaDesc queryCrnStn(Integer crnNo);
}
src/main/java/com/zy/asrs/service/RowLastnoService.java
@@ -5,4 +5,6 @@
public interface RowLastnoService extends IService<RowLastno> {
    RowLastno findBySection(Integer row);
}
src/main/java/com/zy/asrs/service/StaDescService.java
@@ -13,4 +13,6 @@
    StaDesc queryCrnStnAuto(Integer typeNo, Integer crnNo, Integer stnNo);
    StaDesc queryCrnStn(Integer crnNo);
}
src/main/java/com/zy/asrs/service/WorkService.java
@@ -85,6 +85,6 @@
    /**
     * 通知档手动生成任务
     */
    StartupDto dealPreHaveStart(Integer wrkNo, Long userId);
    String dealPreHaveStart(Integer wrkNo, Long userId);
}
src/main/java/com/zy/asrs/service/impl/RowLastnoServiceImpl.java
@@ -9,4 +9,8 @@
@Service("rowLastnoService")
public class RowLastnoServiceImpl extends ServiceImpl<RowLastnoMapper, RowLastno> implements RowLastnoService {
    @Override
    public RowLastno findBySection(Integer row) {
        return this.baseMapper.findBySection(row);
    }
}
src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java
@@ -54,4 +54,9 @@
        return staDesc;
    }
    @Override
    public StaDesc queryCrnStn(Integer crnNo) {
        return this.baseMapper.queryCrnStn(crnNo);
    }
}
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -13,9 +13,11 @@
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
import com.zy.common.model.enums.IoWorkType;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
import com.zy.common.web.WcsController;
import lombok.extern.slf4j.Slf4j;
@@ -69,6 +71,10 @@
    private OrderDetlService orderDetlService;
    @Autowired
    private WcsController wcsController;
    @Autowired
    private RowLastnoService rowLastnoService;
    @Autowired
    private SlaveProperties slaveProperties;
    @Override
    @Transactional
@@ -881,9 +887,76 @@
    }
    @Override
    public StartupDto dealPreHaveStart(Integer wrkNo, Long userId) {
    @Transactional
    public String dealPreHaveStart(Integer wrkNo, Long userId) {
        WrkMast wrkMast = wrkMastService.selectById(wrkNo);
        if (wrkMast == null) {
            throw new CoolException("任务已失效");
        }
        String locNo = wrkMast.getLocNo();
        LocMast locMast = locMastService.selectById(locNo);
        assert locMast != null;
        RowLastno rowLastno = rowLastnoService.findBySection(locMast.getRow1());
        assert rowLastno != null;
        return null;
        // 目标库位
        LocMast targetLoc = null;
        for (int curRow = rowLastno.getsRow(); curRow<=rowLastno.geteRow(); curRow++) {
            if (Utils.isShallowLoc(slaveProperties, curRow)) {
                Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
                targetLoc = locMastService.queryFreeLocMast(deepRow, locMast.getLocType1());
                // 因库位移转、需预留空库位
                if (!locMastService.checkEmptyCount(targetLoc)) {
                    continue;
                }
            }
            if (Cools.isEmpty(targetLoc)) {
                targetLoc = locMastService.queryFreeLocMast(curRow, locMast.getLocType1());
                // 因库位移转、需预留空库位
                if (!locMastService.checkEmptyCount(targetLoc)) {
                    continue;
                }
                // 目标库位 ===>> 浅库位, 则校验其深库位是否为 F D X
                if (null != targetLoc && Utils.isShallowLoc(slaveProperties, targetLoc.getLocNo())) {
                    LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, targetLoc.getLocNo()));
                    if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) {
                        continue;
                    }
                }
                // 目标库位 ===>> 深库位, 则校验其浅库位是否为 O
                if (null != targetLoc && Utils.isDeepLoc(slaveProperties, targetLoc.getLocNo())) {
                    LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, targetLoc.getLocNo()));
                    if (!shallowLoc.getLocSts().equals("O")) {
                        continue;
                    }
                }
            }
            if (!Cools.isEmpty(targetLoc)) {
                break;
            }
        }
        if (targetLoc == null) {
            throw new CoolException("操作失败,当前仓库找不到空库位");
        }
        // 修改工作档
        StaDesc staDesc = staDescService.queryCrnStn(targetLoc.getCrnNo());
        if (Cools.isEmpty(staDesc)) {
            throw new CoolException("入库路径不存在");
        }
        wrkMast.setWrkSts(2L);
        wrkMast.setLocNo(targetLoc.getLocNo());
        wrkMast.setStaNo(staDesc.getCrnStn());
        if (!wrkMastService.updateById(wrkMast)) {
            throw new CoolException("修改工作档失败");
        }
        return targetLoc.getLocNo();
    }
}
src/main/resources/mapper/RowLastnoMapper.xml
@@ -19,4 +19,12 @@
    </resultMap>
    <select id="findBySection" resultMap="BaseResultMap">
        select * from asr_row_lastno
        where 1=1
        and s_row &lt;= #{row}
        and e_row >= #{row}
        order by (e_row - s_row)
    </select>
</mapper>
src/main/resources/mapper/StaDescMapper.xml
@@ -29,7 +29,13 @@
        <if test="typeNo != null and typeNo !=''">
            and asd.type_no = #{typeNo}
        </if>
    </select>
    <select id="queryCrnStn" resultMap="BaseResultMap">
        select top 1 * from asr_sta_desc
        where 1=1
        and crn_no = #{crnNo}
        and type_no = 1
    </select>
</mapper>