代码提交

dev_xds
姜玉琦 2023-11-26 11:58:45 +08:00
parent dbb809777c
commit e546f71cce
9 changed files with 516 additions and 0 deletions

View File

@ -17,3 +17,12 @@ export function exportView(query) {
params: query
})
}
// 监理单位项目数据汇总
export function selectStatisticsJlProjectList(query) {
return request({
url: '/statistics/project/selectStatisticsJlProjectList',
method: 'get',
params: query
})
}

View File

@ -79,6 +79,7 @@
plain
icon="el-icon-download"
size="mini"
v-hasPermi="['statistics:project:export']"
@click="handleExport"
>导出</el-button
>

View File

@ -0,0 +1,203 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目分类" prop="projectType">
<el-select
v-model="queryParams.projectType"
placeholder="请选择项目分类"
clearable
>
<el-option
v-for="dict in dict.type.project_category"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="建设类型" prop="projectNature">
<el-select
v-model="queryParams.projectNature"
placeholder="请选择项目建设类型"
clearable
>
<el-option
v-for="dict in dict.type.project_build_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="责任主体" prop="deptId" v-hasPermi="['project:project:zgs']">
<el-select v-model="queryParams.deptId" placeholder="请选择责任主体" clearable>
<el-option
v-for="dict in depts"
:key="dict.deptId"
:label="dict.deptName"
:value="dict.deptId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="汇总时间">
<el-date-picker
v-model="daterangeTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
v-hasPermi="['statistics:project:export']"
@click="handleExport"
>导出</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="dataList"
height="700"
stripe border
>
<el-table-column
label="项目名称"
align="left"
prop="projectName"
width="200"
class-name="small-padding fixed-width"
fixed="left"
show-overflow-tooltip
/>
<el-table-column label="监理单位" align="left" fixed="left" prop="unitName" width="210" show-overflow-tooltip/>
<el-table-column label="安全管理" align="center">
<el-table-column label="隐患排查" align="center" prop="aqyhpc_jldw" width="90" show-overflow-tooltip/>
<el-table-column label="应急演练" align="center" prop="yjyl" width="90" show-overflow-tooltip/>
<el-table-column label="专项培训" align="center" prop="zxpx" width="90" show-overflow-tooltip/>
</el-table-column>
<el-table-column label="质量管理" align="center">
<el-table-column label="隐患排查" align="center" prop="zlyhpc_jldw" width="90" show-overflow-tooltip/>
<el-table-column label="取样复试审批中" align="center" prop="clqyfs" width="90" show-overflow-tooltip/>
<el-table-column label="取样复试已审批" align="center" prop="clqyfswc" width="90" show-overflow-tooltip/>
<el-table-column label="材料封样审批中" align="center" prop="clfy" width="90" show-overflow-tooltip/>
<el-table-column label="材料封样已审批" align="center" prop="clfywc" width="90" show-overflow-tooltip/>
<el-table-column label="实测实量审批中" align="center" prop="cscl" width="90" show-overflow-tooltip/>
<el-table-column label="实测实量已审批" align="center" prop="csclwc" width="90" show-overflow-tooltip/>
<el-table-column label="举牌验收审批中" align="center" prop="jpys" width="90" show-overflow-tooltip/>
<el-table-column label="举牌验收已审批" align="center" prop="jpyswc" width="90" show-overflow-tooltip/>
</el-table-column>
<el-table-column label="工程管理" align="center">
<el-table-column label="申请审批中" align="center" prop="gcsq" width="90" show-overflow-tooltip/>
<el-table-column label="申请已审批" align="center" prop="gcsp" width="90" show-overflow-tooltip/>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { selectStatisticsJlProjectList } from "@/api/statistics/statisticsProject";
import axios from 'axios';
export default {
name: "statisticsJlProject",
components: {},
dicts: [
"project_build_type",
"project_category",
],
data() {
return {
//
loading: true,
//
showSearch: true,
//
total: 0,
//
queryParams: {
projectName: null,
projectType: "1",
projectNature: null,
deptId: null,
},
//
form: {},
//
rules: {},
depts: [],
dataList:[],
daterangeTime:[],
};
},
created() {
this.getList();
this.$api.publics.getZgsDeptList().then((d) => {
this.depts = d?.data || [];
});
},
methods: {
/** 查询项目管理列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeTime && "" != this.daterangeTime) {
this.queryParams.params["beginTime"] = this.daterangeTime[0];
this.queryParams.params["endTime"] = this.daterangeTime[1];
}
selectStatisticsJlProjectList(this.queryParams).then((response) => {
this.dataList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 导出按钮操作 */
handleExport() {
this.download('/statistics/project/exportviewJl', {
...this.queryParams
}, `config_${new Date().getTime()}.xlsx`)
},
},
};
</script>

