Quellcode durchsuchen

Merge branch 'V0.1.1_test' of http://10.87.21.221:8000/jzyd_yyds/soc into V0.1.1_test

# Conflicts:
#	project_data/sql/0.1.1/soc/soc.sql
jiawuxian vor 1 Jahr
Ursprung
Commit
ad17d76fe9
23 geänderte Dateien mit 263 neuen und 102 gelöschten Zeilen
  1. 10 2
      project_data/sql/0.1.1/soc/soc.sql
  2. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/controller/MonitorAccessReportController.java
  3. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/service/impl/MonitorAccessReportServiceImpl.java
  4. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/controller/ResumptionReportController.java
  5. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/service/impl/ResumptionReportServiceImpl.java
  6. 2 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/controller/SafetyInspectReportController.java
  7. 7 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ProtectionController.java
  8. 4 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/IProtectionService.java
  9. 9 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/ProtectionServiceImpl.java
  10. 11 5
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeviceController.java
  11. 6 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysMultiLayerDictionaryController.java
  12. 20 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/dto/SysDevicePageDto.java
  13. 7 2
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysDeviceMapper.java
  14. 5 5
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeviceService.java
  15. 1 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysMultiLayerDictionaryService.java
  16. 37 62
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeviceServiceImpl.java
  17. 10 2
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysMultiLayerDictionaryServiceImpl.java
  18. 37 12
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java
  19. 1 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/SecurityUserExport.java
  20. 54 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/vo/device/SysDevicePageVo.java
  21. 24 0
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysDeviceMapper.xml
  22. 3 0
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserInformationMapper.xml
  23. 11 6
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 10 - 2
project_data/sql/0.1.1/soc/soc.sql

@@ -1026,7 +1026,7 @@ BEGIN
             ADD COLUMN `device_status` int(2) NULL COMMENT '设备状态' AFTER `device_type`,
             ADD COLUMN `device_model` varchar(255) NULL COMMENT '设备型号' AFTER `device_brand`,
             ADD COLUMN `address` varchar(255) NULL COMMENT '安装位置' AFTER `device_model`,
-            ADD COLUMN `purchasing_time` datetime NULL COMMENT '采购时间' AFTER `address`,
+            ADD COLUMN `purchasing_time` date NULL COMMENT '采购时间' AFTER `address`,
             ADD COLUMN `use_time` datetime NULL COMMENT '开始使用时间' AFTER `maintenance_term`,
             ADD COLUMN `remove _time` datetime NULL COMMENT '移除时间' AFTER `use_time`,
             ADD COLUMN `scrap_time` datetime NULL COMMENT '报废时间' AFTER `remove _time`,
@@ -1045,4 +1045,12 @@ DELIMITER ;
 CALL schema_change();
 
 DELETE FROM `sys_menu` WHERE `id`=1839945558511747073;
-INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (01839945558511747073, '物联看板', 1747911340288892930, 20, '/iot/board', 'iot/board/index', NULL, 1, 0, 'C', '0', '0', 'iot:board', '1', 'monitor', NULL, '超级管理员', '2024-09-28 16:33:14', '超级管理员', '2024-09-28 16:33:55', '');
+INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (01839945558511747073, '物联看板', 1747911340288892930, 20, '/iot/board', 'iot/board/index', NULL, 1, 0, 'C', '0', '0', 'iot:board', '1', 'monitor', NULL, '超级管理员', '2024-09-28 16:33:14', '超级管理员', '2024-09-28 16:33:55', '');
+
+delete from sys_dict_type where dict_type='asset_status';
+delete from sys_dict_data where dict_type='asset_status';
+INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES ('资产状态', 'asset_status', '0', '超级管理员', '2024-09-27 15:57:25', '', null, null);
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (0, '待安装', '0', 'asset_status', null, 'default', 'N', '0', '超级管理员', '2024-09-27 15:58:39', '', null, null);
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (1, '使用中', '1', 'asset_status', null, 'default', 'N', '0', '超级管理员', '2024-09-27 15:59:01', '', null, null);
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (2, '移除', '2', 'asset_status', null, 'default', 'N', '0', '超级管理员', '2024-09-27 15:59:11', '', null, null);
+INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (3, '报废', '3', 'asset_status', null, 'default', 'N', '0', '超级管理员', '2024-09-27 15:59:22', '', null, null);

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/controller/MonitorAccessReportController.java

