归还时候记录出库Id,根据部件出库记录表主键,查询部件出库记录信息以及归还部件信息

This commit is contained in:
小朱 2025-05-26 14:40:52 +08:00
parent 0ec8e431cc
commit c9129438ae
7 changed files with 133 additions and 22 deletions

View File

@ -3,6 +3,7 @@ package com.cdzy.ebikeoperate.controller;
import com.cdzy.common.model.JsonResult;
import com.cdzy.ebikeoperate.mapper.EbikeEcuEnterRecordsMapper;
import com.cdzy.ebikeoperate.model.dto.request.*;
import com.cdzy.ebikeoperate.model.dto.response.ResComponentOutRecordInfoDto;
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuEnterRecords;
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuOutRecords;
import com.cdzy.ebikeoperate.model.pojo.EbikeHelmetEnterRecords;
@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.Objects;
/**
* 车辆部件的相关接口
@ -107,4 +109,15 @@ public class EbikeComponentController {
Page<EbikeEcuOutRecords> pageRecords = ebikeComponentService.ecuOutList(reqEbikeEcuOutRecordsDto);
return JsonResult.success(pageRecords);
}
/**
* 根据部件出库记录表主键查询部件出库记录信息以及归还部件信息
*
* @param componentOutRecordId 部件出库记录ID
* @return ResComponentOutRecordInfoDto
*/
@GetMapping("/getComponentOutRecordInfo")
public JsonResult<?> getComponentOutRecordInfo(@RequestParam(name="componentOutRecordId") String componentOutRecordId) {
return ebikeComponentService.getComponentOutRecordInfo(componentOutRecordId);
}
}

View File

