From 4c33acfe648e9b008f91c5e2cf446550e6b0174d Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期二, 22 七月 2025 17:35:57 +0800 Subject: [PATCH] 1.正式库导出优化 2.销售导出 3.设备使用状态优化 4.定时任务优化 --- main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java | 55 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 31 insertions(+), 24 deletions(-) diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java index 5c2366c..fde6bd6 100644 --- a/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java +++ b/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java @@ -85,7 +85,6 @@ } return dto; }).toList(); - dtoPage.setRecords(dtoRecords); return dtoPage; } @@ -125,46 +124,54 @@ // 璁剧疆浣跨敤寮�濮嬫椂闂翠负褰撳墠鏃堕棿 equipmentUsageRecord.setUsageStartTime(LocalDate.now()); - - // 濡傛灉鐘舵�佷负1(宸插綊杩�)锛屽垯璁剧疆缁撴潫鏃堕棿 - if ("1".equals(equipmentUsageRecordDto.getEquipmentStatus())) { - equipmentUsageRecord.setUsageEndTime(LocalDate.now()); - } - return equipmentUsageRecordMapper.insert(equipmentUsageRecord); - } - // 鏇存柊璁板綍閫昏緫 - else { - // 1. 鏌ヨ鍘熼鐢ㄨ褰� + } else { + // 缂栬緫璁板綍閫昏緫 EquipmentUsageRecord originalRecord = equipmentUsageRecordMapper.selectById(equipmentUsageRecordDto.getId()); if (originalRecord == null) { throw new RuntimeException("棰嗙敤璁板綍涓嶅瓨鍦�"); } - // 2. 璁$畻搴撳瓨鍙樺寲閲忥紙鏂版暟閲� - 鏃ф暟閲忥級 - int quantityDelta = newUsageQuantity - originalRecord.getUsageQuantity(); + // 澶勭悊褰掕繕閫昏緫 + if (equipmentUsageRecordDto.getEquipmentStatus() == 2) { + // 妫�鏌ュ綊杩樻暟閲忔槸鍚﹀悎娉� + if (newUsageQuantity > originalRecord.getUsageQuantity()) { + throw new RuntimeException("褰掕繕鏁伴噺涓嶈兘瓒呰繃鍘熼鐢ㄦ暟閲�"); + } - if (quantityDelta != 0) { - // 3. 妫�鏌ヨ皟鏁村悗搴撳瓨鏄惁鍏呰冻 - int newInventory = equipment.getQuantity() - quantityDelta; + // 璁$畻瀹為檯褰掕繕鏁伴噺锛堝師棰嗙敤鏁伴噺 - 鏂伴鐢ㄦ暟閲忥級 + int returnedQuantity = originalRecord.getUsageQuantity() - newUsageQuantity; + + // 鎭㈠閮ㄥ垎搴撳瓨 + equipment.setQuantity(equipment.getQuantity() + returnedQuantity); + equipmentManagementMapper.updateById(equipment); + + // 濡傛灉鍏ㄩ儴褰掕繕锛岃缃綊杩樻椂闂� + if (newUsageQuantity == 0) { + equipmentUsageRecord.setUsageEndTime(LocalDate.now()); + } + return equipmentUsageRecordMapper.updateById(equipmentUsageRecord); + } + + // 澶勭悊鏅�氱紪杈戦�昏緫锛堥潪褰掕繕鐘舵�侊級 + if (!newUsageQuantity.equals(originalRecord.getUsageQuantity())) { + // 璁$畻搴撳瓨鍙樺寲閲忥紙鏃ф暟閲� - 鏂版暟閲忥級 + int quantityDelta = originalRecord.getUsageQuantity() - newUsageQuantity; + + // 妫�鏌ヨ皟鏁村悗搴撳瓨鏄惁鍏呰冻 + int newInventory = equipment.getQuantity() + quantityDelta; if (newInventory < 0) { throw new RuntimeException("搴撳瓨涓嶈冻锛岃皟鏁村悗搴撳瓨灏嗕负锛�" + newInventory); } - // 4. 璋冩暣搴撳瓨 + // 璋冩暣搴撳瓨 equipment.setQuantity(newInventory); if (equipmentManagementMapper.updateById(equipment) == 0) { throw new RuntimeException("搴撳瓨鏇存柊澶辫触锛屽彲鑳藉凡琚叾浠栨搷浣滀慨鏀�"); } } - // 5. 濡傛灉鐘舵�佸彉涓�1(宸插綊杩�)锛屽垯璁剧疆缁撴潫鏃堕棿涓哄綋鍓嶆椂闂� - if ("1".equals(equipmentUsageRecordDto.getEquipmentStatus()) && - (originalRecord.getEquipmentStatus() == null || !"1".equals(originalRecord.getEquipmentStatus()))) { - equipmentUsageRecord.setUsageEndTime(LocalDate.now()); - } - - // 6. 鏇存柊棰嗙敤璁板綍 + // 鏇存柊棰嗙敤璁板綍 return equipmentUsageRecordMapper.updateById(equipmentUsageRecord); } } -- Gitblit v1.9.3