Commit 20018a6f169c83e376c09be0b34a7ed2cccfc232

Authored by youxiw2000
2 parents 7199c582 3788faa9

m

Showing 46 changed files with 2884 additions and 646 deletions

Too many changes to show.

To preserve performance only 46 of 54 files are displayed.

trash-activiti/src/main/java/com/trash/activiti/service/impl/ActTaskServiceImpl.java
... ... @@ -297,7 +297,7 @@ public class ActTaskServiceImpl implements IActTaskService {
297 297  
298 298 task.setDescription(placeCode);
299 299 }
300   - }else if(processInstance.getProcessDefinitionKey().equals("workflow_leave") ){
  300 + }else if(processInstance.getProcessDefinitionKey().equals("workflow_leave") || processInstance.getProcessDefinitionKey().equals("logistics") || processInstance.getProcessDefinitionKey().equals("conference")){
301 301 List<IdentityLink> list = taskService.getIdentityLinksForTask(task.getId());
302 302  
303 303 if(list.size() == 1){
... ...
trash-ui/src/api/casefile/replyApprovalProcess.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +// 查询回复审批流程列表
  4 +export function listReplyApprovalProcess(query) {
  5 + return request({
  6 + url: '/replyApprovalProcess/replyApprovalProcess/list',
  7 + method: 'get',
  8 + params: query
  9 + })
  10 +}
  11 +
  12 +// 查询回复审批流程详细
  13 +export function getReplyApprovalProcess(id) {
  14 + return request({
  15 + url: '/replyApprovalProcess/replyApprovalProcess/' + id,
  16 + method: 'get'
  17 + })
  18 +}
  19 +
  20 +// 新增回复审批流程
  21 +export function addReplyApprovalProcess(data) {
  22 + return request({
  23 + url: '/replyApprovalProcess/replyApprovalProcess',
  24 + method: 'post',
  25 + data: data
  26 + })
  27 +}
  28 +
  29 +// 修改回复审批流程
  30 +export function updateReplyApprovalProcess(data) {
  31 + return request({
  32 + url: '/replyApprovalProcess/replyApprovalProcess',
  33 + method: 'put',
  34 + data: data
  35 + })
  36 +}
  37 +
  38 +// 删除回复审批流程
  39 +export function delReplyApprovalProcess(id) {
  40 + return request({
  41 + url: '/replyApprovalProcess/replyApprovalProcess/' + id,
  42 + method: 'delete'
  43 + })
  44 +}
  45 +
  46 +// 导出回复审批流程
  47 +export function exportReplyApprovalProcess(query) {
  48 + return request({
  49 + url: '/replyApprovalProcess/replyApprovalProcess/export',
  50 + method: 'get',
  51 + params: query
  52 + })
  53 +}
... ...
trash-ui/src/api/casefile/violationCaseFile.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +// 查询平台违规案卷列表
  4 +export function listViolationCaseFile(query) {
  5 + return request({
  6 + url: '/casefile/violationCaseFile/list',
  7 + method: 'get',
  8 + params: query
  9 + })
  10 +}
  11 +
  12 +// 查询平台违规案卷详细
  13 +export function getViolationCaseFile(id) {
  14 + return request({
  15 + url: '/casefile/violationCaseFile/' + id,
  16 + method: 'get'
  17 + })
  18 +}
  19 +
  20 +// 新增平台违规案卷
  21 +export function addViolationCaseFile(data) {
  22 + return request({
  23 + url: '/casefile/violationCaseFile',
  24 + method: 'post',
  25 + data: data
  26 + })
  27 +}
  28 +
  29 +// 修改平台违规案卷
  30 +export function updateViolationCaseFile(data) {
  31 + return request({
  32 + url: '/casefile/violationCaseFile',
  33 + method: 'put',
  34 + data: data
  35 + })
  36 +}
  37 +
  38 +// 删除平台违规案卷
  39 +export function delViolationCaseFile(id) {
  40 + return request({
  41 + url: '/casefile/violationCaseFile/' + id,
  42 + method: 'delete'
  43 + })
  44 +}
  45 +
  46 +// 导出平台违规案卷
  47 +export function exportViolationCaseFile(query) {
  48 + return request({
  49 + url: '/casefile/violationCaseFile/export',
  50 + method: 'get',
  51 + params: query
  52 + })
  53 +}
... ...
trash-ui/src/router/index.js
... ... @@ -183,6 +183,12 @@ export const constantRoutes = [
183 183 component: (resolve) => require(['@/views/casefile/violationWarningInformation'], resolve),
184 184 name: '违规预警信息',
185 185 meta: { title: '违规预警信息' }
  186 + },
  187 + {
  188 + path: 'casefile/violationCaseFile',
  189 + component: (resolve) => require(['@/views/casefile/violationCaseFile'], resolve),
  190 + name: '平台违规案卷',
  191 + meta: { title: '平台违规案卷' }
186 192 }
187 193 ]
188 194 }, {
... ...
trash-ui/src/utils/trash.js
... ... @@ -154,11 +154,11 @@ export function handleTree(data, id, parentId, children, rootId) {
154 154 */
155 155 export function parseStatus(status) {
156 156 if(status==1){
157   - return "审通过";
  157 + return "审通过";
158 158 }else if(status==2){
159   - return "驳回";
  159 + return "审批驳回";
160 160 }else{
161   - return "审中";
  161 + return "审中";
162 162 }
163 163 }
164 164  
... ...
trash-ui/src/views/activiti/task/index.vue
... ... @@ -165,8 +165,9 @@
165 165 <el-dialog title="示意图" :visible.sync="picSample" append-to-body>
166 166 <img src="../../../assets/logo/logo.jpg" width="100%" height="800px" />
167 167 </el-dialog>
  168 +
168 169 <!-- 会议管理 -->
169   - <el-dialog :title="title" :visible.sync="conferenceOpen" width="850px" append-to-body>
  170 + <el-dialog :title="title" :visible.sync="conferenceOpen" width="850px" append-to-body :close-on-click-modal="false">
170 171 <conferenceInfo :idInfo="idInfo" v-if="conferenceOpen"/>
171 172 <div slot="footer" class="dialog-footer">
172 173 <div slot="footer" class="dialog-footer">
... ... @@ -177,7 +178,7 @@
177 178 </el-dialog>
178 179  
179 180 <!-- 请假申请 -->
180   - <el-dialog :title="title" :visible.sync="leaveApplicationOpen" width="500px" append-to-body>
  181 + <el-dialog :title="title" :visible.sync="leaveApplicationOpen" width="500px" append-to-body :close-on-click-modal="false">
181 182 <leaveApplicationInfo :idInfo="idInfo" v-if="leaveApplicationOpen"/>
182 183 <div slot="footer" class="dialog-footer">
183 184 <div slot="footer" class="dialog-footer">
... ... @@ -200,7 +201,6 @@
200 201 </div>
201 202 </el-dialog>
202 203  
203   -
204 204 <el-dialog :title="title" :visible.sync="earthsites" width="800px" append-to-body>
205 205 <earthsitesInfo :businessKey="businessKey" v-if="earthsites" />
206 206 <div slot="footer" class="dialog-footer">
... ... @@ -217,6 +217,27 @@
217 217 </div>
218 218 </el-dialog>
219 219  
  220 + <!-- 后勤管理 -->
  221 + <el-dialog :title="title" :visible.sync="logisticsInfoOpen" width="500px" append-to-body :close-on-click-modal="false">
  222 + <logisticsInfo :idInfo="idInfo" v-if="logisticsInfoOpen"/>
  223 + <div slot="footer" class="dialog-footer">
  224 + <div slot="footer" class="dialog-footer">
  225 + <el-button type="danger" @click="logisticsInfoSubmitForm(1)">驳回</el-button>
  226 + <el-button type="primary" @click="logisticsInfoSubmitForm(0)">通过</el-button>
  227 + </div>
  228 + </div>
  229 + </el-dialog>
  230 +
  231 + <!-- 办文办事 -->
  232 + <el-dialog :title="title" :visible.sync="handleAffairsInfoOpen" width="600px" append-to-body :close-on-click-modal="false">
  233 + <handleInfo :idInfo="idInfo" v-if="handleAffairsInfoOpen"/>
  234 + <div slot="footer" class="dialog-footer">
  235 + <div slot="footer" class="dialog-footer">
  236 + <el-button type="danger" @click="handleAffairsSubmitForm(1)">驳回</el-button>
  237 + <el-button type="primary" @click="handleAffairsSubmitForm(0)">通过</el-button>
  238 + </div>
  239 + </div>
  240 + </el-dialog>
220 241 </div>
221 242 </template>
222 243  
... ... @@ -255,6 +276,8 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
255 276 import constructsiteInfo from "@/views/activiti/task/constructsiteInfo";
256 277 import earthsitesInfo from "@/views/activiti/task/earthsitesInfo";
257 278 import contractInfo from "@/views/activiti/task/contractInfo";
  279 + import logisticsInfo from "@/views/office/logistics/logisticsInfo";
  280 + import handleInfo from "@/views/office/handle/handleInfo";
258 281  
259 282 export default {
260 283 name: "task",
... ... @@ -264,6 +287,9 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
264 287 threestepInfo,
265 288 conferenceInfo,
266 289 leaveApplicationInfo,
  290 + logisticsInfo,
  291 + handleInfo,
  292 + leaveApplicationInfo,
267 293 constructsiteInfo,
268 294 earthsitesInfo,
269 295 contractInfo,
... ... @@ -343,6 +369,8 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
343 369 signDataInfo:null,
344 370 earthsites:false,
345 371 contract:false,
  372 + logisticsInfoOpen:false,
  373 + handleAffairsInfoOpen:false,
346 374 };
347 375 },
348 376 created() {
... ... @@ -413,6 +441,8 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
413 441 this.leaveApplicationOpen= false;
414 442 this.conferenceOpen = false;
415 443 this.construct = false;
  444 + this.logisticsInfoOpen = false;
  445 + this.handleAffairsInfoOpen = false;
416 446 this.reset();
417 447 },
418 448 // 表单重置
... ... @@ -490,6 +520,16 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
490 520 }
491 521  
492 522  
  523 + if(this.definitionKey == "logistics"){
  524 + this.idInfo = row.businessKey.substring(row.businessKey.lastIndexOf(":")+1);
  525 + this.logisticsInfoOpen = true;
  526 + return;
  527 + }
  528 + if(this.definitionKey == "handleAffairs"){
  529 + this.idInfo = row.businessKey.substring(row.businessKey.lastIndexOf(":")+1);
  530 + this.handleAffairsInfoOpen = true;
  531 + return;
  532 + }
493 533 this.open = true;
494 534 this.title = "审批";
495 535 });
... ... @@ -597,7 +637,6 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
597 637 }
598 638 },
599 639 conferenceSubmitForm(value){
600   - return;
601 640 this.form.formData[0].controlValue = value;
602 641 if(value==0){
603 642 this.form.status = 1;
... ... @@ -626,7 +665,39 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
626 665 this.taskList = [];
627 666 this.getList();
628 667 });
629   - }
630   - }
  668 + },
  669 + logisticsInfoSubmitForm(value){
  670 + if(value==0){
  671 + this.form.status = 1;
  672 + }else{
  673 + this.form.status = 2;
  674 + }
  675 + this.form.formData[0].controlValue = value;
  676 + //this.form.formData[0].route = value;
  677 + //审批or驳回
  678 + formDataSave(this.id, this.form.formData).then(response => {
  679 + this.msgSuccess("审批成功");
  680 + this.logisticsInfoOpen = false;
  681 + this.taskList = [];
  682 + this.getList();
  683 + });
  684 + },
  685 + handleAffairsSubmitForm(value){
  686 + if(value==0){
  687 + this.form.status = 1;
  688 + }else{
  689 + this.form.status = 2;
  690 + }
  691 + this.form.formData[0].controlValue = value;
  692 + //this.form.formData[0].route = value;
  693 + //审批or驳回
  694 + formDataSave(this.id, this.form.formData).then(response => {
  695 + this.msgSuccess("审批成功");
  696 + this.handleAffairsInfoOpen = false;
  697 + this.taskList = [];
  698 + this.getList();
  699 + });
  700 + },
  701 + },
631 702 };
632 703 </script>
... ...
trash-ui/src/views/casefile/violationCaseFile/index.vue 0 → 100644
  1 +<template>
  2 + <div class="app-container">
  3 + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
  4 + <el-form-item label="违规对象类型" prop="violationObjectType">
  5 + <el-select v-model="queryParams.violationObjectType" placeholder="请选择违规对象类型" clearable size="small">
  6 + <el-option label="请选择字典生成" value="" />
  7 + </el-select>
  8 + </el-form-item>
  9 + <el-form-item label="所属区域" prop="owningRegion">
  10 + <el-input
  11 + v-model="queryParams.owningRegion"
  12 + placeholder="请输入所属区域"
  13 + clearable
  14 + size="small"
  15 + @keyup.enter.native="handleQuery"
  16 + />
  17 + </el-form-item>
  18 + <el-form-item label="违规类型" prop="violationType">
  19 + <el-select v-model="queryParams.violationType" placeholder="请选择违规类型" clearable size="small">
  20 + <el-option label="请选择字典生成" value="" />
  21 + </el-select>
  22 + </el-form-item>
  23 + <el-form-item label="项目名称" prop="projectName">
  24 + <el-input
  25 + v-model="queryParams.projectName"
  26 + placeholder="请输入项目名称"
  27 + clearable
  28 + size="small"
  29 + @keyup.enter.native="handleQuery"
  30 + />
  31 + </el-form-item>
  32 + <el-form-item label="企业名称" prop="companyName">
  33 + <el-input
  34 + v-model="queryParams.companyName"
  35 + placeholder="请输入企业名称"
  36 + clearable
  37 + size="small"
  38 + @keyup.enter.native="handleQuery"
  39 + />
  40 + </el-form-item>
  41 + <el-form-item>
  42 + <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  43 + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  44 + </el-form-item>
  45 + </el-form>
  46 +
  47 + <el-row :gutter="10" class="mb8">
  48 + <el-col :span="1.5">
  49 + <el-button
  50 + type="primary"
  51 + icon="el-icon-plus"
  52 + size="mini"
  53 + @click="handleAdd"
  54 + v-hasPermi="['casefile:violationCaseFile:add']"
  55 + >新增</el-button>
  56 + </el-col>
  57 + <el-col :span="1.5">
  58 + <el-button
  59 + type="success"
  60 + icon="el-icon-edit"
  61 + size="mini"
  62 + :disabled="single"
  63 + @click="handleUpdate"
  64 + v-hasPermi="['casefile:violationCaseFile:edit']"
  65 + >修改</el-button>
  66 + </el-col>
  67 +<!-- <el-col :span="1.5">-->
  68 +<!-- <el-button-->
  69 +<!-- type="danger"-->
  70 +<!-- icon="el-icon-delete"-->
  71 +<!-- size="mini"-->
  72 +<!-- :disabled="multiple"-->
  73 +<!-- @click="handleDelete"-->
  74 +<!-- v-hasPermi="['casefile:violationCaseFile:remove']"-->
  75 +<!-- >删除</el-button>-->
  76 +<!-- </el-col>-->
  77 + <el-col :span="1.5">
  78 + <el-button
  79 + type="warning"
  80 + icon="el-icon-download"
  81 + size="mini"
  82 + @click="handleExport"
  83 + v-hasPermi="['casefile:violationCaseFile:export']"
  84 + >导出</el-button>
  85 + </el-col>
  86 + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  87 + </el-row>
  88 +
  89 + <el-table v-loading="loading" :data="violationCaseFileList" @selection-change="handleSelectionChange">
  90 + <el-table-column type="selection" width="55" align="center" />
  91 + <el-table-column label="所属区域" align="center" prop="owningRegion" />
  92 + <el-table-column label="违规对象类型" align="center" prop="violationObjectType" />
  93 + <el-table-column label="违规类型" align="center" prop="violationType" />
  94 + <el-table-column label="项目名称" align="center" prop="projectName" />
  95 + <el-table-column label="企业名称" align="center" prop="companyName" />
  96 + <el-table-column label="审批状态" align="center" prop="status">
  97 + <template slot-scope="scope">
  98 + <span>{{parseStatus(scope.row.status) }}</span>
  99 + </template>
  100 + </el-table-column>
  101 + <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  102 + <template slot-scope="scope">
  103 + <el-button
  104 + size="mini"
  105 + type="text"
  106 + icon="el-icon-edit"
  107 + @click="handleInfo(scope.row)"
  108 + v-hasPermi="['casefile:violationCaseFile:edit']"
  109 + >详情</el-button>
  110 +<!-- <el-button-->
  111 +<!-- size="mini"-->
  112 +<!-- type="text"-->
  113 +<!-- icon="el-icon-edit"-->
  114 +<!-- @click="handleUpdate(scope.row)"-->
  115 +<!-- v-hasPermi="['casefile:violationCaseFile:edit']"-->
  116 +<!-- >修改</el-button>-->
  117 +<!-- <el-button-->
  118 +<!-- size="mini"-->
  119 +<!-- type="text"-->
  120 +<!-- icon="el-icon-delete"-->
  121 +<!-- @click="handleDelete(scope.row)"-->
  122 +<!-- v-hasPermi="['casefile:violationCaseFile:remove']"-->
  123 +<!-- >删除</el-button>-->
  124 + </template>
  125 + </el-table-column>
  126 + </el-table>
  127 +
  128 + <pagination
  129 + v-show="total>0"
  130 + :total="total"
  131 + :page.sync="queryParams.pageNum"
  132 + :limit.sync="queryParams.pageSize"
  133 + @pagination="getList"
  134 + />
  135 +
  136 + <!-- 添加或修改平台违规案卷对话框 -->
  137 + <el-dialog :title="title" :visible.sync="open" width="850px" append-to-body :close-on-click-modal="false">
  138 + <el-form ref="form" :model="form" :rules="rules" label-width="115px">
  139 + <el-row :gutter="2">
  140 + <el-col :span="11">
  141 + <el-form-item label="案卷编号" prop="number">
  142 + <el-input v-model="form.number" placeholder="请输入案卷编号" :disabled="true"/>
  143 + </el-form-item>
  144 + </el-col>
  145 + <el-col :span="11">
  146 + <el-form-item label="违规对象类型" prop="violationObjectType">
  147 + <el-select v-model="form.violationObjectType" placeholder="请选择违规对象类型" style="width: 100%;">
  148 + <el-option label="对象1" value="对象1" />
  149 + <el-option label="对象2" value="对象2" />
  150 + </el-select>
  151 + </el-form-item>
  152 + </el-col>
  153 + </el-row>
  154 + <el-row :gutter="2">
  155 + <el-col :span="11">
  156 + <el-form-item label="所属区域" prop="owningRegion">
  157 + <el-select v-model="form.owningRegion" placeholder="请输入所属区域" style="width: 100%;">
  158 + <el-option label="区域1" value="区域1" />
  159 + <el-option label="区域2" value="区域2" />
  160 + </el-select>
  161 + </el-form-item>
  162 + </el-col>
  163 + <el-col :span="11">
  164 + <el-form-item label="违规类型" prop="violationType">
  165 + <el-select v-model="form.violationType" placeholder="请选择违规类型" style="width: 100%;">
  166 + <el-option label="违规1" value="违规1" />
  167 + <el-option label="违规2" value="违规2" />
  168 + </el-select>
  169 + </el-form-item>
  170 + </el-col>
  171 + </el-row>
  172 + <el-row :gutter="2">
  173 + <el-col :span="11">
  174 + <el-form-item label="违规等级" prop="violationGrade">
  175 + <el-select v-model="form.violationGrade" placeholder="请选择企业名称" style="width: 100%;">
  176 + <el-option label="一般类" value="一般类"/>
  177 + <el-option label="重点类" value="重点类" />
  178 + </el-select>
  179 + </el-form-item>
  180 + </el-col>
  181 + <el-col :span="11">
  182 + <el-form-item label="项目名称" prop="projectName">
  183 + <el-select v-model="form.projectName" :filterable="true" :remote-method="projectNameLoadOptions" :loading="isLoading" placeholder="请输入项目名称" style="width: 100%;">
  184 + <el-option v-for="item in projectNameList" :key="item.name" :label="item.name" :value="item.name"></el-option>
  185 + </el-select>
  186 + </el-form-item>
  187 + </el-col>
  188 + </el-row>
  189 + <el-row :gutter="2">
  190 + <el-col :span="8" :offset="3">
  191 + <el-button type="primary" @click="createDescribe">生成违规描述</el-button>
  192 + </el-col>
  193 + <el-col :span="11">
  194 + <el-form-item label="企业名称" prop="companyName">
  195 + <el-select v-model="form.companyName" :filterable="true" :remote-method="companyLoadOptions" :loading="isLoadingCompany" placeholder="请输入项目名称" style="width: 100%;">
  196 + <el-option v-for="item in companyList" :key="item.name" :label="item.name" :value="item.name"></el-option>
  197 + </el-select>
  198 + </el-form-item>
  199 + </el-col>
  200 + </el-row>
  201 + <el-row>
  202 + <el-col :span="22">
  203 + <el-form-item label="违规描述" prop="describe">
  204 + <el-input v-model="form.describe" type="textarea" placeholder="请输入内容" :row="4"/>
  205 + </el-form-item>
  206 + </el-col>
  207 + </el-row>
  208 + <el-form-item label="推送对象">
  209 + <el-radio-group v-model="form.sendObject">
  210 + <el-radio label="区管理部门(治)">区管理部门(治)</el-radio>
  211 + <el-radio label="区管理部门(消)">区管理部门(消)</el-radio>
  212 + <el-radio label="运输企业">运输企业</el-radio>
  213 + </el-radio-group>
  214 + </el-form-item>
  215 + <el-form-item prop="fileEntityList" label="附件">
  216 + <el-upload
  217 + ref="upload"
  218 + action=""
  219 + accept=".docx,.xlsx,.xls,.ppt,.doc,.pdf,.png,.jpeg,.png,.jpg"
  220 + :on-change="fileChange"
  221 + :auto-upload="false"
  222 + :show-file-list="false"
  223 + multiple
  224 + :file-list="fileEntityList">
  225 + <el-button size="small" type="primary" icon="el-icon-upload">上传附件</el-button>
  226 + </el-upload>
  227 + </el-form-item>
  228 + <el-table :data="fileEntityList">
  229 + <el-table-column property="name" label="附件名称" header-align="center" align="center"></el-table-column>
  230 + <el-table-column label="操作" class-name="small-padding fixed-width" header-align="center" align="center">
  231 + <template slot-scope="scope">
  232 + <el-button
  233 + size="small" type="success"
  234 + icon="el-icon-download"
  235 + @click="downloadFA(scope.row)"
  236 + v-hasPermi="['office:management:edit']"
  237 + v-if="form.id!=null"
  238 + round>下载
  239 + </el-button>
  240 + <el-button
  241 + size="small" type="danger"
  242 + icon="el-icon-delete"
  243 + @click="handleDeleteFile(scope.$index)"
  244 + v-hasPermi="['office:management:remove']"
  245 + round>删除
  246 + </el-button>
  247 + </template>
  248 + </el-table-column>
  249 + </el-table>
  250 + </el-form>
  251 + <div slot="footer" class="dialog-footer">
  252 + <el-button type="primary" @click="submitForm">确 定</el-button>
  253 + <el-button @click="cancel">取 消</el-button>
  254 + </div>
  255 + </el-dialog>
  256 + <el-dialog :title="title" :visible.sync="openInfo" width="850px" append-to-body :close-on-click-modal="false">
  257 + <violationCaseFileInfo :idInfo="idInfo" v-if="openInfo" :entryType="0"/>
  258 + <div slot="footer" class="dialog-footer">
  259 + <el-button @click="cancel">取 消</el-button>
  260 + </div>
  261 + </el-dialog>
  262 + </div>
  263 +</template>
  264 +
  265 +<script>
  266 +import { listViolationCaseFile, getViolationCaseFile, delViolationCaseFile, addViolationCaseFile, updateViolationCaseFile, exportViolationCaseFile } from "@/api/casefile/violationCaseFile";
  267 +import violationCaseFileInfo from "./violationCaseFileInfo";
  268 +
  269 +export default {
  270 + name: "ViolationCaseFile",
  271 + components: { violationCaseFileInfo },
  272 + data() {
  273 + return {
  274 + // 遮罩层
  275 + loading: true,
  276 + // 选中数组
  277 + ids: [],
  278 + // 非单个禁用
  279 + single: true,
  280 + // 非多个禁用
  281 + multiple: true,
  282 + // 显示搜索条件
  283 + showSearch: true,
  284 + // 总条数
  285 + total: 0,
  286 + // 平台违规案卷表格数据
  287 + violationCaseFileList: [],
  288 + // 弹出层标题
  289 + title: "",
  290 + // 是否显示弹出层
  291 + open: false,
  292 + // 查询参数
  293 + queryParams: {
  294 + pageNum: 1,
  295 + pageSize: 10,
  296 + number: null,
  297 + violationObjectType: null,
  298 + owningRegion: null,
  299 + violationType: null,
  300 + violationGrade: null,
  301 + projectName: null,
  302 + companyName: null,
  303 + describe: null,
  304 + sendObject: null,
  305 + status: null,
  306 + receive: null,
  307 + receiveStatus: null,
  308 + readBy: null,
  309 + readTime: null
  310 + },
  311 + // 表单参数
  312 + form: {},
  313 + // 表单校验
  314 + rules: {
  315 + number :[
  316 + { required: true, message: "必填", trigger: "blur" }
  317 + ],
  318 + violationObjectType :[
  319 + { required: true, message: "必填", trigger: "blur" }
  320 + ],
  321 + owningRegion :[
  322 + { required: true, message: "必填", trigger: "blur" }
  323 + ],
  324 + violationType :[
  325 + { required: true, message: "必填", trigger: "blur" }
  326 + ],
  327 + },
  328 + projectNameList:[
  329 + {name:"项目1"},
  330 + {name:"项目2"},
  331 + {name:"项目3"},
  332 + ],
  333 + isLoading: false,
  334 + fileEntityList:[],
  335 + companyList:[
  336 + {name:"公司1"},
  337 + {name:"公司2"},
  338 + {name:"公司3"},
  339 + ],
  340 + isLoadingCompany: false,
  341 + idInfo:null,
  342 + openInfo:false,
  343 + };
  344 + },
  345 + created() {
  346 + this.getList();
  347 + },
  348 + methods: {
  349 + /** 查询平台违规案卷列表 */
  350 + getList() {
  351 + this.loading = true;
  352 + listViolationCaseFile(this.queryParams).then(response => {
  353 + this.violationCaseFileList = response.rows;
  354 + this.total = response.total;
  355 + this.loading = false;
  356 + });
  357 + },
  358 + // 取消按钮
  359 + cancel() {
  360 + this.open = false;
  361 + this.openInfo = false;
  362 + this.reset();
  363 + },
  364 + // 表单重置
  365 + reset() {
  366 + this.fileEntityList = [];
  367 + this.form = {
  368 + id: null,
  369 + number: null,
  370 + violationObjectType: null,
  371 + owningRegion: null,
  372 + violationType: null,
  373 + violationGrade: null,
  374 + projectName: null,
  375 + companyName: null,
  376 + describe: null,
  377 + sendObject: null,
  378 + createTime: null,
  379 + createBy: null,
  380 + updateTime: null,
  381 + updateBy: null,
  382 + status: 0,
  383 + receive: null,
  384 + receiveStatus: 0,
  385 + readBy: null,
  386 + readTime: null
  387 + };
  388 + this.resetForm("form");
  389 + },
  390 + /** 搜索按钮操作 */
  391 + handleQuery() {
  392 + this.queryParams.pageNum = 1;
  393 + this.getList();
  394 + },
  395 + /** 重置按钮操作 */
  396 + resetQuery() {
  397 + this.resetForm("queryForm");
  398 + this.handleQuery();
  399 + },
  400 + // 多选框选中数据
  401 + handleSelectionChange(selection) {
  402 + this.ids = selection.map(item => item.id)
  403 + this.single = selection.length!==1
  404 + this.multiple = !selection.length
  405 + },
  406 + handleInfo(row){
  407 + this.idInfo = row.id;
  408 + this.openInfo = true;
  409 + this.title = "平台违规案卷详情";
  410 + },
  411 + /** 新增按钮操作 */
  412 + handleAdd() {
  413 + this.reset();
  414 + this.open = true;
  415 + this.form.number = this.getNumber();
  416 + this.form.violationGrade = "一般类";
  417 + this.form.sendObject = "区管理部门(治)";
  418 + this.title = "添加平台违规案卷";
  419 + },
  420 + /** 修改按钮操作 */
  421 + handleUpdate(row) {
  422 + this.reset();
  423 + const id = row.id || this.ids
  424 + getViolationCaseFile(id).then(response => {
  425 + this.form = response.data.violationCaseFile;
  426 + let files = JSON.stringify(response.data.uploadFiles);
  427 + this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name"))
  428 + this.open = true;
  429 + this.title = "修改平台违规案卷";
  430 + });
  431 + },
  432 + /** 提交按钮 */
  433 + submitForm() {
  434 + this.$refs["form"].validate(valid => {
  435 + if (valid) {
  436 + let formData = new FormData();
  437 + let form = this.form;
  438 + //去掉params属性
  439 + delete form.params;
  440 + formData.append('fileList', null);
  441 + //将新增的文件放入formData
  442 + this.fileEntityList.forEach(item => {
  443 + if(item.id==null){
  444 + formData.append('fileList', item.raw)
  445 + }
  446 + })
  447 + if (this.form.id != null) {
  448 + formData.append("violationCaseFile", JSON.stringify(form));
  449 + formData.append("uploadFilesList", null);
  450 + this.fileEntityList.forEach(item => {
  451 + delete item.params;
  452 + if(item != "null" && item != null){
  453 + formData.append('uploadFilesList', JSON.stringify(item).replaceAll("url", "filePath").replaceAll("name", "fileName"));
  454 + }
  455 + })
  456 + updateViolationCaseFile(formData).then(response => {
  457 + this.msgSuccess("修改成功");
  458 + this.open = false;
  459 + this.getList();
  460 + });
  461 + } else {
  462 + for (let key in form) {
  463 + formData.append(key, form[key] == null ? "" : form[key])
  464 + }
  465 + addViolationCaseFile(formData).then(response => {
  466 + this.msgSuccess("新增成功");
  467 + this.open = false;
  468 + this.getList();
  469 + });
  470 + }
  471 + }
  472 + });
  473 + },
  474 + /** 删除按钮操作 */
  475 + handleDelete(row) {
  476 + const ids = row.id || this.ids;
  477 + this.$confirm('是否确认删除平台违规案卷编号为"' + ids + '"的数据项?', "警告", {
  478 + confirmButtonText: "确定",
  479 + cancelButtonText: "取消",
  480 + type: "warning"
  481 + }).then(function() {
  482 + return delViolationCaseFile(ids);
  483 + }).then(() => {
  484 + this.getList();
  485 + this.msgSuccess("删除成功");
  486 + })
  487 + },
  488 + /** 导出按钮操作 */
  489 + handleExport() {
  490 + const queryParams = this.queryParams;
  491 + this.$confirm('是否确认导出所有平台违规案卷数据项?', "警告", {
  492 + confirmButtonText: "确定",
  493 + cancelButtonText: "取消",
  494 + type: "warning"
  495 + }).then(function() {
  496 + return exportViolationCaseFile(queryParams);
  497 + }).then(response => {
  498 + this.download(response.msg);
  499 + })
  500 + },
  501 + /** 生成案卷编号 */
  502 + getNumber(){
  503 + const now = new Date();
  504 + const year = now.getFullYear().toString().slice(-2); // 提取后两位数
  505 + const month = now.getMonth() + 1 < 10 ? `0${now.getMonth() + 1}` : now.getMonth() + 1;
  506 + const day = now.getDate() < 10 ? `0${now.getDate()}` : now.getDate();
  507 + const hour = now.getHours() < 10 ? `0${now.getHours()}` : now.getHours();
  508 + const minute = now.getMinutes() < 10 ? `0${now.getMinutes()}` : now.getMinutes();
  509 + const second = now.getSeconds() < 10 ? `0${now.getSeconds()}` : now.getSeconds();
  510 + const millisecond = now.getMilliseconds();
  511 + const code = `${year}${month}${day}${hour}${minute}${second}${millisecond}`;
  512 + return code;
  513 + },
  514 + projectNameLoadOptions(query) {
  515 + // 根据输入的关键字query异步加载选项数据
  516 + this.isLoading = true
  517 + setTimeout(() => {
  518 + // 模拟异步加载数据
  519 + const data = [
  520 + { name:'项目1' },
  521 + { name:'项目2' },
  522 + { name:'项目3' }
  523 + ].filter(item => item.name.includes(query))
  524 + this.projectNameList = data
  525 + this.isLoading = false
  526 + }, 200)
  527 + },
  528 + companyLoadOptions(query) {
  529 + // 根据输入的关键字query异步加载选项数据
  530 + this.isLoadingCompany = true
  531 + setTimeout(() => {
  532 + // 模拟异步加载数据
  533 + const data = [
  534 + { name:'公司1' },
  535 + { name:'公司2' },
  536 + { name:'公司3' }
  537 + ].filter(item => item.name.includes(query))
  538 + this.companyList = data
  539 + this.isLoadingCompany = false
  540 + }, 200)
  541 + },
  542 + /**
  543 + * 文件改变时,限制文件上传格式和大小
  544 + * 文件格式只能为docx/xlsx/xls/ppt/doc/pdf/png/jpeg/png/jpg
  545 + * 大小不超过20M
  546 + * */
  547 + fileChange(file, fileList) {
  548 + let count = 0;
  549 + for (let i = 0; i < fileList.length; i++) {
  550 + // console.log(fileList.length)
  551 + // console.log(this.fileEntityList[i].name+"111"+file.name)
  552 + if (fileList[i].name == file.name) {
  553 + count++;
  554 + if (count == 2) {
  555 + this.$message({
  556 + message: '已存在此文件!',
  557 + type: 'warning'
  558 + });
  559 + for (let j = fileList.length; j > 0; j--) {
  560 + //如果存在此文件,去除新选择的重复文件
  561 + if (fileList[j - 1].name == file.name) {
  562 + fileList.splice(j - 1, 1);
  563 + i--;
  564 + return false;
  565 + }
  566 + }
  567 + }
  568 + }
  569 + }
  570 + let fileType = file.name.substring(file.name.lastIndexOf('.') + 1).toLowerCase();
  571 + //格式符合后判断大小
  572 + if ("docx,xlsx,xls,ppt,doc,pdf,png,jpeg,png,jpg".indexOf(fileType) != -1) {
  573 + let max5M = file.size / 1024 / 1024 < 20;
  574 + if (!max5M) {
  575 + this.$message({
  576 + message: '上传文件大小不得超过20M!',
  577 + type: 'warning'
  578 + });
  579 + } else {
  580 + //符合条件后进行添加
  581 + this.fileEntityList = fileList
  582 + }
  583 + } else {
  584 + this.$message({
  585 + message: '上传文件只能是 docx、xlsx、xls、ppt、doc、pdf、png、jpeg、png、jpg格式!',
  586 + type: 'warning'
  587 + });
  588 + }
  589 + },
  590 + // 删除文件
  591 + handleDeleteFile(index) {
  592 + this.fileEntityList.splice(index, 1);
  593 + },
  594 + /** 文件下载 */
  595 + downloadFA(row) {
  596 + let name = row.name;
  597 + let url = row.url;
  598 + const a = document.createElement('a')
  599 + a.setAttribute('download', name)
  600 + a.setAttribute('target', '_blank')
  601 + a.setAttribute('href', process.env.VUE_APP_BASE_API + url);
  602 + a.click()
  603 + },
  604 + /** 生成违规描述 */
  605 + createDescribe(){
  606 + this.rules.companyName = [{ required: true, message: "必填", trigger: "blur" }]
  607 + this.rules.projectName = [{ required: true, message: "必填", trigger: "blur" }]
  608 + this.$refs["form"].validate(valid => {
  609 + if (valid) {
  610 + let formData = this.form;
  611 + const now = new Date();
  612 + const year = now.getFullYear();
  613 + const month = now.getMonth() + 1 < 10 ? `0${now.getMonth() + 1}` : now.getMonth() + 1;
  614 + const day = now.getDate() < 10 ? `0${now.getDate()}` : now.getDate();
  615 + const hour = now.getHours() < 10 ? `0${now.getHours()}` : now.getHours();
  616 + const minute = now.getMinutes() < 10 ? `0${now.getMinutes()}` : now.getMinutes();
  617 + const second = now.getSeconds() < 10 ? `0${now.getSeconds()}` : now.getSeconds();
  618 + const code = `${year}/${month}/${day} ${hour}:${minute}:${second}`;
  619 + this.form.describe =code + formData.companyName + "在" + formData.projectName + "出现" + formData.violationType;
  620 + this.rules.companyName = null;
  621 + this.rules.projectName = null;
  622 + }
  623 + });
  624 +
  625 + }
  626 + }
  627 +};
  628 +</script>
