commit
This commit is contained in:
@@ -2,7 +2,6 @@ package com.budwk.app.sys.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNode;
|
||||
import cn.hutool.core.lang.tree.TreeUtil;
|
||||
@@ -13,11 +12,6 @@ import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.flow.constant.FlowConst;
|
||||
import com.budwk.app.flow.engine.FlowEngine;
|
||||
import com.budwk.app.flow.entity.ProcessInstance;
|
||||
import com.budwk.app.flow.entity.ProcessTask;
|
||||
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||
import com.budwk.app.sys.models.*;
|
||||
import com.budwk.app.sys.services.*;
|
||||
@@ -59,8 +53,6 @@ public class SysUnionController {
|
||||
@Inject
|
||||
private Dao dao;
|
||||
@Inject
|
||||
private FlowEngine flowEngine;
|
||||
@Inject
|
||||
private SysDictService sysDictService;
|
||||
@Inject
|
||||
private SysRoleService sysRoleService;
|
||||
@@ -70,6 +62,8 @@ public class SysUnionController {
|
||||
private SysUnitService sysUnitService;
|
||||
@Inject
|
||||
private SysUnionService sysUnionService;
|
||||
@Inject
|
||||
private SysUnionCadreService sysUnionCadreService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/sys/union/index.html")
|
||||
@@ -389,90 +383,14 @@ public class SysUnionController {
|
||||
* 汇总分工会干部和提案审核所需角色,后续列表、历史届次和新增校验统一使用同一范围。
|
||||
*/
|
||||
private List<String> getBranchUnionRoleCodes() {
|
||||
List<String> roleCodes = new ArrayList<>(sysDictService.getSubListByCode("BRANCH_UNION_ROLES")
|
||||
.stream().map(Sys_dict::getCode).toList());
|
||||
roleCodes.add(RoleConstant.BRANCH_UNION_ADMIN.name());
|
||||
roleCodes.add(RoleConstant.UNIT_PARTY_SECRETARY.name());
|
||||
return roleCodes.stream().filter(StrUtil::isNotBlank).distinct().toList();
|
||||
return sysUnionCadreService.getBranchUnionRoleCodes();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("sys.manager.union.branchOfficer")
|
||||
@ApiOperation("添加分工会人员角色")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result insertBranchUnionUserRole(String userId, String roleCode, String unionId, String j) {
|
||||
if (!getBranchUnionRoleCodes().contains(roleCode)) {
|
||||
return Result.error("该角色不允许在分工会干部中维护");
|
||||
}
|
||||
Sys_role role = sysRoleService.fetch(Cnd.where("code", "=", roleCode));
|
||||
if (Lang.isEmpty(role)) {
|
||||
return Result.error("无法找到" + roleCode + "对应编码的角色");
|
||||
}
|
||||
int count = dao.count(Sys_user_role.class, Cnd.where("roleId", "=", role.getId()).and("userId", "=", userId).and("unionId", "=", unionId));
|
||||
if (count > 0) {
|
||||
return Result.error("请勿重复添加");
|
||||
}
|
||||
|
||||
// Sys_branch_union_user_permission permission = new Sys_branch_union_user_permission();
|
||||
// permission.setUserId(userId);
|
||||
// permission.setRoleId(role.getId());
|
||||
// permission.setUnionId(unionId);
|
||||
// dao.insert(permission);
|
||||
|
||||
// Sys_union union = dao.fetch(Sys_union.class, unionId);
|
||||
// Sys_user user = dao.fetch(Sys_user.class, userId);
|
||||
// String instanceName = union.getName() + user.getUsername() + role.getName() + "的授权申请";
|
||||
|
||||
// bpmService.startSubmitProcessInstance(BpmProcessConstant.BRANCH_UNION_WEIYUAN_AUTHORIZATION.name(), instanceName, permission.getId(), List.of("24017"), null);
|
||||
|
||||
// sysRoleService.clear("sys_user_role", Cnd.where("roleId", "=", role.getId()).and("userId", "=", userId).and("unionId", "=", unionId));
|
||||
// sysRoleService.insert("sys_user_role", Chain.make("roleId", role.getId()).add("userId", userId).add("unionId", unionId));
|
||||
// sysRoleService.clearCache();
|
||||
// sysUserService.clearCache();
|
||||
|
||||
// 构建表结构存储
|
||||
View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", userId));
|
||||
if (user == null) {
|
||||
return Result.error("未找到人员信息");
|
||||
}
|
||||
|
||||
Sys_union_cadre unionCadre = new Sys_union_cadre();
|
||||
unionCadre.setUserId(userId);
|
||||
unionCadre.setUnionId(unionId);
|
||||
unionCadre.setMobile(user.getMobile());
|
||||
unionCadre.setUnionName(user.getUnionName());
|
||||
unionCadre.setLoginName(user.getLoginname());
|
||||
unionCadre.setUserName(user.getUsername());
|
||||
unionCadre.setRoleCode(roleCode);
|
||||
unionCadre.setJ(j);
|
||||
unionCadre.setApplyDate(new Date());
|
||||
unionCadre.setIsServing(true);
|
||||
unionCadre.setIsJoin(true);
|
||||
dao.insert(unionCadre);
|
||||
|
||||
// 去走工作流
|
||||
boolean isAdmin = AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name());
|
||||
Dict args = Dict.create();
|
||||
args.set("submit", isAdmin ? "admin" : "branch");
|
||||
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
|
||||
args.set(FlowConst.FORM_DATA, unionCadre);
|
||||
|
||||
ProcessInstance instance = flowEngine.startProcessInstanceByKey("JCGHWY", unionCadre.getId(), SecurityUtil.getUserId(), args);
|
||||
// 自动完成第一个申请任务
|
||||
List<ProcessTask> doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null);
|
||||
for (ProcessTask task : doingTaskList) {
|
||||
flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args);
|
||||
}
|
||||
|
||||
if (isAdmin) {
|
||||
// 如果是管理员,直接加角色
|
||||
sysRoleService.clear("sys_user_role", Cnd.where("roleId", "=", role.getId()).and("userId", "=", userId).and("unionId", "=", unionId));
|
||||
sysRoleService.insert("sys_user_role", Chain.make("roleId", role.getId()).add("userId", userId).add("unionId", unionId));
|
||||
sysRoleService.clearCache();
|
||||
sysUserService.clearCache();
|
||||
}
|
||||
|
||||
return Result.success();
|
||||
return sysUnionCadreService.saveBranchUnionCadre(userId, roleCode, unionId, j);
|
||||
}
|
||||
|
||||
@At
|
||||
|
||||
+7
-13
@@ -13,12 +13,12 @@ import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_unit;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.services.SysRoleService;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.democratic.proposal.models.ProposalConfig;
|
||||
import com.budwk.app.zhgh.democratic.proposal.models.ProposalUndertake;
|
||||
import com.budwk.app.zhgh.democratic.proposal.service.ProposalUndertakeConfigService;
|
||||
import com.budwk.app.zhgh.democratic.proposal.service.common.ProposalCommonService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
@@ -57,6 +57,8 @@ public class ProposalConfigUnitController {
|
||||
private SysRoleService sysRoleService;
|
||||
@Inject
|
||||
private ProposalCommonService proposalCommonService;
|
||||
@Inject
|
||||
private ProposalUndertakeConfigService proposalUndertakeConfigService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/democratic/proposal/config/unit/index.html")
|
||||
@@ -120,18 +122,10 @@ public class ProposalConfigUnitController {
|
||||
@SaCheckPermission("proposal.config.unit")
|
||||
@SLog(tag = "提案", msg = "承办单位同步系统单位")
|
||||
public Result syncSysUnit() {
|
||||
Sql sql = Sqls.create("select code from proposal_undertake");
|
||||
List<Sys_unit> sysUnits = dao.query(Sys_unit.class, Cnd.where(Sys_unit::getUnitcode, "not in", sql).and(Sys_unit::getUnitTypeCode, "=", 1));
|
||||
List<ProposalUndertake> proposalUndertakes = sysUnits.stream().map(unit -> {
|
||||
ProposalUndertake proposalUndertake = new ProposalUndertake();
|
||||
proposalUndertake.setId(unit.getId());
|
||||
proposalUndertake.setCode(unit.getUnitcode());
|
||||
proposalUndertake.setEnable(true);
|
||||
proposalUndertake.setName(unit.getName());
|
||||
return proposalUndertake;
|
||||
}).toList();
|
||||
dao.fastInsert(proposalUndertakes);
|
||||
return Result.success();
|
||||
NutMap syncResult = proposalUndertakeConfigService.syncSystemUnits();
|
||||
int insertedCount = syncResult.getInt("insertedCount");
|
||||
int existingCount = syncResult.getInt("existingCount");
|
||||
return Result.success("同步完成:新增" + insertedCount + "个承办单位,已存在" + existingCount + "个", syncResult);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+8
-4
@@ -22,11 +22,11 @@ import com.budwk.app.flow.service.FlowCommonService;
|
||||
import com.budwk.app.flow.service.ProcessTaskService;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.democratic.proposal.controller.vo.ProposalInviteSeconderVO;
|
||||
import com.budwk.app.zhgh.democratic.proposal.models.ProposalConfig;
|
||||
import com.budwk.app.zhgh.democratic.proposal.models.ProposalInfo;
|
||||
import com.budwk.app.zhgh.democratic.proposal.models.ProposalSecond;
|
||||
import com.budwk.app.zhgh.democratic.proposal.param.ProposalSearchParam;
|
||||
import com.budwk.app.zhgh.democratic.proposal.service.ProposalMessageService;
|
||||
import com.budwk.app.zhgh.democratic.proposal.service.ProposalSecondedService;
|
||||
import com.budwk.app.zhgh.democratic.proposal.service.common.ProposalCommonService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -97,6 +97,8 @@ public class ProposalMineController {
|
||||
private FlowCommonService flowCommonService;
|
||||
@Inject
|
||||
private ProposalMessageService proposalMessageService;
|
||||
@Inject
|
||||
private ProposalSecondedService proposalSecondedService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/democratic/proposal/transact/mine/index.html")
|
||||
@@ -320,10 +322,10 @@ public class ProposalMineController {
|
||||
return Objects.equals(args.getInt("submitType"), ProcessSubmitTypeEnum.AGREE.getCode());
|
||||
}).toList();
|
||||
|
||||
ProposalConfig proposalConfig = dao.fetch(ProposalConfig.class, Cnd.NEW());
|
||||
int requiredSeconderNum = proposalSecondedService.getRequiredSeconderNum();
|
||||
|
||||
if (tasks.size() + seconders.length < proposalConfig.getSeconderNum()) {
|
||||
return Result.error("至少邀请" + proposalConfig.getSeconderNum() + "个附议人");
|
||||
if (tasks.size() + seconders.length < requiredSeconderNum) {
|
||||
return Result.error("至少邀请" + requiredSeconderNum + "个附议人");
|
||||
}
|
||||
|
||||
|
||||
@@ -352,6 +354,8 @@ public class ProposalMineController {
|
||||
|
||||
if (doingTaskList.stream().anyMatch(task -> task.getTaskName().equals("invite"))) {
|
||||
// 完成邀请任务并添加附议人
|
||||
// 在执行邀请节点前保存本提案的附议门槛,供下一节点 second 的会签条件稳定读取。
|
||||
proposalSecondedService.snapshotRequiredSeconderNum(processInstance.getId(), requiredSeconderNum);
|
||||
for (ProcessTask task : doingTaskList) {
|
||||
Dict args = Dict.create();
|
||||
args.set(FlowConst.PROCESS_TASK_ID_KEY, task.getId());
|
||||
|
||||
+16
@@ -5,6 +5,22 @@ import com.budwk.app.zhgh.democratic.proposal.models.ProposalSecond;
|
||||
|
||||
public interface ProposalSecondedService extends BaseService<ProposalSecond> {
|
||||
|
||||
/**
|
||||
* 读取当前提案配置中的最低同意附议人数。
|
||||
* 该数量会在邀请附议人时写入流程实例,避免后续修改全局配置影响已发起的提案。
|
||||
*
|
||||
* @return 配置的最低同意附议人数
|
||||
*/
|
||||
int getRequiredSeconderNum();
|
||||
|
||||
/**
|
||||
* 将本次提案的附议门槛快照保存到流程实例变量中,供 second 会签节点的完成条件读取。
|
||||
*
|
||||
* @param processInstanceId 提案流程实例 ID
|
||||
* @param requiredSeconderNum 本次提案需要同意的附议人数
|
||||
*/
|
||||
void snapshotRequiredSeconderNum(Long processInstanceId, int requiredSeconderNum);
|
||||
|
||||
/**
|
||||
* 仅更新附议表 proposal_second 中当前附议人的附议结果。
|
||||
* 参数说明:
|
||||
|
||||
+3
-30
@@ -76,8 +76,6 @@ public class ProposalCommitteeFilingUnitServiceImpl extends BaseServiceImpl<Prop
|
||||
throw new BaseException("没有进行中的流程任务");
|
||||
}
|
||||
|
||||
validateAndNormalizeCaseFilingCode(args);
|
||||
|
||||
String proposalId = args.getStr("proposalId");
|
||||
List<String> proposalIds = proposalCommonService.mergeProposal(proposalId);
|
||||
if (ObjectUtil.isEmpty(proposalIds)) {
|
||||
@@ -102,41 +100,16 @@ public class ProposalCommitteeFilingUnitServiceImpl extends BaseServiceImpl<Prop
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并规范化立案编号。确定立案时必须传入不超过 20 个字符的编号;
|
||||
* 其他立案结果不保存编号,避免切换选项后把历史输入带入业务表和流程变量。
|
||||
*
|
||||
* @param args 流程提交参数,其中 tf_caseFilingResult 为立案结果,tf_caseFilingCode 为手工填写的立案编号
|
||||
*/
|
||||
private void validateAndNormalizeCaseFilingCode(Dict args) {
|
||||
String caseFilingResultKey = FlowConst.TASK_FORM_DATA_PREFIX + "caseFilingResult";
|
||||
String caseFilingCodeKey = FlowConst.TASK_FORM_DATA_PREFIX + "caseFilingCode";
|
||||
if (!"CONFIRM_FILING".equals(args.getStr(caseFilingResultKey))) {
|
||||
args.put(caseFilingCodeKey, "");
|
||||
return;
|
||||
}
|
||||
|
||||
String caseFilingCode = StrUtil.trim(args.getStr(caseFilingCodeKey));
|
||||
if (StrUtil.isBlank(caseFilingCode)) {
|
||||
throw new BaseException("立案编号不能为空");
|
||||
}
|
||||
if (caseFilingCode.length() > 20) {
|
||||
throw new BaseException("立案编号不能超过20个字符");
|
||||
}
|
||||
args.put(caseFilingCodeKey, caseFilingCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* old-flow 页面提交后,需要把立案编号、立案结果以及主协办单位同步落业务表。
|
||||
* old-flow 页面提交后,需要把立案结果以及主协办单位同步落业务表。
|
||||
* 此节点不再维护立案编号,已有提案的历史立案编号保持不变。
|
||||
* 若这次改成“不予立案”等无需承办单位的结果,也要先清掉旧的承办单位记录,避免脏数据残留。
|
||||
*/
|
||||
private void syncCommitteeFilingUnitData(List<String> proposalIds, Dict args) {
|
||||
String caseFilingCode = args.getStr(FlowConst.TASK_FORM_DATA_PREFIX + "caseFilingCode");
|
||||
String caseFilingResult = args.getStr(FlowConst.TASK_FORM_DATA_PREFIX + "caseFilingResult");
|
||||
String caseFilingType = args.getStr(FlowConst.TASK_FORM_DATA_PREFIX + "caseFilingType");
|
||||
|
||||
dao().update(ProposalInfo.class,
|
||||
Chain.make("caseFilingCode", caseFilingCode)
|
||||
.add("caseFilingResult", caseFilingResult)
|
||||
Chain.make("caseFilingResult", caseFilingResult)
|
||||
.add("caseFilingType", caseFilingType),
|
||||
Cnd.where(ProposalInfo::getId, "in", proposalIds));
|
||||
|
||||
|
||||
+50
-7
@@ -1,9 +1,15 @@
|
||||
package com.budwk.app.zhgh.democratic.proposal.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.budwk.app.base.exception.BaseException;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.flow.constant.FlowConst;
|
||||
import com.budwk.app.flow.entity.ProcessInstance;
|
||||
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
||||
import com.budwk.app.flow.service.ProcessInstanceService;
|
||||
import com.budwk.app.zhgh.democratic.proposal.models.ProposalConfig;
|
||||
import com.budwk.app.zhgh.democratic.proposal.models.ProposalSecond;
|
||||
import com.budwk.app.zhgh.democratic.proposal.service.ProposalMessageService;
|
||||
@@ -19,11 +25,33 @@ public class ProposalSecondedServiceImpl extends BaseServiceImpl<ProposalSecond>
|
||||
|
||||
@Inject
|
||||
private ProposalMessageService proposalMessageService;
|
||||
@Inject
|
||||
private ProcessInstanceService processInstanceService;
|
||||
|
||||
public ProposalSecondedServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRequiredSeconderNum() {
|
||||
ProposalConfig proposalConfig = this.dao().fetch(ProposalConfig.class, Cnd.NEW());
|
||||
if (proposalConfig == null || proposalConfig.getSeconderNum() == null || proposalConfig.getSeconderNum() <= 0) {
|
||||
throw new BaseException("请先在提案配置中设置有效的附议人数");
|
||||
}
|
||||
return proposalConfig.getSeconderNum();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void snapshotRequiredSeconderNum(Long processInstanceId, int requiredSeconderNum) {
|
||||
if (processInstanceId == null || requiredSeconderNum <= 0) {
|
||||
throw new BaseException("附议人数流程快照参数错误");
|
||||
}
|
||||
Dict variables = Dict.create();
|
||||
// CountersignHandler 会移除 csv_second_ 前缀后计算表达式中的 requiredAgreeCount。
|
||||
variables.set(FlowConst.COUNTERSIGN_VARIABLE_PREFIX + "second_requiredAgreeCount", requiredSeconderNum);
|
||||
processInstanceService.addVariable(processInstanceId, variables);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateSecondRecord(String proposalId, String taskActorUserId, String opinion, Integer submitType) {
|
||||
if (Strings.isBlank(proposalId) || Strings.isBlank(taskActorUserId) || submitType == null) {
|
||||
@@ -51,20 +79,35 @@ public class ProposalSecondedServiceImpl extends BaseServiceImpl<ProposalSecond>
|
||||
}
|
||||
|
||||
/**
|
||||
* 仅在同意附议人数首次达到配置数量时发送二级工会审核短信,防止重复提交附议结果导致重复通知。
|
||||
* 仅在同意附议人数首次达到本提案的门槛快照时发送二级工会审核短信,防止重复提交附议结果导致重复通知。
|
||||
*/
|
||||
private void notifySecondaryUnionWhenThresholdReached(String proposalId, boolean isAgree, boolean wasAgree,
|
||||
int agreedCountBefore) {
|
||||
if (!isAgree || wasAgree) {
|
||||
return;
|
||||
}
|
||||
ProposalConfig proposalConfig = this.dao().fetch(ProposalConfig.class, Cnd.NEW());
|
||||
if (proposalConfig == null || proposalConfig.getSeconderNum() == null || proposalConfig.getSeconderNum() <= 0) {
|
||||
return;
|
||||
}
|
||||
if (agreedCountBefore < proposalConfig.getSeconderNum()
|
||||
&& agreedCountBefore + 1 >= proposalConfig.getSeconderNum()) {
|
||||
int requiredSeconderNum = getRequiredSeconderNum(proposalId);
|
||||
if (agreedCountBefore < requiredSeconderNum
|
||||
&& agreedCountBefore + 1 >= requiredSeconderNum) {
|
||||
proposalMessageService.sendSecondaryUnionMessage(proposalId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 优先采用邀请附议时写入流程实例的门槛快照,保证配置在提案流转期间被修改时,
|
||||
* 已发起提案的会签条件与二级工会通知阈值仍保持一致。
|
||||
*/
|
||||
private int getRequiredSeconderNum(String proposalId) {
|
||||
ProcessInstance processInstance = this.dao().fetch(ProcessInstance.class,
|
||||
Cnd.where(ProcessInstance::getBusinessNo, "=", proposalId));
|
||||
if (processInstance != null && Strings.isNotBlank(processInstance.getVariable())) {
|
||||
Dict variables = JSONUtil.toBean(processInstance.getVariable(), Dict.class);
|
||||
Integer requiredSeconderNum = variables.getInt(
|
||||
FlowConst.COUNTERSIGN_VARIABLE_PREFIX + "second_requiredAgreeCount");
|
||||
if (requiredSeconderNum != null && requiredSeconderNum > 0) {
|
||||
return requiredSeconderNum;
|
||||
}
|
||||
}
|
||||
return getRequiredSeconderNum();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ const branchUnionUserManage = {
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="doSubmit">确 定</el-button>
|
||||
<el-button type="primary" :loading="isSubmitting" @click="doSubmit">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-dialog title="离任" :visible.sync="leaveDialogVisible" width="420px" :close-on-click-modal="false">
|
||||
@@ -144,7 +144,12 @@ const branchUnionUserManage = {
|
||||
j: ""
|
||||
},
|
||||
dialogFormVisible: false,
|
||||
formData: {},
|
||||
formData: {
|
||||
roleCode: "",
|
||||
j: "",
|
||||
userId: ""
|
||||
},
|
||||
isSubmitting: false,
|
||||
leaveDialogVisible: false,
|
||||
leaveForm: {
|
||||
id: "",
|
||||
@@ -218,7 +223,9 @@ const branchUnionUserManage = {
|
||||
openAdd() {
|
||||
this.dialogFormVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.formData = {}
|
||||
this.$set(this.formData, "roleCode", "")
|
||||
this.$set(this.formData, "j", "")
|
||||
this.$set(this.formData, "userId", "")
|
||||
})
|
||||
},
|
||||
openLeave(row) {
|
||||
@@ -229,22 +236,38 @@ const branchUnionUserManage = {
|
||||
this.leaveDialogVisible = true
|
||||
},
|
||||
doSubmit() {
|
||||
if (!this.formData.roleCode) {
|
||||
this.$message.error("请选择角色")
|
||||
return
|
||||
}
|
||||
if (!this.formData.j) {
|
||||
this.$message.error("请选择届数")
|
||||
return
|
||||
}
|
||||
if (!this.formData.userId) {
|
||||
this.$message.error("请选择人员")
|
||||
return
|
||||
}
|
||||
this.isSubmitting = true
|
||||
$.post("/platform/sys/union/insertBranchUnionUserRole", {
|
||||
...this.formData,
|
||||
roleCode: this.formData.roleCode,
|
||||
j: this.formData.j,
|
||||
userId: this.formData.userId,
|
||||
unionId: this.union_id
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.dialogFormVisible = false
|
||||
this.$message.success(res.msg)
|
||||
this.$message.success(res.msg || "保存成功")
|
||||
this.loadUsedJCodes()
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
this.$message.error(res.msg || "保存失败")
|
||||
}
|
||||
}).fail((xhr) => {
|
||||
const message = xhr.responseJSON && xhr.responseJSON.msg ? xhr.responseJSON.msg : "保存失败,请稍后重试"
|
||||
this.$message.error(message)
|
||||
}).always(() => {
|
||||
this.isSubmitting = false
|
||||
})
|
||||
},
|
||||
doLeave() {
|
||||
|
||||
@@ -21,7 +21,7 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
<el-card shadow="never" style="border: 1px solid var(--border-color-lighter);flex: 1;" :body-style="{ height: '100%', display: 'flex' , 'flex-direction': 'column' }">
|
||||
<table-tool>
|
||||
<el-button type="primary" size="small" icon="el-icon-refresh" @click="syncSysUnit">同步系统单位</el-button>
|
||||
<el-button type="primary" size="small" icon="el-icon-refresh" :loading="syncing" @click="syncSysUnit">同步系统单位</el-button>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" border ref="tableRef" height="100%" @sort-change="pageOrder">
|
||||
<el-table-column label="序号" type="index" :index="indexMethod" width="60"></el-table-column>
|
||||
@@ -69,7 +69,8 @@ layout("/layouts/platform.html"){
|
||||
data() {
|
||||
return {
|
||||
currentTreeNode: null,
|
||||
currentTreeData: null
|
||||
currentTreeData: null,
|
||||
syncing: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -78,13 +79,25 @@ layout("/layouts/platform.html"){
|
||||
this.currentTreeNode = node
|
||||
},
|
||||
|
||||
syncSysUnit() {
|
||||
this.$axios.post(loc() + "/syncSysUnit").then((res) => {
|
||||
async syncSysUnit() {
|
||||
if (this.syncing) {
|
||||
return
|
||||
}
|
||||
this.syncing = true
|
||||
try {
|
||||
const res = await this.$axios.post(loc() + "/syncSysUnit")
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.$message.success(res.msg || "同步完成")
|
||||
this.$refs.treeRef.listTree()
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$message.error(res.msg || "同步失败")
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
this.$message.error("同步失败,请稍后重试")
|
||||
} finally {
|
||||
this.syncing = false
|
||||
}
|
||||
},
|
||||
|
||||
onDelete (row) {
|
||||
|
||||
-11
@@ -123,14 +123,6 @@ layout("/layouts/platform.html"){
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<!-- 立案编号由审核人手工填写,仅确定立案时参与校验和保存。 -->
|
||||
<el-form-item v-if="formData.tf_caseFilingResult === 'CONFIRM_FILING'"
|
||||
label="立案编号"
|
||||
prop="tf_caseFilingCode"
|
||||
:rules="[{required:true,message:'请填写立案编号',trigger:['change','blur']}]">
|
||||
<el-input v-model="formData.tf_caseFilingCode" clearable maxlength="20"
|
||||
show-word-limit placeholder="请输入立案编号"></el-input>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item v-if="['CONFIRM_FILING'].includes(formData.tf_caseFilingResult)" label="立案类型"
|
||||
prop="tf_caseFilingType"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
@@ -247,7 +239,6 @@ layout("/layouts/platform.html"){
|
||||
*/
|
||||
handleCaseFilingResultChange(caseFilingResult) {
|
||||
if (caseFilingResult !== "CONFIRM_FILING") {
|
||||
this.$set(this.formData, "tf_caseFilingCode", "")
|
||||
this.$set(this.formData, "tf_caseFilingType", "")
|
||||
}
|
||||
if (caseFilingResult === "SUGGESTION") {
|
||||
@@ -304,7 +295,6 @@ layout("/layouts/platform.html"){
|
||||
// 当前页面需要回显上一环节“提案委员会立案”保存的主办/协办单位或办理单位。
|
||||
var data = val[val.length - 1]
|
||||
this.$set(this.formData, "tf_caseFilingResult", data.ext.tf_caseFilingResult)
|
||||
this.$set(this.formData, "tf_caseFilingCode", data.ext.tf_caseFilingCode || "")
|
||||
this.$set(this.formData, "tf_caseFilingType", data.ext.tf_caseFilingType)
|
||||
this.$set(this.formData, "tf_masterUnitIds", this.normalizeUnitIds(data.ext.tf_masterUnitIds))
|
||||
this.$set(this.formData, "tf_slaveUnitIds", this.normalizeUnitIds(data.ext.tf_slaveUnitIds))
|
||||
@@ -317,7 +307,6 @@ layout("/layouts/platform.html"){
|
||||
proposalId: row.id,
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName,
|
||||
tf_caseFilingCode: "",
|
||||
tf_masterUnitIds: [],
|
||||
tf_slaveUnitIds: []
|
||||
}
|
||||
|
||||
-6
@@ -46,9 +46,6 @@ layout("/layouts/platform_h5.html"){
|
||||
<van-picker show-toolbar :columns="caseFilingResultOptions" @confirm="onResultConfirm"
|
||||
@cancel="closeResultPicker"></van-picker>
|
||||
</van-popup>
|
||||
<van-field v-if="formData.tf_caseFilingResult === 'CONFIRM_FILING'" v-model="formData.tf_caseFilingCode"
|
||||
name="tf_caseFilingCode" label="立案编号" placeholder="请输入立案编号" maxlength="20" show-word-limit
|
||||
:rules="[{ required: true, message: '请填写立案编号' }]" required></van-field>
|
||||
<van-field v-if="showUndertakeUnit" :value="masterUnitNames" :label="masterUnitLabel" readonly is-link
|
||||
:placeholder="masterUnitLabel === '办理单位' ? '请选择办理单位' : '请选择主办单位'"
|
||||
@click="openMasterUnitPicker"
|
||||
@@ -195,7 +192,6 @@ layout("/layouts/platform_h5.html"){
|
||||
taskName: row.taskName,
|
||||
tf_caseFilingResult: "",
|
||||
tf_caseFilingResultName: "",
|
||||
tf_caseFilingCode: "",
|
||||
tf_masterUnitIds: [],
|
||||
tf_slaveUnitIds: [],
|
||||
tf_opinion: ""
|
||||
@@ -216,7 +212,6 @@ layout("/layouts/platform_h5.html"){
|
||||
const ext = committeeTask.ext
|
||||
this.$set(this.formData, "tf_caseFilingResult", ext.tf_caseFilingResult || "")
|
||||
this.$set(this.formData, "tf_caseFilingResultName", this.getCaseFilingResultName(ext.tf_caseFilingResult))
|
||||
this.$set(this.formData, "tf_caseFilingCode", ext.tf_caseFilingCode || "")
|
||||
this.$set(this.formData, "tf_masterUnitIds", this.normalizeUnitIds(ext.tf_masterUnitIds))
|
||||
this.$set(this.formData, "tf_slaveUnitIds", this.normalizeUnitIds(ext.tf_slaveUnitIds))
|
||||
})
|
||||
@@ -242,7 +237,6 @@ layout("/layouts/platform_h5.html"){
|
||||
this.$set(this.formData, "tf_caseFilingResultName", value.text)
|
||||
if (value.value === "SUGGESTION") this.$set(this.formData, "tf_slaveUnitIds", [])
|
||||
if (value.value !== "CONFIRM_FILING" && value.value !== "SUGGESTION") {
|
||||
this.$set(this.formData, "tf_caseFilingCode", "")
|
||||
this.$set(this.formData, "tf_masterUnitIds", [])
|
||||
this.$set(this.formData, "tf_slaveUnitIds", [])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user