From 9868becf1456f52e342d90f957755f93cdf2bbf8 Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期一, 25 八月 2025 13:45:27 +0800 Subject: [PATCH] fix:修复工单创建多次问题 --- jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-) diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java index 7812901..d0b0866 100755 --- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java +++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java @@ -35,6 +35,8 @@ import org.springframework.transaction.annotation.Transactional; import java.text.DecimalFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReentrantLock; @@ -418,6 +420,29 @@ ReentrantLock orderLock = getLock(realTimeDataVo.getTenantid() + "", "order"); orderLock.lock(); try { + //鏍规嵁绉熸埛id 鍜� 鑽潗id 妫�鏌ユ渶杩戞槸鍚﹀瓨鍦ㄥ伐鍗� TODO 楠岃瘉 + LambdaQueryWrapper<DryOrder> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DryOrder::getHerbId, herbFormula.getId()); + queryWrapper.eq(DryOrder::getTenantId, realTimeDataVo.getTenantid()); + queryWrapper.orderByDesc(DryOrder::getOrderTime); + queryWrapper.last("LIMIT 1"); + // 1 鏌ヨ鏁版嵁搴� + DryOrder one = dryOrderService.getOne(queryWrapper); + if(one!=null){ + Date orderDate = one.getOrderTime(); + //30S鍐呬笉鍏佽鏂板缓宸ュ崟锛岄伩鍏嶉噸澶� + LocalDateTime orderTime = orderDate.toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDateTime(); + + LocalDateTime now = LocalDateTime.now(); + long secondsBetween = java.time.Duration.between(orderTime, now).getSeconds(); + boolean b = secondsBetween <= 30; + if(b){ + return BeanUtil.toBean(one, DryOrderVo.class); + } + } + // 鍒涘缓鏂板伐鍗� orderVo = new DryOrderVo(realTimeDataVo); orderVo.setHerbId(herbFormula.getId()); @@ -482,7 +507,10 @@ LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(DryHerbFormula::getTenantId, realTimeDataVo.getTenantid()); queryWrapper.eq(DryHerbFormula::getName, realTimeDataVo.getName()); + queryWrapper.orderByDesc(DryHerbFormula::getCreateTime); + queryWrapper.last("LIMIT 1"); DryHerbFormula one = dryHerbFormulaService.getOne(queryWrapper); + if (one == null) { one = new DryHerbFormula(realTimeDataVo); DryEquipment dryEquipment = equipmentService.selectByTenantIdEquipmentId(realTimeDataVo.getTenantid() + "", realTimeDataVo.getMachineid()); -- Gitblit v1.9.3