获取所有和本周的整改数量以及最近20条隐患记录

This commit is contained in:
Administrator 2023-02-28 14:57:05 +08:00
parent 8a5b241257
commit 20207ee480
11 changed files with 120 additions and 2 deletions

View File

@ -6,6 +6,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord;
import com.zhgd.xmgl.modules.dangerous.entity.vo.AllTodayDataHdirVO;
import com.zhgd.xmgl.modules.dangerous.entity.vo.AllWeekDataHdirVO;
import com.zhgd.xmgl.modules.dangerous.entity.vo.TotalAndWeekHiddenDanger;
import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectRecordService;
import com.zhgd.xmgl.util.MessageUtil;
import io.swagger.annotations.Api;
@ -112,6 +113,13 @@ public class HiddenDangerInspectRecordController {
return Result.success(hiddenDangerInspectRecordService.getAllTodayDataHdir(projectSn));
}
@ApiOperation(value = "获取所有和本周的整改数量以及最近20条隐患记录")
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String")
@GetMapping(value = "/getTotalAndWeekHiddenDanger")
public Result<TotalAndWeekHiddenDanger> getTotalAndWeekHiddenDanger(String projectSn) {
return Result.success(hiddenDangerInspectRecordService.getTotalAndWeekHiddenDanger(projectSn));
}
@ApiOperation(value = "所有整改数量、数据分析,本周总数", notes = "所有整改数量、数据分析,本周总数")
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String")
@GetMapping(value = "/getAllWeekDataHdir")

View File

@ -0,0 +1,37 @@
package com.zhgd.xmgl.modules.dangerous.entity.vo;
import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(value = "TotalAndWeekHiddenDanger", description = "获取所有和本周的整改数量以及最近20条隐患记录")
@NoArgsConstructor
@AllArgsConstructor
public class TotalAndWeekHiddenDanger extends AllDataHdirVO {
@ApiModelProperty(value = "本周隐患总数")
private Long weekTotalNum;
@ApiModelProperty(value = "本周整改总数")
private Long weekRectificationNum;
@ApiModelProperty(value = "本周未整改总数")
private Long weekNoRectificationNum;
@ApiModelProperty(value = "本周整改占比")
private Double weekRectificationRatio;
@ApiModelProperty(value = "本周未整改占比")
private Double weekNoRectificationRatio;
@ApiModelProperty(value = "最近20条隐患")
private List<HiddenDangerInspectRecord> hiddenDangerInspectRecordList;
}

View File

@ -6,6 +6,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord;
import com.zhgd.xmgl.modules.dangerous.entity.vo.AllTodayDataHdirVO;
import com.zhgd.xmgl.modules.dangerous.entity.vo.AllWeekDataHdirVO;
import com.zhgd.xmgl.modules.dangerous.entity.vo.TotalAndWeekHiddenDanger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -56,4 +57,6 @@ public interface HiddenDangerInspectRecordMapper extends BaseMapper<HiddenDanger
AllTodayDataHdirVO getAllTodayDataHdir(@Param("projectSn") String projectSn);
AllWeekDataHdirVO getAllWeekDataHdir(@Param("projectSn") String projectSn);
TotalAndWeekHiddenDanger getTotalAndWeekHiddenDanger(String projectSn);
}

View File

@ -381,4 +381,19 @@
from hidden_danger_inspection_record
WHERE project_sn = #{projectSn}
</select>
<select id="getTotalAndWeekHiddenDanger"
resultType="com.zhgd.xmgl.modules.dangerous.entity.vo.TotalAndWeekHiddenDanger"
parameterType="java.lang.String">
SELECT
count( 1 ) allTotalNum,
IFNULL( SUM(( IF ( STATUS = 1 OR STATUS = 4, 1, 0 ))), 0 ) allRectificationNum,
IFNULL( SUM(( IF (!( STATUS = 1 OR STATUS = 4 ) OR STATUS IS NULL, 1, 0 ))), 0 ) allNoRectificationNum,
IFNULL( SUM( YEARWEEK(CURRENT_DATE, 1) = YEARWEEK(inspect_time, 1) ),0 ) weekTotalNum,
IFNULL( SUM( IF ( YEARWEEK(CURRENT_DATE, 1) = YEARWEEK(inspect_time, 1) AND ( STATUS = 1 OR STATUS = 4 ), 1, 0 )), 0 ) weekRectificationNum,
IFNULL( SUM(( IF ( YEARWEEK(CURRENT_DATE, 1) = YEARWEEK(inspect_time, 1) AND !( STATUS = 1 OR STATUS = 4 OR STATUS IS NULL ), 1, 0 ))), 0 ) weekNoRectificationNum
FROM
hidden_danger_inspection_record
WHERE
project_sn = #{projectSn}
</select>
</mapper>

