diff --git a/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeEcuInfoController.java b/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeEcuInfoController.java index 5851c69..98d4c1f 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeEcuInfoController.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeEcuInfoController.java @@ -3,6 +3,7 @@ package com.cdzy.operations.controller; import com.cdzy.common.model.request.PageParam; import com.cdzy.common.model.response.JsonResult; import com.cdzy.operations.model.entity.EbikeEcuInfo; +import com.cdzy.operations.model.vo.EbikeEcuInfoBatchVo; import com.cdzy.operations.model.vo.EbikeEcuInfoVo; import com.cdzy.operations.service.EbikeEcuInfoService; import com.mybatisflex.core.paginate.Page; @@ -38,6 +39,18 @@ public class EbikeEcuInfoController { return JsonResult.success(); } + /** + * 批量入库。 + * + * @param batchVo 中控信息 + * @return {@code true} 添加成功,{@code false} 添加失败 + */ + @PostMapping("batchSave") + public JsonResult batchSave(@Validated @RequestBody EbikeEcuInfoBatchVo batchVo) { + ebikeEcuInfoService.batchSave(batchVo); + return JsonResult.success(); + } + /** * 根据主键删除中控基本信息。 * diff --git a/ebike-operations/src/main/java/com/cdzy/operations/model/vo/EbikeEcuInfoBatchVo.java b/ebike-operations/src/main/java/com/cdzy/operations/model/vo/EbikeEcuInfoBatchVo.java new file mode 100644 index 0000000..73c5c11 --- /dev/null +++ b/ebike-operations/src/main/java/com/cdzy/operations/model/vo/EbikeEcuInfoBatchVo.java @@ -0,0 +1,54 @@ +package com.cdzy.operations.model.vo; + +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * 中控基本信息 实体类。 + * + * @author attiya + * @since 2025-09-15 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EbikeEcuInfoBatchVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + /** + * 运营商ID + */ + @NotNull(message = "运营商ID不能为空") + private Long operatorId; + + /** + * 中控编号 + */ + @NotNull(message = "中控编号不能为空") + private List ecuCodes; + + /** + * 中控SN码 + */ + @NotNull(message = "中控SN码不能为空") + private List ecuSns; + + /** + * 中控品牌 + */ + @NotNull(message = "中控品牌不能为空") + private Integer ecuBrand; + + +} diff --git a/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeEcuInfoService.java b/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeEcuInfoService.java index 797c8e4..c7d88ce 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeEcuInfoService.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/service/EbikeEcuInfoService.java @@ -1,5 +1,6 @@ package com.cdzy.operations.service; +import com.cdzy.operations.model.vo.EbikeEcuInfoBatchVo; import com.cdzy.operations.model.vo.EbikeEcuInfoVo; import com.mybatisflex.core.service.IService; import com.cdzy.operations.model.entity.EbikeEcuInfo; @@ -12,5 +13,15 @@ import com.cdzy.operations.model.entity.EbikeEcuInfo; */ public interface EbikeEcuInfoService extends IService { + /** + * 中控入库 + * @param ebikeEcuInfo 中控信息 + */ void saveEcu(EbikeEcuInfoVo ebikeEcuInfo); + + /** + * 批量入库 + * @param batchVo 入库信息 + */ + void batchSave(EbikeEcuInfoBatchVo batchVo); } diff --git a/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeEcuInfoServiceImpl.java b/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeEcuInfoServiceImpl.java index 73a5508..c5e2d42 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeEcuInfoServiceImpl.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/service/impl/EbikeEcuInfoServiceImpl.java @@ -1,6 +1,8 @@ package com.cdzy.operations.service.impl; import cn.dev33.satoken.stp.StpUtil; +import com.cdzy.common.ex.EbikeException; +import com.cdzy.operations.model.vo.EbikeEcuInfoBatchVo; import com.cdzy.operations.model.vo.EbikeEcuInfoVo; import com.mybatisflex.spring.service.impl.ServiceImpl; import com.cdzy.operations.model.entity.EbikeEcuInfo; @@ -9,6 +11,9 @@ import com.cdzy.operations.service.EbikeEcuInfoService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** * 中控基本信息 服务层实现。 * @@ -32,4 +37,27 @@ public class EbikeEcuInfoServiceImpl extends ServiceImpl ecuCodes = batchVo.getEcuCodes(); + List ecuSns = batchVo.getEcuSns(); + if (ecuCodes.size() != ecuSns.size()) { + throw new EbikeException("中控编号与中控SN码数量不对应"); + } + List list = new ArrayList<>(); + for (int i = 0; i < ecuCodes.size(); i++) { + EbikeEcuInfo ebikeEcuInfoEntity = EbikeEcuInfo.builder() + .operatorId(operatorId) + .ecuCode(ecuCodes.get(i)) + .ecuSn(ecuSns.get(i)) + .ecuBrand(ecuBrand) + .createdBy(StpUtil.getLoginIdAsLong()) + .build(); + list.add(ebikeEcuInfoEntity); + } + saveBatch(list); + } }