提交代码

dev_xds
姜玉琦 2023-08-15 17:48:24 +08:00
parent 87ed3ecc23
commit 91def538e9
27 changed files with 311 additions and 64 deletions

View File

@ -10,8 +10,6 @@ ruoyi:
demoEnabled: true demoEnabled: true
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath # 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: D:/data/uploadPath profile: D:/data/uploadPath
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
thumbnail: D:/data/uploadPath
# 获取ip地址开关 # 获取ip地址开关
addressEnabled: false addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证 # 验证码类型 math 数字计算 char 字符验证

View File

@ -205,17 +205,17 @@
v-hasPermi="['system:assess:list']">季度考核管理</el-dropdown-item> v-hasPermi="['system:assess:list']">季度考核管理</el-dropdown-item>
<el-dropdown-item command="handleBuildNode" icon="el-icon-data-analysis" <el-dropdown-item command="handleBuildNode" icon="el-icon-data-analysis"
v-hasPermi="['project:build_node_data:list']">计划节点管理</el-dropdown-item> v-hasPermi="['project:build_node_data:list']">计划节点管理</el-dropdown-item>
<el-dropdown-item command="handlePshProblemmodify" icon="el-icon-first-aid-kit" <el-dropdown-item command="handlePshProblemmodify" icon="el-icon-message-solid"
v-hasPermi="['trouble:sspProblemmodify:list']">安全隐患排查</el-dropdown-item> v-hasPermi="['trouble:sspProblemmodify:list']">安全隐患排查</el-dropdown-item>
<el-dropdown-item command="handleSspProblemmodify" icon="el-icon-first-aid-kit" <el-dropdown-item command="handleSspProblemmodify" icon="el-icon-camera-solid"
v-hasPermi="['trouble:sspProblemmodify:list']">质量隐患排查</el-dropdown-item> v-hasPermi="['trouble:sspProblemmodify:list']">质量隐患排查</el-dropdown-item>
<el-dropdown-item command="handleWorkTrain" icon="el-icon-notebook-2" <el-dropdown-item command="handleWorkTrain" icon="el-icon-notebook-2"
v-hasPermi="['work:workTrain:list']">项目专项培训</el-dropdown-item> v-hasPermi="['work:workTrain:list']">项目专项培训</el-dropdown-item>
<el-dropdown-item command="handleEmergencyDrill" icon="el-icon-first-aid-kit" <el-dropdown-item command="handleEmergencyDrill" icon="el-icon-first-aid-kit"
v-hasPermi="['work:emergencyDrill:list']">项目应急演练</el-dropdown-item> v-hasPermi="['work:emergencyDrill:list']">项目应急演练</el-dropdown-item>
<el-dropdown-item command="handleProjectSpecial" icon="el-icon-first-aid-kit" <el-dropdown-item command="handleProjectSpecial" icon="el-icon-user"
v-hasPermi="['project:surProjectSpecial:list']">项目特种人员</el-dropdown-item> v-hasPermi="['project:surProjectSpecial:list']">项目特种人员</el-dropdown-item>
<el-dropdown-item command="handleProjectAttendance" icon="el-icon-first-aid-kit" <el-dropdown-item command="handleProjectAttendance" icon="el-icon-trophy"
v-hasPermi="['project:surProjectAttendance:add']">今日出勤</el-dropdown-item> v-hasPermi="['project:surProjectAttendance:add']">今日出勤</el-dropdown-item>
<el-dropdown-item command="handleDelete" icon="el-icon-delete" <el-dropdown-item command="handleDelete" icon="el-icon-delete"
v-hasPermi="['project:surProject:remove']">删除项目</el-dropdown-item> v-hasPermi="['project:surProject:remove']">删除项目</el-dropdown-item>

View File

@ -125,13 +125,13 @@
<image-preview v-if="scope.row.credentialType=='JPG' || scope.row.credentialType=='PNG' || scope.row.credentialType=='JPEG'" :src="scope.row.credentialFile" :width="50" :height="50"/> <image-preview v-if="scope.row.credentialType=='JPG' || scope.row.credentialType=='PNG' || scope.row.credentialType=='JPEG'" :src="scope.row.credentialFile" :width="50" :height="50"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-download"
@click="handledownload(scope.row)" @click="handledownload(scope.row)"
v-hasPermi="['project:surProjectSpecial:list']" v-hasPermi="['project:surProjectSpecial:list']"
>下载证书</el-button> >下载证书</el-button>
@ -183,7 +183,7 @@
<el-form-item label="联系方式" prop="phoneNumber"> <el-form-item label="联系方式" prop="phoneNumber">
<el-input v-model="form.phoneNumber" placeholder="请输入联系方式" /> <el-input v-model="form.phoneNumber" placeholder="请输入联系方式" />
</el-form-item> </el-form-item>
<el-form-item label="是否有证书" prop="isCredential"> <el-form-item label="是否有证书" prop="isCredential" v-if="false">
<el-select v-model="form.isCredential" placeholder="请选择是否有证书" style="width: 100%;" @change="credentialChange"> <el-select v-model="form.isCredential" placeholder="请选择是否有证书" style="width: 100%;" @change="credentialChange">
<el-option <el-option
v-for="dict in dict.type.sys_yes_no" v-for="dict in dict.type.sys_yes_no"
@ -201,11 +201,14 @@
v-model="form.credentialExpirationTime" v-model="form.credentialExpirationTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请选择证书过期时间"> placeholder="请选择证书过期时间" style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="证书附件" prop="credentialFile"> <el-form-item label="证书附件" prop="credentialFile">
<FileUpload @input="fileInput" :limit="1" :fileType="['pdf','png','jpg','jpeg']"/> <FileUpload @input="fileInput" :limit="1" :fileType="['pdf','png','jpg','jpeg']" v-model="files"/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -261,6 +264,7 @@ export default {
credential: false, credential: false,
// //
form: {}, form: {},
files: [],
// //
rules: { rules: {
name: [ name: [
@ -386,11 +390,7 @@ export default {
const id = row.id || this.ids const id = row.id || this.ids
getSurProjectSpecial(id).then(response => { getSurProjectSpecial(id).then(response => {
this.form = response.data; this.form = response.data;
if(this.form.isCredential=="Y"){ this.files = this.form.credentialFile;
this.credential = true;
}else{
this.credential = false;
}
this.open = true; this.open = true;
this.title = "修改项目特种人员"; this.title = "修改项目特种人员";
}); });
@ -430,6 +430,10 @@ export default {
this.download('project/surProjectSpecial/export', { this.download('project/surProjectSpecial/export', {
...this.queryParams ...this.queryParams
}, `surProjectSpecial_${new Date().getTime()}.xlsx`) }, `surProjectSpecial_${new Date().getTime()}.xlsx`)
},
/** 下载证书 */
handledownload(row){
window.open('/jhapi'+row.credentialFile);
} }
} }
}; };

View File

@ -62,7 +62,7 @@
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-download"
@click="handledownload(scope.row)" @click="handledownload(scope.row)"
v-hasPermi="['project:surProjectSpecial:list']" v-hasPermi="['project:surProjectSpecial:list']"
>下载证书</el-button> >下载证书</el-button>
@ -378,7 +378,7 @@
}, },
/** 下载证书 */ /** 下载证书 */
handledownload(row){ handledownload(row){
window.open(row.credentialFile); window.open('/jhapi'+row.credentialFile);
} }
} }
} }

