Browse Source

设备模块引入路由设置02

qiangxuan 7 months ago
parent
commit
5506861e0b
49 changed files with 3176 additions and 0 deletions
  1. 308 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/controller/DeviceInformationController.java
  2. 162 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/controller/DeviceRegionController.java
  3. 152 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/entity/DeviceInformation.java
  4. 65 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/entity/DeviceRegion.java
  5. 14 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/mapper/DeviceInformationMapper.java
  6. 14 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/mapper/DeviceRegionMapper.java
  7. 5 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/mapper/xml/DeviceInformationMapper.xml
  8. 5 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/mapper/xml/DeviceRegionMapper.xml
  9. 14 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/service/IDeviceInformationService.java
  10. 14 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/service/IDeviceRegionService.java
  11. 19 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/service/impl/DeviceInformationServiceImpl.java
  12. 19 0
      zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/service/impl/DeviceRegionServiceImpl.java
  13. 308 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/controller/DeviceInformationController.java
  14. 162 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/controller/DeviceRegionController.java
  15. 152 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/entity/DeviceInformation.java
  16. 65 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/entity/DeviceRegion.java
  17. 14 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/mapper/DeviceInformationMapper.java
  18. 15 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/mapper/DeviceRegionMapper.java
  19. 5 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/mapper/xml/DeviceInformationMapper.xml
  20. 5 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/mapper/xml/DeviceRegionMapper.xml
  21. 14 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/service/IDeviceInformationService.java
  22. 14 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/service/IDeviceRegionService.java
  23. 19 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/service/impl/DeviceInformationServiceImpl.java
  24. 19 0
      zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/service/impl/DeviceRegionServiceImpl.java
  25. 308 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/controller/DeviceInformationController.java
  26. 162 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/controller/DeviceRegionController.java
  27. 152 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/entity/DeviceInformation.java
  28. 65 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/entity/DeviceRegion.java
  29. 14 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/mapper/DeviceInformationLesmMapper.java
  30. 15 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/mapper/DeviceRegionMapper.java
  31. 5 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/mapper/xml/DeviceInformationMapper.xml
  32. 5 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/mapper/xml/DeviceRegionMapper.xml
  33. 14 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/IDeviceInformationService.java
  34. 15 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/IDeviceRegionService.java
  35. 19 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/impl/DeviceInformationServiceImpl.java
  36. 19 0
      zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/impl/DeviceRegionServiceImpl.java
  37. 308 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/controller/DeviceInformationController.java
  38. 162 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/controller/DeviceRegionController.java
  39. 152 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/entity/DeviceInformation.java
  40. 65 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/entity/DeviceRegion.java
  41. 14 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/mapper/DeviceInformationMapper.java
  42. 14 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/mapper/DeviceRegionMapper.java
  43. 5 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/mapper/xml/DeviceInformationMapper.xml
  44. 5 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/mapper/xml/DeviceRegionMapper.xml
  45. 14 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/service/IDeviceInformationService.java
  46. 14 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/service/IDeviceRegionService.java
  47. 19 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/service/impl/DeviceInformationServiceImpl.java
  48. 19 0
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/service/impl/DeviceRegionServiceImpl.java
  49. 9 0
      zgztBus/jeecg-server-cloud/jeecg-cloud-nacos/docs/config/jeecg-gateway-router.json

+ 308 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/controller/DeviceInformationController.java

@@ -0,0 +1,308 @@
+package org.jeecg.modules.deviceCcm.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.deviceCcm.entity.DeviceInformation;
+import org.jeecg.modules.deviceCcm.entity.DeviceRegion;
+import org.jeecg.modules.deviceCcm.service.IDeviceInformationService;
+import org.jeecg.modules.deviceCcm.service.IDeviceRegionService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+
+ /**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Api(tags="设备管理信息表")
+@RestController
+@RequestMapping("/device/deviceInformation")
+@Slf4j
+public class DeviceInformationController extends JeecgController<DeviceInformation, IDeviceInformationService> {
+	@Autowired
+	private IDeviceInformationService deviceInformationService;
+	@Autowired
+	private IDeviceRegionService deviceRegionService;
+
+	/**
+	 * 分页列表查询
+	 *
+	 * @param deviceInformation
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "设备管理信息表-分页列表查询")
+	@ApiOperation(value="设备管理信息表-分页列表查询", notes="设备管理信息表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<DeviceInformation>> queryPageList(DeviceInformation deviceInformation,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<DeviceInformation> queryWrapper = QueryGenerator.initQueryWrapper(deviceInformation, req.getParameterMap());
+		Page<DeviceInformation> page = new Page<DeviceInformation>(pageNo, pageSize);
+		IPage<DeviceInformation> pageList = deviceInformationService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param deviceInformation
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-添加")
+	@ApiOperation(value="设备管理信息表-添加", notes="设备管理信息表-添加")
+//	@RequiresPermissions("device:device_information:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody DeviceInformation deviceInformation) {
+		deviceInformationService.save(deviceInformation);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param deviceInformation
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-编辑")
+	@ApiOperation(value="设备管理信息表-编辑", notes="设备管理信息表-编辑")
+//	@RequiresPermissions("device:device_information:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody DeviceInformation deviceInformation) {
+		deviceInformationService.updateById(deviceInformation);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-通过id删除")
+	@ApiOperation(value="设备管理信息表-通过id删除", notes="设备管理信息表-通过id删除")
+//	@RequiresPermissions("device:device_information:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		deviceInformationService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-批量删除")
+	@ApiOperation(value="设备管理信息表-批量删除", notes="设备管理信息表-批量删除")
+//	@RequiresPermissions("device:device_information:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.deviceInformationService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "设备管理信息表-通过id查询")
+	@ApiOperation(value="设备管理信息表-通过id查询", notes="设备管理信息表-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<DeviceInformation> queryById(@RequestParam(name="id",required=true) String id) {
+		DeviceInformation deviceInformation = deviceInformationService.getById(id);
+		if(deviceInformation==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(deviceInformation);
+	}
+
+	 /**
+	  * 导出excel
+	  *
+	  * @param request
+	  * @param deviceInformation
+	  */
+//    @RequiresPermissions("device:device_information:exportXls")
+	 @RequestMapping(value = "/exportXls")
+	 public ModelAndView exportXls(HttpServletRequest request, DeviceInformation deviceInformation) {
+//		return super.exportXls(request, deviceInformation, DeviceInformation.class, "设备管理信息");
+		 // Step.1 组装查询条件
+		 QueryWrapper<DeviceInformation> queryWrapper = QueryGenerator.initQueryWrapper(deviceInformation, request.getParameterMap());
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+		 // 过滤选中数据
+		 String selections = request.getParameter("selections");
+		 if (oConvertUtils.isNotEmpty(selections)) {
+			 List<String> selectionList = Arrays.asList(selections.split(","));
+			 queryWrapper.in("id",selectionList);
+		 }
+
+		 // Step.2 获取导出数据
+		 List<DeviceInformation> exportList = deviceInformationService.list(queryWrapper);
+
+		 for (DeviceInformation deviceinfo : exportList) {
+			 // 转换区域名称
+			 String deviceregionid = deviceinfo.getDeviceRegionId();
+			 if(StringUtils.isNotEmpty(deviceregionid)){
+				 DeviceRegion deviceRegion = deviceRegionService.getById(deviceregionid);
+				 if(deviceRegion == null) {
+					 deviceinfo.setDeviceRegionId("");
+				 }else{
+					 deviceinfo.setDeviceRegionId(deviceRegion.getRegionTitle());
+				 }
+			 }
+		 }
+		 // Step.3 AutoPoi 导出Excel
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 //此处设置的filename无效 ,前端会重更新设置一下
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "设备信息列表");
+		 mv.addObject(NormalExcelConstants.CLASS, DeviceInformation.class);
+		 ExportParams exportParams=new ExportParams("设备信息数据" + "报表", "导出人:" + sysUser.getRealname(), "设备信息");
+		 mv.addObject(NormalExcelConstants.PARAMS,exportParams);
+		 mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		 return mv;
+	 }
+
+
+	 /**
+	  * excel导入模板
+	  *
+	  * @param request
+	  * @param deviceInformation
+	  */
+//    @RequiresPermissions("device:device_information:exportXls")
+	 @RequestMapping(value = "/exportXlsModel/{type}")
+	 public ModelAndView exportXlsModel(HttpServletRequest request, DeviceInformation deviceInformation,@PathVariable(name = "type")String type) {
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+		 List<String> exportFieldsList = new ArrayList<>();
+		 Field[] fileds = DeviceInformation.class.getDeclaredFields();
+		 List<Field> list = new ArrayList(Arrays.asList(fileds));
+		 for(Field field : list){
+			 if(field.getName().contains(type)){
+				 exportFieldsList.add(field.getName());
+			 }
+			 if(!field.getName().contains("s7")&&!field.getName().contains("opc")&&!field.getName().contains("modbus")){
+			 	exportFieldsList.add(field.getName());
+			 }
+		 }
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "设备导入模板");
+		 mv.addObject(NormalExcelConstants.CLASS, DeviceInformation.class);
+		 mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("设备导入模板", "导出人:"+sysUser.getRealname(), "设备导入模板"));
+		 mv.addObject(NormalExcelConstants.EXPORT_FIELDS,String.join(",", exportFieldsList));
+		 mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<DeviceInformation>());
+		 return mv;
+	 }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+//    @RequiresPermissions("device:device_information:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+//        return super.importExcel(request, response, DeviceInformation.class);
+		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+			// 获取上传文件对象
+			MultipartFile file = entity.getValue();
+			ImportParams params = new ImportParams();
+			params.setTitleRows(2);
+			params.setHeadRows(1);
+			params.setNeedSave(true);
+			try {
+				List<DeviceInformation> list = ExcelImportUtil.importExcel(file.getInputStream(), DeviceInformation.class, params);
+				StringBuffer errorLine = new StringBuffer();
+				AtomicInteger line = new AtomicInteger(1);
+				list.forEach(deviceinfo -> {
+					QueryWrapper<DeviceRegion> queryWrapper = new QueryWrapper<>();
+					queryWrapper.eq("region_title", deviceinfo.getDeviceRegionId());
+					// 设备状态处理
+					deviceinfo.setStatus("1");
+					// 设备区域处理
+					DeviceRegion deviceRegion = deviceRegionService.getOne(queryWrapper);
+					if(deviceRegion == null) {
+						deviceinfo.setDeviceRegionId("");
+					}else{
+						deviceinfo.setDeviceRegionId(deviceRegion.getId());
+					}
+					line.getAndIncrement();
+				});
+				if(errorLine.length()>0){
+					return Result.error("数据格式有误!有误行数:"+errorLine);
+				}
+				deviceInformationService.saveBatch(list);
+				return Result.OK("文件导入成功!数据行数:" + list.size());
+			} catch (Exception e) {
+				log.error(e.getMessage(),e);
+				return Result.error("文件导入失败:"+e.getMessage());
+			} finally {
+				try {
+					file.getInputStream().close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return Result.OK("文件导入失败!");
+    }
+
+
+	 /**
+	  * 通过区域划分获取设备
+	  *
+	  * @return
+	  */
+	 @GetMapping(value = "/getByRegion")
+	 public Result<List<DeviceInformation>> getByRegion(@RequestParam(name = "region") String region,@RequestParam(name = "region") String type) {
+		 LambdaQueryWrapper<DeviceInformation> eq = new LambdaQueryWrapper<DeviceInformation>()
+				 .eq(DeviceInformation::getDeviceRegionId, region)
+				 .isNull(DeviceInformation::getFreq)
+				 .eq(DeviceInformation::getDeviceGather,type);
+		 return Result.OK(deviceInformationService.list(eq));
+	 }
+
+}

