Skip to content

POST /dm-device/device/census/ds

Content-Type: application/json

触发按钮:deviceStatusAjax

入参

出参

传递对象:ResultData

前端校验规则

后端逻辑

业务流程:校验报表查看权限 -> 限定设备统计范围 -> 汇总各状态设备数量 -> 计算设备完好率

├── 校验报表查看权限
│   └── UserClient.queryUserReportFlag :50
│       └── 查询报表管理员标识:UserService.queryUserReportFlag :402-407
│           └── userMapper.queryUserReportFlag :407
│               └── 条件
│                   ├── user_id=当前用户
│                   └── role_name='报表管理员' :275-278
├── 限定设备统计范围
│   ├── 非报表管理员仅统计当前用户部门数据
│   │   └── DeptClient.queryDeptByCurrentUser :556
│   │       └── 查询当前用户可见部门:DepartmentService.queryDeptByCurrentUser :288-295
│   │           ├── departmentMapper.queryDeptByUserId :289
│   │           └── 无归属部门时查询工厂全部部门:departmentMapper.findByfactoryNo :292
│   ├── 默认按重点设备统计 :66-76
│   ├── 按勾选结果调整重点设备范围 :78-83
│   └── 分页统计时取消重点设备限制 :86-87
├── 汇总各状态设备数量
│   ├── 加载设备状态字典:SysDictClient.getDictList :542
│   │   └── 读取字典缓存并在缺失时回源字典表:SysDictService.getCacheDictList :439-481
│   ├── 按设备状态分组统计:DeviceCensusMappper.censusAllDeviceStatus :89
│   │   └── 条件
│   │       ├── 仅统计未删除且状态非空设备 :54-60
│   │       └── 按重点设备、设备分类/类型、设备、部门、产线过滤 :5-45
│   └── 按字典维度回填各状态数量 :90-97
└── 计算设备完好率
    ├── 统计正常设备数:DeviceCensusMappper.deviceStatusRegular :103
    │   └── 条件: device_status='1' 且未删除 :88-93
    ├── 统计有状态设备总数:DeviceCensusMappper.deviceStatusAll :104
    │   └── 条件: device_status非空且未删除 :95-99
    └── 追加设备完好率结果 :101-111

后端校验规则

条件业务约束
├── 生效条件: queryUserReportFlag 返回成功且 data="0" 时,仅允许查询当前用户部门及下级部门数据:censusAllDeviceStatus :50-58
├── 生效条件: queryUserReportFlag 返回成功且 data="0",且当前用户部门列表为空时,直接返回空结果:censusAllDeviceStatus :50-55
├── 生效条件: 未传 deviceTypeVoList,或 deviceTypeVoList 中提取出的 deviceClassify 为空时,默认按重点设备查询:censusAllDeviceStatus :61-76
├── 生效条件: flag 非空且 flag=1 时,按重点设备查询;flag 非空且 flag≠1 时,取消重点设备过滤:censusAllDeviceStatus :78-83
└── 生效条件: isPage 非空且 isPage=1 时,取消重点设备过滤:censusAllDeviceStatus :86-87

涉及数据库表

库名.表名mapper.statement描述
远程服务数据userClient.queryUserReportFlaguserClient