提交代码

main
姜玉琦 2024-02-25 23:28:13 +08:00
parent 0c07df22fd
commit b1853ed84b
10 changed files with 77 additions and 66 deletions

View File

@ -69,7 +69,7 @@ xss:
# 过滤开关 # 过滤开关
enabled: true enabled: true
# 排除链接(多个用逗号分隔) # 排除链接(多个用逗号分隔)
excludes: /system/notice excludes: /system/notice,/flowable/definition/save
# 匹配链接 # 匹配链接
urlPatterns: /* urlPatterns: /*

View File

@ -114,7 +114,7 @@ public class BaseAssetsTypeController extends BaseController
/** /**
* *
*/ */
@DeleteMapping("/findAllByCategory/{category}") @GetMapping("/findAllByCategory/{category}")
public AjaxResult findAllByCategory(@PathVariable String category) public AjaxResult findAllByCategory(@PathVariable String category)
{ {
SysUser sysUser = super.getLoginUser().getUser(); SysUser sysUser = super.getLoginUser().getUser();

View File

@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletResponse;
import com.yanzhu.common.core.domain.entity.SysUser; import com.yanzhu.common.core.domain.entity.SysUser;
import com.yanzhu.common.core.text.Convert; import com.yanzhu.common.core.text.Convert;
import com.yanzhu.common.enums.ShiFouEnum;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -116,6 +117,7 @@ public class ProProjectInfoController extends BaseController
if(!SysUser.isAdmin(super.getUserId())){ if(!SysUser.isAdmin(super.getUserId())){
proProjectInfo.setDeptId(Convert.toLong(super.getLoginUser().getUser().getDept().getAncestors().split(",")[2])); proProjectInfo.setDeptId(Convert.toLong(super.getLoginUser().getUser().getDept().getAncestors().split(",")[2]));
} }
proProjectInfo.setIsDel(ShiFouEnum.FOU.getCode());
List<ProProjectInfo> list = proProjectInfoService.selectProProjectInfoList(proProjectInfo); List<ProProjectInfo> list = proProjectInfoService.selectProProjectInfoList(proProjectInfo);
return success(list); return success(list);
} }

View File