View File

@ -11,12 +11,14 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysDeptService;
import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.domain.vo.ProjectViewExport;
import com.yanzhu.jh.project.domain.vo.ProjectViewJlExport;
import com.yanzhu.jh.project.service.IProjectViewService;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@ -47,6 +49,7 @@ public class ProjectViewController extends BaseBuildNodeController{
@Autowired
IProjectViewService projectViewService;
@PreAuthorize("@ss.hasPermi('statistics:project:list')")
@GetMapping("/selectStatisticsProjectList")
public TableDataInfo selectStatisticsProjectList(SurProject surProject)
{
@ -58,6 +61,8 @@ public class ProjectViewController extends BaseBuildNodeController{
return getDataTable(list);
}
@PreAuthorize("@ss.hasPermi('statistics:project:export')")
@Log(title = "项目数据汇总", businessType = BusinessType.EXPORT)
@PostMapping("/exportView")
public void exportView(HttpServletResponse response, @RequestBody SurProject surProject)
{
@ -612,5 +617,36 @@ public class ProjectViewController extends BaseBuildNodeController{
}
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('statistics:project:list')")
@GetMapping("/selectStatisticsJlProjectList")
public TableDataInfo selectStatisticsJlProjectList(SurProject surProject)
{
surProject.setNowRole(Convert.toStr(getUserFirstRole()));
if(SysRoleEnum.ZGS.getCode().equals(surProject.getNowRole())){
surProject.setDeptId(sysDeptService.getZGSDeptId(getDeptId()));
}
List<ProjectViewJlExport> list = projectViewService.selectStatisticsJlProjectList(surProject);
return getDataTable(list);
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('statistics:project:export')")
@Log(title = "监理数据汇总", businessType = BusinessType.EXPORT)
@PostMapping("/exportviewJl")
public void exportviewJl(HttpServletResponse response, SurProject surProject)
{
surProject.setNowRole(Convert.toStr(getUserFirstRole()));
if(SysRoleEnum.ZGS.getCode().equals(surProject.getNowRole())){
surProject.setDeptId(sysDeptService.getZGSDeptId(getDeptId()));
}
List<ProjectViewJlExport> list = projectViewService.selectStatisticsJlProjectList(surProject);
ExcelUtil<ProjectViewJlExport> util = new ExcelUtil<ProjectViewJlExport>(ProjectViewJlExport.class);
util.exportExcel(response, list, "监理数据汇总");
}
}

View File

@ -0,0 +1,207 @@
package com.yanzhu.jh.project.domain.vo;
import com.ruoyi.common.annotation.Excel;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import java.io.Serializable;
public class ProjectViewJlExport implements Serializable {
private static final long serialVersionUID = 1L;
private Long projectId;
private Long unitId;
@Excel(name = "项目名称", width = 30,align = HorizontalAlignment.LEFT)
private String projectName;
@Excel(name = "监理单位", width = 30,align = HorizontalAlignment.LEFT)
private String unitName;
@Excel(name = "安全隐患-监理单位", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String aqyhpc_jldw;
@Excel(name = "应急演练", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String yjyl;
@Excel(name = "专项培训", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String zxpx;
@Excel(name = "质量隐患-监理单位", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String zlyhpc_jldw;
@Excel(name = "取样复试审批中", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String clqyfs;
@Excel(name = "取样复试已审批", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String clqyfswc;
@Excel(name = "材料封样审批中", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String clfy;
@Excel(name = "材料封样已审批", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String clfywc;
@Excel(name = "实测实量审批中", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String cscl;
@Excel(name = "实测实量已审批", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String csclwc;
@Excel(name = "举牌验收审批中", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String jpys;
@Excel(name = "举牌验收已审批", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String jpyswc;
@Excel(name = "工程申请审批中", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String gcsq;
@Excel(name = "工程申请已审批", width = 20,align = HorizontalAlignment.CENTER, isStatistics = true)
private String gcsp;
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getUnitName() {
return unitName;
}
public void setUnitName(String unitName) {
this.unitName = unitName;
}
public String getAqyhpc_jldw() {
return aqyhpc_jldw;
}
public void setAqyhpc_jldw(String aqyhpc_jldw) {
this.aqyhpc_jldw = aqyhpc_jldw;
}
public String getYjyl() {
return yjyl;
}
public void setYjyl(String yjyl) {
this.yjyl = yjyl;
}
public String getZxpx() {
return zxpx;
}
public void setZxpx(String zxpx) {
this.zxpx = zxpx;
}
public String getZlyhpc_jldw() {
return zlyhpc_jldw;
}
public void setZlyhpc_jldw(String zlyhpc_jldw) {
this.zlyhpc_jldw = zlyhpc_jldw;
}
public String getClqyfs() {
return clqyfs;
}
public void setClqyfs(String clqyfs) {
this.clqyfs = clqyfs;
}
public String getClfy() {
return clfy;
}
public void setClfy(String clfy) {
this.clfy = clfy;
}
public String getCscl() {
return cscl;
}
public void setCscl(String cscl) {
this.cscl = cscl;
}
public String getJpys() {
return jpys;
}
public void setJpys(String jpys) {
this.jpys = jpys;
}
public Long getProjectId() {
return projectId;
}
public void setProjectId(Long projectId) {
this.projectId = projectId;
}
public Long getUnitId() {
return unitId;
}
public void setUnitId(Long unitId) {
this.unitId = unitId;
}
public String getClqyfswc() {
return clqyfswc;
}
public void setClqyfswc(String clqyfswc) {
this.clqyfswc = clqyfswc;
}
public String getClfywc() {
return clfywc;
}
public void setClfywc(String clfywc) {
this.clfywc = clfywc;
}
public String getCsclwc() {
return csclwc;
}
public void setCsclwc(String csclwc) {
this.csclwc = csclwc;
}
public String getJpyswc() {
return jpyswc;
}
public void setJpyswc(String jpyswc) {
this.jpyswc = jpyswc;
}
public String getGcsq() {
return gcsq;
}
public void setGcsq(String gcsq) {
this.gcsq = gcsq;
}
public String getGcsp() {
return gcsp;
}
public void setGcsp(String gcsp) {
this.gcsp = gcsp;
}
}

View File

@ -2,6 +2,7 @@ package com.yanzhu.jh.project.mapper;
import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.domain.vo.ProjectViewExport;
import com.yanzhu.jh.project.domain.vo.ProjectViewJlExport;
import java.util.List;
@ -20,4 +21,11 @@ public interface ProjectViewMapper {
*/
public List<ProjectViewExport> selectStatisticsProjectList(SurProject surProject);
/**
*
* @param surProject
* @return
*/
public List<ProjectViewJlExport> selectStatisticsJlProjectList(SurProject surProject);
}

View File

@ -2,6 +2,7 @@ package com.yanzhu.jh.project.service;
import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.domain.vo.ProjectViewExport;
import com.yanzhu.jh.project.domain.vo.ProjectViewJlExport;
import java.util.List;
@ -19,4 +20,11 @@ public interface IProjectViewService {
* @return
*/
public List<ProjectViewExport> selectStatisticsProjectList(SurProject surProject);
/**
*
* @param surProject
* @return
*/
public List<ProjectViewJlExport> selectStatisticsJlProjectList(SurProject surProject);
}

View File

@ -2,6 +2,7 @@ package com.yanzhu.jh.project.service.impl;
import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.domain.vo.ProjectViewExport;
import com.yanzhu.jh.project.domain.vo.ProjectViewJlExport;
import com.yanzhu.jh.project.mapper.ProjectViewMapper;
import com.yanzhu.jh.project.service.IProjectViewService;
import org.springframework.beans.factory.annotation.Autowired;
@ -30,4 +31,14 @@ public class ProjectViewServiceImpl implements IProjectViewService {
public List<ProjectViewExport> selectStatisticsProjectList(SurProject surProject) {
return projectViewMapper.selectStatisticsProjectList(surProject);
}
/**
*
* @param surProject
* @return
*/
@Override
public List<ProjectViewJlExport> selectStatisticsJlProjectList(SurProject surProject) {
return projectViewMapper.selectStatisticsJlProjectList(surProject);
}
}

View File

@ -58,4 +58,37 @@
<if test="projectNature != null and projectNature != ''"> and sp.projectNature = #{projectNature}</if>
ORDER by sp.projectSort
</select>
<!--查询项目总包单位-->
<select id="selectStatisticsJlProjectList" parameterType="com.yanzhu.jh.project.domain.SurProject" resultType="com.yanzhu.jh.project.domain.vo.ProjectViewJlExport">
select sp.id as projectId,sp.projectName, pui.unitId,pui.unitName,
(select count(1) from smz_ssp_problemmodify a where a.projectId = sp.id and a.roleType=6 and a.infoType=0 and a.isDel=0
<if test="params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''"> and a.createTime between #{params.beginTime} and #{params.endTime}</if>
)as aqyhpc_jldw,
(select count(1) from work_train a LEFT JOIN work_train_dept b on a.id=b.train_id and b.is_main='Y' where a.project_id=sp.id and b.dept_id=pui.unitId and a.train_type=1 and a.is_del=0 ) as yjyl,
(select count(1) from work_train a LEFT JOIN work_train_dept b on a.id=b.train_id and b.is_main='Y' where a.project_id=sp.id and b.dept_id=pui.unitId and a.train_type=0 and a.is_del=0 ) as zxpx,
(select count(1) from smz_ssp_problemmodify a where a.projectId = sp.id and a.roleType=6 and a.infoType=1 and a.isDel=0
<if test="params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''"> and a.createTime between #{params.beginTime} and #{params.endTime}</if>
)as zlyhpc_jldw,
(select count(1) from sur_project_check_detection a where a.project_id = sp.id and a.is_del=0 and approve_status=1)as clqyfs,
(select count(1) from sur_project_check_detection a where a.project_id = sp.id and a.is_del=0 and approve_status=4)as clqyfswc,
(select count(1) from sur_project_checking a where a.project_id = sp.id and a.is_del=0 and approve_status=1)as jpys,
(select count(1) from sur_project_checking a where a.project_id = sp.id and a.is_del=0 and approve_status=4)as jpyswc,
(select count(1) from sur_project_measure a where a.project_id = sp.id and a.is_del=0 and approve_status=1)as cscl,
(select count(1) from sur_project_measure a where a.project_id = sp.id and a.is_del=0 and approve_status=4)as csclwc,
(select count(1) from sur_project_material_seal a where a.project_id = sp.id and a.is_del=0 and approve_status=1)as clfy,
(select count(1) from sur_project_material_seal a where a.project_id = sp.id and a.is_del=0 and approve_status=4)as clfywc,
(select count(DISTINCT a.procInsId) from vw_flow_await a where a.businessKey = sp.id and a.taskName like '%监理%')as gcsq,
(select count(DISTINCT a.procInsId) from vw_flow_finished a where a.businessKey = sp.id and a.taskName like '%监理%')as gcsp
from sur_project sp
left JOIN sur_project_unit_info pui on sp.id=pui.projectId and pui.unitType=4
where (pui.del_flag=0 or pui.del_flag is null)
<if test="projectName != null and projectName != ''"> and sp.projectName like concat('%', #{projectName}, '%')</if>
<if test="deptId != null "> and sp.deptId = #{deptId}</if>
<if test="projectType != null and projectType != ''"> and sp.projectType = #{projectType}</if>
<if test="projectNature != null and projectNature != ''"> and sp.projectNature = #{projectNature}</if>
ORDER by sp.projectSort
</select>
</mapper>