+ 162 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/controller/DeviceRegionController.java

@@ -0,0 +1,162 @@
+package org.jeecg.modules.deviceCcm.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.deviceCcm.entity.DeviceRegion;
+import org.jeecg.modules.deviceCcm.service.IDeviceRegionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+ /**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Api(tags="区域管理信息表")
+@RestController
+@RequestMapping("/device/deviceRegion")
+@Slf4j
+public class DeviceRegionController extends JeecgController<DeviceRegion, IDeviceRegionService> {
+	@Autowired
+	private IDeviceRegionService deviceRegionService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param deviceRegion
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "区域管理信息表-分页列表查询")
+	@ApiOperation(value="区域管理信息表-分页列表查询", notes="区域管理信息表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<DeviceRegion>> queryPageList(DeviceRegion deviceRegion,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<DeviceRegion> queryWrapper = QueryGenerator.initQueryWrapper(deviceRegion, req.getParameterMap());
+		Page<DeviceRegion> page = new Page<DeviceRegion>(pageNo, pageSize);
+		IPage<DeviceRegion> pageList = deviceRegionService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param deviceRegion
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-添加")
+	@ApiOperation(value="区域管理信息表-添加", notes="区域管理信息表-添加")
+//	@RequiresPermissions("device:device_region:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody DeviceRegion deviceRegion) {
+		deviceRegionService.save(deviceRegion);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param deviceRegion
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-编辑")
+	@ApiOperation(value="区域管理信息表-编辑", notes="区域管理信息表-编辑")
+//	@RequiresPermissions("device:device_region:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody DeviceRegion deviceRegion) {
+		deviceRegionService.updateById(deviceRegion);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-通过id删除")
+	@ApiOperation(value="区域管理信息表-通过id删除", notes="区域管理信息表-通过id删除")
+	@RequiresPermissions("device:device_region:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		deviceRegionService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-批量删除")
+	@ApiOperation(value="区域管理信息表-批量删除", notes="区域管理信息表-批量删除")
+	@RequiresPermissions("device:device_region:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.deviceRegionService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "区域管理信息表-通过id查询")
+	@ApiOperation(value="区域管理信息表-通过id查询", notes="区域管理信息表-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<DeviceRegion> queryById(@RequestParam(name="id",required=true) String id) {
+		DeviceRegion deviceRegion = deviceRegionService.getById(id);
+		if(deviceRegion==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(deviceRegion);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param deviceRegion
+    */
+    @RequiresPermissions("device:device_region:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, DeviceRegion deviceRegion) {
+        return super.exportXls(request, deviceRegion, DeviceRegion.class, "区域管理信息表");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("device:device_region:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, DeviceRegion.class);
+    }
+
+}

+ 152 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/entity/DeviceInformation.java

@@ -0,0 +1,152 @@
+package org.jeecg.modules.deviceCcm.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("device_information")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="device_information对象", description="设备管理信息表")
+public class DeviceInformation implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**区域名称*/
+	@Excel(name = "区域名称", width = 15)
+    @ApiModelProperty(value = "区域名称")
+    @Dict(dicCode = "id",dictTable="device_region",dicText="region_title")
+    private String deviceRegionId;
+	/**设备名称*/
+	@Excel(name = "设备名称", width = 15)
+    @ApiModelProperty(value = "设备名称")
+    private String deviceTitle;
+	/**设备类型*/
+	@Excel(name = "设备类型", width = 15, dicCode = "equipment_model")
+    @ApiModelProperty(value = "设备类型")
+    @Dict(dicCode = "equipment_model")
+    private String s7Model;
+	/**设备编码*/
+	@Excel(name = "设备编码", width = 15)
+    @ApiModelProperty(value = "设备编码")
+    private String deviceCode;
+	/**ip*/
+	@Excel(name = "ip", width = 15)
+    @ApiModelProperty(value = "ip")
+    private String deviceIp;
+	/**端口*/
+	@Excel(name = "端口", width = 15)
+    @ApiModelProperty(value = "端口")
+    private String devicePort;
+	/**机架号*/
+	@Excel(name = "机架号", width = 15)
+    @ApiModelProperty(value = "机架号")
+    private Integer s7Rack;
+	/**槽号*/
+	@Excel(name = "槽号", width = 15)
+    @ApiModelProperty(value = "槽号")
+    private String s7Slot;
+	/**安装地址*/
+	@Excel(name = "安装地址", width = 15)
+    @ApiModelProperty(value = "安装地址")
+    private String deviceAddress;
+	/**最长位宽*/
+	@Excel(name = "最长位宽", width = 15)
+    @ApiModelProperty(value = "最长位宽")
+    private String s7LongestWidth;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private String deviceRemark;
+	/**采集通道*/
+	@Excel(name = "采集通道", width = 15, dicCode = "device_information_gather")
+    @ApiModelProperty(value = "采集通道")
+    @Dict(dicCode = "device_information_gather")
+    private String deviceGather;
+	/**从站号*/
+	@Excel(name = "从站号", width = 15)
+    @ApiModelProperty(value = "从站号")
+    private Integer modbusDeviceNum;
+	/**运行状态*/
+	@Excel(name = "运行状态", width = 15, dicCode = "sfqy")
+    @ApiModelProperty(value = "运行状态")
+    @Dict(dicCode = "sfqy")
+    private String status;
+	/**所在部门*/
+    @ApiModelProperty(value = "所在部门")
+    private String sysOrgCode;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+	/**clsid*/
+	@Excel(name = "clsid", width = 15)
+    @ApiModelProperty(value = "clsid")
+    private String opcClsid;
+	/**用户名*/
+	@Excel(name = "用户名", width = 15)
+    @ApiModelProperty(value = "用户名")
+    private String opcUsername;
+	/**密码*/
+	@Excel(name = "密码", width = 15)
+    @ApiModelProperty(value = "密码")
+    private String opcPassword;
+	/**注册表中的名称*/
+	@Excel(name = "注册表中的名称", width = 15)
+    @ApiModelProperty(value = "注册表中的名称")
+    private String opcRegname;
+	/**opc版本号*/
+	@Excel(name = "opc版本号", width = 15)
+    @ApiModelProperty(value = "opc版本号")
+    private String opcVersion;
+	/**opc中文名称*/
+	@Excel(name = "opc中文名称", width = 15)
+    @ApiModelProperty(value = "opc中文名称")
+    private String opcZhName;
+	/**opc英文名称*/
+	@Excel(name = "opc英文名称", width = 15)
+    @ApiModelProperty(value = "opc英文名称")
+    private String opcEnName;
+    /**opc域*/
+    @Excel(name = "opc域", width = 15)
+    @ApiModelProperty(value = "opc域")
+    private String opcDomain;
+    /**采集频率*/
+    @Excel(name = "采集频率", width = 15)
+    @ApiModelProperty(value = "采集频率")
+    @Dict(dicCode = "device_freq")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String freq;
+}

+ 65 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/entity/DeviceRegion.java

@@ -0,0 +1,65 @@
+package org.jeecg.modules.deviceCcm.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("device_region")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="device_region对象", description="区域管理信息表")
+public class DeviceRegion implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**区域名称*/
+	@Excel(name = "区域名称", width = 15)
+    @ApiModelProperty(value = "区域名称")
+    private String regionTitle;
+	/**状态*/
+	@Excel(name = "状态", width = 15, dicCode = "device_region_status")
+	@Dict(dicCode = "device_region_status")
+    @ApiModelProperty(value = "状态")
+    private String status;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+	/**所在部门*/
+    @ApiModelProperty(value = "所在部门")
+    private String sysOrgCode;
+}

+ 14 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/mapper/DeviceInformationMapper.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceCcm.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.deviceCcm.entity.DeviceInformation;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface DeviceInformationMapper extends BaseMapper<DeviceInformation> {
+
+}

