修改库存验证

This commit is contained in:
小朱 2025-05-26 16:43:44 +08:00
parent c45319b525
commit 6d84c3100f

View File

@ -111,6 +111,13 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
updateInventoryCount(ebikeComponentTypeInfo, orgId, enterQuantity, 1); 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); 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(); QueryWrapper query = new QueryWrapper();
query.eq("code", params.getComponentType()); query.eq("code", params.getComponentType());
EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query); EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query);
Integer count = ebikeComponentInventorycount.getCount(); // 如果查询结果为空返回错误信息
String name = ebikeComponentInventorycount.getName(); if (ebikeComponentInventorycount == null) {
// String brand = ebikeComponentInventorycount.getBrand(); return JsonResult.failed("未找到相应的部件库存信息");
if (stockInType ==1 && count < outQuantity) { }
return JsonResult.failed(String.format("%s 的库存数量不足!剩余数量:%s", name, count)); 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); EbikeComponentOutRecords ebikeComponentOutRecords = buildOutRecord(params, ebikeComponentTypeInfo, stockInType, orgId);
@ -671,54 +682,79 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
* @return ResComponentOutRecordInfoDto * @return ResComponentOutRecordInfoDto
*/ */
@Override @Override
@Transactional
public JsonResult<?> getComponentOutRecordInfo(String componentOutRecordId) { public JsonResult<?> getComponentOutRecordInfo(String componentOutRecordId) {
// 创建查询条件
QueryWrapper query = new QueryWrapper(); QueryWrapper query = new QueryWrapper();
ResComponentOutRecordInfoDto resComponentOutRecordInfoDto = new ResComponentOutRecordInfoDto();
query.eq("component_out_record_id", componentOutRecordId); query.eq("component_out_record_id", componentOutRecordId);
// 获取出库记录
EbikeComponentOutRecords ebikeComponentOutRecords = ebikeComponentOutRecordsMapper.selectOneByQuery(query); EbikeComponentOutRecords ebikeComponentOutRecords = ebikeComponentOutRecordsMapper.selectOneByQuery(query);
if (ebikeComponentOutRecords == null) {
return JsonResult.failed("记录未找到");
}
// 将出库记录的属性复制到返回的DTO中
ResComponentOutRecordInfoDto resComponentOutRecordInfoDto = new ResComponentOutRecordInfoDto();
BeanUtils.copyProperties(ebikeComponentOutRecords, resComponentOutRecordInfoDto); BeanUtils.copyProperties(ebikeComponentOutRecords, resComponentOutRecordInfoDto);
String componentType = ebikeComponentOutRecords.getComponentType();
ComponentType componentTypeEnum = ComponentType.fromCode(componentType); // 根据组件类型填充对应的出库记录
switch (componentTypeEnum) { ComponentType componentTypeEnum = ComponentType.fromCode(ebikeComponentOutRecords.getComponentType());
case BATTERY: // 电池 populateOutRecords(resComponentOutRecordInfoDto, query, componentTypeEnum);
List<EbikeBatteryOutRecords> ebikeBatteryOutRecords = ebikeBatteryOutRecordsMapper.selectListWithRelationsByQuery(query);
resComponentOutRecordInfoDto.setEbikeBatteryOutRecords(ebikeBatteryOutRecords); // 查询是否存在归还记录如果存在则填充归还记录
break;
case HELMET: // 头盔
List<EbikeHelmetOutRecords> ebikeHelmetOutRecords = ebikeHelmetOutRecordsMapper.selectListWithRelationsByQuery(query);
resComponentOutRecordInfoDto.setEbikeHelmetOutRecords(ebikeHelmetOutRecords);
break;
case ECU: // 中控
List<EbikeEcuOutRecords> ebikeEcuOutRecords = ebikeEcuOutRecordsMapper.selectListWithRelationsByQuery(query);
resComponentOutRecordInfoDto.setEbikeEcuOutRecords(ebikeEcuOutRecords);
break;
}
//查询是否存在规划记录
EbikeComponentEnterRecords ebikeComponentEnterRecords = ebikeComponentEnterRecordsMapper.selectOneByQuery(query); EbikeComponentEnterRecords ebikeComponentEnterRecords = ebikeComponentEnterRecordsMapper.selectOneByQuery(query);
if(ebikeComponentEnterRecords!=null){ if (ebikeComponentEnterRecords != null) {
String componentEnterRecordId = ebikeComponentEnterRecords.getComponentEnterRecordId(); populateEnterRecords(resComponentOutRecordInfoDto, ebikeComponentEnterRecords);
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> ebikeBatteryEnterRecords = ebikeBatteryEnterRecordsMapper.selectListWithRelationsByQuery(query);
resComponentOutRecordInfoDto.setEbikeBatteryEnterRecords(ebikeBatteryEnterRecords);
break;
case HELMET: // 头盔
List<EbikeHelmetEnterRecords> ebikeHelmetEnterRecords = ebikeHelmetEnterRecordsMapper.selectListWithRelationsByQuery(query);
resComponentOutRecordInfoDto.setEbikeHelmetEnterRecords(ebikeHelmetEnterRecords);
break;
case ECU: // 中控
List<EbikeEcuEnterRecords> ebikeEcuEnterRecords = ebikeEcuEnterRecordsMapper.selectListWithRelationsByQuery(query);
resComponentOutRecordInfoDto.setEbikeEcuEnterRecords(ebikeEcuEnterRecords);
break;
}
} }
return JsonResult.success(resComponentOutRecordInfoDto); return JsonResult.success(resComponentOutRecordInfoDto);
} }
// 根据组件类型填充出库记录
private void populateOutRecords(ResComponentOutRecordInfoDto dto, QueryWrapper query, ComponentType componentTypeEnum) {
switch (componentTypeEnum) {
case BATTERY: // 电池
List<EbikeBatteryOutRecords> batteryOutRecords = ebikeBatteryOutRecordsMapper.selectListWithRelationsByQuery(query);
dto.setEbikeBatteryOutRecords(batteryOutRecords);
break;
case HELMET: // 头盔
List<EbikeHelmetOutRecords> helmetOutRecords = ebikeHelmetOutRecordsMapper.selectListWithRelationsByQuery(query);
dto.setEbikeHelmetOutRecords(helmetOutRecords);
break;
case ECU: // 中控
List<EbikeEcuOutRecords> 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<EbikeBatteryEnterRecords> batteryEnterRecords = ebikeBatteryEnterRecordsMapper.selectListWithRelationsByQuery(query);
dto.setEbikeBatteryEnterRecords(batteryEnterRecords);
break;
case HELMET: // 头盔
List<EbikeHelmetEnterRecords> helmetEnterRecords = ebikeHelmetEnterRecordsMapper.selectListWithRelationsByQuery(query);
dto.setEbikeHelmetEnterRecords(helmetEnterRecords);
break;
case ECU: // 中控
List<EbikeEcuEnterRecords> ecuEnterRecords = ebikeEcuEnterRecordsMapper.selectListWithRelationsByQuery(query);
dto.setEbikeEcuEnterRecords(ecuEnterRecords);
break;
default:
break;
}
}
public StaffFeign getStaffFeignInfo() { public StaffFeign getStaffFeignInfo() {
String tokenValue = StpUtil.getTokenValue(); String tokenValue = StpUtil.getTokenValue();
// 调用 Feign 客户端获取用户信息 // 调用 Feign 客户端获取用户信息