... ...
trash-ui/src/views/casefile/violationCaseFile/violationCaseFileInfo.vue 0 → 100644
  1 +<template>
  2 + <el-form ref="form" :model="form" :rules="rules" label-width="115px">
  3 + <el-row :gutter="2">
  4 + <el-col :span="11">
  5 + <el-form-item label="案卷编号" prop="number">
  6 + <el-input v-model="form.number" placeholder="请输入案卷编号" :disabled="true"/>
  7 + </el-form-item>
  8 + </el-col>
  9 + <el-col :span="11">
  10 + <el-form-item label="违规对象类型" prop="violationObjectType">
  11 + <el-select v-model="form.violationObjectType" placeholder="请选择违规对象类型" style="width: 100%;" :disabled="true">
  12 + <el-option label="对象1" value="对象1" />
  13 + <el-option label="对象2" value="对象2" />
  14 + </el-select>
  15 + </el-form-item>
  16 + </el-col>
  17 + </el-row>
  18 + <el-row :gutter="2">
  19 + <el-col :span="11">
  20 + <el-form-item label="所属区域" prop="owningRegion">
  21 + <el-select v-model="form.owningRegion" placeholder="请输入所属区域" style="width: 100%;" :disabled="true">
  22 + <el-option label="区域1" value="区域1" />
  23 + <el-option label="区域2" value="区域2" />
  24 + </el-select>
  25 + </el-form-item>
  26 + </el-col>
  27 + <el-col :span="11">
  28 + <el-form-item label="违规类型" prop="violationType">
  29 + <el-select v-model="form.violationType" placeholder="请选择违规类型" style="width: 100%;" :disabled="true">
  30 + <el-option label="违规1" value="违规1" />
  31 + <el-option label="违规2" value="违规2" />
  32 + </el-select>
  33 + </el-form-item>
  34 + </el-col>
  35 + </el-row>
  36 + <el-row :gutter="2">
  37 + <el-col :span="11">
  38 + <el-form-item label="违规等级" prop="violationGrade">
  39 + <el-select v-model="form.violationGrade" placeholder="请选择企业名称" style="width: 100%;" :disabled="true">
  40 + <el-option label="一般类" value="一般类"/>
  41 + <el-option label="重点类" value="重点类" />
  42 + </el-select>
  43 + </el-form-item>
  44 + </el-col>
  45 + <el-col :span="11">
  46 + <el-form-item label="项目名称" prop="projectName">
  47 + <el-select v-model="form.projectName" :disabled="true" style="width: 100%;">
  48 +
  49 + </el-select>
  50 + </el-form-item>
  51 + </el-col>
  52 + </el-row>
  53 + <el-row :gutter="2">
  54 + <el-col :span="11">
  55 + <el-form-item label="企业名称" prop="companyName">
  56 + <el-select v-model="form.companyName" :disabled="true" style="width: 100%;">
  57 + </el-select>
  58 + </el-form-item>
  59 + </el-col>
  60 + <el-col :span="11">
  61 + <el-form-item label="发送时间" prop="createTime">
  62 + <el-input :value="form.createTime" :disabled="true"/>
  63 + </el-form-item>
  64 + </el-col>
  65 + </el-row>
  66 + <el-row :gutter="2">
  67 + <el-col :span="11">
  68 + <el-form-item label="发送人" prop="createBy">
  69 + <el-input :value="form.createBy" :disabled="true"/>
  70 + </el-form-item>
  71 + </el-col>
  72 + <el-col :span="11">
  73 + <el-form-item label="接收人及状态" prop="receive">
  74 + <el-input :value="form.receive!=null?form.receive:'' + form.receiveStatus!=null?form.receiveStatus:''" :disabled="true"/>
  75 + </el-form-item>
  76 + </el-col>
  77 + </el-row>
  78 + <el-row :gutter="2">
  79 + <el-col :span="11">
  80 + <el-form-item label="阅读时间" prop="createBy">
  81 + <el-input :value="form.readTime" :disabled="true"/>
  82 + </el-form-item>
  83 + </el-col>
  84 + </el-row>
  85 + <el-row>
  86 + <el-col :span="22">
  87 + <el-form-item label="违规描述" prop="describe">
  88 + <el-input v-model="form.describe" type="textarea" placeholder="请输入内容" :row="4" :disabled="true"/>
  89 + </el-form-item>
  90 + </el-col>
  91 + </el-row>
  92 + <el-form-item label="推送对象">
  93 + <el-radio-group v-model="form.sendObject" :disabled="true">
  94 + <el-radio label="区管理部门(治)">区管理部门(治)</el-radio>
  95 + <el-radio label="区管理部门(消)">区管理部门(消)</el-radio>
  96 + <el-radio label="运输企业">运输企业</el-radio>
  97 + </el-radio-group>
  98 + </el-form-item>
  99 + <el-row>
  100 + <el-col :offset="3"><el-button type="primary" @click="open = true">查看附件({{fileEntityList.length}})</el-button></el-col>
  101 + </el-row>
  102 + <el-table :data="replyApprovalProcessList" v-if="entryType==0">
  103 + <el-table-column property="replyPeople" label="操作人" header-align="center" align="center"></el-table-column>
  104 + <el-table-column property="reply" label="意见" header-align="center" align="center"></el-table-column>
  105 + <el-table-column property="replyTime" label="操作时间" header-align="center" align="center"></el-table-column>
  106 + <el-table-column property="replyImg" label="图片预览" header-align="center" align="center">
  107 + <template slot-scope="scope">
  108 + <el-button
  109 + size="mini"
  110 + type="text"
  111 + icon="el-icon-view"
  112 + @click="openImage(scope.row)"
  113 + v-hasPermi="['casefile:violationWarningInformation:edit']"
  114 + >查看</el-button>
  115 + </template>
  116 + </el-table-column>
  117 + </el-table>
  118 + <el-dialog title="查看附件" :visible.sync="open" append-to-body>
  119 + <el-table :data="fileEntityList">
  120 + <el-table-column property="name" label="附件名称" header-align="center" align="center"></el-table-column>
  121 + <el-table-column label="操作" class-name="small-padding fixed-width" header-align="center" align="center">
  122 + <template slot-scope="scope">
  123 + <el-button
  124 + size="small" type="success"
  125 + icon="el-icon-download"
  126 + @click="downloadFA(scope.row)"
  127 + v-hasPermi="['office:management:edit']"
  128 + v-if="form.id!=null"
  129 + round>下载
  130 + </el-button>
  131 + </template>
  132 + </el-table-column>
  133 + </el-table>
  134 + <div slot="footer" class="dialog-footer">
  135 + <el-button @click="open = false">取 消</el-button>
  136 + </div>
  137 + </el-dialog>
  138 + <el-dialog title="预览" :visible.sync="openImg" append-to-body v-if="entryType==0">
  139 + <img :src="img" width="100%" height="750px" />
  140 + </el-dialog>
  141 + </el-form>
  142 +</template>
  143 +
  144 +<script>
  145 +import {getViolationCaseFile} from "@/api/casefile/violationCaseFile";
  146 +import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess";
  147 +export default {
  148 + name: "violationWarningInformationInfo",
  149 + props: {
  150 + businessKey: {
  151 + type: String
  152 + },
  153 + idInfo: {
  154 + type: String
  155 + },
  156 + entryType: {
  157 + type: Number
  158 + },
  159 + },
  160 + data() {
  161 + return {
  162 + form: {},
  163 + fileEntityList: [],
  164 + open: false,
  165 + replyApprovalProcessList:[],
  166 + openImg:false,
  167 + }
  168 + },
  169 + created() {
  170 + this.init();
  171 + },
  172 + methods:{
  173 + init(){
  174 + getViolationCaseFile(this.idInfo).then(response => {
  175 + this.form = response.data.violationCaseFile;
  176 + let files = JSON.stringify(response.data.uploadFiles);
  177 + this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name"));
  178 + });
  179 + listReplyApprovalProcess({tableName:"violation_case_file",tableId:this.idInfo}).then(response => {
  180 + this.replyApprovalProcessList = response.rows;
  181 + });
  182 + },
  183 + /** 文件下载 */
  184 + downloadFA(row) {
  185 + let name = row.name;
  186 + let url = row.url;
  187 + const a = document.createElement('a')
  188 + a.setAttribute('download', name)
  189 + a.setAttribute('target', '_blank')
  190 + a.setAttribute('href', process.env.VUE_APP_BASE_API + url);
  191 + a.click()
  192 + },
  193 + openImage(row){
  194 + this.openImg = true;
  195 + this.img = process.env.VUE_APP_BASE_API + row.replyImg;
  196 + },
  197 + }
  198 +}
  199 +</script>
  200 +
  201 +<style scoped>
  202 +
  203 +</style>
... ...
trash-ui/src/views/casefile/violationWarningInformation/index.vue
1 1 <template>
2 2 <div class="app-container">
3 3 <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="105px">
4   - <el-form-item label="案卷编号" prop="number">
5   - <el-input
6   - v-model="queryParams.number"
7   - placeholder="请输入案卷编号"
8   - clearable
9   - size="small"
10   - @keyup.enter.native="handleQuery"
11   - />
12   - </el-form-item>
13 4 <el-form-item label="违规对象类型" prop="violationObjectType">
14 5 <el-select v-model="queryParams.violationObjectType" placeholder="请选择违规对象类型" clearable size="small">
15 6 <el-option label="对象1" value="对象1" />
... ... @@ -64,16 +55,16 @@
64 55 v-hasPermi="['casefile:violationWarningInformation:edit']"
65 56 >修改</el-button>
66 57 </el-col>
67   - <el-col :span="1.5">
68   - <el-button
69   - type="danger"
70   - icon="el-icon-delete"
71   - size="mini"
72   - :disabled="multiple"
73   - @click="handleDelete"
74   - v-hasPermi="['casefile:violationWarningInformation:remove']"
75   - >删除</el-button>
76   - </el-col>
  58 +<!-- <el-col :span="1.5">-->
  59 +<!-- <el-button-->
  60 +<!-- type="danger"-->
  61 +<!-- icon="el-icon-delete"-->
  62 +<!-- size="mini"-->
  63 +<!-- :disabled="multiple"-->
  64 +<!-- @click="handleDelete"-->
  65 +<!-- v-hasPermi="['casefile:violationWarningInformation:remove']"-->
  66 +<!-- >删除</el-button>-->
  67 +<!-- </el-col>-->
77 68 <el-col :span="1.5">
78 69 <el-button
79 70 type="warning"
... ... @@ -93,6 +84,11 @@
93 84 <el-table-column label="违规类型" align="center" prop="violationType" />
94 85 <el-table-column label="项目名称" align="center" prop="projectName" />
95 86 <el-table-column label="企业名称" align="center" prop="companyName" />
  87 + <el-table-column label="审批状态" align="center" prop="status">
  88 + <template slot-scope="scope">
  89 + <span>{{parseStatus(scope.row.status) }}</span>
  90 + </template>
  91 + </el-table-column>
96 92 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
97 93 <template slot-scope="scope">
98 94 <el-button
... ... @@ -102,20 +98,20 @@
102 98 @click="handleInfo(scope.row)"
103 99 v-hasPermi="['casefile:violationWarningInformation:edit']"
104 100 >详情</el-button>
105   - <el-button
106   - size="mini"
107   - type="text"
108   - icon="el-icon-edit"
109   - @click="handleUpdate(scope.row)"
110   - v-hasPermi="['casefile:violationWarningInformation:edit']"
111   - >修改</el-button>
112   - <el-button
113   - size="mini"
114   - type="text"
115   - icon="el-icon-delete"
116   - @click="handleDelete(scope.row)"
117   - v-hasPermi="['casefile:violationWarningInformation:remove']"
118   - >删除</el-button>
  101 +<!-- <el-button-->
  102 +<!-- size="mini"-->
  103 +<!-- type="text"-->
  104 +<!-- icon="el-icon-edit"-->
  105 +<!-- @click="handleUpdate(scope.row)"-->
  106 +<!-- v-hasPermi="['casefile:violationWarningInformation:edit']"-->
  107 +<!-- >修改</el-button>-->
  108 +<!-- <el-button-->
  109 +<!-- size="mini"-->
  110 +<!-- type="text"-->
  111 +<!-- icon="el-icon-delete"-->
  112 +<!-- @click="handleDelete(scope.row)"-->
  113 +<!-- v-hasPermi="['casefile:violationWarningInformation:remove']"-->
  114 +<!-- >删除</el-button>-->
119 115 </template>
120 116 </el-table-column>
121 117 </el-table>
... ... @@ -250,7 +246,7 @@
250 246 </el-dialog>
251 247  
252 248 <el-dialog :title="title" :visible.sync="openInfo" width="850px" append-to-body :close-on-click-modal="false">
253   - <violationWarningInformationInfo :idInfo="idInfo" v-if="openInfo"/>
  249 + <violationWarningInformationInfo :idInfo="idInfo" v-if="openInfo" :entryType="0"/>