+ 14 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/mapper/DeviceRegionMapper.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceCcm.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.deviceCcm.entity.DeviceRegion;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface DeviceRegionMapper extends BaseMapper<DeviceRegion> {
+
+}

+ 5 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/mapper/xml/DeviceInformationMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.deviceCcm.mapper.DeviceInformationMapper">
+
+</mapper>

+ 5 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/mapper/xml/DeviceRegionMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.deviceCcm.mapper.DeviceRegionMapper">
+
+</mapper>

+ 14 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/service/IDeviceInformationService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceCcm.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.deviceCcm.entity.DeviceInformation;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface IDeviceInformationService extends IService<DeviceInformation> {
+
+}

+ 14 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/service/IDeviceRegionService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceCcm.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.deviceCcm.entity.DeviceRegion;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface IDeviceRegionService extends IService<DeviceRegion> {
+
+}

+ 19 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/service/impl/DeviceInformationServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.deviceCcm.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.deviceCcm.entity.DeviceInformation;
+import org.jeecg.modules.deviceCcm.mapper.DeviceInformationMapper;
+import org.jeecg.modules.deviceCcm.service.IDeviceInformationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Service
+public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationMapper, DeviceInformation> implements IDeviceInformationService {
+
+}

+ 19 - 0
zgztBus/jeecg-module-ccm/src/main/java/org/jeecg/modules/deviceCcm/service/impl/DeviceRegionServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.deviceCcm.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.deviceCcm.entity.DeviceRegion;
+import org.jeecg.modules.deviceCcm.mapper.DeviceRegionMapper;
+import org.jeecg.modules.deviceCcm.service.IDeviceRegionService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Service
+public class DeviceRegionServiceImpl extends ServiceImpl<DeviceRegionMapper, DeviceRegion> implements IDeviceRegionService {
+
+}

+ 308 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/controller/DeviceInformationController.java

@@ -0,0 +1,308 @@
+package org.jeecg.modules.deviceGcm.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.deviceGcm.entity.DeviceInformation;
+import org.jeecg.modules.deviceGcm.entity.DeviceRegion;
+import org.jeecg.modules.deviceGcm.service.IDeviceInformationService;
+import org.jeecg.modules.deviceGcm.service.IDeviceRegionService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+
+ /**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Api(tags="设备管理信息表")
+@RestController
+@RequestMapping("/device/deviceInformation")
+@Slf4j
+public class DeviceInformationController extends JeecgController<DeviceInformation, IDeviceInformationService> {
+	@Autowired
+	private IDeviceInformationService deviceInformationService;
+	@Autowired
+	private IDeviceRegionService deviceRegionService;
+
+	/**
+	 * 分页列表查询
+	 *
+	 * @param deviceInformation
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "设备管理信息表-分页列表查询")
+	@ApiOperation(value="设备管理信息表-分页列表查询", notes="设备管理信息表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<DeviceInformation>> queryPageList(DeviceInformation deviceInformation,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<DeviceInformation> queryWrapper = QueryGenerator.initQueryWrapper(deviceInformation, req.getParameterMap());
+		Page<DeviceInformation> page = new Page<DeviceInformation>(pageNo, pageSize);
+		IPage<DeviceInformation> pageList = deviceInformationService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param deviceInformation
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-添加")
+	@ApiOperation(value="设备管理信息表-添加", notes="设备管理信息表-添加")
+//	@RequiresPermissions("device:device_information:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody DeviceInformation deviceInformation) {
+		deviceInformationService.save(deviceInformation);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param deviceInformation
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-编辑")
+	@ApiOperation(value="设备管理信息表-编辑", notes="设备管理信息表-编辑")
+//	@RequiresPermissions("device:device_information:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody DeviceInformation deviceInformation) {
+		deviceInformationService.updateById(deviceInformation);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-通过id删除")
+	@ApiOperation(value="设备管理信息表-通过id删除", notes="设备管理信息表-通过id删除")
+//	@RequiresPermissions("device:device_information:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		deviceInformationService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-批量删除")
+	@ApiOperation(value="设备管理信息表-批量删除", notes="设备管理信息表-批量删除")
+//	@RequiresPermissions("device:device_information:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.deviceInformationService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "设备管理信息表-通过id查询")
+	@ApiOperation(value="设备管理信息表-通过id查询", notes="设备管理信息表-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<DeviceInformation> queryById(@RequestParam(name="id",required=true) String id) {
+		DeviceInformation deviceInformation = deviceInformationService.getById(id);
+		if(deviceInformation==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(deviceInformation);
+	}
+
+	 /**
+	  * 导出excel
+	  *
+	  * @param request
+	  * @param deviceInformation
+	  */
+//    @RequiresPermissions("device:device_information:exportXls")
+	 @RequestMapping(value = "/exportXls")
+	 public ModelAndView exportXls(HttpServletRequest request, DeviceInformation deviceInformation) {
+//		return super.exportXls(request, deviceInformation, DeviceInformation.class, "设备管理信息");
+		 // Step.1 组装查询条件
+		 QueryWrapper<DeviceInformation> queryWrapper = QueryGenerator.initQueryWrapper(deviceInformation, request.getParameterMap());
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+		 // 过滤选中数据
+		 String selections = request.getParameter("selections");
+		 if (oConvertUtils.isNotEmpty(selections)) {
+			 List<String> selectionList = Arrays.asList(selections.split(","));
+			 queryWrapper.in("id",selectionList);
+		 }
+
+		 // Step.2 获取导出数据
+		 List<DeviceInformation> exportList = deviceInformationService.list(queryWrapper);
+
+		 for (DeviceInformation deviceinfo : exportList) {
+			 // 转换区域名称
+			 String deviceregionid = deviceinfo.getDeviceRegionId();
+			 if(StringUtils.isNotEmpty(deviceregionid)){
+				 DeviceRegion deviceRegion = deviceRegionService.getById(deviceregionid);
+				 if(deviceRegion == null) {
+					 deviceinfo.setDeviceRegionId("");
+				 }else{
+					 deviceinfo.setDeviceRegionId(deviceRegion.getRegionTitle());
+				 }
+			 }
+		 }
+		 // Step.3 AutoPoi 导出Excel
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 //此处设置的filename无效 ,前端会重更新设置一下
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "设备信息列表");
+		 mv.addObject(NormalExcelConstants.CLASS, DeviceInformation.class);
+		 ExportParams exportParams=new ExportParams("设备信息数据" + "报表", "导出人:" + sysUser.getRealname(), "设备信息");
+		 mv.addObject(NormalExcelConstants.PARAMS,exportParams);
+		 mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		 return mv;
+	 }
+
+
+	 /**
+	  * excel导入模板
+	  *
+	  * @param request
+	  * @param deviceInformation
+	  */
+//    @RequiresPermissions("device:device_information:exportXls")
+	 @RequestMapping(value = "/exportXlsModel/{type}")
+	 public ModelAndView exportXlsModel(HttpServletRequest request, DeviceInformation deviceInformation,@PathVariable(name = "type")String type) {
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+		 List<String> exportFieldsList = new ArrayList<>();
+		 Field[] fileds = DeviceInformation.class.getDeclaredFields();
+		 List<Field> list = new ArrayList(Arrays.asList(fileds));
+		 for(Field field : list){
+			 if(field.getName().contains(type)){
+				 exportFieldsList.add(field.getName());
+			 }
+			 if(!field.getName().contains("s7")&&!field.getName().contains("opc")&&!field.getName().contains("modbus")){
+			 	exportFieldsList.add(field.getName());
+			 }
+		 }
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "设备导入模板");
+		 mv.addObject(NormalExcelConstants.CLASS, DeviceInformation.class);
+		 mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("设备导入模板", "导出人:"+sysUser.getRealname(), "设备导入模板"));
+		 mv.addObject(NormalExcelConstants.EXPORT_FIELDS,String.join(",", exportFieldsList));
+		 mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<DeviceInformation>());
+		 return mv;
+	 }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+//    @RequiresPermissions("device:device_information:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+//        return super.importExcel(request, response, DeviceInformation.class);
+		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+			// 获取上传文件对象
+			MultipartFile file = entity.getValue();
+			ImportParams params = new ImportParams();
+			params.setTitleRows(2);
+			params.setHeadRows(1);
+			params.setNeedSave(true);
+			try {
+				List<DeviceInformation> list = ExcelImportUtil.importExcel(file.getInputStream(), DeviceInformation.class, params);
+				StringBuffer errorLine = new StringBuffer();
+				AtomicInteger line = new AtomicInteger(1);
+				list.forEach(deviceinfo -> {
+					QueryWrapper<DeviceRegion> queryWrapper = new QueryWrapper<>();
+					queryWrapper.eq("region_title", deviceinfo.getDeviceRegionId());
+					// 设备状态处理
+					deviceinfo.setStatus("1");
+					// 设备区域处理
+					DeviceRegion deviceRegion = deviceRegionService.getOne(queryWrapper);
+					if(deviceRegion == null) {
+						deviceinfo.setDeviceRegionId("");
+					}else{
+						deviceinfo.setDeviceRegionId(deviceRegion.getId());
+					}
+					line.getAndIncrement();
+				});
+				if(errorLine.length()>0){
+					return Result.error("数据格式有误!有误行数:"+errorLine);
+				}
+				deviceInformationService.saveBatch(list);
+				return Result.OK("文件导入成功!数据行数:" + list.size());
+			} catch (Exception e) {
+				log.error(e.getMessage(),e);
+				return Result.error("文件导入失败:"+e.getMessage());
+			} finally {
+				try {
+					file.getInputStream().close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return Result.OK("文件导入失败!");
+    }
+
+
+	 /**
+	  * 通过区域划分获取设备
+	  *
+	  * @return
+	  */
+	 @GetMapping(value = "/getByRegion")
+	 public Result<List<DeviceInformation>> getByRegion(@RequestParam(name = "region") String region,@RequestParam(name = "region") String type) {
+		 LambdaQueryWrapper<DeviceInformation> eq = new LambdaQueryWrapper<DeviceInformation>()
+				 .eq(DeviceInformation::getDeviceRegionId, region)
+				 .isNull(DeviceInformation::getFreq)
+				 .eq(DeviceInformation::getDeviceGather,type);
+		 return Result.OK(deviceInformationService.list(eq));
+	 }
+
+}