View File

@ -113,6 +113,7 @@
<el-tab-pane label="待整改" name="dzg"></el-tab-pane> <el-tab-pane label="待整改" name="dzg"></el-tab-pane>
<el-tab-pane label="待复检" name="dqr"></el-tab-pane> <el-tab-pane label="待复检" name="dqr"></el-tab-pane>
<el-tab-pane label="已处理" name="ycl"></el-tab-pane> <el-tab-pane label="已处理" name="ycl"></el-tab-pane>
<el-tab-pane label="整改超时" name="zgcs"></el-tab-pane>
<el-table v-loading="loading" :data="sspProblemmodifyList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="sspProblemmodifyList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="40" align="center" v-if="false"/> <el-table-column type="selection" width="40" align="center" v-if="false"/>
<el-table-column label="项目名称" align="center" prop="problemArea" width="200" show-overflow-tooltip/> <el-table-column label="项目名称" align="center" prop="problemArea" width="200" show-overflow-tooltip/>

View File

@ -113,9 +113,10 @@
<el-tab-pane label="待整改" name="dzg"></el-tab-pane> <el-tab-pane label="待整改" name="dzg"></el-tab-pane>
<el-tab-pane label="待复检" name="dqr"></el-tab-pane> <el-tab-pane label="待复检" name="dqr"></el-tab-pane>
<el-tab-pane label="已处理" name="ycl"></el-tab-pane> <el-tab-pane label="已处理" name="ycl"></el-tab-pane>
<el-tab-pane label="整改超时" name="zgcs"></el-tab-pane>
<el-table v-loading="loading" :data="sspProblemmodifyList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="sspProblemmodifyList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="40" align="center" v-if="false"/> <el-table-column type="selection" width="40" align="center" v-if="false"/>
<el-table-column label="项目名称" align="center" prop="problemArea" width="200" show-overflow-tooltip/> <el-table-column label="项目名称" align="center" prop="problemArea" width="200" fixed="left" show-overflow-tooltip/>
<el-table-column label="隐患图片" align="center" property="path" width="220"> <el-table-column label="隐患图片" align="center" property="path" width="220">
<template slot-scope="scope"> <template slot-scope="scope">
<el-image ref="preview" <el-image ref="preview"
@ -133,12 +134,22 @@
</el-table-column> </el-table-column>
<el-table-column label="隐患描述" align="center" prop="workParts" width="100" show-overflow-tooltip/> <el-table-column label="隐患描述" align="center" prop="workParts" width="100" show-overflow-tooltip/>
<el-table-column label="整改要求" align="center" prop="changeInfo" width="200" show-overflow-tooltip/> <el-table-column label="整改要求" align="center" prop="changeInfo" width="200" show-overflow-tooltip/>
<el-table-column label="整改截至时间" align="center" prop="nickedTime" width="135">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.nickedTime, '{y}-{m}-{d} {h}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="隐患整改人" align="left" width="120" show-overflow-tooltip> <el-table-column label="隐患整改人" align="left" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{scope.row.lordSent}}</div> <div>{{scope.row.lordSent}}</div>
<div>{{scope.row.lordSentUser}}</div> <div>{{scope.row.lordSentUser}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="流程状态" align="center" prop="checkState">
<template slot-scope="scope">
<dict-tag :options="dict.type.smz_ssp_checkstate" :value="scope.row.checkState"/>
</template>
</el-table-column>
<el-table-column label="复检人" align="left" width="120" show-overflow-tooltip> <el-table-column label="复检人" align="left" width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{scope.row.recheckSend}}</div> <div>{{scope.row.recheckSend}}</div>
@ -151,18 +162,13 @@
<div>{{scope.row.copySendUser}}</div> <div>{{scope.row.copySendUser}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="流程状态" align="center" prop="checkState">
<template slot-scope="scope">
<dict-tag :options="dict.type.smz_ssp_checkstate" :value="scope.row.checkState"/>
</template>
</el-table-column>
<el-table-column label="提交用户" align="center" prop="createUser" width="100"/> <el-table-column label="提交用户" align="center" prop="createUser" width="100"/>
<el-table-column label="提交时间" align="center" prop="createTime" width="135"> <el-table-column label="提交时间" align="center" prop="createTime" width="135">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{s}') }}</span> <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{s}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button v-if="scope.row.marksVideo != null && scope.row.marksVideo != ''" <!-- <el-button v-if="scope.row.marksVideo != null && scope.row.marksVideo != ''"
size="mini" size="mini"

View File

@ -544,7 +544,7 @@
SELECT SELECT
IFNULL( spi.projectName, '' ) AS projectName, IFNULL( spi.projectName, '' ) AS projectName,
IFNULL( spui.unitType, '' ) AS unitType, IFNULL( spui.unitType, '' ) AS unitType,
IFNULL( spuii.unit_name,'') AS unitTypeName, IFNULL( sdd.dict_label,'') AS unitTypeName,
IFNULL( spuii.unit_icon,'') AS unitTypeIcon, IFNULL( spuii.unit_icon,'') AS unitTypeIcon,
IFNULL( spui.unitName, '' ) AS unitName, IFNULL( spui.unitName, '' ) AS unitName,
IFNULL( spui.unitPersonName, '' ) AS unitPersonName, IFNULL( spui.unitPersonName, '' ) AS unitPersonName,
@ -552,10 +552,12 @@
FROM FROM
`sur_project_unit_info` spui `sur_project_unit_info` spui
LEFT JOIN sur_project_unit_icon spuii ON spui.unitType = spuii.id LEFT JOIN sur_project_unit_icon spuii ON spui.unitType = spuii.id
left join sys_dict_data sdd on sdd.dict_type = 'sys_dept_type' and sdd.dict_value = spui.unitType
LEFT JOIN sur_project spi ON spui.projectId = spi.id LEFT JOIN sur_project spi ON spui.projectId = spi.id
WHERE WHERE
spui.projectId =#{projectId} spui.projectId =#{projectId}
AND spui.del_flag = 0 AND spui.del_flag = 0
ORDER BY sdd.dict_sort asc
</select> </select>
<select id="selectDeptByProjectId" parameterType="Long" resultType="map"> <select id="selectDeptByProjectId" parameterType="Long" resultType="map">

View File

@ -98,10 +98,16 @@
<div class="spp-block-title"> <div class="spp-block-title">
检查时间 检查时间
</div> </div>
<div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.createTime,'yyyy-MM-dd HH:mm:ss')}"> <div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.createTime,'yyyy-MM-dd HH:mm')}">
</div> </div>
</div> </div>
<div class="ssp-block">
<div class="spp-block-title">
整改截至时间
</div>
<div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.nickedTime,'yyyy-MM-dd HH:mm')}"></div>
</div>
<div class="ssp-block" th:if="${queryChangeNicked.rejectState == 'OK'}"> <div class="ssp-block" th:if="${queryChangeNicked.rejectState == 'OK'}">
<div class="spp-block-title"> <div class="spp-block-title">
驳回意见 驳回意见

