归还时候记录出库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.common.model.JsonResult;
import com.cdzy.ebikeoperate.mapper.EbikeEcuEnterRecordsMapper; import com.cdzy.ebikeoperate.mapper.EbikeEcuEnterRecordsMapper;
import com.cdzy.ebikeoperate.model.dto.request.*; 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.EbikeEcuEnterRecords;
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuOutRecords; import com.cdzy.ebikeoperate.model.pojo.EbikeEcuOutRecords;
import com.cdzy.ebikeoperate.model.pojo.EbikeHelmetEnterRecords; 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 org.springframework.web.bind.annotation.*;
import java.util.Map; import java.util.Map;
import java.util.Objects;
/** /**
* 车辆部件的相关接口 * 车辆部件的相关接口
@ -107,4 +109,15 @@ public class EbikeComponentController {
Page<EbikeEcuOutRecords> pageRecords = ebikeComponentService.ecuOutList(reqEbikeEcuOutRecordsDto); Page<EbikeEcuOutRecords> pageRecords = ebikeComponentService.ecuOutList(reqEbikeEcuOutRecordsDto);
return JsonResult.success(pageRecords); 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; private String owningRegion;
/**
* 关联出库记录Id 表示归还记录
*/
private String componentOutRecordId;
/** /**
* 部件类型ID表示部件的类别如电池ECU等部件的编号 * 部件类型ID表示部件的类别如电池ECU等部件的编号
*/ */

View File

