From 6d84c3100f8679ab6afc15a000ba5d6406ef6255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=9C=B1?= <2671189764@qq.com> Date: Mon, 26 May 2025 16:43:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=93=E5=AD=98=E9=AA=8C?= =?UTF-8?q?=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EbikeComponentServiceImpl.java | 128 +++++++++++------- 1 file changed, 82 insertions(+), 46 deletions(-) diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeComponentServiceImpl.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeComponentServiceImpl.java index 5892a243..df8cffb8 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeComponentServiceImpl.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeComponentServiceImpl.java @@ -111,6 +111,13 @@ public class EbikeComponentServiceImpl implements EbikeComponentService { updateInventoryCount(ebikeComponentTypeInfo, orgId, enterQuantity, 1); } } + String componentOutRecordId = params.getComponentOutRecordId(); + if(componentOutRecordId != null && !componentOutRecordId.isEmpty()){ + // 更新出库记录状态为 已归还 + EbikeComponentOutRecords ebikeComponentOutRecords = ebikeComponentOutRecordsMapper.selectOneById(componentOutRecordId); + ebikeComponentOutRecords.setState("2"); + ebikeComponentOutRecordsMapper.update(ebikeComponentOutRecords); + } return JsonResult.success("", componentEnterRecordId); } @@ -408,16 +415,20 @@ public class EbikeComponentServiceImpl implements EbikeComponentService { /** * 验证仓库数量是否足够 */ - Integer outQuantity = params.getOutQuantity();//选择的出库数量 - //查看仓库剩余部件数量 + Integer outQuantity = params.getOutQuantity(); // 选择的出库数量 + // 查看仓库剩余部件数量 QueryWrapper query = new QueryWrapper(); query.eq("code", params.getComponentType()); EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query); - Integer count = ebikeComponentInventorycount.getCount(); - String name = ebikeComponentInventorycount.getName(); -// String brand = ebikeComponentInventorycount.getBrand(); - if (stockInType ==1 && count < outQuantity) { - return JsonResult.failed(String.format("%s 的库存数量不足!剩余数量:%s", name, count)); + // 如果查询结果为空,返回错误信息 + if (ebikeComponentInventorycount == null) { + return JsonResult.failed("未找到相应的部件库存信息"); + } + Integer count = ebikeComponentInventorycount.getCount(); // 获取剩余数量 + String name = ebikeComponentInventorycount.getName(); // 获取部件名称 + // 判断库存是否足够 + if (stockInType == 1 && count < outQuantity) { + return JsonResult.failed(String.format("%s 的库存数量不足!剩余数量:%d", name, count)); } // 获取或新增部件记录 EbikeComponentOutRecords ebikeComponentOutRecords = buildOutRecord(params, ebikeComponentTypeInfo, stockInType, orgId); @@ -671,54 +682,79 @@ public class EbikeComponentServiceImpl implements EbikeComponentService { * @return ResComponentOutRecordInfoDto */ @Override - @Transactional public JsonResult getComponentOutRecordInfo(String componentOutRecordId) { + // 创建查询条件 QueryWrapper query = new QueryWrapper(); - ResComponentOutRecordInfoDto resComponentOutRecordInfoDto = new ResComponentOutRecordInfoDto(); query.eq("component_out_record_id", componentOutRecordId); + + // 获取出库记录 EbikeComponentOutRecords ebikeComponentOutRecords = ebikeComponentOutRecordsMapper.selectOneByQuery(query); + if (ebikeComponentOutRecords == null) { + return JsonResult.failed("记录未找到"); + } + + // 将出库记录的属性复制到返回的DTO中 + ResComponentOutRecordInfoDto resComponentOutRecordInfoDto = new ResComponentOutRecordInfoDto(); BeanUtils.copyProperties(ebikeComponentOutRecords, resComponentOutRecordInfoDto); - String componentType = ebikeComponentOutRecords.getComponentType(); - ComponentType componentTypeEnum = ComponentType.fromCode(componentType); - switch (componentTypeEnum) { - case BATTERY: // 电池 - List ebikeBatteryOutRecords = ebikeBatteryOutRecordsMapper.selectListWithRelationsByQuery(query); - resComponentOutRecordInfoDto.setEbikeBatteryOutRecords(ebikeBatteryOutRecords); - break; - case HELMET: // 头盔 - List ebikeHelmetOutRecords = ebikeHelmetOutRecordsMapper.selectListWithRelationsByQuery(query); - resComponentOutRecordInfoDto.setEbikeHelmetOutRecords(ebikeHelmetOutRecords); - break; - case ECU: // 中控 - List ebikeEcuOutRecords = ebikeEcuOutRecordsMapper.selectListWithRelationsByQuery(query); - resComponentOutRecordInfoDto.setEbikeEcuOutRecords(ebikeEcuOutRecords); - break; - } - //查询是否存在规划记录 + + // 根据组件类型填充对应的出库记录 + ComponentType componentTypeEnum = ComponentType.fromCode(ebikeComponentOutRecords.getComponentType()); + populateOutRecords(resComponentOutRecordInfoDto, query, componentTypeEnum); + + // 查询是否存在归还记录,如果存在,则填充归还记录 EbikeComponentEnterRecords ebikeComponentEnterRecords = ebikeComponentEnterRecordsMapper.selectOneByQuery(query); - if(ebikeComponentEnterRecords!=null){ - String componentEnterRecordId = ebikeComponentEnterRecords.getComponentEnterRecordId(); - query = new QueryWrapper(); - query.eq("component_enter_record_id", componentEnterRecordId); - String componentEnterType = ebikeComponentEnterRecords.getComponentType(); - ComponentType componentTypeEnumEnter = ComponentType.fromCode(componentEnterType); - switch (componentTypeEnumEnter) { - case BATTERY: // 电池 - List ebikeBatteryEnterRecords = ebikeBatteryEnterRecordsMapper.selectListWithRelationsByQuery(query); - resComponentOutRecordInfoDto.setEbikeBatteryEnterRecords(ebikeBatteryEnterRecords); - break; - case HELMET: // 头盔 - List ebikeHelmetEnterRecords = ebikeHelmetEnterRecordsMapper.selectListWithRelationsByQuery(query); - resComponentOutRecordInfoDto.setEbikeHelmetEnterRecords(ebikeHelmetEnterRecords); - break; - case ECU: // 中控 - List ebikeEcuEnterRecords = ebikeEcuEnterRecordsMapper.selectListWithRelationsByQuery(query); - resComponentOutRecordInfoDto.setEbikeEcuEnterRecords(ebikeEcuEnterRecords); - break; - } + if (ebikeComponentEnterRecords != null) { + populateEnterRecords(resComponentOutRecordInfoDto, ebikeComponentEnterRecords); } + return JsonResult.success(resComponentOutRecordInfoDto); } + + // 根据组件类型填充出库记录 + private void populateOutRecords(ResComponentOutRecordInfoDto dto, QueryWrapper query, ComponentType componentTypeEnum) { + switch (componentTypeEnum) { + case BATTERY: // 电池 + List batteryOutRecords = ebikeBatteryOutRecordsMapper.selectListWithRelationsByQuery(query); + dto.setEbikeBatteryOutRecords(batteryOutRecords); + break; + case HELMET: // 头盔 + List helmetOutRecords = ebikeHelmetOutRecordsMapper.selectListWithRelationsByQuery(query); + dto.setEbikeHelmetOutRecords(helmetOutRecords); + break; + case ECU: // 中控 + List ecuOutRecords = ebikeEcuOutRecordsMapper.selectListWithRelationsByQuery(query); + dto.setEbikeEcuOutRecords(ecuOutRecords); + break; + default: + break; + } + } + + // 根据归还记录填充相应的归还记录 + private void populateEnterRecords(ResComponentOutRecordInfoDto dto, EbikeComponentEnterRecords enterRecords) { + QueryWrapper query = new QueryWrapper(); + query.eq("component_enter_record_id", enterRecords.getComponentEnterRecordId()); + + // 获取归还记录对应的组件类型 + ComponentType componentTypeEnumEnter = ComponentType.fromCode(enterRecords.getComponentType()); + switch (componentTypeEnumEnter) { + case BATTERY: // 电池 + List batteryEnterRecords = ebikeBatteryEnterRecordsMapper.selectListWithRelationsByQuery(query); + dto.setEbikeBatteryEnterRecords(batteryEnterRecords); + break; + case HELMET: // 头盔 + List helmetEnterRecords = ebikeHelmetEnterRecordsMapper.selectListWithRelationsByQuery(query); + dto.setEbikeHelmetEnterRecords(helmetEnterRecords); + break; + case ECU: // 中控 + List ecuEnterRecords = ebikeEcuEnterRecordsMapper.selectListWithRelationsByQuery(query); + dto.setEbikeEcuEnterRecords(ecuEnterRecords); + break; + default: + break; + } + } + public StaffFeign getStaffFeignInfo() { String tokenValue = StpUtil.getTokenValue(); // 调用 Feign 客户端获取用户信息