提交代码

dev_xds
姜玉琦 2023-08-20 15:46:23 +08:00
parent b9613287b6
commit 1909a4d9eb
32 changed files with 1548 additions and 548 deletions

View File

@ -56,7 +56,7 @@ public class SysLoginController
* *
* @return * @return
*/ */
@GetMapping("getInfo") @GetMapping("/getInfo")
public AjaxResult getInfo() public AjaxResult getInfo()
{ {
SysUser user = SecurityUtils.getLoginUser().getUser(); SysUser user = SecurityUtils.getLoginUser().getUser();
@ -76,7 +76,7 @@ public class SysLoginController
* *
* @return * @return
*/ */
@GetMapping("getRouters") @GetMapping("/getRouters")
public AjaxResult getRouters() public AjaxResult getRouters()
{ {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();

View File

@ -10,6 +10,11 @@ public enum PublicStateEnum {
OK("0", "正常"), OK("0", "正常"),
DISABLE("1", "停用"), DISABLE("1", "停用"),
DELETED("2", "删除"), DELETED("2", "删除"),
USERTYPE_JFJL("21", "甲方经理"),
/**********************************项目验收***************************************/
PROJECT_CHECK_TYPE_JPYS("1", "举牌验收"),
PROJECT_CHECK_POSITION_TYPE("1", "默认工序部位类型"),
/**********************************项目验收***************************************/
COMZGS("1","子公司状态标识"); COMZGS("1","子公司状态标识");
private final String code; private final String code;

View File

@ -17,14 +17,6 @@ export function deptWroksViewData(query) {
}) })
} }
export function unitList(query) {
return request({
url: '/project/projectDeptWroks/unitList',
method: 'get',
params: query
})
}
// 查询在岗人员详细 // 查询在岗人员详细
export function getProjectDeptWroks(id) { export function getProjectDeptWroks(id) {
return request({ return request({

View File

@ -37,11 +37,29 @@ const getUserList = (data) => {
}) })
} }
const queryUnitList = (query) => {
return request({
url: '/publics/queryUnitList',
method: 'get',
params: query
})
}
const selectProjectUnitUser = (query) => {
return request({
url: '/publics/selectProjectUnitUser',
method: 'get',
params: query
})
}
export default{ export default{
getMyDeptList, getMyDeptList,
getDeptTree, getDeptTree,
getZgsDeptList, getZgsDeptList,
getMyProjectList, getMyProjectList,
getUserList getUserList,
queryUnitList,
selectProjectUnitUser,
} }

View File

@ -1,40 +1,59 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form
<el-form-item label="项目主键" prop="projectId"> :model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input <el-input
v-model="queryParams.projectId" v-model="queryParams.projectName"
placeholder="请输入项目主键" placeholder="请输入项目名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="部门主键" prop="deptId"> <el-form-item label="单位名称" prop="deptName">
<el-input <el-input
v-model="queryParams.deptId" v-model="queryParams.deptName"
placeholder="请输入部门主键" placeholder="请输入单位名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="分包单位主键" prop="groupDeptId"> <el-form-item label="工序部位" prop="checkWorkingPosition">
<el-input
v-model="queryParams.groupDeptId"
placeholder="请输入分包单位主键"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="验收工序部位" prop="checkWorkingPosition">
<el-input <el-input
v-model="queryParams.checkWorkingPosition" v-model="queryParams.checkWorkingPosition"
placeholder="请输入验收工序部位" placeholder="请输入工序部位"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="质量专员" prop="qualityUser">
<el-input
v-model="queryParams.qualityUser"
placeholder="请输入质量专员"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="监理专员" prop="superviseUser">
<el-input
v-model="queryParams.superviseUser"
placeholder="请输入监理专员"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="验收结果" prop="checkResult"> <el-form-item label="验收结果" prop="checkResult">
<el-select v-model="queryParams.checkResult" placeholder="请选择验收结果" clearable> <el-select
v-model="queryParams.checkResult"
placeholder="请选择验收结果"
clearable
>
<el-option <el-option
v-for="dict in dict.type.project_checking_result" v-for="dict in dict.type.project_checking_result"
:key="dict.value" :key="dict.value"
@ -43,54 +62,6 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="质量用户" prop="qualityUser">
<el-input
v-model="queryParams.qualityUser"
placeholder="请输入质量用户"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="质量用户名称" prop="qualityUserName">
<el-input
v-model="queryParams.qualityUserName"
placeholder="请输入质量用户名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="监理用户" prop="superviseUser">
<el-input
v-model="queryParams.superviseUser"
placeholder="请输入监理用户"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="监理用户名称" prop="superviseUserName">
<el-input
v-model="queryParams.superviseUserName"
placeholder="请输入监理用户名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="分包单位用户" prop="groupDeptUser">
<el-input
v-model="queryParams.groupDeptUser"
placeholder="请输入分包单位用户"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="分包单位用户名称" prop="groupDeptUserName">
<el-input
v-model="queryParams.groupDeptUserName"
placeholder="请输入分包单位用户名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="验收时间"> <el-form-item label="验收时间">
<el-date-picker <el-date-picker
v-model="daterangeCheckingDate" v-model="daterangeCheckingDate"
@ -102,24 +73,16 @@
end-placeholder="结束日期" end-placeholder="结束日期"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="数据状态" prop="isDel">
<el-select v-model="queryParams.isDel" placeholder="请选择数据状态" clearable>
<el-option
v-for="dict in dict.type.sys_common_isdel"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <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-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
plain plain
@ -127,8 +90,9 @@
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['project:projectChecking:add']" v-hasPermi="['project:projectChecking:add']"
>新增</el-button> >新增</el-button
</el-col> >
</el-col> -->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="success" type="success"
@ -138,7 +102,8 @@
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['project:projectChecking:edit']" v-hasPermi="['project:projectChecking:edit']"
>修改</el-button> >修改</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -149,7 +114,8 @@
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['project:projectChecking:remove']" v-hasPermi="['project:projectChecking:remove']"
>删除</el-button> >删除</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -159,73 +125,152 @@
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['project:projectChecking:export']" v-hasPermi="['project:projectChecking:export']"
>导出</el-button> >导出</el-button
>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="projectCheckingList" @selection-change="handleSelectionChange"> <el-table
v-loading="loading"
:data="projectCheckingList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" /> <el-table-column
<el-table-column label="项目主键" align="center" prop="projectId" /> label="项目名称"
<el-table-column label="部门主键" align="center" prop="deptId" /> align="center"
<el-table-column label="分包单位主键" align="center" prop="groupDeptId" /> prop="projectName"
<el-table-column label="验收类型" align="center" prop="checkType" /> width="200"
<el-table-column label="验收主图" align="center" prop="mainImage" width="100"> fixed="left"
show-overflow-tooltip
/>
<el-table-column
label="部门名称"
align="center"
prop="deptName"
width="180"
show-overflow-tooltip
/>
<el-table-column label="验收主图" align="center" prop="mainImage" width="220">
<template slot-scope="scope"> <template slot-scope="scope">
<image-preview :src="scope.row.mainImage" :width="50" :height="50"/> <el-image
ref="preview"
style="width: 200px; height: 100px"
:src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.imageUrls)"
></el-image>
</template>
</el-table-column>
<el-table-column
label="验收工序部位"
align="center"
prop="checkWorkingPosition"
width="180"
show-overflow-tooltip
/>
<el-table-column
label="验收描述"
align="center"
prop="intro"
width="180"
show-overflow-tooltip
/>
<el-table-column
label="质量专员"
align="left"
prop="qualityUser"
width="130"
show-overflow-tooltip
>
<template slot-scope="scope">
<div>{{ scope.row.qualityUserName }}</div>
<div>{{ scope.row.qualityUser }}</div>
</template>
</el-table-column>
<el-table-column
label="监理专员"
align="left"
prop="superviseUser"
width="130"
show-overflow-tooltip
>
<template slot-scope="scope">
<div>{{ scope.row.superviseUserName }}</div>
<div>{{ scope.row.superviseUser }}</div>
</template>
</el-table-column>
<el-table-column
label="验收时间"
align="center"
prop="checkingDate"
width="180"
show-overflow-tooltip
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.checkingDate, "{y}-{m}-{d} {h}:{i}") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="图片列表" align="center" prop="imageUrls" />
<el-table-column label="验收工序部位类型" align="center" prop="workingPositionType" />
<el-table-column label="验收工序部位" align="center" prop="checkWorkingPosition" />
<el-table-column label="验收次数" align="center" prop="checkingNum" />
<el-table-column label="验收结果" align="center" prop="checkResult"> <el-table-column label="验收结果" align="center" prop="checkResult">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.project_checking_result" :value="scope.row.checkResult"/> <dict-tag
:options="dict.type.project_checking_result"
:value="scope.row.checkResult"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="验收描述" align="center" prop="intro" />
<el-table-column label="质量用户" align="center" prop="qualityUser" />
<el-table-column label="质量用户名称" align="center" prop="qualityUserName" />
<el-table-column label="监理用户" align="center" prop="superviseUser" />
<el-table-column label="监理用户名称" align="center" prop="superviseUserName" />
<el-table-column label="分包单位用户" align="center" prop="groupDeptUser" />
<el-table-column label="分包单位用户名称" align="center" prop="groupDeptUserName" />
<el-table-column label="验收时间" align="center" prop="checkingDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.checkingDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="验收附件" align="center" prop="checkingFiles" />
<el-table-column label="数据状态" align="center" prop="isDel"> <el-table-column label="数据状态" align="center" prop="isDel">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_common_isdel" :value="scope.row.isDel"/> <dict-tag :options="dict.type.sys_common_isdel" :value="scope.row.isDel" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> label="备注"
align="center"
prop="remark"
width="100"
show-overflow-tooltip
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="120"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
v-if="scope.row.checkingFiles != null"
size="mini"
type="text"
icon="el-icon-paperclip"
@click="handledownload(scope.row)"
v-hasPermi="['project:projectChecking:list']"
>下载附件</el-button
>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['project:projectChecking:edit']" v-hasPermi="['project:projectChecking:edit']"
>修改</el-button> >修改</el-button
>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['project:projectChecking:remove']" v-hasPermi="['project:projectChecking:remove']"
>删除</el-button> >删除</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total > 0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@ -233,80 +278,87 @@
/> />
<!-- 添加或修改项目验收对话框 --> <!-- 添加或修改项目验收对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="780px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="项目主键" prop="projectId"> <el-form-item label="验收图片" prop="imageUrls">
<el-input v-model="form.projectId" placeholder="请输入项目主键" /> <image-upload v-model="form.imageUrls" :limit="9" />
</el-form-item> </el-form-item>
<el-form-item label="部门主键" prop="deptId"> <el-form-item label="质量专员" prop="qualityUser">
<el-input v-model="form.deptId" placeholder="请输入部门主键" /> <el-select
</el-form-item> v-model="form.qualityUser"
<el-form-item label="分包单位主键" prop="groupDeptId"> placeholder="请选择质量专员"
<el-input v-model="form.groupDeptId" placeholder="请输入分包单位主键" /> filterable
</el-form-item> style="width: 100%"
<el-form-item label="验收主图" prop="mainImage"> @change="selectQualityUser"
<image-upload v-model="form.mainImage"/> >
</el-form-item> <el-option-group
<el-form-item label="图片列表" prop="imageUrls"> v-for="group in deptUserData"
<el-input v-model="form.imageUrls" placeholder="请输入图片列表" /> :key="group.unitId + ''"
</el-form-item> :label="group.unitName + ' [' + group.unitTypeName + '] '"
<el-form-item label="验收工序部位" prop="checkWorkingPosition"> >
<el-input v-model="form.checkWorkingPosition" placeholder="请输入验收工序部位" />
</el-form-item>
<el-form-item label="验收次数" prop="checkingNum">
<el-input v-model="form.checkingNum" placeholder="请输入验收次数" />
</el-form-item>
<el-form-item label="验收结果" prop="checkResult">
<el-select v-model="form.checkResult" placeholder="请选择验收结果">
<el-option <el-option
v-for="dict in dict.type.project_checking_result" v-for="item in group.userinfoList"
:key="dict.value" :key="item.phonenumber"
:label="dict.label" :label="item.nickName + ' [' + item.jobTypeName + '] '"
:value="dict.value" :value="item.phonenumber"
></el-option> >
</el-option>
</el-option-group>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="监理专员" prop="superviseUser">
<el-select
v-model="form.superviseUser"
placeholder="请选择监理专员"
filterable
style="width: 100%"
@change="selectSuperviseUser"
>
<el-option-group
v-for="group in deptUserData"
:key="group.unitId + ''"
:label="group.unitName + ' [' + group.unitTypeName + '] '"
>
<el-option
v-for="item in group.userinfoList"
:key="item.phonenumber"
:label="item.nickName + ' [' + item.jobTypeName + '] '"
:value="item.phonenumber"
>
</el-option>
</el-option-group>
</el-select>
</el-form-item>
<el-form-item label="工序部位" prop="checkWorkingPosition">
<el-input
type="textarea"
v-model="form.checkWorkingPosition"
placeholder="请输入验收工序部位"
/>
</el-form-item>
<el-form-item label="验收描述" prop="intro"> <el-form-item label="验收描述" prop="intro">
<el-input v-model="form.intro" type="textarea" placeholder="请输入内容" /> <el-input v-model="form.intro" type="textarea" placeholder="请输入内容" />
</el-form-item> </el-form-item>
<el-form-item label="质量用户" prop="qualityUser">
<el-input v-model="form.qualityUser" placeholder="请输入质量用户" />
</el-form-item>
<el-form-item label="质量用户名称" prop="qualityUserName">
<el-input v-model="form.qualityUserName" placeholder="请输入质量用户名称" />
</el-form-item>
<el-form-item label="监理用户" prop="superviseUser">
<el-input v-model="form.superviseUser" placeholder="请输入监理用户" />
</el-form-item>
<el-form-item label="监理用户名称" prop="superviseUserName">
<el-input v-model="form.superviseUserName" placeholder="请输入监理用户名称" />
</el-form-item>
<el-form-item label="分包单位用户" prop="groupDeptUser">
<el-input v-model="form.groupDeptUser" placeholder="请输入分包单位用户" />
</el-form-item>
<el-form-item label="分包单位用户名称" prop="groupDeptUserName">
<el-input v-model="form.groupDeptUserName" placeholder="请输入分包单位用户名称" />
</el-form-item>
<el-form-item label="验收时间" prop="checkingDate"> <el-form-item label="验收时间" prop="checkingDate">
<el-date-picker clearable <el-date-picker
style="width: 100%"
v-model="form.checkingDate" v-model="form.checkingDate"
type="date" type="datetime"
value-format="yyyy-MM-dd" placeholder="选择日期时间"
placeholder="请选择验收时间"> default-time="10:00:00"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="验收附件" prop="checkingFiles"> <el-form-item label="验收结果" prop="checkResult">
<el-input v-model="form.checkingFiles" type="textarea" placeholder="请输入内容" /> <el-radio
</el-form-item> v-model="form.checkResult"
<el-form-item label="数据状态" prop="isDel"> v-for="dict in dict.type.project_checking_result"
<el-select v-model="form.isDel" placeholder="请选择数据状态"> :label="dict.value"
<el-option
v-for="dict in dict.type.sys_common_isdel"
:key="dict.value" :key="dict.value"
:label="dict.label" border
:value="parseInt(dict.value)" size="small"
></el-option> >{{ dict.label }}</el-radio
</el-select> >
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入备注" />
@ -317,17 +369,29 @@
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="previewList" />
</div> </div>
</template> </template>
<script> <script>
import { listProjectChecking, getProjectChecking, delProjectChecking, addProjectChecking, updateProjectChecking } from "@/api/project/projectChecking"; import {
listProjectChecking,
getProjectChecking,
delProjectChecking,
addProjectChecking,
updateProjectChecking,
} from "@/api/project/projectChecking";
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
export default { export default {
name: "ProjectChecking", name: "ProjectChecking",
dicts: ['project_checking_result', 'sys_common_isdel'], components: {
ElImageViewer,
},
dicts: ["sys_common_isdel", "project_checking_result"],
data() { data() {
return { return {
showViewer: false,
// //
loading: true, loading: true,
// //
@ -367,27 +431,57 @@ export default {
groupDeptUserName: null, groupDeptUserName: null,
checkingDate: null, checkingDate: null,
isDel: null, isDel: null,
projectName: null,
deptName: null,
}, },
// //
form: {}, form: {},
// //
rules: { rules: {
} imageUrls: [{ required: true, message: "请上传验收图片", trigger: "blur" }],
qualityUser: [{ required: true, message: "请选择质量专员", trigger: "blur" }],
superviseUser: [{ required: true, message: "请选择监理专员", trigger: "blur" }],
checkWorkingPosition: [
{ required: true, message: "请输入验收工序部位", trigger: "blur" },
{ max: 200, message: "验收工序部位最多200字符", trigger: "blur" },
],
intro: [
{ required: true, message: "请输入验收描述", trigger: "blur" },
{ max: 200, message: "验收描述最多200字符", trigger: "blur" },
],
checkingDate: [{ required: true, message: "请选择验收时间", trigger: "blur" }],
checkResult: [{ required: true, message: "请选择验收结果", trigger: "blur" }],
},
deptUserData: [],
previewList: [],
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { methods: {
getImageUrl(url) {
return process.env.VUE_APP_BASE_API + url + ".min.jpg";
},
onPreview(urls) {
this.previewList = [];
urls.split(",").forEach((item) => {
this.previewList.push(process.env.VUE_APP_BASE_API + item);
});
this.showViewer = true;
},
closeViewer() {
this.showViewer = false;
},
/** 查询项目验收列表 */ /** 查询项目验收列表 */
getList() { getList() {
this.loading = true; this.loading = true;
this.queryParams.params = {}; this.queryParams.params = {};
if (null != this.daterangeCheckingDate && '' != this.daterangeCheckingDate) { if (null != this.daterangeCheckingDate && "" != this.daterangeCheckingDate) {
this.queryParams.params["beginCheckingDate"] = this.daterangeCheckingDate[0]; this.queryParams.params["beginCheckingDate"] = this.daterangeCheckingDate[0];
this.queryParams.params["endCheckingDate"] = this.daterangeCheckingDate[1]; this.queryParams.params["endCheckingDate"] = this.daterangeCheckingDate[1];
} }
listProjectChecking(this.queryParams).then(response => { listProjectChecking(this.queryParams).then((response) => {
this.projectCheckingList = response.rows; this.projectCheckingList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
@ -426,7 +520,7 @@ export default {
createTime: null, createTime: null,
updateBy: null, updateBy: null,
updateTime: null, updateTime: null,
remark: null remark: null,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -443,9 +537,9 @@ export default {
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.id) this.ids = selection.map((item) => item.id);
this.single = selection.length!==1 this.single = selection.length !== 1;
this.multiple = !selection.length this.multiple = !selection.length;
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
@ -456,25 +550,32 @@ export default {
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
const id = row.id || this.ids const id = row.id || this.ids;
getProjectChecking(id).then(response => { getProjectChecking(id).then((response) => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.title = "修改项目验收"; this.title = "修改项目验收";
this.$api.publics
.selectProjectUnitUser({
projectId: response.data.projectId,
})
.then((d) => {
this.deptUserData = d.data;
});
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
updateProjectChecking(this.form).then(response => { updateProjectChecking(this.form).then((response) => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addProjectChecking(this.form).then(response => { addProjectChecking(this.form).then((response) => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
@ -486,19 +587,54 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除项目验收编号为"' + ids + '"的数据项?').then(function() { this.$modal
.confirm('是否确认删除项目验收编号为"' + ids + '"的数据项?')
.then(function () {
return delProjectChecking(ids); return delProjectChecking(ids);
}).then(() => { })
.then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}).catch(() => {}); })
.catch(() => {});
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('project/projectChecking/export', { this.download(
...this.queryParams "project/projectChecking/export",
}, `projectChecking_${new Date().getTime()}.xlsx`) {
...this.queryParams,
},
`projectChecking_${new Date().getTime()}.xlsx`
);
},
/** 选择质量专员*/
selectQualityUser(val) {
this.deptUserData.forEach((item) => {
item.userinfoList.forEach((u) => {
if (u.phonenumber == val) {
this.form.qualityUserName = u.nickName + " [" + u.jobTypeName + "] ";
} }
});
});
},
/** 选择监理专员*/
selectSuperviseUser(val) {
this.deptUserData.forEach((item) => {
item.userinfoList.forEach((u) => {
if (u.phonenumber == val) {
this.form.superviseUserName = u.nickName + " [" + u.jobTypeName + "] ";
} }
});
});
},
/** 下载附件 */
handleDownload(row) {
this.files = row.checkingFiles.split(",");
this.files.forEach((item) => {
this.$download.resource(item);
});
},
},
}; };
</script> </script>

View File

@ -0,0 +1,583 @@
<template>
<div class="projectect-attendance-drawer">
<el-drawer
v-if="isOpen"
:visible.sync="isOpen"
direction="rtl"
size="65%"
style="padding-left: 20px"
>
<template slot="title">
<div>{{ title + " 【举牌验收管理】" }}</div>
</template>
<el-tabs
v-model="activeName"
style="margin-left: 20px; margin-right: 20px"
@tab-click="getList"
>
<el-tab-pane
v-for="(it, idx) in nodes"
:label="it.unitName + ''"
:name="it.unitId + ''"
:key="idx"
></el-tab-pane>
</el-tabs>
<el-row
:gutter="10"
class="mb8"
style="margin-left: 20px; margin-top: 10px; margin-right: 20px"
>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['project:projectChecking:add']"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['project:projectChecking:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['project:projectChecking:remove']"
>删除</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="projectCheckingList">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="验收图片" align="center" prop="mainImage" width="80">
<template slot-scope="scope">
<el-image
ref="preview"
style="width: 50px; height: 50px"
:src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.imageUrls)"
></el-image>
</template>
</el-table-column>
<el-table-column
label="验收工序部位"
align="left"
prop="checkWorkingPosition"
width="220"
show-overflow-tooltip
/>
<el-table-column
label="验收描述"
align="left"
prop="intro"
width="220"
show-overflow-tooltip
/>
<el-table-column
label="质量专员"
align="left"
prop="qualityUser"
width="120"
show-overflow-tooltip
>
<template slot-scope="scope">
<div>{{ scope.row.qualityUserName }}</div>
<div>{{ scope.row.qualityUser }}</div>
</template>
</el-table-column>
<el-table-column
label="监理专员"
align="left"
prop="superviseUser"
width="120"
show-overflow-tooltip
>
<template slot-scope="scope">
<div>{{ scope.row.superviseUserName }}</div>
<div>{{ scope.row.superviseUser }}</div>
</template>
</el-table-column>
<el-table-column
label="验收时间"
align="center"
prop="checkingDate"
width="150"
show-overflow-tooltip
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.checkingDate, "{y}-{m}-{d} {h}:{i}") }}</span>
</template>
</el-table-column>
<el-table-column label="验收结果" align="center" prop="checkResult" width="80">
<template slot-scope="scope">
<dict-tag
:options="dict.type.project_checking_result"
:value="scope.row.checkResult"
/>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
v-if="scope.row.checkingFiles != null"
size="mini"
type="text"
icon="el-icon-paperclip"
@click="handledownload(scope.row)"
v-hasPermi="['project:projectChecking:list']"
>下载附件</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:projectChecking:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:projectChecking:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改项目举牌验收对话框 -->
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="form.projectName"
placeholder="请输入项目名称"
:disabled="true"
/>
</el-form-item>
<el-form-item label="单位名称" prop="deptName">
<el-input
v-model="form.deptName"
placeholder="请输入单位名称"
:disabled="true"
/>
</el-form-item>
<el-form-item label="验收图片" prop="imageUrls">
<image-upload v-model="form.imageUrls" :limit="9" />
</el-form-item>
<el-form-item label="质量专员" prop="qualityUser">
<el-select
v-model="form.qualityUser"
placeholder="请选择质量专员"
filterable
style="width: 100%"
@change="selectQualityUser"
>
<el-option-group
v-for="group in deptUserData"
:key="group.unitId + ''"
:label="group.unitName + ' [' + group.unitTypeName + '] '"
>
<el-option
v-for="item in group.userinfoList"
:key="item.phonenumber"
:label="item.nickName + ' [' + item.jobTypeName + '] '"
:value="item.phonenumber"
>
</el-option>
</el-option-group>
</el-select>
</el-form-item>
<el-form-item label="监理专员" prop="superviseUser">
<el-select
v-model="form.superviseUser"
placeholder="请选择监理专员"
filterable
style="width: 100%"
@change="selectSuperviseUser"
>
<el-option-group
v-for="group in deptUserData"
:key="group.unitId + ''"
:label="group.unitName + ' [' + group.unitTypeName + '] '"
>
<el-option
v-for="item in group.userinfoList"
:key="item.phonenumber"
:label="item.nickName + ' [' + item.jobTypeName + '] '"
:value="item.phonenumber"
>
</el-option>
</el-option-group>
</el-select>
</el-form-item>
<el-form-item label="工序部位" prop="checkWorkingPosition">
<el-input
type="textarea"
v-model="form.checkWorkingPosition"
placeholder="请输入验收工序部位"
/>
</el-form-item>
<el-form-item label="验收描述" prop="intro">
<el-input v-model="form.intro" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="验收时间" prop="checkingDate">
<el-date-picker
style="width: 100%"
v-model="form.checkingDate"
type="datetime"
placeholder="选择日期时间"
default-time="10:00:00"
>
</el-date-picker>
</el-form-item>
<el-form-item label="验收结果" prop="checkResult">
<el-radio
v-model="form.checkResult"
v-for="dict in dict.type.project_checking_result"
:label="dict.value"
:key="dict.value"
border
size="small"
>{{ dict.label }}</el-radio
>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</el-drawer>
<el-image-viewer
v-if="showViewer"
:on-close="closeViewer"
:url-list="previewList"
style="z-index: 2050"
/>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import {
listProjectChecking,
getProjectChecking,
delProjectChecking,
addProjectChecking,
updateProjectChecking,
} from "@/api/project/projectChecking";
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
export default {
name: "RuoyiUiProjectDeptWroksDrawer",
components: {
ElImageViewer,
},
dicts: ["project_checking_result"],
data() {
return {
showViewer: false,
open: false,
isOpen: false,
project: null,
title: "",
isUnit: true,
nodes: [],
form: {},
rules: {
imageUrls: [{ required: true, message: "请上传验收图片", trigger: "blur" }],
qualityUser: [{ required: true, message: "请选择质量专员", trigger: "blur" }],
superviseUser: [{ required: true, message: "请选择监理专员", trigger: "blur" }],
checkWorkingPosition: [
{ required: true, message: "请输入验收工序部位", trigger: "blur" },
{ max: 200, message: "验收工序部位最多200字符", trigger: "blur" },
],
intro: [
{ required: true, message: "请输入验收描述", trigger: "blur" },
{ max: 200, message: "验收描述最多200字符", trigger: "blur" },
],
checkingDate: [{ required: true, message: "请选择验收时间", trigger: "blur" }],
checkResult: [{ required: true, message: "请选择验收结果", trigger: "blur" }],
},
projectCheckingList: [],
activeName: "",
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
queryParams: {
pageNum: 1,
pageSize: 10,
projectId: null,
deptId: null,
},
deptUserData: [],
previewList: [],
};
},
computed: {
...mapGetters(["dept"]),
},
mounted() {},
methods: {
getImageUrl(url) {
return process.env.VUE_APP_BASE_API + url + ".min.jpg";
},
onPreview(urls) {
this.previewList = [];
urls.split(",").forEach((item) => {
this.previewList.push(process.env.VUE_APP_BASE_API + item);
});
this.showViewer = true;
},
closeViewer() {
this.showViewer = false;
},
doOk() {
updateProjectDeptWroks(this.form).then((response) => {
this.$modal.msgSuccess("保存成功");
this.isOpen = false;
});
},
doCanel() {
this.isOpen = false;
},
show(project) {
this.project = project;
this.title = project.projectName;
this.isOpen = true;
this.queryParams.projectId = project.id;
this.$api.publics
.queryUnitList({
projectId: project.id,
unitType: 2,
})
.then((d) => {
this.nodes = d.rows;
if (d.rows.length > 0) {
this.activeName = this.nodes[0].unitId + "";
this.isUnit = true;
this.getList();
} else {
this.$message.error("当前项目未分配总包单位,不能办理举牌验收!");
this.isUnit = false;
}
});
this.$api.publics
.selectProjectUnitUser({
projectId: project.id,
})
.then((d) => {
this.deptUserData = d.data;
});
},
//
getList() {
this.queryParams.deptId = this.activeName;
this.loading = true;
listProjectChecking(this.queryParams).then((response) => {
this.projectCheckingList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
projectId: null,
deptId: null,
insuranceType: null,
insuranceNumber: null,
insuranceFile: null,
insuranceState: null,
beginDate: null,
endDate: null,
companyName: null,
isDel: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
if (this.nodes.length > 0) {
this.reset();
this.form.projectId = this.project.id;
this.form.projectName = this.project.projectName;
this.form.deptId = this.activeName;
this.nodes.forEach((item) => {
if (item.unitId == this.activeName) {
this.form.deptName = item.unitName;
}
});
this.open = true;
this.title = "添加项目举牌验收";
} else {
this.$message.error("当前项目未分配总包单位,不能办理举牌验收!");
}
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getProjectChecking(id).then((response) => {
this.form = response.data;
this.form.projectName = this.project.projectName;
this.nodes.forEach((item) => {
if (item.unitId == this.activeName) {
this.form.deptName = item.unitName;
}
});
this.open = true;
this.title = "修改项目举牌验收";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateProjectChecking(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addProjectChecking(this.form).then((response) => {
if (response.code == 200) {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm('是否确认删除项目举牌验收编号为"' + ids + '"的数据项?')
.then(function () {
return delProjectChecking(ids);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"project/ProjectChecking/export",
{
...this.queryParams,
},
`ProjectChecking_${new Date().getTime()}.xlsx`
);
},
/** 选择质量专员*/
selectQualityUser(val) {
this.deptUserData.forEach((item) => {
item.userinfoList.forEach((u) => {
if (u.phonenumber == val) {
this.form.qualityUserName = u.nickName + " [" + u.jobTypeName + "] ";
}
});
});
},
/** 选择监理专员*/
selectSuperviseUser(val) {
this.deptUserData.forEach((item) => {
item.userinfoList.forEach((u) => {
if (u.phonenumber == val) {
this.form.superviseUserName = u.nickName + " [" + u.jobTypeName + "] ";
}
});
});
},
/** 下载附件 */
handleDownload(row) {
this.files = row.checkingFiles.split(",");
this.files.forEach((item) => {
this.$download.resource(item);
});
},
},
};
</script>
<style lang="scss" scoped></style>

View File

@ -58,7 +58,6 @@
<script> <script>
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { import {
unitList,
deptWroksViewData, deptWroksViewData,
updateProjectDeptWroks, updateProjectDeptWroks,
} from "@/api/project/projectDeptWroks"; } from "@/api/project/projectDeptWroks";
@ -102,10 +101,12 @@ export default {
this.project = project; this.project = project;
this.title = project.projectName; this.title = project.projectName;
this.isOpen = true; this.isOpen = true;
unitList({ this.$api.publics
.queryUnitList({
projectId: project.id, projectId: project.id,
unitType: 2, unitType: 2,
}).then((d) => { })
.then((d) => {
this.nodes = d.rows; this.nodes = d.rows;
if (d.rows.length > 0) { if (d.rows.length > 0) {
this.activeName = this.nodes[0].unitId + ""; this.activeName = this.nodes[0].unitId + "";

View File

@ -362,10 +362,12 @@
size="mini" size="mini"
@command="(command) => handleCommand(command, scope.row)" @command="(command) => handleCommand(command, scope.row)"
v-hasPermi="[ v-hasPermi="[
'system:assess:list', 'project:assess:list',
'project:build_node_data:list', 'project:build_node_data:list',
'project:projectChecking:list',
'work:workTrain:list', 'work:workTrain:list',
'work:emergencyDrill:list', 'work:emergencyDrill:list',
'project:surProjectInsurance:list',
'project:surProjectSpecial:list', 'project:surProjectSpecial:list',
'project:projectDeptWroks:list', 'project:projectDeptWroks:list',
'project:surProjectAttendance:add', 'project:surProjectAttendance:add',
@ -379,7 +381,7 @@
<el-dropdown-item <el-dropdown-item
command="handleAssess" command="handleAssess"
icon="el-icon-coordinate" icon="el-icon-coordinate"
v-hasPermi="['system:assess:list']" v-hasPermi="['project:assess:list']"
>季度考核管理</el-dropdown-item >季度考核管理</el-dropdown-item
> >
<el-dropdown-item <el-dropdown-item
@ -388,6 +390,12 @@
v-hasPermi="['project:build_node_data:list']" v-hasPermi="['project:build_node_data:list']"
>计划节点管理</el-dropdown-item >计划节点管理</el-dropdown-item
> >
<el-dropdown-item
command="handleProjectChecking"
icon="el-icon-s-help"
v-hasPermi="['project:projectChecking:list']"
>举牌验收管理</el-dropdown-item
>
<el-dropdown-item <el-dropdown-item
command="handleWorkTrain" command="handleWorkTrain"
icon="el-icon-notebook-2" icon="el-icon-notebook-2"
@ -424,6 +432,7 @@
v-hasPermi="['project:surProjectAttendance:add']" v-hasPermi="['project:surProjectAttendance:add']"
>今日出勤</el-dropdown-item >今日出勤</el-dropdown-item
> >
<el-dropdown-item <el-dropdown-item
command="handleDelete" command="handleDelete"
icon="el-icon-delete" icon="el-icon-delete"
@ -754,6 +763,7 @@
<attendance-drawer ref="attDrawer"></attendance-drawer> <attendance-drawer ref="attDrawer"></attendance-drawer>
<projectDeptWroksDrawer ref="deptWroksDrawer"></projectDeptWroksDrawer> <projectDeptWroksDrawer ref="deptWroksDrawer"></projectDeptWroksDrawer>
<insuranceDrawer ref="insurance"></insuranceDrawer> <insuranceDrawer ref="insurance"></insuranceDrawer>
<projectCheckingDrawer ref="projectChecking"></projectCheckingDrawer>
</div> </div>
</template> </template>
@ -778,6 +788,7 @@ import surProjectSpecialDrawer from "../surProjectSpecial/surProjectSpecialDrawe
import attendanceDrawer from "../surProjectAttendance/attendanceDrawer.vue"; import attendanceDrawer from "../surProjectAttendance/attendanceDrawer.vue";
import projectDeptWroksDrawer from "../projectDeptWroks/projectDeptWroksDrawer.vue"; import projectDeptWroksDrawer from "../projectDeptWroks/projectDeptWroksDrawer.vue";
import insuranceDrawer from "../surProjectInsurance/insuranceDrawer.vue"; import insuranceDrawer from "../surProjectInsurance/insuranceDrawer.vue";
import projectCheckingDrawer from "../projectChecking/projectCheckingDrawer.vue";
import { checkPermi, checkRole } from "@/utils/permission"; // import { checkPermi, checkRole } from "@/utils/permission"; //
export default { export default {
@ -794,6 +805,7 @@ export default {
surProjectSpecialDrawer, surProjectSpecialDrawer,
projectDeptWroksDrawer, projectDeptWroksDrawer,
insuranceDrawer, insuranceDrawer,
projectCheckingDrawer,
}, },
dicts: [ dicts: [
"sys_check_state", "sys_check_state",
@ -1031,6 +1043,9 @@ export default {
case "handleProjectInsurance": case "handleProjectInsurance":
this.$refs.insurance.show(row); this.$refs.insurance.show(row);
break; break;
case "handleProjectChecking":
this.$refs.projectChecking.show(row);
break;
default: default:
break; break;
} }

View File

@ -14,7 +14,9 @@
--> -->
<div class="prj-nav"> <div class="prj-nav">
<el-radio-group v-model="selPrj" @input="doSelPrj"> <el-radio-group v-model="selPrj" @input="doSelPrj">
<el-radio-button v-for="(it, idx) in prjs" :key="idx" :label="it.id">{{ it.projectName }}</el-radio-button> <el-radio-button v-for="(it, idx) in prjs" :key="idx" :label="it.id">{{
it.projectName
}}</el-radio-button>
</el-radio-group> </el-radio-group>
</div> </div>
<div class="prj-info"> <div class="prj-info">
@ -49,19 +51,25 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<span class="sp-label">工程期限:</span> <span class="sp-label">工程期限:</span>
<span class="sp-text">{{ prj.projectTimeLimit?prj.projectTimeLimit+'天':'' }}</span> <span class="sp-text">{{
prj.projectTimeLimit ? prj.projectTimeLimit + "天" : ""
}}</span>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<span class="sp-label">总投资:</span> <span class="sp-label">总投资:</span>
<span class="sp-text">{{ prj.totalInvestment?prj.totalInvestment+'万元':'' }}</span> <span class="sp-text">{{
prj.totalInvestment ? prj.totalInvestment + "万元" : ""
}}</span>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<span class="sp-label">建筑面积:</span> <span class="sp-label">建筑面积:</span>
<span class="sp-text">{{ prj.floorArea?prj.floorArea+'平方米':'' }}</span> <span class="sp-text">{{ prj.floorArea ? prj.floorArea + "平方米" : "" }}</span>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<span class="sp-label">开累产值:</span> <span class="sp-label">开累产值:</span>
<span class="sp-text">{{ prj.totalOutputValue?prj.totalOutputValue+'万元':'' }}</span> <span class="sp-text">{{
prj.totalOutputValue ? prj.totalOutputValue + "万元" : ""
}}</span>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<span class="sp-label">计划完成时间:</span> <span class="sp-label">计划完成时间:</span>
@ -82,17 +90,21 @@
<el-col :span="6"> <el-col :span="6">
<span class="sp-label">合同总额:</span> <span class="sp-label">合同总额:</span>
<span class="sp-text">{{ prj.contractAmount?prj.contractAmount+'万元':'' }}</span> <span class="sp-text">{{
prj.contractAmount ? prj.contractAmount + "万元" : ""
}}</span>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<span class="sp-label">付款金额:</span> <span class="sp-label">付款金额:</span>
<span class="sp-text">{{ prj.paidAmount?prj.paidAmount+'万元':'' }}</span> <span class="sp-text">{{ prj.paidAmount ? prj.paidAmount + "万元" : "" }}</span>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<span class="sp-label">挂账金额:</span> <span class="sp-label">挂账金额:</span>
<span class="sp-text">{{ prj.onAccountAmount?prj.onAccountAmount+'万元':'' }}</span> <span class="sp-text">{{
prj.onAccountAmount ? prj.onAccountAmount + "万元" : ""
}}</span>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
@ -102,15 +114,21 @@
<el-col :span="6"> <el-col :span="6">
<span class="sp-label">劳务人员数:</span> <span class="sp-label">劳务人员数:</span>
<span class="sp-text">{{ prj.servicePersonnel?prj.servicePersonnel+'人':'' }}</span> <span class="sp-text">{{
prj.servicePersonnel ? prj.servicePersonnel + "人" : ""
}}</span>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<span class="sp-label">监理人员数:</span> <span class="sp-label">监理人员数:</span>
<span class="sp-text">{{ prj.supervisorPersonnel?prj.supervisorPersonnel+'人':'' }}</span> <span class="sp-text">{{
prj.supervisorPersonnel ? prj.supervisorPersonnel + "人" : ""
}}</span>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<span class="sp-label">总包人员数:</span> <span class="sp-label">总包人员数:</span>
<span class="sp-text">{{ prj.generalContractor?prj.generalContractor+'人':'' }}</span> <span class="sp-text">{{
prj.generalContractor ? prj.generalContractor + "人" : ""
}}</span>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
@ -120,10 +138,34 @@
</div> </div>
<div class="tool-bar"> <div class="tool-bar">
<el-button type="primary" @click="doPrjProcessMgr" v-hasPermi="['project:surProject:edit']" icon="el-icon-time"></el-button> <el-button
<el-button type="primary" @click="doPrjAssess" v-hasPermi="['system:assess:list']" icon="el-icon-coordinate"></el-button> type="primary"
<el-button type="primary" @click="doPrjBuildNode" v-hasPermi="['project:build_node_data:list']" icon="el-icon-data-analysis"></el-button> @click="doPrjProcessMgr"
<el-button type="primary" @click="doPrjAttendance" v-hasPermi="['project:surProjectAttendance:add']" icon="el-icon-s-check"></el-button> v-hasPermi="['project:surProject:edit']"
icon="el-icon-time"
>进度管理</el-button
>
<el-button
type="primary"
@click="doPrjAssess"
v-hasPermi="['project:assess:list']"
icon="el-icon-coordinate"
>季度考核管理</el-button
>
<el-button
type="primary"
@click="doPrjBuildNode"
v-hasPermi="['project:build_node_data:list']"
icon="el-icon-data-analysis"
>计划节点管理</el-button
>
<el-button
type="primary"
@click="doPrjAttendance"
v-hasPermi="['project:surProjectAttendance:add']"
icon="el-icon-s-check"
>今日出勤</el-button
>
</div> </div>
<ProjectScheduleDlg ref="prjSchDlg"></ProjectScheduleDlg> <ProjectScheduleDlg ref="prjSchDlg"></ProjectScheduleDlg>
<assess-drawer ref="assessDrawer"></assess-drawer> <assess-drawer ref="assessDrawer"></assess-drawer>
@ -133,22 +175,33 @@
</template> </template>
<script> <script>
import { listSurProject} from "@/api/project/surProject"; import { listSurProject } from "@/api/project/surProject";
import ProjectScheduleDlg from '../surProjectSchedule/ProjectScheduleDlg.vue' import ProjectScheduleDlg from "../surProjectSchedule/ProjectScheduleDlg.vue";
import AssessDrawer from '../surProjectQuarterlyAssess/assessDrawer.vue' import AssessDrawer from "../surProjectQuarterlyAssess/assessDrawer.vue";
import buildNodeDrawer from '../surBuildNode/buildNodeDrawer.vue' import buildNodeDrawer from "../surBuildNode/buildNodeDrawer.vue";
import attendanceDrawer from '../surProjectAttendance/attendanceDrawer.vue' import attendanceDrawer from "../surProjectAttendance/attendanceDrawer.vue";
export default { export default {
dicts: ['sys_check_state','sur_project_xmjd', 'project_build_type', 'sys_common_isdel', 'project_category','project_level','sur_project_weight'], dicts: [
name: 'RuoyiUiMyIndex', "sys_check_state",
components:{ "sur_project_xmjd",
ProjectScheduleDlg,AssessDrawer,buildNodeDrawer,attendanceDrawer "project_build_type",
"sys_common_isdel",
"project_category",
"project_level",
"sur_project_weight",
],
name: "RuoyiUiMyIndex",
components: {
ProjectScheduleDlg,
AssessDrawer,
buildNodeDrawer,
attendanceDrawer,
}, },
data() { data() {
return { return {
prjs: [], prjs: [],
selPrj: 0, selPrj: 0,
prj: {} prj: {},
}; };
}, },
@ -157,32 +210,32 @@ export default {
}, },
methods: { methods: {
doPrjAttendance(){ doPrjAttendance() {
this.$refs.attDrawer.show(this.prj); this.$refs.attDrawer.show(this.prj);
}, },
getWeight(v){ getWeight(v) {
let tmps=this.dict.type.sur_project_weight.filter(d=>d.value==v); let tmps = this.dict.type.sur_project_weight.filter((d) => d.value == v);
return tmps.length>0?tmps[0].label:''; return tmps.length > 0 ? tmps[0].label : "";
}, },
getprojectType(v){ getprojectType(v) {
let tmps=this.dict.type.project_category.filter(d=>d.value==v); let tmps = this.dict.type.project_category.filter((d) => d.value == v);
return tmps.length>0?tmps[0].label:''; return tmps.length > 0 ? tmps[0].label : "";
}, },
getprojectLvl(v){ getprojectLvl(v) {
let tmps=this.dict.type.project_level.filter(d=>d.value==v); let tmps = this.dict.type.project_level.filter((d) => d.value == v);
return tmps.length>0?tmps[0].label:''; return tmps.length > 0 ? tmps[0].label : "";
}, },
doPrjProcessMgr(){ doPrjProcessMgr() {
this.$refs.prjSchDlg.showDialog(this.prj); this.$refs.prjSchDlg.showDialog(this.prj);
}, },
doPrjAssess(){ doPrjAssess() {
this.$refs.assessDrawer.show(this.prj); this.$refs.assessDrawer.show(this.prj);
}, },
doPrjBuildNode(){ doPrjBuildNode() {
this.$refs.nodeDrawer.show(this.prj); this.$refs.nodeDrawer.show(this.prj);
}, },
doSelPrj(a, b) { doSelPrj(a, b) {
let tmps = this.prjs.filter(d => d.id == this.selPrj); let tmps = this.prjs.filter((d) => d.id == this.selPrj);
this.prj = tmps.length > 0 ? tmps[0] : {}; this.prj = tmps.length > 0 ? tmps[0] : {};
}, },
loadData() { loadData() {
@ -190,14 +243,14 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 40, pageSize: 40,
}; };
listSurProject(queryParams).then(d => { listSurProject(queryParams).then((d) => {
this.prjs = d.rows || []; this.prjs = d.rows || [];
if (this.prjs.length > 0) { if (this.prjs.length > 0) {
this.selPrj = this.prjs[0].id; this.selPrj = this.prjs[0].id;
this.prj = this.prjs[0]; this.prj = this.prjs[0];
} }
}); });
} },
}, },
}; };
</script> </script>
@ -216,7 +269,7 @@ export default {
margin-bottom: 4px; margin-bottom: 4px;
.el-radio-button__inner { .el-radio-button__inner {
border: 1px solid #DCDFE6; border: 1px solid #dcdfe6;
} }
} }
} }

View File

@ -148,10 +148,12 @@ export default {
this.project = project; this.project = project;
this.title = project.projectName; this.title = project.projectName;
this.isOpen = true; this.isOpen = true;
unitList({ this.$api.publics
.queryUnitList({
projectId: project.id, projectId: project.id,
unitType: 2, unitType: 2,
}).then((d1) => { })
.then((d1) => {
this.nodes = d1.rows; this.nodes = d1.rows;
if (this.nodes.length > 0) { if (this.nodes.length > 0) {
this.activeName = this.nodes[0].unitId + ""; this.activeName = this.nodes[0].unitId + "";

View File

@ -348,7 +348,7 @@ export default {
{ max: 20, message: "请输入", trigger: "blur" }, { max: 20, message: "请输入", trigger: "blur" },
], ],
insuranceNumber: [ insuranceNumber: [
{ required: true, message: "请输入保险单编号", trigger: "blur" }, { required: false, message: "请输入保险单编号", trigger: "blur" },
], ],
insuranceFile: [{ required: true, message: "请上传保险合同", trigger: "blur" }], insuranceFile: [{ required: true, message: "请上传保险合同", trigger: "blur" }],
}, },

View File

@ -157,7 +157,6 @@
<script> <script>
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { unitList } from "@/api/project/projectDeptWroks";
import { import {
listSurProjectInsurance, listSurProjectInsurance,
listSurProjectInsurancev2, listSurProjectInsurancev2,
@ -186,7 +185,7 @@ export default {
{ max: 20, message: "请输入", trigger: "blur" }, { max: 20, message: "请输入", trigger: "blur" },
], ],
insuranceNumber: [ insuranceNumber: [
{ required: true, message: "请输入保险单编号", trigger: "blur" }, { required: false, message: "请输入保险单编号", trigger: "blur" },
], ],
insuranceFile: [{ required: true, message: "请上传保险合同", trigger: "blur" }], insuranceFile: [{ required: true, message: "请上传保险合同", trigger: "blur" }],
}, },
@ -233,10 +232,12 @@ export default {
this.title = project.projectName; this.title = project.projectName;
this.isOpen = true; this.isOpen = true;
this.queryParams.projectId = project.id; this.queryParams.projectId = project.id;
unitList({ this.$api.publics
.queryUnitList({
projectId: project.id, projectId: project.id,
unitType: 2, unitType: 2,
}).then((d) => { })
.then((d) => {
this.nodes = d.rows; this.nodes = d.rows;
if (d.rows.length > 0) { if (d.rows.length > 0) {
this.activeName = this.nodes[0].unitId + ""; this.activeName = this.nodes[0].unitId + "";

View File

@ -494,17 +494,18 @@ export default {
projectId: row.projectId, projectId: row.projectId,
}; };
this.open = true; this.open = true;
let that = this;
// //
listProjectUnit(param).then((response) => { listProjectUnit(param).then((response) => {
this.deptOptions = response.data; this.deptOptions = response.data;
}); });
getWorkTrain(id).then((response) => { getWorkTrain(id).then((response) => {
this.form = response.data; that.form = response.data;
let depts = []; let depts = [];
this.form.workTrainDeptList.forEach((item) => { that.form.workTrainDeptList.forEach((item) => {
depts.push(item.deptId); depts.push(item.deptId);
}); });
this.form.workTrainDeptList = depts; that.form.workTrainDeptList = depts;
if (that.form.trainFile) { if (that.form.trainFile) {
that.files = that.form.trainFile.split(","); that.files = that.form.trainFile.split(",");
} }

View File

@ -177,7 +177,7 @@
size="mini" size="mini"
type="text" type="text"
icon="el-icon-refresh-left" icon="el-icon-refresh-left"
@click="handleUpdateStatus(scope.row, 3)" @click="handleUpdateStatus(scope.row, 1)"
v-hasPermi="['work:workJournalism:edit']" v-hasPermi="['work:workJournalism:edit']"
>撤回</el-button >撤回</el-button
> >

View File

@ -232,13 +232,6 @@
<!-- 添加或修改演练培训对话框 --> <!-- 添加或修改演练培训对话框 -->
<el-dialog :title="title" :visible.sync="open" width="680px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="680px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="项目名称">
<el-input
placeholder="请输入项目名称"
v-model="form.projectName"
:disabled="true"
></el-input>
</el-form-item>
<el-form-item label="培训主图" prop="mainImage"> <el-form-item label="培训主图" prop="mainImage">
<image-upload v-model="form.mainImage" :limit="1" /> <image-upload v-model="form.mainImage" :limit="1" />
</el-form-item> </el-form-item>
@ -494,17 +487,18 @@ export default {
projectId: row.projectId, projectId: row.projectId,
}; };
this.open = true; this.open = true;
let that = this;
// //
listProjectUnit(param).then((response) => { listProjectUnit(param).then((response) => {
this.deptOptions = response.data; that.deptOptions = response.data;
}); });
getWorkTrain(id).then((response) => { getWorkTrain(id).then((response) => {
this.form = response.data; that.form = response.data;
let depts = []; let depts = [];
this.form.workTrainDeptList.forEach((item) => { that.form.workTrainDeptList.forEach((item) => {
depts.push(item.deptId); depts.push(item.deptId);
}); });
this.form.workTrainDeptList = depts; that.form.workTrainDeptList = depts;
if (that.form.trainFile) { if (that.form.trainFile) {
that.files = that.form.trainFile.split(","); that.files = that.form.trainFile.split(",");
} }

View File

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.DeptTypeEnum; import com.ruoyi.common.enums.DeptTypeEnum;
import com.ruoyi.common.enums.PublicStateEnum;
import com.ruoyi.common.enums.SysRoleEnum; import com.ruoyi.common.enums.SysRoleEnum;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.QiniuBase64UploadUtil; import com.ruoyi.common.utils.QiniuBase64UploadUtil;
@ -147,7 +148,7 @@ public class PshServiceImpl implements IPshService {
String roleType = ""; String roleType = "";
if(DeptTypeEnum.JTGS.getCode().equals(deptMap.get("type_flag"))){ if(DeptTypeEnum.JTGS.getCode().equals(deptMap.get("type_flag"))){
List<Map<String,Object>> datalist = pshMapper.queryProjectUserinfo(map); List<Map<String,Object>> datalist = pshMapper.queryProjectUserinfo(map);
if(datalist!=null && datalist.size()>0 && datalist.get(0)!=null && "21".equals(datalist.get(0).get("job_type"))){ if(datalist!=null && datalist.size()>0 && datalist.get(0)!=null && PublicStateEnum.USERTYPE_JFJL.getCode().equals(datalist.get(0).get("job_type"))){
//说明是甲方经理 //说明是甲方经理
roleType = DeptTypeEnum.JFDBTYPE.getCode(); roleType = DeptTypeEnum.JFDBTYPE.getCode();
}else{ }else{
@ -155,7 +156,7 @@ public class PshServiceImpl implements IPshService {
} }
}else if(DeptTypeEnum.ZGS.getCode().equals(deptMap.get("type_flag"))){ }else if(DeptTypeEnum.ZGS.getCode().equals(deptMap.get("type_flag"))){
List<Map<String,Object>> datalist = pshMapper.queryProjectUserinfo(map); List<Map<String,Object>> datalist = pshMapper.queryProjectUserinfo(map);
if(datalist!=null && datalist.size()>0 && datalist.get(0)!=null && "21".equals(datalist.get(0).get("job_type"))){ if(datalist!=null && datalist.size()>0 && datalist.get(0)!=null && PublicStateEnum.USERTYPE_JFJL.getCode().equals(datalist.get(0).get("job_type"))){
//说明是甲方经理 //说明是甲方经理
roleType = DeptTypeEnum.JFDBTYPE.getCode(); roleType = DeptTypeEnum.JFDBTYPE.getCode();
}else{ }else{

View File

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.DeptTypeEnum; import com.ruoyi.common.enums.DeptTypeEnum;
import com.ruoyi.common.enums.PublicStateEnum;
import com.ruoyi.common.enums.SysRoleEnum; import com.ruoyi.common.enums.SysRoleEnum;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.QiniuBase64UploadUtil; import com.ruoyi.common.utils.QiniuBase64UploadUtil;
@ -149,7 +150,7 @@ public class SspServiceImpl implements ISspService {
String roleType = ""; String roleType = "";
if(DeptTypeEnum.JTGS.getCode().equals(deptMap.get("type_flag"))){ if(DeptTypeEnum.JTGS.getCode().equals(deptMap.get("type_flag"))){
List<Map<String,Object>> datalist = sspMapper.queryProjectUserinfo(map); List<Map<String,Object>> datalist = sspMapper.queryProjectUserinfo(map);
if(datalist!=null && datalist.size()>0 && datalist.get(0)!=null && "21".equals(datalist.get(0).get("job_type"))){ if(datalist!=null && datalist.size()>0 && datalist.get(0)!=null && PublicStateEnum.USERTYPE_JFJL.getCode().equals(datalist.get(0).get("job_type"))){
//说明是甲方经理 //说明是甲方经理
roleType = DeptTypeEnum.JFDBTYPE.getCode(); roleType = DeptTypeEnum.JFDBTYPE.getCode();
}else{ }else{
@ -157,7 +158,7 @@ public class SspServiceImpl implements ISspService {
} }
}else if(DeptTypeEnum.ZGS.getCode().equals(deptMap.get("type_flag"))){ }else if(DeptTypeEnum.ZGS.getCode().equals(deptMap.get("type_flag"))){
List<Map<String,Object>> datalist = sspMapper.queryProjectUserinfo(map); List<Map<String,Object>> datalist = sspMapper.queryProjectUserinfo(map);
if(datalist!=null && datalist.size()>0 && datalist.get(0)!=null && "21".equals(datalist.get(0).get("job_type"))){ if(datalist!=null && datalist.size()>0 && datalist.get(0)!=null && PublicStateEnum.USERTYPE_JFJL.getCode().equals(datalist.get(0).get("job_type"))){
//说明是甲方经理 //说明是甲方经理
roleType = DeptTypeEnum.JFDBTYPE.getCode(); roleType = DeptTypeEnum.JFDBTYPE.getCode();
}else{ }else{

View File

@ -0,0 +1,40 @@
package com.yanzhu.jh.bigscreen.web.controller;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.text.Convert;
import com.yanzhu.jh.project.domain.SurProjectInsurance;
import com.yanzhu.jh.project.service.ISurProjectCheckingService;
import com.yanzhu.jh.project.service.ISurProjectInsuranceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Conller
*/
@RestController
@RequestMapping("/bgscreen/projectChecking")
public class ProjectCheckingController {
@Autowired
private ISurProjectCheckingService surProjectCheckingService;
/**
*
* @param deptId
* @param projectId
* @return
*/
@GetMapping("/getProjectInsuranceList")
public TableDataInfo getProjectInsuranceList(String deptId, String projectId){
SurProjectInsurance surProjectInsurance = new SurProjectInsurance();
if(deptId!=null && !"0".equals(deptId)){
surProjectInsurance.setNowDept(deptId);
}
if(projectId!=null && !"0".equals(projectId)){
surProjectInsurance.setProjectId(Convert.toLong(projectId));
}
return getDataTable(surProjectInsuranceService.selectBgscreenInsuranceList(surProjectInsurance));
}
}

View File

@ -2,6 +2,10 @@ package com.yanzhu.jh.project.controller;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.SysRoleEnum;
import com.ruoyi.system.service.ISysDeptService;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -34,6 +38,9 @@ public class SurProjectCheckingController extends BaseController
@Autowired @Autowired
private ISurProjectCheckingService surProjectCheckingService; private ISurProjectCheckingService surProjectCheckingService;
@Autowired
private ISysDeptService sysDeptService;
/** /**
* *
*/ */
@ -42,6 +49,13 @@ public class SurProjectCheckingController extends BaseController
public TableDataInfo list(SurProjectChecking surProjectChecking) public TableDataInfo list(SurProjectChecking surProjectChecking)
{ {
startPage(); startPage();
surProjectChecking.setNowRole(Convert.toStr(getUserFirstRole()));
if(SysRoleEnum.ZGS.getCode().equals(surProjectChecking.getNowRole())){
surProjectChecking.setNowDept(Convert.toStr(sysDeptService.getZGSDeptId(getDeptId())));
}else{
surProjectChecking.setNowDept(Convert.toStr(getDeptId()));
}
surProjectChecking.setNowUser(Convert.toStr(getUserId()));
List<SurProjectChecking> list = surProjectCheckingService.selectSurProjectCheckingList(surProjectChecking); List<SurProjectChecking> list = surProjectCheckingService.selectSurProjectCheckingList(surProjectChecking);
return getDataTable(list); return getDataTable(list);
} }
@ -101,4 +115,5 @@ public class SurProjectCheckingController extends BaseController
{ {
return toAjax(surProjectCheckingService.deleteSurProjectCheckingByIds(ids)); return toAjax(surProjectCheckingService.deleteSurProjectCheckingByIds(ids));
} }
} }

View File

@ -40,9 +40,6 @@ public class SurProjectDeptWroksController extends BaseController
@Autowired @Autowired
private ISurProjectDeptWroksService surProjectDeptWroksService; private ISurProjectDeptWroksService surProjectDeptWroksService;
@Autowired
private ISurProjectUnitInfoService surProjectUnitInfoService;
@Autowired @Autowired
private ISysDeptService sysDeptService; private ISysDeptService sysDeptService;
@ -69,20 +66,6 @@ public class SurProjectDeptWroksController extends BaseController
return getDataTable(list); return getDataTable(list);
} }
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:projectDeptWroks:list')")
@GetMapping("/unitList")
public TableDataInfo unitList(SurProjectUnitInfo surProjectUnitInfo)
{
surProjectUnitInfo.setNowRole(Convert.toStr(getUserFirstRole()));
if(SysRoleEnum.ZBDW.getCode().equals(surProjectUnitInfo.getNowRole())){
surProjectUnitInfo.setUnitId(getDeptId());
}
return getDataTable(surProjectUnitInfoService.selectSurProjectUnitInfoList(surProjectUnitInfo));
}
/** /**
* *
*/ */

View File

@ -89,8 +89,7 @@ public class SurProjectChecking extends BaseEntity
private String groupDeptUserName; private String groupDeptUserName;
/** 验收时间 */ /** 验收时间 */
@JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "验收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "验收时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date checkingDate; private Date checkingDate;
/** 验收附件 */ /** 验收附件 */
@ -101,6 +100,9 @@ public class SurProjectChecking extends BaseEntity
@Excel(name = "数据状态") @Excel(name = "数据状态")
private Long isDel; private Long isDel;
private String projectName;
private String deptName;
public void setId(Long id) public void setId(Long id)
{ {
this.id = id; this.id = id;
@ -291,6 +293,22 @@ public class SurProjectChecking extends BaseEntity
return isDel; return isDel;
} }
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import java.util.List;
/** /**
* sur_project_unit_info * sur_project_unit_info
* *
@ -28,8 +30,8 @@ public class SurProjectUnitInfo extends BaseEntity
private Long deptId; private Long deptId;
/** 单位分类1 建设单位 2 设计单位 3 施工单位 4监理单位 5 监测机构) */ /** 单位分类11 责任主体 2 总包单位 3 分包单位 4 监理单位) 具体参考数据字典sys_dept_type */
@Excel(name = "单位分类", readConverterExp = "1=,建=设单位,2=,设=计单位,3=,施=工单位,4=监理单位,5=,监=测机构") @Excel(name = "单位分类", readConverterExp = "1=,责任主体,2=,总包单位,3=,分包单位,4=监理单位")
private Long unitType; private Long unitType;
/** 单位名称 */ /** 单位名称 */
@ -53,6 +55,10 @@ public class SurProjectUnitInfo extends BaseEntity
/** 删除状态0 未删除 1 已删除) */ /** 删除状态0 未删除 1 已删除) */
private Long delFlag; private Long delFlag;
private String unitTypeName;
private List<SurProjectUserinfo> userinfoList;
public void setId(Long id) public void setId(Long id)
{ {
this.id = id; this.id = id;
@ -150,6 +156,22 @@ public class SurProjectUnitInfo extends BaseEntity
this.deptName = deptName; this.deptName = deptName;
} }
public String getUnitTypeName() {
return unitTypeName;
}
public void setUnitTypeName(String unitTypeName) {
this.unitTypeName = unitTypeName;
}
public List<SurProjectUserinfo> getUserinfoList() {
return userinfoList;
}
public void setUserinfoList(List<SurProjectUserinfo> userinfoList) {
this.userinfoList = userinfoList;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@ -60,6 +60,7 @@ public class SurProjectUserinfo extends BaseEntity
private Long[] projectIds; private Long[] projectIds;
private Long[] userIds; private Long[] userIds;
private String jobTypeName;
public void setProjectName(String projectName) { public void setProjectName(String projectName) {
this.projectName = projectName; this.projectName = projectName;
@ -174,6 +175,14 @@ public class SurProjectUserinfo extends BaseEntity
this.phonenumber = phonenumber; this.phonenumber = phonenumber;
} }
public String getJobTypeName() {
return jobTypeName;
}
public void setJobTypeName(String jobTypeName) {
this.jobTypeName = jobTypeName;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@ -1,9 +1,11 @@
package com.yanzhu.jh.project.service; package com.yanzhu.jh.project.service;
import java.util.List; import java.util.List;
import java.util.Map;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.yanzhu.jh.project.domain.SurProject; import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.domain.SurProjectUnitInfo;
import com.yanzhu.jh.project.domain.SurProjectUserinfo; import com.yanzhu.jh.project.domain.SurProjectUserinfo;
/** /**
@ -30,6 +32,14 @@ public interface ISurProjectUserinfoService
*/ */
public List<SurProjectUserinfo> selectSurProjectUserinfoList(SurProjectUserinfo surProjectUserinfo); public List<SurProjectUserinfo> selectSurProjectUserinfoList(SurProjectUserinfo surProjectUserinfo);
/**
*
*
* @param surProjectUserinfo
* @return
*/
public List<SurProjectUnitInfo> selectProjectUnitUser(SurProjectUserinfo surProjectUserinfo);
/** /**
* *
* *

View File

@ -1,6 +1,10 @@
package com.yanzhu.jh.project.service.impl; package com.yanzhu.jh.project.service.impl;
import java.util.Date;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.PublicStateEnum;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -53,9 +57,18 @@ public class SurProjectCheckingServiceImpl implements ISurProjectCheckingService
@Override @Override
public int insertSurProjectChecking(SurProjectChecking surProjectChecking) public int insertSurProjectChecking(SurProjectChecking surProjectChecking)
{ {
surProjectChecking.setCheckType(PublicStateEnum.PROJECT_CHECK_TYPE_JPYS.getCode());
surProjectChecking.setWorkingPositionType(PublicStateEnum.PROJECT_CHECK_POSITION_TYPE.getCode());
if(surProjectChecking.getCheckingDate()==null){
//添加默认时间
surProjectChecking.setCheckingDate(new Date());
}
//默认第一张图是主图
surProjectChecking.setMainImage(surProjectChecking.getImageUrls().split(",")[0]);
surProjectChecking.setIsDel(Convert.toLong(PublicStateEnum.OK.getCode()));
surProjectChecking.setCreateBy(SecurityUtils.getUsername()); surProjectChecking.setCreateBy(SecurityUtils.getUsername());
surProjectChecking.setCreateTime(DateUtils.getNowDate()); surProjectChecking.setCreateTime(DateUtils.getNowDate());
surProjectChecking.setIsDel(0l);
return surProjectCheckingMapper.insertSurProjectChecking(surProjectChecking); return surProjectCheckingMapper.insertSurProjectChecking(surProjectChecking);
} }
@ -68,6 +81,7 @@ public class SurProjectCheckingServiceImpl implements ISurProjectCheckingService
@Override @Override
public int updateSurProjectChecking(SurProjectChecking surProjectChecking) public int updateSurProjectChecking(SurProjectChecking surProjectChecking)
{ {
surProjectChecking.setMainImage(surProjectChecking.getImageUrls().split(",")[0]);
surProjectChecking.setUpdateBy(SecurityUtils.getUsername()); surProjectChecking.setUpdateBy(SecurityUtils.getUsername());
surProjectChecking.setUpdateTime(DateUtils.getNowDate()); surProjectChecking.setUpdateTime(DateUtils.getNowDate());
return surProjectCheckingMapper.updateSurProjectChecking(surProjectChecking); return surProjectCheckingMapper.updateSurProjectChecking(surProjectChecking);

View File

@ -1,7 +1,9 @@
package com.yanzhu.jh.project.service.impl; package com.yanzhu.jh.project.service.impl;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysDept;
@ -10,6 +12,7 @@ import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.DeptTypeEnum; import com.ruoyi.common.enums.DeptTypeEnum;
import com.ruoyi.common.enums.PublicStateEnum; import com.ruoyi.common.enums.PublicStateEnum;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.SysUserMapper;
import com.yanzhu.jh.project.domain.SurProject; import com.yanzhu.jh.project.domain.SurProject;
@ -71,6 +74,32 @@ public class SurProjectUserinfoServiceImpl implements ISurProjectUserinfoService
return surProjectUserinfoMapper.selectSurProjectUserinfoList(surProjectUserinfo); return surProjectUserinfoMapper.selectSurProjectUserinfoList(surProjectUserinfo);
} }
/**
*
*
* @param surProjectUserinfo
* @return
*/
public List<SurProjectUnitInfo> selectProjectUnitUser(SurProjectUserinfo surProjectUserinfo) {
SurProjectUnitInfo surProjectUnitInfo = new SurProjectUnitInfo();
surProjectUnitInfo.setProjectId(surProjectUserinfo.getProjectId());
List<SurProjectUnitInfo> projectUnitUserInfoList = surProjectUnitInfoMapper.selectSurProjectUnitInfoList(surProjectUnitInfo);
List<SurProjectUserinfo> projectUserinfoList = surProjectUserinfoMapper.selectSurProjectUserinfoList(surProjectUserinfo);
for(SurProjectUnitInfo projectUnitInfo:projectUnitUserInfoList){
List<SurProjectUserinfo> unitUserList = new ArrayList<>();
for(SurProjectUserinfo projectUserinfo:projectUserinfoList){
//同一部门组装数据
if(projectUnitInfo.getUnitId().equals(projectUserinfo.getDeptId())){
unitUserList.add(projectUserinfo);
}else if(DeptTypeEnum.ZGS.getCode().equals(projectUnitInfo.getUnitType().toString()) && PublicStateEnum.USERTYPE_JFJL.getCode().equals(projectUserinfo.getJobType())) {
unitUserList.add(projectUserinfo);
}
}
projectUnitInfo.setUserinfoList(unitUserList);
}
return projectUnitUserInfoList;
}
/** /**
* *
* *
@ -88,7 +117,7 @@ public class SurProjectUserinfoServiceImpl implements ISurProjectUserinfoService
if(DeptTypeEnum.ZGS.getCode().equals(sysDept.getTypeFlag())){ if(DeptTypeEnum.ZGS.getCode().equals(sysDept.getTypeFlag())){
SurProject surProject = surProjectMapper.selectSurProjectById(surProjectUserinfo.getProjectId()); SurProject surProject = surProjectMapper.selectSurProjectById(surProjectUserinfo.getProjectId());
//选择人员职务是甲方经理时,同步到项目负责人 //选择人员职务是甲方经理时,同步到项目负责人
if("21".equals(surProjectUserinfo.getJobType())){ if(PublicStateEnum.USERTYPE_JFJL.getCode().equals(surProjectUserinfo.getJobType())){
SysUser sysUser = sysUserMapper.selectUserById(surProjectUserinfo.getUserIds()[0]); SysUser sysUser = sysUserMapper.selectUserById(surProjectUserinfo.getUserIds()[0]);
surProject.setProjectPerson(sysUser.getNickName()); surProject.setProjectPerson(sysUser.getNickName());
surProject.setProjectPhone(sysUser.getPhonenumber()); surProject.setProjectPhone(sysUser.getPhonenumber());

View File

@ -5,12 +5,20 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.PublicStateEnum; import com.ruoyi.common.enums.PublicStateEnum;
import com.ruoyi.common.enums.SysRoleEnum;
import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import com.yanzhu.jh.project.domain.SurProject; import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.domain.SurProjectChecking;
import com.yanzhu.jh.project.domain.SurProjectUnitInfo;
import com.yanzhu.jh.project.domain.SurProjectUserinfo;
import com.yanzhu.jh.project.service.ISurProjectService; import com.yanzhu.jh.project.service.ISurProjectService;
import com.yanzhu.jh.project.service.ISurProjectUnitInfoService;
import com.yanzhu.jh.project.service.ISurProjectUserinfoService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -37,6 +45,12 @@ PublicsController extends BaseController {
@Autowired @Autowired
private ISurProjectService surProjectService; private ISurProjectService surProjectService;
@Autowired
private ISurProjectUnitInfoService surProjectUnitInfoService;
@Autowired
private ISurProjectUserinfoService surProjectUserinfoService;
/** /**
* *
*/ */
@ -88,4 +102,26 @@ PublicsController extends BaseController {
{ {
return success(deptService.selectDeptTreeList(dept)); return success(deptService.selectDeptTreeList(dept));
} }
/**
*
*/
@GetMapping("/queryUnitList")
public TableDataInfo queryUnitList(SurProjectUnitInfo surProjectUnitInfo)
{
surProjectUnitInfo.setNowRole(Convert.toStr(getUserFirstRole()));
if(SysRoleEnum.ZBDW.getCode().equals(surProjectUnitInfo.getNowRole())){
surProjectUnitInfo.setUnitId(getDeptId());
}
return getDataTable(surProjectUnitInfoService.selectSurProjectUnitInfoList(surProjectUnitInfo));
}
/**
*
*/
@GetMapping("/selectProjectUnitUser")
public AjaxResult selectProjectUnitUser(SurProjectUserinfo surProjectUserinfo)
{
return success(surProjectUserinfoService.selectProjectUnitUser(surProjectUserinfo));
}
} }

View File

@ -49,13 +49,11 @@ public class WorkTrain extends BaseEntity
private Long trainParticipants; private Long trainParticipants;
/** 开始时间 */ /** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date beginDate; private Date beginDate;
/** 结束时间 */ /** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date endDate; private Date endDate;
/** 删除标识 */ /** 删除标识 */

View File

@ -31,6 +31,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="projectName" column="projectName" />
<result property="deptName" column="dept_name" />
</resultMap> </resultMap>
<sql id="selectSurProjectCheckingVo"> <sql id="selectSurProjectCheckingVo">
@ -38,24 +40,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectSurProjectCheckingList" parameterType="SurProjectChecking" resultMap="SurProjectCheckingResult"> <select id="selectSurProjectCheckingList" parameterType="SurProjectChecking" resultMap="SurProjectCheckingResult">
<include refid="selectSurProjectCheckingVo"/> select spc.id, spc.project_id, spc.dept_id, spc.group_dept_id, spc.check_type, spc.main_image, spc.image_urls, spc.working_position_type, spc.check_working_position, spc.checking_num, spc.check_result, spc.intro, spc.quality_user, spc.quality_user_name, spc.supervise_user, spc.supervise_user_name, spc.group_dept_user, spc.group_dept_user_name, spc.checking_date, spc.checking_files, spc.is_del, spc.create_by, spc.create_time, spc.update_by, spc.update_time, spc.remark, sp.projectName, sd.dept_name from sur_project_checking spc
left join sur_project sp on spc.project_id = sp.id
left join sys_dept sd on sd.dept_id = spc.dept_id
<!--监理单位/总包公司/分包单位-->
<if test='nowRole == "5" or nowRole == "6" or nowRole == "7"'> left join sur_project_unit_info spui on spui.projectId = sp.id</if>
<!--普通用户查询项目人员-->
<if test='nowRole == "99"'> left join sur_project_userinfo spu on spu.project_id = sp.id</if>
<where> <where>
<if test="projectId != null "> and project_id = #{projectId}</if> and is_del=0
<if test="deptId != null "> and dept_id = #{deptId}</if> <if test="projectId != null "> and spc.project_id = #{projectId}</if>
<if test="groupDeptId != null "> and group_dept_id = #{groupDeptId}</if> <if test="projectName != null and projectName != ''"> and sp.projectName like concat('%', #{projectName}, '%')</if>
<if test="checkType != null and checkType != ''"> and check_type = #{checkType}</if> <if test="deptId != null "> and spc.dept_id = #{deptId}</if>
<if test="workingPositionType != null and workingPositionType != ''"> and working_position_type = #{workingPositionType}</if> <if test="deptName != null and deptName != ''"> and sd.dept_name like concat('%', #{deptName}, '%')</if>
<if test="checkWorkingPosition != null and checkWorkingPosition != ''"> and check_working_position like concat('%', #{checkWorkingPosition}, '%')</if> <if test="groupDeptId != null "> and spc.group_dept_id = #{groupDeptId}</if>
<if test="checkResult != null and checkResult != ''"> and check_result = #{checkResult}</if> <if test="checkType != null and checkType != ''"> and spc.check_type = #{checkType}</if>
<if test="qualityUser != null and qualityUser != ''"> and quality_user like concat('%', #{qualityUser}, '%')</if> <if test="workingPositionType != null and workingPositionType != ''"> and spc.working_position_type = #{workingPositionType}</if>
<if test="qualityUserName != null and qualityUserName != ''"> and quality_user_name like concat('%', #{qualityUserName}, '%')</if> <if test="checkWorkingPosition != null and checkWorkingPosition != ''"> and spc.check_working_position like concat('%', #{checkWorkingPosition}, '%')</if>
<if test="superviseUser != null and superviseUser != ''"> and supervise_user like concat('%', #{superviseUser}, '%')</if> <if test="checkResult != null and checkResult != ''"> and spc.check_result = #{checkResult}</if>
<if test="superviseUserName != null and superviseUserName != ''"> and supervise_user_name like concat('%', #{superviseUserName}, '%')</if> <if test="qualityUser != null and qualityUser != ''"> and (spc.quality_user like concat('%', #{qualityUser}, '%') or spc.quality_user_name like concat('%', #{qualityUser}, '%'))</if>
<if test="groupDeptUser != null and groupDeptUser != ''"> and group_dept_user like concat('%', #{groupDeptUser}, '%')</if> <if test="qualityUserName != null and qualityUserName != ''"> and spc.quality_user_name like concat('%', #{qualityUserName}, '%')</if>
<if test="groupDeptUserName != null and groupDeptUserName != ''"> and group_dept_user_name like concat('%', #{groupDeptUserName}, '%')</if> <if test="superviseUser != null and superviseUser != ''"> and (spc.supervise_user like concat('%', #{superviseUser}, '%') or spc.supervise_user_name like concat('%', #{superviseUser}, '%'))</if>
<if test="params.beginCheckingDate != null and params.beginCheckingDate != '' and params.endCheckingDate != null and params.endCheckingDate != ''"> and checking_date between #{params.beginCheckingDate} and #{params.endCheckingDate}</if> <if test="superviseUserName != null and superviseUserName != ''"> and spc.supervise_user_name like concat('%', #{superviseUserName}, '%')</if>
<if test="isDel != null "> and is_del = #{isDel}</if> <if test="groupDeptUser != null and groupDeptUser != ''"> and spc.group_dept_user like concat('%', #{groupDeptUser}, '%')</if>
<if test="groupDeptUserName != null and groupDeptUserName != ''"> and spc.group_dept_user_name like concat('%', #{groupDeptUserName}, '%')</if>
<if test="params.beginCheckingDate != null and params.beginCheckingDate != '' and params.endCheckingDate != null and params.endCheckingDate != ''"> and spc.checking_date between #{params.beginCheckingDate} and #{params.endCheckingDate}</if>
<if test="isDel != null "> and spc.is_del = #{isDel}</if>
<!-- 查询条件-项目部门 -->
<if test="projectDeptId != null "> and sp.deptId = #{projectDeptId}</if>
<!--子部门数据-->
<if test='nowRole == "4"'> and sp.deptId = #{nowDept}</if>
<!--监理单位/总包公司/分包单位查询当前关联数据-->
<if test='nowRole == "5" or nowRole == "6" or nowRole == "7"'> and spui.unitId = #{nowDept}</if>
<!--普通用户查询项目人员-->
<if test='nowRole == "99"'> and spu.user_id = #{nowUser} and spu.is_del=0</if>
</where> </where>
order by checking_date desc
</select> </select>
<select id="selectSurProjectCheckingById" parameterType="Long" resultMap="SurProjectCheckingResult"> <select id="selectSurProjectCheckingById" parameterType="Long" resultMap="SurProjectCheckingResult">

View File

@ -10,6 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="unitId" column="unitId" /> <result property="unitId" column="unitId" />
<result property="deptId" column="deptId" /> <result property="deptId" column="deptId" />
<result property="unitType" column="unitType" /> <result property="unitType" column="unitType" />
<result property="unitTypeName" column="unitTypeName" />
<result property="unitName" column="unitName" /> <result property="unitName" column="unitName" />
<result property="deptName" column="deptName" /> <result property="deptName" column="deptName" />
<result property="unitPersonName" column="unitPersonName" /> <result property="unitPersonName" column="unitPersonName" />
@ -24,18 +25,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectSurProjectUnitInfoList" parameterType="SurProjectUnitInfo" resultMap="SurProjectUnitInfoResult"> <select id="selectSurProjectUnitInfoList" parameterType="SurProjectUnitInfo" resultMap="SurProjectUnitInfoResult">
<include refid="selectSurProjectUnitInfoVo"/> select spui.id, spui.projectId, spui.unitId, spui.unitId as deptId, spui.unitType, sdd.dict_label as unitTypeName, spui.unitName, spui.unitName as deptName, spui.unitPersonName, spui.unitPersonPhone, spui.createUser, spui.createTime, spui.del_flag from sur_project_unit_info spui
left join sys_dict_data sdd on sdd.dict_type='sys_dept_type' and dict_value=spui.unitType
<where> <where>
and del_flag=0 and del_flag=0
<if test="projectId != null "> and projectId = #{projectId}</if> <if test="projectId != null "> and spui.projectId = #{projectId}</if>
<if test="unitId != null "> and unitId = #{unitId}</if> <if test="unitId != null "> and spui.unitId = #{unitId}</if>
<if test="unitType != null "> and unitType = #{unitType}</if> <if test="unitType != null "> and spui.unitType = #{unitType}</if>
<if test="unitName != null and unitName != ''"> and unitName like concat('%', #{unitName}, '%')</if> <if test="unitName != null and unitName != ''"> and spui.unitName like concat('%', #{unitName}, '%')</if>
<if test="unitPersonName != null and unitPersonName != ''"> and unitPersonName like concat('%', #{unitPersonName}, '%')</if> <if test="unitPersonName != null and unitPersonName != ''"> and spui.unitPersonName like concat('%', #{unitPersonName}, '%')</if>
<if test="unitPersonPhone != null and unitPersonPhone != ''"> and unitPersonPhone = #{unitPersonPhone}</if> <if test="unitPersonPhone != null and unitPersonPhone != ''"> and spui.unitPersonPhone = #{unitPersonPhone}</if>
<if test="createUser != null and createUser != ''"> and createUser = #{createUser}</if> <if test="createUser != null and createUser != ''"> and spui.createUser = #{createUser}</if>
<if test="createTime != null "> and createTime = #{createTime}</if> <if test="createTime != null "> and spui.createTime = #{createTime}</if>
<if test="nowDept != null and nowDept != ''"> and unitId != #{nowDept}</if> <if test="nowDept != null and nowDept != ''"> and spui.unitId != #{nowDept}</if>
</where> </where>
</select> </select>

View File

@ -11,6 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="deptName" column="dept_name" /> <result property="deptName" column="dept_name" />
<result property="deptType" column="dept_type" /> <result property="deptType" column="dept_type" />
<result property="jobType" column="job_type" /> <result property="jobType" column="job_type" />
<result property="jobTypeName" column="job_type_name" />
<result property="userId" column="user_id" /> <result property="userId" column="user_id" />
<result property="isDel" column="is_del" /> <result property="isDel" column="is_del" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
@ -28,9 +29,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectSurProjectUserinfoList" parameterType="SurProjectUserinfo" resultMap="SurProjectUserinfoResult"> <select id="selectSurProjectUserinfoList" parameterType="SurProjectUserinfo" resultMap="SurProjectUserinfoResult">
select spu.id, spu.project_id, spu.dept_id, spu.dept_name, spu.dept_type, spu.job_type, spu.user_id, spu.is_del, spu.create_by, spu.create_time, spu.update_by, spu.update_time, spu.remark, sp.projectName, su.nick_name, su.phonenumber from sur_project_userinfo spu select spu.id, spu.project_id, spu.dept_id, spu.dept_name, spu.dept_type, spu.job_type, sdd.dict_label as job_type_name, spu.user_id, spu.is_del, spu.create_by, spu.create_time, spu.update_by, spu.update_time, spu.remark, sp.projectName, su.nick_name, su.phonenumber from sur_project_userinfo spu
left join sur_project sp on spu.project_id = sp.id left join sur_project sp on spu.project_id = sp.id
left join sys_user su on spu.user_id = su.user_id left join sys_user su on spu.user_id = su.user_id
left join sys_dict_data sdd on sdd.dict_type='sys_job_type' and spu.job_type = sdd.dict_value
<!--监理单位/总包公司/分包单位--> <!--监理单位/总包公司/分包单位-->
<where> <where>
and spu.is_del=0 and spu.is_del=0

View File

@ -129,9 +129,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select a.id, a.project_id, a.project_name, a.main_image, a.train_type, a.train_title, a.train_nature, a.train_participants, a.begin_date, a.end_date, a.train_content, a.train_file, a.is_del, a.create_by, a.create_time, a.update_by, a.update_time, a.remark, select a.id, a.project_id, a.project_name, a.main_image, a.train_type, a.train_title, a.train_nature, a.train_participants, a.begin_date, a.end_date, a.train_content, a.train_file, a.is_del, a.create_by, a.create_time, a.update_by, a.update_time, a.remark,
b.train_id as sub_train_id, b.dept_id as sub_dept_id, b.is_main as sub_is_main b.train_id as sub_train_id, b.dept_id as sub_dept_id, b.is_main as sub_is_main
from work_train a from work_train a
left join work_train_dept b on b.train_id = a.id left join work_train_dept b on b.train_id = a.id and b.is_main ='N'
where a.id = #{id} where a.id = #{id}
and b.is_main ='N'
</select> </select>
<insert id="insertWorkTrain" parameterType="WorkTrain" useGeneratedKeys="true" keyProperty="id"> <insert id="insertWorkTrain" parameterType="WorkTrain" useGeneratedKeys="true" keyProperty="id">