/** * Copyright (c) 2020 ucsmy.com, All rights reserved. */ package com.ruoyi.project.mobile.service; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.security.ShiroUtils; import com.ruoyi.framework.web.service.JpushService; import com.ruoyi.project.mobile.domain.ApiRequestHeader; import com.ruoyi.project.mobile.domain.ApiResult; import com.ruoyi.project.system.company.domain.Company; import com.ruoyi.project.system.company.service.ICompanyService; import com.ruoyi.project.system.dept.domain.Dept; import com.ruoyi.project.system.dept.service.IDeptService; import com.ruoyi.project.system.notice.domain.Notice; import com.ruoyi.project.system.notice.mapper.NoticeMapper; import com.ruoyi.project.system.notice.service.INoticeService; import com.ruoyi.project.system.role.service.IRoleService; import com.ruoyi.project.system.user.domain.User; import com.ruoyi.project.system.user.service.IUserService; import com.ruoyi.project.tr.dataStatistics.domain.DataStatistics; import com.ruoyi.project.tr.hiddenTroubleType.domain.HiddenTroubleType; import com.ruoyi.project.tr.hiddenTroubleType.service.IHiddenTroubleTypeService; import com.ruoyi.project.tr.region.domain.Region; import com.ruoyi.project.tr.region.service.IRegionService; import com.ruoyi.project.tr.report.service.ReportService; import com.ruoyi.project.tr.riskCheckPoint.domain.RiskCheckPoint; import com.ruoyi.project.tr.riskCheckPoint.service.IRiskCheckPointService; import com.ruoyi.project.tr.riskEvaluationPlan.domain.RiskEvaluationPlan; import com.ruoyi.project.tr.riskEvaluationPlan.service.IRiskEvaluationPlanService; import com.ruoyi.project.tr.riskList.domain.RiskList; import com.ruoyi.project.tr.riskList.service.IRiskListService; import com.ruoyi.project.tr.slideshowPic.domain.SlideshowPic; import com.ruoyi.project.tr.slideshowPic.service.ISlideshowPicService; import com.ruoyi.project.tr.troubleshootType.domain.TroubleshootType; import com.ruoyi.project.tr.troubleshootType.service.ITroubleshootTypeService; import com.ruoyi.project.tr.versionControl.domain.VersionControl; import com.ruoyi.project.tr.versionControl.service.IVersionControlService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.ui.ModelMap; import java.lang.reflect.Type; import java.util.*; /** * @Description:用于风险评估的前端方法, * @Author: Administrator * @Created Date: 2020年05月15日 * @LastModifyDate: * @LastModifyBy: * @Version: */ @Service public class ApiBaseService extends BaseApiService { @Autowired private IUserService userService; @Autowired private IDeptService deptService; @Autowired private IRegionService regionService; @Autowired private IRiskListService riskListService; @Autowired private IHiddenTroubleTypeService hiddenTroubleTypeService; @Autowired private ITroubleshootTypeService troubleshootTypeService; @Autowired private IRiskEvaluationPlanService riskEvaluationPlanService; @Autowired private IRiskCheckPointService riskCheckPointService; @Autowired private INoticeService noticeService; @Autowired private NoticeMapper noticeMapper; @Autowired private IVersionControlService versionControlService; @Autowired private ReportService reportService; @Autowired private ICompanyService companyService; @Autowired private ISlideshowPicService slideshowPicService; @Autowired private IRoleService roleService; @Autowired JpushService jpushService; /** * 根据公司id 获取用户信息 * * @param str * @param header * @return */ public ApiResult getUserListByCompanyId(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { JSONObject parseObject = JSONObject.parseObject(str); Long companyId = parseObject.getLong("companyId"); if (companyId == null) { return ApiResult.error("公司ID不能为空!"); } String userName = parseObject.getString("userName"); User u = new User(); u.setCompanyId(companyId); if (!StringUtils.isEmpty(userName)) { u.setUserName(userName); } List userList = userService.selectUserList(u); return ApiResult.success("查询成功", userList); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 根据公司id 获取用户信息(如果是总公司或分公司账号,则可以查询所有成员) * * @param str * @param header * @return */ public ApiResult getParentAndSonUserListByCompanyId(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { JSONObject parseObject = JSONObject.parseObject(str); Long companyId = parseObject.getLong("companyId"); if (companyId == null) { return ApiResult.error("公司ID不能为空!"); } Company company = companyService.selectCompanyById(companyId); List companyList = new ArrayList<>(); if (companyId != null && companyId != 0L && companyId != -1L && company != null) { if (company.getParentId() == 0L) { companyList.add(company); //查询是否存在子公司 Company sonQuery = new Company(); sonQuery.setParentId(companyId); List sonList = companyService.selectCompanyList(sonQuery); if (sonList.size() == 0) { } else { companyList.addAll(sonList); } } else { Company companyParent = companyService.selectCompanyById(company.getParentId()); companyList.add(companyParent); //查询是否存在子公司 Company sonQuery = new Company(); sonQuery.setParentId(companyParent.getCompanyId()); List sonList = companyService.selectCompanyList(sonQuery); companyList.addAll(sonList); } } String userName = parseObject.getString("userName"); List companyIdList = new ArrayList<>(); for (Company c : companyList) { companyIdList.add(c.getCompanyId()); } User u = new User(); u.setCompanyIdList(companyIdList); if (!StringUtils.isEmpty(userName)) { u.setUserName(userName); } List userList = userService.selectUserList(u); return ApiResult.success("查询成功", userList); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 根据公司id 获取部门信息 * * @param str * @param header * @return */ public ApiResult getDeptListByCompanyId(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { JSONObject parseObject = JSONObject.parseObject(str); Long companyId = parseObject.getLong("companyId"); if (companyId == null) { return ApiResult.error("公司ID不能为空!"); } User u = new User(); u.setCompanyId(companyId); List deptList = deptService.selectDeptListByCompanyId(companyId); return ApiResult.success("查询成功", deptList); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 根据公司id 获取区域信息 * * @param str * @param header * @return */ public ApiResult getRegionListByCompanyId(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { JSONObject parseObject = JSONObject.parseObject(str); Long companyId = parseObject.getLong("companyId"); if (companyId == null) { return ApiResult.error("公司ID不能为空!"); } List regionList = regionService.selectRegionListByCompanyId(companyId); return ApiResult.success("查询成功", regionList); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 根据公司id和风险单元类型,获取风险信息 * * @param str * @param header * @return */ public ApiResult getRiskListByCompanyIdAndType(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { RiskList risk = new RiskList(); JSONObject parseObject = JSONObject.parseObject(str); Long companyId = parseObject.getLong("companyId"); if (companyId == null) { return ApiResult.error("公司ID不能为空!"); } risk.setCompanyId(companyId); Integer type = parseObject.getInteger("type"); if (type == null) { return ApiResult.error("风险单元类型不能为空"); } risk.setRiskType(type); List riskList = riskListService.selectRiskListList(risk); return ApiResult.success("查询成功", riskList); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 获取隐患类别基本设置 * * @param str * @param header * @return */ public ApiResult getHiddenTroubleTypeByCompanyId(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { HiddenTroubleType hiddenTroubleType = new HiddenTroubleType(); JSONObject parseObject = JSONObject.parseObject(str); Long companyId = parseObject.getLong("companyId"); if (companyId == null) { return ApiResult.error("公司ID不能为空!"); } hiddenTroubleType.setCompanyId(companyId); List hiddenTroubleTypeList = hiddenTroubleTypeService.selectHiddenTroubleTypeList(hiddenTroubleType); return ApiResult.success("查询成功", hiddenTroubleTypeList); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 获取排查类型基本设置 * * @param str * @param header * @return */ public ApiResult getTroubleShootTypeByCompanyId(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { TroubleshootType troubleshootType = new TroubleshootType(); JSONObject parseObject = JSONObject.parseObject(str); Long companyId = parseObject.getLong("companyId"); if (companyId == null) { return ApiResult.error("公司ID不能为空!"); } // troubleshootType.setCompanyId(companyId); List hiddenTroubleTypeList = troubleshootTypeService.selectTroubleshootTypeList(troubleshootType); return ApiResult.success("查询成功", hiddenTroubleTypeList); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 根据检查点id,返回这条检查点 最近此一次的评价计划,对应的检查点 * * @param str * @param header * @return */ public ApiResult getCheckPointByRiskId(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { JSONObject parseObject = JSONObject.parseObject(str); Long riskId = parseObject.getLong("riskId"); if (riskId == null) { return ApiResult.error("riskId不能为空!"); } RiskList risk = riskListService.selectRiskListById(riskId); if (risk == null) { return ApiResult.error("未查到该风险单元!"); } //查询该风险单元最近的评价计划 RiskEvaluationPlan plan = riskEvaluationPlanService.getRiskEvaluationPlanByRecent(riskId); if (plan == null) { return ApiResult.error("该风险单元未评价!"); } RiskCheckPoint checkPoint = new RiskCheckPoint(); checkPoint.setPlanId(plan.getPlanId()); List checkPointList = riskCheckPointService.selectRiskCheckPointList(checkPoint); return ApiResult.success("查询成功", checkPointList); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 获取最新一条公告 * * @param str * @param header * @return */ public ApiResult getNewNotice(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { Notice notice = new Notice(); notice.setStatus("0"); notice.setPublishStatus("已发布"); List noticeList = noticeService.selectNoticeList(notice); if (noticeList.size() > 0) { return ApiResult.success("查询成功", noticeList.get(0)); } else { return ApiResult.success("查询成功", new Notice()); } } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } //获取全部公告 public ApiResult getAllNotice(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { Set stringSet = roleService.selectRoleKeys(Long.valueOf(header.userId)); Notice notice = new Notice(); if (stringSet.contains("straightRegionUser")) { } else { notice.setPublishStatus("已发布"); } notice.setStatus("0"); List noticeList = noticeService.selectNoticeList(notice); return ApiResult.success("查询公告成功", noticeList); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } //新增公告 public ApiResult addNotice(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { Notice notice = new ObjectMapper().readValue(str, Notice.class); if (StringUtils.isEmpty(notice.getNoticeTitle())) { return ApiResult.error("公告标题不能为空"); } if (StringUtils.isEmpty(notice.getNoticeContent())) { return ApiResult.error("公告内容不能为空"); } // notice.setPublishStatus("未发布"); notice.setPublishStatus("已发布"); notice.setStatus("0"); notice.setCreateBy(header.loginName); int i = noticeMapper.insertNotice(notice); //大文本通知栏样式 Map extrasMap = new HashMap(); extrasMap.put("message", "这是一个公告通知"); extrasMap.put("methodType", "goToNotice"); extrasMap.put("notice", JSONObject.toJSONString(notice)); jpushService.pushAll(notice.getNoticeTitle(), notice.getNoticeContent(), 1, notice.getNoticeContent(), extrasMap); return ApiResult.success("新增公告成功", notice); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } //修改公告 public ApiResult updateNotice(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { Notice notice = new ObjectMapper().readValue(str, Notice.class); if (StringUtils.isEmpty(notice.getNoticeTitle())) { return ApiResult.error("公告标题不能为空"); } if (StringUtils.isEmpty(notice.getNoticeContent())) { return ApiResult.error("公告内容不能为空"); } notice.setUpdateBy(header.loginName); int i = noticeMapper.updateNotice(notice); return ApiResult.success("修改公告成功", notice); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } //发布公告 public ApiResult publishNotice(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { Notice notice = new ObjectMapper().readValue(str, Notice.class); if (notice.getNoticeId() == null) { return ApiResult.error("公告id不能为空"); } notice.setPublishStatus("已发布"); notice.setUpdateBy(header.loginName); int i = noticeMapper.updateNotice(notice); return ApiResult.success("发布公告成功", notice); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } //删除公告 public ApiResult deleteNotice(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { Notice notice = new ObjectMapper().readValue(str, Notice.class); if (notice.getNoticeId() == null) { return ApiResult.error("公告id不能为空"); } int i = noticeService.deleteNoticeByIds(notice.getNoticeId().toString()); return ApiResult.success("删除公告成功", i); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 获取所用的安卓版本 * * @param str * @param header * @return */ public ApiResult getAllVersionControl(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { List versionControlList = versionControlService.selectVersionControlList(new VersionControl()); return ApiResult.success("查询成功", versionControlList); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 获取公示页面头部信息 * * @param str * @param header * @return */ public ApiResult getPublicityHeadData(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { JSONObject parseObject = JSONObject.parseObject(str); Long userId = parseObject.getLong("userId"); if (userId != null) { User user = userService.selectUserById(userId); if (user == null) { return ApiResult.error("未找到该用户!"); } ModelMap modelMap = new ModelMap(); reportService.selectPublicityHeadData(user.getCompanyId(), modelMap); return ApiResult.success("查询成功", modelMap); } else { return ApiResult.error("userId不能为空!"); } } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 获取公司信息 * * @param str * @param header * @return */ public ApiResult getCompanyInfo(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { JSONObject parseObject = JSONObject.parseObject(str); Long userId = parseObject.getLong("userId"); if (userId != null) { User user = userService.selectUserById(userId); if (user == null) { return ApiResult.error("未找到该用户!"); } Company company = companyService.selectCompanyById(user.getCompanyId()); return ApiResult.success("查询成功", company); } else { return ApiResult.error("userId不能为空!"); } } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } /** * 查询轮播图信息 * * @param str * @param header * @return */ public ApiResult getSlideshowPic(String str, ApiRequestHeader header) { //验证userId,loginName,token,deviceType,deviceId,appType 是否一致 ApiRequestHeader requestHeader = getHeader(header); if (!(header.equals(requestHeader))) { return ApiResult.errorToken("验证userId,loginName,token,deviceType,deviceId,appType 不一致"); } try { List slideshowPics = slideshowPicService.selectSlideshowPicList(new SlideshowPic()); List list = new ArrayList<>(); if (slideshowPics != null && slideshowPics.size() != 0) { for (int i = 0; i < slideshowPics.size(); i++) { if (slideshowPics.get(i) != null && StringUtils.isNotEmpty(slideshowPics.get(i).getPicUrl())) { list.add(slideshowPics.get(i).getPicUrl()); } } } return ApiResult.success("查询成功", list); } catch (Exception ex) { ApiResult.error("异常"); } return ApiResult.error("异常"); } }