From 9fe1ec3afe8696c628d076d1f76686c4efc3012e Mon Sep 17 00:00:00 2001
From: zc <zyzc>
Date: 星期二, 21 十月 2025 10:49:55 +0800
Subject: [PATCH] 容器初始化功能优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java | 78 +++++++++++++++++++++++++++++++++++++++
1 files changed, 78 insertions(+), 0 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java
index e19660b..ac8e42a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java
@@ -1,12 +1,90 @@
package com.vincent.rsf.server.manager.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.manager.controller.params.DeviceSiteParame;
+import com.vincent.rsf.server.manager.entity.BasStation;
import com.vincent.rsf.server.manager.mapper.DeviceSiteMapper;
import com.vincent.rsf.server.manager.entity.DeviceSite;
+import com.vincent.rsf.server.manager.service.BasStationService;
import com.vincent.rsf.server.manager.service.DeviceSiteService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
@Service("deviceSiteService")
public class DeviceSiteServiceImpl extends ServiceImpl<DeviceSiteMapper, DeviceSite> implements DeviceSiteService {
+ @Autowired
+ private BasStationService basStationService;
+
+
+ /**
+ * 鍒濆鍖栫珯鐐�
+ * @param param
+ * @return
+ */
+ @Override
+ public boolean initSites(DeviceSiteParame param) {
+ if (param.getFlagInit() == 1) {
+ List<DeviceSite> list = this.list(new LambdaQueryWrapper<DeviceSite>().select(DeviceSite::getId).last("limit 1"));
+ if (!list.isEmpty()) {
+ if (!this.remove(new LambdaQueryWrapper<>())) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 鍒犻櫎绔欑偣澶辫触锛侊紒");
+ }
+ }
+ }
+ if (Objects.isNull(param.getDeviceSites()) || StringUtils.isBlank(param.getDeviceSites())) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 璁惧浣滀笟绔欑偣涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(param.getSite()) || StringUtils.isBlank(param.getSite())) {
+ throw new CoolException("鍒濆鍖栧け璐�: 浣滀笟绔欑偣涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(param.getTypeIds()) || param.getTypeIds().isEmpty()) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 浣滀笟绫诲瀷涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(param.getTarget()) || param.getTarget().isEmpty()) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 鐩爣绔欑偣涓嶈兘涓虹┖锛侊紒");
+ }
+ List<String> sites = Arrays.asList(StringUtils.split(param.getSite(), ","));
+ List<String> dvSites = Arrays.asList(StringUtils.split(param.getDeviceSites(), ","));
+ List<String> targets = Arrays.asList(StringUtils.split(param.getTarget(), ","));
+ List<DeviceSite> deviceSites = new ArrayList<>();
+ for (String site : sites) {
+ BasStation basStation = basStationService.getById(site);
+ if (null == basStation) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 绔欑偣鏈壘鍒帮紒锛�");
+ }
+ for (String deviceSite : dvSites) {
+ BasStation basStation2 = basStationService.getById(deviceSite);
+ if (null == basStation2) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 浣滀笟绔欑偣鏈壘鍒帮紒锛�");
+ }
+ for (Long id : param.getTypeIds()) {
+ for (String target : targets) {
+ DeviceSite site1 = new DeviceSite();
+ site1.setType(id + "")
+ .setSite(basStation.getStationName())
+ .setDevice(param.getDeviceType())
+ .setDeviceSite(basStation2.getStationName())
+ .setTarget(target)
+ .setDeviceCode(param.getDeviceCode())
+ .setChannel(param.getChannel())
+ ;
+ deviceSites.add(site1);
+ }
+ }
+ }
+ }
+ if (!this.saveBatch(deviceSites)) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 鏁版嵁淇濆瓨澶辫触锛侊紒");
+ }
+ return true;
+ }
}
--
Gitblit v1.9.1