@ -30,6 +30,11 @@ public class ReqComponentEnterRecordDto {
*/
private String owningRegion;
/**
* 关联出库记录Id 表示归还记录
*/
private String componentOutRecordId;
/**
* 部件类型ID表示部件的类别如电池ECU等部件的编号
*/

View File

@ -24,7 +24,7 @@ public class ReqComponentOutRecordDto {
private String componentOutRecordId;
/**
* 所属区域表示设备部件库的区域
* 所属区域表示设备部件库的区域
*/
private String owningRegion;
@ -47,22 +47,22 @@ public class ReqComponentOutRecordDto {
*/
private Integer enterQuantity;
/**
* 入库类型0或空 表示暂存1 表示
* 入库类型0或空 表示暂存1 表示
*/
private Integer stockInType;
/**
* 中控信息列表包含所有ECU部件的库记录
* 中控信息列表包含所有ECU部件的库记录
*/
private List<EbikeEcuOutRecords> ebikeEcuOutRecords;
/**
* 头盔信息列表包含所有头盔部件的库记录
* 头盔信息列表包含所有头盔部件的库记录
*/
private List<EbikeHelmetOutRecords> ebikeHelmetOutRecords;
/**
* 电池信息列表包含所有电池部件的库记录
* 电池信息列表包含所有电池部件的库记录
*/
private List<EbikeBatteryOutRecords> ebikeBatteryOutRecords;
}

View File

@ -0,0 +1,67 @@
package com.cdzy.ebikeoperate.model.dto.response;
import com.cdzy.ebikeoperate.model.pojo.*;
import com.mybatisflex.annotation.Id;
import java.util.List;
public class ResComponentOutRecordInfoDto {
/**
* ID
*/
@Id
private String componentOutRecordId;
/**
* 组织id运营商id
*/
private Long orgId;
/**
* 所属区域
*/
private String owningRegion;
/**
* 部件类型
*/
private String componentType;
/**
* 出库数量
*/
private Integer outQuantity;
/**
* 原部件处理方案
*/
private String oldComponentHandleOption;
/**
* 中控信息列表包含所有ECU部件的出库记录
*/
private List<EbikeEcuOutRecords> ebikeEcuOutRecords;
/**
* 头盔信息列表包含所有头盔部件的出库记录
*/
private List<EbikeHelmetOutRecords> ebikeHelmetOutRecords;
/**
* 电池信息列表包含所有电池部件的出库记录
*/
private List<EbikeBatteryOutRecords> ebikeBatteryOutRecords;
/**
* 中控信息列表包含所有ECU部件的归还记录
*/
private List<EbikeEcuEnterRecords> ebikeEcuEnterRecords;
/**
* 头盔信息列表包含所有头盔部件的归还记录
*/
private List<EbikeHelmetEnterRecords> ebikeHelmetEnterRecords;
/**
* 电池信息列表包含所有电池部件的归还记录
*/
private List<EbikeBatteryEnterRecords> ebikeBatteryEnterRecords;
}

View File

@ -41,6 +41,10 @@ public class EbikeComponentEnterRecords implements Serializable {
*/
private Long orgId;
/**
* 关联出库记录Id 表示归还记录
*/
private String componentOutRecordId;
/**
* 所属区域
*/

View File

@ -2,6 +2,7 @@ package com.cdzy.ebikeoperate.service;
import com.cdzy.common.model.JsonResult;
import com.cdzy.ebikeoperate.model.dto.request.*;
import com.cdzy.ebikeoperate.model.dto.response.ResComponentOutRecordInfoDto;
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuEnterRecords;
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuOutRecords;
import com.cdzy.ebikeoperate.model.pojo.EbikeHelmetEnterRecords;
@ -74,4 +75,11 @@ public interface EbikeComponentService {
*/
Page<EbikeEcuOutRecords> ecuOutList(ReqEbikeEcuOutRecordsDto reqEbikeEcuOutRecordsDto);
/**
* 根据部件出库记录表主键查询部件出库记录信息以及归还部件信息
*
* @param componentOutRecordId 部件出库记录ID
* @return ResComponentOutRecordInfoDto
*/
JsonResult<?> getComponentOutRecordInfo(String componentOutRecordId);
}

View File

@ -6,6 +6,7 @@ import com.cdzy.common.model.JsonResult;
import com.cdzy.ebikeoperate.enums.ComponentType;
import com.cdzy.ebikeoperate.mapper.*;
import com.cdzy.ebikeoperate.model.dto.request.*;
import com.cdzy.ebikeoperate.model.dto.response.ResComponentOutRecordInfoDto;
import com.cdzy.ebikeoperate.model.pojo.*;
import com.cdzy.ebikeoperate.service.EbikeComponentService;
import com.ebike.feign.clients.StaffFeignClient;
@ -19,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeEcuEnterRecordsTableDef.EBIKE_ECU_ENTER_RECORDS;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeEcuOutRecordsTableDef.EBIKE_ECU_OUT_RECORDS;
@ -143,6 +145,7 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
ebikeComponentEnterRecords.setOrgId(orgId);
ebikeComponentEnterRecords.setComponentType(params.getComponentType());
ebikeComponentEnterRecords.setEnterQuantity(params.getEnterQuantity());
ebikeComponentEnterRecords.setComponentOutRecordId(params.getComponentOutRecordId());
ebikeComponentEnterRecords.setComponentPrice(ebikeComponentTypeInfo.getPrice());
ebikeComponentEnterRecords.setState(stockInType == 1 ? "1" : "0"); // 暂存为 0 入库为1
return ebikeComponentEnterRecords;
@ -232,9 +235,9 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
//入库记录更新数量 type 1 入库 2 出库
private void updateInventoryCount(EbikeComponentTypeInfo ebikeComponentTypeInfo, Long orgId, int size, Integer type) {
QueryWrapper query1 = new QueryWrapper();
query1.eq("code", ebikeComponentTypeInfo.getId());
EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query1);
QueryWrapper query = new QueryWrapper();
query.eq("code", ebikeComponentTypeInfo.getId());
EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query);
if (ebikeComponentInventorycount == null) {
ebikeComponentInventorycount = new EbikeComponentInventorycount();
ebikeComponentInventorycount.setOrgId(orgId);
@ -243,7 +246,6 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
ebikeComponentInventorycount.setBrand(ebikeComponentTypeInfo.getBrand());
ebikeComponentInventorycount.setUnit(ebikeComponentTypeInfo.getUnit());
ebikeComponentInventorycount.setPrice(ebikeComponentTypeInfo.getPrice());
ebikeComponentInventorycount.setCount(size);
ebikeComponentInventorycountMapper.insert(ebikeComponentInventorycount);
} else {
if (type == 1) {//入库
@ -413,7 +415,7 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
Integer count = ebikeComponentInventorycount.getCount();
String name = ebikeComponentInventorycount.getName();
// String brand = ebikeComponentInventorycount.getBrand();
if (count < outQuantity) {
if (stockInType ==1 && count < outQuantity) {
return JsonResult.failed(String.format("%s 的库存数量不足!剩余数量:%s", name, count));
}
// 获取或新增部件记录
@ -631,18 +633,6 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
int size = ebikeEcuOutRecords.size();
updateOtherOutComponentStock(componentType, size);
}
public StaffFeign getStaffFeignInfo() {
String tokenValue = StpUtil.getTokenValue();
// 调用 Feign 客户端获取用户信息
JsonResult<StaffFeign> result = staffFeignClient.getInfoByToken(tokenValue);
// 判断返回码若失败则抛出异常
if (result.getCode() != Code.SUCCESS) {
throw new RuntimeException("获取用户信息失败");
}
// 返回获取到的 StaffFeign 数据
return result.getData();
}
/**
* 分页查询Ecu入库记录
*
@ -673,6 +663,30 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
Page<EbikeEcuOutRecords> page = reqEbikeEcuOutRecordsDto.getPageParam().getPage();
return ebikeEcuOutRecordsMapper.paginate(page, query);
}
/**
* 根据部件出库记录表主键查询部件出库记录信息以及归还部件信息
*
* @param componentOutRecordId 部件出库记录ID
* @return ResComponentOutRecordInfoDto
*/
@Override
@Transactional
public JsonResult<?> getComponentOutRecordInfo(String componentOutRecordId) {
QueryWrapper query = new QueryWrapper();
ResComponentOutRecordInfoDto resComponentOutRecordInfoDto = new ResComponentOutRecordInfoDto();
return JsonResult.success(resComponentOutRecordInfoDto);
}
public StaffFeign getStaffFeignInfo() {
String tokenValue = StpUtil.getTokenValue();
// 调用 Feign 客户端获取用户信息
JsonResult<StaffFeign> result = staffFeignClient.getInfoByToken(tokenValue);
// 判断返回码若失败则抛出异常
if (result.getCode() != Code.SUCCESS) {
throw new RuntimeException("获取用户信息失败");
}
// 返回获取到的 StaffFeign 数据
return result.getData();
}
}