+ 162 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/controller/DeviceRegionController.java

@@ -0,0 +1,162 @@
+package org.jeecg.modules.deviceGcm.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.deviceGcm.entity.DeviceRegion;
+import org.jeecg.modules.deviceGcm.service.IDeviceRegionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+ /**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Api(tags="区域管理信息表")
+@RestController
+@RequestMapping("/device/deviceRegion")
+@Slf4j
+public class DeviceRegionController extends JeecgController<DeviceRegion, IDeviceRegionService> {
+	@Autowired
+	private IDeviceRegionService deviceRegionService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param deviceRegion
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "区域管理信息表-分页列表查询")
+	@ApiOperation(value="区域管理信息表-分页列表查询", notes="区域管理信息表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<DeviceRegion>> queryPageList(DeviceRegion deviceRegion,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<DeviceRegion> queryWrapper = QueryGenerator.initQueryWrapper(deviceRegion, req.getParameterMap());
+		Page<DeviceRegion> page = new Page<DeviceRegion>(pageNo, pageSize);
+		IPage<DeviceRegion> pageList = deviceRegionService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param deviceRegion
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-添加")
+	@ApiOperation(value="区域管理信息表-添加", notes="区域管理信息表-添加")
+//	@RequiresPermissions("device:device_region:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody DeviceRegion deviceRegion) {
+		deviceRegionService.save(deviceRegion);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param deviceRegion
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-编辑")
+	@ApiOperation(value="区域管理信息表-编辑", notes="区域管理信息表-编辑")
+//	@RequiresPermissions("device:device_region:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody DeviceRegion deviceRegion) {
+		deviceRegionService.updateById(deviceRegion);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-通过id删除")
+	@ApiOperation(value="区域管理信息表-通过id删除", notes="区域管理信息表-通过id删除")
+	@RequiresPermissions("device:device_region:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		deviceRegionService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-批量删除")
+	@ApiOperation(value="区域管理信息表-批量删除", notes="区域管理信息表-批量删除")
+	@RequiresPermissions("device:device_region:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.deviceRegionService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "区域管理信息表-通过id查询")
+	@ApiOperation(value="区域管理信息表-通过id查询", notes="区域管理信息表-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<DeviceRegion> queryById(@RequestParam(name="id",required=true) String id) {
+		DeviceRegion deviceRegion = deviceRegionService.getById(id);
+		if(deviceRegion==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(deviceRegion);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param deviceRegion
+    */
+    @RequiresPermissions("device:device_region:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, DeviceRegion deviceRegion) {
+        return super.exportXls(request, deviceRegion, DeviceRegion.class, "区域管理信息表");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("device:device_region:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, DeviceRegion.class);
+    }
+
+}

+ 152 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/entity/DeviceInformation.java

@@ -0,0 +1,152 @@
+package org.jeecg.modules.deviceGcm.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("device_information")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="device_information对象", description="设备管理信息表")
+public class DeviceInformation implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**区域名称*/
+	@Excel(name = "区域名称", width = 15)
+    @ApiModelProperty(value = "区域名称")
+    @Dict(dicCode = "id",dictTable="device_region",dicText="region_title")
+    private String deviceRegionId;
+	/**设备名称*/
+	@Excel(name = "设备名称", width = 15)
+    @ApiModelProperty(value = "设备名称")
+    private String deviceTitle;
+	/**设备类型*/
+	@Excel(name = "设备类型", width = 15, dicCode = "equipment_model")
+    @ApiModelProperty(value = "设备类型")
+    @Dict(dicCode = "equipment_model")
+    private String s7Model;
+	/**设备编码*/
+	@Excel(name = "设备编码", width = 15)
+    @ApiModelProperty(value = "设备编码")
+    private String deviceCode;
+	/**ip*/
+	@Excel(name = "ip", width = 15)
+    @ApiModelProperty(value = "ip")
+    private String deviceIp;
+	/**端口*/
+	@Excel(name = "端口", width = 15)
+    @ApiModelProperty(value = "端口")
+    private String devicePort;
+	/**机架号*/
+	@Excel(name = "机架号", width = 15)
+    @ApiModelProperty(value = "机架号")
+    private Integer s7Rack;
+	/**槽号*/
+	@Excel(name = "槽号", width = 15)
+    @ApiModelProperty(value = "槽号")
+    private String s7Slot;
+	/**安装地址*/
+	@Excel(name = "安装地址", width = 15)
+    @ApiModelProperty(value = "安装地址")
+    private String deviceAddress;
+	/**最长位宽*/
+	@Excel(name = "最长位宽", width = 15)
+    @ApiModelProperty(value = "最长位宽")
+    private String s7LongestWidth;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private String deviceRemark;
+	/**采集通道*/
+	@Excel(name = "采集通道", width = 15, dicCode = "device_information_gather")
+    @ApiModelProperty(value = "采集通道")
+    @Dict(dicCode = "device_information_gather")
+    private String deviceGather;
+	/**从站号*/
+	@Excel(name = "从站号", width = 15)
+    @ApiModelProperty(value = "从站号")
+    private Integer modbusDeviceNum;
+	/**运行状态*/
+	@Excel(name = "运行状态", width = 15, dicCode = "sfqy")
+    @ApiModelProperty(value = "运行状态")
+    @Dict(dicCode = "sfqy")
+    private String status;
+	/**所在部门*/
+    @ApiModelProperty(value = "所在部门")
+    private String sysOrgCode;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+	/**clsid*/
+	@Excel(name = "clsid", width = 15)
+    @ApiModelProperty(value = "clsid")
+    private String opcClsid;
+	/**用户名*/
+	@Excel(name = "用户名", width = 15)
+    @ApiModelProperty(value = "用户名")
+    private String opcUsername;
+	/**密码*/
+	@Excel(name = "密码", width = 15)
+    @ApiModelProperty(value = "密码")
+    private String opcPassword;
+	/**注册表中的名称*/
+	@Excel(name = "注册表中的名称", width = 15)
+    @ApiModelProperty(value = "注册表中的名称")
+    private String opcRegname;
+	/**opc版本号*/
+	@Excel(name = "opc版本号", width = 15)
+    @ApiModelProperty(value = "opc版本号")
+    private String opcVersion;
+	/**opc中文名称*/
+	@Excel(name = "opc中文名称", width = 15)
+    @ApiModelProperty(value = "opc中文名称")
+    private String opcZhName;
+	/**opc英文名称*/
+	@Excel(name = "opc英文名称", width = 15)
+    @ApiModelProperty(value = "opc英文名称")
+    private String opcEnName;
+    /**opc域*/
+    @Excel(name = "opc域", width = 15)
+    @ApiModelProperty(value = "opc域")
+    private String opcDomain;
+    /**采集频率*/
+    @Excel(name = "采集频率", width = 15)
+    @ApiModelProperty(value = "采集频率")
+    @Dict(dicCode = "device_freq")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String freq;
+}

+ 65 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/entity/DeviceRegion.java

@@ -0,0 +1,65 @@
+package org.jeecg.modules.deviceGcm.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("device_region")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="device_region对象", description="区域管理信息表")
+public class DeviceRegion implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**区域名称*/
+	@Excel(name = "区域名称", width = 15)
+    @ApiModelProperty(value = "区域名称")
+    private String regionTitle;
+	/**状态*/
+	@Excel(name = "状态", width = 15, dicCode = "device_region_status")
+	@Dict(dicCode = "device_region_status")
+    @ApiModelProperty(value = "状态")
+    private String status;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+	/**所在部门*/
+    @ApiModelProperty(value = "所在部门")
+    private String sysOrgCode;
+}

+ 14 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/mapper/DeviceInformationMapper.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceGcm.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.deviceGcm.entity.DeviceInformation;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface DeviceInformationMapper extends BaseMapper<DeviceInformation> {
+
+}

+ 15 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/mapper/DeviceRegionMapper.java

@@ -0,0 +1,15 @@
+package org.jeecg.modules.deviceGcm.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.deviceGcm.entity.DeviceRegion;
+
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface DeviceRegionMapper extends BaseMapper<DeviceRegion> {
+
+}

+ 5 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/mapper/xml/DeviceInformationMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.deviceGcm.mapper.DeviceInformationMapper">
+
+</mapper>

+ 5 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/mapper/xml/DeviceRegionMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.deviceGcm.mapper.DeviceRegionMapper">
+
+</mapper>

+ 14 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/service/IDeviceInformationService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceGcm.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.deviceGcm.entity.DeviceInformation;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface IDeviceInformationService extends IService<DeviceInformation> {
+
+}

+ 14 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/service/IDeviceRegionService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceGcm.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.deviceGcm.entity.DeviceRegion;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface IDeviceRegionService extends IService<DeviceRegion> {
+
+}

+ 19 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/service/impl/DeviceInformationServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.deviceGcm.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.deviceGcm.entity.DeviceInformation;
+import org.jeecg.modules.deviceGcm.mapper.DeviceInformationMapper;
+import org.jeecg.modules.deviceGcm.service.IDeviceInformationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Service
+public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationMapper, DeviceInformation> implements IDeviceInformationService {
+
+}

