From bb4b3712b412489eca665aa4d9f2bd5a6c275223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=9C=B1?= <2671189764@qq.com> Date: Thu, 22 May 2025 17:36:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E4=BB=B6=EF=BC=88=E5=87=BA=E5=BA=93?= =?UTF-8?q?=EF=BC=8C=E4=BD=9C=E5=BA=9F=20=EF=BC=8C=E5=8F=96=E6=B6=88?= =?UTF-8?q?=EF=BC=89=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ebikemaintenance/enums/EbikeStatus.java | 13 ++ .../impl/EbikeBikeInfoServiceImpl.java | 9 ++ .../controller/EbikeComponentController.java | 18 +++ .../service/EbikeComponentService.java | 18 ++- .../impl/EbikeComponentServiceImpl.java | 113 ++++++++++++++++++ 5 files changed, 169 insertions(+), 2 deletions(-) create mode 100644 ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/enums/EbikeStatus.java diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/enums/EbikeStatus.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/enums/EbikeStatus.java new file mode 100644 index 00000000..8029ddb0 --- /dev/null +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/enums/EbikeStatus.java @@ -0,0 +1,13 @@ +package com.cdzy.ebikemaintenance.enums; + +public interface EbikeStatus { + String WAITING_FOR_SHIPMENT = "0"; // 待出库 + String SHIPPED_WAITING_TO_BE_DELIVERED = "1"; // 已出库,待投放 + String WAITING_TO_USE = "2"; // 待使用 + String RIDING = "3"; // 骑行中 + String WAITING_FOR_REPAIR = "4"; // 待维修 + String REPAIRING = "5"; // 维修中 + String SCRAPPED = "6"; // 报废 +} + + diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java index 8272ff5d..1586cc50 100644 --- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.cdzy.common.model.PageParam; import com.cdzy.common.model.ResGPSDto; import com.cdzy.common.utils.CoordinateUtil; import com.cdzy.ebikemaintenance.controller.EbikeInfoCoreController; +import com.cdzy.ebikemaintenance.enums.EbikeStatus; import com.cdzy.ebikemaintenance.mapper.*; import com.cdzy.ebikemaintenance.model.dto.request.*; import com.cdzy.ebikemaintenance.model.dto.response.*; @@ -411,6 +412,14 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl{}", e.getMessage() + Arrays.toString(e.getStackTrace())); 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 84ad8ad3..75602cb7 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 @@ -58,4 +58,22 @@ public class EbikeComponentController { return ebikeComponentService.ComponentInventoryOutbound(params); } + /** + * 设备部件出库取消(通用) + * @param componentOutRecordId + * @return + */ + @GetMapping("/cancelOutDevicePart") + public JsonResult cancelOutDevicePart(@RequestParam(name = "componentOutRecordId") String componentOutRecordId) { + return ebikeComponentService.cancelOutDevicePart(componentOutRecordId); + } + /** + * 设备部件出库作废 (通用 + * @param componentOutRecordId + * @return + */ + @GetMapping("/invalidateOutDevicePart") + public JsonResult invalidateOutDevicePart(@RequestParam(name="componentOutRecordId")String componentOutRecordId) { + return ebikeComponentService.invalidateOutDevicePart(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 a6f4eb4f..743cb529 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 @@ -21,13 +21,13 @@ public interface EbikeComponentService { */ JsonResult ecuStorageSave(ReqComponentEnterRecordDto params); - /*** + /** * 设备部件作废接口 (通用 * @param componentEnterRecordId * @return */ JsonResult invalidateDevicePart(String componentEnterRecordId); - /*** + /** * 设备部件取消接口(通用) * @param componentEnterRecordId * @return @@ -41,4 +41,18 @@ public interface EbikeComponentService { */ JsonResult ComponentInventoryOutbound(ReqComponentOutRecordDto params); + /** + * 设备部件出库取消(通用) + * @param componentOutRecordId + * @return + */ + JsonResult cancelOutDevicePart(String componentOutRecordId); + + + /** + * 设备部件出库作废 (通用 + * @param componentOutRecordId + * @return + */ + JsonResult invalidateOutDevicePart(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 0e2f9163..d902a044 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 @@ -362,6 +362,22 @@ public class EbikeComponentServiceImpl implements EbikeComponentService { ebikeComponentInventorycountMapper.update(ebikeComponentInventorycount); } } + + /** + * 出库作废增加部件数量 + * @param componentType + * @param size + */ + private void updateOtherOutComponentStock(String componentType,Integer size) { + // 具体更新其他组件仓库总数量的逻辑 + QueryWrapper query1 = new QueryWrapper(); + query1.eq("code", componentType); + EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query1); + if(ebikeComponentInventorycount !=null){ + ebikeComponentInventorycount.setCount(ebikeComponentInventorycount.getCount()+size); + ebikeComponentInventorycountMapper.update(ebikeComponentInventorycount); + } + } /** * 部件出库(出库,暂存) (stockInType 0或空 表示暂存,1 表示入库。 * @param params @@ -498,6 +514,103 @@ public class EbikeComponentServiceImpl implements EbikeComponentService { } } } + /** + * 设备部件出库取消(通用) + * @param componentOutRecordId + * @return + */ + @Override + public JsonResult cancelOutDevicePart(String componentOutRecordId){ + QueryWrapper query = new QueryWrapper(); + query.eq("component_out_record_id", componentOutRecordId); + EbikeComponentOutRecords ebikeComponentOutRecords = ebikeComponentOutRecordsMapper.selectOneByQuery(query); + //先更新记录表状态 为已取消(-1) + ebikeComponentOutRecords.setState("-1"); + ebikeComponentOutRecordsMapper.update(ebikeComponentOutRecords); + return JsonResult.success("成功"); + } + /** + * 设备部件出库作废 (通用 + * @param componentOutRecordId + * @return + */ + @Override + @Transactional + public JsonResult invalidateOutDevicePart(String componentOutRecordId){ + QueryWrapper query = new QueryWrapper(); + query.eq("component_out_record_id", componentOutRecordId); + EbikeComponentOutRecords ebikeComponentOutRecords = ebikeComponentOutRecordsMapper.selectOneByQuery(query); + String componentType = ebikeComponentOutRecords.getComponentType(); + Integer enterQuantity = ebikeComponentOutRecords.getEnterQuantity(); + // 电池262711452730000 头盔262711452730001 中控262711452730008 需要单独操作明细表 + //先更新记录表状态 为已作废(-2) + ebikeComponentOutRecords.setState("-2"); + ebikeComponentOutRecordsMapper.update(ebikeComponentOutRecords); + ComponentType componentTypeEnum = ComponentType.fromCode(componentType); + switch (componentTypeEnum) { + case BATTERY: // 电池 + updateBatteryOutDetails(componentOutRecordId, componentType, -2); + break; + case HELMET: // 头盔 + updateHelmetOutDetails(componentOutRecordId, componentType, -2); + break; + case ECU: // 中控 + updateCentralControlOutDetails(componentOutRecordId, componentType, -2); + break; + default: // 其他 + updateOtherComponentStock(componentType, enterQuantity); + break; + } + return JsonResult.success("成功"); + } + private void updateBatteryOutDetails(String componentOutRecordId,String componentType,Integer state) { + // 具体更新电池仓库明细状态和仓库总数量的逻辑 + QueryWrapper query = new QueryWrapper(); + query.eq("component_out_record_id", componentOutRecordId); + List ebikeBatteryOutRecords = ebikeBatteryOutRecordsMapper.selectListWithRelationsByQuery(query); + for(EbikeBatteryOutRecords record:ebikeBatteryOutRecords){ + query = new QueryWrapper(); + query.eq("item_code", record.getBatteryCode()); + EbikeComponentInventory ebikeComponentInventory = ebikeComponentInventoryMapper.selectOneByQuery(query); + ebikeComponentInventory.setState(state); + ebikeComponentInventoryMapper.update(ebikeComponentInventory); + } + int size = ebikeBatteryOutRecords.size(); + updateOtherOutComponentStock(componentType,size); + } + + private void updateHelmetOutDetails(String componentOutRecordId,String componentType,Integer state) { + // 具体更新头盔仓库明细状态和仓库总数量的逻辑 + QueryWrapper query = new QueryWrapper(); + query.eq("component_out_record_id", componentOutRecordId); + + List ebikeHelmetOutRecords = ebikeHelmetOutRecordsMapper.selectListWithRelationsByQuery(query); + for(EbikeHelmetOutRecords record:ebikeHelmetOutRecords){ + query = new QueryWrapper(); + query.eq("item_code", record.getHelmetCode()); + EbikeComponentInventory ebikeComponentInventory = ebikeComponentInventoryMapper.selectOneByQuery(query); + ebikeComponentInventory.setState(state); + ebikeComponentInventoryMapper.update(ebikeComponentInventory); + } + int size = ebikeHelmetOutRecords.size(); + updateOtherOutComponentStock(componentType,size); + } + private void updateCentralControlOutDetails(String componentOutRecordId,String componentType,Integer state) { + // 具体更新中控仓库明细状态和仓库总数量的逻辑 + QueryWrapper query = new QueryWrapper(); + query.eq("component_out_record_id", componentOutRecordId); + List ebikeEcuOutRecords = ebikeEcuOutRecordsMapper.selectListWithRelationsByQuery(query); + for(EbikeEcuOutRecords record:ebikeEcuOutRecords){ + query = new QueryWrapper(); + query.eq("item_code", record.getEcuSn()); + query.eq("serial_number", record.getEcuCode()); + EbikeComponentInventory ebikeComponentInventory = ebikeComponentInventoryMapper.selectOneByQuery(query); + ebikeComponentInventory.setState(state); + ebikeComponentInventoryMapper.update(ebikeComponentInventory); + } + int size = ebikeEcuOutRecords.size(); + updateOtherOutComponentStock(componentType,size); + } public StaffFeign getStaffFeignInfo() { String tokenValue = StpUtil.getTokenValue(); // 调用 Feign 客户端获取用户信息