From c9129438aec203c18259c43021eee98b3f5877a2 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 14:40:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=92=E8=BF=98=E6=97=B6=E5=80=99=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=87=BA=E5=BA=93Id=EF=BC=8C=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E9=83=A8=E4=BB=B6=E5=87=BA=E5=BA=93=E8=AE=B0=E5=BD=95=E8=A1=A8?= =?UTF-8?q?=E4=B8=BB=E9=94=AE=EF=BC=8C=E6=9F=A5=E8=AF=A2=E9=83=A8=E4=BB=B6?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E8=AE=B0=E5=BD=95=E4=BF=A1=E6=81=AF=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=BD=92=E8=BF=98=E9=83=A8=E4=BB=B6=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EbikeComponentController.java | 13 ++++ .../request/ReqComponentEnterRecordDto.java | 5 ++ .../dto/request/ReqComponentOutRecordDto.java | 10 +-- .../ResComponentOutRecordInfoDto.java | 67 +++++++++++++++++++ .../pojo/EbikeComponentEnterRecords.java | 4 ++ .../service/EbikeComponentService.java | 8 +++ .../impl/EbikeComponentServiceImpl.java | 48 ++++++++----- 7 files changed, 133 insertions(+), 22 deletions(-) create mode 100644 ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/response/ResComponentOutRecordInfoDto.java diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeComponentController.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeComponentController.java index a57581ed..12f34d4a 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeComponentController.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeComponentController.java @@ -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 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); + + } } diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqComponentEnterRecordDto.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqComponentEnterRecordDto.java index 316aaf12..bb0ffd7c 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqComponentEnterRecordDto.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqComponentEnterRecordDto.java @@ -30,6 +30,11 @@ public class ReqComponentEnterRecordDto { */ private String owningRegion; + /** + * 关联出库记录Id 表示归还记录 + */ + private String componentOutRecordId; + /** * 部件类型ID,表示部件的类别(如电池、ECU等,部件的编号)。 */ diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqComponentOutRecordDto.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqComponentOutRecordDto.java index 2d261aa3..db911e27 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqComponentOutRecordDto.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/request/ReqComponentOutRecordDto.java @@ -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; /** - * 头盔信息列表,包含所有头盔部件的入库记录。 + * 头盔信息列表,包含所有头盔部件的出库记录。 */ private List ebikeHelmetOutRecords; /** - * 电池信息列表,包含所有电池部件的入库记录。 + * 电池信息列表,包含所有电池部件的出库记录。 */ private List ebikeBatteryOutRecords; } diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/response/ResComponentOutRecordInfoDto.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/response/ResComponentOutRecordInfoDto.java new file mode 100644 index 00000000..ed8382c0 --- /dev/null +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/dto/response/ResComponentOutRecordInfoDto.java @@ -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; + + /** + * 头盔信息列表,包含所有头盔部件的出库记录。 + */ + private List ebikeHelmetOutRecords; + + /** + * 电池信息列表,包含所有电池部件的出库记录。 + */ + private List ebikeBatteryOutRecords; + /** + * 中控信息列表,包含所有ECU部件的归还记录。 + */ + private List ebikeEcuEnterRecords; + + /** + * 头盔信息列表,包含所有头盔部件的归还记录。 + */ + private List ebikeHelmetEnterRecords; + + /** + * 电池信息列表,包含所有电池部件的归还记录。 + */ + private List ebikeBatteryEnterRecords; + +} diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/pojo/EbikeComponentEnterRecords.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/pojo/EbikeComponentEnterRecords.java index e80ad990..21381c2b 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/pojo/EbikeComponentEnterRecords.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/model/pojo/EbikeComponentEnterRecords.java @@ -41,6 +41,10 @@ public class EbikeComponentEnterRecords implements Serializable { */ private Long orgId; + /** + * 关联出库记录Id 表示归还记录 + */ + private String componentOutRecordId; /** * 所属区域 */ diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/EbikeComponentService.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/EbikeComponentService.java index b9475cbc..647b015c 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/EbikeComponentService.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/EbikeComponentService.java @@ -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 ecuOutList(ReqEbikeEcuOutRecordsDto reqEbikeEcuOutRecordsDto); + /** + * 根据部件出库记录表主键,查询部件出库记录信息以及归还部件信息 + * + * @param componentOutRecordId 部件出库记录ID + * @return ResComponentOutRecordInfoDto + */ + JsonResult getComponentOutRecordInfo(String componentOutRecordId); } \ No newline at end of file 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 08278a1b..b7b71401 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 @@ -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 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 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 result = staffFeignClient.getInfoByToken(tokenValue); + // 判断返回码,若失败则抛出异常 + if (result.getCode() != Code.SUCCESS) { + throw new RuntimeException("获取用户信息失败"); + } + // 返回获取到的 StaffFeign 数据 + return result.getData(); + } }