+ 19 - 0
zgztBus/jeecg-module-gcm/src/main/java/org/jeecg/modules/deviceGcm/service/impl/DeviceRegionServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.deviceGcm.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.deviceGcm.entity.DeviceRegion;
+import org.jeecg.modules.deviceGcm.mapper.DeviceRegionMapper;
+import org.jeecg.modules.deviceGcm.service.IDeviceRegionService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Service
+public class DeviceRegionServiceImpl extends ServiceImpl<DeviceRegionMapper, DeviceRegion> implements IDeviceRegionService {
+
+}

+ 308 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/controller/DeviceInformationController.java

@@ -0,0 +1,308 @@
+package org.jeecg.modules.deviceLesm.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.deviceLesm.entity.DeviceInformation;
+import org.jeecg.modules.deviceLesm.entity.DeviceRegion;
+import org.jeecg.modules.deviceLesm.service.IDeviceInformationService;
+import org.jeecg.modules.deviceLesm.service.IDeviceRegionService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+
+ /**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Api(tags="设备管理信息表")
+@RestController
+@RequestMapping("/device/deviceInformation")
+@Slf4j
+public class DeviceInformationController extends JeecgController<DeviceInformation, IDeviceInformationService> {
+	@Autowired
+	private IDeviceInformationService deviceInformationService;
+	@Autowired
+	private IDeviceRegionService deviceRegionService;
+
+	/**
+	 * 分页列表查询
+	 *
+	 * @param deviceInformation
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "设备管理信息表-分页列表查询")
+	@ApiOperation(value="设备管理信息表-分页列表查询", notes="设备管理信息表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<DeviceInformation>> queryPageList(DeviceInformation deviceInformation,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<DeviceInformation> queryWrapper = QueryGenerator.initQueryWrapper(deviceInformation, req.getParameterMap());
+		Page<DeviceInformation> page = new Page<DeviceInformation>(pageNo, pageSize);
+		IPage<DeviceInformation> pageList = deviceInformationService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param deviceInformation
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-添加")
+	@ApiOperation(value="设备管理信息表-添加", notes="设备管理信息表-添加")
+//	@RequiresPermissions("device:device_information:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody DeviceInformation deviceInformation) {
+		deviceInformationService.save(deviceInformation);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param deviceInformation
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-编辑")
+	@ApiOperation(value="设备管理信息表-编辑", notes="设备管理信息表-编辑")
+//	@RequiresPermissions("device:device_information:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody DeviceInformation deviceInformation) {
+		deviceInformationService.updateById(deviceInformation);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-通过id删除")
+	@ApiOperation(value="设备管理信息表-通过id删除", notes="设备管理信息表-通过id删除")
+//	@RequiresPermissions("device:device_information:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		deviceInformationService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-批量删除")
+	@ApiOperation(value="设备管理信息表-批量删除", notes="设备管理信息表-批量删除")
+//	@RequiresPermissions("device:device_information:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.deviceInformationService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "设备管理信息表-通过id查询")
+	@ApiOperation(value="设备管理信息表-通过id查询", notes="设备管理信息表-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<DeviceInformation> queryById(@RequestParam(name="id",required=true) String id) {
+		DeviceInformation deviceInformation = deviceInformationService.getById(id);
+		if(deviceInformation==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(deviceInformation);
+	}
+
+	 /**
+	  * 导出excel
+	  *
+	  * @param request
+	  * @param deviceInformation
+	  */
+//    @RequiresPermissions("device:device_information:exportXls")
+	 @RequestMapping(value = "/exportXls")
+	 public ModelAndView exportXls(HttpServletRequest request, DeviceInformation deviceInformation) {
+//		return super.exportXls(request, deviceInformation, DeviceInformation.class, "设备管理信息");
+		 // Step.1 组装查询条件
+		 QueryWrapper<DeviceInformation> queryWrapper = QueryGenerator.initQueryWrapper(deviceInformation, request.getParameterMap());
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+		 // 过滤选中数据
+		 String selections = request.getParameter("selections");
+		 if (oConvertUtils.isNotEmpty(selections)) {
+			 List<String> selectionList = Arrays.asList(selections.split(","));
+			 queryWrapper.in("id",selectionList);
+		 }
+
+		 // Step.2 获取导出数据
+		 List<DeviceInformation> exportList = deviceInformationService.list(queryWrapper);
+
+		 for (DeviceInformation deviceinfo : exportList) {
+			 // 转换区域名称
+			 String deviceregionid = deviceinfo.getDeviceRegionId();
+			 if(StringUtils.isNotEmpty(deviceregionid)){
+				 DeviceRegion deviceRegion = deviceRegionService.getById(deviceregionid);
+				 if(deviceRegion == null) {
+					 deviceinfo.setDeviceRegionId("");
+				 }else{
+					 deviceinfo.setDeviceRegionId(deviceRegion.getRegionTitle());
+				 }
+			 }
+		 }
+		 // Step.3 AutoPoi 导出Excel
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 //此处设置的filename无效 ,前端会重更新设置一下
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "设备信息列表");
+		 mv.addObject(NormalExcelConstants.CLASS, DeviceInformation.class);
+		 ExportParams exportParams=new ExportParams("设备信息数据" + "报表", "导出人:" + sysUser.getRealname(), "设备信息");
+		 mv.addObject(NormalExcelConstants.PARAMS,exportParams);
+		 mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		 return mv;
+	 }
+
+
+	 /**
+	  * excel导入模板
+	  *
+	  * @param request
+	  * @param deviceInformation
+	  */
+//    @RequiresPermissions("device:device_information:exportXls")
+	 @RequestMapping(value = "/exportXlsModel/{type}")
+	 public ModelAndView exportXlsModel(HttpServletRequest request, DeviceInformation deviceInformation,@PathVariable(name = "type")String type) {
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+		 List<String> exportFieldsList = new ArrayList<>();
+		 Field[] fileds = DeviceInformation.class.getDeclaredFields();
+		 List<Field> list = new ArrayList(Arrays.asList(fileds));
+		 for(Field field : list){
+			 if(field.getName().contains(type)){
+				 exportFieldsList.add(field.getName());
+			 }
+			 if(!field.getName().contains("s7")&&!field.getName().contains("opc")&&!field.getName().contains("modbus")){
+			 	exportFieldsList.add(field.getName());
+			 }
+		 }
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "设备导入模板");
+		 mv.addObject(NormalExcelConstants.CLASS, DeviceInformation.class);
+		 mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("设备导入模板", "导出人:"+sysUser.getRealname(), "设备导入模板"));
+		 mv.addObject(NormalExcelConstants.EXPORT_FIELDS,String.join(",", exportFieldsList));
+		 mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<DeviceInformation>());
+		 return mv;
+	 }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+//    @RequiresPermissions("device:device_information:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+//        return super.importExcel(request, response, DeviceInformation.class);
+		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+			// 获取上传文件对象
+			MultipartFile file = entity.getValue();
+			ImportParams params = new ImportParams();
+			params.setTitleRows(2);
+			params.setHeadRows(1);
+			params.setNeedSave(true);
+			try {
+				List<DeviceInformation> list = ExcelImportUtil.importExcel(file.getInputStream(), DeviceInformation.class, params);
+				StringBuffer errorLine = new StringBuffer();
+				AtomicInteger line = new AtomicInteger(1);
+				list.forEach(deviceinfo -> {
+					QueryWrapper<DeviceRegion> queryWrapper = new QueryWrapper<>();
+					queryWrapper.eq("region_title", deviceinfo.getDeviceRegionId());
+					// 设备状态处理
+					deviceinfo.setStatus("1");
+					// 设备区域处理
+					DeviceRegion deviceRegion = deviceRegionService.getOne(queryWrapper);
+					if(deviceRegion == null) {
+						deviceinfo.setDeviceRegionId("");
+					}else{
+						deviceinfo.setDeviceRegionId(deviceRegion.getId());
+					}
+					line.getAndIncrement();
+				});
+				if(errorLine.length()>0){
+					return Result.error("数据格式有误!有误行数:"+errorLine);
+				}
+				deviceInformationService.saveBatch(list);
+				return Result.OK("文件导入成功!数据行数:" + list.size());
+			} catch (Exception e) {
+				log.error(e.getMessage(),e);
+				return Result.error("文件导入失败:"+e.getMessage());
+			} finally {
+				try {
+					file.getInputStream().close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return Result.OK("文件导入失败!");
+    }
+
+
+	 /**
+	  * 通过区域划分获取设备
+	  *
+	  * @return
+	  */
+	 @GetMapping(value = "/getByRegion")
+	 public Result<List<DeviceInformation>> getByRegion(@RequestParam(name = "region") String region,@RequestParam(name = "region") String type) {
+		 LambdaQueryWrapper<DeviceInformation> eq = new LambdaQueryWrapper<DeviceInformation>()
+				 .eq(DeviceInformation::getDeviceRegionId, region)
+				 .isNull(DeviceInformation::getFreq)
+				 .eq(DeviceInformation::getDeviceGather,type);
+		 return Result.OK(deviceInformationService.list(eq));
+	 }
+
+}

+ 162 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/controller/DeviceRegionController.java

