From c8fbeff3b07f96ffb4624dd64344ac00ec0c8ef8 Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期五, 18 七月 2025 11:03:47 +0800 Subject: [PATCH] 1.优化正式库 2.yml设置 --- main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java | 95 +++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 91 insertions(+), 4 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 a1d8661..5c2366c 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 @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.entity.Supply; +import com.ruoyi.basic.mapper.CoalInfoMapper; import com.ruoyi.business.dto.EquipmentManagementDto; import com.ruoyi.business.dto.EquipmentUsageRecordDto; import com.ruoyi.business.entity.EquipmentManagement; @@ -12,10 +13,14 @@ import com.ruoyi.business.mapper.EquipmentUsageRecordMapper; import com.ruoyi.business.service.EquipmentUsageRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.bean.BeanUtils; +import com.ruoyi.system.mapper.SysUserMapper; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; +import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -37,7 +42,9 @@ private final EquipmentUsageRecordMapper equipmentUsageRecordMapper; - private final EquipmentManagementMapper equipmentManagementMapper; + private final EquipmentManagementMapper equipmentManagementMapper; + + private final SysUserMapper sysUserMapper; @Override public IPage<EquipmentUsageRecordDto> selectUsageRecordList(Page<EquipmentUsageRecord> page, EquipmentUsageRecordDto equipmentUsageRecordDto) { @@ -46,7 +53,8 @@ BeanUtils.copyProperties(entityPage, dtoPage); List<Long> eqIds = entityPage.getRecords().stream().map(EquipmentUsageRecord::getEquipmentId).toList(); - //鎵归噺鏌ヨ + List<Long> userIds = entityPage.getRecords().stream().map(EquipmentUsageRecord::getUserId).toList(); + //鎵归噺鏌ヨ璁惧 Map<Long, EquipmentManagement> equipmentManagementMap; if (!eqIds.isEmpty()) { List<EquipmentManagement> infos = equipmentManagementMapper.selectList(new LambdaQueryWrapper<EquipmentManagement>().in(EquipmentManagement::getId, eqIds)); @@ -54,15 +62,26 @@ } else { equipmentManagementMap = new HashMap<>(); } + //浜哄憳鏌ヨ + Map<Long, SysUser> userMap; + if (!userIds.isEmpty()) { + List<SysUser> sysUsers = sysUserMapper.selectList(userIds); + userMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity())); + } else { + userMap = new HashMap<>(); + } //鍖归厤鏁版嵁 List<EquipmentUsageRecordDto> dtoRecords = entityPage.getRecords().stream().map(entity -> { EquipmentUsageRecordDto dto = new EquipmentUsageRecordDto(); BeanUtils.copyProperties(entity, dto); - EquipmentManagement equipment = equipmentManagementMap.get(entity.getEquipmentId()); if (equipment != null) { dto.setEquipmentNo(equipment.getEquipmentNo()); dto.setEquipmentName(equipment.getEquipmentName()); + } + SysUser sysUser = userMap.get(entity.getUserId()); + if (sysUser != null) { + dto.setUserName(sysUser.getNickName()); } return dto; }).toList(); @@ -72,12 +91,80 @@ } @Override + @Transactional(rollbackFor = Exception.class) public int addOrEditUsageRecord(EquipmentUsageRecordDto equipmentUsageRecordDto) { + // 鍙傛暟鏍¢獙 + if (equipmentUsageRecordDto == null) { + throw new IllegalArgumentException("璁惧浣跨敤璁板綍鍙傛暟涓嶈兘涓虹┖"); + } + + // 澶嶅埗灞炴�у埌瀹炰綋瀵硅薄 EquipmentUsageRecord equipmentUsageRecord = new EquipmentUsageRecord(); BeanUtils.copyProperties(equipmentUsageRecordDto, equipmentUsageRecord); + + // 鑾峰彇璁惧ID鍜岄鐢ㄦ暟閲� + Long equipmentId = equipmentUsageRecordDto.getEquipmentId(); + Integer newUsageQuantity = equipmentUsageRecordDto.getUsageQuantity(); + + // 鏌ヨ璁惧淇℃伅 + EquipmentManagement equipment = equipmentManagementMapper.selectById(equipmentId); + if (equipment == null) { + throw new RuntimeException("璁惧涓嶅瓨鍦�"); + } + + // 鏂板璁板綍閫昏緫 if (Objects.isNull(equipmentUsageRecordDto.getId())) { + // 妫�鏌ュ簱瀛樻槸鍚﹀厖瓒� + if (equipment.getQuantity() < newUsageQuantity) { + throw new RuntimeException("搴撳瓨涓嶈冻锛屽綋鍓嶅簱瀛橈細" + equipment.getQuantity()); + } + + // 鎵e噺搴撳瓨 + equipment.setQuantity(equipment.getQuantity() - newUsageQuantity); + equipmentManagementMapper.updateById(equipment); + + // 璁剧疆浣跨敤寮�濮嬫椂闂翠负褰撳墠鏃堕棿 + equipmentUsageRecord.setUsageStartTime(LocalDate.now()); + + // 濡傛灉鐘舵�佷负1(宸插綊杩�)锛屽垯璁剧疆缁撴潫鏃堕棿 + if ("1".equals(equipmentUsageRecordDto.getEquipmentStatus())) { + equipmentUsageRecord.setUsageEndTime(LocalDate.now()); + } + return equipmentUsageRecordMapper.insert(equipmentUsageRecord); - } else { + } + // 鏇存柊璁板綍閫昏緫 + else { + // 1. 鏌ヨ鍘熼鐢ㄨ褰� + EquipmentUsageRecord originalRecord = equipmentUsageRecordMapper.selectById(equipmentUsageRecordDto.getId()); + if (originalRecord == null) { + throw new RuntimeException("棰嗙敤璁板綍涓嶅瓨鍦�"); + } + + // 2. 璁$畻搴撳瓨鍙樺寲閲忥紙鏂版暟閲� - 鏃ф暟閲忥級 + int quantityDelta = newUsageQuantity - originalRecord.getUsageQuantity(); + + if (quantityDelta != 0) { + // 3. 妫�鏌ヨ皟鏁村悗搴撳瓨鏄惁鍏呰冻 + 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