统计危大类别情况

This commit is contained in:
guoshengxiong 2024-07-05 15:35:48 +08:00
parent 93162da5b0
commit f69d4a8a53
6 changed files with 70 additions and 7 deletions

View File

@ -3,11 +3,13 @@ package com.zhgd.xmgl.modules.dangerous.controller;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zhgd.annotation.OperLog; import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.enums.ParamEnum;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
import com.zhgd.xmgl.modules.dangerous.entity.*; import com.zhgd.xmgl.modules.dangerous.entity.*;
@ -21,7 +23,11 @@ import com.zhgd.xmgl.modules.worker.service.IEnterpriseInfoService;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord; import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord; import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord;
import com.zhgd.xmgl.modules.xz.special.entity.*;
import com.zhgd.xmgl.modules.xz.special.entity.vo.CountSpecialByFinalStatusVo;
import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.MessageUtil;
import com.zhgd.xmgl.util.NumberUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
@ -253,6 +259,5 @@ public class DangerousEngineeringRecordController {
public Result endEngineer(@ApiIgnore @RequestBody Map<String, Object> paramMap) { public Result endEngineer(@ApiIgnore @RequestBody Map<String, Object> paramMap) {
dangerousEngineeringRecordService.endEngineer(paramMap); dangerousEngineeringRecordService.endEngineer(paramMap);
return Result.ok(); return Result.ok();
} }
} }

View File

@ -6,6 +6,7 @@ import java.util.Map;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.annotation.DataScope; import com.zhgd.annotation.DataScope;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.xz.special.entity.vo.CountSpecialByFinalStatusVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.zhgd.xmgl.modules.dangerous.entity.DangerousEngineeringRecord; import com.zhgd.xmgl.modules.dangerous.entity.DangerousEngineeringRecord;
@ -24,4 +25,6 @@ public interface DangerousEngineeringRecordMapper extends BaseMapper<DangerousEn
List<EntityMap> queryDangerousEngineeringPageList(Page<EntityMap> page, @Param("param")Map<String, Object> map); List<EntityMap> queryDangerousEngineeringPageList(Page<EntityMap> page, @Param("param")Map<String, Object> map);
EntityMap queryDangerousEngineeringPageList(@Param("param") Map<String, Object> map); EntityMap queryDangerousEngineeringPageList(@Param("param") Map<String, Object> map);
List<CountSpecialByFinalStatusVo.GroupByType> countDangerEngineerByFinalStatus(Map<String, Object> param);
} }

View File

@ -46,4 +46,14 @@
</if> </if>
order by t.create_time desc order by t.create_time desc
</select> </select>
<select id="countDangerEngineerByFinalStatus"
resultType="com.zhgd.xmgl.modules.xz.special.entity.vo.CountSpecialByFinalStatusVo$GroupByType">
select engineering_type_name as name,
ifnull(sum(if(final_acceptance_status=1,1,0)),0) as running,
ifnull(sum(if(final_acceptance_status=2,1,0)),0) as complete,
count(*) as num
from dangerous_engineering_record
group by engineering_type_name
</select>
</mapper> </mapper>

View File

@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.dangerous.entity.DangerousEngineeringRecord; import com.zhgd.xmgl.modules.dangerous.entity.DangerousEngineeringRecord;
import com.zhgd.xmgl.modules.xz.security.entity.vo.GetStatScoreVo; import com.zhgd.xmgl.modules.xz.security.entity.vo.GetStatScoreVo;
import com.zhgd.xmgl.modules.xz.special.entity.vo.CountSpecialByFinalStatusVo;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -72,4 +74,11 @@ public interface IDangerousEngineeringRecordService extends IService<DangerousEn
* @param map * @param map
*/ */
void delete(Map<String, Object> map); void delete(Map<String, Object> map);
/**
* 统计危大类别情况
* @param param
* @return
*/
List<CountSpecialByFinalStatusVo.GroupByType> countDangerEngineerByFinalStatus(Map<String, Object> param);
} }

View File