@@ -0,0 +1,162 @@
+package org.jeecg.modules.deviceLesm.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.deviceLesm.entity.DeviceRegion;
+import org.jeecg.modules.deviceLesm.service.IDeviceRegionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+ /**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Api(tags="区域管理信息表")
+@RestController
+@RequestMapping("/device/deviceRegion")
+@Slf4j
+public class DeviceRegionController extends JeecgController<DeviceRegion, IDeviceRegionService> {
+	@Autowired
+	private IDeviceRegionService deviceRegionService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param deviceRegion
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "区域管理信息表-分页列表查询")
+	@ApiOperation(value="区域管理信息表-分页列表查询", notes="区域管理信息表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<DeviceRegion>> queryPageList(DeviceRegion deviceRegion,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<DeviceRegion> queryWrapper = QueryGenerator.initQueryWrapper(deviceRegion, req.getParameterMap());
+		Page<DeviceRegion> page = new Page<DeviceRegion>(pageNo, pageSize);
+		IPage<DeviceRegion> pageList = deviceRegionService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param deviceRegion
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-添加")
+	@ApiOperation(value="区域管理信息表-添加", notes="区域管理信息表-添加")
+//	@RequiresPermissions("device:device_region:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody DeviceRegion deviceRegion) {
+		deviceRegionService.save(deviceRegion);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param deviceRegion
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-编辑")
+	@ApiOperation(value="区域管理信息表-编辑", notes="区域管理信息表-编辑")
+//	@RequiresPermissions("device:device_region:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody DeviceRegion deviceRegion) {
+		deviceRegionService.updateById(deviceRegion);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-通过id删除")
+	@ApiOperation(value="区域管理信息表-通过id删除", notes="区域管理信息表-通过id删除")
+	@RequiresPermissions("device:device_region:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		deviceRegionService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-批量删除")
+	@ApiOperation(value="区域管理信息表-批量删除", notes="区域管理信息表-批量删除")
+	@RequiresPermissions("device:device_region:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.deviceRegionService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "区域管理信息表-通过id查询")
+	@ApiOperation(value="区域管理信息表-通过id查询", notes="区域管理信息表-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<DeviceRegion> queryById(@RequestParam(name="id",required=true) String id) {
+		DeviceRegion deviceRegion = deviceRegionService.getById(id);
+		if(deviceRegion==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(deviceRegion);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param deviceRegion
+    */
+    @RequiresPermissions("device:device_region:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, DeviceRegion deviceRegion) {
+        return super.exportXls(request, deviceRegion, DeviceRegion.class, "区域管理信息表");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("device:device_region:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, DeviceRegion.class);
+    }
+
+}

+ 152 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/entity/DeviceInformation.java

@@ -0,0 +1,152 @@
+package org.jeecg.modules.deviceLesm.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("device_information")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="device_information对象", description="设备管理信息表")
+public class DeviceInformation implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**区域名称*/
+	@Excel(name = "区域名称", width = 15)
+    @ApiModelProperty(value = "区域名称")
+    @Dict(dicCode = "id",dictTable="device_region",dicText="region_title")
+    private String deviceRegionId;
+	/**设备名称*/
+	@Excel(name = "设备名称", width = 15)
+    @ApiModelProperty(value = "设备名称")
+    private String deviceTitle;
+	/**设备类型*/
+	@Excel(name = "设备类型", width = 15, dicCode = "equipment_model")
+    @ApiModelProperty(value = "设备类型")
+    @Dict(dicCode = "equipment_model")
+    private String s7Model;
+	/**设备编码*/
+	@Excel(name = "设备编码", width = 15)
+    @ApiModelProperty(value = "设备编码")
+    private String deviceCode;
+	/**ip*/
+	@Excel(name = "ip", width = 15)
+    @ApiModelProperty(value = "ip")
+    private String deviceIp;
+	/**端口*/
+	@Excel(name = "端口", width = 15)
+    @ApiModelProperty(value = "端口")
+    private String devicePort;
+	/**机架号*/
+	@Excel(name = "机架号", width = 15)
+    @ApiModelProperty(value = "机架号")
+    private Integer s7Rack;
+	/**槽号*/
+	@Excel(name = "槽号", width = 15)
+    @ApiModelProperty(value = "槽号")
+    private String s7Slot;
+	/**安装地址*/
+	@Excel(name = "安装地址", width = 15)
+    @ApiModelProperty(value = "安装地址")
+    private String deviceAddress;
+	/**最长位宽*/
+	@Excel(name = "最长位宽", width = 15)
+    @ApiModelProperty(value = "最长位宽")
+    private String s7LongestWidth;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private String deviceRemark;
+	/**采集通道*/
+	@Excel(name = "采集通道", width = 15, dicCode = "device_information_gather")
+    @ApiModelProperty(value = "采集通道")
+    @Dict(dicCode = "device_information_gather")
+    private String deviceGather;
+	/**从站号*/
+	@Excel(name = "从站号", width = 15)
+    @ApiModelProperty(value = "从站号")
+    private Integer modbusDeviceNum;
+	/**运行状态*/
+	@Excel(name = "运行状态", width = 15, dicCode = "sfqy")
+    @ApiModelProperty(value = "运行状态")
+    @Dict(dicCode = "sfqy")
+    private String status;
+	/**所在部门*/
+    @ApiModelProperty(value = "所在部门")
+    private String sysOrgCode;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+	/**clsid*/
+	@Excel(name = "clsid", width = 15)
+    @ApiModelProperty(value = "clsid")
+    private String opcClsid;
+	/**用户名*/
+	@Excel(name = "用户名", width = 15)
+    @ApiModelProperty(value = "用户名")
+    private String opcUsername;
+	/**密码*/
+	@Excel(name = "密码", width = 15)
+    @ApiModelProperty(value = "密码")
+    private String opcPassword;
+	/**注册表中的名称*/
+	@Excel(name = "注册表中的名称", width = 15)
+    @ApiModelProperty(value = "注册表中的名称")
+    private String opcRegname;
+	/**opc版本号*/
+	@Excel(name = "opc版本号", width = 15)
+    @ApiModelProperty(value = "opc版本号")
+    private String opcVersion;
+	/**opc中文名称*/
+	@Excel(name = "opc中文名称", width = 15)
+    @ApiModelProperty(value = "opc中文名称")
+    private String opcZhName;
+	/**opc英文名称*/
+	@Excel(name = "opc英文名称", width = 15)
+    @ApiModelProperty(value = "opc英文名称")
+    private String opcEnName;
+    /**opc域*/
+    @Excel(name = "opc域", width = 15)
+    @ApiModelProperty(value = "opc域")
+    private String opcDomain;
+    /**采集频率*/
+    @Excel(name = "采集频率", width = 15)
+    @ApiModelProperty(value = "采集频率")
+    @Dict(dicCode = "device_freq")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String freq;
+}

+ 65 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/entity/DeviceRegion.java

@@ -0,0 +1,65 @@
+package org.jeecg.modules.deviceLesm.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("device_region")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="device_region对象", description="区域管理信息表")
+public class DeviceRegion implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**区域名称*/
+	@Excel(name = "区域名称", width = 15)
+    @ApiModelProperty(value = "区域名称")
+    private String regionTitle;
+	/**状态*/
+	@Excel(name = "状态", width = 15, dicCode = "device_region_status")
+	@Dict(dicCode = "device_region_status")
+    @ApiModelProperty(value = "状态")
+    private String status;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+	/**所在部门*/
+    @ApiModelProperty(value = "所在部门")
+    private String sysOrgCode;
+}

+ 14 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/mapper/DeviceInformationLesmMapper.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceLesm.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.deviceLesm.entity.DeviceInformation;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface DeviceInformationLesmMapper extends BaseMapper<DeviceInformation> {
+
+}

+ 15 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/mapper/DeviceRegionMapper.java

@@ -0,0 +1,15 @@
+package org.jeecg.modules.deviceLesm.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.deviceLesm.entity.DeviceRegion;
+
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface DeviceRegionMapper extends BaseMapper<DeviceRegion> {
+
+}

+ 5 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/mapper/xml/DeviceInformationMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.deviceLesm.mapper.DeviceInformationLesmMapper">
+
+</mapper>

+ 5 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/mapper/xml/DeviceRegionMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.deviceLesm.mapper.DeviceRegionMapper">
+
+</mapper>

+ 14 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/IDeviceInformationService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceLesm.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.deviceLesm.entity.DeviceInformation;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface IDeviceInformationService extends IService<DeviceInformation> {
+
+}

+ 15 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/IDeviceRegionService.java

@@ -0,0 +1,15 @@
+package org.jeecg.modules.deviceLesm.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.deviceLesm.entity.DeviceRegion;
+
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface IDeviceRegionService extends IService<DeviceRegion> {
+
+}

+ 19 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/impl/DeviceInformationServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.deviceLesm.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.deviceLesm.entity.DeviceInformation;
+import org.jeecg.modules.deviceLesm.mapper.DeviceInformationLesmMapper;
+import org.jeecg.modules.deviceLesm.service.IDeviceInformationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Service
+public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationLesmMapper, DeviceInformation> implements IDeviceInformationService {
+
+}

+ 19 - 0
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/impl/DeviceRegionServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.deviceLesm.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.deviceLesm.entity.DeviceRegion;
+import org.jeecg.modules.deviceLesm.mapper.DeviceRegionMapper;
+import org.jeecg.modules.deviceLesm.service.IDeviceRegionService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Service
+public class DeviceRegionServiceImpl extends ServiceImpl<DeviceRegionMapper, DeviceRegion> implements IDeviceRegionService {
+
+}

+ 308 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/controller/DeviceInformationController.java

