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 客户端获取用户信息