Appearance
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.queryUserReportFlag | userClient |