@@ -0,0 +1,308 @@
+package org.jeecg.modules.deviceSbm.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.deviceSbm.entity.DeviceInformation;
+import org.jeecg.modules.deviceSbm.entity.DeviceRegion;
+import org.jeecg.modules.deviceSbm.service.IDeviceInformationService;
+import org.jeecg.modules.deviceSbm.service.IDeviceRegionService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+
+ /**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Api(tags="设备管理信息表")
+@RestController
+@RequestMapping("/device/deviceInformation")
+@Slf4j
+public class DeviceInformationController extends JeecgController<DeviceInformation, IDeviceInformationService> {
+	@Autowired
+	private IDeviceInformationService deviceInformationService;
+	@Autowired
+	private IDeviceRegionService deviceRegionService;
+
+	/**
+	 * 分页列表查询
+	 *
+	 * @param deviceInformation
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "设备管理信息表-分页列表查询")
+	@ApiOperation(value="设备管理信息表-分页列表查询", notes="设备管理信息表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<DeviceInformation>> queryPageList(DeviceInformation deviceInformation,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<DeviceInformation> queryWrapper = QueryGenerator.initQueryWrapper(deviceInformation, req.getParameterMap());
+		Page<DeviceInformation> page = new Page<DeviceInformation>(pageNo, pageSize);
+		IPage<DeviceInformation> pageList = deviceInformationService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param deviceInformation
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-添加")
+	@ApiOperation(value="设备管理信息表-添加", notes="设备管理信息表-添加")
+//	@RequiresPermissions("device:device_information:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody DeviceInformation deviceInformation) {
+		deviceInformationService.save(deviceInformation);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param deviceInformation
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-编辑")
+	@ApiOperation(value="设备管理信息表-编辑", notes="设备管理信息表-编辑")
+//	@RequiresPermissions("device:device_information:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody DeviceInformation deviceInformation) {
+		deviceInformationService.updateById(deviceInformation);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-通过id删除")
+	@ApiOperation(value="设备管理信息表-通过id删除", notes="设备管理信息表-通过id删除")
+//	@RequiresPermissions("device:device_information:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		deviceInformationService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "设备管理信息表-批量删除")
+	@ApiOperation(value="设备管理信息表-批量删除", notes="设备管理信息表-批量删除")
+//	@RequiresPermissions("device:device_information:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.deviceInformationService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "设备管理信息表-通过id查询")
+	@ApiOperation(value="设备管理信息表-通过id查询", notes="设备管理信息表-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<DeviceInformation> queryById(@RequestParam(name="id",required=true) String id) {
+		DeviceInformation deviceInformation = deviceInformationService.getById(id);
+		if(deviceInformation==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(deviceInformation);
+	}
+
+	 /**
+	  * 导出excel
+	  *
+	  * @param request
+	  * @param deviceInformation
+	  */
+//    @RequiresPermissions("device:device_information:exportXls")
+	 @RequestMapping(value = "/exportXls")
+	 public ModelAndView exportXls(HttpServletRequest request, DeviceInformation deviceInformation) {
+//		return super.exportXls(request, deviceInformation, DeviceInformation.class, "设备管理信息");
+		 // Step.1 组装查询条件
+		 QueryWrapper<DeviceInformation> queryWrapper = QueryGenerator.initQueryWrapper(deviceInformation, request.getParameterMap());
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+		 // 过滤选中数据
+		 String selections = request.getParameter("selections");
+		 if (oConvertUtils.isNotEmpty(selections)) {
+			 List<String> selectionList = Arrays.asList(selections.split(","));
+			 queryWrapper.in("id",selectionList);
+		 }
+
+		 // Step.2 获取导出数据
+		 List<DeviceInformation> exportList = deviceInformationService.list(queryWrapper);
+
+		 for (DeviceInformation deviceinfo : exportList) {
+			 // 转换区域名称
+			 String deviceregionid = deviceinfo.getDeviceRegionId();
+			 if(StringUtils.isNotEmpty(deviceregionid)){
+				 DeviceRegion deviceRegion = deviceRegionService.getById(deviceregionid);
+				 if(deviceRegion == null) {
+					 deviceinfo.setDeviceRegionId("");
+				 }else{
+					 deviceinfo.setDeviceRegionId(deviceRegion.getRegionTitle());
+				 }
+			 }
+		 }
+		 // Step.3 AutoPoi 导出Excel
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 //此处设置的filename无效 ,前端会重更新设置一下
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "设备信息列表");
+		 mv.addObject(NormalExcelConstants.CLASS, DeviceInformation.class);
+		 ExportParams exportParams=new ExportParams("设备信息数据" + "报表", "导出人:" + sysUser.getRealname(), "设备信息");
+		 mv.addObject(NormalExcelConstants.PARAMS,exportParams);
+		 mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		 return mv;
+	 }
+
+
+	 /**
+	  * excel导入模板
+	  *
+	  * @param request
+	  * @param deviceInformation
+	  */
+//    @RequiresPermissions("device:device_information:exportXls")
+	 @RequestMapping(value = "/exportXlsModel/{type}")
+	 public ModelAndView exportXlsModel(HttpServletRequest request, DeviceInformation deviceInformation,@PathVariable(name = "type")String type) {
+		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+		 List<String> exportFieldsList = new ArrayList<>();
+		 Field[] fileds = DeviceInformation.class.getDeclaredFields();
+		 List<Field> list = new ArrayList(Arrays.asList(fileds));
+		 for(Field field : list){
+			 if(field.getName().contains(type)){
+				 exportFieldsList.add(field.getName());
+			 }
+			 if(!field.getName().contains("s7")&&!field.getName().contains("opc")&&!field.getName().contains("modbus")){
+			 	exportFieldsList.add(field.getName());
+			 }
+		 }
+		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		 mv.addObject(NormalExcelConstants.FILE_NAME, "设备导入模板");
+		 mv.addObject(NormalExcelConstants.CLASS, DeviceInformation.class);
+		 mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("设备导入模板", "导出人:"+sysUser.getRealname(), "设备导入模板"));
+		 mv.addObject(NormalExcelConstants.EXPORT_FIELDS,String.join(",", exportFieldsList));
+		 mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<DeviceInformation>());
+		 return mv;
+	 }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+//    @RequiresPermissions("device:device_information:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+//        return super.importExcel(request, response, DeviceInformation.class);
+		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+			// 获取上传文件对象
+			MultipartFile file = entity.getValue();
+			ImportParams params = new ImportParams();
+			params.setTitleRows(2);
+			params.setHeadRows(1);
+			params.setNeedSave(true);
+			try {
+				List<DeviceInformation> list = ExcelImportUtil.importExcel(file.getInputStream(), DeviceInformation.class, params);
+				StringBuffer errorLine = new StringBuffer();
+				AtomicInteger line = new AtomicInteger(1);
+				list.forEach(deviceinfo -> {
+					QueryWrapper<DeviceRegion> queryWrapper = new QueryWrapper<>();
+					queryWrapper.eq("region_title", deviceinfo.getDeviceRegionId());
+					// 设备状态处理
+					deviceinfo.setStatus("1");
+					// 设备区域处理
+					DeviceRegion deviceRegion = deviceRegionService.getOne(queryWrapper);
+					if(deviceRegion == null) {
+						deviceinfo.setDeviceRegionId("");
+					}else{
+						deviceinfo.setDeviceRegionId(deviceRegion.getId());
+					}
+					line.getAndIncrement();
+				});
+				if(errorLine.length()>0){
+					return Result.error("数据格式有误!有误行数:"+errorLine);
+				}
+				deviceInformationService.saveBatch(list);
+				return Result.OK("文件导入成功!数据行数:" + list.size());
+			} catch (Exception e) {
+				log.error(e.getMessage(),e);
+				return Result.error("文件导入失败:"+e.getMessage());
+			} finally {
+				try {
+					file.getInputStream().close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return Result.OK("文件导入失败!");
+    }
+
+
+	 /**
+	  * 通过区域划分获取设备
+	  *
+	  * @return
+	  */
+	 @GetMapping(value = "/getByRegion")
+	 public Result<List<DeviceInformation>> getByRegion(@RequestParam(name = "region") String region,@RequestParam(name = "region") String type) {
+		 LambdaQueryWrapper<DeviceInformation> eq = new LambdaQueryWrapper<DeviceInformation>()
+				 .eq(DeviceInformation::getDeviceRegionId, region)
+				 .isNull(DeviceInformation::getFreq)
+				 .eq(DeviceInformation::getDeviceGather,type);
+		 return Result.OK(deviceInformationService.list(eq));
+	 }
+
+}

+ 162 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/controller/DeviceRegionController.java

@@ -0,0 +1,162 @@
+package org.jeecg.modules.deviceSbm.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.deviceSbm.entity.DeviceRegion;
+import org.jeecg.modules.deviceSbm.service.IDeviceRegionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+ /**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Api(tags="区域管理信息表")
+@RestController
+@RequestMapping("/device/deviceRegion")
+@Slf4j
+public class DeviceRegionController extends JeecgController<DeviceRegion, IDeviceRegionService> {
+	@Autowired
+	private IDeviceRegionService deviceRegionService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param deviceRegion
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "区域管理信息表-分页列表查询")
+	@ApiOperation(value="区域管理信息表-分页列表查询", notes="区域管理信息表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<DeviceRegion>> queryPageList(DeviceRegion deviceRegion,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<DeviceRegion> queryWrapper = QueryGenerator.initQueryWrapper(deviceRegion, req.getParameterMap());
+		Page<DeviceRegion> page = new Page<DeviceRegion>(pageNo, pageSize);
+		IPage<DeviceRegion> pageList = deviceRegionService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param deviceRegion
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-添加")
+	@ApiOperation(value="区域管理信息表-添加", notes="区域管理信息表-添加")
+//	@RequiresPermissions("device:device_region:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody DeviceRegion deviceRegion) {
+		deviceRegionService.save(deviceRegion);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param deviceRegion
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-编辑")
+	@ApiOperation(value="区域管理信息表-编辑", notes="区域管理信息表-编辑")
+//	@RequiresPermissions("device:device_region:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody DeviceRegion deviceRegion) {
+		deviceRegionService.updateById(deviceRegion);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-通过id删除")
+	@ApiOperation(value="区域管理信息表-通过id删除", notes="区域管理信息表-通过id删除")
+	@RequiresPermissions("device:device_region:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		deviceRegionService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "区域管理信息表-批量删除")
+	@ApiOperation(value="区域管理信息表-批量删除", notes="区域管理信息表-批量删除")
+	@RequiresPermissions("device:device_region:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.deviceRegionService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "区域管理信息表-通过id查询")
+	@ApiOperation(value="区域管理信息表-通过id查询", notes="区域管理信息表-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<DeviceRegion> queryById(@RequestParam(name="id",required=true) String id) {
+		DeviceRegion deviceRegion = deviceRegionService.getById(id);
+		if(deviceRegion==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(deviceRegion);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param deviceRegion
+    */
+    @RequiresPermissions("device:device_region:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, DeviceRegion deviceRegion) {
+        return super.exportXls(request, deviceRegion, DeviceRegion.class, "区域管理信息表");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("device:device_region:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, DeviceRegion.class);
+    }
+
+}

