|
@@ -3,6 +3,11 @@ package cn.com.ty.lift.system.settings.service.impl;
|
|
|
import cn.com.ty.lift.common.constants.ApiConstants;
|
|
|
import cn.com.ty.lift.common.constants.CommonEnum;
|
|
|
import cn.com.ty.lift.common.utils.ProjectUtils;
|
|
|
+import cn.com.ty.lift.system.homepage.dao.dto.request.LiftDataRequest;
|
|
|
+import cn.com.ty.lift.system.homepage.dao.dto.response.LiftDataResponse;
|
|
|
+import cn.com.ty.lift.system.homepage.dao.mapper.CommonDataMapper;
|
|
|
+import cn.com.ty.lift.system.homepage.dao.mapper.HomeLiftDataMapper;
|
|
|
+import cn.com.ty.lift.system.homepage.dao.model.LiftMapDataModel;
|
|
|
import cn.com.ty.lift.system.settings.dao.entity.MaintenanceCompany;
|
|
|
import cn.com.ty.lift.system.settings.dao.entity.MtCompanyAttestation;
|
|
|
import cn.com.ty.lift.system.settings.dao.entity.model.ConfirmCompanyResponse;
|
|
@@ -26,6 +31,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
@@ -61,6 +67,12 @@ public class MaintenanceCompanyServiceImpl extends ServiceImpl<MaintenanceCompan
|
|
|
@Resource
|
|
|
private IMtCompanyAttestationService mtCompanyAttestationService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private CommonDataMapper commonDataMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private HomeLiftDataMapper homeLiftDataMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public RestResponse list(MaintenanceCompanyRequest maintenanceCompanyRequest) {
|
|
|
IPage<MaintenanceCompany> maintenanceCompanyPage = new Page<>(
|
|
@@ -182,9 +194,23 @@ public class MaintenanceCompanyServiceImpl extends ServiceImpl<MaintenanceCompan
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public RestResponse getConfirmCompanyList() {
|
|
|
+ public RestResponse getConfirmCompanyList(MaintenanceCompanyRequest maintenanceCompanyRequest) {
|
|
|
List<ConfirmCompanyResponse> confirmCompanyResponseList = new ArrayList<>();
|
|
|
- return RestResponse.success(confirmCompanyResponseList, ApiConstants.RESULT_SUCCESS, "获取认证企业数据成功");
|
|
|
+ //分页数据
|
|
|
+ IPage maintenanceCompanyPage = new Page<>(maintenanceCompanyRequest.getPageNum(),
|
|
|
+ maintenanceCompanyRequest.getPageSize());
|
|
|
+ //获取已认证的团队信息
|
|
|
+ maintenanceCompanyPage = page(maintenanceCompanyPage, new QueryWrapper<MaintenanceCompany>()
|
|
|
+ //如果省份信息
|
|
|
+ .eq(StringUtils.isNotBlank(maintenanceCompanyRequest.getProvinceCode()), "province_code",
|
|
|
+ maintenanceCompanyRequest.getProvinceCode())
|
|
|
+ .eq("is_certificated", ApiConstants.CompanyConstants.MAINTENANCE_PASS)
|
|
|
+ );
|
|
|
+ List<MaintenanceCompany> maintenanceCompanyList = maintenanceCompanyPage.getRecords();
|
|
|
+ //封装认证企业信息
|
|
|
+ packConfirmCompany(maintenanceCompanyList, confirmCompanyResponseList);
|
|
|
+ maintenanceCompanyPage.setRecords(confirmCompanyResponseList);
|
|
|
+ return RestResponse.success(maintenanceCompanyPage, ApiConstants.RESULT_SUCCESS, "获取认证企业数据成功");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -202,4 +228,121 @@ public class MaintenanceCompanyServiceImpl extends ServiceImpl<MaintenanceCompan
|
|
|
return provinceCodeToMaintenanceCompany;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ * @description 封装认证企业信息
|
|
|
+ * @date 2020/2/19 11:18 上午
|
|
|
+ */
|
|
|
+ private void packConfirmCompany(List<MaintenanceCompany> maintenanceCompanyList,
|
|
|
+ List<ConfirmCompanyResponse> confirmCompanyResponseList) {
|
|
|
+ if (maintenanceCompanyList != null && maintenanceCompanyList.size() > 0) {
|
|
|
+ //获取公司id集合
|
|
|
+ List<Long> companyIdList = maintenanceCompanyList.stream()
|
|
|
+ .map(MaintenanceCompany::getId).collect(Collectors.toList());
|
|
|
+ //设置企业团队人数
|
|
|
+ setCompanyUserNum(maintenanceCompanyList);
|
|
|
+
|
|
|
+ //将信息封装为 mtCompanyId(公司id) -> dealTime(处理时间)
|
|
|
+ Map<Long, LocalDateTime> companyIdToDealTime = mtCompanyAttestationService.
|
|
|
+ getMtCompanyIdToDealTime(companyIdList);
|
|
|
+
|
|
|
+ //获取公司项目数
|
|
|
+ Map<Long, Long> mtCompanyIdToProjectNum = commonDataMapper.
|
|
|
+ getMtCompanyIdToProjectNum(new MaintenanceCompanyRequest(companyIdList));
|
|
|
+
|
|
|
+ //获取公司电梯信息
|
|
|
+ Map<Long, List<LiftMapDataModel>> companyIdToLiftData = getMtCompanyIdToLiftData(companyIdList);
|
|
|
+
|
|
|
+ //获取公司维保记录数
|
|
|
+ Map<Long, Long> mtCompanyIdToMtRecordNum = commonDataMapper.getMtCompanyIdToMtRecord(
|
|
|
+ new MaintenanceCompanyRequest(companyIdList));
|
|
|
+
|
|
|
+ //获取公司急修记录数
|
|
|
+ Map<Long, Long> mtCompanyIdToEmergencyRecordNum = commonDataMapper.getMtCompanyIdToEmergencyRecord(
|
|
|
+ new MaintenanceCompanyRequest(companyIdList));
|
|
|
+
|
|
|
+ //循环设置认证公司信息
|
|
|
+ for (MaintenanceCompany maintenanceCompany : maintenanceCompanyList) {
|
|
|
+ //设置认证企业信息
|
|
|
+ setConfirmCompany(confirmCompanyResponseList, companyIdToDealTime, mtCompanyIdToProjectNum, companyIdToLiftData, mtCompanyIdToMtRecordNum, mtCompanyIdToEmergencyRecordNum, maintenanceCompany);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ * @description 设置认证企业信息
|
|
|
+ * @date 2020/2/19 6:53 下午
|
|
|
+ */
|
|
|
+ private void setConfirmCompany(List<ConfirmCompanyResponse> confirmCompanyResponseList, Map<Long, LocalDateTime> companyIdToDealTime, Map<Long, Long> mtCompanyIdToProjectNum, Map<Long, List<LiftMapDataModel>> companyIdToLiftData, Map<Long, Long> mtCompanyIdToMtRecordNum, Map<Long, Long> mtCompanyIdToEmergencyRecordNum, MaintenanceCompany maintenanceCompany) {
|
|
|
+ ConfirmCompanyResponse confirmCompanyResponse = new ConfirmCompanyResponse(maintenanceCompany);
|
|
|
+ //设置认证时间
|
|
|
+ if (companyIdToDealTime.size() > 0) {
|
|
|
+ confirmCompanyResponse.setConfirmTime(companyIdToDealTime.get(maintenanceCompany.getId()));
|
|
|
+ }
|
|
|
+ //设置公司项目数
|
|
|
+ if (mtCompanyIdToProjectNum != null && mtCompanyIdToProjectNum.size() > 0) {
|
|
|
+ confirmCompanyResponse.setProjectNum(mtCompanyIdToProjectNum.get(maintenanceCompany.getId()));
|
|
|
+ }
|
|
|
+ setLiftUnitsNum(companyIdToLiftData, maintenanceCompany, confirmCompanyResponse);
|
|
|
+ //设置公司维保数
|
|
|
+ if (mtCompanyIdToMtRecordNum != null && mtCompanyIdToMtRecordNum.size() > 0) {
|
|
|
+ confirmCompanyResponse.setMaintenanceNum(mtCompanyIdToMtRecordNum.get(maintenanceCompany.getId()));
|
|
|
+ }
|
|
|
+ //设置公司急修数
|
|
|
+ if (mtCompanyIdToEmergencyRecordNum != null && mtCompanyIdToEmergencyRecordNum.size() > 0) {
|
|
|
+ confirmCompanyResponse.setEmergencyNum(mtCompanyIdToEmergencyRecordNum.get(maintenanceCompany.getId()));
|
|
|
+ }
|
|
|
+ //设置最后活跃时间
|
|
|
+ confirmCompanyResponseList.add(confirmCompanyResponse);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ * @description 获取公司id -> 电梯数据
|
|
|
+ * @date 2020/2/19 2:21 下午
|
|
|
+ */
|
|
|
+ private Map<Long, List<LiftMapDataModel>> getMtCompanyIdToLiftData(List<Long> companyIdList) {
|
|
|
+ List<LiftMapDataModel> liftMapDataModelList = homeLiftDataMapper.getCompanyLiftData(new LiftDataRequest(companyIdList));
|
|
|
+ Map<Long, List<LiftMapDataModel>> companyIdToLiftData = new HashMap<>();
|
|
|
+ if (liftMapDataModelList != null && liftMapDataModelList.size() > 0) {
|
|
|
+ companyIdToLiftData = liftMapDataModelList.stream()
|
|
|
+ .collect(Collectors.groupingBy(LiftDataResponse::getMtCompanyId));
|
|
|
+ }
|
|
|
+ return companyIdToLiftData;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ * @description 设置电梯台量数据
|
|
|
+ * @date 2020/2/19 2:22 下午
|
|
|
+ */
|
|
|
+ private void setLiftUnitsNum(Map<Long, List<LiftMapDataModel>> companyIdToLiftData,
|
|
|
+ MaintenanceCompany maintenanceCompany,
|
|
|
+ ConfirmCompanyResponse confirmCompanyResponse) {
|
|
|
+ //设置电梯台量
|
|
|
+ if (companyIdToLiftData.size() > 0) {
|
|
|
+ List<LiftMapDataModel> liftMapDataModels = companyIdToLiftData.get(maintenanceCompany.getId());
|
|
|
+ if (liftMapDataModels != null && liftMapDataModels.size() > 0) {
|
|
|
+ //总台量
|
|
|
+ long totalLiftNum = liftMapDataModels.stream().count();
|
|
|
+ //总停保台量
|
|
|
+ long totalStopLiftNum = liftMapDataModels.stream()
|
|
|
+ .filter(liftMapDataModel -> {
|
|
|
+ return StringUtils.isNotBlank(liftMapDataModel.getLiftCompanyStatus()) &&
|
|
|
+ CommonEnum.LiftStatus.STOP_INSURANCE.equals(liftMapDataModel.getLiftCompanyStatus());
|
|
|
+ }).count();
|
|
|
+ //总活跃台量
|
|
|
+ long totalActiveLiftNum = totalLiftNum - totalStopLiftNum;
|
|
|
+ confirmCompanyResponse.setTotalLiftNum(totalLiftNum);
|
|
|
+ confirmCompanyResponse.setActiveLiftNum(totalActiveLiftNum);
|
|
|
+ confirmCompanyResponse.setStopLiftNum(totalStopLiftNum);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|