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