Compare commits

..

No commits in common. "08d0cc59b86a2e63ed292a64123ae48936b61a4e" and "0caa21dc180aada2b0201e14dc9f3f4ace9abfc6" have entirely different histories.

8 changed files with 324 additions and 495 deletions

View File

@ -111,11 +111,12 @@
</el-form-item> </el-form-item>
<el-form-item label="审批内容"> <el-form-item label="审批内容">
<div v-for="(file, index) in initData.files" :key="index"> <div v-for="(file, index) in initData.files" :key="index">
<el-link <el-button
type="primary" size="mini"
type="text"
icon="el-icon-paperclip" icon="el-icon-paperclip"
@click="handledownload(file)" @click="handledownload(file)"
>{{ file.substring(file.lastIndexOf("/") + 1) }}</el-link >{{ file.substring(file.lastIndexOf("/") + 1) }}</el-button
> >
</div> </div>
</el-form-item> </el-form-item>
@ -474,10 +475,6 @@ export default {
height: 100%; height: 100%;
float: left; float: left;
padding-left: 20px; padding-left: 20px;
.el-link .el-link--inner{
word-break: break-all !important;
}
} }
} }
.containers { .containers {

View File

@ -53,7 +53,7 @@
<el-form-item label="审批内容" prop="files"> <el-form-item label="审批内容" prop="files">
<FileUpload <FileUpload
@input="fileInput" @input="fileInput"
:limit="30" :limit="18"
v-model="form.files" v-model="form.files"
:fileType="['pdf', 'png', 'jpg', 'jpeg']" :fileType="['pdf', 'png', 'jpg', 'jpeg']"
/> />

View File

@ -53,7 +53,7 @@
<el-form-item label="审批内容" prop="files"> <el-form-item label="审批内容" prop="files">
<FileUpload <FileUpload
@input="fileInput" @input="fileInput"
:limit="30" :limit="18"
:fileType="['pdf', 'png', 'jpg', 'jpeg']" :fileType="['pdf', 'png', 'jpg', 'jpeg']"
/> />
</el-form-item> </el-form-item>

View File

@ -116,11 +116,12 @@
</el-form-item> </el-form-item>
<el-form-item label="审批内容"> <el-form-item label="审批内容">
<div v-for="(file, index) in initData.files" :key="index"> <div v-for="(file, index) in initData.files" :key="index">
<el-link <el-button
type="primary" size="mini"
type="text"
icon="el-icon-paperclip" icon="el-icon-paperclip"
@click="handledownload(file)" @click="handledownload(file)"
>{{ file.substring(file.lastIndexOf("/") + 1) }}</el-link >{{ file.substring(file.lastIndexOf("/") + 1) }}</el-button
> >
</div> </div>
</el-form-item> </el-form-item>
@ -254,7 +255,7 @@ export default {
returnTaskList: [], // 退 returnTaskList: [], // 退
returnTask: false, returnTask: false,
returnTaskBtn: false, returnTaskBtn: false,
fileTypes: ["pdf", "png", "jpg", "jpeg"], fileTypes:['pdf','png','jpg','jpeg'],
}; };
}, },
computed: {}, computed: {},
@ -618,9 +619,7 @@ export default {
}, },
handledownload(url) { handledownload(url) {
let fileType = url.split("."); let fileType = url.split(".");
if ( if(this.fileTypes.indexOf(fileType[fileType.length-1].toLocaleLowerCase())>-1){
this.fileTypes.indexOf(fileType[fileType.length - 1].toLocaleLowerCase()) > -1
) {
window.open(process.env.VUE_APP_BASE_API+url); window.open(process.env.VUE_APP_BASE_API+url);
}else{ }else{
this.$download.resource(url); this.$download.resource(url);
@ -672,10 +671,6 @@ export default {
height: 100%; height: 100%;
float: left; float: left;
padding-left: 20px; padding-left: 20px;
.el-link .el-link--inner{
word-break: break-all !important;
}
} }
} }
.containers { .containers {

View File

@ -91,8 +91,7 @@
:data="dataList" :data="dataList"
:span-method="objectSpanMethod" :span-method="objectSpanMethod"
height="700" height="700"
stripe stripe border
border
> >
<el-table-column <el-table-column
label="项目名称" label="项目名称"
@ -103,31 +102,14 @@
fixed="left" fixed="left"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column <el-table-column label="参建单位" align="left" fixed="left" prop="unitName" width="163" show-overflow-tooltip/>
label="参建单位"
align="left"
fixed="left"
prop="unitName"
width="163"
show-overflow-tooltip
/>
<el-table-column label="项目详情" align="center"> <el-table-column label="项目详情" align="center">
<el-table-column label="劳务实名制" align="center"> <el-table-column label="劳务实名制" align="center">
<el-table-column <el-table-column label="劳务人员" align="center" prop="lwry" width="90" show-overflow-tooltip/>
label="劳务人员"
align="center"
prop="lwry"
width="90"
show-overflow-tooltip
/>
<el-table-column label="实名制接入" align="center" prop="lwsm" width="90"> <el-table-column label="实名制接入" align="center" prop="lwsm" width="90">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.lwsm == 1" type="success" effect="dark" <el-tag v-if="scope.row.lwsm==1" type="success" effect="dark"></el-tag>
>已接入</el-tag <el-tag v-if="scope.row.lwsm==0" type="danger" effect="dark"></el-tag>
>
<el-tag v-if="scope.row.lwsm == 0" type="danger" effect="dark"
>未接入</el-tag
>
</template> </template>
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
@ -137,214 +119,71 @@
<el-tag v-if="scope.row.jdyj==2" type="danger" effect="dark"></el-tag> <el-tag v-if="scope.row.jdyj==2" type="danger" effect="dark"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="环境检测" align="center" prop="hjjc" width="90">
label="劳资预警" <template slot-scope="scope">
align="center" <el-tag v-if="scope.row.hjjc==1" type="success" effect="dark"></el-tag>
prop="lzyjs" <el-tag v-if="scope.row.hjjc==0" type="danger" effect="dark"></el-tag>
width="90" </template>
show-overflow-tooltip </el-table-column>
/>
<el-table-column label="项目预警" align="center"> <el-table-column label="项目预警" align="center">
<el-table-column <el-table-column label="AI预警" align="center" prop="aiyjs" width="90" show-overflow-tooltip/>
label="AI预警" <el-table-column label="安全预警" align="center" prop="aqyjs" width="90" show-overflow-tooltip/>
align="center" <el-table-column label="质量预警" align="center" prop="zlyjs" width="90" show-overflow-tooltip/>
prop="aiyjs" <el-table-column label="环境预警" align="center" prop="hjyjs" width="90" show-overflow-tooltip/>
width="90"
show-overflow-tooltip
/>
<el-table-column
label="安全预警"
align="center"
prop="aqyjs"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="质量预警"
align="center"
prop="zlyjs"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="环境预警"
align="center"
prop="hjyjs"
width="90"
show-overflow-tooltip
/>
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="安全管理" align="center"> <el-table-column label="安全管理" align="center">
<el-table-column <el-table-column label="安责险" align="center" prop="azx" width="80" show-overflow-tooltip>
label="安责险"
align="center"
prop="azx"
width="80"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.azx==1" type="success" effect="dark"></el-tag> <el-tag v-if="scope.row.azx==1" type="success" effect="dark"></el-tag>
<el-tag v-if="scope.row.azx==0" type="danger" effect="dark"></el-tag> <el-tag v-if="scope.row.azx==0" type="danger" effect="dark"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="一切险" align="center" prop="yqx" width="80" show-overflow-tooltip>
label="一切险"
align="center"
prop="yqx"
width="80"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.yqx==1" type="success" effect="dark"></el-tag> <el-tag v-if="scope.row.yqx==1" type="success" effect="dark"></el-tag>
<el-tag v-if="scope.row.yqx==0" type="danger" effect="dark"></el-tag> <el-tag v-if="scope.row.yqx==0" type="danger" effect="dark"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="安全隐患排查" align="center"> <el-table-column label="安全隐患排查" align="center">
<el-table-column <el-table-column label="甲方代表" align="center" prop="aqyhpc_jfdb" width="90" show-overflow-tooltip/>
label="甲方代表" <el-table-column label="监理单位" align="center" prop="aqyhpc_jldw" width="90" show-overflow-tooltip/>
align="center" <el-table-column label="总包单位" align="center" prop="aqyhpc_zbdw" width="90" show-overflow-tooltip/>
prop="aqyhpc_jfdb"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="监理单位"
align="center"
prop="aqyhpc_jldw"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="总包单位"
align="center"
prop="aqyhpc_zbdw"
width="90"
show-overflow-tooltip
/>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="特种人员" align="center" prop="tzry" width="90" show-overflow-tooltip/>
label="特种人员" <el-table-column label="应急演练" align="center" prop="yjyl" width="90" show-overflow-tooltip/>
align="center" <el-table-column label="教育培训" align="center" prop="zxpx" width="90" show-overflow-tooltip/>
prop="tzry"
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>
<el-table-column label="质量管理" align="center"> <el-table-column label="质量管理" align="center">
<el-table-column label="质量隐患排查" align="center"> <el-table-column label="质量隐患排查" align="center">
<el-table-column <el-table-column label="甲方代表" align="center" prop="zlyhpc_jfdb" width="90" show-overflow-tooltip/>
label="甲方代表" <el-table-column label="监理单位" align="center" prop="zlyhpc_jldw" width="90" show-overflow-tooltip/>
align="center" <el-table-column label="总包单位" align="center" prop="zlyhpc_zbdw" width="90" show-overflow-tooltip/>
prop="zlyhpc_jfdb"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="监理单位"
align="center"
prop="zlyhpc_jldw"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="总包单位"
align="center"
prop="zlyhpc_zbdw"
width="90"
show-overflow-tooltip
/>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="取样复试" align="center" prop="clqyfs" width="90" show-overflow-tooltip/>
label="取样复试" <el-table-column label="材料封样" align="center" prop="clfy" width="90" show-overflow-tooltip/>
align="center" <el-table-column label="实测实量" align="center" prop="cscl" width="90" show-overflow-tooltip/>
prop="clqyfs" <el-table-column label="举牌验收" align="center" prop="jpys" width="90" show-overflow-tooltip/>
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="cscl"
width="90"
show-overflow-tooltip
/>
<el-table-column
label="举牌验收"
align="center"
prop="jpys"
width="90"
show-overflow-tooltip
/>
</el-table-column> </el-table-column>
<el-table-column label="视频监控" align="center"> <el-table-column label="视频监控" align="center">
<el-table-column label="实时监控" align="center" prop="ssjk" width="90"> <el-table-column label="实时监控" align="center" prop="ssjk" width="90">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.ssjk != 0" type="success" effect="dark" <el-tag v-if="scope.row.ssjk!=0" type="success" effect="dark"></el-tag>
>已开通</el-tag
>
<el-tag v-if="scope.row.ssjk==0" type="danger" effect="dark"></el-tag> <el-tag v-if="scope.row.ssjk==0" type="danger" effect="dark"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="AI监控" align="center" prop="aijk" width="90"> <el-table-column label="AI监控" align="center" prop="aijk" width="90">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.aijk == 1" type="success" effect="dark" <el-tag v-if="scope.row.aijk==1" type="success" effect="dark"></el-tag>
>已开通</el-tag
>
<el-tag v-if="scope.row.aijk==0" type="danger" effect="dark"></el-tag> <el-tag v-if="scope.row.aijk==0" type="danger" effect="dark"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="项目全景" align="center" prop="yssys" width="120" show-overflow-tooltip/>
label="项目全景"
align="center"
prop="yssys"
width="120"
show-overflow-tooltip
/>
</el-table-column> </el-table-column>
<el-table-column label="工程管理" align="center"> <el-table-column label="工程管理" align="center">
<el-table-column <el-table-column label="项目标准化" align="center" prop="bzh" width="120" show-overflow-tooltip/>
label="项目标准化" <el-table-column label="审批进行中" align="center" prop="gcsq" width="120" show-overflow-tooltip/>
align="center" <el-table-column label="审批已完成" align="center" prop="gcsp" width="120" show-overflow-tooltip/>
prop="bzh"
width="120"
show-overflow-tooltip
/>
<el-table-column
label="审批进行中"
align="center"
prop="gcsq"
width="120"
show-overflow-tooltip
/>
<el-table-column
label="审批已完成"
align="center"
prop="gcsp"
width="120"
show-overflow-tooltip
/>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
@ -352,17 +191,19 @@
<script> <script>
import { import {
selectStatisticsProjectList, selectStatisticsProjectList, exportView
exportView,
} from "@/api/statistics/statisticsProject"; } from "@/api/statistics/statisticsProject";
import axios from "axios"; import axios from 'axios';
import { saveAs } from "file-saver"; import { saveAs } from 'file-saver';
import { getToken } from "@/utils/auth"; import { getToken } from '@/utils/auth'
export default { export default {
name: "statisticsProject", name: "statisticsProject",
components: {}, components: {},
dicts: ["project_build_type", "project_category"], dicts: [
"project_build_type",
"project_category",
],
data() { data() {
return { return {
// //
@ -441,10 +282,7 @@ export default {
pos = 0; pos = 0;
} else { } else {
// //
if ( if (data[i][spanKey] === data[i - 1][spanKey] && data[i].projectId === data[i - 1].projectId) {
data[i][spanKey] === data[i - 1][spanKey] &&
data[i].projectId === data[i - 1].projectId
) {
spanArr[pos] += 1; spanArr[pos] += 1;
spanArr.push(0); spanArr.push(0);
} else { } else {
@ -463,21 +301,19 @@ export default {
this.queryParams.params["beginTime"] = this.daterangeTime[0]; this.queryParams.params["beginTime"] = this.daterangeTime[0];
this.queryParams.params["endTime"] = this.daterangeTime[1]; this.queryParams.params["endTime"] = this.daterangeTime[1];
} }
let url = process.env.VUE_APP_BASE_API + "/statistics/project/exportView"; let url = process.env.VUE_APP_BASE_API + '/statistics/project/exportView';
axios({ axios({
method: "post", method: 'post',
url: url, url: url,
data: this.queryParams, data: this.queryParams,
responseType: "blob", responseType: 'blob',
headers: { Authorization: "Bearer " + getToken() }, headers: { 'Authorization': 'Bearer ' + getToken() }
}).then((res) => { }).then((res) => {
this.loading = false; this.loading = false;
let timeStamp = new Date().getTime(); let timeStamp = new Date().getTime();
const blob = new Blob([res.data], { const blob = new Blob([res.data], { type: 'application/vnd.ms-excel;charset=utf-8' })
type: "application/vnd.ms-excel;charset=utf-8", this.saveAs(blob, decodeURIComponent('项目汇总数据_'+timeStamp+'.xlsx'))
}); })
this.saveAs(blob, decodeURIComponent("项目汇总数据_" + timeStamp + ".xlsx"));
});
}, },
saveAs(text, name, opts) { saveAs(text, name, opts) {
saveAs(text, name, opts); saveAs(text, name, opts);
@ -485,3 +321,4 @@ export default {
}, },
}; };
</script> </script>

View File

@ -14,22 +14,24 @@ import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.domain.vo.ProjectViewExport; import com.yanzhu.jh.project.domain.vo.ProjectViewExport;
import com.yanzhu.jh.project.domain.vo.ProjectViewJlExport; import com.yanzhu.jh.project.domain.vo.ProjectViewJlExport;
import com.yanzhu.jh.project.service.IProjectViewService; import com.yanzhu.jh.project.service.IProjectViewService;
import org.apache.poi.ss.usermodel.Cell; import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream; import java.io.BufferedOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -307,7 +309,7 @@ public class ProjectViewController extends BaseBuildNodeController{
tempCell.setCellStyle(headerStyle); tempCell.setCellStyle(headerStyle);
tempCell = tempRow.createCell(5); tempCell = tempRow.createCell(5);
tempCell.setCellValue("劳资预警"); tempCell.setCellValue("环境检测");
tempCell.setCellStyle(headerStyle); tempCell.setCellStyle(headerStyle);
tempCell = tempRow.createCell(6); tempCell = tempRow.createCell(6);
@ -491,7 +493,7 @@ public class ProjectViewController extends BaseBuildNodeController{
tempCell.setCellStyle(contentStyle); tempCell.setCellStyle(contentStyle);
tempCell = tempRow.createCell(5); tempCell = tempRow.createCell(5);
tempCell.setCellValue(Convert.toStr(view.getLzyjs(),"0")); tempCell.setCellValue(view.getHjjc().equals("0")?"未接入":"已接入");
tempCell.setCellStyle(contentStyle); tempCell.setCellStyle(contentStyle);
tempCell = tempRow.createCell(6); tempCell = tempRow.createCell(6);

View File

@ -87,9 +87,7 @@ public class ProjectViewExport implements Serializable {
private String jdyj; private String jdyj;
@Excel(name = "劳资预警", width = 20,align = HorizontalAlignment.CENTER) private String hjjc;
private String lzyjs;
private String hjyjs; private String hjyjs;
private String zlyjs; private String zlyjs;
private String aqyjs; private String aqyjs;
@ -328,12 +326,12 @@ public class ProjectViewExport implements Serializable {
this.jdyj = jdyj; this.jdyj = jdyj;
} }
public String getLzyjs() { public String getHjjc() {
return lzyjs; return hjjc;
} }
public void setLzyjs(String lzyjs) { public void setHjjc(String hjjc) {
this.lzyjs = lzyjs; this.hjjc = hjjc;
} }
public String getHjyjs() { public String getHjyjs() {

View File

@ -43,7 +43,7 @@
(select count(1) from vw_flow_all a where a.businessKey = sp.id and a.startDeptName = pui.unitName and a.finishTime is not null)as gcsp, (select count(1) from vw_flow_all a where a.businessKey = sp.id and a.startDeptName = pui.unitName and a.finishTime is not null)as gcsp,
(select count(1) from sur_project_standard a where a.project_id = sp.id and a.dept_id = pui.unitId and a.is_del=0)as bzh, (select count(1) from sur_project_standard a where a.project_id = sp.id and a.dept_id = pui.unitId and a.is_del=0)as bzh,
(select count(1) from sur_project_photography a where a.project_id = sp.id and a.is_del=0)as yssys, (select count(1) from sur_project_photography a where a.project_id = sp.id and a.is_del=0)as yssys,
(select count(1) from flow_labour_info a where a.project_id = sp.id and a.deptId=pui.unitId and a.is_del=0) as lzyjs, '0' as hjjc,
'0' as hjyjs, '0' as hjyjs,
(select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=1 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as zlyjs, (select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=1 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as zlyjs,
(select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=0 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as aqyjs, (select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=0 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as aqyjs,