From 5de7d78bc629f316749b9e11b9c6113d5e0d0b8f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 27 三月 2025 11:20:23 +0800
Subject: [PATCH] 新增站点初始化功能
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeviceSiteService.java | 2
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeviceSiteController.java | 15 +++++
rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java | 8 ++
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/DeviceSiteParame.java | 31 ++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java | 49 ++++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/DeviceSite.java | 48 +++++++++++++--
6 files changed, 146 insertions(+), 7 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeviceSiteController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeviceSiteController.java
index b3da571..bc4524a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeviceSiteController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeviceSiteController.java
@@ -4,14 +4,18 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
+import com.vincent.rsf.server.manager.controller.params.DeviceSiteParame;
import com.vincent.rsf.server.manager.entity.DeviceSite;
import com.vincent.rsf.server.manager.service.DeviceSiteService;
import com.vincent.rsf.server.system.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -20,6 +24,7 @@
import java.util.*;
@RestController
+@Api(tags = "绔欑偣绠$悊")
public class DeviceSiteController extends BaseController {
@Autowired
@@ -107,4 +112,14 @@
ExcelUtil.build(ExcelUtil.create(deviceSiteService.list(), DeviceSite.class), response);
}
+ @PreAuthorize("hasAuthority('manager:deviceSite:save')")
+ @ApiOperation("绔欑偣鍒濆鍖�")
+ @PostMapping("/deviceSite/init")
+ public R initDeviceSite(@RequestBody DeviceSiteParame param) {
+ if (Objects.isNull(param)) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ return R.ok(deviceSiteService.initSites(param));
+ }
+
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/DeviceSiteParame.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/DeviceSiteParame.java
new file mode 100644
index 0000000..0563c68
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/DeviceSiteParame.java
@@ -0,0 +1,31 @@
+package com.vincent.rsf.server.manager.controller.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+public class DeviceSiteParame {
+
+ @ApiModelProperty("鏄惁鍒濆鍖�")
+ private Integer flagInit;
+
+ @ApiModelProperty("璁惧绫诲瀷")
+ private String deviceType;
+
+ @ApiModelProperty("浣滀笟绫诲瀷")
+ private List<Long> typeIds;
+
+ @ApiModelProperty("浣滀笟绔欑偣")
+ private List<String> sites;
+
+ @ApiModelProperty("璁惧缂栧彿")
+ private String deviceCode;
+
+ @ApiModelProperty("璁惧浣滀笟绔欑偣")
+ private List<String> deviceSites;
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/DeviceSite.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/DeviceSite.java
index 54bb6f8..d2a1173 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/DeviceSite.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/DeviceSite.java
@@ -1,16 +1,23 @@
package com.vincent.rsf.server.manager.entity;
-import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.text.SimpleDateFormat;
-import java.util.Date;
+import java.util.*;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.server.manager.service.LocTypeService;
+import com.vincent.rsf.server.system.constant.DictTypeCode;
+import com.vincent.rsf.server.system.entity.DictData;
+import com.vincent.rsf.server.system.entity.DictType;
+import com.vincent.rsf.server.system.service.DictDataService;
+import lombok.experimental.Accessors;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -20,8 +27,10 @@
import com.vincent.rsf.server.system.entity.User;
import java.io.Serializable;
import java.util.Date;
+import java.util.stream.Collectors;
@Data
+@Accessors(chain = true)
@TableName("man_device_site")
public class DeviceSite implements Serializable {
@@ -38,7 +47,7 @@
* 鍏ュ嚭搴撶被鍨�
*/
@ApiModelProperty(value= "鍏ュ嚭搴撶被鍨�")
- private Integer type;
+ private String type;
/**
* 绔欑偣缂栧彿
@@ -127,6 +136,12 @@
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
+
+ /**
+ * 浣滀笟绫诲瀷
+ */
+ @TableField(exist = false)
+ private String typeIds;
/**
* 澶囨敞
*/
@@ -135,7 +150,7 @@
public DeviceSite() {}
- public DeviceSite(Integer type,String site,String name,String wcsCode,String label,String device,String deviceCode,String deviceSite,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
+ public DeviceSite(String type,String site,String name,String wcsCode,String label,String device,String deviceCode,String deviceSite,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
this.type = type;
this.site = site;
this.name = name;
@@ -173,6 +188,25 @@
// null // 澶囨敞
// );
+ public String getType$(){
+ if (null == this.type){ return null; }
+ String[] split = this.type.split(",");
+ List<String> asList = Arrays.asList(split);
+ if (asList.isEmpty()) {
+ return null;
+ }
+ DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
+ List<DictData> dictDatas = dictDataService.list(new LambdaQueryWrapper<DictData>()
+ .eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_TASK_TYPE)
+ .in(DictData::getId, asList));
+ if (dictDatas.isEmpty()) {
+ return null;
+ }
+ List<String> strings = dictDatas.stream().map(DictData::getLabel).collect(Collectors.toList());
+
+ return StringUtils.join(strings, ",");
+ }
+
public String getStatus$(){
if (null == this.status){ return null; }
switch (this.status){
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeviceSiteService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeviceSiteService.java
index 9bf943c..5bb3ef3 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeviceSiteService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeviceSiteService.java
@@ -1,8 +1,10 @@
package com.vincent.rsf.server.manager.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.vincent.rsf.server.manager.controller.params.DeviceSiteParame;
import com.vincent.rsf.server.manager.entity.DeviceSite;
public interface DeviceSiteService extends IService<DeviceSite> {
+ boolean initSites(DeviceSiteParame param);
}
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..9328ef1 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,61 @@
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.mapper.DeviceSiteMapper;
import com.vincent.rsf.server.manager.entity.DeviceSite;
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.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 {
+ /**
+ * 鍒濆鍖栫珯鐐�
+ * @param param
+ * @return
+ */
+ @Override
+ public boolean initSites(DeviceSiteParame param) {
+ if (param.getFlagInit() == 1) {
+ if (!this.remove(new LambdaQueryWrapper<>())) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 鍒犻櫎绔欑偣澶辫触锛侊紒");
+ }
+ }
+ if (Objects.isNull(param.getDeviceSites()) || param.getDeviceSites().isEmpty()) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 璁惧浣滀笟绔欑偣涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(param.getSites()) || param.getSites().isEmpty()) {
+ throw new CoolException("鍒濆鍖栧け璐�: 浣滀笟绔欑偣涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(param.getTypeIds()) || param.getTypeIds().isEmpty()) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 浣滀笟绫诲瀷涓嶈兘涓虹┖锛侊紒");
+ }
+ List<DeviceSite> deviceSites = new ArrayList<>();
+ for (String site : param.getSites()) {
+ for (String deviceSite : param.getDeviceSites()) {
+ for (Long id : param.getTypeIds()) {
+ DeviceSite site1 = new DeviceSite();
+ site1.setType(id + "")
+ .setSite(site)
+ .setDevice(param.getDeviceType())
+ .setDeviceSite(deviceSite)
+ .setDeviceCode(param.getDeviceCode());
+ deviceSites.add(site1);
+ }
+ }
+ }
+ if (!this.saveBatch(deviceSites)) {
+ throw new CoolException("鍒濆鍖栧け璐ワ細 鏁版嵁淇濆瓨澶辫触锛侊紒");
+ }
+ return true;
+ }
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
index 5791882..00a24a1 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
@@ -9,6 +9,14 @@
*/
public class DictTypeCode {
+ /**
+ * 浼佷笟绫诲瀷
+ */
public final static String DICT_COMPANY_TYPE = "sys_companys_type";
+ /**
+ * 浠诲姟绫诲瀷
+ */
+ public final static String DICT_SYS_TASK_TYPE = "sys_task_type";
+
}
--
Gitblit v1.9.1