View File

@ -6,6 +6,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord;
import com.zhgd.xmgl.modules.dangerous.entity.vo.AllTodayDataHdirVO;
import com.zhgd.xmgl.modules.dangerous.entity.vo.AllWeekDataHdirVO;
import com.zhgd.xmgl.modules.dangerous.entity.vo.TotalAndWeekHiddenDanger;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@ -62,4 +63,6 @@ public interface IHiddenDangerInspectRecordService extends IService<HiddenDanger
* @return 有整改数量数据分析本周总数
*/
AllWeekDataHdirVO getAllWeekDataHdir(String projectSn);
TotalAndWeekHiddenDanger getTotalAndWeekHiddenDanger(String projectSn);
}

View File

@ -16,6 +16,7 @@ import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerRectifyRecord;
import com.zhgd.xmgl.modules.dangerous.entity.vo.AllDataHdirVO;
import com.zhgd.xmgl.modules.dangerous.entity.vo.AllTodayDataHdirVO;
import com.zhgd.xmgl.modules.dangerous.entity.vo.AllWeekDataHdirVO;
import com.zhgd.xmgl.modules.dangerous.entity.vo.TotalAndWeekHiddenDanger;
import com.zhgd.xmgl.modules.dangerous.mapper.DangerInspectionAcceptanceTableResultMapper;
import com.zhgd.xmgl.modules.dangerous.mapper.HiddenDangerInspectRecordMapper;
import com.zhgd.xmgl.modules.dangerous.mapper.HiddenDangerRectifyRecordMapper;
@ -381,6 +382,24 @@ public class HiddenDangerInspectRecordServiceImpl extends ServiceImpl<HiddenDang
return allTodayDataHdirVO;
}
@Override
public TotalAndWeekHiddenDanger getTotalAndWeekHiddenDanger(String projectSn) {
if (CharSequenceUtil.isBlank(projectSn)) {
throw new IllegalArgumentException("项目sn不能为空");
}
// 本周全部记录数量
TotalAndWeekHiddenDanger totalAndWeekHiddenDanger = hiddenDangerInspectRecordMapper.getTotalAndWeekHiddenDanger(projectSn);
// 设置今日全部占比
setAllRatio(totalAndWeekHiddenDanger);
setWeekRatio(totalAndWeekHiddenDanger);
// 最近20条隐患
List<HiddenDangerInspectRecord> hiddenDangerInspectRecordList = hiddenDangerInspectRecordMapper.selectList(Wrappers.lambdaQuery(HiddenDangerInspectRecord.class)
.eq(HiddenDangerInspectRecord::getProjectSn, projectSn).last("limit 20"));
totalAndWeekHiddenDanger.setHiddenDangerInspectRecordList(hiddenDangerInspectRecordList);
return totalAndWeekHiddenDanger;
}
/**
* 设置全部占比
*
@ -413,4 +432,20 @@ public class HiddenDangerInspectRecordServiceImpl extends ServiceImpl<HiddenDang
// 今日未整改占比
allTodayDataHdir.setTodayNoRectificationRatio(todayTotalNum != 0L ? NumberUtil.div(NumberUtil.mul(todayNoRectificationNum.longValue(), 100), todayTotalNum.longValue(), 2) : 0d);
}
/**
* 设置本周占比
*
* @param totalAndWeekHiddenDanger
*/
private void setWeekRatio(TotalAndWeekHiddenDanger totalAndWeekHiddenDanger) {
// 今日相关数据
Long weekTotalNum = totalAndWeekHiddenDanger.getWeekTotalNum();
Long weekRectificationNum = totalAndWeekHiddenDanger.getWeekRectificationNum();
Long weekNoRectificationNum = totalAndWeekHiddenDanger.getWeekNoRectificationNum();
// 今日整改占比
totalAndWeekHiddenDanger.setWeekRectificationRatio(weekTotalNum != 0L ? NumberUtil.div(NumberUtil.mul(weekRectificationNum.longValue(), 100), weekTotalNum.longValue(), 2) : 0d);
// 今日未整改占比
totalAndWeekHiddenDanger.setWeekNoRectificationRatio(weekTotalNum != 0L ? NumberUtil.div(NumberUtil.mul(weekNoRectificationNum.longValue(), 100), weekTotalNum.longValue(), 2) : 0d);
}
}

