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,7 +297,7 @@ public class ActTaskServiceImpl implements IActTaskService {
297 297
298 task.setDescription(placeCode); 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 List<IdentityLink> list = taskService.getIdentityLinksForTask(task.getId()); 301 List<IdentityLink> list = taskService.getIdentityLinksForTask(task.getId());
302 302
303 if(list.size() == 1){ 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,6 +183,12 @@ export const constantRoutes = [
183 component: (resolve) => require(['@/views/casefile/violationWarningInformation'], resolve), 183 component: (resolve) => require(['@/views/casefile/violationWarningInformation'], resolve),
184 name: '违规预警信息', 184 name: '违规预警信息',
185 meta: { title: '违规预警信息' } 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,11 +154,11 @@ export function handleTree(data, id, parentId, children, rootId) {
154 */ 154 */
155 export function parseStatus(status) { 155 export function parseStatus(status) {
156 if(status==1){ 156 if(status==1){
157 - return "审通过"; 157 + return "审通过";
158 }else if(status==2){ 158 }else if(status==2){
159 - return "驳回"; 159 + return "审批驳回";
160 }else{ 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,8 +165,9 @@
165 <el-dialog title="示意图" :visible.sync="picSample" append-to-body> 165 <el-dialog title="示意图" :visible.sync="picSample" append-to-body>
166 <img src="../../../assets/logo/logo.jpg" width="100%" height="800px" /> 166 <img src="../../../assets/logo/logo.jpg" width="100%" height="800px" />
167 </el-dialog> 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 <conferenceInfo :idInfo="idInfo" v-if="conferenceOpen"/> 171 <conferenceInfo :idInfo="idInfo" v-if="conferenceOpen"/>
171 <div slot="footer" class="dialog-footer"> 172 <div slot="footer" class="dialog-footer">
172 <div slot="footer" class="dialog-footer"> 173 <div slot="footer" class="dialog-footer">
@@ -177,7 +178,7 @@ @@ -177,7 +178,7 @@
177 </el-dialog> 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 <leaveApplicationInfo :idInfo="idInfo" v-if="leaveApplicationOpen"/> 182 <leaveApplicationInfo :idInfo="idInfo" v-if="leaveApplicationOpen"/>
182 <div slot="footer" class="dialog-footer"> 183 <div slot="footer" class="dialog-footer">
183 <div slot="footer" class="dialog-footer"> 184 <div slot="footer" class="dialog-footer">
@@ -200,7 +201,6 @@ @@ -200,7 +201,6 @@
200 </div> 201 </div>
201 </el-dialog> 202 </el-dialog>
202 203
203 -  
204 <el-dialog :title="title" :visible.sync="earthsites" width="800px" append-to-body> 204 <el-dialog :title="title" :visible.sync="earthsites" width="800px" append-to-body>
205 <earthsitesInfo :businessKey="businessKey" v-if="earthsites" /> 205 <earthsitesInfo :businessKey="businessKey" v-if="earthsites" />
206 <div slot="footer" class="dialog-footer"> 206 <div slot="footer" class="dialog-footer">
@@ -217,6 +217,27 @@ @@ -217,6 +217,27 @@
217 </div> 217 </div>
218 </el-dialog> 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 </div> 241 </div>
221 </template> 242 </template>
222 243
@@ -255,6 +276,8 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;; @@ -255,6 +276,8 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
255 import constructsiteInfo from "@/views/activiti/task/constructsiteInfo"; 276 import constructsiteInfo from "@/views/activiti/task/constructsiteInfo";
256 import earthsitesInfo from "@/views/activiti/task/earthsitesInfo"; 277 import earthsitesInfo from "@/views/activiti/task/earthsitesInfo";
257 import contractInfo from "@/views/activiti/task/contractInfo"; 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 export default { 282 export default {
260 name: "task", 283 name: "task",
@@ -264,6 +287,9 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;; @@ -264,6 +287,9 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
264 threestepInfo, 287 threestepInfo,
265 conferenceInfo, 288 conferenceInfo,
266 leaveApplicationInfo, 289 leaveApplicationInfo,
  290 + logisticsInfo,
  291 + handleInfo,
  292 + leaveApplicationInfo,
267 constructsiteInfo, 293 constructsiteInfo,
268 earthsitesInfo, 294 earthsitesInfo,
269 contractInfo, 295 contractInfo,
@@ -343,6 +369,8 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;; @@ -343,6 +369,8 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
343 signDataInfo:null, 369 signDataInfo:null,
344 earthsites:false, 370 earthsites:false,
345 contract:false, 371 contract:false,
  372 + logisticsInfoOpen:false,
  373 + handleAffairsInfoOpen:false,
346 }; 374 };
347 }, 375 },
348 created() { 376 created() {
@@ -413,6 +441,8 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;; @@ -413,6 +441,8 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
413 this.leaveApplicationOpen= false; 441 this.leaveApplicationOpen= false;
414 this.conferenceOpen = false; 442 this.conferenceOpen = false;
415 this.construct = false; 443 this.construct = false;
  444 + this.logisticsInfoOpen = false;
  445 + this.handleAffairsInfoOpen = false;
416 this.reset(); 446 this.reset();
417 }, 447 },
418 // 表单重置 448 // 表单重置
@@ -490,6 +520,16 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;; @@ -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 this.open = true; 533 this.open = true;
494 this.title = "审批"; 534 this.title = "审批";
495 }); 535 });
@@ -597,7 +637,6 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;; @@ -597,7 +637,6 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
597 } 637 }
598 }, 638 },
599 conferenceSubmitForm(value){ 639 conferenceSubmitForm(value){
600 - return;  
601 this.form.formData[0].controlValue = value; 640 this.form.formData[0].controlValue = value;
602 if(value==0){ 641 if(value==0){
603 this.form.status = 1; 642 this.form.status = 1;
@@ -626,7 +665,39 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;; @@ -626,7 +665,39 @@ import { getSignByObjId, addSign, updateSign } from &quot;@/api/sign/sign&quot;;
626 this.taskList = []; 665 this.taskList = [];
627 this.getList(); 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 </script> 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 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
3 <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="105px"> 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 <el-form-item label="违规对象类型" prop="violationObjectType"> 4 <el-form-item label="违规对象类型" prop="violationObjectType">
14 <el-select v-model="queryParams.violationObjectType" placeholder="请选择违规对象类型" clearable size="small"> 5 <el-select v-model="queryParams.violationObjectType" placeholder="请选择违规对象类型" clearable size="small">
15 <el-option label="对象1" value="对象1" /> 6 <el-option label="对象1" value="对象1" />
@@ -64,16 +55,16 @@ @@ -64,16 +55,16 @@
64 v-hasPermi="['casefile:violationWarningInformation:edit']" 55 v-hasPermi="['casefile:violationWarningInformation:edit']"
65 >修改</el-button> 56 >修改</el-button>
66 </el-col> 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 <el-col :span="1.5"> 68 <el-col :span="1.5">
78 <el-button 69 <el-button
79 type="warning" 70 type="warning"
@@ -93,6 +84,11 @@ @@ -93,6 +84,11 @@
93 <el-table-column label="违规类型" align="center" prop="violationType" /> 84 <el-table-column label="违规类型" align="center" prop="violationType" />
94 <el-table-column label="项目名称" align="center" prop="projectName" /> 85 <el-table-column label="项目名称" align="center" prop="projectName" />
95 <el-table-column label="企业名称" align="center" prop="companyName" /> 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 <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 92 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
97 <template slot-scope="scope"> 93 <template slot-scope="scope">
98 <el-button 94 <el-button
@@ -102,20 +98,20 @@ @@ -102,20 +98,20 @@
102 @click="handleInfo(scope.row)" 98 @click="handleInfo(scope.row)"
103 v-hasPermi="['casefile:violationWarningInformation:edit']" 99 v-hasPermi="['casefile:violationWarningInformation:edit']"
104 >详情</el-button> 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 </template> 115 </template>
120 </el-table-column> 116 </el-table-column>
121 </el-table> 117 </el-table>
@@ -250,7 +246,7 @@ @@ -250,7 +246,7 @@
250 </el-dialog> 246 </el-dialog>
251 247
252 <el-dialog :title="title" :visible.sync="openInfo" width="850px" append-to-body :close-on-click-modal="false"> 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 <div slot="footer" class="dialog-footer"> 250 <div slot="footer" class="dialog-footer">
255 <el-button @click="cancel">取 消</el-button> 251 <el-button @click="cancel">取 消</el-button>
256 </div> 252 </div>
@@ -372,7 +368,7 @@ export default { @@ -372,7 +368,7 @@ export default {
372 projectName: null, 368 projectName: null,
373 companyName: null, 369 companyName: null,
374 describe: null, 370 describe: null,
375 - sendObject: "区管理部门(治)", 371 + sendObject: null,
376 createTime: null, 372 createTime: null,
377 createBy: null, 373 createBy: null,
378 updateTime: null, 374 updateTime: null,
@@ -406,6 +402,7 @@ export default { @@ -406,6 +402,7 @@ export default {
406 handleInfo(row){ 402 handleInfo(row){
407 this.idInfo = row.id; 403 this.idInfo = row.id;
408 this.openInfo = true; 404 this.openInfo = true;
  405 + this.title = "平台违规案卷详情";
409 }, 406 },
410 /** 新增按钮操作 */ 407 /** 新增按钮操作 */
411 handleAdd() { 408 handleAdd() {
trash-ui/src/views/casefile/violationWarningInformation/violationWarningInformationInfo.vue
@@ -9,8 +9,8 @@ @@ -9,8 +9,8 @@
9 <el-col :span="11"> 9 <el-col :span="11">
10 <el-form-item label="违规对象类型" prop="violationObjectType"> 10 <el-form-item label="违规对象类型" prop="violationObjectType">
11 <el-select v-model="form.violationObjectType" placeholder="请选择违规对象类型" style="width: 100%;" :disabled="true"> 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 </el-select> 14 </el-select>
15 </el-form-item> 15 </el-form-item>
16 </el-col> 16 </el-col>
@@ -19,16 +19,16 @@ @@ -19,16 +19,16 @@
19 <el-col :span="11"> 19 <el-col :span="11">
20 <el-form-item label="所属区域" prop="owningRegion"> 20 <el-form-item label="所属区域" prop="owningRegion">
21 <el-select v-model="form.owningRegion" placeholder="请输入所属区域" style="width: 100%;" :disabled="true"> 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 </el-select> 24 </el-select>
25 </el-form-item> 25 </el-form-item>
26 </el-col> 26 </el-col>
27 <el-col :span="11"> 27 <el-col :span="11">
28 <el-form-item label="违规类型" prop="violationType"> 28 <el-form-item label="违规类型" prop="violationType">
29 <el-select v-model="form.violationType" placeholder="请选择违规类型" style="width: 100%;" :disabled="true"> 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 </el-select> 32 </el-select>
33 </el-form-item> 33 </el-form-item>
34 </el-col> 34 </el-col>
@@ -38,13 +38,13 @@ @@ -38,13 +38,13 @@
38 <el-form-item label="违规等级" prop="violationGrade"> 38 <el-form-item label="违规等级" prop="violationGrade">
39 <el-select v-model="form.violationGrade" placeholder="请选择企业名称" style="width: 100%;" :disabled="true"> 39 <el-select v-model="form.violationGrade" placeholder="请选择企业名称" style="width: 100%;" :disabled="true">
40 <el-option label="一般类" value="一般类"/> 40 <el-option label="一般类" value="一般类"/>
41 - <el-option label="重点类" value="重点类" /> 41 + <el-option label="重点类" value="重点类"/>
42 </el-select> 42 </el-select>
43 </el-form-item> 43 </el-form-item>
44 </el-col> 44 </el-col>
45 <el-col :span="11"> 45 <el-col :span="11">
46 <el-form-item label="项目名称" prop="projectName"> 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 </el-select> 49 </el-select>
50 </el-form-item> 50 </el-form-item>
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 <el-row :gutter="2"> 53 <el-row :gutter="2">
54 <el-col :span="11"> 54 <el-col :span="11">
55 <el-form-item label="企业名称" prop="companyName"> 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 </el-select> 57 </el-select>
58 </el-form-item> 58 </el-form-item>
59 </el-col> 59 </el-col>
@@ -71,7 +71,8 @@ @@ -71,7 +71,8 @@
71 </el-col> 71 </el-col>
72 <el-col :span="11"> 72 <el-col :span="11">
73 <el-form-item label="接收人及状态" prop="receive"> 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 </el-form-item> 76 </el-form-item>
76 </el-col> 77 </el-col>
77 </el-row> 78 </el-row>
@@ -96,26 +97,56 @@ @@ -96,26 +97,56 @@
96 <el-radio label="运输企业">运输企业</el-radio> 97 <el-radio label="运输企业">运输企业</el-radio>
97 </el-radio-group> 98 </el-radio-group>
98 </el-form-item> 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 <template slot-scope="scope"> 110 <template slot-scope="scope">
103 <el-button 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 </template> 118 </template>
112 </el-table-column> 119 </el-table-column>
113 </el-table> 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 </el-form> 144 </el-form>
115 </template> 145 </template>
116 146
117 <script> 147 <script>
118 import {getViolationWarningInformation} from "@/api/casefile/violationWarningInformation"; 148 import {getViolationWarningInformation} from "@/api/casefile/violationWarningInformation";
  149 +import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess";
119 export default { 150 export default {
120 name: "violationWarningInformationInfo", 151 name: "violationWarningInformationInfo",
121 props: { 152 props: {
@@ -124,24 +155,33 @@ export default { @@ -124,24 +155,33 @@ export default {
124 }, 155 },
125 idInfo: { 156 idInfo: {
126 type: String 157 type: String
127 - } 158 + },
  159 + entryType: {
  160 + type: Number
  161 + },
128 }, 162 },
129 data() { 163 data() {
130 return { 164 return {
131 form: {}, 165 form: {},
132 fileEntityList: [], 166 fileEntityList: [],
  167 + open:false,
  168 + replyApprovalProcessList:[],
  169 + openImg:false,
133 } 170 }
134 }, 171 },
135 created() { 172 created() {
136 this.init(); 173 this.init();
137 }, 174 },
138 - methods:{  
139 - init(){ 175 + methods: {
  176 + init() {
140 getViolationWarningInformation(this.idInfo).then(response => { 177 getViolationWarningInformation(this.idInfo).then(response => {
141 this.form = response.data.violationWarningInformation; 178 this.form = response.data.violationWarningInformation;
142 let files = JSON.stringify(response.data.uploadFiles); 179 let files = JSON.stringify(response.data.uploadFiles);
143 this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name")); 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 downloadFA(row) { 187 downloadFA(row) {
@@ -153,6 +193,10 @@ export default { @@ -153,6 +193,10 @@ export default {
153 a.setAttribute('href', process.env.VUE_APP_BASE_API + url); 193 a.setAttribute('href', process.env.VUE_APP_BASE_API + url);
154 a.click() 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 </script> 202 </script>
trash-ui/src/views/office/conference/conferenceInfo.vue
@@ -86,7 +86,6 @@ export default { @@ -86,7 +86,6 @@ export default {
86 init(){ 86 init(){
87 getConference(this.idInfo).then(response => { 87 getConference(this.idInfo).then(response => {
88 this.form = response.data.conference; 88 this.form = response.data.conference;
89 - this.form.notify = response.data.conference.notify.split(",");  
90 let files = JSON.stringify(response.data.uploadFiles); 89 let files = JSON.stringify(response.data.uploadFiles);
91 this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name")) 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,20 +9,14 @@
9 placeholder="选择会议时间"> 9 placeholder="选择会议时间">
10 </el-date-picker> 10 </el-date-picker>
11 </el-form-item> 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 </el-form-item> 20 </el-form-item>
27 <el-form-item> 21 <el-form-item>
28 <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> 22 <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -41,28 +35,28 @@ @@ -41,28 +35,28 @@
41 >新增 35 >新增
42 </el-button> 36 </el-button>
43 </el-col> 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 <el-col :span="1.5"> 60 <el-col :span="1.5">
67 <el-button 61 <el-button
68 type="warning" 62 type="warning"
@@ -81,6 +75,16 @@ @@ -81,6 +75,16 @@
81 <el-table-column label="会议时间" align="center" prop="conferenceTime"/> 75 <el-table-column label="会议时间" align="center" prop="conferenceTime"/>
82 <el-table-column label="会议地点" align="center" prop="conferenceSite"/> 76 <el-table-column label="会议地点" align="center" prop="conferenceSite"/>
83 <el-table-column label="参会人员" align="center" prop="staff"/> 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 <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 88 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
85 <template slot-scope="scope"> 89 <template slot-scope="scope">
86 <el-button 90 <el-button
@@ -96,17 +100,18 @@ @@ -96,17 +100,18 @@
96 type="text" 100 type="text"
97 icon="el-icon-edit" 101 icon="el-icon-edit"
98 @click="handleUpdate(scope.row)" 102 @click="handleUpdate(scope.row)"
  103 + v-if="scope.row.status==2"
99 v-hasPermi="['office:conference:edit']" 104 v-hasPermi="['office:conference:edit']"
100 >修改 105 >修改
101 </el-button> 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 </template> 115 </template>
111 </el-table-column> 116 </el-table-column>
112 </el-table> 117 </el-table>
@@ -227,6 +232,7 @@ import { @@ -227,6 +232,7 @@ import {
227 } from "@/api/office/conference"; 232 } from "@/api/office/conference";
228 import Editor from '@/components/ZcEditor'; 233 import Editor from '@/components/ZcEditor';
229 import conferenceInfo from "./conferenceInfo"; 234 import conferenceInfo from "./conferenceInfo";
  235 +import {getDict} from "@/api/dict";
230 236
231 export default { 237 export default {
232 name: "Conference", 238 name: "Conference",
@@ -258,7 +264,6 @@ export default { @@ -258,7 +264,6 @@ export default {
258 conferenceTime: null, 264 conferenceTime: null,
259 conferenceSite: null, 265 conferenceSite: null,
260 deptId: null, 266 deptId: null,
261 - deptName: null,  
262 staff: null, 267 staff: null,
263 subject: null, 268 subject: null,
264 content: null, 269 content: null,
@@ -286,9 +291,14 @@ export default { @@ -286,9 +291,14 @@ export default {
286 fileEntityList: [], 291 fileEntityList: [],
287 openInfo:false, 292 openInfo:false,
288 idInfo:null, 293 idInfo:null,
  294 + depts:[]
289 }; 295 };
290 }, 296 },
291 created() { 297 created() {
  298 + let dep = {type:"CSUserDepartmentType"};
  299 + getDict(dep).then(res=>{
  300 + this.depts = res.result;
  301 + });
292 this.getList(); 302 this.getList();
293 }, 303 },
294 methods: { 304 methods: {
@@ -316,11 +326,9 @@ export default { @@ -316,11 +326,9 @@ export default {
316 conferenceTime: null, 326 conferenceTime: null,
317 conferenceSite: null, 327 conferenceSite: null,
318 deptId: null, 328 deptId: null,
319 - deptName: null,  
320 staff: null, 329 staff: null,
321 subject: null, 330 subject: null,
322 content: null, 331 content: null,
323 - notify: ["1"],  
324 createTime: null, 332 createTime: null,
325 createBy: null, 333 createBy: null,
326 updateTime: null, 334 updateTime: null,
@@ -348,7 +356,7 @@ export default { @@ -348,7 +356,7 @@ export default {
348 handleInfo(row){ 356 handleInfo(row){
349 this.reset(); 357 this.reset();
350 this.idInfo = row.id; 358 this.idInfo = row.id;
351 - this.title = "请假申请详情"; 359 + this.title = "会议管理详情";
352 this.openInfo = true; 360 this.openInfo = true;
353 }, 361 },
354 /** 新增按钮操作 */ 362 /** 新增按钮操作 */
@@ -502,6 +510,14 @@ export default { @@ -502,6 +510,14 @@ export default {
502 a.setAttribute('href', process.env.VUE_APP_BASE_API + url); 510 a.setAttribute('href', process.env.VUE_APP_BASE_API + url);
503 a.click() 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 </script> 523 </script>
trash-ui/src/views/office/handle/handleInfo.vue
1 <template> 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 <el-form-item label="办文办事类型" prop="type"> 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 <el-option label="传阅学习类" value="0" /> 5 <el-option label="传阅学习类" value="0" />
6 <el-option label="公文批办类" value="1" /> 6 <el-option label="公文批办类" value="1" />
7 <el-option label="热线举报类" value="2" /> 7 <el-option label="热线举报类" value="2" />
8 <el-option label="上级信访类" value="3" /> 8 <el-option label="上级信访类" value="3" />
  9 + <el-option label="现场信访类" value="4" />
9 </el-select> 10 </el-select>
10 </el-form-item> 11 </el-form-item>
11 <!-- 公文类 --> 12 <!-- 公文类 -->
12 <el-form-item label="来文单位" prop="company" v-if="form.type==0 || form.type==1"> 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 </el-form-item> 15 </el-form-item>
15 <el-form-item label="收文时间" prop="receiveTime" v-if="form.type==0 || form.type==1"> 16 <el-form-item label="收文时间" prop="receiveTime" v-if="form.type==0 || form.type==1">
16 <el-date-picker clearable size="small" style="width: 100%" 17 <el-date-picker clearable size="small" style="width: 100%"
17 v-model="form.receiveTime" 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 placeholder="选择收文时间"> 22 placeholder="选择收文时间">
21 </el-date-picker> 23 </el-date-picker>
22 </el-form-item> 24 </el-form-item>
23 <el-form-item label="文件标题" prop="title" v-if="form.type==0 || form.type==1"> 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 </el-form-item> 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 </el-form-item> 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 <el-date-picker clearable size="small" style="width: 100%" 33 <el-date-picker clearable size="small" style="width: 100%"
32 v-model="form.sendDate" 34 v-model="form.sendDate"
33 type="date" 35 type="date"
  36 + :disabled="true"
34 value-format="yyyy-MM-dd" 37 value-format="yyyy-MM-dd"
35 placeholder="选择信访日期"> 38 placeholder="选择信访日期">
36 </el-date-picker> 39 </el-date-picker>
37 </el-form-item> 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 </el-form-item> 43 </el-form-item>
41 <!-- 意见处 --> 44 <!-- 意见处 -->
42 <!-- <el-form-item label="办理意见" prop="opinion">--> 45 <!-- <el-form-item label="办理意见" prop="opinion">-->
trash-ui/src/views/office/handle/index.vue
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 <el-option label="公文批办类" value="1" /> 7 <el-option label="公文批办类" value="1" />
8 <el-option label="热线举报类" value="2" /> 8 <el-option label="热线举报类" value="2" />
9 <el-option label="上级信访类" value="3" /> 9 <el-option label="上级信访类" value="3" />
  10 + <el-option label="现场信访类" value="4" />
10 </el-select> 11 </el-select>
11 </el-form-item> 12 </el-form-item>
12 <el-form-item label="来文单位" prop="company"> 13 <el-form-item label="来文单位" prop="company">
@@ -68,26 +69,26 @@ @@ -68,26 +69,26 @@
68 v-hasPermi="['office:handle:add']" 69 v-hasPermi="['office:handle:add']"
69 >新增</el-button> 70 >新增</el-button>
70 </el-col> 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 <el-col :span="1.5"> 92 <el-col :span="1.5">
92 <el-button 93 <el-button
93 type="warning" 94 type="warning"
@@ -121,6 +122,11 @@ @@ -121,6 +122,11 @@
121 <el-table-column label="信访日期" align="center" prop="sendDate" /> 122 <el-table-column label="信访日期" align="center" prop="sendDate" />
122 <el-table-column label="诉求" align="center" prop="appeal" /> 123 <el-table-column label="诉求" align="center" prop="appeal" />
123 </el-table-column> 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 <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 130 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
125 <template slot-scope="scope"> 131 <template slot-scope="scope">
126 <el-button 132 <el-button
@@ -135,15 +141,16 @@ @@ -135,15 +141,16 @@
135 type="text" 141 type="text"
136 icon="el-icon-edit" 142 icon="el-icon-edit"
137 @click="handleUpdate(scope.row)" 143 @click="handleUpdate(scope.row)"
  144 + v-if="scope.row.status==2"
138 v-hasPermi="['office:handle:edit']" 145 v-hasPermi="['office:handle:edit']"
139 >修改</el-button> 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 </template> 154 </template>
148 </el-table-column> 155 </el-table-column>
149 </el-table> 156 </el-table>
@@ -165,6 +172,7 @@ @@ -165,6 +172,7 @@
165 <el-option label="公文批办类" value="1" /> 172 <el-option label="公文批办类" value="1" />
166 <el-option label="热线举报类" value="2" /> 173 <el-option label="热线举报类" value="2" />
167 <el-option label="上级信访类" value="3" /> 174 <el-option label="上级信访类" value="3" />
  175 + <el-option label="现场信访类" value="4" />
168 </el-select> 176 </el-select>
169 </el-form-item> 177 </el-form-item>
170 <!-- 公文类 --> 178 <!-- 公文类 -->
@@ -174,8 +182,8 @@ @@ -174,8 +182,8 @@
174 <el-form-item label="收文时间" prop="receiveTime" v-if="form.type==0 || form.type==1"> 182 <el-form-item label="收文时间" prop="receiveTime" v-if="form.type==0 || form.type==1">
175 <el-date-picker clearable size="small" style="width: 100%" 183 <el-date-picker clearable size="small" style="width: 100%"
176 v-model="form.receiveTime" 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 placeholder="选择收文时间"> 187 placeholder="选择收文时间">
180 </el-date-picker> 188 </el-date-picker>
181 </el-form-item> 189 </el-form-item>
@@ -183,10 +191,10 @@ @@ -183,10 +191,10 @@
183 <el-input v-model="form.title" placeholder="请输入文件标题" /> 191 <el-input v-model="form.title" placeholder="请输入文件标题" />
184 </el-form-item> 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 <el-input v-model="form.sendPerson" placeholder="请输入信访单位(人)" /> 195 <el-input v-model="form.sendPerson" placeholder="请输入信访单位(人)" />
188 </el-form-item> 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 <el-date-picker clearable size="small" style="width: 100%" 198 <el-date-picker clearable size="small" style="width: 100%"
191 v-model="form.sendDate" 199 v-model="form.sendDate"
192 type="date" 200 type="date"
@@ -194,7 +202,7 @@ @@ -194,7 +202,7 @@
194 placeholder="选择信访日期"> 202 placeholder="选择信访日期">
195 </el-date-picker> 203 </el-date-picker>
196 </el-form-item> 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 <el-input v-model="form.appeal" type="textarea" placeholder="请输入内容" :rows="6"/> 206 <el-input v-model="form.appeal" type="textarea" placeholder="请输入内容" :rows="6"/>
199 </el-form-item> 207 </el-form-item>
200 <!-- 意见处 --> 208 <!-- 意见处 -->
@@ -542,6 +550,8 @@ export default { @@ -542,6 +550,8 @@ export default {
542 return "热线举报"; 550 return "热线举报";
543 }else if(type==3){ 551 }else if(type==3){
544 return "上级信访" 552 return "上级信访"
  553 + }else if(type==4){
  554 + return "现场信访"
545 } 555 }
546 }, 556 },
547 changeType(){ 557 changeType(){
@@ -555,7 +565,7 @@ export default { @@ -555,7 +565,7 @@ export default {
555 this.rules.sendPerson[0].required = false; 565 this.rules.sendPerson[0].required = false;
556 this.rules.sendDate[0].required = false; 566 this.rules.sendDate[0].required = false;
557 this.rules.appeal[0].required = false; 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 this.form.title = null; 569 this.form.title = null;
560 this.form.company = null; 570 this.form.company = null;
561 this.form.receiveTime = null; 571 this.form.receiveTime = null;
trash-ui/src/views/office/leaveApplication/index.vue
@@ -10,34 +10,21 @@ @@ -10,34 +10,21 @@
10 @keyup.enter.native="handleQuery" 10 @keyup.enter.native="handleQuery"
11 /> 11 />
12 </el-form-item> 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 <el-option label="请选择字典生成" value=""/> 15 <el-option label="请选择字典生成" value=""/>
16 </el-select> 16 </el-select>
17 </el-form-item> 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 <el-form-item label="请假类型" prop="type"> 18 <el-form-item label="请假类型" prop="type">
32 <el-select v-model="queryParams.type" placeholder="请选择请假类型" clearable size="small"> 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 </el-select> 28 </el-select>
42 </el-form-item> 29 </el-form-item>
43 <el-form-item> 30 <el-form-item>
@@ -57,17 +44,17 @@ @@ -57,17 +44,17 @@
57 >新增 44 >新增
58 </el-button> 45 </el-button>
59 </el-col> 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 <!-- <el-col :span="1.5">--> 58 <!-- <el-col :span="1.5">-->
72 <!-- <el-button--> 59 <!-- <el-button-->
73 <!-- type="danger"--> 60 <!-- type="danger"-->
trash-ui/src/views/office/logistics/articleRequest.vue
1 <template> 1 <template>
2 - <logistics :type="1"/> 2 + <logistics :type="2"/>
3 </template> 3 </template>
4 4
5 <script> 5 <script>
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 import logistics from "./index"; 7 import logistics from "./index";
8 8
9 export default { 9 export default {
10 - name: "goods", 10 + name: "articleRequest",
11 components: { 11 components: {
12 logistics 12 logistics
13 }, 13 },
trash-ui/src/views/office/logistics/index.vue
@@ -2,18 +2,19 @@ @@ -2,18 +2,19 @@
2 <div class="app-container"> 2 <div class="app-container">
3 <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="105px"> 3 <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="105px">
4 <el-form-item label="申请部门" prop="deptId"> 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 </el-select> 8 </el-select>
9 </el-form-item> 9 </el-form-item>
10 - <el-form-item label="用章类型" prop="sealType"> 10 + <el-form-item label="用章类型" prop="sealType" v-if="type==0">
11 <el-select v-model="queryParams.sealType" placeholder="请选择用章类型" clearable size="small"> 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 </el-select> 15 </el-select>
15 </el-form-item> 16 </el-form-item>
16 - <el-form-item label="物品申请人" prop="staff"> 17 + <el-form-item label="物品申请人" prop="staff" v-if="type!=0">
17 <el-input 18 <el-input
18 v-model="queryParams.staff" 19 v-model="queryParams.staff"
19 placeholder="请输入申请人" 20 placeholder="请输入申请人"
@@ -22,15 +23,15 @@ @@ -22,15 +23,15 @@
22 @keyup.enter.native="handleQuery" 23 @keyup.enter.native="handleQuery"
23 /> 24 />
24 </el-form-item> 25 </el-form-item>
25 - <el-form-item label="物品申请日期" prop="useDate"> 26 + <el-form-item label="物品申请日期" prop="useDate" v-if="type!=0">
26 <el-date-picker clearable size="small" style="width: 200px" 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 </el-date-picker> 32 </el-date-picker>
32 </el-form-item> 33 </el-form-item>
33 - <el-form-item label="物品名称" prop="goodsName"> 34 + <el-form-item label="物品名称" prop="goodsName" v-if="type!=0">
34 <el-input 35 <el-input
35 v-model="queryParams.goodsName" 36 v-model="queryParams.goodsName"
36 placeholder="请输入物品名称" 37 placeholder="请输入物品名称"
@@ -53,28 +54,30 @@ @@ -53,28 +54,30 @@
53 size="mini" 54 size="mini"
54 @click="handleAdd" 55 @click="handleAdd"
55 v-hasPermi="['office:logistics:add']" 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 </el-col> 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 <el-col :span="1.5"> 81 <el-col :span="1.5">
79 <el-button 82 <el-button
80 type="warning" 83 type="warning"
@@ -82,64 +85,73 @@ @@ -82,64 +85,73 @@
82 size="mini" 85 size="mini"
83 @click="handleExport" 86 @click="handleExport"
84 v-hasPermi="['office:logistics:export']" 87 v-hasPermi="['office:logistics:export']"
85 - >导出</el-button> 88 + >导出
  89 + </el-button>
86 </el-col> 90 </el-col>
87 - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> 91 + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
88 </el-row> 92 </el-row>
89 93
90 <el-table v-loading="loading" :data="logisticsList" @selection-change="handleSelectionChange"> 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 </el-table-column> 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 </el-table-column> 127 </el-table-column>
120 <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 128 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
121 <template slot-scope="scope"> 129 <template slot-scope="scope">
122 <el-button 130 <el-button
123 size="mini" 131 size="mini"
124 type="text" 132 type="text"
125 - icon="el-icon-edit" 133 + icon="el-icon-view"
126 @click="handleInfo(scope.row)" 134 @click="handleInfo(scope.row)"
127 v-hasPermi="['office:logistics:edit']" 135 v-hasPermi="['office:logistics:edit']"
128 - >详情</el-button> 136 + >详情
  137 + </el-button>
129 <el-button 138 <el-button
130 size="mini" 139 size="mini"
131 type="text" 140 type="text"
132 icon="el-icon-edit" 141 icon="el-icon-edit"
133 @click="handleUpdate(scope.row)" 142 @click="handleUpdate(scope.row)"
  143 + v-if="scope.row.status==2"
134 v-hasPermi="['office:logistics:edit']" 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 </template> 155 </template>
144 </el-table-column> 156 </el-table-column>
145 </el-table> 157 </el-table>
@@ -153,61 +165,54 @@ @@ -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 <el-form ref="form" :model="form" :rules="rules" label-width="80px"> 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 <el-form-item label="申请部门" prop="deptId"> 170 <el-form-item label="申请部门" prop="deptId">
166 <el-select v-model="form.deptId" placeholder="请输入申请部门" style="width: 100%"> 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 </el-select> 173 </el-select>
170 </el-form-item> 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 <el-select v-model="form.sealType" placeholder="请选择用章类型" style="width: 100%"> 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 </el-select> 180 </el-select>
176 </el-form-item> 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 <el-date-picker clearable size="small" style="width: 100%" 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 </el-date-picker> 188 </el-date-picker>
184 </el-form-item> 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 <el-date-picker clearable size="small" style="width: 100%" 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 </el-date-picker> 196 </el-date-picker>
192 </el-form-item> 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 <el-input v-model="form.purpose" type="textarea" placeholder="请输入内容" :row="4"/> 199 <el-input v-model="form.purpose" type="textarea" placeholder="请输入内容" :row="4"/>
195 </el-form-item> 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 </el-form-item> 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 <el-date-picker clearable size="small" style="width: 100%" 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 </el-date-picker> 210 </el-date-picker>
206 </el-form-item> 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 </el-form-item> 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 <el-input v-model="form.quantity" placeholder="请输入数量" 216 <el-input v-model="form.quantity" placeholder="请输入数量"
212 @input="form.quantity=form.quantity.replace(/[^0-9]/g,'');" 217 @input="form.quantity=form.quantity.replace(/[^0-9]/g,'');"
213 /> 218 />
@@ -218,7 +223,7 @@ @@ -218,7 +223,7 @@
218 <el-button @click="cancel">取 消</el-button> 223 <el-button @click="cancel">取 消</el-button>
219 </div> 224 </div>
220 </el-dialog> 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 <logisticsInfo :idInfo="idInfo" @refresh="getList" v-if="openInfo"/> 227 <logisticsInfo :idInfo="idInfo" @refresh="getList" v-if="openInfo"/>
223 <div slot="footer" class="dialog-footer"> 228 <div slot="footer" class="dialog-footer">
224 <el-button @click="cancel">取 消</el-button> 229 <el-button @click="cancel">取 消</el-button>
@@ -228,8 +233,17 @@ @@ -228,8 +233,17 @@
228 </template> 233 </template>
229 234
230 <script> 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 import logisticsInfo from "./logisticsInfo"; 244 import logisticsInfo from "./logisticsInfo";
  245 +import {getDict} from "@/api/dict";
  246 +
233 export default { 247 export default {
234 name: "Logistics", 248 name: "Logistics",
235 props: { 249 props: {
@@ -264,7 +278,7 @@ export default { @@ -264,7 +278,7 @@ export default {
264 queryParams: { 278 queryParams: {
265 pageNum: 1, 279 pageNum: 1,
266 pageSize: 10, 280 pageSize: 10,
267 - type: null, 281 + type: this.type,
268 deptId: null, 282 deptId: null,
269 sealType: null, 283 sealType: null,
270 staff: null, 284 staff: null,
@@ -275,42 +289,44 @@ export default { @@ -275,42 +289,44 @@ export default {
275 form: {}, 289 form: {},
276 // 表单校验 290 // 表单校验
277 rules: { 291 rules: {
278 - type: [  
279 - { required: true, message: "必填", trigger: "blur" }  
280 - ],  
281 deptId: [ 292 deptId: [
282 - { required: true, message: "必填", trigger: "blur" } 293 + {required: true, message: "必填", trigger: "blur"}
283 ], 294 ],
284 sealType: [ 295 sealType: [
285 - { required: true, message: "必填", trigger: "change" } 296 + {required: true, message: "必填", trigger: "change"}
286 ], 297 ],
287 sealUpdateTime: [ 298 sealUpdateTime: [
288 - { required: true, message: "必填", trigger: "blur" } 299 + {required: true, message: "必填", trigger: "blur"}
289 ], 300 ],
290 sealEndTime: [ 301 sealEndTime: [
291 - { required: true, message: "必填", trigger: "blur" } 302 + {required: true, message: "必填", trigger: "blur"}
292 ], 303 ],
293 purpose: [ 304 purpose: [
294 - { required: true, message: "必填", trigger: "blur" } 305 + {required: true, message: "必填", trigger: "blur"}
295 ], 306 ],
296 staff: [ 307 staff: [
297 - { required: true, message: "必填", trigger: "blur" } 308 + {required: true, message: "必填", trigger: "blur"}
298 ], 309 ],
299 useDate: [ 310 useDate: [
300 - { required: true, message: "必填", trigger: "blur" } 311 + {required: true, message: "必填", trigger: "blur"}
301 ], 312 ],
302 goodsName: [ 313 goodsName: [
303 - { required: true, message: "必填", trigger: "blur" } 314 + {required: true, message: "必填", trigger: "blur"}
304 ], 315 ],
305 quantity: [ 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 created() { 325 created() {
  326 + let dep = {type:"CSUserDepartmentType"};
  327 + getDict(dep).then(res=>{
  328 + this.depts = res.result;
  329 + });
314 this.getList(); 330 this.getList();
315 }, 331 },
316 methods: { 332 methods: {
@@ -332,8 +348,6 @@ export default { @@ -332,8 +348,6 @@ export default {
332 // 表单重置 348 // 表单重置
333 reset() { 349 reset() {
334 this.form = { 350 this.form = {
335 - id: null,  
336 - type: null,  
337 deptId: null, 351 deptId: null,
338 sealType: null, 352 sealType: null,
339 sealUpdateTime: null, 353 sealUpdateTime: null,
@@ -354,6 +368,7 @@ export default { @@ -354,6 +368,7 @@ export default {
354 /** 搜索按钮操作 */ 368 /** 搜索按钮操作 */
355 handleQuery() { 369 handleQuery() {
356 this.queryParams.pageNum = 1; 370 this.queryParams.pageNum = 1;
  371 + this.queryParams.type = this.type;
357 this.getList(); 372 this.getList();
358 }, 373 },
359 /** 重置按钮操作 */ 374 /** 重置按钮操作 */
@@ -364,7 +379,7 @@ export default { @@ -364,7 +379,7 @@ export default {
364 // 多选框选中数据 379 // 多选框选中数据
365 handleSelectionChange(selection) { 380 handleSelectionChange(selection) {
366 this.ids = selection.map(item => item.id) 381 this.ids = selection.map(item => item.id)
367 - this.single = selection.length!==1 382 + this.single = selection.length !== 1
368 this.multiple = !selection.length 383 this.multiple = !selection.length
369 }, 384 },
370 /** 新增按钮操作 */ 385 /** 新增按钮操作 */
@@ -374,7 +389,7 @@ export default { @@ -374,7 +389,7 @@ export default {
374 this.title = "添加后勤管理"; 389 this.title = "添加后勤管理";
375 }, 390 },
376 /** 查看按钮操作 */ 391 /** 查看按钮操作 */
377 - handleInfo(row){ 392 + handleInfo(row) {
378 this.idInfo = row.id; 393 this.idInfo = row.id;
379 this.openInfo = true; 394 this.openInfo = true;
380 this.title = "查看后勤管理"; 395 this.title = "查看后勤管理";
@@ -391,6 +406,7 @@ export default { @@ -391,6 +406,7 @@ export default {
391 }, 406 },
392 /** 提交按钮 */ 407 /** 提交按钮 */
393 submitForm() { 408 submitForm() {
  409 + this.form.type = this.type;
394 this.$refs["form"].validate(valid => { 410 this.$refs["form"].validate(valid => {
395 if (valid) { 411 if (valid) {
396 if (this.form.id != null) { 412 if (this.form.id != null) {
@@ -413,57 +429,65 @@ export default { @@ -413,57 +429,65 @@ export default {
413 handleDelete(row) { 429 handleDelete(row) {
414 const ids = row.id || this.ids; 430 const ids = row.id || this.ids;
415 this.$confirm('是否确认删除后勤管理编号为"' + ids + '"的数据项?', "警告", { 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 handleExport() { 443 handleExport() {
428 const queryParams = this.queryParams; 444 const queryParams = this.queryParams;
429 this.$confirm('是否确认导出所有后勤管理数据项?', "警告", { 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 this.form.staff = null; 457 this.form.staff = null;
442 this.form.useDate = null; 458 this.form.useDate = null;
443 this.form.goodsName = null; 459 this.form.goodsName = null;
444 this.form.quantity = null; 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 this.form.sealType = null; 470 this.form.sealType = null;
455 this.form.sealUpdateTime = null; 471 this.form.sealUpdateTime = null;
456 this.form.sealEndTime = null; 472 this.form.sealEndTime = null;
457 this.form.purpose = null; 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 <template> 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 <el-form-item label="申请部门" prop="deptId"> 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 </el-select> 6 </el-select>
15 </el-form-item> 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 </el-select> 13 </el-select>
21 </el-form-item> 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 <el-date-picker clearable size="small" style="width: 100%" 16 <el-date-picker clearable size="small" style="width: 100%"
24 v-model="form.sealUpdateTime" 17 v-model="form.sealUpdateTime"
25 type="date" 18 type="date"
  19 + :disabled="true"
26 value-format="yyyy-MM-dd" 20 value-format="yyyy-MM-dd"
27 placeholder="选择更新时间"> 21 placeholder="选择更新时间">
28 </el-date-picker> 22 </el-date-picker>
29 </el-form-item> 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 <el-date-picker clearable size="small" style="width: 100%" 25 <el-date-picker clearable size="small" style="width: 100%"
32 v-model="form.sealEndTime" 26 v-model="form.sealEndTime"
33 type="date" 27 type="date"
34 value-format="yyyy-MM-dd" 28 value-format="yyyy-MM-dd"
  29 + :disabled="true"
35 placeholder="选择结束时间"> 30 placeholder="选择结束时间">
36 </el-date-picker> 31 </el-date-picker>
37 </el-form-item> 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 </el-form-item> 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 </el-form-item> 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 <el-date-picker clearable size="small" style="width: 100%" 40 <el-date-picker clearable size="small" style="width: 100%"
46 v-model="form.useDate" 41 v-model="form.useDate"
47 type="date" 42 type="date"
48 value-format="yyyy-MM-dd" 43 value-format="yyyy-MM-dd"
  44 + :disabled="true"
49 placeholder="选择申请日期"> 45 placeholder="选择申请日期">
50 </el-date-picker> 46 </el-date-picker>
51 </el-form-item> 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 </el-form-item> 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 </el-form-item> 56 </el-form-item>
60 </el-form> 57 </el-form>
61 </template> 58 </template>
62 59
63 <script> 60 <script>
64 import {getLogistics} from "@/api/office/logistics"; 61 import {getLogistics} from "@/api/office/logistics";
  62 +import {getDict} from "@/api/dict";
65 export default { 63 export default {
66 name: "logisticsInfo", 64 name: "logisticsInfo",
67 props: { 65 props: {
@@ -74,16 +72,23 @@ export default { @@ -74,16 +72,23 @@ export default {
74 }, 72 },
75 data() { 73 data() {
76 return { 74 return {
77 - form: {} 75 + form: {},
  76 + type:null,
  77 + depts:[]
78 } 78 }
79 }, 79 },
80 created() { 80 created() {
  81 + let dep = {type:"CSUserDepartmentType"};
  82 + getDict(dep).then(res=>{
  83 + this.depts = res.result;
  84 + });
81 this.init(); 85 this.init();
82 }, 86 },
83 methods:{ 87 methods:{
84 init(){ 88 init(){
85 getLogistics(this.idInfo).then(response => { 89 getLogistics(this.idInfo).then(response => {
86 this.form = response.data 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,8 +29,8 @@
29 <el-form-item label="开始时间" prop="contractBeginDate"> 29 <el-form-item label="开始时间" prop="contractBeginDate">
30 <el-date-picker clearable size="small" style="width: 100%;" 30 <el-date-picker clearable size="small" style="width: 100%;"
31 v-model="form.contractBeginDate" 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 :disabled="true" 34 :disabled="true"
35 placeholder="选择合同开始时间"> 35 placeholder="选择合同开始时间">
36 </el-date-picker> 36 </el-date-picker>
@@ -40,8 +40,8 @@ @@ -40,8 +40,8 @@
40 <el-form-item label="结束时间" prop="contractEndDate"> 40 <el-form-item label="结束时间" prop="contractEndDate">
41 <el-date-picker clearable size="small" style="width: 100%;" 41 <el-date-picker clearable size="small" style="width: 100%;"
42 v-model="form.contractEndDate" 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 :disabled="true" 45 :disabled="true"
46 placeholder="选择合同结束时间"> 46 placeholder="选择合同结束时间">
47 </el-date-picker> 47 </el-date-picker>
@@ -60,20 +60,30 @@ @@ -60,20 +60,30 @@
60 <el-col :span="11"> 60 <el-col :span="11">
61 <el-form-item label="合同状态" prop="contractState"> 61 <el-form-item label="合同状态" prop="contractState">
62 <el-select v-model="form.contractState" placeholder="请选择状态" style="width: 100%;" :disabled="true"> 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 </el-select> 68 </el-select>
67 </el-form-item> 69 </el-form-item>
68 </el-col> 70 </el-col>
69 </el-row> 71 </el-row>
70 <el-row :gutter="2"> 72 <el-row :gutter="2">
71 <el-col :span="11"> 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 </el-select> 87 </el-select>
78 </el-form-item> 88 </el-form-item>
79 </el-col> 89 </el-col>
trash-ui/src/views/office/management/index.vue
1 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
3 <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="105px"> 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 <el-form-item label="合同名称" prop="contractName"> 4 <el-form-item label="合同名称" prop="contractName">
14 <el-input 5 <el-input
15 v-model="queryParams.contractName" 6 v-model="queryParams.contractName"
@@ -19,52 +10,14 @@ @@ -19,52 +10,14 @@
19 @keyup.enter.native="handleQuery" 10 @keyup.enter.native="handleQuery"
20 /> 11 />
21 </el-form-item> 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 <el-form-item label="合同状态" prop="contractState"> 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 </el-select> 21 </el-select>
69 </el-form-item> 22 </el-form-item>
70 <el-form-item> 23 <el-form-item>
@@ -121,23 +74,16 @@ @@ -121,23 +74,16 @@
121 74
122 <el-table v-loading="loading" :data="managementList" @selection-change="handleSelectionChange"> 75 <el-table v-loading="loading" :data="managementList" @selection-change="handleSelectionChange">
123 <el-table-column type="selection" width="55" align="center"/> 76 <el-table-column type="selection" width="55" align="center"/>
124 - <el-table-column label="合同编号" align="center" prop="contractNumber"/>  
125 <el-table-column label="合同名称" align="center" prop="contractName"/> 77 <el-table-column label="合同名称" align="center" prop="contractName"/>
126 - <el-table-column label="甲方" align="center" prop="firstParty"/>  
127 <el-table-column label="乙方" align="center" prop="secondParty"/> 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 <el-table-column label="合同金额" align="center" prop="contractMoney"/> 80 <el-table-column label="合同金额" align="center" prop="contractMoney"/>
139 <el-table-column label="合同状态" align="center" prop="contractState"/> 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 <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> 87 <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
142 <template slot-scope="scope"> 88 <template slot-scope="scope">
143 <el-button 89 <el-button
@@ -154,7 +100,7 @@ @@ -154,7 +100,7 @@
154 icon="el-icon-edit" 100 icon="el-icon-edit"
155 @click="handleUpdate(scope.row)" 101 @click="handleUpdate(scope.row)"
156 v-hasPermi="['office:management:edit']" 102 v-hasPermi="['office:management:edit']"
157 - >修改 103 + >编辑
158 </el-button> 104 </el-button>
159 <el-button 105 <el-button
160 size="mini" 106 size="mini"
@@ -177,24 +123,24 @@ @@ -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 <el-row :gutter="2"> 128 <el-row :gutter="2">
183 <el-col :span="11"> 129 <el-col :span="11">
184 <el-form-item label="合同编号" prop="contractNumber"> 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 </el-form-item> 132 </el-form-item>
187 </el-col> 133 </el-col>
188 <el-col :span="11"> 134 <el-col :span="11">
189 <el-form-item label="合同名称" prop="contractName"> 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 </el-form-item> 137 </el-form-item>
192 </el-col> 138 </el-col>
193 </el-row> 139 </el-row>
194 <el-row :gutter="2"> 140 <el-row :gutter="2">
195 <el-col :span="11"> 141 <el-col :span="11">
196 <el-form-item label="甲方" prop="firstParty"> 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 </el-form-item> 144 </el-form-item>
199 </el-col> 145 </el-col>
200 <el-col :span="11"> 146 <el-col :span="11">
@@ -208,8 +154,8 @@ @@ -208,8 +154,8 @@
208 <el-form-item label="开始时间" prop="contractBeginDate"> 154 <el-form-item label="开始时间" prop="contractBeginDate">
209 <el-date-picker clearable size="small" style="width: 100%;" 155 <el-date-picker clearable size="small" style="width: 100%;"
210 v-model="form.contractBeginDate" 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 placeholder="选择合同开始时间"> 159 placeholder="选择合同开始时间">
214 </el-date-picker> 160 </el-date-picker>
215 </el-form-item> 161 </el-form-item>
@@ -218,8 +164,8 @@ @@ -218,8 +164,8 @@
218 <el-form-item label="结束时间" prop="contractEndDate"> 164 <el-form-item label="结束时间" prop="contractEndDate">
219 <el-date-picker clearable size="small" style="width: 100%;" 165 <el-date-picker clearable size="small" style="width: 100%;"
220 v-model="form.contractEndDate" 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 placeholder="选择合同结束时间"> 169 placeholder="选择合同结束时间">
224 </el-date-picker> 170 </el-date-picker>
225 </el-form-item> 171 </el-form-item>
@@ -230,35 +176,48 @@ @@ -230,35 +176,48 @@
230 <el-form-item label="合同金额" prop="contractMoney"> 176 <el-form-item label="合同金额" prop="contractMoney">
231 <el-input v-model="form.contractMoney" 177 <el-input v-model="form.contractMoney"
232 @input="form.contractMoney=form.contractMoney.replace(/[^0-9.]/g,'').replace(/^\./g, '').replace('.', 'dollar#dollar').replace(/\./g, '').replace('dollar#dollar', '.');" 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 placeholder="请输入合同金额"/> 180 placeholder="请输入合同金额"/>
234 </el-form-item> 181 </el-form-item>
235 </el-col> 182 </el-col>
236 <el-col :span="11"> 183 <el-col :span="11">
237 <el-form-item label="合同状态" prop="contractState"> 184 <el-form-item label="合同状态" prop="contractState">
238 <el-select v-model="form.contractState" placeholder="请选择状态" style="width: 100%;"> 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 </el-select> 191 </el-select>
243 </el-form-item> 192 </el-form-item>
244 </el-col> 193 </el-col>
245 </el-row> 194 </el-row>
246 <el-row :gutter="2"> 195 <el-row :gutter="2">
247 <el-col :span="11"> 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 </el-select> 210 </el-select>
254 </el-form-item> 211 </el-form-item>
255 </el-col> 212 </el-col>
  213 + </el-row>
  214 + <el-row>
256 <el-col :span="11"> 215 <el-col :span="11">
257 <el-form-item prop="fileEntityList" label="附件"> 216 <el-form-item prop="fileEntityList" label="附件">
258 <el-upload 217 <el-upload
259 ref="upload" 218 ref="upload"
260 action="" 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 :on-change="fileChange" 221 :on-change="fileChange"
263 :auto-upload="false" 222 :auto-upload="false"
264 :show-file-list="false" 223 :show-file-list="false"
@@ -319,6 +278,7 @@ import { @@ -319,6 +278,7 @@ import {
319 } from "@/api/office/management"; 278 } from "@/api/office/management";
320 import FileUpload from '@/components/FileUpload'; 279 import FileUpload from '@/components/FileUpload';
321 import contractInfo from './contractInfo'; 280 import contractInfo from './contractInfo';
  281 +import {getDict} from "@/api/dict";
322 282
323 export default { 283 export default {
324 name: "Management", 284 name: "Management",
@@ -358,8 +318,7 @@ export default { @@ -358,8 +318,7 @@ export default {
358 contractEndDate: null, 318 contractEndDate: null,
359 contractMoney: null, 319 contractMoney: null,
360 contractState: null, 320 contractState: null,
361 - deptid: null,  
362 - deptname: null, 321 + deptName: null,
363 attachments: null 322 attachments: null
364 }, 323 },
365 // 表单参数 324 // 表单参数
@@ -367,39 +326,45 @@ export default { @@ -367,39 +326,45 @@ export default {
367 // 表单校验 326 // 表单校验
368 rules: { 327 rules: {
369 contractNumber: [ 328 contractNumber: [
370 - {required: true, message: "请输入合同编号", trigger: "blur"} 329 + {required: true, message: "必填", trigger: "blur"}
371 ], 330 ],
372 contractName: [ 331 contractName: [
373 - {required: true, message: "请输入合同名称", trigger: "blur"} 332 + {required: true, message: "必填", trigger: "blur"}
374 ], 333 ],
375 firstParty: [ 334 firstParty: [
376 - {required: true, message: "请输入甲方", trigger: "blur"} 335 + {required: true, message: "必填", trigger: "blur"}
377 ], 336 ],
378 secondParty: [ 337 secondParty: [
379 - {required: true, message: "请输入乙方", trigger: "blur"} 338 + {required: true, message: "必填", trigger: "blur"}
380 ], 339 ],
381 contractBeginDate: [ 340 contractBeginDate: [
382 - {required: true, message: "请选择合同开始时间", trigger: "blur"} 341 + {required: true, message: "必填", trigger: "blur"}
383 ], 342 ],
384 contractEndDate: [ 343 contractEndDate: [
385 - {required: true, message: "请选择合同结束时间", trigger: "blur"} 344 + {required: true, message: "必填", trigger: "blur"}
386 ], 345 ],
387 contractMoney: [ 346 contractMoney: [
388 - {required: true, message: "请输入合同金额", trigger: "blur"} 347 + {required: true, message: "必填", trigger: "blur"}
389 ], 348 ],
390 contractState: [ 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 fileEntityList: [], 356 fileEntityList: [],
398 openInfo: false, 357 openInfo: false,
399 idInfo:null, 358 idInfo:null,
  359 + depts:[]
400 }; 360 };
401 }, 361 },
402 created() { 362 created() {
  363 + let dep = {type:"CSUserDepartmentType"};
  364 +
  365 + getDict(dep).then(res=>{
  366 + this.depts = res.result;
  367 + });
403 this.getList(); 368 this.getList();
404 }, 369 },
405 methods: { 370 methods: {
@@ -430,8 +395,7 @@ export default { @@ -430,8 +395,7 @@ export default {
430 contractEndDate: null, 395 contractEndDate: null,
431 contractMoney: null, 396 contractMoney: null,
432 contractState: null, 397 contractState: null,
433 - deptid: null,  
434 - deptname: null, 398 + deptName: null,
435 attachments: null 399 attachments: null
436 }; 400 };
437 this.fileEntityList = []; 401 this.fileEntityList = [];
@@ -463,6 +427,7 @@ export default { @@ -463,6 +427,7 @@ export default {
463 /** 新增按钮操作 */ 427 /** 新增按钮操作 */
464 handleAdd() { 428 handleAdd() {
465 this.reset(); 429 this.reset();
  430 + this.form.firstParty = "长沙市渣土事务中心";
466 this.open = true; 431 this.open = true;
467 this.title = "添加合同管理"; 432 this.title = "添加合同管理";
468 }, 433 },
@@ -484,6 +449,12 @@ export default { @@ -484,6 +449,12 @@ export default {
484 if (valid) { 449 if (valid) {
485 let formData = new FormData(); 450 let formData = new FormData();
486 let form = this.form; 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 //去掉params属性 458 //去掉params属性
488 delete form.params; 459 delete form.params;
489 formData.append('fileList', null); 460 formData.append('fileList', null);
@@ -552,10 +523,11 @@ export default { @@ -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 * 大小不超过5M 527 * 大小不超过5M
557 * */ 528 * */
558 fileChange(file, fileList) { 529 fileChange(file, fileList) {
  530 + console.log(fileList)
559 let count = 0; 531 let count = 0;
560 for (let i = 0; i < fileList.length; i++) { 532 for (let i = 0; i < fileList.length; i++) {
561 // console.log(fileList.length) 533 // console.log(fileList.length)
@@ -580,7 +552,7 @@ export default { @@ -580,7 +552,7 @@ export default {
580 } 552 }
581 let fileType = file.name.substring(file.name.lastIndexOf('.') + 1).toLowerCase(); 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 let max5M = file.size / 1024 / 1024 < 5; 556 let max5M = file.size / 1024 / 1024 < 5;
585 if (!max5M) { 557 if (!max5M) {
586 this.$message({ 558 this.$message({
@@ -593,7 +565,7 @@ export default { @@ -593,7 +565,7 @@ export default {
593 } 565 }
594 } else { 566 } else {
595 this.$message({ 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 type: 'warning' 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,7 +57,7 @@ public class ConferenceController extends BaseController
57 { 57 {
58 List<Conference> list = conferenceService.selectConferenceList(conference); 58 List<Conference> list = conferenceService.selectConferenceList(conference);
59 ExcelUtil<Conference> util = new ExcelUtil<Conference>(Conference.class); 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,7 +55,7 @@ public class ContractManagementController extends BaseController
55 { 55 {
56 List<ContractManagement> list = contractManagementService.selectContractManagementList(contractManagement); 56 List<ContractManagement> list = contractManagementService.selectContractManagementList(contractManagement);
57 ExcelUtil<ContractManagement> util = new ExcelUtil<ContractManagement>(ContractManagement.class); 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,7 +57,7 @@ public class HandleAffairsCommonController extends BaseController
57 { 57 {
58 List<HandleAffairsCommon> list = handleAffairsCommonService.selectHandleAffairsCommonList(handleAffairsCommon); 58 List<HandleAffairsCommon> list = handleAffairsCommonService.selectHandleAffairsCommonList(handleAffairsCommon);
59 ExcelUtil<HandleAffairsCommon> util = new ExcelUtil<HandleAffairsCommon>(HandleAffairsCommon.class); 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,7 +54,7 @@ public class HandleAffairsController extends BaseController {
54 public AjaxResult export(HandleAffairs handleAffairs) { 54 public AjaxResult export(HandleAffairs handleAffairs) {
55 List<HandleAffairs> list = handleAffairsService.selectHandleAffairsList(handleAffairs); 55 List<HandleAffairs> list = handleAffairsService.selectHandleAffairsList(handleAffairs);
56 ExcelUtil<HandleAffairs> util = new ExcelUtil<HandleAffairs>(HandleAffairs.class); 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,7 +57,7 @@ public class HandleAffairsXfController extends BaseController
57 { 57 {
58 List<HandleAffairsXf> list = handleAffairsXfService.selectHandleAffairsXfList(handleAffairsXf); 58 List<HandleAffairsXf> list = handleAffairsXfService.selectHandleAffairsXfList(handleAffairsXf);
59 ExcelUtil<HandleAffairsXf> util = new ExcelUtil<HandleAffairsXf>(HandleAffairsXf.class); 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,7 +58,7 @@ public class LeaveApplicationController extends BaseController
58 { 58 {
59 List<LeaveApplication> list = leaveApplicationService.selectLeaveApplicationList(leaveApplication); 59 List<LeaveApplication> list = leaveApplicationService.selectLeaveApplicationList(leaveApplication);
60 ExcelUtil<LeaveApplication> util = new ExcelUtil<LeaveApplication>(LeaveApplication.class); 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,7 +55,7 @@ public class LogisticsManagementController extends BaseController
55 { 55 {
56 List<LogisticsManagement> list = logisticsManagementService.selectLogisticsManagementList(logisticsManagement); 56 List<LogisticsManagement> list = logisticsManagementService.selectLogisticsManagementList(logisticsManagement);
57 ExcelUtil<LogisticsManagement> util = new ExcelUtil<LogisticsManagement>(LogisticsManagement.class); 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,11 +30,9 @@ public class Conference extends BaseEntity
30 private String conferenceSite; 30 private String conferenceSite;
31 31
32 /** 科室id */ 32 /** 科室id */
33 - @Excel(name = "科室id")  
34 - private Long deptId; 33 + private Integer deptId;
35 34
36 - /** 科室名称 */  
37 - @Excel(name = "科室名称") 35 +// @Excel(name = "部门")
38 private String deptName; 36 private String deptName;
39 37
40 /** 参会人员 */ 38 /** 参会人员 */
@@ -42,23 +40,21 @@ public class Conference extends BaseEntity @@ -42,23 +40,21 @@ public class Conference extends BaseEntity
42 private String staff; 40 private String staff;
43 41
44 /** 会议主题 */ 42 /** 会议主题 */
45 - @Excel(name = "会议主题")  
46 private String subject; 43 private String subject;
47 44
48 /** 会议内容 */ 45 /** 会议内容 */
49 - @Excel(name = "会议内容")  
50 private String content; 46 private String content;
51 47
52 /** 会议要求 */ 48 /** 会议要求 */
53 - @Excel(name = "会议要求")  
54 private String requirement; 49 private String requirement;
55 50
56 /** 通知区级分平台或者公司分平台 51 /** 通知区级分平台或者公司分平台
57 * 1:区级分平台,2:公司分平台,1,2:都通知 52 * 1:区级分平台,2:公司分平台,1,2:都通知
58 */ 53 */
59 - @Excel(name = "通知区级分平台或者公司分平台") 54 + //@Excel(name = "通知区级分平台或者公司分平台")
60 private String notify; 55 private String notify;
61 56
  57 + @Excel(name = "审批状态")
62 private Integer status; 58 private Integer status;
63 59
64 public Integer getStatus() { 60 public Integer getStatus() {
@@ -69,6 +65,15 @@ public class Conference extends BaseEntity @@ -69,6 +65,15 @@ public class Conference extends BaseEntity
69 this.status = status; 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 public String getRequirement() { 77 public String getRequirement() {
73 return requirement; 78 return requirement;
74 } 79 }
@@ -82,7 +87,7 @@ public class Conference extends BaseEntity @@ -82,7 +87,7 @@ public class Conference extends BaseEntity
82 this.id = id; 87 this.id = id;
83 } 88 }
84 89
85 - public Long getId() 90 + public Long getId()
86 { 91 {
87 return id; 92 return id;
88 } 93 }
@@ -104,24 +109,15 @@ public class Conference extends BaseEntity @@ -104,24 +109,15 @@ public class Conference extends BaseEntity
104 { 109 {
105 return conferenceSite; 110 return conferenceSite;
106 } 111 }
107 - public void setDeptId(Long deptId) 112 + public void setDeptId(Integer deptId)
108 { 113 {
109 this.deptId = deptId; 114 this.deptId = deptId;
110 } 115 }
111 116
112 - public Long getDeptId() 117 + public Integer getDeptId()
113 { 118 {
114 return deptId; 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 public void setStaff(String staff) 121 public void setStaff(String staff)
126 { 122 {
127 this.staff = staff; 123 this.staff = staff;
@@ -166,7 +162,6 @@ public class Conference extends BaseEntity @@ -166,7 +162,6 @@ public class Conference extends BaseEntity
166 .append("conferenceTime", getConferenceTime()) 162 .append("conferenceTime", getConferenceTime())
167 .append("conferenceSite", getConferenceSite()) 163 .append("conferenceSite", getConferenceSite())
168 .append("deptId", getDeptId()) 164 .append("deptId", getDeptId())
169 - .append("deptName", getDeptName())  
170 .append("staff", getStaff()) 165 .append("staff", getStaff())
171 .append("subject", getSubject()) 166 .append("subject", getSubject())
172 .append("content", getContent()) 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,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 private Date contractBeginDate; 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 private Date contractEndDate; 61 private Date contractEndDate;
62 62
63 /** 63 /**
@@ -75,19 +75,30 @@ public class ContractManagement extends BaseEntity { @@ -75,19 +75,30 @@ public class ContractManagement extends BaseEntity {
75 /** 75 /**
76 * 责任科室id 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 private Integer status; 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 public Integer getStatus() { 102 public Integer getStatus() {
92 return status; 103 return status;
93 } 104 }
@@ -168,20 +179,12 @@ public class ContractManagement extends BaseEntity { @@ -168,20 +179,12 @@ public class ContractManagement extends BaseEntity {
168 return contractState; 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,8 +200,8 @@ public class ContractManagement extends BaseEntity {
197 .append("contractEndDate", getContractEndDate()) 200 .append("contractEndDate", getContractEndDate())
198 .append("contractMoney", getContractMoney()) 201 .append("contractMoney", getContractMoney())
199 .append("contractState", getContractState()) 202 .append("contractState", getContractState())
200 - .append("deptid", getDeptid())  
201 - .append("deptname", getDeptname()) 203 + .append("deptName", getDeptName())
  204 + .append("signTime", getSignTime())
202 .toString(); 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,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 private Date receiveTime; 36 private Date receiveTime;
37 37
38 /** 38 /**
@@ -67,29 +67,24 @@ public class HandleAffairs extends BaseEntity { @@ -67,29 +67,24 @@ public class HandleAffairs extends BaseEntity {
67 private Date sendDate; 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 private Integer status; 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 public Date getSendDate() { 88 public Date getSendDate() {
94 return sendDate; 89 return sendDate;
95 } 90 }
@@ -154,30 +149,6 @@ public class HandleAffairs extends BaseEntity { @@ -154,30 +149,6 @@ public class HandleAffairs extends BaseEntity {
154 return sendPerson; 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 public void setStatus(Integer status) { 152 public void setStatus(Integer status) {
182 this.status = status; 153 this.status = status;
183 } 154 }
@@ -197,9 +168,6 @@ public class HandleAffairs extends BaseEntity { @@ -197,9 +168,6 @@ public class HandleAffairs extends BaseEntity {
197 .append("appeal", getAppeal()) 168 .append("appeal", getAppeal())
198 .append("sendPerson", getSendPerson()) 169 .append("sendPerson", getSendPerson())
199 .append("sendDate", getSendDate()) 170 .append("sendDate", getSendDate())
200 - .append("isRead", getIsRead())  
201 - .append("opinion", getOpinion())  
202 - .append("deptOpinion", getDeptOpinion())  
203 .append("status", getStatus()) 171 .append("status", getStatus())
204 .append("createTime", getCreateTime()) 172 .append("createTime", getCreateTime())
205 .append("createBy", getCreateBy()) 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,11 +25,11 @@ public class LeaveApplication extends BaseEntity
25 private String applicant; 25 private String applicant;
26 26
27 /** 部门id */ 27 /** 部门id */
28 - @Excel(name = "部门id") 28 +// @Excel(name = "部门id")
29 private Long deptId; 29 private Long deptId;
30 30
31 /** 职务id */ 31 /** 职务id */
32 - @Excel(name = "职务id") 32 +// @Excel(name = "职务id")
33 private Long positionId; 33 private Long positionId;
34 34
35 35
@@ -59,7 +59,7 @@ public class LeaveApplication extends BaseEntity @@ -59,7 +59,7 @@ public class LeaveApplication extends BaseEntity
59 private String content; 59 private String content;
60 60
61 /** 审批状态 0待审核/1审核通过/2驳回 */ 61 /** 审批状态 0待审核/1审核通过/2驳回 */
62 - @Excel(name = "审批状态") 62 + @Excel(name = "审批状态", readConverterExp = "0=审批中,1=审批通过,2=被驳回")
63 private Integer status; 63 private Integer status;
64 64
65 public void setId(Long id) 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,7 +64,7 @@ public class LogisticsManagement extends BaseEntity
64 private Integer quantity; 64 private Integer quantity;
65 65
66 /** 审核状态 */ 66 /** 审核状态 */
67 - @Excel(name = "审核状态") 67 + @Excel(name = "审批状态", readConverterExp = "0=审批中,1=审批通过,2=被驳回")
68 private Integer status; 68 private Integer status;
69 69
70 public void setId(Long id) 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 package com.trash.office.service.impl; 1 package com.trash.office.service.impl;
2 2
3 import java.io.IOException; 3 import java.io.IOException;
  4 +import java.util.ArrayList;
4 import java.util.List; 5 import java.util.List;
5 import java.util.stream.Collectors; 6 import java.util.stream.Collectors;
6 7
@@ -9,6 +10,7 @@ import com.trash.common.utils.SecurityUtils; @@ -9,6 +10,7 @@ import com.trash.common.utils.SecurityUtils;
9 import com.trash.common.utils.file.FileUploadUtils; 10 import com.trash.common.utils.file.FileUploadUtils;
10 import com.trash.common.utils.uuid.UUID; 11 import com.trash.common.utils.uuid.UUID;
11 import com.trash.office.domain.ContractManagement; 12 import com.trash.office.domain.ContractManagement;
  13 +import com.trash.office.domain.LogisticsManagement;
12 import com.trash.office.domain.UploadFile; 14 import com.trash.office.domain.UploadFile;
13 import com.trash.office.domain.vo.ConferenceVo; 15 import com.trash.office.domain.vo.ConferenceVo;
14 import com.trash.office.domain.vo.ContractManagementVo; 16 import com.trash.office.domain.vo.ContractManagementVo;
@@ -18,6 +20,10 @@ import com.trash.workflow.mapper.WorkflowMapper; @@ -18,6 +20,10 @@ import com.trash.workflow.mapper.WorkflowMapper;
18 import org.activiti.api.process.model.ProcessInstance; 20 import org.activiti.api.process.model.ProcessInstance;
19 import org.activiti.api.process.model.builders.ProcessPayloadBuilder; 21 import org.activiti.api.process.model.builders.ProcessPayloadBuilder;
20 import org.activiti.api.process.runtime.ProcessRuntime; 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 import org.springframework.beans.factory.annotation.Autowired; 27 import org.springframework.beans.factory.annotation.Autowired;
22 import org.springframework.stereotype.Service; 28 import org.springframework.stereotype.Service;
23 import com.trash.office.mapper.ConferenceMapper; 29 import com.trash.office.mapper.ConferenceMapper;
@@ -47,6 +53,8 @@ public class ConferenceServiceImpl implements IConferenceService { @@ -47,6 +53,8 @@ public class ConferenceServiceImpl implements IConferenceService {
47 @Autowired 53 @Autowired
48 private WorkflowMapper workflowMapper; 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,7 +66,7 @@ public class ConferenceServiceImpl implements IConferenceService {
58 ConferenceVo ConferenceVo = new ConferenceVo(); 66 ConferenceVo ConferenceVo = new ConferenceVo();
59 ConferenceVo.setConference(conferenceMapper.selectConferenceById(id)); 67 ConferenceVo.setConference(conferenceMapper.selectConferenceById(id));
60 UploadFile uploadFile = new UploadFile(); 68 UploadFile uploadFile = new UploadFile();
61 - uploadFile.setTableName("conferrnce"); 69 + uploadFile.setTableName("conference");
62 uploadFile.setTableNumber(ConferenceVo.getConference().getId().toString()); 70 uploadFile.setTableNumber(ConferenceVo.getConference().getId().toString());
63 List<UploadFile> list = uploadFileMapper.selectUploadFileList(uploadFile); 71 List<UploadFile> list = uploadFileMapper.selectUploadFileList(uploadFile);
64 ConferenceVo.setUploadFiles(list); 72 ConferenceVo.setUploadFiles(list);
@@ -88,32 +96,21 @@ public class ConferenceServiceImpl implements IConferenceService { @@ -88,32 +96,21 @@ public class ConferenceServiceImpl implements IConferenceService {
88 //新增会议管理 96 //新增会议管理
89 conference.setCreateBy(SecurityUtils.getUsername()); 97 conference.setCreateBy(SecurityUtils.getUsername());
90 conference.setStatus(0); 98 conference.setStatus(0);
  99 + //设置发起人部门编号
  100 + conference.setDeptId(Integer.parseInt(SecurityUtils.getLoginUser().getUser().getRoleIds().get(0)));
  101 +// conference.setDeptId(13);
  102 +
91 Integer result = conferenceMapper.insertConference(conference); 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 for (MultipartFile file : files) { 105 for (MultipartFile file : files) {
110 UploadFile uploadFile = new UploadFile(); 106 UploadFile uploadFile = new UploadFile();
111 - uploadFile.setTableName("conferrnce"); 107 + uploadFile.setTableName("conference");
112 uploadFile.setTableNumber(conference.getId().toString()); 108 uploadFile.setTableNumber(conference.getId().toString());
113 uploadFile.setFileName(file.getOriginalFilename()); 109 uploadFile.setFileName(file.getOriginalFilename());
114 uploadFile.setFilePath(FileUploadUtils.uploadFile(file)); 110 uploadFile.setFilePath(FileUploadUtils.uploadFile(file));
115 uploadFileMapper.insertUploadFile(uploadFile); 111 uploadFileMapper.insertUploadFile(uploadFile);
116 } 112 }
  113 + createWorkFlow(conference);
117 return result; 114 return result;
118 } 115 }
119 116
@@ -129,7 +126,7 @@ public class ConferenceServiceImpl implements IConferenceService { @@ -129,7 +126,7 @@ public class ConferenceServiceImpl implements IConferenceService {
129 conferenceVo.getConference().setUpdateBy(SecurityUtils.getUsername()); 126 conferenceVo.getConference().setUpdateBy(SecurityUtils.getUsername());
130 //查询该合同下的文件上传数据然后删除数据库中的数据和文件 127 //查询该合同下的文件上传数据然后删除数据库中的数据和文件
131 UploadFile uploadFile = new UploadFile(); 128 UploadFile uploadFile = new UploadFile();
132 - uploadFile.setTableName("conferrnce"); 129 + uploadFile.setTableName("conference");
133 uploadFile.setTableNumber(conferenceVo.getConference().getId().toString()); 130 uploadFile.setTableNumber(conferenceVo.getConference().getId().toString());
134 List<UploadFile> uploadFileList = uploadFileMapper.selectUploadFileList(uploadFile); 131 List<UploadFile> uploadFileList = uploadFileMapper.selectUploadFileList(uploadFile);
135 //判断getUploadFiles里是否有旧文件,如果有文件上传则先删除数据库中的数据,再添加新的数据,如果没有文件上传,则删除数据库中的数据和文件 132 //判断getUploadFiles里是否有旧文件,如果有文件上传则先删除数据库中的数据,再添加新的数据,如果没有文件上传,则删除数据库中的数据和文件
@@ -156,12 +153,18 @@ public class ConferenceServiceImpl implements IConferenceService { @@ -156,12 +153,18 @@ public class ConferenceServiceImpl implements IConferenceService {
156 //添加新的文件 153 //添加新的文件
157 for (MultipartFile file : files) { 154 for (MultipartFile file : files) {
158 UploadFile newUploadFile = new UploadFile(); 155 UploadFile newUploadFile = new UploadFile();
159 - newUploadFile.setTableName("conferrnce"); 156 + newUploadFile.setTableName("conference");
160 newUploadFile.setTableNumber(conferenceVo.getConference().getId().toString()); 157 newUploadFile.setTableNumber(conferenceVo.getConference().getId().toString());
161 newUploadFile.setFileName(file.getOriginalFilename()); 158 newUploadFile.setFileName(file.getOriginalFilename());
162 newUploadFile.setFilePath(FileUploadUtils.uploadFile(file)); 159 newUploadFile.setFilePath(FileUploadUtils.uploadFile(file));
163 uploadFileMapper.insertUploadFile(newUploadFile); 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 return conferenceMapper.updateConference(conferenceVo.getConference()); 168 return conferenceMapper.updateConference(conferenceVo.getConference());
166 } 169 }
167 170
@@ -177,7 +180,7 @@ public class ConferenceServiceImpl implements IConferenceService { @@ -177,7 +180,7 @@ public class ConferenceServiceImpl implements IConferenceService {
177 for (Long id : ids) { 180 for (Long id : ids) {
178 Conference conference = conferenceMapper.selectConferenceById(id); 181 Conference conference = conferenceMapper.selectConferenceById(id);
179 UploadFile uploadFile = new UploadFile(); 182 UploadFile uploadFile = new UploadFile();
180 - uploadFile.setTableName("conferrnce"); 183 + uploadFile.setTableName("conference");
181 uploadFile.setTableNumber(conference.getId().toString()); 184 uploadFile.setTableNumber(conference.getId().toString());
182 List<UploadFile> list = uploadFileMapper.selectUploadFileList(uploadFile); 185 List<UploadFile> list = uploadFileMapper.selectUploadFileList(uploadFile);
183 //遍历删除文件 186 //遍历删除文件
@@ -199,4 +202,53 @@ public class ConferenceServiceImpl implements IConferenceService { @@ -199,4 +202,53 @@ public class ConferenceServiceImpl implements IConferenceService {
199 public int deleteConferenceById(Long id) { 202 public int deleteConferenceById(Long id) {
200 return conferenceMapper.deleteConferenceById(id); 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 }