自动化立体仓库 - WMS系统
pang.jiabao
16 小时以前 b1012d23b8ae65e45902900c687bf68f39840ac2
高并发下库位抢占导致的数据错乱
1个文件已修改
5 ■■■■ 已修改文件
src/main/java/com/zy/common/service/CommonService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java
@@ -166,12 +166,14 @@
        return null;
    }
    private final Object locLock = new Object();
    @Transactional(propagation = Propagation.REQUIRED)
    public StartupDto getLocNoNew(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, int locArea) {
        // 目标库位
        LocMast locMast;
        synchronized (locLock) {
        // 入空桶库
        if (staDescId == 1 && locArea == 2) {
            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "emptyBucketInCacheCount").eq("status", 1));
@@ -438,6 +440,7 @@
        startupDto.setSourceStaNo(sourceStaNo);
        startupDto.setLocNo(locMast.getLocNo());
        return startupDto;
        }
    }
    // 辅助方法:定义 crn_no 的排序优先级