+ 152 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/entity/DeviceInformation.java

@@ -0,0 +1,152 @@
+package org.jeecg.modules.deviceSbm.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("device_information")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="device_information对象", description="设备管理信息表")
+public class DeviceInformation implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**区域名称*/
+	@Excel(name = "区域名称", width = 15)
+    @ApiModelProperty(value = "区域名称")
+    @Dict(dicCode = "id",dictTable="device_region",dicText="region_title")
+    private String deviceRegionId;
+	/**设备名称*/
+	@Excel(name = "设备名称", width = 15)
+    @ApiModelProperty(value = "设备名称")
+    private String deviceTitle;
+	/**设备类型*/
+	@Excel(name = "设备类型", width = 15, dicCode = "equipment_model")
+    @ApiModelProperty(value = "设备类型")
+    @Dict(dicCode = "equipment_model")
+    private String s7Model;
+	/**设备编码*/
+	@Excel(name = "设备编码", width = 15)
+    @ApiModelProperty(value = "设备编码")
+    private String deviceCode;
+	/**ip*/
+	@Excel(name = "ip", width = 15)
+    @ApiModelProperty(value = "ip")
+    private String deviceIp;
+	/**端口*/
+	@Excel(name = "端口", width = 15)
+    @ApiModelProperty(value = "端口")
+    private String devicePort;
+	/**机架号*/
+	@Excel(name = "机架号", width = 15)
+    @ApiModelProperty(value = "机架号")
+    private Integer s7Rack;
+	/**槽号*/
+	@Excel(name = "槽号", width = 15)
+    @ApiModelProperty(value = "槽号")
+    private String s7Slot;
+	/**安装地址*/
+	@Excel(name = "安装地址", width = 15)
+    @ApiModelProperty(value = "安装地址")
+    private String deviceAddress;
+	/**最长位宽*/
+	@Excel(name = "最长位宽", width = 15)
+    @ApiModelProperty(value = "最长位宽")
+    private String s7LongestWidth;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private String deviceRemark;
+	/**采集通道*/
+	@Excel(name = "采集通道", width = 15, dicCode = "device_information_gather")
+    @ApiModelProperty(value = "采集通道")
+    @Dict(dicCode = "device_information_gather")
+    private String deviceGather;
+	/**从站号*/
+	@Excel(name = "从站号", width = 15)
+    @ApiModelProperty(value = "从站号")
+    private Integer modbusDeviceNum;
+	/**运行状态*/
+	@Excel(name = "运行状态", width = 15, dicCode = "sfqy")
+    @ApiModelProperty(value = "运行状态")
+    @Dict(dicCode = "sfqy")
+    private String status;
+	/**所在部门*/
+    @ApiModelProperty(value = "所在部门")
+    private String sysOrgCode;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+	/**clsid*/
+	@Excel(name = "clsid", width = 15)
+    @ApiModelProperty(value = "clsid")
+    private String opcClsid;
+	/**用户名*/
+	@Excel(name = "用户名", width = 15)
+    @ApiModelProperty(value = "用户名")
+    private String opcUsername;
+	/**密码*/
+	@Excel(name = "密码", width = 15)
+    @ApiModelProperty(value = "密码")
+    private String opcPassword;
+	/**注册表中的名称*/
+	@Excel(name = "注册表中的名称", width = 15)
+    @ApiModelProperty(value = "注册表中的名称")
+    private String opcRegname;
+	/**opc版本号*/
+	@Excel(name = "opc版本号", width = 15)
+    @ApiModelProperty(value = "opc版本号")
+    private String opcVersion;
+	/**opc中文名称*/
+	@Excel(name = "opc中文名称", width = 15)
+    @ApiModelProperty(value = "opc中文名称")
+    private String opcZhName;
+	/**opc英文名称*/
+	@Excel(name = "opc英文名称", width = 15)
+    @ApiModelProperty(value = "opc英文名称")
+    private String opcEnName;
+    /**opc域*/
+    @Excel(name = "opc域", width = 15)
+    @ApiModelProperty(value = "opc域")
+    private String opcDomain;
+    /**采集频率*/
+    @Excel(name = "采集频率", width = 15)
+    @ApiModelProperty(value = "采集频率")
+    @Dict(dicCode = "device_freq")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String freq;
+}

+ 65 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/entity/DeviceRegion.java

@@ -0,0 +1,65 @@
+package org.jeecg.modules.deviceSbm.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("device_region")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="device_region对象", description="区域管理信息表")
+public class DeviceRegion implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**区域名称*/
+	@Excel(name = "区域名称", width = 15)
+    @ApiModelProperty(value = "区域名称")
+    private String regionTitle;
+	/**状态*/
+	@Excel(name = "状态", width = 15, dicCode = "device_region_status")
+	@Dict(dicCode = "device_region_status")
+    @ApiModelProperty(value = "状态")
+    private String status;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+	/**所在部门*/
+    @ApiModelProperty(value = "所在部门")
+    private String sysOrgCode;
+}

+ 14 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/mapper/DeviceInformationMapper.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceSbm.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.deviceSbm.entity.DeviceInformation;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface DeviceInformationMapper extends BaseMapper<DeviceInformation> {
+
+}

+ 14 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/mapper/DeviceRegionMapper.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceSbm.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.deviceSbm.entity.DeviceRegion;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface DeviceRegionMapper extends BaseMapper<DeviceRegion> {
+
+}

+ 5 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/mapper/xml/DeviceInformationMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.deviceSbm.mapper.DeviceInformationMapper">
+
+</mapper>

+ 5 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/mapper/xml/DeviceRegionMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.deviceSbm.mapper.DeviceRegionMapper">
+
+</mapper>

+ 14 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/service/IDeviceInformationService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceSbm.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.deviceSbm.entity.DeviceInformation;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface IDeviceInformationService extends IService<DeviceInformation> {
+
+}

+ 14 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/service/IDeviceRegionService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.deviceSbm.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.deviceSbm.entity.DeviceRegion;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+public interface IDeviceRegionService extends IService<DeviceRegion> {
+
+}

+ 19 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/service/impl/DeviceInformationServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.deviceSbm.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.deviceSbm.entity.DeviceInformation;
+import org.jeecg.modules.deviceSbm.mapper.DeviceInformationMapper;
+import org.jeecg.modules.deviceSbm.service.IDeviceInformationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 设备管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Service
+public class DeviceInformationServiceImpl extends ServiceImpl<DeviceInformationMapper, DeviceInformation> implements IDeviceInformationService {
+
+}

+ 19 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/deviceSbm/service/impl/DeviceRegionServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.deviceSbm.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.deviceSbm.entity.DeviceRegion;
+import org.jeecg.modules.deviceSbm.mapper.DeviceRegionMapper;
+import org.jeecg.modules.deviceSbm.service.IDeviceRegionService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 区域管理信息表
+ * @Author: jeecg-boot
+ * @Date:   2024-09-19
+ * @Version: V1.0
+ */
+@Service
+public class DeviceRegionServiceImpl extends ServiceImpl<DeviceRegionMapper, DeviceRegion> implements IDeviceRegionService {
+
+}

+ 9 - 0
zgztBus/jeecg-server-cloud/jeecg-cloud-nacos/docs/config/jeecg-gateway-router.json

@@ -60,6 +60,8 @@
       "_genkey_2": "/expressio/**",
       "_genkey_3": "/device/deviceInformation/**",
       "_genkey_4": "/device/deviceRegion/**"
+      "_genkey_2": "/expressio/**",
+      "_genkey_3": "/device/**"
     }
   }],
   "filters": [],
@@ -111,6 +113,8 @@
       "_genkey_38": "/largeScreen/powerData/**",
       "_genkey_39": "/largeScreen/powerData/**",
       "_genkey_40": "/device/deviceRegion/**"
+      "_genkey_13": "/traceControl/**",
+      "_genkey_14": "/device/**"
     }
   }],
   "filters": [],
@@ -127,6 +131,8 @@
       "_genkey_3": "/s7/**",
       "_genkey_4": "/device/deviceInformation/**",
       "_genkey_5": "/device/deviceRegion/**"
+      "_genkey_3": "/s7/**",
+      "_genkey_4": "/device/**"
     }
   }],
   "filters": [],
@@ -159,6 +165,9 @@
       "_genkey_19": "/storageCastConfig/**",
       "_genkey_20": "/traceControl/billetQualityDataTrace/billetInfo/**",
       "_genkey_21": "/report/billetFreightSumReport/**",
+      "_genkey_22": "/device/**",
+      "_genkey_23": "/storageBillModel/**"
+      "_genkey_21": "/report/billetFreightSumReport/**",
       "_genkey_22": "/device/deviceInformation/**",
       "_genkey_23": "/storageBillModel/**",
       "_genkey_24": "/actualControl/billetActual/billetHistoryActual/**",