@ -85,6 +85,7 @@ public class ProProjectApplyServiceImpl implements IProProjectApplyService
public int updateProProjectApply(ProProjectApply proProjectApply) public int updateProProjectApply(ProProjectApply proProjectApply)
{ {
SysUser sysUser = SecurityUtils.getLoginUser().getUser(); SysUser sysUser = SecurityUtils.getLoginUser().getUser();
proProjectApply.setCreateTime(DateUtils.getNowDate());
proProjectApply.setUpdateBy(sysUser.getNickName()); proProjectApply.setUpdateBy(sysUser.getNickName());
proProjectApply.setUpdateTime(DateUtils.getNowDate()); proProjectApply.setUpdateTime(DateUtils.getNowDate());
proProjectApplyMapper.deleteProProjectApplyDetailByApplyId(proProjectApply.getId()); proProjectApplyMapper.deleteProProjectApplyDetailByApplyId(proProjectApply.getId());

View File

@ -6,27 +6,7 @@
<select id="selectAllFlowTaskByParams" parameterType="com.yanzhu.system.domain.flowable.FlowTaskEntity" resultType="com.yanzhu.system.domain.flowable.FlowTaskEntity"> <select id="selectAllFlowTaskByParams" parameterType="com.yanzhu.system.domain.flowable.FlowTaskEntity" resultType="com.yanzhu.system.domain.flowable.FlowTaskEntity">
SELECT SELECT
fa.procInsId, fa.*
fa.deployId,
fa.createTime,
fa.finishTime,
fa.duration,
fa.procDefKey,
fa.procDefName,
fa.procDefVersion,
fa.category,
fa.businessKey,
fa.businessDeptId,
fa.businessKeyName,
fa.businessKeyParName,
fa.startUserId,
fa.startUserName,
fa.startDeptName,
fa.taskId,
fa.taskName,
fa.assigneeId,
fa.assigneeName,
fa.assigneeDeptName
FROM FROM
vw_flow_all fa vw_flow_all fa
<where> <where>

View File

@ -15,7 +15,7 @@
<el-form-item label="资产类型" prop="type"> <el-form-item label="资产类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择资产类型" clearable> <el-select v-model="queryParams.type" placeholder="请选择资产类型" clearable>
<el-option v-for="dict in dict.type.pro_assets_type" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.sys_process_category" :key="dict.value" :label="dict.label"
:value="dict.value" /> :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -56,7 +56,7 @@
<el-table-column label="主键" align="center" prop="id" width="55"/> <el-table-column label="主键" align="center" prop="id" width="55"/>
<el-table-column label="资产类型" align="center" prop="type" width="120"> <el-table-column label="资产类型" align="center" prop="type" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.pro_assets_type" :value="scope.row.type" /> <dict-tag :options="dict.type.sys_process_category" :value="scope.row.type" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="资产名称" align="left" prop="name"> <el-table-column label="资产名称" align="left" prop="name">
@ -92,7 +92,7 @@
</el-form-item> </el-form-item>
<el-form-item label="资产类型" prop="type"> <el-form-item label="资产类型" prop="type">
<el-select v-model="form.type" placeholder="请选择资产类型"> <el-select v-model="form.type" placeholder="请选择资产类型">
<el-option v-for="dict in dict.type.pro_assets_type" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.sys_process_category" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option> :value="dict.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -125,7 +125,7 @@ import { listAssetsType, getAssetsType, delAssetsType, addAssetsType, updateAsse
import { listDept } from '@/api/system/dept' import { listDept } from '@/api/system/dept'
export default { export default {
name: "AssetsType", name: "AssetsType",
dicts: ['pro_assets_type', 'sys_is_del'], dicts: ['sys_process_category', 'sys_is_del'],
data() { data() {
return { return {
depOpts: [], depOpts: [],

View File

@ -34,14 +34,6 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="开始时间" prop="deployTime" v-if="false">
<el-date-picker clearable size="small"
v-model="queryParams.deployTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择时间">
</el-date-picker>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -91,21 +83,27 @@
</el-alert> </el-alert>
<el-table v-loading="loading" fit :data="definitionList" border @selection-change="handleSelectionChange"> <el-table v-loading="loading" fit :data="definitionList" border @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="流程编号" align="center" prop="deploymentId" :show-overflow-tooltip="true"/> <el-table-column label="项目单位" align="center" width="180" :show-overflow-tooltip="true">
<el-table-column label="流程标识" align="center" prop="flowKey" :show-overflow-tooltip="true" /> <template slot-scope="scope">
<el-table-column label="流程分类" align="center" prop="category" /> <el-tag type="info" v-if="scope.row.deptId">{{ scope.row.deptName }}</el-tag>
<el-table-column label="流程名称" align="center" width="120" :show-overflow-tooltip="true"> <el-tag>默认工作流</el-tag>
</template>
</el-table-column>
<el-table-column label="流程名称" align="center" width="180" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="handleReadImage(scope.row.deploymentId)"> <el-button type="text" @click="handleReadImage(scope.row.deploymentId)">
<span>{{ scope.row.name }}</span> <span>{{ scope.row.name }}</span>
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="项目名称" align="center" :show-overflow-tooltip="true"> <el-table-column label="流程编号" align="center" prop="deploymentId" :show-overflow-tooltip="true"/>
<el-table-column label="流程标识" align="center" prop="flowKey" :show-overflow-tooltip="true" />
<el-table-column label="流程分类" align="center" prop="category" >
<template slot-scope="scope"> <template slot-scope="scope">
<!-- @click="handleForm(scope.row.formId)" --> <dict-tag
<el-tag type="info" v-if="scope.row.deptId">{{ scope.row.deptName }}</el-tag> :options="dict.type.sys_process_category"
<el-tag>默认工作流</el-tag> :value="scope.row.category"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="流程版本" align="center"> <el-table-column label="流程版本" align="center">
@ -119,8 +117,8 @@
<el-tag type="warning" v-if="scope.row.suspensionState === 2"></el-tag> <el-tag type="warning" v-if="scope.row.suspensionState === 2"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="部署时间" align="center" prop="deploymentTime" width="180"/> <el-table-column label="部署时间" align="center" prop="deploymentTime" width="160"/>
<el-table-column label="操作" width="250" fixed="right"class-name="small-padding fixed-width"> <el-table-column label="操作" width="200" fixed="right"class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="handleLoadXml(scope.row)" icon="el-icon-edit-outline" type="text" size="small">设计</el-button> <el-button @click="handleLoadXml(scope.row)" icon="el-icon-edit-outline" type="text" size="small">设计</el-button>
<!-- <el-button @click="handleAddForm(scope.row)" icon="el-icon-edit-el-icon-s-promotion" type="text" size="small" v-if="scope.row.formId == null"></el-button> --> <!-- <el-button @click="handleAddForm(scope.row)" icon="el-icon-edit-el-icon-s-promotion" type="text" size="small" v-if="scope.row.formId == null"></el-button> -->

View File

@ -129,7 +129,7 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="申请时间"> <el-form-item label="申请时间">
{{ parseTime(initData.updateTime, "{y}-{m}-{d} {h}:{i}") }} {{ parseTime(initData.createTime, "{y}-{m}-{d} {h}:{i}") }}
</el-form-item> </el-form-item>
<el-form-item label="使用时间"> <el-form-item label="使用时间">
{{ initData.applyReason }} {{ initData.applyReason }}

View File

@ -287,7 +287,14 @@
<el-tag size="medium">v{{ scope.row.version }}</el-tag> <el-tag size="medium">v{{ scope.row.version }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="流程分类" align="center" prop="category" /> <el-table-column label="流程分类" align="center" prop="category">
<template slot-scope="scope">
<dict-tag
:options="dict.type.sys_process_category"
:value="scope.row.category"
/>
</template>
</el-table-column>
<el-table-column <el-table-column
label="操作" label="操作"
align="center" align="center"

View File

@ -37,7 +37,7 @@
<el-option <el-option
v-for="(item, index) in projectOptions" v-for="(item, index) in projectOptions"
:key="index" :key="index"
:label="item.projName" :label="item.name"
:value="item.id" :value="item.id"
> >
</el-option> </el-option>
@ -96,7 +96,10 @@
> >
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50" /> <el-table-column label="序号" align="center" prop="index" width="50" />
<el-table-column label="<span class='required'>*</span>申请明细" align="center" prop="assetsId"> <el-table-column align="center" prop="assetsId">
<template slot="header" slot-scope="scope">
<span class="required">申请明细</span>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-select <el-select
v-model="scope.row.assetsId" v-model="scope.row.assetsId"
@ -125,14 +128,21 @@
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="<span class='required'>*</span>申请数量" prop="number" align="center" width="180"> <el-table-column prop="number" align="center" width="180">
<template slot="header" slot-scope="scope">
<span class="required">申请数量</span>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-row> <el-row>
<el-col :span="12" <el-col :span="12"
><el-input v-model="scope.row.number" placeholder="数量" ><el-input v-model="scope.row.number" placeholder="数量"
/></el-col> /></el-col>
<el-col :span="12" <el-col :span="12"
><el-select v-model="scope.row.assetsUnit" placeholder="单位" filterable> ><el-select
v-model="scope.row.assetsUnit"
placeholder="单位"
filterable
>
<el-option <el-option
v-for="(item, index) in unitOptions" v-for="(item, index) in unitOptions"
:key="index" :key="index"
@ -161,7 +171,10 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="<span class='required'>*</span>使用说明" prop="useReason" align="center"> <el-table-column prop="useReason" align="center">
<template slot="header" slot-scope="scope">
<span class="required">使用说明</span>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input <el-input
type="textarea" type="textarea"
@ -228,7 +241,7 @@ export default {
// //
rules: { rules: {
projId: [{ required: true, message: "请选择项目名称", trigger: "blur" }], projId: [{ required: true, message: "请选择项目名称", trigger: "blur" }],
applyReason: [{ required: true, message: "请输入申请原因", trigger: "blur" }] applyReason: [{ required: true, message: "请输入申请原因", trigger: "blur" }],
}, },
projectOptions: [], projectOptions: [],
deptName: null, deptName: null,
@ -258,7 +271,7 @@ export default {
findMyDeptProject().then((response) => { findMyDeptProject().then((response) => {
if (response.code == 200) { if (response.code == 200) {
this.projectOptions = response.data; this.projectOptions = response.data;
if(response.data.length>0){ if (response.data.length > 0) {
this.form.projId = response.data[0].id; this.form.projId = response.data[0].id;
this.form.projName = response.data[0].projName; this.form.projName = response.data[0].projName;
} }
@ -294,6 +307,7 @@ export default {
} }
this.initCategoryAssetsType(options.category); this.initCategoryAssetsType(options.category);
this.title = options.name; this.title = options.name;
this.form.applyType = options.category;
this.form.parProjName = store.getters.parDeptName; this.form.parProjName = store.getters.parDeptName;
this.nickName = store.getters.name; this.nickName = store.getters.name;
this.deptName = store.getters.dept.deptName; this.deptName = store.getters.dept.deptName;
@ -319,21 +333,25 @@ export default {
submitForm() { submitForm() {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
for(let i=0;i<this.proProjectApplyDetailList.length;i++){ if (this.proProjectApplyDetailList.length == 0) {
if(!this.proProjectApplyDetailList[i].assetsId){ this.$modal.msgWarning("请添加申请明细信息...");
this.$modal.msgWarning("申请明细第 ”"+(i+1)+"“行未选择..."); return false;
}
for (let i = 0; i < this.proProjectApplyDetailList.length; i++) {
if (!this.proProjectApplyDetailList[i].assetsId) {
this.$modal.msgWarning("申请明细第 ”" + (i + 1) + "“行未选择...");
return false; return false;
} }
if(!this.proProjectApplyDetailList[i].number){ if (!this.proProjectApplyDetailList[i].number) {
this.$modal.msgWarning("申请明细第 ”"+(i+1)+"“行数量未输入..."); this.$modal.msgWarning("申请明细第 ”" + (i + 1) + "“行数量未输入...");
return false; return false;
} }
if(!this.proProjectApplyDetailList[i].assetsUnit){ if (!this.proProjectApplyDetailList[i].assetsUnit) {
this.$modal.msgWarning("申请明细第 ”"+(i+1)+"“行单位未选择..."); this.$modal.msgWarning("申请明细第 ”" + (i + 1) + "“行单位未选择...");
return false; return false;
} }
if(!this.proProjectApplyDetailList[i].useReason){ if (!this.proProjectApplyDetailList[i].useReason) {
this.$modal.msgWarning("申请明细第 ”"+(i+1)+"“行申请说明未输入..."); this.$modal.msgWarning("申请明细第 ”" + (i + 1) + "“行申请说明未输入...");
return false; return false;
} }
} }
@ -425,4 +443,9 @@ export default {
z-index: 9999; z-index: 9999;
top: 66px; top: 66px;
} }
.required:before {
content: "*";
color: #ff4949;
margin-right: 4px;
}
</style> </style>