@ -30,6 +30,7 @@ import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecor
import com.zhgd.xmgl.modules.xz.security.entity.vo.GetStatScoreVo; import com.zhgd.xmgl.modules.xz.security.entity.vo.GetStatScoreVo;
import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityQualityInspectionRecordService; import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityQualityInspectionRecordService;
import com.zhgd.xmgl.modules.xz.service.IXzDangerousEngineeringAcceptanceService; import com.zhgd.xmgl.modules.xz.service.IXzDangerousEngineeringAcceptanceService;
import com.zhgd.xmgl.modules.xz.special.entity.vo.CountSpecialByFinalStatusVo;
import com.zhgd.xmgl.util.MapBuilder; import com.zhgd.xmgl.util.MapBuilder;
import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.MessageUtil;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
@ -321,4 +322,9 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl<Dangerous
.eq(XzSecurityQualityInspectionRecord::getType, val) .eq(XzSecurityQualityInspectionRecord::getType, val)
); );
} }
@Override
public List<CountSpecialByFinalStatusVo.GroupByType> countDangerEngineerByFinalStatus(Map<String, Object> param) {
return baseMapper.countDangerEngineerByFinalStatus(param);
}
} }

View File

@ -8,28 +8,30 @@ import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.constant.Cts;
import com.zhgd.xmgl.enums.ParamEnum; import com.zhgd.xmgl.enums.ParamEnum;
import com.zhgd.xmgl.modules.dangerous.service.IDangerousEngineeringRecordService;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord; import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareAlarmRecordMapper; import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareAlarmRecordMapper;
import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService; import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService;
import com.zhgd.xmgl.modules.worker.service.impl.UserEnterpriseServiceImpl; import com.zhgd.xmgl.modules.worker.service.impl.UserEnterpriseServiceImpl;
import com.zhgd.xmgl.modules.xz.emergency.entity.XzEmergencyRecord; import com.zhgd.xmgl.modules.xz.emergency.entity.XzEmergencyRecord;
import com.zhgd.xmgl.modules.xz.emergency.mapper.XzEmergencyRecordMapper; import com.zhgd.xmgl.modules.xz.emergency.mapper.XzEmergencyRecordMapper;
import com.zhgd.xmgl.modules.xz.special.entity.vo.CountSpecialByFinalStatusVo;
import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.util.NumberUtils;
import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil; import com.zhgd.xmgl.util.RefUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping; import springfox.documentation.annotations.ApiIgnore;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Objects;
@RestController @RestController
@RequestMapping(value = {"/xmgl/agjtLiveScreen"}) @RequestMapping(value = {"/xmgl/agjtLiveScreen"})
@ -43,6 +45,9 @@ public class XzAgjtLiveScreenController {
AiAnalyseHardWareAlarmRecordMapper aiAnalyseHardWareAlarmRecordMapper; AiAnalyseHardWareAlarmRecordMapper aiAnalyseHardWareAlarmRecordMapper;
@Lazy @Lazy
@Autowired @Autowired
IDangerousEngineeringRecordService dangerousEngineeringRecordService;
@Lazy
@Autowired
private UserEnterpriseServiceImpl userEnterpriseService; private UserEnterpriseServiceImpl userEnterpriseService;
@Autowired @Autowired
private XzEmergencyRecordMapper xzEmergencyRecordMapper; private XzEmergencyRecordMapper xzEmergencyRecordMapper;
@ -84,4 +89,29 @@ public class XzAgjtLiveScreenController {
IPage<XzEmergencyRecord> pageList = xzEmergencyRecordMapper.queryList(page, queryWrapper); IPage<XzEmergencyRecord> pageList = xzEmergencyRecordMapper.queryList(page, queryWrapper);
return Result.success(pageList); return Result.success(pageList);
} }
@ApiOperation(value = "统计危大类别情况", notes = "统计危大类别情况", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
})
@PostMapping(value = "/countDangerEngineerByFinalStatus")
public Result<CountSpecialByFinalStatusVo> countDangerEngineerByFinalStatus(@ApiIgnore @RequestBody Map<String, Object> param) {
List<CountSpecialByFinalStatusVo.GroupByType> groupByTypes = dangerousEngineeringRecordService.countDangerEngineerByFinalStatus(param);
long sum = groupByTypes.stream().map(CountSpecialByFinalStatusVo.GroupByType::getNum).mapToLong(value -> value).sum();
Long running = 0L;
Long complete = 0L;
for (CountSpecialByFinalStatusVo.GroupByType type : groupByTypes) {
running += type.getRunning();
complete += type.getComplete();
type.setRatio(Optional.ofNullable(NumberUtils.occupyRate(type.getNum(), sum, 2)).orElse(0D));
}
CountSpecialByFinalStatusVo rtVo = new CountSpecialByFinalStatusVo();
CountSpecialByFinalStatusVo.Total total = new CountSpecialByFinalStatusVo.Total();
total.setRunning(running);
total.setComplete(complete);
rtVo.setTotal(total);
rtVo.setGroupByType(groupByTypes);
return Result.success(rtVo);
}
} }