@@ -39,7 +39,7 @@ public class MonitorAccessReportController {
     @Resource
     private RemoteOrgService remoteOrgService;
     @ApiOperation(value = "监控调阅报表")
-    @RequiresPermissions("core:monitorAccessReport:list")
+//    @RequiresPermissions("core:monitorAccessReport:list")
     @GetMapping("/list")
     public AjaxResult list(MonitoringAccessDTO monitoringAccessDTO) {
         if (null==monitoringAccessDTO.getStartDate()||null==monitoringAccessDTO.getEndDate()){

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/service/impl/MonitorAccessReportServiceImpl.java

@@ -114,7 +114,7 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
         }
         if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
             sysOrgs = remoteOrgService.selectSysOrgByPathAndType(sysOrg.getPath(), 3, SecurityConstants.INNER);
-        } else if (sysOrg.getType() == 3) {
+        } else if (sysOrg.getType() == 3 || sysOrg.getType() == 4) {
             sysOrgs = remoteOrgService.selectSysOrgByPathAndType(sysOrg.getPath(), 4, SecurityConstants.INNER);
         } else {
             return Collections.emptyList();

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/controller/ResumptionReportController.java

@@ -61,7 +61,7 @@ public class ResumptionReportController {
     }
 
     @ApiOperation(value = "每日安全保卫履职-日报表",notes = "web端与App共用此接口")
-    @RequiresPermissions("core:resumptionReport:list")
+//    @RequiresPermissions("core:resumptionReport:list")
     @PostMapping("/list")
     public AjaxResult list(@RequestBody ResumptionDTO resumptionDTO) throws ExecutionException, InterruptedException, TimeoutException {
         if (null == resumptionDTO.getSearchTime()) {

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/service/impl/ResumptionReportServiceImpl.java

@@ -65,7 +65,7 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
         }
         if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
             sysOrgs = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), 3, SecurityConstants.INNER);
-        } else if (sysOrg.getType() == 3) {
+        } else if (sysOrg.getType() == 3 || sysOrg.getType() == 4) {
             sysOrgs = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), 4, SecurityConstants.INNER);
         } else {
             return Collections.emptyList();

+ 2 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/controller/SafetyInspectReportController.java

@@ -40,7 +40,7 @@ public class SafetyInspectReportController {
     private RemoteOrgService remoteOrgService;
 
     @ApiOperation(value = "行社全面检查情况表",notes = "web端与App共用此接口")
-    @RequiresPermissions("core:safetyInspectReport:list")
+//    @RequiresPermissions("core:safetyInspectReport:list")
     @PostMapping("/list")
     public AjaxResult list(@RequestBody SafetyInspectDTO safetyInspectDTO) throws Exception {
         if (null == safetyInspectDTO.getYear()) {
@@ -60,7 +60,7 @@ public class SafetyInspectReportController {
     }
 
     @ApiOperation(value = "网点负责人自查情况表",notes = "web端与App共用此接口")
-    @RequiresPermissions("core:safetyInspectReport:list")
+//    @RequiresPermissions("core:safetyInspectReport:list")
     @PostMapping("/selfInspectList")
     public AjaxResult selfInspectList(@RequestBody SafetyInspectDTO safetyInspectDTO)throws Exception {
         AjaxResult ajax = AjaxResult.success();

+ 7 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ProtectionController.java

@@ -98,6 +98,13 @@ class ProtectionController extends BaseController {
         return success(r);
     }
 
+    @ApiOperation(value = "修改报警子系统 关联登记簿 值")
+    @PutMapping("inBook/{id}/{inBook}")
+    public AjaxResult updateSubSystemInBook(@PathVariable Long id,@PathVariable Integer inBook) {
+        boolean result = protectionService.updateSubSystemInBook(id, inBook);
+        return success(result);
+    }
+
     @ApiOperation(value = "删除防区")
     @DeleteMapping("{id}")
     @RequiresPermissions("device:protection:remove")

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/IProtectionService.java

@@ -55,6 +55,10 @@ public interface IProtectionService extends IService<IotAlarmSubsystem> {
     List<Map<String, List<Map<String,Object>>>> selectDataByOrgId(Long orgId, Date date);
 
     SubsystemSimpleVo getSubsystemSimpleVo(Long id);
+
+    boolean updateSubSystemInBook(Long id, Integer inBook);
+
+
 //    MePage<pageSensorVo> pageSensorList(pageSensorDto request);
 
 //    MePage<ProtectionPageVo4Mybatis> pageByMybatis(ProtectionPageDto4Mybatis request);

+ 9 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/ProtectionServiceImpl.java

@@ -285,6 +285,15 @@ public class ProtectionServiceImpl extends ServiceImpl<ProtectionMapper, IotAlar
     }
 
     @Override
+    public boolean updateSubSystemInBook(Long id, Integer inBook) {
+        IotAlarmSubsystem subsystem = this.getById(id);
+        subsystem.setInBook(inBook);
+        subsystem.setUpdateTime(LocalDateTime.now());
+        subsystem.setUpdateBy(SecurityUtils.getActualSubmitUserName());
+        return updateById(subsystem);
+    }
+
+    @Override
     public List<Map<String, List<Map<String, Object>>>> selectDataByOrgId(Long orgId, Date date) {
 
 

+ 11 - 5
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeviceController.java

@@ -19,11 +19,13 @@ import com.xunmei.system.api.domain.SysDictData;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.dto.ProtectionDTO;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
+import com.xunmei.system.dto.SysDevicePageDto;
 import com.xunmei.system.service.ISysDeviceService;
 import com.xunmei.system.service.ISysDictDataService;
 import com.xunmei.system.service.ISysDictTypeService;
 import com.xunmei.system.service.ISysOrgService;
 import com.xunmei.system.util.DeviceExport;
+import com.xunmei.system.vo.device.SysDevicePageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -68,7 +70,7 @@ public class SysDeviceController extends BaseController {
     @ApiOperation(value = "查询SysDevice列表")
     @RequiresPermissions("system:device:list")
     @GetMapping("/list")
-    public TableDataInfo<SysDevice> list(SysDevice sysDevice) {
+    public TableDataInfo<SysDevicePageVo> list(SysDevicePageDto sysDevice) {
         return sysDeviceService.selectPage(sysDevice);
     }
 
@@ -84,10 +86,14 @@ public class SysDeviceController extends BaseController {
     public AjaxResult listIdName(SysDevice sysDevice) {
         sysDevice.setPageNum(1L);
         sysDevice.setPageSize(99999L);
+        SysDevicePageDto pageVo = new SysDevicePageDto();
+        pageVo.setPageNum(1);
+        pageVo.setPageSize(99999);
+        BeanUtils.copyProperties(sysDevice, pageVo);
 
-        List<?> table = sysDeviceService.selectPage(sysDevice).getRows();
+        List<?> table = sysDeviceService.selectPage(pageVo).getRows();
         List<IdNameVo> voList = table.stream().map(r -> {
-            return new IdNameVo(((SysDevice) r).getId(), ((SysDevice) r).getDeviceName(), "");
+            return new IdNameVo(((SysDevicePageVo) r).getId(), ((SysDevicePageVo) r).getDeviceName(), "");
         }).collect(Collectors.toList());
 
         return success(voList);
@@ -263,14 +269,14 @@ public class SysDeviceController extends BaseController {
                         }
                         ProtectionDTO protectionDTO = sysDeviceService.insertSysDeviceExcel(sysDevice);
 
-                        if(null != protectionDTO){
+                        if (null != protectionDTO) {
                             dtos.add(protectionDTO);
                         }
                     } else {
                         throw new RuntimeException("机构名称" + d.getOrgName() + "不存在");
                     }
                 }
-                if(!dtos.isEmpty()){
+                if (!dtos.isEmpty()) {
                     for (ProtectionDTO dto : dtos) {
                         remoteProtectionService.addByDevice(dto, SecurityConstants.INNER);
                     }

+ 6 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysMultiLayerDictionaryController.java

@@ -32,5 +32,11 @@ public class SysMultiLayerDictionaryController {
         final List<DictionaryTreeVo> list = sysMultiLayerDictionaryService.getDictionaryTree();
         return AjaxResult.success(list);
     }
+
+    @GetMapping("/getDictTreeByParentId")
+    private AjaxResult getDictTreeByParentId(Long parentId){
+        final List<DictionaryTreeVo> list = sysMultiLayerDictionaryService.getDictTreeByParentId(parentId);
+        return AjaxResult.success(list);
+    }
 }
 

+ 20 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/dto/SysDevicePageDto.java

@@ -0,0 +1,20 @@
+package com.xunmei.system.dto;
+
+import com.xunmei.common.core.web.domain.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SysDevicePageDto extends PageRequest {
+
+    @ApiModelProperty(value = "资产类别")
+    private Long assetType;
+
+    @ApiModelProperty(value = "设备分类")
+    private Long deviceType;
+
+    @ApiModelProperty(value = "名称")
+    private String deviceName;
+}

+ 7 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysDeviceMapper.java

@@ -1,14 +1,17 @@
 package com.xunmei.system.mapper;
 
-import java.util.List;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
+import com.xunmei.system.dto.SysDevicePageDto;
 import com.xunmei.system.vo.area.AccessType;
+import com.xunmei.system.vo.device.SysDevicePageVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * 【请填写功能名称】Mapper接口
  *
@@ -86,4 +89,6 @@ public interface SysDeviceMapper extends BaseMapper<SysDevice> {
      * @return 结果
      */
     int deleteSysDeviceByIds(Long[] ids);
+
+    Page<SysDevicePageVo> selectPageData(Page<SysDevicePageVo> pageRequest, @Param("req") SysDevicePageDto req);
 }

+ 5 - 5
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeviceService.java

@@ -1,17 +1,17 @@
 package com.xunmei.system.service;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.dto.ProtectionDTO;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
+import com.xunmei.system.dto.SysDevicePageDto;
 import com.xunmei.system.vo.area.HostVO;
+import com.xunmei.system.vo.device.SysDevicePageVo;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
 
 /**
  * 【设备管理】Service接口
@@ -105,7 +105,7 @@ public interface ISysDeviceService extends IService<SysDevice> {
      * @param sysDevice 查询条件对象
      * @return Page
      */
-    TableDataInfo<SysDevice> selectPage(SysDevice sysDevice);
+    TableDataInfo<SysDevicePageVo> selectPage(SysDevicePageDto sysDevice);
 
 
 

+ 1 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysMultiLayerDictionaryService.java

@@ -19,4 +19,5 @@ public interface ISysMultiLayerDictionaryService extends IService<SysMultiLayerD
 
     List<DictionaryTreeVo> getDictionaryTree();
 
+    List<DictionaryTreeVo> getDictTreeByParentId(Long parentId);
 }

+ 37 - 62
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeviceServiceImpl.java

@@ -7,37 +7,42 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.enums.OrgTypeEnum;
+import com.xunmei.common.core.domain.device.domain.SysMultiLayerDictionary;
 import com.xunmei.common.core.exception.ServiceException;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
-import com.xunmei.system.api.RemoteMediatorService;
 import com.xunmei.system.api.RemoteProtectionService;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.dto.ProtectionDTO;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
 import com.xunmei.system.api.vo.ProtectionVO;
+import com.xunmei.system.dto.SysDevicePageDto;
 import com.xunmei.system.mapper.SysDeviceMapper;
 import com.xunmei.system.mapper.SysOrgMapper;
 import com.xunmei.system.service.ISysDeviceService;
+import com.xunmei.system.service.ISysMultiLayerDictionaryService;
 import com.xunmei.system.service.ISysOrgService;
 import com.xunmei.system.util.DeviceExport;
 import com.xunmei.system.vo.area.AccessType;
 import com.xunmei.system.vo.area.HostVO;
 import com.xunmei.system.vo.area.VideoVO;
+import com.xunmei.system.vo.device.SysDevicePageVo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URLEncoder;
-import java.util.*;
-import java.util.stream.Collectors;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 【请填写功能名称】Service业务层处理
@@ -56,77 +61,42 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
     private SysOrgMapper sysOrgMapper;
     @Autowired
     private RemoteProtectionService remoteProtectionService;
-    @Autowired
-    private RemoteMediatorService remoteMediatorService;
+    @Resource
+    private ISysMultiLayerDictionaryService dictionaryService;
     @Autowired
     private RedisTemplate redisTemplate;
 
     @Override
-    public TableDataInfo<SysDevice> selectPage(SysDevice sysDevice) {
-        //未删除
-        sysDevice.setDelFlag("0");
-        Page<SysDevice> page;
-        //分页
-        if (sysDevice.getPageNum() != null && sysDevice.getPageSize() != null) {
-            page = new Page<>(sysDevice.getPageNum(), sysDevice.getPageSize());
-        } else {
-            page = new Page<>();
-        }
-        //查询条件
-        String n = sysDevice.getDeviceName();
-        sysDevice.setDeviceName(null);
-        QueryWrapper<SysDevice> query = new QueryWrapper<>(sysDevice);
-        if (null != n) {
-            query.like("device_name", n);
-        }
+    public TableDataInfo<SysDevicePageVo> selectPage(SysDevicePageDto req) {
+
         //下穿
-        if (sysDevice.getCheckSub()) {
-            List<Long> ids = orgService.selectCheckSubOrgIdList(sysDevice.getOrgId());
-            //清空前端传递的org_id
-            sysDevice.setOrgId(null);
-            //添加in条件
-            query.in("org_id", ids);
-        }
-        //时间范围查询
-        if (sysDevice.getParams().get("beginTime") != null && sysDevice.getParams().get("endTime") != null) {
-            query.between("create_time", sysDevice.getParams().get("beginTime"), sysDevice.getParams().get("endTime"));
+        if (req.getCheckSub()) {
+            SysOrg org = orgService.getById(req.getOrgId());
+            req.setOrgPath(org.getPath());
         }
+
         //获取数据
-        page = sysDeviceMapper.selectPage(page, query);
-        if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isEmpty(page.getRecords()) && page.getTotal() > 0) {
-            if (sysDevice.getPageNum() != null && sysDevice.getPageSize() != null) {
-                page = new Page<>(sysDevice.getPageNum() - 1, sysDevice.getPageSize());
-            } else {
-                page = new Page<>();
-            }
-            page = sysDeviceMapper.selectPage(page, query);
-        }
-        if (ObjectUtil.isNotEmpty(page.getRecords())) {
-            List<Long> collect = page.getRecords().stream().map(SysDevice::getOrgId).collect(Collectors.toList());
-            List<SysOrg> sysOrgs = orgService.selectByOrgIdList(collect);
-            for (SysDevice record : page.getRecords()) {
-                Optional<SysOrg> any = sysOrgs.stream().filter(r -> ObjectUtil.equal(r.getId(), record.getOrgId())).findAny();
-                if (!any.isPresent()) {
-                    continue;
-                }
-                SysOrg sysOrg = any.get();
-                if (OrgTypeEnum.DIQU_HANG_SHE.getCode().toString().equals(sysOrg.getOrgType())) {
-                    continue;
-                }
-                if (OrgTypeEnum.HANG_SHE.getCode().toString().equals(sysOrg.getOrgType())) {
-                    record.setAffiliatedArea(sysOrg.getAffiliatedArea());
-                    continue;
-                }
-                record.setAffiliatedArea(sysOrg.getAffiliatedArea());
-                record.setAffiliatedBank(sysOrg.getAffiliatedBank());
-            }
-        }
+        Page<SysDevicePageVo> page = sysDeviceMapper.selectPageData(req.getPageRequest(), req);
+        dealDictData(page.getRecords());
         //抓换为TableDataInfo适配前端
         return TableDataInfo.build(page);
 
 
     }
 
+    private void dealDictData(List<SysDevicePageVo> list) {
+        if (ObjectUtil.isEmpty(list)) {
+            return;
+        }
+        List<SysMultiLayerDictionary> dictionaryList = dictionaryService.list();
+        for (SysDevicePageVo vo : list) {
+            dictionaryList.stream().filter(r -> ObjectUtil.equal(vo.getAssetType(), r.getId().toString())).findFirst().ifPresent(r -> vo.setAssetType(r.getName()));
+            dictionaryList.stream().filter(r -> ObjectUtil.equal(vo.getDeviceType(), r.getId().toString())).findFirst().ifPresent(r -> vo.setDeviceType(r.getName()));
+            dictionaryList.stream().filter(r -> ObjectUtil.equal(vo.getDeviceBrand(), r.getId().toString())).findFirst().ifPresent(r -> vo.setDeviceBrand(r.getName()));
+            dictionaryList.stream().filter(r -> ObjectUtil.equal(vo.getDeviceModel(), r.getId().toString())).findFirst().ifPresent(r -> vo.setDeviceModel(r.getName()));
+        }
+    }
+
     /**
      * 查询列表
      *
@@ -254,15 +224,20 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
     /**
      * 新增【请填写功能名称】
      * 该方法只适合单个新增,批量导入时,会导致报警主机新增时数据报错
+     *
      * @param sysDevice 【请填写功能名称】
      * @return 结果
      */
     @Override
     public int insertSysDevice(SysDevice sysDevice) {
         sysDevice.setCreateTime(DateUtils.getNowDate());
+        sysDevice.setUpdateTime(DateUtils.getNowDate());
         sysDevice.setCreateBy(SecurityUtils.getUsername());
+        sysDevice.setUpdateBy(SecurityUtils.getUsername());
         SysOrg sysOrg = orgService.selectSysOrgById(sysDevice.getOrgId());
         sysDevice.setOrgName(sysOrg.getShortName());
+        sysDevice.setOrgPath(sysOrg.getPath());
+        sysDevice.setOrgId(sysOrg.getId());
         SysDevice sysDevice1 = this.checkName(sysDevice.getOrgId(), sysDevice.getDeviceName());
         if (null != sysDevice1) {
             throw new RuntimeException("设备名称重复");

+ 10 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysMultiLayerDictionaryServiceImpl.java

@@ -30,8 +30,16 @@ public class SysMultiLayerDictionaryServiceImpl extends ServiceImpl<SysMultiLaye
         wrapper.eq(SysMultiLayerDictionary::getDeleted, 0);
         final List<SysMultiLayerDictionary> dictionaryList = baseMapper.selectList(wrapper);
         final List<DictionaryTreeVo> treeVoList = BeanHelper.copyProperties(dictionaryList, DictionaryTreeVo.class);
-        final List<DictionaryTreeVo> tree = buildTree(treeVoList, -1L);
-        return tree;
+        return buildTree(treeVoList, -1L);
+    }
+
+    @Override
+    public List<DictionaryTreeVo> getDictTreeByParentId(Long parentId) {
+        LambdaQueryWrapper<SysMultiLayerDictionary> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysMultiLayerDictionary::getDeleted, 0);
+        wrapper.eq(SysMultiLayerDictionary::getParentId, parentId);
+        final List<SysMultiLayerDictionary> dictionaryList = baseMapper.selectList(wrapper);
+        return BeanHelper.copyProperties(dictionaryList, DictionaryTreeVo.class);
     }
 
     //递归构建

+ 37 - 12
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java

@@ -729,6 +729,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     public String calculateWorkExperience(Date workStartDate) {
+        if(workStartDate==null)
+        {
+            return "";
+        }
         LocalDate startDate = workStartDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
         LocalDate currentDate = LocalDate.now();
 
@@ -779,23 +783,44 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 //            if (null != sysOrg1) {
 //                s.setCity(sysOrg1.getShortName().indexOf("地区行社") == -1 ? sysOrg1.getShortName().substring(0, 2) : sysOrg1.getShortName().split("地区行社")[0]);
 //            }
+
             //部门名称
-            String departmentName = iSysDictDataService.selectDictLabel("department_name", s.getDepartmentName());
-            s.setDepartmentName(departmentName);
+            if(StringUtils.isNotEmpty(s.getDepartmentName())){
+                String departmentName = iSysDictDataService.selectDictLabel("department_name", s.getDepartmentName());
+                s.setDepartmentName(departmentName);
+            }
             //现任职务
-            String nowDuties = iSysDictDataService.selectDictLabel("current_position", s.getNowDuties());
-            s.setNowDuties(nowDuties);
+            if(StringUtils.isNotEmpty(s.getNowDuties())) {
+                String nowDuties = iSysDictDataService.selectDictLabel("current_position", s.getNowDuties());
+                s.setNowDuties(nowDuties);
+            }
             //用工形式
-            String workType = iSysDictDataService.selectDictLabel("sys_work_type", s.getWorkType());
-            s.setWorkType(workType);
+            if(StringUtils.isNotEmpty(s.getWorkType())) {
+                String workType = iSysDictDataService.selectDictLabel("sys_work_type", s.getWorkType());
+                s.setWorkType(workType);
+            }
             //最高学历
-            String sysHighestEducation = iSysDictDataService.selectDictLabel("sys_highest_education", s.getHighestEducation());
-            s.setHighestEducation(sysHighestEducation);
+            if(StringUtils.isNotEmpty(s.getHighestEducation())) {
+                String sysHighestEducation = iSysDictDataService.selectDictLabel("sys_highest_education", s.getHighestEducation());
+                s.setHighestEducation(sysHighestEducation);
+            }
             //取得方式
-            String sysEducationType = iSysDictDataService.selectDictLabel("sys_education_type", s.getEducationType());
-            s.setEducationType(sysEducationType);
-            String sysDuties = iSysDictDataService.selectDictLabel("sys_duties", s.getResponsibilitiesLeaderDuties());
-            s.setResponsibilitiesLeaderDuties(sysDuties);
+            if(StringUtils.isNotEmpty(s.getEducationType())) {
+                String sysEducationType = iSysDictDataService.selectDictLabel("sys_education_type", s.getEducationType());
+                s.setEducationType(sysEducationType);
+            }
+
+            if(StringUtils.isNotEmpty(s.getResponsibilitiesLeaderDuties())) {
+                String sysDuties = iSysDictDataService.selectDictLabel("sys_duties", s.getResponsibilitiesLeaderDuties());
+                s.setResponsibilitiesLeaderDuties(sysDuties);
+            }
+
+            //持证上岗考试未通过原因(按照下拉选项填列)
+            if(StringUtils.isNotEmpty(s.getCertificateFailReason())) {
+                String certificateFailReasonStr = iSysDictDataService.selectDictLabel("post_no_pass", s.getCertificateFailReason());
+                s.setCertificateFailReason(certificateFailReasonStr);
+            }
+
             //工作年限
             String workDuration = calculateWorkExperience(s.getWorkTime());
             s.setWorkDuration(workDuration);

+ 1 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/SecurityUserExport.java

@@ -67,5 +67,6 @@ public class SecurityUserExport {
     @ExcelProperty(value = "分管领导职务", index = 19)
     private String responsibilitiesLeaderDuties;
 
+    @ExcelIgnore
     private Date workTime;
 }

+ 54 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/vo/device/SysDevicePageVo.java

@@ -0,0 +1,54 @@
+package com.xunmei.system.vo.device;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SysDevicePageVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "机构id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long orgId;
+
+    @ApiModelProperty(value = "机构名字")
+    private String orgName;
+
+    @ApiModelProperty(value = "orgPath")
+    private String orgPath;
+
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @ApiModelProperty(value = "资产编号")
+    private String assetNo;
+
+    @ApiModelProperty(value = "设备状态")
+    private Integer deviceStatus;
+
+    @ApiModelProperty(value = "设备型号")
+    private String deviceModel;
+
+    @ApiModelProperty(value = "资产类别")
+    private String assetType;
+
+    @ApiModelProperty(value = "设备分类")
+    private String deviceType;
+
+    @ApiModelProperty(value = "设备品牌")
+    private String deviceBrand;
+
+    @ApiModelProperty(value = "地区")
+    private String affiliatedArea;
+
+    @ApiModelProperty(value = "行社")
+    private String affiliatedBank;
+}

+ 24 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysDeviceMapper.xml

@@ -328,4 +328,28 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="selectPageData" resultType="com.xunmei.system.vo.device.SysDevicePageVo">
+        select
+        d.id,d.asset_no,d.org_id,d.org_name,d.device_name,d.asset_type,d.device_type,d.device_brand,d.device_model,o.affiliated_bank,o.affiliated_area,d.device_status
+        from sys_device d
+        inner join sys_org o on d.org_id = o.id
+        where d.del_flag = 0 and o.deleted=0 and o.is_lock = 0
+        <if test="req.deviceName != null and req.deviceName !='' ">
+            and d.device_name like concat('%',#{req.deviceName},'%')
+        </if>
+        <if test="req.assetType != null ">
+            and d.asset_type = #{req.assetType}
+        </if>
+        <if test="req.deviceType != null ">
+            and d.device_type = #{req.deviceType}
+        </if>
+        <if test="req.checkSub == false">
+            and d.org_id = #{req.orgId}
+        </if>
+        <if test="req.checkSub == true">
+            and d.org_path like concat(#{req.orgPath},'%')
+        </if>
+        order by d.create_time desc
+    </select>
 </mapper>

+ 3 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserInformationMapper.xml

@@ -254,6 +254,9 @@
                     <if test="qualificationCertificateUrl != null">qualification_certificate_url =
                         #{qualificationCertificateUrl},
                     </if>
+                    <if test="financialExperts != null">financial_experts =
+                        #{financialExperts},
+                    </if>
                     <if test="createBy != null">create_by =
                         #{createBy},
                     </if>

+ 11 - 6
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -409,12 +409,14 @@
     <select id="getPage" resultType="com.xunmei.system.api.domain.SysUser">
         select t.* from
         (
+        SELECT c.*,
+        GROUP_CONCAT(c.role_name) role_names,
+        CONCAT(",",GROUP_CONCAT( c.roleId ),",") as roleIds from (
         SELECT
+        DISTINCT
         h.user_id AS is_manager,
         <!--        ur. role_names,-->
         <!--        ur. roleIds,-->
-        GROUP_CONCAT(sr.role_name) role_names,
-        CONCAT(",",GROUP_CONCAT( sr.id ),",") as roleIds,
         u.id,
         u.dept_id,
         u.is_lock,
@@ -453,7 +455,9 @@
         u.CODE,
         u.source,
         u.original_org_id,
-        u.is_manage
+        u.is_manage,
+        sr.id as roleId,
+        sr.role_name
         FROM
         sys_user u
         LEFT JOIN sys_org o ON u.original_org_id = o.id
@@ -502,7 +506,8 @@
             <!-- 结束时间检索 -->
             AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{info.params.endTime},'%y%m%d')
         </if>
-        group by u.id
+        ) c
+        group by c.id
         ) t
         where 1=1
         <if test="info.roleId != null and info.roleId != ''">
@@ -747,8 +752,8 @@
                a.certificate_fail_reason                AS certificateFailReason,
                a.responsibilities_leader_name           AS responsibilitiesLeaderName,
                a.responsibilities_leader_duties         AS responsibilitiesLeaderDuties
-        FROM sys_user_information a
-                 LEFT JOIN sys_user b ON a.user_id = b.id
+        FROM sys_user b
+                 LEFT JOIN sys_user_information a ON a.user_id = b.id
                  LEFT JOIN sys_org c ON c.id = b.org_id
         WHERE b.deleted = 0
           AND b.is_manage='Y'