View File

@ -127,7 +127,7 @@
整改截至时间 整改截至时间
</div> </div>
<div class="ssp-block-input"> <div class="ssp-block-input">
<input type="text" id="dateTime" data-options="{'type':'YYYY-MM-DD hh:mm','beginYear':2023,'endYear':2033}" readonly placeholder="请选择整改截至时间" th:value="${nickedTime}" /> <input type="text" id="dateTime" data-options="{'type':'YYYY-MM-DD hh:mm','beginYear':2023,'endYear':2033,'limitTime':'tomorrow'}" readonly placeholder="请选择整改截至时间" th:value="${nickedTime}" />
</div> </div>
</div> </div>
<div class="ssp-block"> <div class="ssp-block">

View File

@ -108,10 +108,16 @@
<div class="spp-block-title"> <div class="spp-block-title">
检查时间 检查时间
</div> </div>
<div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.createTime,'yyyy-MM-dd HH:mm:ss')}"> <div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.createTime,'yyyy-MM-dd HH:mm')}">
</div> </div>
</div> </div>
<div class="ssp-block">
<div class="spp-block-title">
整改截至时间
</div>
<div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.nickedTime,'yyyy-MM-dd HH:mm')}"></div>
</div>
<div class="ssp-block" th:if="${queryChangeNicked?.rejectState == 'OK'}"> <div class="ssp-block" th:if="${queryChangeNicked?.rejectState == 'OK'}">
<div class="spp-block-title"> <div class="spp-block-title">
驳回意见 驳回意见

View File

@ -98,10 +98,16 @@
<div class="spp-block-title"> <div class="spp-block-title">
检查时间 检查时间
</div> </div>
<div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.createTime,'yyyy-MM-dd HH:mm:ss')}"> <div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.createTime,'yyyy-MM-dd HH:mm')}">
</div> </div>
</div> </div>
<div class="ssp-block">
<div class="spp-block-title">
整改截至时间
</div>
<div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.nickedTime,'yyyy-MM-dd HH:mm')}"></div>
</div>
<div class="ssp-block" th:if="${queryChangeNicked.rejectState == 'OK'}"> <div class="ssp-block" th:if="${queryChangeNicked.rejectState == 'OK'}">
<div class="spp-block-title"> <div class="spp-block-title">
驳回意见 驳回意见

View File

@ -127,7 +127,7 @@
整改截至时间 整改截至时间
</div> </div>
<div class="ssp-block-input"> <div class="ssp-block-input">
<input type="text" id="dateTime" data-options="{'type':'YYYY-MM-DD hh:mm','beginYear':2023,'endYear':2033}" placeholder="请选择整改截至时间" th:value="${recheckSend}" readonly /> <input type="text" id="dateTime" data-options="{'type':'YYYY-MM-DD hh:mm','beginYear':2023,'endYear':2033,'limitTime':'tomorrow'}" placeholder="请选择整改截至时间" th:value="${nickedTime}" readonly />
</div> </div>
</div> </div>
<div class="ssp-block"> <div class="ssp-block">

View File

@ -106,10 +106,16 @@
<div class="spp-block-title"> <div class="spp-block-title">
检查时间 检查时间
</div> </div>
<div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.createTime,'yyyy-MM-dd HH:mm:ss')}"> <div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.createTime,'yyyy-MM-dd HH:mm')}">
</div> </div>
</div> </div>
<div class="ssp-block">
<div class="spp-block-title">
整改截至时间
</div>
<div class="ssp-block-word" th:text="${#temporals.format(queryChangeNicked.nickedTime,'yyyy-MM-dd HH:mm')}"></div>
</div>
<div class="ssp-block" th:if="${queryChangeNicked?.rejectState == 'OK'}"> <div class="ssp-block" th:if="${queryChangeNicked?.rejectState == 'OK'}">
<div class="spp-block-title"> <div class="spp-block-title">
驳回意见 驳回意见

View File