254 250 <div slot="footer" class="dialog-footer">
255 251 <el-button @click="cancel">取 消</el-button>
256 252 </div>
... ... @@ -372,7 +368,7 @@ export default {
372 368 projectName: null,
373 369 companyName: null,
374 370 describe: null,
375   - sendObject: "区管理部门(治)",
  371 + sendObject: null,
376 372 createTime: null,
377 373 createBy: null,
378 374 updateTime: null,
... ... @@ -406,6 +402,7 @@ export default {
406 402 handleInfo(row){
407 403 this.idInfo = row.id;
408 404 this.openInfo = true;
  405 + this.title = "平台违规案卷详情";
409 406 },
410 407 /** 新增按钮操作 */
411 408 handleAdd() {
... ...
trash-ui/src/views/casefile/violationWarningInformation/violationWarningInformationInfo.vue
... ... @@ -9,8 +9,8 @@
9 9 <el-col :span="11">
10 10 <el-form-item label="违规对象类型" prop="violationObjectType">
11 11 <el-select v-model="form.violationObjectType" placeholder="请选择违规对象类型" style="width: 100%;" :disabled="true">
12   - <el-option label="对象1" value="对象1" />
13   - <el-option label="对象2" value="对象2" />
  12 + <el-option label="对象1" value="对象1"/>
  13 + <el-option label="对象2" value="对象2"/>
14 14 </el-select>
15 15 </el-form-item>
16 16 </el-col>
... ... @@ -19,16 +19,16 @@
19 19 <el-col :span="11">
20 20 <el-form-item label="所属区域" prop="owningRegion">
21 21 <el-select v-model="form.owningRegion" placeholder="请输入所属区域" style="width: 100%;" :disabled="true">
22   - <el-option label="区域1" value="区域1" />
23   - <el-option label="区域2" value="区域2" />
  22 + <el-option label="区域1" value="区域1"/>
  23 + <el-option label="区域2" value="区域2"/>
24 24 </el-select>
25 25 </el-form-item>
26 26 </el-col>
27 27 <el-col :span="11">
28 28 <el-form-item label="违规类型" prop="violationType">
29 29 <el-select v-model="form.violationType" placeholder="请选择违规类型" style="width: 100%;" :disabled="true">
30   - <el-option label="违规1" value="违规1" />
31   - <el-option label="违规2" value="违规2" />
  30 + <el-option label="违规1" value="违规1"/>
  31 + <el-option label="违规2" value="违规2"/>
32 32 </el-select>
33 33 </el-form-item>
34 34 </el-col>
... ... @@ -38,13 +38,13 @@
38 38 <el-form-item label="违规等级" prop="violationGrade">
39 39 <el-select v-model="form.violationGrade" placeholder="请选择企业名称" style="width: 100%;" :disabled="true">
40 40 <el-option label="一般类" value="一般类"/>
41   - <el-option label="重点类" value="重点类" />
  41 + <el-option label="重点类" value="重点类"/>
42 42 </el-select>
43 43 </el-form-item>
44 44 </el-col>
45 45 <el-col :span="11">
46 46 <el-form-item label="项目名称" prop="projectName">
47   - <el-select v-model="form.projectName" :disabled="true" style="width: 100%;">
  47 + <el-select v-model="form.projectName" :disabled="true" style="width: 100%;">
48 48  
49 49 </el-select>
50 50 </el-form-item>
... ... @@ -53,7 +53,7 @@
53 53 <el-row :gutter="2">
54 54 <el-col :span="11">
55 55 <el-form-item label="企业名称" prop="companyName">
56   - <el-select v-model="form.companyName" :disabled="true" style="width: 100%;">
  56 + <el-select v-model="form.companyName" :disabled="true" style="width: 100%;">
57 57 </el-select>
58 58 </el-form-item>
59 59 </el-col>
... ... @@ -71,7 +71,8 @@
71 71 </el-col>
72 72 <el-col :span="11">
73 73 <el-form-item label="接收人及状态" prop="receive">
74   - <el-input :value="form.receive!=null?form.receive:'' + form.receiveStatus!=null?form.receiveStatus:''" :disabled="true"/>
  74 + <el-input :value="form.receive!=null?form.receive:'' + form.receiveStatus!=null?form.receiveStatus:''"
  75 + :disabled="true"/>
75 76 </el-form-item>
76 77 </el-col>
77 78 </el-row>
... ... @@ -96,26 +97,56 @@
96 97 <el-radio label="运输企业">运输企业</el-radio>
97 98 </el-radio-group>
98 99 </el-form-item>
99   - <el-table :data="fileEntityList">
100   - <el-table-column property="name" label="附件名称" header-align="center" align="center"></el-table-column>
101   - <el-table-column label="操作" class-name="small-padding fixed-width" header-align="center" align="center">
  100 + <el-row>
  101 + <el-col :offset="3">
  102 + <el-button type="primary" @click="open = true">查看附件({{ fileEntityList.length }})</el-button>
  103 + </el-col>
  104 + </el-row>
  105 + <el-table :data="replyApprovalProcessList" v-if="entryType==0">
  106 + <el-table-column property="replyPeople" label="操作人" header-align="center" align="center"></el-table-column>
  107 + <el-table-column property="reply" label="意见" header-align="center" align="center"></el-table-column>
  108 + <el-table-column property="replyTime" label="操作时间" header-align="center" align="center"></el-table-column>
  109 + <el-table-column property="replyImg" label="图片预览" header-align="center" align="center">
102 110 <template slot-scope="scope">
103 111 <el-button
104   - size="small" type="success"
105   - icon="el-icon-download"
106   - @click="downloadFA(scope.row)"
107   - v-hasPermi="['office:management:edit']"
108   - v-if="form.id!=null"
109   - round>下载
110   - </el-button>
  112 + size="mini"
  113 + type="text"
  114 + icon="el-icon-view"
  115 + @click="openImage(scope.row)"
  116 + v-hasPermi="['casefile:violationWarningInformation:edit']"
  117 + >查看</el-button>
111 118 </template>
112 119 </el-table-column>
113 120 </el-table>
  121 + <el-dialog title="查看附件" :visible.sync="open" append-to-body>
  122 + <el-table :data="fileEntityList">
  123 + <el-table-column property="name" label="附件名称" header-align="center" align="center"></el-table-column>
  124 + <el-table-column label="操作" class-name="small-padding fixed-width" header-align="center" align="center">
  125 + <template slot-scope="scope">
  126 + <el-button
  127 + size="small" type="success"
  128 + icon="el-icon-download"
  129 + @click="downloadFA(scope.row)"
  130 + v-hasPermi="['office:management:edit']"
  131 + v-if="form.id!=null"
  132 + round>下载
  133 + </el-button>
  134 + </template>
  135 + </el-table-column>
  136 + </el-table>
  137 + <div slot="footer" class="dialog-footer">
  138 + <el-button @click="open = false">取 消</el-button>
  139 + </div>
  140 + </el-dialog>
  141 + <el-dialog title="预览" :visible.sync="openImg" append-to-body v-if="entryType==0">
  142 + <img :src="img" width="100%" height="750px" />
  143 + </el-dialog>
114 144 </el-form>
115 145 </template>
116 146  
117 147 <script>
118 148 import {getViolationWarningInformation} from "@/api/casefile/violationWarningInformation";
  149 +import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess";
119 150 export default {
120 151 name: "violationWarningInformationInfo",
121 152 props: {
... ... @@ -124,24 +155,33 @@ export default {
124 155 },
125 156 idInfo: {
126 157 type: String
127   - }
  158 + },
  159 + entryType: {
  160 + type: Number
  161 + },
128 162 },
129 163 data() {
130 164 return {
131 165 form: {},
132 166 fileEntityList: [],
  167 + open:false,
  168 + replyApprovalProcessList:[],
  169 + openImg:false,
133 170 }
134 171 },
135 172 created() {
136 173 this.init();
137 174 },
138   - methods:{
139   - init(){
  175 + methods: {
  176 + init() {
140 177 getViolationWarningInformation(this.idInfo).then(response => {
141 178 this.form = response.data.violationWarningInformation;
142 179 let files = JSON.stringify(response.data.uploadFiles);
143 180 this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name"));
144 181 });
  182 + listReplyApprovalProcess({tableName:"casefile_violation_warning_information",tableId:this.idInfo}).then(response => {
  183 + this.replyApprovalProcessList = response.rows;
  184 + });
145 185 },
146 186 /** 文件下载 */
147 187 downloadFA(row) {
... ... @@ -153,6 +193,10 @@ export default {
153 193 a.setAttribute('href', process.env.VUE_APP_BASE_API + url);
154 194 a.click()
155 195 },
  196 + openImage(row){
  197 + this.openImg = true;
  198 + this.img = process.env.VUE_APP_BASE_API + row.replyImg;
  199 + }
156 200 }
157 201 }
158 202 </script>
... ...
trash-ui/src/views/office/conference/conferenceInfo.vue
... ... @@ -86,7 +86,6 @@ export default {
86 86 init(){
87 87 getConference(this.idInfo).then(response => {
88 88 this.form = response.data.conference;
89   - this.form.notify = response.data.conference.notify.split(",");
90 89 let files = JSON.stringify(response.data.uploadFiles);
91 90 this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name"))
92 91 });
... ...
trash-ui/src/views/office/conference/index.vue
... ... @@ -9,20 +9,14 @@
9 9 placeholder="选择会议时间">
10 10 </el-date-picker>
11 11 </el-form-item>
12   - <el-form-item label="科室名称" prop="deptName">
13   - <el-select v-model="queryParams.deptName" placeholder="请选择科室名称" clearable size="small">
14   - <el-option label="科室1" value="科室1"/>
15   - <el-option label="科室2" value="科室2"/>
16   - </el-select>
17   - </el-form-item>
18   - <el-form-item label="会议主题" prop="subject">
19   - <el-input
20   - v-model="queryParams.subject"
21   - placeholder="请输入会议主题"
22   - clearable
23   - size="small"
24   - @keyup.enter.native="handleQuery"
25   - />
  12 +<!-- <el-form-item label="发起部门" prop="deptId">-->
  13 +<!-- <el-select v-model="queryParams.deptId" placeholder="请输入发起部门" style="width: 100%">-->
  14 +<!-- <el-option label="全部" value=""/>-->
  15 +<!-- <el-option v-for="item in depts" :label="item.name" :value="item.code" :key="item.code"/>-->
  16 +<!-- </el-select>-->
  17 +<!-- </el-form-item>-->
  18 + <el-form-item label="会议地点" prop="conferenceSite">
  19 + <el-input v-model="queryParams.conferenceSite" placeholder="请输入会议地点"/>
26 20 </el-form-item>
27 21 <el-form-item>
28 22 <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
... ... @@ -41,28 +35,28 @@
41 35 >新增
42 36 </el-button>
43 37 </el-col>
44   - <el-col :span="1.5">
45   - <el-button
46   - type="success"
47   - icon="el-icon-edit"
48   - size="mini"
49   - :disabled="single"
50   - @click="handleUpdate"
51   - v-hasPermi="['office:conference:edit']"
52   - >修改
53   - </el-button>
54   - </el-col>
55   - <el-col :span="1.5">
56   - <el-button
57   - type="danger"
58   - icon="el-icon-delete"
59   - size="mini"
60   - :disabled="multiple"
61   - @click="handleDelete"
62   - v-hasPermi="['office:conference:remove']"
63   - >删除
64   - </el-button>
65   - </el-col>
  38 +<!-- <el-col :span="1.5">-->
  39 +<!-- <el-button-->
  40 +<!-- type="success"-->
  41 +<!-- icon="el-icon-edit"-->
  42 +<!-- size="mini"-->
  43 +<!-- :disabled="single"-->
  44 +<!-- @click="handleUpdate"-->
  45 +<!-- v-hasPermi="['office:conference:edit']"-->
  46 +<!-- >修改-->
  47 +<!-- </el-button>-->
  48 +<!-- </el-col>-->
  49 +<!-- <el-col :span="1.5">-->
  50 +<!-- <el-button-->
  51 +<!-- type="danger"-->
  52 +<!-- icon="el-icon-delete"-->
  53 +<!-- size="mini"-->
  54 +<!-- :disabled="multiple"-->
  55 +<!-- @click="handleDelete"-->
  56 +<!-- v-hasPermi="['office:conference:remove']"-->
  57 +<!-- >删除-->
  58 +<!-- </el-button>-->
  59 +<!-- </el-col>-->
66 60 <el-col :span="1.5">
67 61 <el-button
68 62 type="warning"
... ... @@ -81,6 +75,16 @@
81 75 <el-table-column label="会议时间" align="center" prop="conferenceTime"/>
82 76 <el-table-column label="会议地点" align="center" prop="conferenceSite"/>
83 77 <el-table-column label="参会人员" align="center" prop="staff"/>
  78 +<!-- <el-table-column label="发起部门" align="center" prop="deptId">-->
  79 +<!-- <template slot-scope="scope">-->
  80 +<!-- <span>{{ parseDept(scope.row.deptId) }}</span>-->
  81 +<!-- </template>-->
  82 +<!-- </el-table-column>-->
  83 + <el-table-column label="审批状态" align="center">
  84 + <template slot-scope="scope">
  85 + <span>{{parseStatus(scope.row.status)}}</span>
  86 + </template>
  87 + </el-table-column>
84 88 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
85 89 <template slot-scope="scope">
86 90 <el-button
... ... @@ -96,17 +100,18 @@
96 100 type="text"
97 101 icon="el-icon-edit"
98 102 @click="handleUpdate(scope.row)"
  103 + v-if="scope.row.status==2"
99 104 v-hasPermi="['office:conference:edit']"
100 105 >修改
101 106 </el-button>
102   - <el-button
103   - size="mini"
104   - type="text"
105   - icon="el-icon-delete"
106   - @click="handleDelete(scope.row)"
107   - v-hasPermi="['office:conference:remove']"
108   - >删除
109   - </el-button>
  107 +<!-- <el-button-->
  108 +<!-- size="mini"-->
  109 +<!-- type="text"-->
  110 +<!-- icon="el-icon-delete"-->
  111 +<!-- @click="handleDelete(scope.row)"-->
  112 +<!-- v-hasPermi="['office:conference:remove']"-->
  113 +<!-- >删除-->
  114 +<!-- </el-button>-->
110 115 </template>
111 116 </el-table-column>
112 117 </el-table>
... ... @@ -227,6 +232,7 @@ import {
227 232 } from "@/api/office/conference";
228 233 import Editor from '@/components/ZcEditor';
229 234 import conferenceInfo from "./conferenceInfo";
  235 +import {getDict} from "@/api/dict";
230 236  
231 237 export default {
232 238 name: "Conference",
... ... @@ -258,7 +264,6 @@ export default {
258 264 conferenceTime: null,
259 265 conferenceSite: null,
260 266 deptId: null,
261   - deptName: null,
262 267 staff: null,
263 268 subject: null,
264 269 content: null,
... ... @@ -286,9 +291,14 @@ export default {
286 291 fileEntityList: [],
287 292 openInfo:false,
288 293 idInfo:null,
  294 + depts:[]
289 295 };
290 296 },
291 297 created() {
  298 + let dep = {type:"CSUserDepartmentType"};
  299 + getDict(dep).then(res=>{
  300 + this.depts = res.result;
  301 + });
292 302 this.getList();
293 303 },
294 304 methods: {
... ... @@ -316,11 +326,9 @@ export default {
316 326 conferenceTime: null,
317 327 conferenceSite: null,
318 328 deptId: null,
319   - deptName: null,
320 329 staff: null,
321 330 subject: null,
322 331 content: null,
323   - notify: ["1"],
324 332 createTime: null,
325 333 createBy: null,
326 334 updateTime: null,
... ... @@ -348,7 +356,7 @@ export default {
348 356 handleInfo(row){
349 357 this.reset();
350 358 this.idInfo = row.id;
351   - this.title = "请假申请详情";
  359 + this.title = "会议管理详情";
352 360 this.openInfo = true;
353 361 },
354 362 /** 新增按钮操作 */
... ... @@ -502,6 +510,14 @@ export default {
502 510 a.setAttribute('href', process.env.VUE_APP_BASE_API + url);
503 511 a.click()
504 512 },
  513 + parseDept(deptId){
  514 + let dept = this.depts.filter(item=>{
  515 + if(item.code == deptId){
  516 + return item;
  517 + }
  518 + });
  519 + return dept[0].name
  520 + }
505 521 }
506 522 };
507 523 </script>
... ...
trash-ui/src/views/office/handle/handleInfo.vue
1 1 <template>
2   - <el-form ref="form" :model="form" :rules="rules" label-width="110px">
  2 + <el-form ref="form" :model="form" label-width="110px">
3 3 <el-form-item label="办文办事类型" prop="type">
4   - <el-select v-model="form.type" placeholder="请选择办文办事类型" style="width: 100%">
  4 + <el-select v-model="form.type" placeholder="请选择办文办事类型" style="width: 100%" :disabled="true">
5 5 <el-option label="传阅学习类" value="0" />
6 6 <el-option label="公文批办类" value="1" />
7 7 <el-option label="热线举报类" value="2" />
8 8 <el-option label="上级信访类" value="3" />
  9 + <el-option label="现场信访类" value="4" />
9 10 </el-select>
10 11 </el-form-item>
11 12 <!-- 公文类 -->
12 13 <el-form-item label="来文单位" prop="company" v-if="form.type==0 || form.type==1">
13   - <el-input v-model="form.company" placeholder="请输入来文单位" />
  14 + <el-input v-model="form.company" placeholder="请输入来文单位" :disabled="true" />
14 15 </el-form-item>
15 16 <el-form-item label="收文时间" prop="receiveTime" v-if="form.type==0 || form.type==1">
16 17 <el-date-picker clearable size="small" style="width: 100%"
17 18 v-model="form.receiveTime"
18   - type="date"
19   - value-format="yyyy-MM-dd"
  19 + type="datetime"
  20 + :disabled="true"
  21 + value-format="yyyy-MM-dd HH:mm:ss"
20 22 placeholder="选择收文时间">
21 23 </el-date-picker>
22 24 </el-form-item>
23 25 <el-form-item label="文件标题" prop="title" v-if="form.type==0 || form.type==1">
24   - <el-input v-model="form.title" placeholder="请输入文件标题" />
  26 + <el-input v-model="form.title" placeholder="请输入文件标题" :disabled="true" />
25 27 </el-form-item>
26 28 <!-- 信访类 -->
27   - <el-form-item label="信访单位(人)" prop="sendPerson" v-if="form.type==2 || form.type==3">
28   - <el-input v-model="form.sendPerson" placeholder="请输入信访单位(人)" />
  29 + <el-form-item label="信访单位(人)" prop="sendPerson" v-if="form.type==2 || form.type==3|| form.type==4">
  30 + <el-input v-model="form.sendPerson" placeholder="请输入信访单位(人)" :disabled="true" />
29 31 </el-form-item>
30   - <el-form-item label="信访日期" prop="sendDate" v-if="form.type==2 || form.type==3">
  32 + <el-form-item label="信访日期" prop="sendDate" v-if="form.type==2 || form.type==3|| form.type==4">
31 33 <el-date-picker clearable size="small" style="width: 100%"
32 34 v-model="form.sendDate"
33 35 type="date"
  36 + :disabled="true"
34 37 value-format="yyyy-MM-dd"
35 38 placeholder="选择信访日期">
36 39 </el-date-picker>
37 40 </el-form-item>
38   - <el-form-item label="诉求" prop="appeal" v-if="form.type==2 || form.type==3">
39   - <el-input v-model="form.appeal" type="textarea" placeholder="请输入内容" :rows="6"/>
  41 + <el-form-item label="诉求" prop="appeal" v-if="form.type==2 || form.type==3|| form.type==4">
  42 + <el-input v-model="form.appeal" type="textarea" placeholder="请输入内容" :rows="6" :disabled="true"/>
40 43 </el-form-item>
41 44 <!-- 意见处 -->
42 45 <!-- <el-form-item label="办理意见" prop="opinion">-->
... ...
trash-ui/src/views/office/handle/index.vue
... ... @@ -7,6 +7,7 @@
7 7 <el-option label="公文批办类" value="1" />
8 8 <el-option label="热线举报类" value="2" />
9 9 <el-option label="上级信访类" value="3" />
  10 + <el-option label="现场信访类" value="4" />
10 11 </el-select>
11 12 </el-form-item>
12 13 <el-form-item label="来文单位" prop="company">
... ... @@ -68,26 +69,26 @@
68 69 v-hasPermi="['office:handle:add']"
69 70 >新增</el-button>
70 71 </el-col>
71   - <el-col :span="1.5">
72   - <el-button
73   - type="success"
74   - icon="el-icon-edit"
75   - size="mini"
76   - :disabled="single"
77   - @click="handleUpdate"
78   - v-hasPermi="['office:handle:edit']"
79   - >修改</el-button>
80   - </el-col>
81   - <el-col :span="1.5">
82   - <el-button
83   - type="danger"
84   - icon="el-icon-delete"
85   - size="mini"
86   - :disabled="multiple"
87   - @click="handleDelete"
88   - v-hasPermi="['office:handle:remove']"
89   - >删除</el-button>
90   - </el-col>
  72 +<!-- <el-col :span="1.5">-->
  73 +<!-- <el-button-->
  74 +<!-- type="success"-->
  75 +<!-- icon="el-icon-edit"-->
  76 +<!-- size="mini"-->
  77 +<!-- :disabled="single"-->
  78 +<!-- @click="handleUpdate"-->
  79 +<!-- v-hasPermi="['office:handle:edit']"-->
  80 +<!-- >修改</el-button>-->
  81 +<!-- </el-col>-->
  82 +<!-- <el-col :span="1.5">-->
  83 +<!-- <el-button-->
  84 +<!-- type="danger"-->
  85 +<!-- icon="el-icon-delete"-->
  86 +<!-- size="mini"-->
  87 +<!-- :disabled="multiple"-->
  88 +<!-- @click="handleDelete"-->
  89 +<!-- v-hasPermi="['office:handle:remove']"-->
  90 +<!-- >删除</el-button>-->
  91 +<!-- </el-col>-->
91 92 <el-col :span="1.5">
92 93 <el-button
93 94 type="warning"
... ... @@ -121,6 +122,11 @@
121 122 <el-table-column label="信访日期" align="center" prop="sendDate" />
122 123 <el-table-column label="诉求" align="center" prop="appeal" />
123 124 </el-table-column>
  125 + <el-table-column label="审批状态" align="center" prop="status">
  126 + <template slot-scope="scope">
  127 + <span>{{parseStatus(scope.row.status)}}</span>
  128 + </template>
  129 + </el-table-column>
124 130 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
125 131 <template slot-scope="scope">
126 132 <el-button
... ... @@ -135,15 +141,16 @@
135 141 type="text"
136 142 icon="el-icon-edit"
137 143 @click="handleUpdate(scope.row)"
  144 + v-if="scope.row.status==2"
138 145 v-hasPermi="['office:handle:edit']"
139 146 >修改</el-button>
140   - <el-button
141   - size="mini"
142   - type="text"
143   - icon="el-icon-delete"
144   - @click="handleDelete(scope.row)"
145   - v-hasPermi="['office:handle:remove']"
146   - >删除</el-button>
  147 +<!-- <el-button-->
  148 +<!-- size="mini"-->
  149 +<!-- type="text"-->
  150 +<!-- icon="el-icon-delete"-->
  151 +<!-- @click="handleDelete(scope.row)"-->
  152 +<!-- v-hasPermi="['office:handle:remove']"-->
  153 +<!-- >删除</el-button>-->
147 154 </template>
148 155 </el-table-column>
149 156 </el-table>
... ... @@ -165,6 +172,7 @@
165 172 <el-option label="公文批办类" value="1" />
166 173 <el-option label="热线举报类" value="2" />
167 174 <el-option label="上级信访类" value="3" />
  175 + <el-option label="现场信访类" value="4" />
168 176 </el-select>
169 177 </el-form-item>
170 178 <!-- 公文类 -->
... ... @@ -174,8 +182,8 @@
174 182 <el-form-item label="收文时间" prop="receiveTime" v-if="form.type==0 || form.type==1">
175 183 <el-date-picker clearable size="small" style="width: 100%"
176 184 v-model="form.receiveTime"
177   - type="date"
178   - value-format="yyyy-MM-dd"
  185 + type="datetime"
  186 + value-format="yyyy-MM-dd HH:mm:ss"
179 187 placeholder="选择收文时间">
180 188 </el-date-picker>
181 189 </el-form-item>
... ... @@ -183,10 +191,10 @@
183 191 <el-input v-model="form.title" placeholder="请输入文件标题" />
184 192 </el-form-item>
185 193 <!-- 信访类 -->
186   - <el-form-item label="信访单位(人)" prop="sendPerson" v-if="form.type==2 || form.type==3">
  194 + <el-form-item label="信访单位(人)" prop="sendPerson" v-if="form.type==2 || form.type==3|| form.type==4">
187 195 <el-input v-model="form.sendPerson" placeholder="请输入信访单位(人)" />
188 196 </el-form-item>
189   - <el-form-item label="信访日期" prop="sendDate" v-if="form.type==2 || form.type==3">
  197 + <el-form-item label="信访日期" prop="sendDate" v-if="form.type==2 || form.type==3|| form.type==4">
190 198 <el-date-picker clearable size="small" style="width: 100%"
191 199 v-model="form.sendDate"
192 200 type="date"
... ... @@ -194,7 +202,7 @@
194 202 placeholder="选择信访日期">
195 203 </el-date-picker>
196 204 </el-form-item>
197   - <el-form-item label="诉求" prop="appeal" v-if="form.type==2 || form.type==3">
  205 + <el-form-item label="诉求" prop="appeal" v-if="form.type==2 || form.type==3|| form.type==4">
198 206 <el-input v-model="form.appeal" type="textarea" placeholder="请输入内容" :rows="6"/>
199 207 </el-form-item>
200 208 <!-- 意见处 -->
... ... @@ -542,6 +550,8 @@ export default {
542 550 return "热线举报";
543 551 }else if(type==3){
544 552 return "上级信访"
  553 + }else if(type==4){
  554 + return "现场信访"
545 555 }
546 556 },
547 557 changeType(){
... ... @@ -555,7 +565,7 @@ export default {
555 565 this.rules.sendPerson[0].required = false;
556 566 this.rules.sendDate[0].required = false;
557 567 this.rules.appeal[0].required = false;
558   - }else if(this.form.type==2 || this.form.type==3){
  568 + }else if(this.form.type==2 || this.form.type==3 || this.form.type==4 ){
559 569 this.form.title = null;
560 570 this.form.company = null;
561 571 this.form.receiveTime = null;
... ...
trash-ui/src/views/office/leaveApplication/index.vue
... ... @@ -10,34 +10,21 @@
10 10 @keyup.enter.native="handleQuery"
11 11 />
12 12 </el-form-item>
13   - <el-form-item label="部门id" prop="deptId">
14   - <el-select v-model="queryParams.deptId" placeholder="请选择部门id" clearable size="small">
  13 + <el-form-item label="申请部门" prop="deptId">
  14 + <el-select v-model="queryParams.deptId" placeholder="请选择部门" clearable size="small">
15 15 <el-option label="请选择字典生成" value=""/>
16 16 </el-select>
17 17 </el-form-item>
18   - <el-form-item label="职务id" prop="positionId">
19   - <el-select v-model="queryParams.positionId" placeholder="请选择职务id" clearable size="small">
20   - <el-option label="请选择字典生成" value=""/>
21   - </el-select>
22   - </el-form-item>
23   - <el-form-item label="出生日期" prop="birthdate">
24   - <el-date-picker clearable size="small" style="width: 200px"
25   - v-model="queryParams.birthdate"
26   - type="date"
27   - value-format="yyyy-MM-dd"
28   - placeholder="选择出生日期">
29   - </el-date-picker>
30   - </el-form-item>
31 18 <el-form-item label="请假类型" prop="type">
32 19 <el-select v-model="queryParams.type" placeholder="请选择请假类型" clearable size="small">
33   - <el-option label="请选择字典生成" value=""/>
34   - </el-select>
35   - </el-form-item>
36   - <el-form-item label="审批状态" prop="status">
37   - <el-select v-model="queryParams.status" placeholder="请选择审批状态" clearable size="small">
38   - <el-option label="审核中" value="0"/>
39   - <el-option label="审核通过" value="1"/>
40   - <el-option label="被驳回" value="2"/>
  20 + <el-option label="事假" value="事假"/>
  21 + <el-option label="病假" value="病假"/>
  22 + <el-option label="年假" value="年假"/>
  23 + <el-option label="婚假" value="婚假"/>
  24 + <el-option label="产假" value="产假"/>
  25 + <el-option label="丧假" value="丧假"/>
  26 + <el-option label="探亲假" value="探亲假"/>
  27 + <el-option label="护理假" value="护理假"/>
41 28 </el-select>
42 29 </el-form-item>
43 30 <el-form-item>
... ... @@ -57,17 +44,17 @@
57 44 >新增
58 45 </el-button>
59 46 </el-col>
60   - <el-col :span="1.5">
61   - <el-button
62   - type="success"
63   - icon="el-icon-edit"
64   - size="mini"
65   - :disabled="single"
66   - @click="handleUpdate"
67   - v-hasPermi="['office:leaveApplication:edit']"
68   - >修改
69   - </el-button>
70   - </el-col>
  47 +<!-- <el-col :span="1.5">-->
  48 +<!-- <el-button-->
  49 +<!-- type="success"-->
  50 +<!-- icon="el-icon-edit"-->
  51 +<!-- size="mini"-->
  52 +<!-- :disabled="single"-->
  53 +<!-- @click="handleUpdate"-->
  54 +<!-- v-hasPermi="['office:leaveApplication:edit']"-->
  55 +<!-- >修改-->
  56 +<!-- </el-button>-->
  57 +<!-- </el-col>-->
71 58 <!-- <el-col :span="1.5">-->
72 59 <!-- <el-button-->
73 60 <!-- type="danger"-->
... ...
trash-ui/src/views/office/logistics/articleRequest.vue
1 1 <template>
2   - <logistics :type="1"/>
  2 + <logistics :type="2"/>
3 3 </template>
4 4  
5 5 <script>
... ... @@ -7,7 +7,7 @@
7 7 import logistics from "./index";
8 8  
9 9 export default {
10   - name: "goods",
  10 + name: "articleRequest",
11 11 components: {
12 12 logistics
13 13 },
... ...
trash-ui/src/views/office/logistics/index.vue
... ... @@ -2,18 +2,19 @@
2 2 <div class="app-container">
3 3 <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="105px">
4 4 <el-form-item label="申请部门" prop="deptId">
5   - <el-select v-model="queryParams.deptId" placeholder="请输入申请部门" clearable size="small">
6   - <el-option label="部门1" value="1" />
7   - <el-option label="部门2" value="2" />
  5 + <el-select v-model="queryParams.deptId" placeholder="请输入申请部门" style="width: 100%">
  6 + <el-option label="全部" value=""/>
  7 + <el-option v-for="item in depts" :label="item.name" :value="item.code" :key="item.code"/>
8 8 </el-select>
9 9 </el-form-item>
10   - <el-form-item label="用章类型" prop="sealType">
  10 + <el-form-item label="用章类型" prop="sealType" v-if="type==0">
11 11 <el-select v-model="queryParams.sealType" placeholder="请选择用章类型" clearable size="small">
12   - <el-option label="用章类型1" value="用章类型1" />
13   - <el-option label="用章类型2" value="用章类型2" />
  12 + <el-option label="党委用章" value="党委用章"/>
  13 + <el-option label="行政用章" value="行政用章"/>
  14 + <el-option label="工会用章" value="工会用章"/>
14 15 </el-select>
15 16 </el-form-item>
16   - <el-form-item label="物品申请人" prop="staff">
  17 + <el-form-item label="物品申请人" prop="staff" v-if="type!=0">
17 18 <el-input
18 19 v-model="queryParams.staff"
19 20 placeholder="请输入申请人"
... ... @@ -22,15 +23,15 @@
22 23 @keyup.enter.native="handleQuery"
23 24 />
24 25 </el-form-item>
25   - <el-form-item label="物品申请日期" prop="useDate">
  26 + <el-form-item label="物品申请日期" prop="useDate" v-if="type!=0">
26 27 <el-date-picker clearable size="small" style="width: 200px"
27   - v-model="queryParams.useDate"
28   - type="date"
29   - value-format="yyyy-MM-dd"
30   - placeholder="选择申请日期">
  28 + v-model="queryParams.useDate"
  29 + type="date"
  30 + value-format="yyyy-MM-dd"
  31 + placeholder="选择申请日期">
31 32 </el-date-picker>
32 33 </el-form-item>
33   - <el-form-item label="物品名称" prop="goodsName">
  34 + <el-form-item label="物品名称" prop="goodsName" v-if="type!=0">
34 35 <el-input
35 36 v-model="queryParams.goodsName"
36 37 placeholder="请输入物品名称"
... ... @@ -53,28 +54,30 @@
53 54 size="mini"
54 55 @click="handleAdd"
55 56 v-hasPermi="['office:logistics:add']"
56   - >新增</el-button>
57   - </el-col>
58   - <el-col :span="1.5">
59   - <el-button
60   - type="success"
61   - icon="el-icon-edit"
62   - size="mini"
63   - :disabled="single"
64   - @click="handleUpdate"
65   - v-hasPermi="['office:logistics:edit']"
66   - >修改</el-button>
67   - </el-col>
68   - <el-col :span="1.5">
69   - <el-button
70   - type="danger"
71   - icon="el-icon-delete"
72   - size="mini"
73   - :disabled="multiple"
74   - @click="handleDelete"
75   - v-hasPermi="['office:logistics:remove']"
76   - >删除</el-button>
  57 + >新增
  58 + </el-button>
77 59 </el-col>
  60 +<!-- <el-col :span="1.5">-->
  61 +<!-- <el-button-->
  62 +<!-- type="success"-->
  63 +<!-- icon="el-icon-edit"-->
  64 +<!-- size="mini"-->
  65 +<!-- :disabled="single"-->
  66 +<!-- @click="handleUpdate"-->
  67 +<!-- v-hasPermi="['office:logistics:edit']"-->
  68 +<!-- >修改-->
  69 +<!-- </el-button>-->
  70 +<!-- </el-col>-->
  71 + <!-- <el-col :span="1.5">-->
  72 + <!-- <el-button-->
  73 + <!-- type="danger"-->
  74 + <!-- icon="el-icon-delete"-->
  75 + <!-- size="mini"-->
  76 + <!-- :disabled="multiple"-->
  77 + <!-- @click="handleDelete"-->
  78 + <!-- v-hasPermi="['office:logistics:remove']"-->
  79 + <!-- >删除</el-button>-->
  80 + <!-- </el-col>-->
78 81 <el-col :span="1.5">
79 82 <el-button
80 83 type="warning"
... ... @@ -82,64 +85,73 @@
82 85 size="mini"
83 86 @click="handleExport"
84 87 v-hasPermi="['office:logistics:export']"
85   - >导出</el-button>
  88 + >导出
  89 + </el-button>
86 90 </el-col>
87   - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  91 + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
88 92 </el-row>
89 93  
90 94 <el-table v-loading="loading" :data="logisticsList" @selection-change="handleSelectionChange">
91   - <el-table-column type="selection" width="55" align="center" />
92   - <el-table-column label="申请类型" align="center" prop="type" />
93   - <el-table-column label="申请部门" align="center" prop="deptId" />
  95 + <el-table-column type="selection" width="55" align="center"/>
  96 + <el-table-column label="申请部门" align="center" prop="deptId">
  97 + <template slot-scope="scope">
  98 + <span>{{ parseDept(scope.row.deptId) }}</span>
  99 + </template>
  100 + </el-table-column>
94 101 <!-- 用章申请 -->
95   - <el-table-column label="用章申请" align="center">
96   - <el-table-column label="用章类型" align="center" prop="sealType" />
97   - <el-table-column label="更新时间" align="center" prop="sealUpdateTime" width="180">
98   - <template slot-scope="scope">
99   - <span>{{ parseTime(scope.row.sealUpdateTime, '{y}-{m}-{d}') }}</span>
100   - </template>
101   - </el-table-column>
102   - <el-table-column label="结束时间" align="center" prop="sealEndTime" width="180">
103   - <template slot-scope="scope">
104   - <span>{{ parseTime(scope.row.sealEndTime, '{y}-{m}-{d}') }}</span>
105   - </template>
106   - </el-table-column>
107   - <el-table-column label="用途" align="center" prop="purpose" />
  102 + <el-table-column label="用章类型" align="center" prop="sealType" v-if="type==0"/>
  103 + <el-table-column label="更新时间" align="center" prop="sealUpdateTime" width="180" v-if="type==0">
  104 + <template slot-scope="scope">
  105 + <span>{{ parseTime(scope.row.sealUpdateTime, '{y}-{m}-{d}') }}</span>
  106 + </template>
  107 + </el-table-column>
  108 + <el-table-column label="结束时间" align="center" prop="sealEndTime" width="180" v-if="type==0">
  109 + <template slot-scope="scope">
  110 + <span>{{ parseTime(scope.row.sealEndTime, '{y}-{m}-{d}') }}</span>
  111 + </template>
108 112 </el-table-column>
  113 + <el-table-column label="用途" align="center" prop="purpose" v-if="type==0"/>
109 114 <!-- 物品申请或物品采购申请 -->
110   - <el-table-column label="物品申请或物品采购申请" align="center">
111   - <el-table-column label="申请人" align="center" prop="staff" />
112   - <el-table-column label="申请日期" align="center" prop="useDate" width="180">
113   - <template slot-scope="scope">
114   - <span>{{ parseTime(scope.row.useDate, '{y}-{m}-{d}') }}</span>
115   - </template>
116   - </el-table-column>
117   - <el-table-column label="物品名称" align="center" prop="goodsName" />
118   - <el-table-column label="数量" align="center" prop="quantity" />
  115 + <el-table-column label="申请人" align="center" prop="staff" v-if="type!=0"/>
  116 + <el-table-column label="申请日期" align="center" prop="useDate" width="180" v-if="type!=0">
  117 + <template slot-scope="scope">
  118 + <span>{{ parseTime(scope.row.useDate, '{y}-{m}-{d}') }}</span>
  119 + </template>
  120 + </el-table-column>
  121 + <el-table-column label="物品名称" align="center" prop="goodsName" v-if="type!=0"/>
  122 + <el-table-column label="数量" align="center" prop="quantity" v-if="type!=0"/>
  123 + <el-table-column label="审批状态" align="center">
  124 + <template slot-scope="scope">
  125 + <span>{{parseStatus(scope.row.status)}}</span>
  126 + </template>
119 127 </el-table-column>
120 128 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
121 129 <template slot-scope="scope">
122 130 <el-button
123 131 size="mini"
124 132 type="text"
125   - icon="el-icon-edit"
  133 + icon="el-icon-view"
126 134 @click="handleInfo(scope.row)"
127 135 v-hasPermi="['office:logistics:edit']"
128   - >详情</el-button>
  136 + >详情
  137 + </el-button>
129 138 <el-button
130 139 size="mini"
131 140 type="text"
132 141 icon="el-icon-edit"
133 142 @click="handleUpdate(scope.row)"
  143 + v-if="scope.row.status==2"
134 144 v-hasPermi="['office:logistics:edit']"
135   - >修改</el-button>
136   - <el-button
137   - size="mini"
138   - type="text"
139   - icon="el-icon-delete"
140   - @click="handleDelete(scope.row)"
141   - v-hasPermi="['office:logistics:remove']"
142   - >删除</el-button>
  145 + >修改
  146 + </el-button>
  147 +<!-- <el-button-->
  148 +<!-- size="mini"-->
  149 +<!-- type="text"-->
  150 +<!-- icon="el-icon-delete"-->
  151 +<!-- @click="handleDelete(scope.row)"-->
  152 +<!-- v-hasPermi="['office:logistics:remove']"-->
  153 +<!-- >删除-->
  154 +<!-- </el-button>-->
143 155 </template>
144 156 </el-table-column>
145 157 </el-table>
... ... @@ -153,61 +165,54 @@
153 165 />
154 166  
155 167 <!-- 添加或修改后勤管理对话框 -->
156   - <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
  168 + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false">
157 169 <el-form ref="form" :model="form" :rules="rules" label-width="80px">
158   - <el-form-item label="申请类型" prop="type">
159   - <el-select v-model="form.type" placeholder="请选择申请类型" style="width: 100%" @change="changeType()">
160   - <el-option label="用章申请" value="用章申请" />
161   - <el-option label="物品申请" value="物品申请" />
162   - <el-option label="物品采购申请" value="物品采购申请" />
163   - </el-select>
164   - </el-form-item>
165 170 <el-form-item label="申请部门" prop="deptId">
166 171 <el-select v-model="form.deptId" placeholder="请输入申请部门" style="width: 100%">
167   - <el-option label="部门1" value="1" />
168   - <el-option label="部门2" value="2" />
  172 + <el-option v-for="item in depts" :label="item.name" :value="item.code" :key="item.code"/>
169 173 </el-select>
170 174 </el-form-item>
171   - <el-form-item label="用章类型" prop="sealType" v-if="form.type=='用章申请'">
  175 + <el-form-item label="用章类型" prop="sealType" v-if="type==0">
172 176 <el-select v-model="form.sealType" placeholder="请选择用章类型" style="width: 100%">
173   - <el-option label="用章类型1" value="用章类型1" />
174   - <el-option label="用章类型2" value="用章类型2" />
  177 + <el-option label="党委用章" value="党委用章"/>
  178 + <el-option label="行政用章" value="行政用章"/>
  179 + <el-option label="工会用章" value="工会用章"/>
175 180 </el-select>
176 181 </el-form-item>
177   - <el-form-item label="更新时间" prop="sealUpdateTime" v-if="form.type=='用章申请'">
  182 + <el-form-item label="更新时间" prop="sealUpdateTime" v-if="type==0">
178 183 <el-date-picker clearable size="small" style="width: 100%"
179   - v-model="form.sealUpdateTime"
180   - type="date"
181   - value-format="yyyy-MM-dd"
182   - placeholder="选择更新时间">
  184 + v-model="form.sealUpdateTime"
  185 + type="date"
  186 + value-format="yyyy-MM-dd"
  187 + placeholder="选择更新时间">
183 188 </el-date-picker>
184 189 </el-form-item>
185   - <el-form-item label="结束时间" prop="sealEndTime" v-if="form.type=='用章申请'">
  190 + <el-form-item label="结束时间" prop="sealEndTime" v-if="type==0">
186 191 <el-date-picker clearable size="small" style="width: 100%"
187   - v-model="form.sealEndTime"
188   - type="date"
189   - value-format="yyyy-MM-dd"
190   - placeholder="选择结束时间">
  192 + v-model="form.sealEndTime"
  193 + type="date"
  194 + value-format="yyyy-MM-dd"
  195 + placeholder="选择结束时间">
191 196 </el-date-picker>
192 197 </el-form-item>
193   - <el-form-item label="用途" prop="purpose" v-if="form.type=='用章申请'">
  198 + <el-form-item label="用途" prop="purpose" v-if="type==0">
194 199 <el-input v-model="form.purpose" type="textarea" placeholder="请输入内容" :row="4"/>
195 200 </el-form-item>
196   - <el-form-item label="申请人" prop="staff" v-if="form.type!='用章申请' && form.type!=null">
197   - <el-input v-model="form.staff" placeholder="请输入申请人" />
  201 + <el-form-item label="申请人" prop="staff" v-if="type!=0">
  202 + <el-input v-model="form.staff" placeholder="请输入申请人"/>
198 203 </el-form-item>
199   - <el-form-item label="申请日期" prop="useDate" v-if="form.type!='用章申请' && form.type!=null">
  204 + <el-form-item label="申请日期" prop="useDate" v-if="type!=0">
200 205 <el-date-picker clearable size="small" style="width: 100%"
201   - v-model="form.useDate"
202   - type="date"
203   - value-format="yyyy-MM-dd"
204   - placeholder="选择申请日期">
  206 + v-model="form.useDate"
  207 + type="date"
  208 + value-format="yyyy-MM-dd"
  209 + placeholder="选择申请日期">
205 210 </el-date-picker>
206 211 </el-form-item>
207   - <el-form-item label="物品名称" prop="goodsName" v-if="form.type!='用章申请' && form.type!=null">
208   - <el-input v-model="form.goodsName" placeholder="请输入物品名称" />
  212 + <el-form-item label="物品名称" prop="goodsName" v-if="type!=0">
  213 + <el-input v-model="form.goodsName" placeholder="请输入物品名称"/>
209 214 </el-form-item>
210   - <el-form-item label="数量" prop="quantity" v-if="form.type!='用章申请' && form.type!=null">
  215 + <el-form-item label="数量" prop="quantity" v-if="type!=0">
211 216 <el-input v-model="form.quantity" placeholder="请输入数量"
212 217 @input="form.quantity=form.quantity.replace(/[^0-9]/g,'');"
213 218 />
... ... @@ -218,7 +223,7 @@
218 223 <el-button @click="cancel">取 消</el-button>
219 224 </div>
220 225 </el-dialog>
221   - <el-dialog :title="title" :visible.sync="openInfo" width="500px" append-to-body>
  226 + <el-dialog :title="title" :visible.sync="openInfo" width="500px" append-to-body :close-on-click-modal="false">
222 227 <logisticsInfo :idInfo="idInfo" @refresh="getList" v-if="openInfo"/>
223 228 <div slot="footer" class="dialog-footer">
224 229 <el-button @click="cancel">取 消</el-button>
... ... @@ -228,8 +233,17 @@
228 233 </template>
229 234  
230 235 <script>
231   -import { listLogistics, getLogistics, delLogistics, addLogistics, updateLogistics, exportLogistics } from "@/api/office/logistics";
  236 +import {
  237 + listLogistics,
  238 + getLogistics,
  239 + delLogistics,
  240 + addLogistics,
  241 + updateLogistics,
  242 + exportLogistics
  243 +} from "@/api/office/logistics";
232 244 import logisticsInfo from "./logisticsInfo";
  245 +import {getDict} from "@/api/dict";
  246 +
233 247 export default {
234 248 name: "Logistics",
235 249 props: {
... ... @@ -264,7 +278,7 @@ export default {
264 278 queryParams: {
265 279 pageNum: 1,
266 280 pageSize: 10,
267   - type: null,
  281 + type: this.type,
268 282 deptId: null,
269 283 sealType: null,
270 284 staff: null,
... ... @@ -275,42 +289,44 @@ export default {
275 289 form: {},
276 290 // 表单校验
277 291 rules: {
278   - type: [
279   - { required: true, message: "必填", trigger: "blur" }
280   - ],
281 292 deptId: [
282   - { required: true, message: "必填", trigger: "blur" }
  293 + {required: true, message: "必填", trigger: "blur"}
283 294 ],
284 295 sealType: [
285   - { required: true, message: "必填", trigger: "change" }
  296 + {required: true, message: "必填", trigger: "change"}
286 297 ],
287 298 sealUpdateTime: [
288   - { required: true, message: "必填", trigger: "blur" }
  299 + {required: true, message: "必填", trigger: "blur"}
289 300 ],
290 301 sealEndTime: [
291   - { required: true, message: "必填", trigger: "blur" }
  302 + {required: true, message: "必填", trigger: "blur"}
292 303 ],
293 304 purpose: [
294   - { required: true, message: "必填", trigger: "blur" }
  305 + {required: true, message: "必填", trigger: "blur"}
295 306 ],
296 307 staff: [
297   - { required: true, message: "必填", trigger: "blur" }
  308 + {required: true, message: "必填", trigger: "blur"}
298 309 ],
299 310 useDate: [
300   - { required: true, message: "必填", trigger: "blur" }
  311 + {required: true, message: "必填", trigger: "blur"}
301 312 ],
302 313 goodsName: [
303   - { required: true, message: "必填", trigger: "blur" }
  314 + {required: true, message: "必填", trigger: "blur"}
304 315 ],
305 316 quantity: [
306   - { required: true, message: "必填", trigger: "blur" }
  317 + {required: true, message: "必填", trigger: "blur"}
307 318 ],
308 319 },
309   - openInfo:false,
310   - idInfo:null,
  320 + openInfo: false,
  321 + idInfo: null,
  322 + depts:[]
311 323 };
312 324 },
313 325 created() {
  326 + let dep = {type:"CSUserDepartmentType"};
  327 + getDict(dep).then(res=>{
  328 + this.depts = res.result;
  329 + });
314 330 this.getList();
315 331 },
316 332 methods: {
... ... @@ -332,8 +348,6 @@ export default {
332 348 // 表单重置
333 349 reset() {
334 350 this.form = {
335   - id: null,
336   - type: null,
337 351 deptId: null,
338 352 sealType: null,
339 353 sealUpdateTime: null,
... ... @@ -354,6 +368,7 @@ export default {
354 368 /** 搜索按钮操作 */
355 369 handleQuery() {
356 370 this.queryParams.pageNum = 1;
  371 + this.queryParams.type = this.type;
357 372 this.getList();
358 373 },
359 374 /** 重置按钮操作 */
... ... @@ -364,7 +379,7 @@ export default {
364 379 // 多选框选中数据
365 380 handleSelectionChange(selection) {
366 381 this.ids = selection.map(item => item.id)
367   - this.single = selection.length!==1
  382 + this.single = selection.length !== 1
368 383 this.multiple = !selection.length
369 384 },
370 385 /** 新增按钮操作 */
... ... @@ -374,7 +389,7 @@ export default {
374 389 this.title = "添加后勤管理";
375 390 },
376 391 /** 查看按钮操作 */
377   - handleInfo(row){
  392 + handleInfo(row) {
378 393 this.idInfo = row.id;
379 394 this.openInfo = true;
380 395 this.title = "查看后勤管理";
... ... @@ -391,6 +406,7 @@ export default {
391 406 },
392 407 /** 提交按钮 */
393 408 submitForm() {
  409 + this.form.type = this.type;
394 410 this.$refs["form"].validate(valid => {
395 411 if (valid) {
396 412 if (this.form.id != null) {
... ... @@ -413,57 +429,65 @@ export default {
413 429 handleDelete(row) {
414 430 const ids = row.id || this.ids;
415 431 this.$confirm('是否确认删除后勤管理编号为"' + ids + '"的数据项?', "警告", {
416   - confirmButtonText: "确定",
417   - cancelButtonText: "取消",
418   - type: "warning"
419   - }).then(function() {
420   - return delLogistics(ids);
421   - }).then(() => {
422   - this.getList();
423   - this.msgSuccess("删除成功");
424   - })
  432 + confirmButtonText: "确定",
  433 + cancelButtonText: "取消",
  434 + type: "warning"
  435 + }).then(function () {
  436 + return delLogistics(ids);
  437 + }).then(() => {
  438 + this.getList();
  439 + this.msgSuccess("删除成功");
  440 + })
425 441 },
426 442 /** 导出按钮操作 */
427 443 handleExport() {
428 444 const queryParams = this.queryParams;
429 445 this.$confirm('是否确认导出所有后勤管理数据项?', "警告", {
430   - confirmButtonText: "确定",
431   - cancelButtonText: "取消",
432   - type: "warning"
433   - }).then(function() {
434   - return exportLogistics(queryParams);
435   - }).then(response => {
436   - this.download(response.message);
437   - })
  446 + confirmButtonText: "确定",
  447 + cancelButtonText: "取消",
  448 + type: "warning"
  449 + }).then(function () {
  450 + return exportLogistics(queryParams);
  451 + }).then(response => {
  452 + this.download(response.msg);
  453 + })
438 454 },
439   - changeType(){
440   - if(this.form.type=="用章申请"){
  455 + changeType() {
  456 + if (this.type == 0) {
441 457 this.form.staff = null;
442 458 this.form.useDate = null;
443 459 this.form.goodsName = null;
444 460 this.form.quantity = null;
445   - this.rules.sealType[0].required=true;
446   - this.rules.sealUpdateTime[0].required=true;
447   - this.rules.sealEndTime[0].required=true;
448   - this.rules.purpose[0].required=true;
449   - this.rules.staff[0].required=false;
450   - this.rules.useDate[0].required=false;
451   - this.rules.goodsName[0].required=false;
452   - this.rules.quantity[0].required=false;
453   - }else{
  461 + this.rules.sealType[0].required = true;
  462 + this.rules.sealUpdateTime[0].required = true;
  463 + this.rules.sealEndTime[0].required = true;
  464 + this.rules.purpose[0].required = true;
  465 + this.rules.staff[0].required = false;
  466 + this.rules.useDate[0].required = false;
  467 + this.rules.goodsName[0].required = false;
  468 + this.rules.quantity[0].required = false;
  469 + } else {
454 470 this.form.sealType = null;
455 471 this.form.sealUpdateTime = null;
456 472 this.form.sealEndTime = null;
457 473 this.form.purpose = null;
458   - this.rules.sealType[0].required=false;
459   - this.rules.sealUpdateTime[0].required=false;
460   - this.rules.sealEndTime[0].required=false;
461   - this.rules.purpose[0].required=false;
462   - this.rules.staff[0].required=true;
463   - this.rules.useDate[0].required=true;
464   - this.rules.goodsName[0].required=true;
465   - this.rules.quantity[0].required=true;
  474 + this.rules.sealType[0].required = false;
  475 + this.rules.sealUpdateTime[0].required = false;
  476 + this.rules.sealEndTime[0].required = false;
  477 + this.rules.purpose[0].required = false;
  478 + this.rules.staff[0].required = true;
  479 + this.rules.useDate[0].required = true;
  480 + this.rules.goodsName[0].required = true;
  481 + this.rules.quantity[0].required = true;
466 482 }
  483 + },
  484 + parseDept(deptId){
  485 + let dept = this.depts.filter(item=>{
  486 + if(item.code == deptId){
  487 + return item;
  488 + }
  489 + });
  490 + return dept[0].name
467 491 }
468 492 }
469 493 };
... ...
trash-ui/src/views/office/logistics/logisticsInfo.vue
1 1 <template>
2   - <el-form ref="form" :model="form" :rules="rules" label-width="80px">
3   - <el-form-item label="申请类型" prop="type">
4   - <el-select v-model="form.type" placeholder="请选择申请类型" style="width: 100%">
5   - <el-option label="用章申请" value="用章申请" />
6   - <el-option label="物品申请" value="物品申请" />
7   - <el-option label="物品采购申请" value="物品采购申请" />
8   - </el-select>
9   - </el-form-item>
  2 + <el-form ref="form" :model="form" label-width="80px">
10 3 <el-form-item label="申请部门" prop="deptId">
11   - <el-select v-model="form.deptId" placeholder="请输入申请部门" style="width: 100%">
12   - <el-option label="部门1" value="1" />
13   - <el-option label="部门2" value="2" />
  4 + <el-select v-model="form.deptId" placeholder="请输入申请部门" style="width: 100%" :disabled="true">
  5 + <el-option v-for="item in depts" :label="item.name" :value="item.code" :key="item.code"/>
14 6 </el-select>
15 7 </el-form-item>
16   - <el-form-item label="用章类型" prop="sealType" v-if="form.type=='用章申请'">
17   - <el-select v-model="form.sealType" placeholder="请选择用章类型" style="width: 100%">
18   - <el-option label="用章类型1" value="用章类型1" />
19   - <el-option label="用章类型2" value="用章类型2" />
  8 + <el-form-item label="用章类型" prop="sealType" v-if="type==0">
  9 + <el-select v-model="form.sealType" placeholder="请选择用章类型" style="width: 100%" :disabled="true">
  10 + <el-option label="党委用章" value="党委用章"/>
  11 + <el-option label="行政用章" value="行政用章"/>
  12 + <el-option label="工会用章" value="工会用章"/>
20 13 </el-select>
21 14 </el-form-item>
22   - <el-form-item label="更新时间" prop="sealUpdateTime" v-if="form.type=='用章申请'">
  15 + <el-form-item label="更新时间" prop="sealUpdateTime" v-if="type==0">
23 16 <el-date-picker clearable size="small" style="width: 100%"
24 17 v-model="form.sealUpdateTime"
25 18 type="date"
  19 + :disabled="true"
26 20 value-format="yyyy-MM-dd"
27 21 placeholder="选择更新时间">
28 22 </el-date-picker>
29 23 </el-form-item>
30   - <el-form-item label="结束时间" prop="sealEndTime" v-if="form.type=='用章申请'">
  24 + <el-form-item label="结束时间" prop="sealEndTime" v-if="type==0">
31 25 <el-date-picker clearable size="small" style="width: 100%"
32 26 v-model="form.sealEndTime"
33 27 type="date"
34 28 value-format="yyyy-MM-dd"
  29 + :disabled="true"
35 30 placeholder="选择结束时间">
36 31 </el-date-picker>
37 32 </el-form-item>
38   - <el-form-item label="用途" prop="purpose" v-if="form.type=='用章申请'">
39   - <el-input v-model="form.purpose" type="textarea" placeholder="请输入内容" :row="4"/>
  33 + <el-form-item label="用途" prop="purpose" v-if="type==0">
  34 + <el-input v-model="form.purpose" type="textarea" placeholder="请输入内容" :row="4" :disabled="true"/>
40 35 </el-form-item>
41   - <el-form-item label="申请人" prop="staff" v-if="form.type!='用章申请' && form.type!=null">
42   - <el-input v-model="form.staff" placeholder="请输入申请人" />
  36 + <el-form-item label="申请人" prop="staff" v-if="type!=0">
  37 + <el-input v-model="form.staff" placeholder="请输入申请人" :disabled="true"/>
43 38 </el-form-item>
44   - <el-form-item label="申请日期" prop="useDate" v-if="form.type!='用章申请' && form.type!=null">
  39 + <el-form-item label="申请日期" prop="useDate" v-if="type!=0">
45 40 <el-date-picker clearable size="small" style="width: 100%"
46 41 v-model="form.useDate"
47 42 type="date"
48 43 value-format="yyyy-MM-dd"
  44 + :disabled="true"
49 45 placeholder="选择申请日期">
50 46 </el-date-picker>
51 47 </el-form-item>
52   - <el-form-item label="物品名称" prop="goodsName" v-if="form.type!='用章申请' && form.type!=null">
53   - <el-input v-model="form.goodsName" placeholder="请输入物品名称" />
  48 + <el-form-item label="物品名称" prop="goodsName" v-if="type!=0">
  49 + <el-input v-model="form.goodsName" placeholder="请输入物品名称" :disabled="true"/>
54 50 </el-form-item>
55   - <el-form-item label="数量" prop="quantity" v-if="form.type!='用章申请' && form.type!=null">
56   - <el-input v-model="form.quantity" placeholder="请输入数量"
57   - @input="form.quantity=form.quantity.replace(/[^0-9]/g,'');"
58   - />
  51 + <el-form-item label="数量" prop="quantity" v-if="type!=0">
  52 + <el-input v-model="form.quantity"
  53 + placeholder="请输入数量"
  54 + :disabled="true"
  55 + @input="form.quantity=form.quantity.replace(/[^0-9]/g,'');"/>
59 56 </el-form-item>
60 57 </el-form>
61 58 </template>
62 59  
63 60 <script>
64 61 import {getLogistics} from "@/api/office/logistics";
  62 +import {getDict} from "@/api/dict";
65 63 export default {
66 64 name: "logisticsInfo",
67 65 props: {
... ... @@ -74,16 +72,23 @@ export default {
74 72 },
75 73 data() {
76 74 return {
77   - form: {}
  75 + form: {},
  76 + type:null,
  77 + depts:[]
78 78 }
79 79 },
80 80 created() {
  81 + let dep = {type:"CSUserDepartmentType"};
  82 + getDict(dep).then(res=>{
  83 + this.depts = res.result;
  84 + });
81 85 this.init();
82 86 },
83 87 methods:{
84 88 init(){
85 89 getLogistics(this.idInfo).then(response => {
86 90 this.form = response.data
  91 + this.type = response.data.type;
87 92 });
88 93 }
89 94 }
... ...
trash-ui/src/views/office/management/contractInfo.vue
... ... @@ -29,8 +29,8 @@
29 29 <el-form-item label="开始时间" prop="contractBeginDate">
30 30 <el-date-picker clearable size="small" style="width: 100%;"
31 31 v-model="form.contractBeginDate"
32   - type="date"
33   - value-format="yyyy-MM-dd"
  32 + type="datetime"
  33 + value-format="yyyy-MM-dd HH:mm:ss"
34 34 :disabled="true"
35 35 placeholder="选择合同开始时间">
36 36 </el-date-picker>
... ... @@ -40,8 +40,8 @@
40 40 <el-form-item label="结束时间" prop="contractEndDate">
41 41 <el-date-picker clearable size="small" style="width: 100%;"
42 42 v-model="form.contractEndDate"
43   - type="date"
44   - value-format="yyyy-MM-dd"
  43 + type="datetime"
  44 + value-format="yyyy-MM-dd HH:mm:ss"
45 45 :disabled="true"
46 46 placeholder="选择合同结束时间">
47 47 </el-date-picker>
... ... @@ -60,20 +60,30 @@
60 60 <el-col :span="11">
61 61 <el-form-item label="合同状态" prop="contractState">
62 62 <el-select v-model="form.contractState" placeholder="请选择状态" style="width: 100%;" :disabled="true">
63   - <el-option label="正常" value="正常"/>
64   - <el-option label="到期" value="到期"/>
65   - <el-option label="终止" value="终止"/>
  63 + <el-option label="已签订" value="已签订"/>
  64 + <el-option label="未签订" value="未签订"/>
  65 + <el-option label="已过期" value="已过期"/>
  66 + <el-option label="已终止" value="已终止"/>
  67 + <el-option label="已完结" value="已完结"/>
66 68 </el-select>
67 69 </el-form-item>
68 70 </el-col>
69 71 </el-row>
70 72 <el-row :gutter="2">
71 73 <el-col :span="11">
72   - <el-form-item label="责任科室" prop="deptname">
73   - <el-select v-model="form.deptname" placeholder="请选择责任科室" style="width: 100%;" :disabled="true">
74   - <el-option label="科室1" value="科室1"/>
75   - <el-option label="科室2" value="科室2"/>
76   - <el-option label="科室3" value="科室3"/>
  74 + <el-form-item label="合同签订时间" prop="signTime">
  75 + <el-date-picker clearable size="small" style="width: 100%;"
  76 + v-model="form.signTime"
  77 + type="datetime"
  78 + value-format="yyyy-MM-dd HH:mm:ss"
  79 + :disabled="true"
  80 + placeholder="选择合同签订时间">
  81 + </el-date-picker>
  82 + </el-form-item>
  83 + </el-col>
  84 + <el-col :span="11">
  85 + <el-form-item label="责任部门" prop="deptid">
  86 + <el-select v-model="form.deptName" placeholder="请选择科室" style="width: 100%;" :disabled="true">
77 87 </el-select>
78 88 </el-form-item>
79 89 </el-col>
... ...
trash-ui/src/views/office/management/index.vue
1 1 <template>
2 2 <div class="app-container">
3 3 <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="105px">
4   - <el-form-item label="合同编号" prop="contractNumber">
5   - <el-input
6   - v-model="queryParams.contractNumber"
7   - placeholder="请输入合同编号"
8   - clearable
9   - size="small"
10   - @keyup.enter.native="handleQuery"
11   - />
12   - </el-form-item>
13 4 <el-form-item label="合同名称" prop="contractName">
14 5 <el-input
15 6 v-model="queryParams.contractName"
... ... @@ -19,52 +10,14 @@
19 10 @keyup.enter.native="handleQuery"
20 11 />
21 12 </el-form-item>
22   - <el-form-item label="甲方" prop="firstParty">
23   - <el-input
24   - v-model="queryParams.firstParty"
25   - placeholder="请输入甲方"
26   - clearable
27   - size="small"
28   - @keyup.enter.native="handleQuery"
29   - />
30   - </el-form-item>
31   - <el-form-item label="乙方" prop="secondParty">
32   - <el-input
33   - v-model="queryParams.secondParty"
34   - placeholder="请输入乙方"
35   - clearable
36   - size="small"
37   - @keyup.enter.native="handleQuery"
38   - />
39   - </el-form-item>
40   - <el-form-item label="合同开始时间" prop="contractBeginDate">
41   - <el-date-picker clearable size="small" style="width: 200px"
42   - v-model="queryParams.contractBeginDate"
43   - type="date"
44   - value-format="yyyy-MM-dd"
45   - placeholder="选择合同开始时间">
46   - </el-date-picker>
47   - </el-form-item>
48   - <el-form-item label="合同结束时间" prop="contractEndDate">
49   - <el-date-picker clearable size="small" style="width: 200px"
50   - v-model="queryParams.contractEndDate"
51   - type="date"
52   - value-format="yyyy-MM-dd"
53   - placeholder="选择合同结束时间">
54   - </el-date-picker>
55   - </el-form-item>
56 13 <el-form-item label="合同状态" prop="contractState">
57   - <el-select v-model="form.contractState" placeholder="请选择状态" style="width: 100%;">
58   - <el-option label="正常" value="正常"/>
59   - <el-option label="到期" value="到期"/>
60   - <el-option label="终止" value="终止"/>
61   - </el-select>
62   - </el-form-item>
63   - <el-form-item label="责任科室" prop="deptname">
64   - <el-select v-model="queryParams.deptname" placeholder="请选择责任科室" style="width: 100%;">
65   - <el-option label="科室1" value="科室1"/>
66   - <el-option label="科室2" value="科室2"/>
67   - <el-option label="科室3" value="科室3"/>
  14 + <el-select v-model="queryParams.contractState" placeholder="请选择状态" style="width: 100%;">
  15 + <el-option label="全部" value=""></el-option>
  16 + <el-option label="已签订" value="已签订"/>
  17 + <el-option label="未签订" value="未签订"/>
  18 + <el-option label="已过期" value="已过期"/>
  19 + <el-option label="已终止" value="已终止"/>
  20 + <el-option label="已完结" value="已完结"/>
68 21 </el-select>
69 22 </el-form-item>
70 23 <el-form-item>
... ... @@ -121,23 +74,16 @@
121 74  
122 75 <el-table v-loading="loading" :data="managementList" @selection-change="handleSelectionChange">
123 76 <el-table-column type="selection" width="55" align="center"/>
124   - <el-table-column label="合同编号" align="center" prop="contractNumber"/>
125 77 <el-table-column label="合同名称" align="center" prop="contractName"/>
126   - <el-table-column label="甲方" align="center" prop="firstParty"/>
127 78 <el-table-column label="乙方" align="center" prop="secondParty"/>
128   - <el-table-column label="合同开始时间" align="center" prop="contractBeginDate" width="180">
129   - <template slot-scope="scope">
130   - <span>{{ parseTime(scope.row.contractBeginDate, '{y}-{m}-{d}') }}</span>
131   - </template>
132   - </el-table-column>
133   - <el-table-column label="合同结束时间" align="center" prop="contractEndDate" width="180">
134   - <template slot-scope="scope">
135   - <span>{{ parseTime(scope.row.contractEndDate, '{y}-{m}-{d}') }}</span>
136   - </template>
137   - </el-table-column>
  79 + <el-table-column label="责任科室" align="center" prop="deptName"/>
138 80 <el-table-column label="合同金额" align="center" prop="contractMoney"/>
139 81 <el-table-column label="合同状态" align="center" prop="contractState"/>
140   - <el-table-column label="责任科室" align="center" prop="deptname"/>
  82 +<!-- <el-table-column label="审批状态" align="center" prop="status">-->
  83 +<!-- <template slot-scope="scope">-->
  84 +<!-- <span>{{parseStatus(scope.row.status) }}</span>-->
  85 +<!-- </template>-->
  86 +<!-- </el-table-column>-->
141 87 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
142 88 <template slot-scope="scope">
143 89 <el-button
... ... @@ -154,7 +100,7 @@
154 100 icon="el-icon-edit"
155 101 @click="handleUpdate(scope.row)"
156 102 v-hasPermi="['office:management:edit']"
157   - >修改
  103 + >编辑
158 104 </el-button>
159 105 <el-button
160 106 size="mini"
... ... @@ -177,24 +123,24 @@
177 123 />
178 124  
179 125 <!-- 添加或修改合同管理对话框 -->
180   - <el-dialog :title="title" :visible.sync="open" width="850px" append-to-body :close-on-click-modal="false">
181   - <el-form ref="form" :model="form" :rules="rules" label-width="105px">
  126 + <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body :close-on-click-modal="false">
  127 + <el-form ref="form" :model="form" :rules="rules" label-width="125px">
182 128 <el-row :gutter="2">
183 129 <el-col :span="11">
184 130 <el-form-item label="合同编号" prop="contractNumber">
185   - <el-input v-model="form.contractNumber" placeholder="请输入合同编号"/>
  131 + <el-input v-model="form.contractNumber" placeholder="请输入合同编号" :maxlength="50" show-word-limit/>
186 132 </el-form-item>
187 133 </el-col>
188 134 <el-col :span="11">
189 135 <el-form-item label="合同名称" prop="contractName">
190   - <el-input v-model="form.contractName" placeholder="请输入合同名称"/>
  136 + <el-input v-model="form.contractName" placeholder="请输入合同名称" :maxlength="50" show-word-limit/>
191 137 </el-form-item>
192 138 </el-col>
193 139 </el-row>
194 140 <el-row :gutter="2">
195 141 <el-col :span="11">
196 142 <el-form-item label="甲方" prop="firstParty">
197   - <el-input v-model="form.firstParty" placeholder="请输入甲方"/>
  143 + <el-input v-model="form.firstParty" placeholder="请输入甲方" :maxlength="50" show-word-limit/>
198 144 </el-form-item>
199 145 </el-col>
200 146 <el-col :span="11">
... ... @@ -208,8 +154,8 @@
208 154 <el-form-item label="开始时间" prop="contractBeginDate">
209 155 <el-date-picker clearable size="small" style="width: 100%;"
210 156 v-model="form.contractBeginDate"
211   - type="date"
212   - value-format="yyyy-MM-dd"
  157 + type="datetime"
  158 + value-format="yyyy-MM-dd HH:mm:ss"
213 159 placeholder="选择合同开始时间">
214 160 </el-date-picker>
215 161 </el-form-item>
... ... @@ -218,8 +164,8 @@
218 164 <el-form-item label="结束时间" prop="contractEndDate">
219 165 <el-date-picker clearable size="small" style="width: 100%;"
220 166 v-model="form.contractEndDate"
221   - type="date"
222   - value-format="yyyy-MM-dd"
  167 + type="datetime"
  168 + value-format="yyyy-MM-dd HH:mm:ss"
223 169 placeholder="选择合同结束时间">
224 170 </el-date-picker>
225 171 </el-form-item>
... ... @@ -230,35 +176,48 @@
230 176 <el-form-item label="合同金额" prop="contractMoney">
231 177 <el-input v-model="form.contractMoney"
232 178 @input="form.contractMoney=form.contractMoney.replace(/[^0-9.]/g,'').replace(/^\./g, '').replace('.', 'dollar#dollar').replace(/\./g, '').replace('dollar#dollar', '.');"
  179 + :maxlength="10" show-word-limit
233 180 placeholder="请输入合同金额"/>
234 181 </el-form-item>
235 182 </el-col>
236 183 <el-col :span="11">
237 184 <el-form-item label="合同状态" prop="contractState">
238 185 <el-select v-model="form.contractState" placeholder="请选择状态" style="width: 100%;">
239   - <el-option label="正常" value="正常"/>
240   - <el-option label="到期" value="到期"/>
241   - <el-option label="终止" value="终止"/>
  186 + <el-option label="已签订" value="已签订"/>
  187 + <el-option label="未签订" value="未签订"/>
  188 + <el-option label="已过期" value="已过期"/>
  189 + <el-option label="已终止" value="已终止"/>
  190 + <el-option label="已完结" value="已完结"/>
242 191 </el-select>
243 192 </el-form-item>
244 193 </el-col>
245 194 </el-row>
246 195 <el-row :gutter="2">
247 196 <el-col :span="11">
248   - <el-form-item label="责任科室" prop="deptname">
249   - <el-select v-model="form.deptname" placeholder="请选择责任科室" style="width: 100%;">
250   - <el-option label="科室1" value="科室1"/>
251   - <el-option label="科室2" value="科室2"/>
252   - <el-option label="科室3" value="科室3"/>
  197 + <el-form-item label="合同签订时间" prop="signTime">
  198 + <el-date-picker clearable size="small" style="width: 100%;"
  199 + v-model="form.signTime"
  200 + type="datetime"
  201 + value-format="yyyy-MM-dd HH:mm:ss"
  202 + placeholder="选择合同签订时间">
  203 + </el-date-picker>
  204 + </el-form-item>
  205 + </el-col>
  206 + <el-col :span="11">
  207 + <el-form-item label="责任部门" prop="deptid">
  208 + <el-select v-model="form.deptName" placeholder="请选择科室" style="width: 100%;">
  209 + <el-option v-for="item in depts" :label="item.name" :value="item.name" :key="item.name"/>
253 210 </el-select>
254 211 </el-form-item>
255 212 </el-col>
  213 + </el-row>
  214 + <el-row>
256 215 <el-col :span="11">
257 216 <el-form-item prop="fileEntityList" label="附件">
258 217 <el-upload
259 218 ref="upload"
260 219 action=""
261   - accept=".docx,.xlsx,.ppt,.txt,.pdf,.png"
  220 + accept=".docx,.xlsx,.xls,.ppt,.rar,.zip,.doc,.pdf,.png,.jpeg,.png,.jpg"
262 221 :on-change="fileChange"
263 222 :auto-upload="false"
264 223 :show-file-list="false"
... ... @@ -319,6 +278,7 @@ import {
319 278 } from "@/api/office/management";
320 279 import FileUpload from '@/components/FileUpload';
321 280 import contractInfo from './contractInfo';
  281 +import {getDict} from "@/api/dict";
322 282  
323 283 export default {
324 284 name: "Management",
... ... @@ -358,8 +318,7 @@ export default {
358 318 contractEndDate: null,
359 319 contractMoney: null,
360 320 contractState: null,
361   - deptid: null,
362   - deptname: null,
  321 + deptName: null,
363 322 attachments: null
364 323 },
365 324 // 表单参数
... ... @@ -367,39 +326,45 @@ export default {
367 326 // 表单校验
368 327 rules: {
369 328 contractNumber: [
370   - {required: true, message: "请输入合同编号", trigger: "blur"}
  329 + {required: true, message: "必填", trigger: "blur"}
371 330 ],
372 331 contractName: [
373   - {required: true, message: "请输入合同名称", trigger: "blur"}
  332 + {required: true, message: "必填", trigger: "blur"}
374 333 ],
375 334 firstParty: [
376   - {required: true, message: "请输入甲方", trigger: "blur"}
  335 + {required: true, message: "必填", trigger: "blur"}
377 336 ],
378 337 secondParty: [
379   - {required: true, message: "请输入乙方", trigger: "blur"}
  338 + {required: true, message: "必填", trigger: "blur"}
380 339 ],
381 340 contractBeginDate: [
382   - {required: true, message: "请选择合同开始时间", trigger: "blur"}
  341 + {required: true, message: "必填", trigger: "blur"}
383 342 ],
384 343 contractEndDate: [
385   - {required: true, message: "请选择合同结束时间", trigger: "blur"}
  344 + {required: true, message: "必填", trigger: "blur"}
386 345 ],
387 346 contractMoney: [
388   - {required: true, message: "请输入合同金额", trigger: "blur"}
  347 + {required: true, message: "必填", trigger: "blur"}
389 348 ],
390 349 contractState: [
391   - {required: true, message: "请输入合同状态", trigger: "blur"}
  350 + {required: true, message: "必填", trigger: "blur"}
392 351 ],
393   - deptname: [
394   - {required: true, message: "请输入责任科室", trigger: "blur"}
  352 + deptName: [
  353 + {required: true, message: "必填", trigger: "blur"}
395 354 ],
396 355 },
397 356 fileEntityList: [],
398 357 openInfo: false,
399 358 idInfo:null,
  359 + depts:[]
400 360 };
401 361 },
402 362 created() {
  363 + let dep = {type:"CSUserDepartmentType"};
  364 +
  365 + getDict(dep).then(res=>{
  366 + this.depts = res.result;
  367 + });
403 368 this.getList();
404 369 },
405 370 methods: {
... ... @@ -430,8 +395,7 @@ export default {
430 395 contractEndDate: null,
431 396 contractMoney: null,
432 397 contractState: null,
433   - deptid: null,
434   - deptname: null,
  398 + deptName: null,
435 399 attachments: null
436 400 };
437 401 this.fileEntityList = [];
... ... @@ -463,6 +427,7 @@ export default {
463 427 /** 新增按钮操作 */
464 428 handleAdd() {
465 429 this.reset();
  430 + this.form.firstParty = "长沙市渣土事务中心";
466 431 this.open = true;
467 432 this.title = "添加合同管理";
468 433 },
... ... @@ -484,6 +449,12 @@ export default {
484 449 if (valid) {
485 450 let formData = new FormData();
486 451 let form = this.form;
  452 + let beginDate = form.contractBeginDate;
  453 + let endDate = form.contractEndDate;
  454 + if(beginDate>endDate){
  455 + this.$message.error("开始时间不能大于结束时间!");
  456 + return;
  457 + }
487 458 //去掉params属性
488 459 delete form.params;
489 460 formData.append('fileList', null);
... ... @@ -552,10 +523,11 @@ export default {
552 523 },
553 524 /**
554 525 * 文件改变时,限制文件上传格式和大小
555   - * 文件格式只能为doc/xls/ppt/txt/pdf
  526 + * 文件格式只能为docx/xlsx/xls/ppt/rar/zip/doc/pdf/png/jpeg/png/jpg
556 527 * 大小不超过5M
557 528 * */
558 529 fileChange(file, fileList) {
  530 + console.log(fileList)
559 531 let count = 0;
560 532 for (let i = 0; i < fileList.length; i++) {
561 533 // console.log(fileList.length)
... ... @@ -580,7 +552,7 @@ export default {
580 552 }
581 553 let fileType = file.name.substring(file.name.lastIndexOf('.') + 1).toLowerCase();
582 554 //格式符合后判断大小
583   - if ("docx,xlsx,ppt,txt,pdf,png".indexOf(fileType) != -1) {
  555 + if ("docx,xlsx,xls,ppt,rar,zip,doc,pdf,png,jpeg,png,jpg".indexOf(fileType) != -1) {
584 556 let max5M = file.size / 1024 / 1024 < 5;
585 557 if (!max5M) {
586 558 this.$message({
... ... @@ -593,7 +565,7 @@ export default {
593 565 }
594 566 } else {
595 567 this.$message({
596   - message: '上传文件只能是 doc、docx、xls、xlsx、ppt、txt、pdf、png格式!',
  568 + message: '上传文件只能是 docx、xlsx、xls、ppt、rar、zip、doc、pdf、png、jpeg、png、jpg格式!',
597 569 type: 'warning'
598 570 });
599 571 }
... ...
trash-workFlow/src/main/java/com/trash/casefile/controller/ReplyApprovalProcessController.java 0 → 100644
  1 +package com.trash.casefile.controller;
  2 +
  3 +import java.util.List;
  4 +import org.springframework.security.access.prepost.PreAuthorize;
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.web.bind.annotation.GetMapping;
  7 +import org.springframework.web.bind.annotation.PostMapping;
  8 +import org.springframework.web.bind.annotation.PutMapping;
  9 +import org.springframework.web.bind.annotation.DeleteMapping;
  10 +import org.springframework.web.bind.annotation.PathVariable;
  11 +import org.springframework.web.bind.annotation.RequestBody;
  12 +import org.springframework.web.bind.annotation.RequestMapping;
  13 +import org.springframework.web.bind.annotation.RestController;
  14 +import com.trash.common.annotation.Log;
  15 +import com.trash.common.core.controller.BaseController;
  16 +import com.trash.common.core.domain.AjaxResult;
  17 +import com.trash.common.enums.BusinessType;
  18 +import com.trash.casefile.domain.ReplyApprovalProcess;
  19 +import com.trash.casefile.service.IReplyApprovalProcessService;
  20 +import com.trash.common.utils.poi.ExcelUtil;
  21 +import com.trash.common.core.page.TableDataInfo;
  22 +
  23 +/**
  24 + * 回复审批流程Controller
  25 + *
  26 + * @author 2c
  27 + * @date 2023-05-10
  28 + */
  29 +@RestController
  30 +@RequestMapping("/replyApprovalProcess/replyApprovalProcess")
  31 +public class ReplyApprovalProcessController extends BaseController
  32 +{
  33 + @Autowired
  34 + private IReplyApprovalProcessService replyApprovalProcessService;
  35 +
  36 + /**
  37 + * 查询回复审批流程列表
  38 + */
  39 + @PreAuthorize("@ss.hasPermi('replyApprovalProcess:replyApprovalProcess:list')")
  40 + @GetMapping("/list")
  41 + public TableDataInfo list(ReplyApprovalProcess replyApprovalProcess)
  42 + {
  43 + startPage();
  44 + List<ReplyApprovalProcess> list = replyApprovalProcessService.selectReplyApprovalProcessList(replyApprovalProcess);
  45 + return getDataTable(list);
  46 + }
  47 +
  48 + /**
  49 + * 导出回复审批流程列表
  50 + */
  51 + @PreAuthorize("@ss.hasPermi('replyApprovalProcess:replyApprovalProcess:export')")
  52 + @Log(title = "回复审批流程", businessType = BusinessType.EXPORT)
  53 + @GetMapping("/export")
  54 + public AjaxResult export(ReplyApprovalProcess replyApprovalProcess)
  55 + {
  56 + List<ReplyApprovalProcess> list = replyApprovalProcessService.selectReplyApprovalProcessList(replyApprovalProcess);
  57 + ExcelUtil<ReplyApprovalProcess> util = new ExcelUtil<ReplyApprovalProcess>(ReplyApprovalProcess.class);
  58 + return util.exportExcel(list, "replyApprovalProcess");
  59 + }
  60 +
  61 + /**
  62 + * 获取回复审批流程详细信息
  63 + */
  64 + @PreAuthorize("@ss.hasPermi('replyApprovalProcess:replyApprovalProcess:query')")
  65 + @GetMapping(value = "/{id}")
  66 + public AjaxResult getInfo(@PathVariable("id") Long id)
  67 + {
  68 + return AjaxResult.success(replyApprovalProcessService.selectReplyApprovalProcessById(id));
  69 + }
  70 +
  71 + /**
  72 + * 新增回复审批流程
  73 + */
  74 + @PreAuthorize("@ss.hasPermi('replyApprovalProcess:replyApprovalProcess:add')")
  75 + @Log(title = "回复审批流程", businessType = BusinessType.INSERT)
  76 + @PostMapping
  77 + public AjaxResult add(@RequestBody ReplyApprovalProcess replyApprovalProcess)
  78 + {
  79 + return toAjax(replyApprovalProcessService.insertReplyApprovalProcess(replyApprovalProcess));
  80 + }
  81 +
  82 + /**
  83 + * 修改回复审批流程
  84 + */
  85 + @PreAuthorize("@ss.hasPermi('replyApprovalProcess:replyApprovalProcess:edit')")
  86 + @Log(title = "回复审批流程", businessType = BusinessType.UPDATE)
  87 + @PutMapping
  88 + public AjaxResult edit(@RequestBody ReplyApprovalProcess replyApprovalProcess)
  89 + {
  90 + return toAjax(replyApprovalProcessService.updateReplyApprovalProcess(replyApprovalProcess));
  91 + }
  92 +
  93 + /**
  94 + * 删除回复审批流程
  95 + */
  96 + @PreAuthorize("@ss.hasPermi('replyApprovalProcess:replyApprovalProcess:remove')")
  97 + @Log(title = "回复审批流程", businessType = BusinessType.DELETE)
  98 + @DeleteMapping("/{ids}")
  99 + public AjaxResult remove(@PathVariable Long[] ids)
  100 + {
  101 + return toAjax(replyApprovalProcessService.deleteReplyApprovalProcessByIds(ids));
  102 + }
  103 +}
... ...
trash-workFlow/src/main/java/com/trash/casefile/controller/ViolationCaseFileController.java 0 → 100644
  1 +package com.trash.casefile.controller;
  2 +
  3 +import java.io.IOException;
  4 +import java.util.ArrayList;
  5 +import java.util.List;
  6 +
  7 +import com.alibaba.fastjson.JSON;
  8 +import com.trash.casefile.domain.ViolationWarningInformation;
  9 +import com.trash.casefile.domain.vo.ViolationCaseFileVo;
  10 +import com.trash.casefile.domain.vo.ViolationWarningInformationVo;
  11 +import com.trash.office.domain.UploadFile;
  12 +import org.springframework.security.access.prepost.PreAuthorize;
  13 +import org.springframework.beans.factory.annotation.Autowired;
  14 +import org.springframework.web.bind.annotation.*;
  15 +import com.trash.common.annotation.Log;
  16 +import com.trash.common.core.controller.BaseController;
  17 +import com.trash.common.core.domain.AjaxResult;
  18 +import com.trash.common.enums.BusinessType;
  19 +import com.trash.casefile.domain.ViolationCaseFile;
  20 +import com.trash.casefile.service.IViolationCaseFileService;
  21 +import com.trash.common.utils.poi.ExcelUtil;
  22 +import com.trash.common.core.page.TableDataInfo;
  23 +import org.springframework.web.multipart.MultipartFile;
  24 +
  25 +/**
  26 + * 平台违规案卷Controller
  27 + *
  28 + * @author 2c
  29 + * @date 2023-05-11
  30 + */
  31 +@RestController
  32 +@RequestMapping("/casefile/violationCaseFile")
  33 +public class ViolationCaseFileController extends BaseController
  34 +{
  35 + @Autowired
  36 + private IViolationCaseFileService violationCaseFileService;
  37 +
  38 + /**
  39 + * 查询平台违规案卷列表
  40 + */
  41 + @PreAuthorize("@ss.hasPermi('casefile:violationCaseFile:list')")
  42 + @GetMapping("/list")
  43 + public TableDataInfo list(ViolationCaseFile violationCaseFile)
  44 + {
  45 + startPage();
  46 + List<ViolationCaseFile> list = violationCaseFileService.selectViolationCaseFileList(violationCaseFile);
  47 + return getDataTable(list);
  48 + }
  49 +
  50 + /**
  51 + * 导出平台违规案卷列表
  52 + */
  53 + @PreAuthorize("@ss.hasPermi('casefile:violationCaseFile:export')")
  54 + @Log(title = "平台违规案卷", businessType = BusinessType.EXPORT)
  55 + @GetMapping("/export")
  56 + public AjaxResult export(ViolationCaseFile violationCaseFile)
  57 + {
  58 + List<ViolationCaseFile> list = violationCaseFileService.selectViolationCaseFileList(violationCaseFile);
  59 + ExcelUtil<ViolationCaseFile> util = new ExcelUtil<ViolationCaseFile>(ViolationCaseFile.class);
  60 + return util.exportExcel(list, "平台违规案卷数据");
  61 + }
  62 +
  63 + /**
  64 + * 获取平台违规案卷详细信息
  65 + */
  66 + @PreAuthorize("@ss.hasPermi('casefile:violationCaseFile:query')")
  67 + @GetMapping(value = "/{id}")
  68 + public AjaxResult getInfo(@PathVariable("id") Long id)
  69 + {
  70 + return AjaxResult.success(violationCaseFileService.selectViolationCaseFileById(id));
  71 + }
  72 +
  73 + /**
  74 + * 新增平台违规案卷
  75 + */
  76 + @PreAuthorize("@ss.hasPermi('casefile:violationCaseFile:add')")
  77 + @Log(title = "平台违规案卷", businessType = BusinessType.INSERT)
  78 + @PostMapping
  79 + public AjaxResult add(@RequestParam(value = "fileList") MultipartFile[] files, ViolationCaseFile violationCaseFile) throws IOException
  80 + {
  81 + return toAjax(violationCaseFileService.insertViolationCaseFile(files,violationCaseFile));
  82 + }
  83 +
  84 + /**
  85 + * 修改平台违规案卷
  86 + */
  87 + @PreAuthorize("@ss.hasPermi('casefile:violationCaseFile:edit')")
  88 + @Log(title = "平台违规案卷", businessType = BusinessType.UPDATE)
  89 + @PutMapping
  90 + public AjaxResult edit(@RequestParam(value = "fileList") MultipartFile[] files, String violationCaseFile, String[] uploadFilesList) throws IOException
  91 + {
  92 + ViolationCaseFileVo violationCaseFileVo = new ViolationCaseFileVo();
  93 + violationCaseFileVo.setViolationCaseFile(JSON.parseObject(violationCaseFile, ViolationCaseFile.class));
  94 + List<UploadFile> uploadFileList = new ArrayList<>();
  95 + for (String uploadFile : uploadFilesList) {
  96 + UploadFile uploadFile1 = JSON.parseObject(uploadFile,UploadFile.class);
  97 + if(uploadFile1!=null){
  98 + if(uploadFile1.getId()!=null){
  99 + uploadFileList.add(uploadFile1);
  100 + }
  101 + }
  102 + }
  103 + violationCaseFileVo.setUploadFiles(uploadFileList);
  104 + return toAjax(violationCaseFileService.updateViolationCaseFile(files,violationCaseFileVo));
  105 + }
  106 +
  107 + /**
  108 + * 删除平台违规案卷
  109 + */
  110 + @PreAuthorize("@ss.hasPermi('casefile:violationCaseFile:remove')")
  111 + @Log(title = "平台违规案卷", businessType = BusinessType.DELETE)
  112 + @DeleteMapping("/{ids}")
  113 + public AjaxResult remove(@PathVariable Long[] ids) throws IOException
  114 + {
  115 + return toAjax(violationCaseFileService.deleteViolationCaseFileByIds(ids));
  116 + }
  117 +}
... ...
trash-workFlow/src/main/java/com/trash/casefile/domain/ViolationCaseFile.java 0 → 100644
  1 +package com.trash.casefile.domain;
  2 +
  3 +import java.util.Date;
  4 +import com.fasterxml.jackson.annotation.JsonFormat;
  5 +import org.apache.commons.lang3.builder.ToStringBuilder;
  6 +import org.apache.commons.lang3.builder.ToStringStyle;
  7 +import com.trash.common.annotation.Excel;
  8 +import com.trash.common.core.domain.BaseEntity;
  9 +
  10 +/**
  11 + * 平台违规案卷对象 casefile_violation
  12 + *
  13 + * @author 2c
  14 + * @date 2023-05-11
  15 + */
  16 +public class ViolationCaseFile extends BaseEntity
  17 +{
  18 + private static final long serialVersionUID = 1L;
  19 +
  20 + /** $column.columnComment */
  21 + private Long id;
  22 +
  23 + /** 案卷编号 */
  24 + @Excel(name = "案卷编号")
  25 + private String number;
  26 +
  27 + /** 违规对象类型 */
  28 + @Excel(name = "违规对象类型")
  29 + private String violationObjectType;
  30 +
  31 + /** 所属区域 */
  32 + @Excel(name = "所属区域")
  33 + private String owningRegion;
  34 +
  35 + /** 违规类型 */
  36 + @Excel(name = "违规类型")
  37 + private String violationType;
  38 +
  39 + /** 违规等级 */
  40 + @Excel(name = "违规等级")
  41 + private String violationGrade;
  42 +
  43 + /** 项目名称 */
  44 + @Excel(name = "项目名称")
  45 + private String projectName;
  46 +
  47 + /** 企业名称 */
  48 + @Excel(name = "企业名称")
  49 + private String companyName;
  50 +
  51 + /** 违规描述 */
  52 + @Excel(name = "违规描述")
  53 + private String describe;
  54 +
  55 + /** 推送对象 */
  56 + @Excel(name = "推送对象")
  57 + private String sendObject;
  58 +
  59 + /** 审批状态 */
  60 + @Excel(name = "审批状态")
  61 + private Integer status;
  62 +
  63 + /** 接收人 */
  64 + @Excel(name = "接收人")
  65 + private String receive;
  66 +
  67 + /** 接收状态 */
  68 + @Excel(name = "接收状态")
  69 + private Integer receiveStatus;
  70 +
  71 + /** 阅览人 */
  72 + @Excel(name = "阅览人")
  73 + private String readBy;
  74 +
  75 + /** 阅览时间 */
  76 + @JsonFormat(pattern = "yyyy-MM-dd")
  77 + @Excel(name = "阅览时间", width = 30, dateFormat = "yyyy-MM-dd")
  78 + private Date readTime;
  79 +
  80 + public void setId(Long id)
  81 + {
  82 + this.id = id;
  83 + }
  84 +
  85 + public Long getId()
  86 + {
  87 + return id;
  88 + }
  89 + public void setNumber(String number)
  90 + {
  91 + this.number = number;
  92 + }
  93 +
  94 + public String getNumber()
  95 + {
  96 + return number;
  97 + }
  98 + public void setViolationObjectType(String violationObjectType)
  99 + {
  100 + this.violationObjectType = violationObjectType;
  101 + }
  102 +
  103 + public String getViolationObjectType()
  104 + {
  105 + return violationObjectType;
  106 + }
  107 + public void setOwningRegion(String owningRegion)
  108 + {
  109 + this.owningRegion = owningRegion;
  110 + }
  111 +
  112 + public String getOwningRegion()
  113 + {
  114 + return owningRegion;
  115 + }
  116 + public void setViolationType(String violationType)
  117 + {
  118 + this.violationType = violationType;
  119 + }
  120 +
  121 + public String getViolationType()
  122 + {
  123 + return violationType;
  124 + }
  125 + public void setViolationGrade(String violationGrade)
  126 + {
  127 + this.violationGrade = violationGrade;
  128 + }
  129 +
  130 + public String getViolationGrade()
  131 + {
  132 + return violationGrade;
  133 + }
  134 + public void setProjectName(String projectName)
  135 + {
  136 + this.projectName = projectName;
  137 + }
  138 +
  139 + public String getProjectName()
  140 + {
  141 + return projectName;
  142 + }
  143 + public void setCompanyName(String companyName)
  144 + {
  145 + this.companyName = companyName;
  146 + }
  147 +
  148 + public String getCompanyName()
  149 + {
  150 + return companyName;
  151 + }
  152 + public void setDescribe(String describe)
  153 + {
  154 + this.describe = describe;
  155 + }
  156 +
  157 + public String getDescribe()
  158 + {
  159 + return describe;
  160 + }
  161 + public void setSendObject(String sendObject)
  162 + {
  163 + this.sendObject = sendObject;
  164 + }
  165 +
  166 + public String getSendObject()
  167 + {
  168 + return sendObject;
  169 + }
  170 + public void setStatus(Integer status)
  171 + {
  172 + this.status = status;
  173 + }
  174 +
  175 + public Integer getStatus()
  176 + {
  177 + return status;
  178 + }
  179 + public void setReceive(String receive)
  180 + {
  181 + this.receive = receive;
  182 + }
  183 +
  184 + public String getReceive()
  185 + {
  186 + return receive;
  187 + }
  188 + public void setReceiveStatus(Integer receiveStatus)
  189 + {
  190 + this.receiveStatus = receiveStatus;
  191 + }
  192 +
  193 + public Integer getReceiveStatus()
  194 + {
  195 + return receiveStatus;
  196 + }
  197 + public void setReadBy(String readBy)
  198 + {
  199 + this.readBy = readBy;
  200 + }
  201 +
  202 + public String getReadBy()
  203 + {
  204 + return readBy;
  205 + }
  206 + public void setReadTime(Date readTime)
  207 + {
  208 + this.readTime = readTime;
  209 + }
  210 +
  211 + public Date getReadTime()
  212 + {
  213 + return readTime;
  214 + }
  215 +
  216 + @Override
  217 + public String toString() {
  218 + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
  219 + .append("id", getId())
  220 + .append("number", getNumber())
  221 + .append("violationObjectType", getViolationObjectType())
  222 + .append("owningRegion", getOwningRegion())
  223 + .append("violationType", getViolationType())
  224 + .append("violationGrade", getViolationGrade())
  225 + .append("projectName", getProjectName())
  226 + .append("companyName", getCompanyName())
  227 + .append("describe", getDescribe())
  228 + .append("sendObject", getSendObject())
  229 + .append("createTime", getCreateTime())
  230 + .append("createBy", getCreateBy())
  231 + .append("updateTime", getUpdateTime())
  232 + .append("updateBy", getUpdateBy())
  233 + .append("status", getStatus())
  234 + .append("receive", getReceive())
  235 + .append("receiveStatus", getReceiveStatus())
  236 + .append("readBy", getReadBy())
  237 + .append("readTime", getReadTime())
  238 + .toString();
  239 + }
  240 +}
... ...
trash-workFlow/src/main/java/com/trash/casefile/domain/vo/ViolationCaseFileVo.java 0 → 100644
  1 +package com.trash.casefile.domain.vo;
  2 +
  3 +import com.trash.casefile.domain.ViolationCaseFile;
  4 +import com.trash.casefile.domain.ViolationWarningInformation;
  5 +import com.trash.office.domain.UploadFile;
  6 +
  7 +import java.util.List;
  8 +
  9 +/**
  10 + * 违规预警信息Vo
  11 + *
  12 + * @author 2c
  13 + */
  14 +public class ViolationCaseFileVo {
  15 + private ViolationCaseFile violationCaseFile;
  16 +
  17 + private List<UploadFile> uploadFiles;
  18 +
  19 + public List<UploadFile> getUploadFiles() {
  20 + return uploadFiles;
  21 + }
  22 +
  23 + public void setUploadFiles(List<UploadFile> uploadFiles) {
  24 + this.uploadFiles = uploadFiles;
  25 + }
  26 +
  27 + public ViolationCaseFile getViolationCaseFile() {
  28 + return violationCaseFile;
  29 + }
  30 +
  31 + public void setViolationCaseFile(ViolationCaseFile violationCaseFile) {
  32 + this.violationCaseFile = violationCaseFile;
  33 + }
  34 +}
... ...
trash-workFlow/src/main/java/com/trash/casefile/mapper/ViolationCaseFileMapper.java 0 → 100644
  1 +package com.trash.casefile.mapper;
  2 +
  3 +import java.util.List;
  4 +import com.trash.casefile.domain.ViolationCaseFile;
  5 +
  6 +/**
  7 + * 平台违规案卷Mapper接口
  8 + *
  9 + * @author 2c
  10 + * @date 2023-05-11
  11 + */
  12 +public interface ViolationCaseFileMapper
  13 +{
  14 + /**
  15 + * 查询平台违规案卷
  16 + *
  17 + * @param id 平台违规案卷ID
  18 + * @return 平台违规案卷
  19 + */
  20 + ViolationCaseFile selectViolationCaseFileById(Long id);
  21 +
  22 + /**
  23 + * 查询平台违规案卷列表
  24 + *
  25 + * @param ViolationCaseFile 平台违规案卷
  26 + * @return 平台违规案卷集合
  27 + */
  28 + List<ViolationCaseFile> selectViolationCaseFileList(ViolationCaseFile violationCaseFile);
  29 +
  30 + /**
  31 + * 新增平台违规案卷
  32 + *
  33 + * @param ViolationCaseFile 平台违规案卷
  34 + * @return 结果
  35 + */
  36 + int insertViolationCaseFile(ViolationCaseFile violationCaseFile);
  37 +
  38 + /**
  39 + * 修改平台违规案卷
  40 + *
  41 + * @param ViolationCaseFile 平台违规案卷
  42 + * @return 结果
  43 + */
  44 + int updateViolationCaseFile(ViolationCaseFile violationCaseFile);
  45 +
  46 + /**
  47 + * 删除平台违规案卷
  48 + *
  49 + * @param id 平台违规案卷ID
  50 + * @return 结果
  51 + */
  52 + int deleteViolationCaseFileById(Long id);
  53 +
  54 + /**
  55 + * 批量删除平台违规案卷
  56 + *
  57 + * @param ids 需要删除的数据ID
  58 + * @return 结果
  59 + */
  60 + int deleteViolationCaseFileByIds(Long[] ids);
  61 +}
... ...
trash-workFlow/src/main/java/com/trash/casefile/service/IReplyApprovalProcessService.java 0 → 100644
  1 +package com.trash.casefile.service;
  2 +
  3 +import java.util.List;
  4 +import com.trash.casefile.domain.ReplyApprovalProcess;
  5 +
  6 +/**
  7 + * 回复审批流程Service接口
  8 + *
  9 + * @author 2c
  10 + * @date 2023-05-10
  11 + */
  12 +public interface IReplyApprovalProcessService
  13 +{
  14 + /**
  15 + * 查询回复审批流程
  16 + *
  17 + * @param id 回复审批流程ID
  18 + * @return 回复审批流程
  19 + */
  20 + ReplyApprovalProcess selectReplyApprovalProcessById(Long id);
  21 +
  22 + /**
  23 + * 查询回复审批流程列表
  24 + *
  25 + * @param replyApprovalProcess 回复审批流程
  26 + * @return 回复审批流程集合
  27 + */
  28 + List<ReplyApprovalProcess> selectReplyApprovalProcessList(ReplyApprovalProcess replyApprovalProcess);
  29 +
  30 + /**
  31 + * 新增回复审批流程
  32 + *
  33 + * @param replyApprovalProcess 回复审批流程
  34 + * @return 结果
  35 + */
  36 + int insertReplyApprovalProcess(ReplyApprovalProcess replyApprovalProcess);
  37 +
  38 + /**
  39 + * 修改回复审批流程
  40 + *
  41 + * @param replyApprovalProcess 回复审批流程
  42 + * @return 结果
  43 + */
  44 + int updateReplyApprovalProcess(ReplyApprovalProcess replyApprovalProcess);
  45 +
  46 + /**
  47 + * 批量删除回复审批流程
  48 + *
  49 + * @param ids 需要删除的回复审批流程ID
  50 + * @return 结果
  51 + */
  52 + int deleteReplyApprovalProcessByIds(Long[] ids);
  53 +
  54 + /**
  55 + * 删除回复审批流程信息
  56 + *
  57 + * @param id 回复审批流程ID
  58 + * @return 结果
  59 + */
  60 + int deleteReplyApprovalProcessById(Long id);
  61 +}
... ...
trash-workFlow/src/main/java/com/trash/casefile/service/IViolationCaseFileService.java 0 → 100644
  1 +package com.trash.casefile.service;
  2 +
  3 +import java.io.IOException;
  4 +import java.util.List;
  5 +import com.trash.casefile.domain.ViolationCaseFile;
  6 +import com.trash.casefile.domain.vo.ViolationCaseFileVo;
  7 +import org.springframework.web.multipart.MultipartFile;
  8 +
  9 +/**
  10 + * 平台违规案卷Service接口
  11 + *
  12 + * @author 2c
  13 + * @date 2023-05-11
  14 + */
  15 +public interface IViolationCaseFileService
  16 +{
  17 + /**
  18 + * 查询平台违规案卷
  19 + *
  20 + * @param id 平台违规案卷ID
  21 + * @return 平台违规案卷
  22 + */
  23 + ViolationCaseFileVo selectViolationCaseFileById(Long id);
  24 +
  25 + /**
  26 + * 查询平台违规案卷列表
  27 + *
  28 + * @param violationCaseFile 平台违规案卷
  29 + * @return 平台违规案卷集合
  30 + */
  31 + List<ViolationCaseFile> selectViolationCaseFileList(ViolationCaseFile violationCaseFile);
  32 +
  33 + /**
  34 + * 新增平台违规案卷
  35 + *
  36 + * @param violationCaseFile 平台违规案卷
  37 + * @return 结果
  38 + */
  39 + int insertViolationCaseFile(MultipartFile[] files,ViolationCaseFile violationCaseFile) throws IOException;
  40 +
  41 + /**
  42 + * 修改平台违规案卷
  43 + *
  44 + * @param violationCaseFileVo 平台违规案卷
  45 + * @return 结果
  46 + */
  47 + int updateViolationCaseFile(MultipartFile[] files, ViolationCaseFileVo violationCaseFileVo) throws IOException;
  48 +
  49 + /**
  50 + * 批量删除平台违规案卷
  51 + *
  52 + * @param ids 需要删除的平台违规案卷ID
  53 + * @return 结果
  54 + */
  55 + int deleteViolationCaseFileByIds(Long[] ids) throws IOException;
  56 +
  57 + /**
  58 + * 删除平台违规案卷信息
  59 + *
  60 + * @param id 平台违规案卷ID
  61 + * @return 结果
  62 + */
  63 + int deleteViolationCaseFileById(Long id);
  64 +}
... ...
trash-workFlow/src/main/java/com/trash/casefile/service/impl/ReplyApprovalProcessServiceImpl.java 0 → 100644
  1 +package com.trash.casefile.service.impl;
  2 +
  3 +import java.util.List;
  4 +import org.springframework.beans.factory.annotation.Autowired;
  5 +import org.springframework.stereotype.Service;
  6 +import com.trash.casefile.mapper.ReplyApprovalProcessMapper;
  7 +import com.trash.casefile.domain.ReplyApprovalProcess;
  8 +import com.trash.casefile.service.IReplyApprovalProcessService;
  9 +
  10 +/**
  11 + * 回复审批流程Service业务层处理
  12 + *
  13 + * @author 2c
  14 + * @date 2023-05-10
  15 + */
  16 +@Service
  17 +public class ReplyApprovalProcessServiceImpl implements IReplyApprovalProcessService
  18 +{
  19 + @Autowired
  20 + private ReplyApprovalProcessMapper replyApprovalProcessMapper;
  21 +
  22 + /**
  23 + * 查询回复审批流程
  24 + *
  25 + * @param id 回复审批流程ID
  26 + * @return 回复审批流程
  27 + */
  28 + @Override
  29 + public ReplyApprovalProcess selectReplyApprovalProcessById(Long id)
  30 + {
  31 + return replyApprovalProcessMapper.selectReplyApprovalProcessById(id);
  32 + }
  33 +
  34 + /**
  35 + * 查询回复审批流程列表
  36 + *
  37 + * @param replyApprovalProcess 回复审批流程
  38 + * @return 回复审批流程
  39 + */
  40 + @Override
  41 + public List<ReplyApprovalProcess> selectReplyApprovalProcessList(ReplyApprovalProcess replyApprovalProcess)
  42 + {
  43 + return replyApprovalProcessMapper.selectReplyApprovalProcessList(replyApprovalProcess);
  44 + }
  45 +
  46 + /**
  47 + * 新增回复审批流程
  48 + *
  49 + * @param replyApprovalProcess 回复审批流程
  50 + * @return 结果
  51 + */
  52 + @Override
  53 + public int insertReplyApprovalProcess(ReplyApprovalProcess replyApprovalProcess)
  54 + {
  55 + return replyApprovalProcessMapper.insertReplyApprovalProcess(replyApprovalProcess);
  56 + }
  57 +
  58 + /**
  59 + * 修改回复审批流程
  60 + *
  61 + * @param replyApprovalProcess 回复审批流程
  62 + * @return 结果
  63 + */
  64 + @Override
  65 + public int updateReplyApprovalProcess(ReplyApprovalProcess replyApprovalProcess)
  66 + {
  67 + return replyApprovalProcessMapper.updateReplyApprovalProcess(replyApprovalProcess);
  68 + }
  69 +
  70 + /**
  71 + * 批量删除回复审批流程
  72 + *
  73 + * @param ids 需要删除的回复审批流程ID
  74 + * @return 结果
  75 + */
  76 + @Override
  77 + public int deleteReplyApprovalProcessByIds(Long[] ids)
  78 + {
  79 + return replyApprovalProcessMapper.deleteReplyApprovalProcessByIds(ids);
  80 + }
  81 +
  82 + /**
  83 + * 删除回复审批流程信息
  84 + *
  85 + * @param id 回复审批流程ID
  86 + * @return 结果
  87 + */
  88 + @Override
  89 + public int deleteReplyApprovalProcessById(Long id)
  90 + {
  91 + return replyApprovalProcessMapper.deleteReplyApprovalProcessById(id);
  92 + }
  93 +}
... ...
trash-workFlow/src/main/java/com/trash/casefile/service/impl/ViolationCaseFileServiceImpl.java 0 → 100644
  1 +package com.trash.casefile.service.impl;
  2 +
  3 +import java.io.IOException;
  4 +import java.util.List;
  5 +import java.util.stream.Collectors;
  6 +
  7 +import com.trash.casefile.domain.vo.ViolationCaseFileVo;
  8 +import com.trash.casefile.domain.vo.ViolationWarningInformationVo;
  9 +import com.trash.common.utils.DateUtils;
  10 +import com.trash.common.utils.SecurityUtils;
  11 +import com.trash.common.utils.file.FileUploadUtils;
  12 +import com.trash.office.domain.UploadFile;
  13 +import com.trash.office.mapper.UploadFileMapper;
  14 +import org.springframework.beans.factory.annotation.Autowired;
  15 +import org.springframework.stereotype.Service;
  16 +import com.trash.casefile.mapper.ViolationCaseFileMapper;
  17 +import com.trash.casefile.domain.ViolationCaseFile;
  18 +import com.trash.casefile.service.IViolationCaseFileService;
  19 +import org.springframework.transaction.annotation.Transactional;
  20 +import org.springframework.web.multipart.MultipartFile;
  21 +
  22 +/**
  23 + * 平台违规案卷Service业务层处理
  24 + *
  25 + * @author 2c
  26 + * @date 2023-05-11
  27 + */
  28 +@Service
  29 +public class ViolationCaseFileServiceImpl implements IViolationCaseFileService
  30 +{
  31 + @Autowired
  32 + private ViolationCaseFileMapper violationCaseFileMapper;
  33 + @Autowired
  34 + private UploadFileMapper uploadFileMapper;
  35 +
  36 + /**
  37 + * 查询平台违规案卷
  38 + *
  39 + * @param id 平台违规案卷ID
  40 + * @return 平台违规案卷
  41 + */
  42 + @Override
  43 + public ViolationCaseFileVo selectViolationCaseFileById(Long id)
  44 + {
  45 + ViolationCaseFileVo violationCaseFileVo = new ViolationCaseFileVo();
  46 + violationCaseFileVo.setViolationCaseFile(violationCaseFileMapper.selectViolationCaseFileById(id));
  47 + UploadFile uploadFile = new UploadFile();
  48 + uploadFile.setTableName("violation_case_file");
  49 + uploadFile.setTableNumber(violationCaseFileVo.getViolationCaseFile().getId().toString());
  50 + List<UploadFile> list = uploadFileMapper.selectUploadFileList(uploadFile);
  51 + violationCaseFileVo.setUploadFiles(list);
  52 + return violationCaseFileVo;
  53 + }
  54 +
  55 + /**
  56 + * 查询平台违规案卷列表
  57 + *
  58 + * @param violationCaseFile 平台违规案卷
  59 + * @return 平台违规案卷
  60 + */
  61 + @Override
  62 + public List<ViolationCaseFile> selectViolationCaseFileList(ViolationCaseFile violationCaseFile)
  63 + {
  64 + return violationCaseFileMapper.selectViolationCaseFileList(violationCaseFile);
  65 + }
  66 +
  67 + /**
  68 + * 新增平台违规案卷
  69 + *
  70 + * @param violationCaseFile 平台违规案卷
  71 + * @return 结果
  72 + */
  73 + @Override
  74 + @Transactional
  75 + public int insertViolationCaseFile(MultipartFile[] files, ViolationCaseFile violationCaseFile) throws IOException
  76 + {
  77 + violationCaseFile.setCreateBy(SecurityUtils.getUsername());
  78 + violationCaseFile.setStatus(0);
  79 + Integer result = violationCaseFileMapper.insertViolationCaseFile(violationCaseFile);
  80 + //文件上传
  81 + for (MultipartFile file : files) {
  82 + UploadFile uploadFile = new UploadFile();
  83 + uploadFile.setTableName("violation_case_file");
  84 + uploadFile.setTableNumber(violationCaseFile.getId().toString());
  85 + uploadFile.setFileName(file.getOriginalFilename());
  86 + uploadFile.setFilePath(FileUploadUtils.uploadFile(file));
  87 + uploadFileMapper.insertUploadFile(uploadFile);
  88 + }
  89 + return result;
  90 + }
  91 +
  92 + /**
  93 + * 修改平台违规案卷
  94 + *
  95 + * @param violationCaseFileVo 平台违规案卷
  96 + * @return 结果
  97 + */
  98 + @Override
  99 + @Transactional
  100 + public int updateViolationCaseFile(MultipartFile[] files, ViolationCaseFileVo violationCaseFileVo) throws IOException
  101 + {
  102 + violationCaseFileVo.getViolationCaseFile().setUpdateBy(SecurityUtils.getUsername());
  103 + //查询该合同下的文件上传数据然后删除数据库中的数据和文件
  104 + UploadFile uploadFile = new UploadFile();
  105 + uploadFile.setTableName("violation_case_file");
  106 + uploadFile.setTableNumber(violationCaseFileVo.getViolationCaseFile().getId().toString());
  107 + List<UploadFile> uploadFileList = uploadFileMapper.selectUploadFileList(uploadFile);
  108 + //判断getUploadFiles里是否有旧文件,如果有文件上传则先删除数据库中的数据,再添加新的数据,如果没有文件上传,则删除数据库中的数据和文件
  109 + if (violationCaseFileVo.getUploadFiles().size() != 0) {
  110 + //获取两个list的交集
  111 + List<UploadFile> distinctList = uploadFileList.stream().filter(item -> violationCaseFileVo.getUploadFiles().stream().anyMatch(item2 -> item.getId().equals(item2.getId()))).collect(Collectors.toList());
  112 + //去掉交集得到需要删除的数据
  113 + uploadFileList.removeAll(distinctList);
  114 +
  115 + for (UploadFile distinctFile : uploadFileList) {
  116 + uploadFileMapper.deleteUploadFileById(distinctFile.getId());
  117 + //删除文件
  118 + FileUploadUtils.deleteFile(distinctFile.getFilePath());
  119 + }
  120 + } else {
  121 + for (UploadFile uploadFile1 : uploadFileList) {
  122 + //删除数据库数据
  123 + uploadFileMapper.deleteUploadFileById(uploadFile1.getId());
  124 + //删除文件
  125 + FileUploadUtils.deleteFile(uploadFile1.getFilePath());
  126 + }
  127 + }
  128 +
  129 + //添加新的文件
  130 + for (MultipartFile file : files) {
  131 + UploadFile newUploadFile = new UploadFile();
  132 + newUploadFile.setTableName("violation_case_file");
  133 + newUploadFile.setTableNumber(violationCaseFileVo.getViolationCaseFile().getId().toString());
  134 + newUploadFile.setFileName(file.getOriginalFilename());
  135 + newUploadFile.setFilePath(FileUploadUtils.uploadFile(file));
  136 + uploadFileMapper.insertUploadFile(newUploadFile);
  137 + }
  138 + return violationCaseFileMapper.updateViolationCaseFile(violationCaseFileVo.getViolationCaseFile());
  139 + }
  140 +
  141 + /**
  142 + * 批量删除平台违规案卷
  143 + *
  144 + * @param ids 需要删除的平台违规案卷ID
  145 + * @return 结果
  146 + */
  147 + @Override
  148 + public int deleteViolationCaseFileByIds(Long[] ids) throws IOException
  149 + {
  150 + return violationCaseFileMapper.deleteViolationCaseFileByIds(ids);
  151 + }
  152 +
  153 + /**
  154 + * 删除平台违规案卷信息
  155 + *
  156 + * @param id 平台违规案卷ID
  157 + * @return 结果
  158 + */
  159 + @Override
  160 + public int deleteViolationCaseFileById(Long id)
  161 + {
  162 + return violationCaseFileMapper.deleteViolationCaseFileById(id);
  163 + }
  164 +}
... ...
trash-workFlow/src/main/java/com/trash/office/controller/ConferenceController.java
... ... @@ -57,7 +57,7 @@ public class ConferenceController extends BaseController
57 57 {
58 58 List<Conference> list = conferenceService.selectConferenceList(conference);
59 59 ExcelUtil<Conference> util = new ExcelUtil<Conference>(Conference.class);
60   - return util.exportExcel(list, "conference");
  60 + return util.exportExcel(list, "会议管理");
61 61 }
62 62  
63 63 /**
... ...
trash-workFlow/src/main/java/com/trash/office/controller/ContractManagementController.java
... ... @@ -55,7 +55,7 @@ public class ContractManagementController extends BaseController
55 55 {
56 56 List<ContractManagement> list = contractManagementService.selectContractManagementList(contractManagement);
57 57 ExcelUtil<ContractManagement> util = new ExcelUtil<ContractManagement>(ContractManagement.class);
58   - return util.exportExcel(list, "management");
  58 + return util.exportExcel(list, "合同管理");
59 59 }
60 60  
61 61 /**
... ...
trash-workFlow/src/main/java/com/trash/office/controller/HandleAffairsCommonController.java
... ... @@ -57,7 +57,7 @@ public class HandleAffairsCommonController extends BaseController
57 57 {
58 58 List<HandleAffairsCommon> list = handleAffairsCommonService.selectHandleAffairsCommonList(handleAffairsCommon);
59 59 ExcelUtil<HandleAffairsCommon> util = new ExcelUtil<HandleAffairsCommon>(HandleAffairsCommon.class);
60   - return util.exportExcel(list, "handleAffairsCommon");
  60 + return util.exportExcel(list, "办文办事-普通");
61 61 }
62 62  
63 63 /**
... ...
trash-workFlow/src/main/java/com/trash/office/controller/HandleAffairsController.java
... ... @@ -54,7 +54,7 @@ public class HandleAffairsController extends BaseController {
54 54 public AjaxResult export(HandleAffairs handleAffairs) {
55 55 List<HandleAffairs> list = handleAffairsService.selectHandleAffairsList(handleAffairs);
56 56 ExcelUtil<HandleAffairs> util = new ExcelUtil<HandleAffairs>(HandleAffairs.class);
57   - return util.exportExcel(list, "handle");
  57 + return util.exportExcel(list, "办文办事");
58 58 }
59 59  
60 60 /**
... ...
trash-workFlow/src/main/java/com/trash/office/controller/HandleAffairsXfController.java
... ... @@ -57,7 +57,7 @@ public class HandleAffairsXfController extends BaseController
57 57 {
58 58 List<HandleAffairsXf> list = handleAffairsXfService.selectHandleAffairsXfList(handleAffairsXf);
59 59 ExcelUtil<HandleAffairsXf> util = new ExcelUtil<HandleAffairsXf>(HandleAffairsXf.class);
60   - return util.exportExcel(list, "handleAffairsXF");
  60 + return util.exportExcel(list, "办文办事信访类");
61 61 }
62 62  
63 63 /**
... ...
trash-workFlow/src/main/java/com/trash/office/controller/LeaveApplicationController.java
... ... @@ -58,7 +58,7 @@ public class LeaveApplicationController extends BaseController
58 58 {
59 59 List<LeaveApplication> list = leaveApplicationService.selectLeaveApplicationList(leaveApplication);
60 60 ExcelUtil<LeaveApplication> util = new ExcelUtil<LeaveApplication>(LeaveApplication.class);
61   - return util.exportExcel(list, "leaveApplication");
  61 + return util.exportExcel(list, "请假申请");
62 62 }
63 63  
64 64 /**
... ...
trash-workFlow/src/main/java/com/trash/office/controller/LogisticsManagementController.java
... ... @@ -55,7 +55,7 @@ public class LogisticsManagementController extends BaseController
55 55 {
56 56 List<LogisticsManagement> list = logisticsManagementService.selectLogisticsManagementList(logisticsManagement);
57 57 ExcelUtil<LogisticsManagement> util = new ExcelUtil<LogisticsManagement>(LogisticsManagement.class);
58   - return util.exportExcel(list, "logistics");
  58 + return util.exportExcel(list, "后勤管理");
59 59 }
60 60  
61 61 /**
... ...
trash-workFlow/src/main/java/com/trash/office/domain/Conference.java
... ... @@ -30,11 +30,9 @@ public class Conference extends BaseEntity
30 30 private String conferenceSite;
31 31  
32 32 /** 科室id */
33   - @Excel(name = "科室id")
34   - private Long deptId;
  33 + private Integer deptId;
35 34  
36   - /** 科室名称 */
37   - @Excel(name = "科室名称")
  35 +// @Excel(name = "部门")
38 36 private String deptName;
39 37  
40 38 /** 参会人员 */
... ... @@ -42,23 +40,21 @@ public class Conference extends BaseEntity
42 40 private String staff;
43 41  
44 42 /** 会议主题 */
45   - @Excel(name = "会议主题")
46 43 private String subject;
47 44  
48 45 /** 会议内容 */
49   - @Excel(name = "会议内容")
50 46 private String content;
51 47  
52 48 /** 会议要求 */
53   - @Excel(name = "会议要求")
54 49 private String requirement;
55 50  
56 51 /** 通知区级分平台或者公司分平台
57 52 * 1:区级分平台,2:公司分平台,1,2:都通知
58 53 */
59   - @Excel(name = "通知区级分平台或者公司分平台")
  54 + //@Excel(name = "通知区级分平台或者公司分平台")
60 55 private String notify;
61 56  
  57 + @Excel(name = "审批状态")
62 58 private Integer status;
63 59  
64 60 public Integer getStatus() {
... ... @@ -69,6 +65,15 @@ public class Conference extends BaseEntity
69 65 this.status = status;
70 66 }
71 67  
  68 +
  69 + public String getDeptName() {
  70 + return deptName;
  71 + }
  72 +
  73 + public void setDeptName(String deptName) {
  74 + this.deptName = deptName;
  75 + }
  76 +
72 77 public String getRequirement() {
73 78 return requirement;
74 79 }
... ... @@ -82,7 +87,7 @@ public class Conference extends BaseEntity
82 87 this.id = id;
83 88 }
84 89  
85   - public Long getId()
  90 + public Long getId()
86 91 {
87 92 return id;
88 93 }
... ... @@ -104,24 +109,15 @@ public class Conference extends BaseEntity
104 109 {
105 110 return conferenceSite;
106 111 }
107   - public void setDeptId(Long deptId)
  112 + public void setDeptId(Integer deptId)
108 113 {
109 114 this.deptId = deptId;
110 115 }
111 116  
112   - public Long getDeptId()
  117 + public Integer getDeptId()
113 118 {
114 119 return deptId;
115 120 }
116   - public void setDeptName(String deptName)
117   - {
118   - this.deptName = deptName;
119   - }
120   -
121   - public String getDeptName()
122   - {
123   - return deptName;
124   - }
125 121 public void setStaff(String staff)
126 122 {
127 123 this.staff = staff;
... ... @@ -166,7 +162,6 @@ public class Conference extends BaseEntity
166 162 .append("conferenceTime", getConferenceTime())
167 163 .append("conferenceSite", getConferenceSite())
168 164 .append("deptId", getDeptId())
169   - .append("deptName", getDeptName())
170 165 .append("staff", getStaff())
171 166 .append("subject", getSubject())
172 167 .append("content", getContent())
... ...
trash-workFlow/src/main/java/com/trash/office/domain/ContractManagement.java
... ... @@ -49,15 +49,15 @@ public class ContractManagement extends BaseEntity {
49 49 /**
50 50 * 合同开始时间
51 51 */
52   - @JsonFormat(pattern = "yyyy-MM-dd")
53   - @Excel(name = "合同开始时间", width = 30, dateFormat = "yyyy-MM-dd")
  52 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  53 + @Excel(name = "合同开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
54 54 private Date contractBeginDate;
55 55  
56 56 /**
57 57 * 合同结束时间
58 58 */
59   - @JsonFormat(pattern = "yyyy-MM-dd")
60   - @Excel(name = "合同结束时间", width = 30, dateFormat = "yyyy-MM-dd")
  59 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  60 + @Excel(name = "合同结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
61 61 private Date contractEndDate;
62 62  
63 63 /**
... ... @@ -75,19 +75,30 @@ public class ContractManagement extends BaseEntity {
75 75 /**
76 76 * 责任科室id
77 77 */
78   - @Excel(name = "责任科室id")
79   - private Long deptid;
  78 + @Excel(name = "责任科室")
  79 + private String deptName;
80 80  
81 81 /**
82   - * 责任科室
  82 + * 审批状态 0待审核/1审核通过/2驳回
83 83 */
84   - @Excel(name = "责任科室")
85   - private String deptname;
86   -
87   - /** 审批状态 0待审核/1审核通过/2驳回 */
88   - @Excel(name = "审批状态")
  84 + @Excel(name = "审批状态", readConverterExp = "0=审批中,1=审批通过,2=被驳回")
89 85 private Integer status;
90 86  
  87 + /**
  88 + * 合同签订时间
  89 + */
  90 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  91 + @Excel(name = "合同签订时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
  92 + private Date signTime;
  93 +
  94 + public Date getSignTime() {
  95 + return signTime;
  96 + }
  97 +
  98 + public void setSignTime(Date signTime) {
  99 + this.signTime = signTime;
  100 + }
  101 +
91 102 public Integer getStatus() {
92 103 return status;
93 104 }
... ... @@ -168,20 +179,12 @@ public class ContractManagement extends BaseEntity {
168 179 return contractState;
169 180 }
170 181  
171   - public void setDeptid(Long deptid) {
172   - this.deptid = deptid;
173   - }
174   -
175   - public Long getDeptid() {
176   - return deptid;
177   - }
178   -
179   - public void setDeptname(String deptname) {
180   - this.deptname = deptname;
  182 + public void setDeptName(String deptName) {
  183 + this.deptName = deptName;
181 184 }
182 185  
183   - public String getDeptname() {
184   - return deptname;
  186 + public String getDeptName() {
  187 + return deptName;
185 188 }
186 189  
187 190  
... ... @@ -197,8 +200,8 @@ public class ContractManagement extends BaseEntity {
197 200 .append("contractEndDate", getContractEndDate())
198 201 .append("contractMoney", getContractMoney())
199 202 .append("contractState", getContractState())
200   - .append("deptid", getDeptid())
201   - .append("deptname", getDeptname())
  203 + .append("deptName", getDeptName())
  204 + .append("signTime", getSignTime())
202 205 .toString();
203 206 }
204 207 }
... ...
trash-workFlow/src/main/java/com/trash/office/domain/HandleAffairs.java
... ... @@ -31,8 +31,8 @@ public class HandleAffairs extends BaseEntity {
31 31 /**
32 32 * 收文时间
33 33 */
34   - @JsonFormat(pattern = "yyyy-MM-dd")
35   - @Excel(name = "收文时间", width = 30, dateFormat = "yyyy-MM-dd")
  34 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  35 + @Excel(name = "收文时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
36 36 private Date receiveTime;
37 37  
38 38 /**
... ... @@ -67,29 +67,24 @@ public class HandleAffairs extends BaseEntity {
67 67 private Date sendDate;
68 68  
69 69 /**
70   - * 是否已阅
71   - */
72   - @Excel(name = "是否已阅")
73   - private Integer isRead;
74   -
75   - /**
76   - * 办理意见
77   - */
78   - @Excel(name = "办理意见")
79   - private String opinion;
80   -
81   - /**
82   - * 相关部门意见
  70 + * 信访部门
83 71 */
84   - @Excel(name = "相关部门意见")
85   - private String deptOpinion;
  72 + private Integer deptId;
86 73  
87 74 /**
88 75 * 审批状态
89 76 */
90   - @Excel(name = "审批状态")
  77 + @Excel(name = "审批状态", readConverterExp = "0=审批中,1=审批通过,2=被驳回")
91 78 private Integer status;
92 79  
  80 + public Integer getDeptId() {
  81 + return deptId;
  82 + }
  83 +
  84 + public void setDeptId(Integer deptId) {
  85 + this.deptId = deptId;
  86 + }
  87 +
93 88 public Date getSendDate() {
94 89 return sendDate;
95 90 }
... ... @@ -154,30 +149,6 @@ public class HandleAffairs extends BaseEntity {
154 149 return sendPerson;
155 150 }
156 151  
157   - public void setIsRead(Integer isRead) {
158   - this.isRead = isRead;
159   - }
160   -
161   - public Integer getIsRead() {
162   - return isRead;
163   - }
164   -
165   - public void setOpinion(String opinion) {
166   - this.opinion = opinion;
167   - }
168   -
169   - public String getOpinion() {
170   - return opinion;
171   - }
172   -
173   - public void setDeptOpinion(String deptOpinion) {
174   - this.deptOpinion = deptOpinion;
175   - }
176   -
177   - public String getDeptOpinion() {
178   - return deptOpinion;
179   - }
180   -
181 152 public void setStatus(Integer status) {
182 153 this.status = status;
183 154 }
... ... @@ -197,9 +168,6 @@ public class HandleAffairs extends BaseEntity {
197 168 .append("appeal", getAppeal())
198 169 .append("sendPerson", getSendPerson())
199 170 .append("sendDate", getSendDate())
200   - .append("isRead", getIsRead())
201   - .append("opinion", getOpinion())
202   - .append("deptOpinion", getDeptOpinion())
203 171 .append("status", getStatus())
204 172 .append("createTime", getCreateTime())
205 173 .append("createBy", getCreateBy())
... ...
trash-workFlow/src/main/java/com/trash/office/domain/LeaveApplication.java
... ... @@ -25,11 +25,11 @@ public class LeaveApplication extends BaseEntity
25 25 private String applicant;
26 26  
27 27 /** 部门id */
28   - @Excel(name = "部门id")
  28 +// @Excel(name = "部门id")
29 29 private Long deptId;
30 30  
31 31 /** 职务id */
32   - @Excel(name = "职务id")
  32 +// @Excel(name = "职务id")
33 33 private Long positionId;
34 34  
35 35  
... ... @@ -59,7 +59,7 @@ public class LeaveApplication extends BaseEntity
59 59 private String content;
60 60  
61 61 /** 审批状态 0待审核/1审核通过/2驳回 */
62   - @Excel(name = "审批状态")
  62 + @Excel(name = "审批状态", readConverterExp = "0=审批中,1=审批通过,2=被驳回")
63 63 private Integer status;
64 64  
65 65 public void setId(Long id)
... ...
trash-workFlow/src/main/java/com/trash/office/domain/LogisticsManagement.java
... ... @@ -64,7 +64,7 @@ public class LogisticsManagement extends BaseEntity
64 64 private Integer quantity;
65 65  
66 66 /** 审核状态 */
67   - @Excel(name = "审核状态")
  67 + @Excel(name = "审批状态", readConverterExp = "0=审批中,1=审批通过,2=被驳回")
68 68 private Integer status;
69 69  
70 70 public void setId(Long id)
... ...
trash-workFlow/src/main/java/com/trash/office/listener/ConferenceEndListener.java 0 → 100644
  1 +package com.trash.office.listener;
  2 +
  3 +import com.trash.common.utils.spring.SpringUtils;
  4 +import com.trash.office.domain.Conference;
  5 +import com.trash.office.domain.LogisticsManagement;
  6 +import com.trash.office.domain.UploadFile;
  7 +import com.trash.office.mapper.ConferenceMapper;
  8 +import com.trash.office.mapper.LogisticsManagementMapper;
  9 +import com.trash.office.mapper.UploadFileMapper;
  10 +import com.trash.workflow.domain.Workflow;
  11 +import com.trash.workflow.mapper.WorkflowMapper;
  12 +import org.activiti.engine.delegate.DelegateExecution;
  13 +import org.activiti.engine.delegate.ExecutionListener;
  14 +import org.activiti.engine.delegate.Expression;
  15 +
  16 +import java.util.List;
  17 +
  18 +
  19 +public class ConferenceEndListener implements ExecutionListener {
  20 + private Expression state;
  21 +
  22 + @Override
  23 + public void notify(DelegateExecution delegateExecution) {
  24 + String status = (String) state.getValue(delegateExecution);
  25 + ConferenceMapper conferenceMapper = SpringUtils.getBean(ConferenceMapper.class);
  26 + //获取申请id
  27 + Long id = Long.parseLong(delegateExecution.getProcessInstanceBusinessKey().split(":")[1]);
  28 + //根据id查出当前申请
  29 + Conference conference = conferenceMapper.selectConferenceById(id);
  30 + //判断驳回还是通过 1:通过 2:驳回
  31 + if("1".equals(status)){
  32 + //设置为通过状态
  33 + conference.setStatus(1);
  34 + //添加后勤管理(通过状态)
  35 + conferenceMapper.updateConference(conference);
  36 + }else if("2".equals(status)){
  37 + //设置为驳回状态
  38 + conference.setStatus(2);
  39 + //删除当前后勤管理
  40 + conferenceMapper.deleteConferenceById(conference.getId());
  41 + //添加后勤管理(驳回状态)
  42 + conferenceMapper.insertConference(conference);
  43 + //获取上传文件
  44 + UploadFileMapper uploadFileMapper = SpringUtils.getBean(UploadFileMapper.class);
  45 + //查出旧的文件上传数据
  46 + UploadFile uploadFile = new UploadFile();
  47 + uploadFile.setTableName("conference");
  48 + uploadFile.setTableNumber(id.toString());
  49 + List<UploadFile> list = uploadFileMapper.selectUploadFileList(uploadFile);
  50 + //添加请假申请(驳回状态)
  51 + for (UploadFile uploadFile1 : list) {
  52 + //将上传文件的表id 设置为新的请假申请id
  53 + uploadFile1.setTableNumber(conference.getId().toString());
  54 + uploadFileMapper.updateUploadFile(uploadFile1);
  55 + }
  56 + }
  57 + //流程历史存档
  58 + WorkflowMapper workflowMapper = SpringUtils.getBean(WorkflowMapper.class);
  59 +
  60 + Workflow workflow = new Workflow();
  61 +
  62 + workflow.setId(delegateExecution.getProcessInstanceBusinessKey());
  63 +
  64 + workflow.setState(state.getValue(delegateExecution).toString());
  65 +
  66 + workflowMapper.updateWorkflow(workflow);
  67 +
  68 + workflow = workflowMapper.selectWorkflowById(workflow.getId());
  69 +
  70 + workflowMapper.insertWorkflowHistory(workflow);
  71 +
  72 + workflowMapper.deleteWorkflowById(delegateExecution.getProcessInstanceBusinessKey());
  73 +
  74 + }
  75 +}
... ...
trash-workFlow/src/main/java/com/trash/office/listener/ConferenceListener.java deleted 100644 → 0
1   -package com.trash.office.listener;
2   -
3   -import com.trash.common.utils.spring.SpringUtils;
4   -import com.trash.office.domain.Conference;
5   -import com.trash.office.mapper.ConferenceMapper;
6   -import org.activiti.engine.delegate.DelegateExecution;
7   -import org.activiti.engine.delegate.ExecutionListener;
8   -
9   -public class ConferenceListener implements ExecutionListener {
10   - public String status;
11   - @Override
12   - public void notify(DelegateExecution delegateExecution) {
13   - Conference conference = new Conference();
14   - conference.setId(Long.parseLong(delegateExecution.getProcessInstanceBusinessKey().split(":")[1]));
15   - conference.setStatus(Integer.parseInt(delegateExecution.getVariable("state").toString()));
16   - SpringUtils.getBean(ConferenceMapper.class).updateConference(conference);
17   - }
18   -
19   -}
trash-workFlow/src/main/java/com/trash/office/listener/HandleAffairsEndListener.java 0 → 100644
  1 +package com.trash.office.listener;
  2 +
  3 +import com.trash.common.utils.spring.SpringUtils;
  4 +import com.trash.office.domain.HandleAffairs;
  5 +import com.trash.office.domain.LogisticsManagement;
  6 +import com.trash.office.domain.UploadFile;
  7 +import com.trash.office.mapper.HandleAffairsMapper;
  8 +import com.trash.office.mapper.LogisticsManagementMapper;
  9 +import com.trash.office.mapper.UploadFileMapper;
  10 +import com.trash.workflow.domain.Workflow;
  11 +import com.trash.workflow.mapper.WorkflowMapper;
  12 +import org.activiti.engine.delegate.DelegateExecution;
  13 +import org.activiti.engine.delegate.ExecutionListener;
  14 +import org.activiti.engine.delegate.Expression;
  15 +import org.springframework.security.core.parameters.P;
  16 +
  17 +import java.util.List;
  18 +
  19 +
  20 +public class HandleAffairsEndListener implements ExecutionListener {
  21 + private Expression state;
  22 +
  23 + @Override
  24 + public void notify(DelegateExecution delegateExecution) {
  25 + String status = (String) state.getValue(delegateExecution);
  26 + HandleAffairsMapper handleAffairsMapper = SpringUtils.getBean(HandleAffairsMapper.class);
  27 + //获取申请id
  28 + Long id = Long.parseLong(delegateExecution.getProcessInstanceBusinessKey().split(":")[1]);
  29 + //根据id查出当前申请
  30 + HandleAffairs handleAffairs = handleAffairsMapper.selectHandleAffairsById(id);
  31 + //判断驳回还是通过 1:通过 2:驳回
  32 + if("1".equals(status)){
  33 + //设置为通过状态
  34 + handleAffairs.setStatus(1);
  35 + String route = String.valueOf(delegateExecution.getParent().getVariableInstance("route"));
  36 + if(route.equals("0")){
  37 + //发起阅览流程
  38 +
  39 + }else if(route.equals("1")){
  40 + //发起公文处理流程,设置状态为3:收文流程审批完成,公文流程未处理
  41 + handleAffairs.setStatus(3);
  42 + }
  43 + //修改办文办事(通过状态)
  44 + handleAffairsMapper.updateHandleAffairs(handleAffairs);
  45 + }else if("2".equals(status)){
  46 + //设置为驳回状态
  47 + handleAffairs.setStatus(2);
  48 + //删除当前办文办事
  49 + handleAffairsMapper.deleteHandleAffairsById(id);
  50 + //添加办文办事(驳回状态)
  51 + handleAffairsMapper.insertHandleAffairs(handleAffairs);
  52 + //获取上传文件
  53 + UploadFileMapper uploadFileMapper = SpringUtils.getBean(UploadFileMapper.class);
  54 + //查出旧的文件上传数据
  55 + UploadFile uploadFile = new UploadFile();
  56 + uploadFile.setTableName("handle_affairs");
  57 + uploadFile.setTableNumber(id.toString());
  58 + List<UploadFile> list = uploadFileMapper.selectUploadFileList(uploadFile);
  59 + //添加请假申请(驳回状态)
  60 + for (UploadFile uploadFile1 : list) {
  61 + //将上传文件的表id 设置为新的请假申请id
  62 + uploadFile1.setTableNumber(handleAffairs.getId().toString());
  63 + uploadFileMapper.updateUploadFile(uploadFile1);
  64 + }
  65 + }
  66 + //流程历史存档
  67 + WorkflowMapper workflowMapper = SpringUtils.getBean(WorkflowMapper.class);
  68 +
  69 + Workflow workflow = new Workflow();
  70 +
  71 + workflow.setId(delegateExecution.getProcessInstanceBusinessKey());
  72 +
  73 + workflow.setState(state.getValue(delegateExecution).toString());
  74 +
  75 + workflowMapper.updateWorkflow(workflow);
  76 +
  77 + workflow = workflowMapper.selectWorkflowById(workflow.getId());
  78 +
  79 + workflowMapper.insertWorkflowHistory(workflow);
  80 +
  81 + workflowMapper.deleteWorkflowById(delegateExecution.getProcessInstanceBusinessKey());
  82 +
  83 + }
  84 +}
... ...
trash-workFlow/src/main/java/com/trash/office/listener/LogisticsEndListener.java 0 → 100644
  1 +package com.trash.office.listener;
  2 +
  3 +import com.trash.common.utils.spring.SpringUtils;
  4 +import com.trash.office.domain.LeaveApplication;
  5 +import com.trash.office.domain.LogisticsManagement;
  6 +import com.trash.office.domain.UploadFile;
  7 +import com.trash.office.mapper.LeaveApplicationMapper;
  8 +import com.trash.office.mapper.LogisticsManagementMapper;
  9 +import com.trash.office.mapper.UploadFileMapper;
  10 +import com.trash.workflow.domain.Workflow;
  11 +import com.trash.workflow.mapper.WorkflowMapper;
  12 +import org.activiti.engine.delegate.DelegateExecution;
  13 +import org.activiti.engine.delegate.ExecutionListener;
  14 +import org.activiti.engine.delegate.Expression;
  15 +
  16 +import java.util.List;
  17 +
  18 +
  19 +public class LogisticsEndListener implements ExecutionListener {
  20 + private Expression state;
  21 +
  22 + @Override
  23 + public void notify(DelegateExecution delegateExecution) {
  24 + String status = (String) state.getValue(delegateExecution);
  25 + LogisticsManagementMapper logisticsManagementMapper = SpringUtils.getBean(LogisticsManagementMapper.class);
  26 + //获取申请id
  27 + Long id = Long.parseLong(delegateExecution.getProcessInstanceBusinessKey().split(":")[1]);
  28 + //根据id查出当前申请
  29 + LogisticsManagement logisticsManagement = logisticsManagementMapper.selectLogisticsManagementById(id);
  30 + //判断驳回还是通过 1:通过 2:驳回
  31 + if("1".equals(status)){
  32 + //设置为通过状态
  33 + logisticsManagement.setStatus(1);
  34 + //添加后勤管理(通过状态)
  35 + logisticsManagementMapper.updateLogisticsManagement(logisticsManagement);
  36 + }else if("2".equals(status)){
  37 + //设置为驳回状态
  38 + logisticsManagement.setStatus(2);
  39 + //删除当前后勤管理
  40 + logisticsManagementMapper.deleteLogisticsManagementById(id);
  41 + //添加后勤管理(驳回状态)
  42 + logisticsManagementMapper.insertLogisticsManagement(logisticsManagement);
  43 + }
  44 + //流程历史存档
  45 + WorkflowMapper workflowMapper = SpringUtils.getBean(WorkflowMapper.class);
  46 +
  47 + Workflow workflow = new Workflow();
  48 +
  49 + workflow.setId(delegateExecution.getProcessInstanceBusinessKey());
  50 +
  51 + workflow.setState(state.getValue(delegateExecution).toString());
  52 +
  53 + workflowMapper.updateWorkflow(workflow);
  54 +
  55 + workflow = workflowMapper.selectWorkflowById(workflow.getId());
  56 +
  57 + workflowMapper.insertWorkflowHistory(workflow);
  58 +
  59 + workflowMapper.deleteWorkflowById(delegateExecution.getProcessInstanceBusinessKey());
  60 +
  61 + }
  62 +}
... ...
trash-workFlow/src/main/java/com/trash/office/service/impl/ConferenceServiceImpl.java
1 1 package com.trash.office.service.impl;
2 2  
3 3 import java.io.IOException;
  4 +import java.util.ArrayList;
4 5 import java.util.List;
5 6 import java.util.stream.Collectors;
6 7  
... ... @@ -9,6 +10,7 @@ import com.trash.common.utils.SecurityUtils;
9 10 import com.trash.common.utils.file.FileUploadUtils;
10 11 import com.trash.common.utils.uuid.UUID;
11 12 import com.trash.office.domain.ContractManagement;
  13 +import com.trash.office.domain.LogisticsManagement;
12 14 import com.trash.office.domain.UploadFile;
13 15 import com.trash.office.domain.vo.ConferenceVo;
14 16 import com.trash.office.domain.vo.ContractManagementVo;
... ... @@ -18,6 +20,10 @@ import com.trash.workflow.mapper.WorkflowMapper;
18 20 import org.activiti.api.process.model.ProcessInstance;
19 21 import org.activiti.api.process.model.builders.ProcessPayloadBuilder;
20 22 import org.activiti.api.process.runtime.ProcessRuntime;
  23 +import org.activiti.engine.TaskService;
  24 +import org.activiti.engine.task.IdentityLink;
  25 +import org.activiti.engine.task.Task;
  26 +import org.apache.commons.lang3.time.DateFormatUtils;
21 27 import org.springframework.beans.factory.annotation.Autowired;
22 28 import org.springframework.stereotype.Service;
23 29 import com.trash.office.mapper.ConferenceMapper;
... ... @@ -47,6 +53,8 @@ public class ConferenceServiceImpl implements IConferenceService {
47 53 @Autowired
48 54 private WorkflowMapper workflowMapper;
49 55  
  56 + @Autowired
  57 + private TaskService taskService;
50 58 /**
51 59 * 查询会议管理
52 60 *
... ... @@ -58,7 +66,7 @@ public class ConferenceServiceImpl implements IConferenceService {
58 66 ConferenceVo ConferenceVo = new ConferenceVo();
59 67 ConferenceVo.setConference(conferenceMapper.selectConferenceById(id));
60 68 UploadFile uploadFile = new UploadFile();
61   - uploadFile.setTableName("conferrnce");
  69 + uploadFile.setTableName("conference");
62 70 uploadFile.setTableNumber(ConferenceVo.getConference().getId().toString());
63 71 List<UploadFile> list = uploadFileMapper.selectUploadFileList(uploadFile);
64 72 ConferenceVo.setUploadFiles(list);
... ... @@ -88,32 +96,21 @@ public class ConferenceServiceImpl implements IConferenceService {
88 96 //新增会议管理
89 97 conference.setCreateBy(SecurityUtils.getUsername());
90 98 conference.setStatus(0);
  99 + //设置发起人部门编号
  100 + conference.setDeptId(Integer.parseInt(SecurityUtils.getLoginUser().getUser().getRoleIds().get(0)));
  101 +// conference.setDeptId(13);
  102 +
91 103 Integer result = conferenceMapper.insertConference(conference);
92   - //新增工作台数据
93   - Workflow workflow = new Workflow();
94   - workflow.setId("conference:" + conference.getId());
95   - workflow.setTitle("会议管理:" + conference.getConferenceSite());
96   - workflow.setType("会议管理");
97   - workflow.setReason("会议管理");
98   - workflow.setState("0");
99   - //发起流程
100   - ProcessInstance processInstance = processRuntime.start(ProcessPayloadBuilder
101   - .start()
102   - .withProcessDefinitionKey("conference")
103   - .withName("会议申请:" + conference.getId())
104   - .withBusinessKey("conference:" + conference.getId())
105   - .build());
106   - workflow.setInstanceId(processInstance.getId());
107   - workflowMapper.insertWorkflow(workflow);
108 104 //文件上传
109 105 for (MultipartFile file : files) {
110 106 UploadFile uploadFile = new UploadFile();
111   - uploadFile.setTableName("conferrnce");
  107 + uploadFile.setTableName("conference");
112 108 uploadFile.setTableNumber(conference.getId().toString());
113 109 uploadFile.setFileName(file.getOriginalFilename());
114 110 uploadFile.setFilePath(FileUploadUtils.uploadFile(file));
115 111 uploadFileMapper.insertUploadFile(uploadFile);
116 112 }
  113 + createWorkFlow(conference);
117 114 return result;
118 115 }
119 116  
... ... @@ -129,7 +126,7 @@ public class ConferenceServiceImpl implements IConferenceService {
129 126 conferenceVo.getConference().setUpdateBy(SecurityUtils.getUsername());
130 127 //查询该合同下的文件上传数据然后删除数据库中的数据和文件
131 128 UploadFile uploadFile = new UploadFile();
132   - uploadFile.setTableName("conferrnce");
  129 + uploadFile.setTableName("conference");
133 130 uploadFile.setTableNumber(conferenceVo.getConference().getId().toString());
134 131 List<UploadFile> uploadFileList = uploadFileMapper.selectUploadFileList(uploadFile);
135 132 //判断getUploadFiles里是否有旧文件,如果有文件上传则先删除数据库中的数据,再添加新的数据,如果没有文件上传,则删除数据库中的数据和文件
... ... @@ -156,12 +153,18 @@ public class ConferenceServiceImpl implements IConferenceService {
156 153 //添加新的文件
157 154 for (MultipartFile file : files) {
158 155 UploadFile newUploadFile = new UploadFile();
159   - newUploadFile.setTableName("conferrnce");
  156 + newUploadFile.setTableName("conference");
160 157 newUploadFile.setTableNumber(conferenceVo.getConference().getId().toString());
161 158 newUploadFile.setFileName(file.getOriginalFilename());
162 159 newUploadFile.setFilePath(FileUploadUtils.uploadFile(file));
163 160 uploadFileMapper.insertUploadFile(newUploadFile);
164 161 }
  162 + //驳回状态改为审批中
  163 + if(conferenceVo.getConference().getStatus()==2){
  164 + conferenceVo.getConference().setStatus(0);
  165 + //重新发起流程
  166 + createWorkFlow(conferenceVo.getConference());
  167 + }
165 168 return conferenceMapper.updateConference(conferenceVo.getConference());
166 169 }
167 170  
... ... @@ -177,7 +180,7 @@ public class ConferenceServiceImpl implements IConferenceService {
177 180 for (Long id : ids) {
178 181 Conference conference = conferenceMapper.selectConferenceById(id);
179 182 UploadFile uploadFile = new UploadFile();
180   - uploadFile.setTableName("conferrnce");
  183 + uploadFile.setTableName("conference");
181 184 uploadFile.setTableNumber(conference.getId().toString());
182 185 List<UploadFile> list = uploadFileMapper.selectUploadFileList(uploadFile);
183 186 //遍历删除文件
... ... @@ -199,4 +202,53 @@ public class ConferenceServiceImpl implements IConferenceService {
199 202 public int deleteConferenceById(Long id) {
200 203 return conferenceMapper.deleteConferenceById(id);
201 204 }
  205 +
  206 + public int createWorkFlow(Conference conference) {
  207 + //新增工作台数据
  208 + Workflow workflow = new Workflow();
  209 + workflow.setId("conference:" + conference.getId().toString());
  210 + workflow.setState("0");
  211 + workflow.setCreateBy(SecurityUtils.getUsername());
  212 + workflow.setCreateTime(DateUtils.getNowDate());
  213 + workflow.setTitle(conference.getDeptId()+"申请"+ conference.getConferenceSite()+"会议室");
  214 + workflow.setType("会议申请");
  215 + workflow.setReason(conference.getContent());
  216 + workflow.setStartTime(DateFormatUtils.format(conference.getConferenceTime(), "yyyy-MM-dd"));
  217 + workflow.setEndTime(DateFormatUtils.format(conference.getConferenceTime(), "yyyy-MM-dd"));
  218 + ProcessInstance processInstance = null;
  219 +
  220 + try {
  221 + processInstance = processRuntime.start(ProcessPayloadBuilder
  222 + .start()
  223 + .withProcessDefinitionKey("conference")
  224 + .withName(workflow.getTitle())
  225 + .withBusinessKey(workflow.getId())
  226 + .build());
  227 +
  228 +
  229 + Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
  230 +
  231 + if (task != null) {
  232 + //设置发起部门
  233 + task.setDescription(conference.getDeptId().toString());
  234 +
  235 + List<IdentityLink> list = taskService.getIdentityLinksForTask(task.getId());
  236 +
  237 + if (list.size() == 1) {
  238 + taskService.addCandidateUser(task.getId(), task.getDescription());
  239 + }
  240 +
  241 + taskService.saveTask(task);
  242 + }
  243 +
  244 +
  245 + workflow.setInstanceId(processInstance.getId());
  246 +
  247 + return workflowMapper.insertWorkflow(workflow);
  248 + } catch (Exception e) {
  249 + processRuntime.delete(ProcessPayloadBuilder.delete(processInstance));
  250 + throw e;
  251 + }
  252 + }
  253 +
202 254 }
... ...