|
|
@@ -0,0 +1,180 @@ |
|
|
|
package com.tuoheng.admin.service.accident.query; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.tuoheng.admin.conver.AccidentConverMapper; |
|
|
|
import com.tuoheng.admin.entity.*; |
|
|
|
import com.tuoheng.admin.enums.MarkEnum; |
|
|
|
import com.tuoheng.admin.enums.DataPermissionEnum; |
|
|
|
import com.tuoheng.admin.mapper.*; |
|
|
|
import com.tuoheng.admin.request.accident.QueryAccidentCardListRequest; |
|
|
|
import com.tuoheng.admin.utils.CurrentUserUtil; |
|
|
|
import com.tuoheng.admin.vo.accident.AccidentVo; |
|
|
|
import com.tuoheng.common.core.config.common.CommonConfig; |
|
|
|
import com.tuoheng.common.core.utils.JsonResult; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询事故卡片列表业务层处理 |
|
|
|
* |
|
|
|
* @author wanjing |
|
|
|
* @team tuoheng |
|
|
|
* @date 2023-03-03 |
|
|
|
*/ |
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
public class QueryAccidentCardListService { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private DeptMapper deptMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private UserMapper userMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private InspectionFileMapper inspectionFileMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private AccidentMapper accidentMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private InspectionMapper inspectionMapper; |
|
|
|
|
|
|
|
public JsonResult getList(QueryAccidentCardListRequest request) { |
|
|
|
// log.info("进入查询事件列表业务"); |
|
|
|
User user = CurrentUserUtil.getUserInfo(); |
|
|
|
String tenantId = user.getTenantId(); |
|
|
|
|
|
|
|
JsonResult result = this.check(tenantId, request); |
|
|
|
if (0 != result.getCode()) { |
|
|
|
log.info("进入查询事故卡片列表业务:校验失败:{}", result.getMsg()); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
List<String> deptIdList = this.getDeptIdList(user); |
|
|
|
request.setDeptIdList(deptIdList); |
|
|
|
request.setTenantId(tenantId); |
|
|
|
List<Accident> accidentList = accidentMapper.selectAccidentCardList(request); |
|
|
|
|
|
|
|
// 构造返回结果对象 |
|
|
|
List<AccidentVo> accidentVoList = this.buildAccidentVoList(accidentList); |
|
|
|
|
|
|
|
return JsonResult.success(accidentVoList); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 检查参数 |
|
|
|
* |
|
|
|
* @param tenantId |
|
|
|
* @param request |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private JsonResult check(String tenantId, QueryAccidentCardListRequest request) { |
|
|
|
return JsonResult.success(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据用户自己的数据权限,查询对应部门的数据 |
|
|
|
* |
|
|
|
* @param user |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private List<String> getDeptIdList(User user) { |
|
|
|
List<String> deptIdList = new ArrayList<>(); |
|
|
|
if (DataPermissionEnum.ALL.getCode() == user.getDataPermission()) { |
|
|
|
return null; |
|
|
|
} else if (DataPermissionEnum.DEPT_AND_SUB_DEPT.getCode() == user.getDataPermission()) { |
|
|
|
deptIdList = deptMapper.selectAllChildListById(user.getDeptId()); |
|
|
|
} else if (DataPermissionEnum.DEPT.getCode() == user.getDataPermission()) { |
|
|
|
deptIdList.add(user.getDeptId()); |
|
|
|
} |
|
|
|
return deptIdList; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @param accidentList |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private List<AccidentVo> buildAccidentVoList(List<Accident> accidentList) { |
|
|
|
Map<String, String> deptNameMap = this.getDeptMap(accidentList); |
|
|
|
Map<String, InspectionFile> inspectionFileMap = this.getInspectionFileMap(accidentList); |
|
|
|
Map<String, Inspection> inspectionMap = this.getInspectionMap(accidentList); |
|
|
|
List<AccidentVo> accidentVoList = AccidentConverMapper.INSTANCE.accidentListToAccidentVoList(accidentList); |
|
|
|
String deptName; |
|
|
|
InspectionFile inspectionFile; |
|
|
|
Inspection inspection; |
|
|
|
for (AccidentVo accidentVo : accidentVoList) { |
|
|
|
if (ObjectUtil.isNotNull(deptNameMap)) { |
|
|
|
deptName = deptNameMap.get(accidentVo.getDeptId()); |
|
|
|
accidentVo.setDeptName(deptName); |
|
|
|
} |
|
|
|
if (ObjectUtil.isNotNull(inspectionFileMap)) { |
|
|
|
inspectionFile = inspectionFileMap.get(accidentVo.getInspectionFileId()); |
|
|
|
if (ObjectUtil.isNotNull(inspectionFile)) { |
|
|
|
accidentVo.setFileName(inspectionFile.getFileName()); |
|
|
|
accidentVo.setFileImage(CommonConfig.imageURL + inspectionFile.getFileImage()); |
|
|
|
accidentVo.setFileOriginal(CommonConfig.imageURL + inspectionFile.getFileOriginal()); |
|
|
|
accidentVo.setFileThumbnail(CommonConfig.imageURL + inspectionFile.getFileThumbnail()); |
|
|
|
} |
|
|
|
} |
|
|
|
if(ObjectUtil.isNotNull(inspectionMap)){ |
|
|
|
inspection = inspectionMap.get(accidentVo.getInspectionId()); |
|
|
|
if(ObjectUtil.isNotNull(inspection)){ |
|
|
|
accidentVo.setInspectionStatus(inspection.getStatus()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return accidentVoList; |
|
|
|
} |
|
|
|
|
|
|
|
private Map<String, Inspection> getInspectionMap(List<Accident> accidentList) { |
|
|
|
if (CollectionUtil.isEmpty(accidentList)) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
List<String> inspectionIdList = accidentList.stream().map(o -> o.getInspectionId()).collect(Collectors.toList()); |
|
|
|
List<Inspection> inspectionList = inspectionMapper.selectList(Wrappers.<Inspection>lambdaQuery() |
|
|
|
.eq(Inspection::getMark, MarkEnum.VALID.getCode()) |
|
|
|
.in(Inspection::getId, inspectionIdList)); |
|
|
|
Map<String, Inspection> inspectionMap = inspectionList.stream().collect(HashMap::new, (m, v) -> m.put(v.getId(), v), HashMap::putAll); |
|
|
|
|
|
|
|
return inspectionMap; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 设置列表中每一个的部门名称 |
|
|
|
* 查询到的列表中的部门Id,作为部门id列表,查询所有的部门,该结果数据量不会太大,放到map中 |
|
|
|
* |
|
|
|
* @param accidentList |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private Map<String, String> getDeptMap(List<Accident> accidentList) { |
|
|
|
if (CollectionUtil.isEmpty(accidentList)) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
List<String> deptIdList = accidentList.stream().map(o -> o.getDeptId()).collect(Collectors.toList()); |
|
|
|
List<Dept> deptList = deptMapper.selectListByIdList(deptIdList); |
|
|
|
Map<String, String> deptNameMap = deptList.stream().collect(HashMap::new, (m, v) -> m.put(v.getId(), v.getName()), HashMap::putAll); |
|
|
|
return deptNameMap; |
|
|
|
} |
|
|
|
|
|
|
|
private Map<String, InspectionFile> getInspectionFileMap(List<Accident> accidentList) { |
|
|
|
if (CollectionUtil.isEmpty(accidentList)) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
List<String> inspectionFileIdList = accidentList.stream().map(o -> o.getInspectionFileId()).collect(Collectors.toList()); |
|
|
|
List<InspectionFile> inspectionFileList = inspectionFileMapper.selectList(new LambdaQueryWrapper<InspectionFile>() |
|
|
|
.in(InspectionFile::getId, inspectionFileIdList)); |
|
|
|
Map<String, InspectionFile> inspectionFileMap = inspectionFileList.stream().collect(HashMap::new, (m, v) -> m.put(v.getId(), v), HashMap::putAll); |
|
|
|
return inspectionFileMap; |
|
|
|
} |
|
|
|
} |