@ -27,11 +27,14 @@ public class BgWorkTrainController extends BaseController {
* @return * @return
*/ */
@GetMapping("/getWorkTrainList") @GetMapping("/getWorkTrainList")
public TableDataInfo getWorkTrainList(String trainType,String deptId){ public TableDataInfo getWorkTrainList(String trainType,String deptId,String projectId){
WorkTrain workTrain = new WorkTrain(); WorkTrain workTrain = new WorkTrain();
workTrain.setTrainType(trainType); workTrain.setTrainType(trainType);
if(StringUtils.isNotBlank(deptId) && !"0".equals(deptId)){ if(StringUtils.isNotBlank(deptId) && !"0".equals(deptId)){
workTrain.setDeptId(Convert.toLong(deptId)); workTrain.setNowDept(deptId);
}
if(StringUtils.isNotBlank(projectId) && !"0".equals(projectId)){
workTrain.setProjectId(Convert.toLong(projectId));
} }
return getDataTable(workTrainService.selectBgscreenWorkTrainListv2(workTrain)); return getDataTable(workTrainService.selectBgscreenWorkTrainListv2(workTrain));
} }

View File

@ -0,0 +1,57 @@
package com.yanzhu.jh.bigscreen.web.controller;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.PublicStateEnum;
import com.ruoyi.common.utils.StringUtils;
import com.yanzhu.jh.project.domain.SurProjectWorkSpecial;
import com.yanzhu.jh.project.service.ISurProjectWorkSpecialService;
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/projectspecial")
public class ProjectSpecialController extends BaseController {
@Autowired
ISurProjectWorkSpecialService surProjectWorkSpecialService;
/**
*
* @param deptId
* @param projectId
* @return
*/
@GetMapping("/getProjectSpecialView")
public TableDataInfo getProjectSpecialView(String deptId,String projectId){
SurProjectWorkSpecial surProjectWorkSpecial = new SurProjectWorkSpecial();
if(StringUtils.isNotBlank(deptId) && !"0".equals(deptId)){
surProjectWorkSpecial.setNowDept(deptId);
}
if(StringUtils.isNotBlank(projectId) && !"0".equals(projectId)){
surProjectWorkSpecial.setProjectId(Convert.toLong(projectId));
}
return getDataTable(surProjectWorkSpecialService.selectBgscreenWorkSpecialList(surProjectWorkSpecial));
}
/**
*
* @param projectId
* @return
*/
@GetMapping("/getProjectSpecialList")
public TableDataInfo getProjectSpecialList(String projectId){
SurProjectWorkSpecial surProjectWorkSpecial = new SurProjectWorkSpecial();
surProjectWorkSpecial.setIsDel(Convert.toInt(PublicStateEnum.OK.getCode()));
if(StringUtils.isNotBlank(projectId) && !"0".equals(projectId)){
surProjectWorkSpecial.setProjectId(Convert.toLong(projectId));
}
return getDataTable(surProjectWorkSpecialService.selectSurProjectWorkSpecialList(surProjectWorkSpecial));
}
}

View File

@ -65,9 +65,13 @@ public class SurProjectWorkSpecial extends BaseEntity
@Excel(name = "证书附件") @Excel(name = "证书附件")
private String credentialFile; private String credentialFile;
/** 证书类型 */
@Excel(name = "证书类型")
private String credentialType;
/** 删除标识 */ /** 删除标识 */
@Excel(name = "删除标识") @Excel(name = "删除标识")
private String isDel; private Integer isDel;
private String projectName; private String projectName;
private String deptName; private String deptName;
@ -162,12 +166,12 @@ public class SurProjectWorkSpecial extends BaseEntity
{ {
return credentialExpirationTime; return credentialExpirationTime;
} }
public void setIsDel(String isDel) public void setIsDel(Integer isDel)
{ {
this.isDel = isDel; this.isDel = isDel;
} }
public String getIsDel() public Integer getIsDel()
{ {
return isDel; return isDel;
} }
@ -204,6 +208,14 @@ public class SurProjectWorkSpecial extends BaseEntity
this.credentialFile = credentialFile; this.credentialFile = credentialFile;
} }
public String getCredentialType() {
return credentialType;
}
public void setCredentialType(String credentialType) {
this.credentialType = credentialType;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -219,6 +231,7 @@ public class SurProjectWorkSpecial extends BaseEntity
.append("credentialNumber", getCredentialNumber()) .append("credentialNumber", getCredentialNumber())
.append("credentialExpirationTime", getCredentialExpirationTime()) .append("credentialExpirationTime", getCredentialExpirationTime())
.append("credentialFile", getCredentialFile()) .append("credentialFile", getCredentialFile())
.append("credentialType", getCredentialType())
.append("isDel", getIsDel()) .append("isDel", getIsDel())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())

View File

