修改库存验证

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);
}
}
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> 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;
}
//查询是否存在规划记录
// 根据组件类型填充对应的出库记录
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> 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;
}
if (ebikeComponentEnterRecords != null) {
populateEnterRecords(resComponentOutRecordInfoDto, ebikeComponentEnterRecords);
}
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() {
String tokenValue = StpUtil.getTokenValue();
// 调用 Feign 客户端获取用户信息