@ -24,7 +24,7 @@ public class ReqComponentOutRecordDto {
private String componentOutRecordId; private String componentOutRecordId;
/** /**
* 所属区域表示设备部件库的区域 * 所属区域表示设备部件库的区域
*/ */
private String owningRegion; private String owningRegion;
@ -47,22 +47,22 @@ public class ReqComponentOutRecordDto {
*/ */
private Integer enterQuantity; private Integer enterQuantity;
/** /**
* 入库类型0或空 表示暂存1 表示 * 入库类型0或空 表示暂存1 表示
*/ */
private Integer stockInType; private Integer stockInType;
/** /**
* 中控信息列表包含所有ECU部件的库记录 * 中控信息列表包含所有ECU部件的库记录
*/ */
private List<EbikeEcuOutRecords> ebikeEcuOutRecords; private List<EbikeEcuOutRecords> ebikeEcuOutRecords;
/** /**
* 头盔信息列表包含所有头盔部件的库记录 * 头盔信息列表包含所有头盔部件的库记录
*/ */
private List<EbikeHelmetOutRecords> ebikeHelmetOutRecords; private List<EbikeHelmetOutRecords> ebikeHelmetOutRecords;
/** /**
* 电池信息列表包含所有电池部件的库记录 * 电池信息列表包含所有电池部件的库记录
*/ */
private List<EbikeBatteryOutRecords> ebikeBatteryOutRecords; 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; 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.common.model.JsonResult;
import com.cdzy.ebikeoperate.model.dto.request.*; 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.EbikeEcuEnterRecords;
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuOutRecords; import com.cdzy.ebikeoperate.model.pojo.EbikeEcuOutRecords;
import com.cdzy.ebikeoperate.model.pojo.EbikeHelmetEnterRecords; import com.cdzy.ebikeoperate.model.pojo.EbikeHelmetEnterRecords;
@ -74,4 +75,11 @@ public interface EbikeComponentService {
*/ */
Page<EbikeEcuOutRecords> ecuOutList(ReqEbikeEcuOutRecordsDto reqEbikeEcuOutRecordsDto); 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.enums.ComponentType;
import com.cdzy.ebikeoperate.mapper.*; import com.cdzy.ebikeoperate.mapper.*;
import com.cdzy.ebikeoperate.model.dto.request.*; 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.model.pojo.*;
import com.cdzy.ebikeoperate.service.EbikeComponentService; import com.cdzy.ebikeoperate.service.EbikeComponentService;
import com.ebike.feign.clients.StaffFeignClient; import com.ebike.feign.clients.StaffFeignClient;
@ -19,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; 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.EbikeEcuEnterRecordsTableDef.EBIKE_ECU_ENTER_RECORDS;
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeEcuOutRecordsTableDef.EBIKE_ECU_OUT_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.setOrgId(orgId);
ebikeComponentEnterRecords.setComponentType(params.getComponentType()); ebikeComponentEnterRecords.setComponentType(params.getComponentType());
ebikeComponentEnterRecords.setEnterQuantity(params.getEnterQuantity()); ebikeComponentEnterRecords.setEnterQuantity(params.getEnterQuantity());
ebikeComponentEnterRecords.setComponentOutRecordId(params.getComponentOutRecordId());
ebikeComponentEnterRecords.setComponentPrice(ebikeComponentTypeInfo.getPrice()); ebikeComponentEnterRecords.setComponentPrice(ebikeComponentTypeInfo.getPrice());
ebikeComponentEnterRecords.setState(stockInType == 1 ? "1" : "0"); // 暂存为 0 入库为1 ebikeComponentEnterRecords.setState(stockInType == 1 ? "1" : "0"); // 暂存为 0 入库为1
return ebikeComponentEnterRecords; return ebikeComponentEnterRecords;
@ -232,9 +235,9 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
//入库记录更新数量 type 1 入库 2 出库 //入库记录更新数量 type 1 入库 2 出库
private void updateInventoryCount(EbikeComponentTypeInfo ebikeComponentTypeInfo, Long orgId, int size, Integer type) { private void updateInventoryCount(EbikeComponentTypeInfo ebikeComponentTypeInfo, Long orgId, int size, Integer type) {
QueryWrapper query1 = new QueryWrapper(); QueryWrapper query = new QueryWrapper();
query1.eq("code", ebikeComponentTypeInfo.getId()); query.eq("code", ebikeComponentTypeInfo.getId());
EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query1); EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query);
if (ebikeComponentInventorycount == null) { if (ebikeComponentInventorycount == null) {
ebikeComponentInventorycount = new EbikeComponentInventorycount(); ebikeComponentInventorycount = new EbikeComponentInventorycount();
ebikeComponentInventorycount.setOrgId(orgId); ebikeComponentInventorycount.setOrgId(orgId);
@ -243,7 +246,6 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
ebikeComponentInventorycount.setBrand(ebikeComponentTypeInfo.getBrand()); ebikeComponentInventorycount.setBrand(ebikeComponentTypeInfo.getBrand());
ebikeComponentInventorycount.setUnit(ebikeComponentTypeInfo.getUnit()); ebikeComponentInventorycount.setUnit(ebikeComponentTypeInfo.getUnit());
ebikeComponentInventorycount.setPrice(ebikeComponentTypeInfo.getPrice()); ebikeComponentInventorycount.setPrice(ebikeComponentTypeInfo.getPrice());
ebikeComponentInventorycount.setCount(size);
ebikeComponentInventorycountMapper.insert(ebikeComponentInventorycount); ebikeComponentInventorycountMapper.insert(ebikeComponentInventorycount);
} else { } else {
if (type == 1) {//入库 if (type == 1) {//入库
@ -413,7 +415,7 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
Integer count = ebikeComponentInventorycount.getCount(); Integer count = ebikeComponentInventorycount.getCount();
String name = ebikeComponentInventorycount.getName(); String name = ebikeComponentInventorycount.getName();
// String brand = ebikeComponentInventorycount.getBrand(); // String brand = ebikeComponentInventorycount.getBrand();
if (count < outQuantity) { if (stockInType ==1 && count < outQuantity) {
return JsonResult.failed(String.format("%s 的库存数量不足!剩余数量:%s", name, count)); return JsonResult.failed(String.format("%s 的库存数量不足!剩余数量:%s", name, count));
} }
// 获取或新增部件记录 // 获取或新增部件记录
@ -631,18 +633,6 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
int size = ebikeEcuOutRecords.size(); int size = ebikeEcuOutRecords.size();
updateOtherOutComponentStock(componentType, 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入库记录 * 分页查询Ecu入库记录
* *
@ -673,6 +663,30 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
Page<EbikeEcuOutRecords> page = reqEbikeEcuOutRecordsDto.getPageParam().getPage(); Page<EbikeEcuOutRecords> page = reqEbikeEcuOutRecordsDto.getPageParam().getPage();
return ebikeEcuOutRecordsMapper.paginate(page, query); 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();
}
} }