@ -1,6 +1,8 @@
package com.yanzhu.jh.project.mapper; package com.yanzhu.jh.project.mapper;
import java.util.List; import java.util.List;
import java.util.Map;
import com.yanzhu.jh.project.domain.SurProjectWorkSpecial; import com.yanzhu.jh.project.domain.SurProjectWorkSpecial;
/** /**
@ -27,6 +29,14 @@ public interface SurProjectWorkSpecialMapper
*/ */
public List<SurProjectWorkSpecial> selectSurProjectWorkSpecialList(SurProjectWorkSpecial surProjectWorkSpecial); public List<SurProjectWorkSpecial> selectSurProjectWorkSpecialList(SurProjectWorkSpecial surProjectWorkSpecial);
/**
*
*
* @param surProjectWorkSpecial
* @return
*/
public List<Map<String,Object>> selectBgscreenWorkSpecialList(SurProjectWorkSpecial surProjectWorkSpecial);
/** /**
* *
* *

View File

@ -1,6 +1,8 @@
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.yanzhu.jh.project.domain.SurProjectWorkSpecial; import com.yanzhu.jh.project.domain.SurProjectWorkSpecial;
/** /**
@ -27,6 +29,14 @@ public interface ISurProjectWorkSpecialService
*/ */
public List<SurProjectWorkSpecial> selectSurProjectWorkSpecialList(SurProjectWorkSpecial surProjectWorkSpecial); public List<SurProjectWorkSpecial> selectSurProjectWorkSpecialList(SurProjectWorkSpecial surProjectWorkSpecial);
/**
*
*
* @param surProjectWorkSpecial
* @return
*/
public List<Map<String,Object>> selectBgscreenWorkSpecialList(SurProjectWorkSpecial surProjectWorkSpecial);
/** /**
* *
* *

View File

@ -1,7 +1,11 @@
package com.yanzhu.jh.project.service.impl; package com.yanzhu.jh.project.service.impl;
import java.util.List; import java.util.List;
import java.util.Map;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.file.FileUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.yanzhu.jh.project.mapper.SurProjectWorkSpecialMapper; import com.yanzhu.jh.project.mapper.SurProjectWorkSpecialMapper;
@ -44,6 +48,16 @@ public class SurProjectWorkSpecialServiceImpl implements ISurProjectWorkSpecialS
return surProjectWorkSpecialMapper.selectSurProjectWorkSpecialList(surProjectWorkSpecial); return surProjectWorkSpecialMapper.selectSurProjectWorkSpecialList(surProjectWorkSpecial);
} }
/**
*
*
* @param surProjectWorkSpecial
* @return
*/
@Override
public List<Map<String,Object>> selectBgscreenWorkSpecialList(SurProjectWorkSpecial surProjectWorkSpecial) {
return surProjectWorkSpecialMapper.selectBgscreenWorkSpecialList(surProjectWorkSpecial);
}
/** /**
* *
* *
@ -56,6 +70,7 @@ public class SurProjectWorkSpecialServiceImpl implements ISurProjectWorkSpecialS
surProjectWorkSpecial.setCreateBy(SecurityUtils.getUsername()); surProjectWorkSpecial.setCreateBy(SecurityUtils.getUsername());
surProjectWorkSpecial.setDeptId(SecurityUtils.getDeptId()); surProjectWorkSpecial.setDeptId(SecurityUtils.getDeptId());
surProjectWorkSpecial.setCreateTime(DateUtils.getNowDate()); surProjectWorkSpecial.setCreateTime(DateUtils.getNowDate());
surProjectWorkSpecial.setCredentialType(FileUtils.getFileLastNameUpCase(surProjectWorkSpecial.getCredentialFile()));
return surProjectWorkSpecialMapper.insertSurProjectWorkSpecial(surProjectWorkSpecial); return surProjectWorkSpecialMapper.insertSurProjectWorkSpecial(surProjectWorkSpecial);
} }
@ -70,6 +85,7 @@ public class SurProjectWorkSpecialServiceImpl implements ISurProjectWorkSpecialS
{ {
surProjectWorkSpecial.setUpdateBy(SecurityUtils.getUsername()); surProjectWorkSpecial.setUpdateBy(SecurityUtils.getUsername());
surProjectWorkSpecial.setUpdateTime(DateUtils.getNowDate()); surProjectWorkSpecial.setUpdateTime(DateUtils.getNowDate());
surProjectWorkSpecial.setCredentialType(FileUtils.getFileLastNameUpCase(surProjectWorkSpecial.getCredentialFile()));
return surProjectWorkSpecialMapper.updateSurProjectWorkSpecial(surProjectWorkSpecial); return surProjectWorkSpecialMapper.updateSurProjectWorkSpecial(surProjectWorkSpecial);
} }

View File

@ -3,13 +3,17 @@ package com.yanzhu.jh.work.controller;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
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.core.text.Convert;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.DeptTypeEnum;
import com.ruoyi.common.enums.SysRoleEnum; import com.ruoyi.common.enums.SysRoleEnum;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysDeptService;
import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.domain.SurProjectUnitInfo; import com.yanzhu.jh.project.domain.SurProjectUnitInfo;
import com.yanzhu.jh.project.service.ISurProjectService;
import com.yanzhu.jh.project.service.ISurProjectUnitInfoService; import com.yanzhu.jh.project.service.ISurProjectUnitInfoService;
import com.yanzhu.jh.work.domain.WorkTrain; import com.yanzhu.jh.work.domain.WorkTrain;
import com.yanzhu.jh.work.service.IWorkTrainService; import com.yanzhu.jh.work.service.IWorkTrainService;
@ -36,6 +40,9 @@ public class EmergencyDrillController extends BaseController
@Autowired @Autowired
private ISysDeptService sysDeptService; private ISysDeptService sysDeptService;
@Autowired
private ISurProjectService surProjectService;
@Autowired @Autowired
private ISurProjectUnitInfoService surProjectUnitInfoService; private ISurProjectUnitInfoService surProjectUnitInfoService;
@ -130,6 +137,13 @@ public class EmergencyDrillController extends BaseController
@GetMapping("/projectUnitList") @GetMapping("/projectUnitList")
public AjaxResult projectUnitList(SurProjectUnitInfo surProjectUnitInfo) public AjaxResult projectUnitList(SurProjectUnitInfo surProjectUnitInfo)
{ {
SysDept sysDept = sysDeptService.selectDeptById(getDeptId());
if(DeptTypeEnum.JTGS.getCode().equals(sysDept.getTypeFlag()) || DeptTypeEnum.ZGS.getCode().equals(sysDept.getTypeFlag())){
SurProject surProject = surProjectService.selectSurProjectById(surProjectUnitInfo.getProjectId());
surProjectUnitInfo.setNowDept(Convert.toStr(surProject.getDeptId()));
}else{
surProjectUnitInfo.setNowDept(Convert.toStr(getDeptId()));
}
return success(surProjectUnitInfoService.selectSurProjectUnitInfoList(surProjectUnitInfo)); return success(surProjectUnitInfoService.selectSurProjectUnitInfoList(surProjectUnitInfo));
} }

View File

@ -3,10 +3,14 @@ package com.yanzhu.jh.work.controller;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.core.domain.entity.SysDept;
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.SysRoleEnum; import com.ruoyi.common.enums.SysRoleEnum;
import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysDeptService;
import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.domain.SurProjectUnitInfo; import com.yanzhu.jh.project.domain.SurProjectUnitInfo;
import com.yanzhu.jh.project.service.ISurProjectService;
import com.yanzhu.jh.project.service.ISurProjectUnitInfoService; import com.yanzhu.jh.project.service.ISurProjectUnitInfoService;
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;
@ -43,6 +47,9 @@ public class WorkTrainController extends BaseController
@Autowired @Autowired
private ISysDeptService sysDeptService; private ISysDeptService sysDeptService;
@Autowired
private ISurProjectService surProjectService;
@Autowired @Autowired
private ISurProjectUnitInfoService surProjectUnitInfoService; private ISurProjectUnitInfoService surProjectUnitInfoService;
@ -137,6 +144,13 @@ public class WorkTrainController extends BaseController
@GetMapping("/projectUnitList") @GetMapping("/projectUnitList")
public AjaxResult projectUnitList(SurProjectUnitInfo surProjectUnitInfo) public AjaxResult projectUnitList(SurProjectUnitInfo surProjectUnitInfo)
{ {
SysDept sysDept = sysDeptService.selectDeptById(getDeptId());
if(DeptTypeEnum.JTGS.getCode().equals(sysDept.getTypeFlag()) || DeptTypeEnum.ZGS.getCode().equals(sysDept.getTypeFlag())){
SurProject surProject = surProjectService.selectSurProjectById(surProjectUnitInfo.getProjectId());
surProjectUnitInfo.setNowDept(Convert.toStr(surProject.getDeptId()));
}else{
surProjectUnitInfo.setNowDept(Convert.toStr(getDeptId()));
}
return success(surProjectUnitInfoService.selectSurProjectUnitInfoList(surProjectUnitInfo)); return success(surProjectUnitInfoService.selectSurProjectUnitInfoList(surProjectUnitInfo));
} }

View File

@ -23,13 +23,9 @@ public class WorkTrainDept extends BaseEntity
@Excel(name = "协同部门主键") @Excel(name = "协同部门主键")
private Long deptId; private Long deptId;
/** 协同部门名称 */
@Excel(name = "协同部门名称")
private String deptName;
/** 是否组织部门 */ /** 是否组织部门 */
@Excel(name = "是否组织部门") @Excel(name = "是否组织部门")
private Long isMain; private String isMain;
public void setTrainId(Long trainId) public void setTrainId(Long trainId)
{ {
@ -50,20 +46,12 @@ public class WorkTrainDept extends BaseEntity
return deptId; return deptId;
} }
public String getDeptName() { public void setIsMain(String isMain)
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public void setIsMain(Long isMain)
{ {
this.isMain = isMain; this.isMain = isMain;
} }
public Long getIsMain() public String getIsMain()
{ {
return isMain; return isMain;
} }

View File

@ -2,9 +2,14 @@ package com.yanzhu.jh.work.service.impl;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.domain.entity.SysDept;
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.PublicStateEnum; import com.ruoyi.common.enums.PublicStateEnum;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.yanzhu.jh.project.domain.SurProject;
import com.yanzhu.jh.project.mapper.SurProjectMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
@ -27,6 +32,12 @@ public class WorkTrainServiceImpl implements IWorkTrainService
@Autowired @Autowired
private WorkTrainMapper workTrainMapper; private WorkTrainMapper workTrainMapper;
@Autowired
private SysDeptMapper sysDeptMapper;
@Autowired
private SurProjectMapper surProjectMapper;
/** /**
* *
* *
@ -144,13 +155,28 @@ public class WorkTrainServiceImpl implements IWorkTrainService
{ {
List<WorkTrainDept> workTrainDeptList = workTrain.getWorkTrainDeptList(); List<WorkTrainDept> workTrainDeptList = workTrain.getWorkTrainDeptList();
Long id = workTrain.getId(); Long id = workTrain.getId();
//添加当前部门为默认为组织部门
if (StringUtils.isNull(workTrainDeptList)){
workTrainDeptList = new ArrayList<>();
}
WorkTrainDept dept = new WorkTrainDept();
SysDept sysDept = sysDeptMapper.selectDeptById(SecurityUtils.getDeptId());
if(DeptTypeEnum.JTGS.getCode().equals(sysDept.getTypeFlag()) || DeptTypeEnum.ZGS.getCode().equals(sysDept.getTypeFlag())){
SurProject surProject = surProjectMapper.selectSurProjectById(workTrain.getProjectId());
dept.setDeptId(surProject.getDeptId());
}else{
dept.setDeptId(SecurityUtils.getDeptId());
}
dept.setIsMain(PublicStateEnum.YES.getCode());
workTrainDeptList.add(dept);
if (StringUtils.isNotNull(workTrainDeptList)) if (StringUtils.isNotNull(workTrainDeptList))
{ {
List<WorkTrainDept> list = new ArrayList<WorkTrainDept>(); List<WorkTrainDept> list = new ArrayList<WorkTrainDept>();
for (WorkTrainDept workTrainDept : workTrainDeptList) for (WorkTrainDept workTrainDept : workTrainDeptList)
{ {
workTrainDept.setTrainId(id); workTrainDept.setTrainId(id);
workTrainDept.setIsMain(Convert.toLong(PublicStateEnum.OK.getCode())); workTrainDept.setIsMain(PublicStateEnum.NO.getCode());
list.add(workTrainDept); list.add(workTrainDept);
} }
if (list.size() > 0) if (list.size() > 0)

View File

@ -34,6 +34,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="unitPersonPhone != null and unitPersonPhone != ''"> and unitPersonPhone = #{unitPersonPhone}</if> <if test="unitPersonPhone != null and unitPersonPhone != ''"> and unitPersonPhone = #{unitPersonPhone}</if>
<if test="createUser != null and createUser != ''"> and createUser = #{createUser}</if> <if test="createUser != null and createUser != ''"> and createUser = #{createUser}</if>
<if test="createTime != null "> and createTime = #{createTime}</if> <if test="createTime != null "> and createTime = #{createTime}</if>
<if test="nowDept != null and nowDept != ''"> and unitId != #{nowDept}</if>
</where> </where>
</select> </select>

View File

@ -17,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="credentialNumber" column="credential_number" /> <result property="credentialNumber" column="credential_number" />
<result property="credentialExpirationTime" column="credential_expiration_time" /> <result property="credentialExpirationTime" column="credential_expiration_time" />
<result property="credentialFile" column="credential_file" /> <result property="credentialFile" column="credential_file" />
<result property="credentialType" column="credential_type" />
<result property="isDel" column="is_del" /> <result property="isDel" column="is_del" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
@ -28,11 +29,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectSurProjectWorkSpecialVo"> <sql id="selectSurProjectWorkSpecialVo">
select id, project_id, dept_id, name, sex, age, phone_number, id_number, is_credential, credential_number, credential_expiration_time, credential_file, is_del, create_by, create_time, update_by, update_time, remark from sur_project_work_special select id, project_id, dept_id, name, sex, age, phone_number, id_number, is_credential, credential_number, credential_expiration_time, credential_file, credential_type, is_del, create_by, create_time, update_by, update_time, remark from sur_project_work_special
</sql> </sql>
<select id="selectSurProjectWorkSpecialList" parameterType="SurProjectWorkSpecial" resultMap="SurProjectWorkSpecialResult"> <select id="selectSurProjectWorkSpecialList" parameterType="SurProjectWorkSpecial" resultMap="SurProjectWorkSpecialResult">
select spwp.id, spwp.project_id, spwp.dept_id, spwp.name, spwp.sex, spwp.age, spwp.phone_number, spwp.id_number, spwp.is_credential, spwp.credential_number, spwp.credential_expiration_time, spwp.credential_file, spwp.is_del, spwp.create_by, spwp.create_time, spwp.update_by, spwp.update_time, spwp.remark, sp.projectName, sd.dept_name from sur_project_work_special spwp select spwp.id, spwp.project_id, spwp.dept_id, spwp.name, spwp.sex, spwp.age, spwp.phone_number, spwp.id_number, spwp.is_credential, spwp.credential_number, spwp.credential_expiration_time, spwp.credential_file, spwp.credential_type, spwp.is_del, spwp.create_by, spwp.create_time, spwp.update_by, spwp.update_time, spwp.remark, sp.projectName, sd.dept_name from sur_project_work_special spwp
left join sur_project sp on sp.id = spwp.project_id left join sur_project sp on sp.id = spwp.project_id
left join sys_dept sd on sd.dept_id = spwp.dept_id left join sys_dept sd on sd.dept_id = spwp.dept_id
<where> <where>
@ -41,19 +42,76 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="name != null and name != ''"> and spwp.name like concat('%', #{name}, '%')</if> <if test="name != null and name != ''"> and spwp.name like concat('%', #{name}, '%')</if>
<if test="projectName != null and projectName != ''"> and sp.projectName like concat('%', #{projectName}, '%')</if> <if test="projectName != null and projectName != ''"> and sp.projectName like concat('%', #{projectName}, '%')</if>
<if test="isCredential != null and isCredential != ''"> and spwp.is_credential = #{isCredential}</if> <if test="isCredential != null and isCredential != ''"> and spwp.is_credential = #{isCredential}</if>
<if test="phoneNumber != null and phoneNumber != ''"> and spwp.phone_number = #{phoneNumber}</if> <if test="phoneNumber != null and phoneNumber != ''"> and spwp.phone_number like concat('%', #{phoneNumber}, '%')</if>
<if test="credentialNumber != null and credentialNumber != ''"> and spwp.credential_number like concat('%', #{credentialNumber}, '%')</if>
<if test="params.beginCredentialExpirationTime != null and params.beginCredentialExpirationTime != '' and params.endCredentialExpirationTime != null and params.endCredentialExpirationTime != ''"> and spwp.credential_expiration_time between #{params.beginCredentialExpirationTime} and #{params.endCredentialExpirationTime}</if> <if test="params.beginCredentialExpirationTime != null and params.beginCredentialExpirationTime != '' and params.endCredentialExpirationTime != null and params.endCredentialExpirationTime != ''"> and spwp.credential_expiration_time between #{params.beginCredentialExpirationTime} and #{params.endCredentialExpirationTime}</if>
<if test="isDel != null and isDel != ''"> and spwp.is_del = #{isDel}</if> <if test="isDel != null and isDel != ''"> and spwp.is_del = #{isDel}</if>
<if test="credentialType != null and credentialType != ''"> and spwp.credential_type = #{credentialType}</if>
<!-- 查询条件-项目部门 --> <!-- 查询条件-项目部门 -->
<if test="projectDeptId != null "> and sp.deptId = #{projectDeptId}</if> <if test="projectDeptId != null "> and sp.deptId = #{projectDeptId}</if>
<!--子部门数据--> <!--子部门数据-->
<if test='nowRole == "4"'> and sp.deptId = #{nowDept}</if> <if test='nowRole == "4"'> and sp.deptId = #{nowDept}</if>
<!--监理单位/总包公司/分包单位查询当前关联数据--> <!--监理单位/总包公司/分包单位查询当前关联数据-->
<if test='nowRole == "5" or nowRole == "6" or nowRole == "7"'> and sp.id in (select spui.projectId from sur_project_unit_info spui where spui.unitId = #{nowDept})</if> <if test='nowRole == "5" or nowRole == "6" or nowRole == "7"'> and sp.id in (select DISTINCT spui.projectId from sur_project_unit_info spui where spui.unitId = #{nowDept})</if>
<if test='nowRole == "99"'> and sp.id in (select spu.project_id from sur_project_userinfo spu where spu.user_id = #{nowUser} and spu.is_del=0)</if> <if test='nowRole == "99"'> and sp.id in (select DISTINCT spu.project_id from sur_project_userinfo spu where spu.user_id = #{nowUser} and spu.is_del=0)</if>
</where> </where>
</select> </select>
<!--查询项目特种人员统计列表-->
<select id="selectBgscreenWorkSpecialList" parameterType="SurProjectWorkSpecial" resultType="map">
SELECT
spws.project_id as projectId,
sp.projectName,
count(1) AS total,
IFNULL(expired.expired, 0) AS expired,
IFNULL(void.void, 0) AS void
FROM
sur_project_work_special spws
LEFT JOIN sur_project sp ON sp.id = spws.project_id
LEFT JOIN (
SELECT
s1.project_id AS pid,
count(1) AS expired
FROM
sur_project_work_special s1
left join sur_project sp1 on sp1.id = s1.project_id
WHERE
s1.is_del = 0
<if test="nowDept != null and nowDept != ''"> and sp1.deptId = #{nowDept}</if>
<if test="projectId != null "> and s1.project_id = #{projectId}</if>
AND s1.credential_expiration_time > NOW()
AND DATE_SUB(
s1.credential_expiration_time,
INTERVAL 1 MONTH
) <![CDATA[ <= ]]> NOW()
GROUP BY
s1.project_id
) expired ON expired.pid = spws.project_id
LEFT JOIN (
SELECT
s2.project_id AS pid,
count(1) AS void
FROM
sur_project_work_special s2
left join sur_project sp2 on sp2.id = s2.project_id
WHERE
s2.is_del = 0
<if test="nowDept != null and nowDept != ''"> and sp2.deptId = #{nowDept}</if>
<if test="projectId != null "> and s2.project_id = #{projectId}</if>
AND s2.credential_expiration_time <![CDATA[ < ]]> NOW()
GROUP BY
s2.project_id
) void ON void.pid = spws.project_id
WHERE
spws.is_del = 0
<if test="nowDept != null and nowDept != ''"> and sp.deptId = #{nowDept}</if>
<if test="projectId != null "> and spws.project_id = #{projectId}</if>
GROUP BY
spws.project_id
ORDER BY
sp.projectSort ASC
</select>
<select id="selectSurProjectWorkSpecialById" parameterType="Long" resultMap="SurProjectWorkSpecialResult"> <select id="selectSurProjectWorkSpecialById" parameterType="Long" resultMap="SurProjectWorkSpecialResult">
<include refid="selectSurProjectWorkSpecialVo"/> <include refid="selectSurProjectWorkSpecialVo"/>
where id = #{id} where id = #{id}
@ -73,6 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="credentialNumber != null">credential_number,</if> <if test="credentialNumber != null">credential_number,</if>
<if test="credentialExpirationTime != null">credential_expiration_time,</if> <if test="credentialExpirationTime != null">credential_expiration_time,</if>
<if test="credentialFile != null">credential_file,</if> <if test="credentialFile != null">credential_file,</if>
<if test="credentialType != null">credential_type,</if>
<if test="isDel != null">is_del,</if> <if test="isDel != null">is_del,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
@ -92,6 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="credentialNumber != null">#{credentialNumber},</if> <if test="credentialNumber != null">#{credentialNumber},</if>
<if test="credentialExpirationTime != null">#{credentialExpirationTime},</if> <if test="credentialExpirationTime != null">#{credentialExpirationTime},</if>
<if test="credentialFile != null">#{credentialFile},</if> <if test="credentialFile != null">#{credentialFile},</if>
<if test="credentialType != null">#{credentialType},</if>
<if test="isDel != null">#{isDel},</if> <if test="isDel != null">#{isDel},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
@ -115,6 +175,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="credentialNumber != null">credential_number = #{credentialNumber},</if> <if test="credentialNumber != null">credential_number = #{credentialNumber},</if>
<if test="credentialExpirationTime != null">credential_expiration_time = #{credentialExpirationTime},</if> <if test="credentialExpirationTime != null">credential_expiration_time = #{credentialExpirationTime},</if>
<if test="credentialFile != null">credential_file = #{credentialFile},</if> <if test="credentialFile != null">credential_file = #{credentialFile},</if>
<if test="credentialType != null">credential_type = #{credentialType},</if>
<if test="isDel != null">is_del = #{isDel},</if> <if test="isDel != null">is_del = #{isDel},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>

View File

@ -51,8 +51,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
END AS v_del END AS v_del
from smz_ssp_problemmodify ssp from smz_ssp_problemmodify ssp
left join sur_project sp on ssp.projectId = sp.id left join sur_project sp on ssp.projectId = sp.id
<!--监理单位/总包公司/分包单位-->
<if test='nowRole == "5" or nowRole == "6" or nowRole == "7"'> left join sur_project_unit_info spui on spui.projectId = sp.id</if>
<where> <where>
and ssp.isDel=0 and ssp.isDel=0
<if test="projectId != null "> and ssp.projectId = #{projectId}</if> <if test="projectId != null "> and ssp.projectId = #{projectId}</if>
@ -86,11 +84,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test='nowRole == "4"'> and sp.deptId = #{nowDept}</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 == "5" or nowRole == "6" or nowRole == "7"'> and spui.unitId = #{nowDept}</if>
<!--普通整改人是我,复检人是我,抄送人是我的数据--> <!--普通整改人是我,复检人是我,抄送人是我,提交人是我的数据-->
<if test='nowRole == "99"'> and (ssp.lordSentUser = #{nowUser} or ssp.copySendUser = #{nowUser} or ssp.recheckSendUser = #{nowUser} or ssp.createUser = #{nowUser} )</if> <if test='nowRole == "99"'> and (ssp.lordSentUser = #{nowUser} or ssp.copySendUser = #{nowUser} or ssp.recheckSendUser = #{nowUser} or ssp.createUser = #{nowUser} )</if>
<if test='activeName == "dzg"'> and ssp.checkState in (0,3)</if> <if test='activeName == "dzg"'> and ssp.checkState in (0,3)</if>
<if test='activeName == "dqr"'> and ssp.checkState in (1)</if> <if test='activeName == "dqr"'> and ssp.checkState in (1)</if>
<if test='activeName == "ycl"'> and ssp.checkState = 4 </if> <if test='activeName == "ycl"'> and ssp.checkState = 4 </if>
<if test='activeName == "zgcs"'> and (ssp.updateTime is null or ssp.updateTime <![CDATA[ > ]]> ssp.nickedTime) </if>
</where> </where>
order by createTime desc order by createTime desc
</select> </select>

View File

@ -115,7 +115,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test='trainType != null and trainType == "1"'> left join sys_dict_data sdd on sdd.dict_type = 'train_nature_yjyl' and wt.train_nature = sdd.dict_value</if> <if test='trainType != null and trainType == "1"'> left join sys_dict_data sdd on sdd.dict_type = 'train_nature_yjyl' and wt.train_nature = sdd.dict_value</if>
<where> <where>
and wt.is_del=0 and wt.is_del=0
<if test="deptId != null"> and sp.deptId = #{deptId}</if> <if test="nowDept != null and nowDept != ''"> and sp.deptId = #{nowDept}</if>
<if test="trainType != null and trainType != ''"> and wt.train_type = #{trainType}</if> <if test="trainType != null and trainType != ''"> and wt.train_type = #{trainType}</if>
<if test="projectId != null"> and wt.project_id = #{projectId}</if> <if test="projectId != null"> and wt.project_id = #{projectId}</if>
</where> </where>
@ -128,7 +128,7 @@ 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_nature, a.train_participants, a.begin_date, a.end_date, a.train_content, 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_nature, a.train_participants, a.begin_date, a.end_date, a.train_content, 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}
</select> </select>