commit
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.budwk.app.flow.handler;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.flow.engine.AssignmentHandler;
|
||||
import com.budwk.app.flow.engine.core.Execution;
|
||||
@@ -24,6 +25,10 @@ public class FlowUnitManagerHandler implements AssignmentHandler {
|
||||
@Override
|
||||
public List<String> assign(TaskModel model, Execution execution) {
|
||||
String unitId = SecurityUtil.getUnitId();
|
||||
String argsUnitId = execution.getArgs().getStr("argsUnitId");
|
||||
if (StrUtil.isNotBlank(argsUnitId)){
|
||||
unitId = argsUnitId;
|
||||
}
|
||||
|
||||
SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class);
|
||||
Sys_role role = sysRoleService.getByCode(RoleConstant.UNIT_MANAGER);
|
||||
@@ -42,7 +47,7 @@ public class FlowUnitManagerHandler implements AssignmentHandler {
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "获取当前登录用户所在单位负责人";
|
||||
return "获取当前登录用户所在单位负责人(如果argsUnitId存在则查询argsUnitId单位的单位负责人)";
|
||||
}
|
||||
|
||||
public int getOrder() {
|
||||
|
||||
+2
-2
@@ -140,7 +140,7 @@ public class ExecutiveCommitteePushController {
|
||||
|
||||
ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class,
|
||||
Cnd.where("teacherMeetId", "=", teacherMeetId));
|
||||
/* if (ObjectUtil.isEmpty(config)) {
|
||||
if (ObjectUtil.isEmpty(config)) {
|
||||
return Result.error("请先配置基础信息");
|
||||
}
|
||||
if (config.getFirstStartTime().getTime() > System.currentTimeMillis()) {
|
||||
@@ -148,7 +148,7 @@ public class ExecutiveCommitteePushController {
|
||||
}
|
||||
if (config.getFirstEndTime().getTime() < System.currentTimeMillis()) {
|
||||
return Result.error("一次预选已结束");
|
||||
}*/
|
||||
}
|
||||
|
||||
int dbCount = dao.count(ExecutiveCommitteeOnePush.class,
|
||||
Cnd.where("teacherMeetId", "=", teacherMeetId)
|
||||
|
||||
+3
-1
@@ -1,6 +1,7 @@
|
||||
package com.budwk.app.zhgh.democratic.grassrootscongress.controller.material;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
@@ -76,7 +77,8 @@ public class GrassrootsCongressMaterialApprovalController {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("t.taskName", "=", "zlsh");
|
||||
|
||||
if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){
|
||||
if (!StpUtil.hasRole(RoleConstant.SYSADMIN.name()) &&
|
||||
!StpUtil.hasRole(RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -1,6 +1,7 @@
|
||||
package com.budwk.app.zhgh.democratic.grassrootscongress.controller.meeting;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
@@ -76,7 +77,8 @@ public class GrassrootsCongressMeetingApprovalController {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("t.taskName", "=", "8384aafd-3cdb-49ab-a11f-c5d145b1672c");
|
||||
|
||||
if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){
|
||||
if (!StpUtil.hasRole(RoleConstant.SYSADMIN.name()) &&
|
||||
!StpUtil.hasRole(RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||
}
|
||||
|
||||
|
||||
+1
@@ -66,6 +66,7 @@ public class ProposalSecondedController {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
us.unionName,
|
||||
us.unitId,
|
||||
info.*,
|
||||
type.name AS typeName,
|
||||
tcs.fullName AS sessionName,
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ public class ProposalMasterUnitAssignmentHandler implements AssignmentHandler {
|
||||
}
|
||||
|
||||
// 获取负责人
|
||||
Sys_role sysRole = sysRoleService.getByCode(RoleConstant.PROPOSAL_UNIT_LEADER);
|
||||
Sys_role sysRole = sysRoleService.getByCode(RoleConstant.UNIT_MANAGER);
|
||||
|
||||
List<Sys_user_role> sysUserRoles = dao.query(Sys_user_role.class, Cnd.where(Sys_user_role::getRoleId, "=", sysRole.getId()).and(Sys_user_role::getUnderTakeId, "=", undertake.getId()));
|
||||
List<String> selectUserIds = sysUserRoles.stream().map(Sys_user_role::getUserId).toList();
|
||||
|
||||
+24
-1
@@ -177,6 +177,7 @@ public class ProposalCommonServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
info.code,
|
||||
info.brief,
|
||||
info.measures,
|
||||
info.researchFindings,
|
||||
info.createUserName,
|
||||
DATE_FORMAT(info.createTime, '%Y年%m月%d日') AS createTime,
|
||||
info.unitName,
|
||||
@@ -199,6 +200,8 @@ public class ProposalCommonServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
//处理下富文本
|
||||
String brief = docData.getString("brief");
|
||||
String measures = docData.getString("measures");
|
||||
String researchFindings = docData.getString("researchFindings");
|
||||
docData.put("researchFindings", sysOfficeTemplateUtil.convertRichTextToDocText(researchFindings));
|
||||
docData.put("brief", sysOfficeTemplateUtil.convertRichTextToDocText(brief));
|
||||
docData.put("measures", sysOfficeTemplateUtil.convertRichTextToDocText(measures));
|
||||
|
||||
@@ -218,8 +221,27 @@ public class ProposalCommonServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
|
||||
// 按任务节点分组
|
||||
Map<String, List<ProcessTaskVO>> taskGroups = doneTaskVos.stream().collect(Collectors.groupingBy(ProcessTaskVO::getDisplayName));
|
||||
docData.putAll(taskGroups);
|
||||
|
||||
|
||||
Optional<List<ProcessTaskVO>> optionalList = taskGroups.entrySet().stream()
|
||||
.filter(entry -> entry.getKey().contains("党委书记审核"))
|
||||
.map(Map.Entry::getValue)
|
||||
.findFirst();
|
||||
|
||||
if (optionalList.isPresent()) {
|
||||
List<ProcessTaskVO> tasks = optionalList.get();
|
||||
docData.put("auditName","党委书记审核");
|
||||
taskGroups.put("auditInfo",tasks);
|
||||
}else{
|
||||
Optional<List<ProcessTaskVO>> optionalList2 = taskGroups.entrySet().stream()
|
||||
.filter(entry -> entry.getKey().contains("单位负责人审核"))
|
||||
.map(Map.Entry::getValue)
|
||||
.findFirst();
|
||||
List<ProcessTaskVO> tasks = optionalList2.get();
|
||||
docData.put("auditName","单位负责人审核");
|
||||
taskGroups.put("auditInfo",tasks);
|
||||
}
|
||||
docData.putAll(taskGroups);
|
||||
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
|
||||
HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy();
|
||||
htmlRenderPolicy.getConfig().setShowDefaultTableBorderInTableCell(true);
|
||||
@@ -227,6 +249,7 @@ public class ProposalCommonServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
Configure config = Configure.builder()
|
||||
.bind("seconders", policy)
|
||||
.bind("提案附议", policy)
|
||||
.bind("researchFindings", htmlRenderPolicy)
|
||||
.bind("brief", htmlRenderPolicy)
|
||||
.bind("measures", htmlRenderPolicy)
|
||||
.bind("taskFormData.tf_opinion", htmlRenderPolicy)
|
||||
|
||||
+44
-14
@@ -41,10 +41,7 @@ import org.nutz.lang.util.NutMap;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
@@ -193,8 +190,18 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
// 添加序号,去除富文本,获取附议人
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
list.get(i).put("index", i + 1);
|
||||
list.get(i).put("brief", HtmlUtil.cleanHtmlTag(list.get(i).getString("brief")));
|
||||
list.get(i).put("measures", HtmlUtil.cleanHtmlTag(list.get(i).getString("measures")));
|
||||
if (StrUtil.isNotBlank(list.get(i).getString("researchFindings"))) {
|
||||
list.get(i).put("researchFindings",
|
||||
HtmlUtil.unescape(HtmlUtil.cleanHtmlTag(list.get(i).getString("researchFindings")))
|
||||
.replaceAll("\\s+", " ")
|
||||
.trim());
|
||||
}
|
||||
list.get(i).put("brief", HtmlUtil.unescape(HtmlUtil.cleanHtmlTag(list.get(i).getString("brief")))
|
||||
.replaceAll("\\s+", " ")
|
||||
.trim());
|
||||
list.get(i).put("measures", HtmlUtil.unescape(HtmlUtil.cleanHtmlTag(list.get(i).getString("measures")))
|
||||
.replaceAll("\\s+", " ")
|
||||
.trim());
|
||||
list.get(i).put("suggestUnits", list.get(i).getString("suggestUnits").replace("[", "").replace("]", ""));
|
||||
|
||||
|
||||
@@ -211,11 +218,16 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
|
||||
if (inviteTask != null) {
|
||||
NutMap variable = Json.fromJson(NutMap.class, inviteTask.getVariable());
|
||||
List<NutMap> seconders = variable.getAsList(FlowConst.TASK_FORM_DATA_PREFIX + "seconder", NutMap.class);
|
||||
list.get(i).put("secondedUserNames", seconders.stream().map(v -> v.getString("userName")).collect(Collectors.joining(",")));
|
||||
if (StrUtil.isNotBlank(variable.getString("variable"))) {
|
||||
List<NutMap> seconders = variable.getAsList(FlowConst.TASK_FORM_DATA_PREFIX + "seconder", NutMap.class);
|
||||
list.get(i).put("secondedUserNames", seconders.stream().map(v -> v.getString("userName")).collect(Collectors.joining(",")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<Map<String, Object>> safeList = list.stream().map(nutMap -> {
|
||||
Map<String, Object> map = new HashMap<>(nutMap);
|
||||
return map;
|
||||
}).collect(Collectors.toList());
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("序号", "index", 10));
|
||||
exportEntities.add(new ExcelExportEntity("提案编号", "code", 20));
|
||||
@@ -235,7 +247,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
exportParams.setTitle(title);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, safeList);
|
||||
CommonDownloadUtil.download(title + ".xlsx", workbook, response);
|
||||
}
|
||||
|
||||
@@ -250,7 +262,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
List<NutMap> list = listMap(sql);
|
||||
|
||||
for (NutMap row : list) {
|
||||
String content = HtmlUtil.cleanHtmlTag(StrUtil.blankToDefault(row.getString("masterUnderTakeReply"), ""));
|
||||
String content = HtmlUtil.removeHtmlTag(StrUtil.blankToDefault(row.getString("masterUnderTakeReply"), ""));
|
||||
row.put("masterUnderTakeReply", content);
|
||||
}
|
||||
|
||||
@@ -421,6 +433,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
|
||||
NutMap info = (NutMap) sql.getResult();
|
||||
// 处理富文本内容
|
||||
info.put("researchFindings", sysOfficeTemplateUtil.convertRichTextToDocText(info.getString("researchFindings")));
|
||||
info.put("brief", sysOfficeTemplateUtil.convertRichTextToDocText(info.getString("brief")));
|
||||
info.put("measures", sysOfficeTemplateUtil.convertRichTextToDocText(info.getString("measures")));
|
||||
|
||||
@@ -478,6 +491,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
.bind("seconders", policy)
|
||||
.bind("brief", htmlRenderPolicy)
|
||||
.bind("measures", htmlRenderPolicy)
|
||||
.bind("researchFindings", htmlRenderPolicy)
|
||||
.build();
|
||||
|
||||
try {
|
||||
@@ -541,6 +555,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
info.name,
|
||||
info.code,
|
||||
info.researchFindings,
|
||||
info.suggestUnits,
|
||||
info.brief,
|
||||
info.measures,
|
||||
info.createUserName,
|
||||
@@ -573,8 +588,18 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
// 添加序号,去除富文本,获取附议人
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
list.get(i).put("index", i + 1);
|
||||
list.get(i).put("brief", HtmlUtil.cleanHtmlTag(list.get(i).getString("brief")));
|
||||
list.get(i).put("measures", HtmlUtil.cleanHtmlTag(list.get(i).getString("measures")));
|
||||
if (StrUtil.isNotBlank(list.get(i).getString("researchFindings"))) {
|
||||
list.get(i).put("researchFindings", HtmlUtil.unescape(HtmlUtil.cleanHtmlTag(list.get(i).getString("researchFindings")))
|
||||
.replaceAll("\\s+", " ")
|
||||
.trim());
|
||||
}
|
||||
list.get(i).put("brief", HtmlUtil.unescape(HtmlUtil.cleanHtmlTag(list.get(i).getString("brief")))
|
||||
.replaceAll("\\s+", " ")
|
||||
.trim());
|
||||
list.get(i).put("measures", HtmlUtil.unescape(HtmlUtil.cleanHtmlTag(list.get(i).getString("measures")))
|
||||
.replaceAll("\\s+", " ")
|
||||
.trim());
|
||||
list.get(i).put("suggestUnits", list.get(i).getString("suggestUnits").replace("[", "").replace("]", ""));
|
||||
|
||||
// 流程实例
|
||||
// ProcessInstance instance = dao().fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", list.get(i).getString("id")));
|
||||
@@ -610,6 +635,11 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
row.put("instanceState", processInstanceStateMap.get(row.getString("instanceState")));
|
||||
}
|
||||
|
||||
List<Map<String, Object>> safeList = list.stream().map(nutMap -> {
|
||||
Map<String, Object> map = new HashMap<>(nutMap);
|
||||
return map;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
|
||||
for (ExportTableColumns column : tableColumns) {
|
||||
@@ -622,7 +652,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
exportParams.setTitle(title);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, safeList);
|
||||
CommonDownloadUtil.download(title + ".xlsx", workbook, response);
|
||||
}
|
||||
}
|
||||
|
||||
+9
-2
@@ -33,6 +33,7 @@ import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
@@ -40,6 +41,7 @@ import org.nutz.mvc.annotation.POST;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@@ -285,6 +287,9 @@ public class TeacherCongressDelegationController {
|
||||
}
|
||||
if (type.equals("TEACHER_CONGRESS_VICE_DELEGATION_HEAD")){
|
||||
List<Record> recordList = dao.query("sys_user_role", Cnd.where("tcSessionId", "=", sessionId).and("tcDelegationId", "=", delegationId).and("roleId", "=", role.getId()));
|
||||
if (Lang.isEmpty(recordList)) {
|
||||
return Result.success(new ArrayList<>());
|
||||
}
|
||||
List<String> userIdList = recordList.stream().map(record -> record.getString("userId")).toList();
|
||||
String userIds = userIdList.stream()
|
||||
.map(s -> "'" + s + "'") // 给每个元素加上单引号
|
||||
@@ -307,7 +312,9 @@ public class TeacherCongressDelegationController {
|
||||
}else{
|
||||
Record record = dao.fetch("sys_user_role", Cnd.where("tcSessionId", "=", sessionId).and("tcDelegationId", "=", delegationId).and("roleId", "=", role.getId()));
|
||||
String userId = Optional.ofNullable(record).map(r -> r.getString("userId")).orElse(null);
|
||||
|
||||
if (Lang.isEmpty(userId)) {
|
||||
return Result.success(new NutMap());
|
||||
}
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.id as userId,
|
||||
@@ -338,7 +345,7 @@ public class TeacherCongressDelegationController {
|
||||
* @param delegationId 代表团ID
|
||||
* @param sessionId 届次ID
|
||||
* @param userId 团长id
|
||||
* @param viceUserId 副团长id
|
||||
* @param viceUserIds 副团长id
|
||||
* @param contactUserId 联络人
|
||||
* @return
|
||||
*/
|
||||
|
||||
@@ -1965,7 +1965,7 @@ layout("/layouts/v4/baseLayout.html"){
|
||||
<div class="oa-notice-header-icon">
|
||||
<i class="fa fa-users"></i>
|
||||
</div>
|
||||
<h2 class="oa-notice-header-title">基层动态</h2>
|
||||
<h2 class="oa-notice-header-title">工会动态</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oa-grassroots-content">
|
||||
@@ -1988,8 +1988,8 @@ layout("/layouts/v4/baseLayout.html"){
|
||||
<div class="oa-empty-state-icon">
|
||||
<i class="fa fa-users"></i>
|
||||
</div>
|
||||
<div class="oa-empty-state-title">暂无基层动态</div>
|
||||
<div class="oa-empty-state-desc">当前没有可用的基层动态内容</div>
|
||||
<div class="oa-empty-state-title">暂无工会动态</div>
|
||||
<div class="oa-empty-state-desc">当前没有可用的工会动态内容</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@ const jcdt = {
|
||||
<div class="jcdt-wrapper">
|
||||
<div class="jcdt-container">
|
||||
<div class="jcdt-title">
|
||||
<span>基层动态</span>
|
||||
<span>工会动态</span>
|
||||
</div>
|
||||
<div class="jcdt-content">
|
||||
<div class="jcdt-list">
|
||||
|
||||
+10
@@ -148,6 +148,15 @@ layout("/layouts/platform.html"){
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
</template>
|
||||
<template v-else-if="column.prop === 'researchFindings'" scope="{row}">
|
||||
<span v-html="row.researchFindings"></span>
|
||||
</template>
|
||||
<template v-else-if="column.prop === 'brief'" scope="{row}">
|
||||
<span v-html="row.brief"></span>
|
||||
</template>
|
||||
<template v-else-if="column.prop === 'measures'" scope="{row}">
|
||||
<span v-html="row.measures"></span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" min-width="200px">
|
||||
<template scope="{row}">
|
||||
@@ -201,6 +210,7 @@ layout("/layouts/platform.html"){
|
||||
{label: "立案结果", prop: "caseFilingResult"},
|
||||
// {label: "立案类型", prop: "caseFilingType"},
|
||||
{label: "是否并案", prop: "merge"},
|
||||
{label: "调研情况", prop: "researchFindings", visible: false},
|
||||
{label: "案由", prop: "brief", visible: false},
|
||||
{label: "建议措施", prop: "measures", visible: false},
|
||||
{label: "主办单位", prop: "masterUnitName"},
|
||||
|
||||
+1
@@ -139,6 +139,7 @@ layout("/layouts/platform.html"){
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName,
|
||||
type: type,
|
||||
argsUnitId: row.unitId,
|
||||
tf_opinion: "同意该提案"
|
||||
}
|
||||
this.$refs.proposalInfoRef.onOpen(row)
|
||||
|
||||
+1
@@ -143,6 +143,7 @@ layout("/layouts/platform_h5.html"){
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName,
|
||||
type: type,
|
||||
argsUnitId: row.unitId,
|
||||
tf_opinion: "同意该提案"
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user