View File

@ -66,6 +66,7 @@ public class MaterialApproachRecordController {
HttpServletRequest req) {
QueryWrapper<MaterialApproachRecord> queryWrapper = QueryGenerator.initQueryWrapper(materialApproachRecord, req.getParameterMap());
queryWrapper.lambda().orderByDesc(MaterialApproachRecord::getEntryTime);
Page<MaterialApproachRecord> page = new Page<MaterialApproachRecord>(pageNo, pageSize);
IPage<MaterialApproachRecord> pageList = materialApproachRecordService.page(page, queryWrapper);
return Result.success(pageList);

View File

@ -21,4 +21,7 @@ public class DetectionDateQO {
private String projectSn;
private Integer size;
@ApiModelProperty(value = "材料种类")
private String materialType;
}

View File

@ -128,5 +128,11 @@ public class SubdivisionAcceptanceQO implements Serializable {
*/
@ApiModelProperty(value = "更新时间 yyyy-MM-dd HH:mm:ss 结束时间")
private String endUpdateDate;
@ApiModelProperty(value = "查询开始实际验收日期 yyyy-MM-dd")
private String beginActualAcceptanceDate;
@ApiModelProperty(value = "查询结束实际验收日期 yyyy-MM-dd")
private String endActualAcceptanceDate;
}

View File

@ -47,7 +47,7 @@
inner join subdivision_project subsection on subsection.id = sa.subsection_id
inner join subdivision_project subentry on subentry.id = sa.subentry_id
where sa.project_sn = #{subdivisionAcceptanceQo.projectSn}
-- 分部工程id
-- 分部工程id
<if test="subdivisionAcceptanceQo.subsectionId != null">
and sa.subsection_id = #{subdivisionAcceptanceQo.subsectionId}
</if>
@ -79,6 +79,12 @@
<if test="subdivisionAcceptanceQo.endUpdateDate != null and subdivisionAcceptanceQo.endUpdateDate != ''">
and #{subdivisionAcceptanceQo.endUpdateDate} >= sa.update_date
</if>
<if test="subdivisionAcceptanceQo.beginActualAcceptanceDate != null and subdivisionAcceptanceQo.beginActualAcceptanceDate != ''">
and #{subdivisionAcceptanceQo.beginActualAcceptanceDate} <![CDATA[ <= ]]> sa.actual_acceptance_date
</if>
<if test="subdivisionAcceptanceQo.endActualAcceptanceDate != null and subdivisionAcceptanceQo.endActualAcceptanceDate != ''">
and #{subdivisionAcceptanceQo.endActualAcceptanceDate} >= sa.actual_acceptance_date
</if>
order by ${orderColumn} desc
</select>
</mapper>

View File

@ -79,7 +79,8 @@ public class MaterialDetectionReportServiceImpl extends ServiceImpl<MaterialDete
LambdaQueryWrapper<MaterialDetectionReport> wrapper = Wrappers.<MaterialDetectionReport>lambdaQuery()
.eq(MaterialDetectionReport::getProjectSn, qo.getProjectSn())
.eq(StringUtils.isNoneBlank(qo.getFloor()), MaterialDetectionReport::getFloor, qo.getFloor())
.eq(StringUtils.isNoneBlank(qo.getEventType()), MaterialDetectionReport::getEventType, qo.getEventType());
.eq(StringUtils.isNoneBlank(qo.getEventType()), MaterialDetectionReport::getEventType, qo.getEventType())
.eq(StringUtils.isNoneBlank(qo.getMaterialType()), MaterialDetectionReport::getMaterialType, qo.getMaterialType());
wrapper.orderByDesc(MaterialDetectionReport::getDetectionDate);
return materialDetectionReportMapper.selectPage(new Page<>(1, qo.getSize()), wrapper).getRecords();
}