diff --git a/src/main/java/com/budwk/app/base/event/flow/jumptofirsttask/FlowJumpToFirstTaskNodeListener.java b/src/main/java/com/budwk/app/base/event/flow/jumptofirsttask/FlowJumpToFirstTaskNodeListener.java new file mode 100644 index 0000000..a0c7571 --- /dev/null +++ b/src/main/java/com/budwk/app/base/event/flow/jumptofirsttask/FlowJumpToFirstTaskNodeListener.java @@ -0,0 +1,14 @@ +package com.budwk.app.base.event.flow.jumptofirsttask; + +/** + * @version 1.0 + * @Author FKY + * @name:FlowJumpToFirstTaskNodeListener + * @Date 2025/12/20 14:10 + * @注释 + */ +public interface FlowJumpToFirstTaskNodeListener { + + void receive(Long processTaskId); + +} diff --git a/src/main/java/com/budwk/app/base/event/flow/jumptofirsttask/FlowJumpToFirstTaskNodePublisher.java b/src/main/java/com/budwk/app/base/event/flow/jumptofirsttask/FlowJumpToFirstTaskNodePublisher.java new file mode 100644 index 0000000..93d8d8d --- /dev/null +++ b/src/main/java/com/budwk/app/base/event/flow/jumptofirsttask/FlowJumpToFirstTaskNodePublisher.java @@ -0,0 +1,25 @@ +package com.budwk.app.base.event.flow.jumptofirsttask; + +import com.budwk.app.base.event.user.UserChangeEventListener; +import com.budwk.app.base.utils.AppIocUtil; +import org.nutz.ioc.Ioc; +import org.nutz.mvc.Mvcs; + +/** + * @version 1.0 + * @Author FKY + * @name:FlowJumpToFirstTaskNodeEvent + * @Date 2025/12/20 14:09 + * @注释 + */ +public class FlowJumpToFirstTaskNodePublisher { + + public static void broadcast(Long processTaskId) { + String[] names = Mvcs.getIoc().getNamesByType(FlowJumpToFirstTaskNodeListener.class); + for (String listener : names) { + FlowJumpToFirstTaskNodeListener listenerBean = Mvcs.getIoc().get(FlowJumpToFirstTaskNodeListener.class, listener); + listenerBean.receive(processTaskId); + } + } + +} diff --git a/src/main/java/com/budwk/app/flow/controller/FlowTodoCenterController.java b/src/main/java/com/budwk/app/flow/controller/FlowTodoCenterController.java index 42d67b6..7b409ce 100644 --- a/src/main/java/com/budwk/app/flow/controller/FlowTodoCenterController.java +++ b/src/main/java/com/budwk/app/flow/controller/FlowTodoCenterController.java @@ -48,6 +48,7 @@ public class FlowTodoCenterController { t.displayName AS taskName, t.taskState, t.formKey, + t.h5FormKey, t.createdAt, t.finishTime, t.variable, @@ -92,6 +93,7 @@ public class FlowTodoCenterController { t.displayName AS taskName, t.taskState, t.formKey, + t.h5FormKey, t.createdAt, t.finishTime, t.variable, @@ -140,7 +142,9 @@ public class FlowTodoCenterController { ins.createdAt, ins.variable ->> '$.instanceName' AS instanceName, GROUP_CONCAT(DISTINCT t.displayName) as taskName, - cat.`name` categoryName + cat.`name` categoryName, + t.formKey, + t.h5FormKey FROM wf_process_instance ins LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id and t.taskState = 10 @@ -179,7 +183,7 @@ public class FlowTodoCenterController { ins.variable, ins.createdAt, ins.variable ->> '$.instanceName' AS instanceName, - cat.`name` categoryName + cat.`name` categoryName FROM wf_process_instance ins LEFT JOIN wf_process_define def ON def.id = ins.processDefineId diff --git a/src/main/java/com/budwk/app/flow/engine/model/TaskModel.java b/src/main/java/com/budwk/app/flow/engine/model/TaskModel.java index 84d521d..d03c1d2 100644 --- a/src/main/java/com/budwk/app/flow/engine/model/TaskModel.java +++ b/src/main/java/com/budwk/app/flow/engine/model/TaskModel.java @@ -41,6 +41,8 @@ public class TaskModel extends NodeModel { */ private String countersignCompletionCondition; + private String h5form; + @Override public void exec(Execution execution) { // 执行任务节点自定义执行逻辑 diff --git a/src/main/java/com/budwk/app/flow/engine/parser/NodeParser.java b/src/main/java/com/budwk/app/flow/engine/parser/NodeParser.java index 9e37150..0bac1f3 100644 --- a/src/main/java/com/budwk/app/flow/engine/parser/NodeParser.java +++ b/src/main/java/com/budwk/app/flow/engine/parser/NodeParser.java @@ -21,6 +21,7 @@ public interface NodeParser { String EXPR_KEY = "expr"; // 表达式key String HANDLE_CLASS_KEY = "handleClass"; // 表达式处理类 String FORM_KEY = "form"; // 表单标识 + String H5_FORM_KEY = "h5form"; // 表单标识 String ASSIGNEE_KEY = "assignee"; // 参与人 String ASSIGNMENT_HANDLE_KEY = "assignmentHandler"; // 参与人处理类 String TASK_TYPE_KEY = "taskType"; // 任务类型(主办/协办) diff --git a/src/main/java/com/budwk/app/flow/engine/parser/impl/TaskParser.java b/src/main/java/com/budwk/app/flow/engine/parser/impl/TaskParser.java index 314e24a..9424d27 100644 --- a/src/main/java/com/budwk/app/flow/engine/parser/impl/TaskParser.java +++ b/src/main/java/com/budwk/app/flow/engine/parser/impl/TaskParser.java @@ -29,6 +29,7 @@ public class TaskParser extends AbstractNodeParser { TaskModel taskModel = (TaskModel)nodeModel; Dict properties = lfNode.getProperties(); taskModel.setForm(properties.getStr(FORM_KEY)); + taskModel.setH5form(properties.getStr(H5_FORM_KEY)); taskModel.setAssignee(properties.getStr(ASSIGNEE_KEY)); taskModel.setAssignmentHandler(properties.getStr(ASSIGNMENT_HANDLE_KEY)); taskModel.setTaskType(ProcessTaskTypeEnum.codeOf(properties.get(TASK_TYPE_KEY))); diff --git a/src/main/java/com/budwk/app/flow/entity/ProcessTask.java b/src/main/java/com/budwk/app/flow/entity/ProcessTask.java index 072cadf..406361b 100644 --- a/src/main/java/com/budwk/app/flow/entity/ProcessTask.java +++ b/src/main/java/com/budwk/app/flow/entity/ProcessTask.java @@ -66,6 +66,10 @@ public class ProcessTask extends BaseModel { @Column private String formKey; + @Comment("h5任务处理表单KEY") + @Column + private String h5FormKey; + @Comment("父任务ID") @Column private Long taskParentId; diff --git a/src/main/java/com/budwk/app/flow/service/FlowCommonService.java b/src/main/java/com/budwk/app/flow/service/FlowCommonService.java index 6e9f07c..bd6b901 100644 --- a/src/main/java/com/budwk/app/flow/service/FlowCommonService.java +++ b/src/main/java/com/budwk/app/flow/service/FlowCommonService.java @@ -2,6 +2,7 @@ package com.budwk.app.flow.service; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ObjectUtil; +import com.budwk.app.base.event.flow.jumptofirsttask.FlowJumpToFirstTaskNodePublisher; import com.budwk.app.flow.constant.FlowConst; import com.budwk.app.flow.engine.FlowEngine; import com.budwk.app.flow.enums.ProcessSubmitTypeEnum; @@ -52,6 +53,10 @@ public class FlowCommonService { } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.ROLLBACK_TO_OPERATOR.getCode())) { // 退回发起人 flowEngine.executeAndJumpToFirstTaskNode(processTaskId, operator, args); + + // 退回发起人发送订阅消息,执行相关操作 + FlowJumpToFirstTaskNodePublisher.broadcast(processTaskId); + } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.COUNTERSIGN_DISAGREE.getCode())) { // 会签不同意,追加不同意标识 args.put(FlowConst.COUNTERSIGN_DISAGREE_FLAG, 1); diff --git a/src/main/java/com/budwk/app/flow/service/impl/ProcessTaskServiceImpl.java b/src/main/java/com/budwk/app/flow/service/impl/ProcessTaskServiceImpl.java index 5c663a5..a80acf7 100644 --- a/src/main/java/com/budwk/app/flow/service/impl/ProcessTaskServiceImpl.java +++ b/src/main/java/com/budwk/app/flow/service/impl/ProcessTaskServiceImpl.java @@ -174,6 +174,7 @@ public class ProcessTaskServiceImpl extends BaseServiceImpl impleme processTask.setTaskState(ProcessTaskStateEnum.DOING.getCode()); processTask.setTaskType(taskModel.getTaskType().getCode()); processTask.setFormKey(taskModel.getForm()); + processTask.setH5FormKey(taskModel.getH5form()); processTask.setProcessInstanceId(execution.getProcessInstanceId()); // 增加是否为第一个任务节点标识 diff --git a/src/main/java/com/budwk/app/sys/controller/SysUnitController.java b/src/main/java/com/budwk/app/sys/controller/SysUnitController.java index 8383626..d923ccf 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysUnitController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysUnitController.java @@ -300,7 +300,7 @@ public class SysUnitController { ) )); } - List> treeList = TreeUtil.build(nodeList, StrUtil.blankToDefault(pid, "0000")); + List> treeList = TreeUtil.build(nodeList, StrUtil.blankToDefault(pid, "0")); // NutMap menuMap = NutMap.NEW(); // for (Sys_unit unit : list) { @@ -326,7 +326,7 @@ public class SysUnitController { public Object addDo(@Param("..") Sys_unit unit, @Param("parentId") String parentId, HttpServletRequest req) { try { if ("root".equals(parentId)) { - parentId = ""; + parentId = "0"; } unit.setCreatedBy(SecurityUtil.getUserId()); unit.setUnitType("用户自建"); diff --git a/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java b/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java index e12928e..2483fb7 100644 --- a/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java +++ b/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java @@ -60,6 +60,7 @@ public class SysV4ServController { cnd.where().andLike("t.disPlayName", keyword); } cnd.andEX("t.category", "=", categoryId); + cnd.andEX("t.pinyinName", "=", letter); sql.setCondition(cnd); List list = sysMenuService.listMap(sql); return Result.success(list); diff --git a/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java b/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java index 7d9d9f6..286c764 100644 --- a/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java +++ b/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java @@ -30,7 +30,7 @@ public class CspProcessor extends AbstractProcessor { "style-src * 'unsafe-inline' data:; " + "img-src 'self' data: https:; " + "font-src * data: https:; " + - "connect-src 'self' https:; " + + "connect-src 'self' https: webpack:; " + "frame-ancestors 'self'; " + "object-src 'self';"; diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareMineController.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareMineController.java index ebf6413..ddc4ee8 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareMineController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareMineController.java @@ -37,6 +37,7 @@ import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; +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; @@ -65,232 +66,225 @@ import java.util.*; @At("/platform/activityDeclare/mine") public class ActivityDeclareMineController { - @Inject - private Dao dao; - @Inject - private FlowEngine flowEngine; - @Inject - private SysOfficeTemplateUtil sysOfficeTemplateUtil; - @Inject - private ActivityDeclareService activityDeclareService; + @Inject + private Dao dao; + @Inject + private FlowEngine flowEngine; + @Inject + private SysOfficeTemplateUtil sysOfficeTemplateUtil; + @Inject + private ActivityDeclareService activityDeclareService; - @At("") - @SaCheckPermission("activityDeclare.mine") - @Ok("beetl:/platform/zhgh/activity/declarereimbursement/declare/mine/index.html") - public void index() { - } + @At("") + @SaCheckPermission("activityDeclare.mine") + @Ok("beetl:/platform/zhgh/activity/declarereimbursement/declare/mine/index.html") + public void index() { + } - @At - @ApiOperation("活动申报,我的申请列表") - @SaCheckPermission("activityDeclare.mine") - public Result pageData(CommonPageParam pageParam) { - Sql sql = Sqls.create(""" - SELECT - info.id, - info.userName, - info.mobile, - info.loginName, - info.applyTime, - info.activityName, - info.activityAddress, - info.planStartTime, - info.planEndTime, - info.declareUnitName, - info.activityType, - info.activityContent, - info.activityNumber, - ins.id AS instanceId, - ins.businessNo, - ins.state instanceState, - ins.variable instanceVariable, - ins.processDefineId instanceProcessDefineId, - t.id taskId, - t.taskName AS taskKey, - t.displayName taskName, - t.taskType, - t.performType taskPerformType, - t.taskState, - t.finishTime, - t.taskParentId, - t.variable taskVariable, - IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, - (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId - FROM - activity_declare_info info - LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id - LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10 - LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id - $condition - """); - Cnd cnd = Cnd.NEW(); - pageParam.buildSearch(cnd, "info."); - if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name())) { - if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) { - cnd.and("info.unionId", "=", SecurityUtil.getUnionId()); - } else { - cnd.and("info.userId", "=", SecurityUtil.getUserId()); - } - } - if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) { - cnd.desc("info.applyTime"); - } else { - cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy())); - } - sql.setCondition(cnd); - Pagination pagination = activityDeclareService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql); - return Result.success().addData(pagination); - } + @At + @ApiOperation("活动申报,我的申请列表") + @SaCheckPermission("activityDeclare.mine") + public Result pageData(CommonPageParam pageParam) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.userName, + info.mobile, + info.loginName, + info.applyTime, + info.activityName, + info.activityAddress, + info.planStartTime, + info.planEndTime, + info.declareUnitName, + info.activityType, + info.activityContent, + info.activityNumber, + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, + (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId + FROM + activity_declare_info info + LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id + LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10 + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + $condition + """); + Cnd cnd = Cnd.NEW(); + pageParam.buildSearch(cnd, "info."); + if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) { + cnd.desc("info.applyTime"); + } else { + cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy())); + } + sql.setCondition(cnd); + Pagination pagination = activityDeclareService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql); + return Result.success().addData(pagination); + } - @At - @ApiOperation("活动申报,查看活动申报") - @SaCheckPermission("activityDeclare") - public Result findOne(@Valid String id) { - ActivityDeclareInfo info = dao.fetch(ActivityDeclareInfo.class, id); - return Result.success().addData(info); - } + @At + @ApiOperation("活动申报,查看活动申报") + @SaCheckPermission("activityDeclare") + public Result findOne(@Valid String id) { + ActivityDeclareInfo info = dao.fetch(ActivityDeclareInfo.class, id); + return Result.success().addData(info); + } - @At - @ApiOperation("删除活动申报") - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("activityDeclare.mine") - @SLog(tag = "活动申报", msg = "删除活动申报id: ${args[0]}") - public Result onDelete(@Valid String id) { - dao.clear(ActivityDeclareInfo.class, Cnd.where("id", "=", id)); - // 删除流程相关 - flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); + @At + @ApiOperation("删除活动申报") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("activityDeclare.mine") + @SLog(tag = "活动申报", msg = "删除活动申报id: ${args[0]}") + public Result onDelete(@Valid String id) { + dao.clear(ActivityDeclareInfo.class, Cnd.where("id", "=", id)); + // 删除流程相关 + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); - // 如果有报销的流程,也一并删除 - ActivityReimbursementInfo reimbursementInfo = dao.fetch(ActivityReimbursementInfo.class, Cnd.where("declareId", "=", id)); - if (Lang.isNotEmpty(reimbursementInfo)) { - dao.clear(ActivityReimbursementInfo.class, Cnd.where("id", "=", reimbursementInfo.getId())); - // 删除流程相关 - flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(reimbursementInfo.getId()); - } - return Result.success(); - } + // 如果有报销的流程,也一并删除 + ActivityReimbursementInfo reimbursementInfo = dao.fetch(ActivityReimbursementInfo.class, Cnd.where("declareId", "=", id)); + if (Lang.isNotEmpty(reimbursementInfo)) { + dao.clear(ActivityReimbursementInfo.class, Cnd.where("id", "=", reimbursementInfo.getId())); + // 删除流程相关 + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(reimbursementInfo.getId()); + } + return Result.success(); + } - @At - @Ok("void") - @SaCheckPermission("activityDeclare.mine") - @SLog(tag = "活动申报", msg = "导出活动申报表") - public void doExportDeclare(@Valid String id, HttpServletResponse response) { - HashMap docData = new HashMap<>(); + @At + @Ok("void") + @SaCheckPermission("activityDeclare.mine") + @SLog(tag = "活动申报", msg = "导出活动申报表") + public void doExportDeclare(@Valid String id, HttpServletResponse response) { + HashMap docData = new HashMap<>(); - Sql sql = Sqls.create(""" - SELECT - info.*, - ins.id AS instanceId - FROM - `activity_declare_info` info - LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id - WHERE - ins.state = 20 AND info.id = @id - """).setParam("id", id); - sql.setCallback(Sqls.callback.map()); - dao.execute(sql); - NutMap info = (NutMap) sql.getResult(); + Sql sql = Sqls.create(""" + SELECT + info.*, + ins.id AS instanceId + FROM + `activity_declare_info` info + LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id + WHERE + ins.state = 20 AND info.id = @id + """).setParam("id", id); + sql.setCallback(Sqls.callback.map()); + dao.execute(sql); + NutMap info = (NutMap) sql.getResult(); - String activityContent = info.getString("activityContent"); - info.put("activityContent", sysOfficeTemplateUtil.convertRichTextToDocText(activityContent)); + String activityContent = info.getString("activityContent"); + info.put("activityContent", sysOfficeTemplateUtil.convertRichTextToDocText(activityContent)); - docData.put("schoolName", Globals.AppName); - docData.put("info", info); + docData.put("schoolName", Globals.AppName); + docData.put("info", info); - List doneTaskVos = new ArrayList<>(); - List doneTaskList = flowEngine.processTaskService().getDoneTaskList(info.getLong("instanceId"), null); - for (ProcessTask doneTask : doneTaskList) { - ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId()); - doneTaskVos.add(taskVO); - } + List doneTaskVos = new ArrayList<>(); + List doneTaskList = flowEngine.processTaskService().getDoneTaskList(info.getLong("instanceId"), null); + for (ProcessTask doneTask : doneTaskList) { + ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId()); + doneTaskVos.add(taskVO); + } - // 分工会审核 - doneTaskVos.stream().filter(task -> "分工会审核".equals(task.getDisplayName())) - .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) - .ifPresent(v -> { - Dict taskFormData = v.getTaskFormData(); - HashMap approval = new HashMap<>(); + // 分工会审核 + doneTaskVos.stream().filter(task -> "分工会审核".equals(task.getDisplayName())) + .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) + .ifPresent(v -> { + Dict taskFormData = v.getTaskFormData(); + HashMap approval = new HashMap<>(); - approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); - approval.put("user", taskFormData.getStr("tf_userName")); - if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { - approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); - } - approval.put("opinion", taskFormData.getStr("tf_opinion")); - docData.put("fgh", approval); - }); + approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); + approval.put("user", taskFormData.getStr("tf_userName")); + if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { + approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); + } + approval.put("opinion", taskFormData.getStr("tf_opinion")); + docData.put("fgh", approval); + }); - // 协会负责人审核 - doneTaskVos.stream().filter(task -> "协会负责人审核".equals(task.getDisplayName())) - .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) - .ifPresent(v -> { - Dict taskFormData = v.getTaskFormData(); - HashMap approval = new HashMap<>(); + // 协会负责人审核 + doneTaskVos.stream().filter(task -> "协会负责人审核".equals(task.getDisplayName())) + .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) + .ifPresent(v -> { + Dict taskFormData = v.getTaskFormData(); + HashMap approval = new HashMap<>(); - approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); - approval.put("user", taskFormData.getStr("tf_userName")); - if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { - approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); - } - approval.put("opinion", taskFormData.getStr("tf_opinion")); - docData.put("xh", approval); - }); + approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); + approval.put("user", taskFormData.getStr("tf_userName")); + if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { + approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); + } + approval.put("opinion", taskFormData.getStr("tf_opinion")); + docData.put("xh", approval); + }); - // 校工会负责人审核 - doneTaskVos.stream().filter(task -> "校工会负责人审核".equals(task.getDisplayName())) - .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) - .ifPresent(v -> { - Dict taskFormData = v.getTaskFormData(); - HashMap approval = new HashMap<>(); + // 校工会负责人审核 + doneTaskVos.stream().filter(task -> "校工会负责人审核".equals(task.getDisplayName())) + .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) + .ifPresent(v -> { + Dict taskFormData = v.getTaskFormData(); + HashMap approval = new HashMap<>(); - approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); - approval.put("user", taskFormData.getStr("tf_userName")); - if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { - approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); - } - approval.put("opinion", taskFormData.getStr("tf_opinion")); - docData.put("xfzr", approval); - }); + approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); + approval.put("user", taskFormData.getStr("tf_userName")); + if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { + approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); + } + approval.put("opinion", taskFormData.getStr("tf_opinion")); + docData.put("xfzr", approval); + }); - // 校工会主席审核 - doneTaskVos.stream().filter(task -> "校工会主席审核".equals(task.getDisplayName())) - .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) - .ifPresent(v -> { - Dict taskFormData = v.getTaskFormData(); - HashMap approval = new HashMap<>(); + // 校工会主席审核 + doneTaskVos.stream().filter(task -> "校工会主席审核".equals(task.getDisplayName())) + .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) + .ifPresent(v -> { + Dict taskFormData = v.getTaskFormData(); + HashMap approval = new HashMap<>(); - approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); - approval.put("user", taskFormData.getStr("tf_userName")); - if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { - approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); - } - approval.put("opinion", taskFormData.getStr("tf_opinion")); - docData.put("xzx", approval); - }); + approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); + approval.put("user", taskFormData.getStr("tf_userName")); + if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { + approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); + } + approval.put("opinion", taskFormData.getStr("tf_opinion")); + docData.put("xzx", approval); + }); - String budgetsStr = info.getString("budgets"); - List list = JSONUtil.parseArray(budgetsStr).toList(ActivityBudgetVO.class); - for (int i = 0; i < list.size(); i++) { - list.get(i).setRanking(i + 1); - } - docData.put("budgets", list); + String budgetsStr = info.getString("budgets"); + List list = JSONUtil.parseArray(budgetsStr).toList(ActivityBudgetVO.class); + for (int i = 0; i < list.size(); i++) { + list.get(i).setRanking(i + 1); + } + docData.put("budgets", list); - LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy(); - Configure config = Configure.builder() - .bind("budgets", policy) - .build(); + LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy(); + Configure config = Configure.builder() + .bind("budgets", policy) + .build(); - String fileName = Globals.AppName + "【" + info.getString("activityName") + "】申报表.docx"; + String fileName = Globals.AppName + "【" + info.getString("activityName") + "】申报表.docx"; - try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { - XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("activity_declare"), config).render(docData).writeAndClose(byteArrayOutputStream); - CommonDownloadUtil.download(fileName, byteArrayOutputStream.toByteArray(), response); - } catch (IOException e) { - log.error("活动申报表导出失败,id:{},错误信息:{}", id, e.getMessage()); - } - } + try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { + XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("activity_declare"), config).render(docData).writeAndClose(byteArrayOutputStream); + CommonDownloadUtil.download(fileName, byteArrayOutputStream.toByteArray(), response); + } catch (IOException e) { + log.error("活动申报表导出失败,id:{},错误信息:{}", id, e.getMessage()); + } + } } diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/vo/CommonPageParam.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/vo/CommonPageParam.java index 52d106e..2706481 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/vo/CommonPageParam.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/vo/CommonPageParam.java @@ -51,15 +51,18 @@ public class CommonPageParam extends PageForm { if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { cnd.and(prefix + "declareUnitName", "<>", ActivityDeclareReimbursement.SCHOOL_UNION.name()); + SqlExpressionGroup group = new SqlExpressionGroup(); if (AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_CHAIRMAN.name(), RoleConstant.BRANCH_UNION_ADMIN.name(), RoleConstant.BRANCH_UNION_OPERATOR.name())) { - cnd.and(prefix + "unionid", "=", SecurityUtil.getUnionId()); - } else if (AuthUtil.hasRoleOr(RoleConstant.CLUB_MANAGER.name(), RoleConstant.CLUB_PRESIDENT.name())) { -// cnd.and(prefix + "clubId", "=", ); - } else { - cnd.andEX(prefix + "userId", "=", SecurityUtil.getUserId()); + group.or(prefix + "unionid", "=", SecurityUtil.getUnionId()); } + if (AuthUtil.hasRoleOr(RoleConstant.CLUB_MANAGER.name(), RoleConstant.CLUB_PRESIDENT.name())) { +// cnd.and(prefix + "clubId", "=", ); + group.or(prefix + "clubId", "in", SecurityUtil.getClubIds()); + } + group.or(prefix + "userId", "=", SecurityUtil.getUserId()); + cnd.and(group); } else { cnd.andEX(prefix + "unionId", "=", this.getUnionId()); cnd.andEX(prefix + "clubId", "=", this.getClubId()); diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetSchoolAuditController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetSchoolAuditController.java index f15003c..854d1b5 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetSchoolAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetSchoolAuditController.java @@ -91,6 +91,7 @@ public class ActivityBudgetSchoolAuditController { cnd.and("t.taskName", "=", "b6f29037-972d-4b97-8677-c3b3672ef0dc"); // cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); cnd.andEX("info.unionId", "=", unionId); + cnd.andEX("info.clubId", "=", clubId); cnd.andEX("info.outlayManageSource", "=", outlayManageSource); cnd.andEX("info.budgetReimburseType", "=", budgetReimburseType); diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetSchoolPrincipalController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetSchoolPrincipalController.java index f5471aa..e278159 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetSchoolPrincipalController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetSchoolPrincipalController.java @@ -91,6 +91,7 @@ public class ActivityBudgetSchoolPrincipalController { cnd.and("t.taskName", "=", "0b6aea8c-9d24-4d6d-b10b-4c930c919093"); cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); cnd.andEX("info.unionId", "=", unionId); + cnd.andEX("info.clubId", "=", clubId); cnd.andEX("info.outlayManageSource", "=", outlayManageSource); cnd.andEX("info.budgetReimburseType", "=", budgetReimburseType); diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/common/ProposalCommonController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/common/ProposalCommonController.java index 4cad0e1..7e6cac3 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/common/ProposalCommonController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/common/ProposalCommonController.java @@ -2,6 +2,7 @@ package com.budwk.app.zhgh.democratic.proposal.controller.common; import cn.dev33.satoken.annotation.SaCheckLogin; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.StrUtil; import com.budwk.app.base.result.Result; import com.budwk.app.zhgh.democratic.proposal.models.ProposalConfig; import com.budwk.app.zhgh.democratic.proposal.models.ProposalType; @@ -49,8 +50,11 @@ public class ProposalCommonController { @At @SaCheckLogin @ApiOperation("查询全部的教代会") - public Result listSession() { - List list = dao.query(Teacher_congress_session.class, Cnd.NEW().desc("startDate")); + public Result listSession(String orderBy) { + if (StrUtil.isBlank(orderBy)) { + orderBy = "desc"; + } + List list = dao.query(Teacher_congress_session.class, Cnd.NEW().orderBy("startDate", orderBy)); return Result.success(list); } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/senior/ProposalSeniorBasicController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/senior/ProposalSeniorBasicController.java index 9500816..abe824c 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/senior/ProposalSeniorBasicController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/senior/ProposalSeniorBasicController.java @@ -89,7 +89,13 @@ public class ProposalSeniorBasicController { @ApiOperation(value = "提案内容修改") @Aop(TransAop.READ_COMMITTED) public Result update(@Valid @Param("info") ProposalInfo proposalInfo) { - dao.update(proposalInfo,"^name|typeId|brief|measures|excerpt|suggestUnits$"); + int count = dao.count(ProposalInfo.class, Cnd.where("code", "=", proposalInfo.getCode()).and("id", "<>", proposalInfo.getId())); + + if (count > 0) { + return Result.error("提案编号已存在"); + } + + dao.update(proposalInfo,"^code|name|typeId|brief|measures|excerpt|suggestUnits|files$"); return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSchoolLeaderApprovalController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSchoolLeaderApprovalController.java index ea20789..5983925 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSchoolLeaderApprovalController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSchoolLeaderApprovalController.java @@ -93,7 +93,8 @@ public class ProposalSchoolLeaderApprovalController { t.taskParentId, t.variable taskVariable, IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, - IF(rt.id IS NOT NULL, 1, 0) AS canRevoke + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke, + GROUP_CONCAT(DISTINCT ta.actorName, '(', ta.actorAccount, ')' ) AS auditUser FROM wf_process_task t LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java index 79274ce..8db1264 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java @@ -104,7 +104,8 @@ public class ProposalUnderTakeReplyController { t.variable->>'$.underTakeName' AS underTakeName, IF(JSON_EXTRACT(t.variable, '$.underTakeIsMaster') = true, 1, 0) AS underTakeIsMaster, t.variable->>'$.tf_transferUserId' AS tf_transferUserId, - transferUser.username AS transferUserName + transferUser.username AS transferUserName, + GROUP_CONCAT(DISTINCT ta.actorName, '(', ta.actorAccount, ')' ) AS auditUser FROM wf_process_task t LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/handler/ProposalMasterUnitAssignmentHandler.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/handler/ProposalMasterUnitAssignmentHandler.java index 0390a3a..828df63 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/handler/ProposalMasterUnitAssignmentHandler.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/handler/ProposalMasterUnitAssignmentHandler.java @@ -13,8 +13,10 @@ import com.budwk.app.sys.models.Sys_user_role; import com.budwk.app.sys.services.SysRoleService; import com.budwk.app.zhgh.democratic.proposal.models.ProposalReplyUnit; import com.budwk.app.zhgh.democratic.proposal.models.ProposalUndertake; +import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; +import org.nutz.ioc.aop.Aop; import java.util.List; @@ -22,7 +24,9 @@ import java.util.List; * 提案主办单位处理人 */ public class ProposalMasterUnitAssignmentHandler implements AssignmentHandler { + @Override + @Aop(TransAop.READ_COMMITTED) public List assign(TaskModel model, Execution execution) { Dao dao = ServiceContext.find(Dao.class); SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class); @@ -42,7 +46,8 @@ public class ProposalMasterUnitAssignmentHandler implements AssignmentHandler { // 如果没有 认为是需要重新答复 从记录表里取值 if(StrUtil.isBlank(masterUnitId)){ - ProposalReplyUnit masterUnit = dao.fetch(ProposalReplyUnit.class, Cnd.where(ProposalReplyUnit::getProposalId, "=", proposalId).and(ProposalReplyUnit::getIsMaster, "=", 1)); + ProposalReplyUnit masterUnit = dao.fetch(ProposalReplyUnit.class, Cnd.where(ProposalReplyUnit::getProposalId, "=", proposalId) + .and(ProposalReplyUnit::getIsMaster, "=", 1)); if (masterUnit == null) { throw new BaseException("系统异常"); } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCaseTaskRevokeEventListener.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCaseTaskRevokeEventListener.java index 32facb9..57fb6f6 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCaseTaskRevokeEventListener.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCaseTaskRevokeEventListener.java @@ -26,9 +26,13 @@ public class ProposalCaseTaskRevokeEventListener implements ProcessEventListener if (event.getEventType() == ProcessEventTypeEnum.PROCESS_TASK_REVOKE) { Long taskId = event.getSourceId(); ProcessTask task = dao.fetch(ProcessTask.class, taskId); - ProcessInstance instance = dao.fetch(ProcessInstance.class, task.getProcessInstanceId()); - String businessNo = instance.getBusinessNo(); - dao.clear(ProposalReplyUnit.class, Cnd.where(ProposalReplyUnit::getProposalId, "=", businessNo)); + + ProcessTask parentProcessTask = dao.fetch(ProcessTask.class, task.getTaskParentId()); + if ("committee".equals(parentProcessTask.getTaskName())) { + ProcessInstance instance = dao.fetch(ProcessInstance.class, task.getProcessInstanceId()); + String businessNo = instance.getBusinessNo(); + dao.clear(ProposalReplyUnit.class, Cnd.where(ProposalReplyUnit::getProposalId, "=", businessNo)); + } } } } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalJumpToWriteEventListener.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalJumpToWriteEventListener.java new file mode 100644 index 0000000..40cd8f3 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalJumpToWriteEventListener.java @@ -0,0 +1,39 @@ +package com.budwk.app.zhgh.democratic.proposal.listenter; + +import com.budwk.app.base.event.flow.jumptofirsttask.FlowJumpToFirstTaskNodeListener; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.entity.ProcessTask; +import com.budwk.app.flow.service.ProcessInstanceService; +import com.budwk.app.flow.service.ProcessTaskService; +import com.budwk.app.zhgh.democratic.proposal.models.ProposalSecond; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; + +/** + * @version 1.0 + * @Author FKY + * @name:ProposalJumpToWriteEventListener + * @Date 2025/12/20 14:50 + * @注释 提案退回发起人监听器 + */ +@IocBean +public class ProposalJumpToWriteEventListener implements FlowJumpToFirstTaskNodeListener { + + @Inject + private Dao dao; + @Inject + private ProcessTaskService processTaskService; + @Inject + private ProcessInstanceService processInstanceService; + + @Override + public void receive(Long processTaskId) { + ProcessTask processTask = processTaskService.getById(processTaskId); + ProcessInstance processInstance = processInstanceService.getById(processTask.getProcessInstanceId()); + + // 清空提案的附议人 + dao.clear(ProposalSecond.class, Cnd.where(ProposalSecond::getProposalId, "=", processInstance.getBusinessNo())); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/param/ProposalQueryComprehensiveParam.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/param/ProposalQueryComprehensiveParam.java index de9dc5f..da9ff17 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/param/ProposalQueryComprehensiveParam.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/param/ProposalQueryComprehensiveParam.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.nutz.dao.Cnd; import org.nutz.dao.util.cri.SqlExpressionGroup; +import org.nutz.lang.Lang; @EqualsAndHashCode(callSuper = true) @Data @@ -58,6 +59,8 @@ public class ProposalQueryComprehensiveParam extends PageForm { @ApiModelProperty(name = "通用关键字") private String commonKeyword; + @ApiModelProperty(name = "搜索关键字") + private String createUserKeyword; /** @@ -71,7 +74,12 @@ public class ProposalQueryComprehensiveParam extends PageForm { cnd = Cnd.NEW(); } //教代会届次 - cnd.andEX("info.sessionId", "=", searchParam.getSessionId()); + if (Lang.isNotEmpty(searchParam.getSessionIds())) { + cnd.and("info.sessionId", "in", searchParam.getSessionIds()); + } else { + cnd.andEX("info.sessionId", "=", searchParam.getSessionId()); + } + //提案名称 if (StrUtil.isNotBlank(searchParam.getName())) { cnd.where().andLike("info.name", searchParam.getName()); @@ -93,6 +101,14 @@ public class ProposalQueryComprehensiveParam extends PageForm { if (StrUtil.isNotBlank(searchParam.getCreateUserName())) { cnd.where().andLike("info.createUserName", searchParam.getCreateUserName()); } + + if (StrUtil.isNotBlank(searchParam.getCreateUserKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("info.createUserName", searchParam.getCreateUserKeyword()); + seg.orLike("info.createUserLoginName", searchParam.getCreateUserKeyword()); + cnd.and(seg); + } + // 提案人分工会 cnd.andEX("tcde.unionId", "=", searchParam.getUnionId()); // 提案人单位 diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/impl/ProposalExportServiceImpl.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/impl/ProposalExportServiceImpl.java index 907db9d..d3d369e 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/impl/ProposalExportServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/impl/ProposalExportServiceImpl.java @@ -36,6 +36,7 @@ import org.nutz.dao.sql.Sql; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.json.Json; +import org.nutz.lang.Lang; import org.nutz.lang.util.NutMap; import javax.servlet.http.HttpServletResponse; @@ -209,7 +210,9 @@ public class ProposalExportServiceImpl extends BaseServiceImpl imp if (inviteTask != null) { NutMap variable = Json.fromJson(NutMap.class, inviteTask.getVariable()); List 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 (Lang.isNotEmpty(seconders)) { + list.get(i).put("secondedUserNames", seconders.stream().map(v -> v.getString("userName")).collect(Collectors.joining(","))); + } } } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/teachercongress/prepare/service/impl/TeacherCongressSessionServiceImpl.java b/src/main/java/com/budwk/app/zhgh/democratic/teachercongress/prepare/service/impl/TeacherCongressSessionServiceImpl.java index b5d177b..a0ec55a 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/teachercongress/prepare/service/impl/TeacherCongressSessionServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/teachercongress/prepare/service/impl/TeacherCongressSessionServiceImpl.java @@ -67,174 +67,176 @@ public class TeacherCongressSessionServiceImpl extends BaseServiceImpl lastInstitutions = dao().query(Teacher_congress_institution.class, Cnd.where(Teacher_congress_institution::getSessionId, "=", lastSession.getId())); - List> treeNodes = lastInstitutions.stream().map(institution -> new TreeNode<>(institution.getId(), institution.getParentId(), institution.getName(), institution.getLocation()).setExtra(Map.of("code", institution.getCode(), "sessionId", institution.getSessionId()))).toList(); - List> treeList = TreeUtil.build(treeNodes, "0"); - insertInstitution(session.getId(), "0", treeList); + if (ObjectUtil.isEmpty(lastSession)) return; - //从代表团入手 - List lastDelegations = dao().query(Teacher_congress_delegation.class, Cnd.where("sessionId", "=", lastSession.getId())); - for (Teacher_congress_delegation lastDelegation : lastDelegations) { - //代表团继承 - Teacher_congress_delegation newDelegation = BeanUtil.copyProperties(lastDelegation, Teacher_congress_delegation.class); - newDelegation.setId(null); - newDelegation.setSessionId(session.getId()); - dao().insert(newDelegation); + //机构及机构人员数据 + List lastInstitutions = dao().query(Teacher_congress_institution.class, Cnd.where(Teacher_congress_institution::getSessionId, "=", lastSession.getId())); + List> treeNodes = lastInstitutions.stream().map(institution -> new TreeNode<>(institution.getId(), institution.getParentId(), institution.getName(), institution.getLocation()).setExtra(Map.of("code", institution.getCode(), "sessionId", institution.getSessionId()))).toList(); + List> treeList = TreeUtil.build(treeNodes, "0"); + insertInstitution(session.getId(), "0", treeList); - //团长角色权限继承 - List lastHeadUserRoles = dao().query(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", lastDelegation.getId()) - .and(Sys_user_role::getRoleId, "=", delegationHeadRole.getId())); - for (Sys_user_role lastHeadUser : lastHeadUserRoles) { - Sys_user_role newHeadUser = BeanUtil.copyProperties(lastHeadUser, Sys_user_role.class); - newHeadUser.setTcDelegationId(newDelegation.getId()); - newHeadUser.setTcSessionId(session.getId()); - dao().insert(newHeadUser); - } - //副团长角色权限继承 - List lastViceHeadUserRoles = dao().query(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", lastDelegation.getId()) - .and(Sys_user_role::getRoleId, "=", delegationViceHeadRole.getId())); - for (Sys_user_role lastViceHeadUser : lastViceHeadUserRoles) { - Sys_user_role newViceHeadUser = BeanUtil.copyProperties(lastViceHeadUser, Sys_user_role.class); - newViceHeadUser.setTcDelegationId(newDelegation.getId()); - newViceHeadUser.setTcSessionId(session.getId()); - dao().insert(newViceHeadUser); - } - //联络人角色权限继承 - List lastContactUserRoles = dao().query(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", lastDelegation.getId()) - .and(Sys_user_role::getRoleId, "=", delegationContactRole.getId())); - for (Sys_user_role lastContactUser : lastContactUserRoles) { - Sys_user_role newContactUser = BeanUtil.copyProperties(lastContactUser, Sys_user_role.class); - newContactUser.setTcDelegationId(newDelegation.getId()); - newContactUser.setTcSessionId(session.getId()); - dao().insert(newContactUser); - } + //从代表团入手 + List lastDelegations = dao().query(Teacher_congress_delegation.class, Cnd.where("sessionId", "=", lastSession.getId())); + for (Teacher_congress_delegation lastDelegation : lastDelegations) { + //代表团继承 + Teacher_congress_delegation newDelegation = BeanUtil.copyProperties(lastDelegation, Teacher_congress_delegation.class); + newDelegation.setId(null); + newDelegation.setSessionId(session.getId()); + dao().insert(newDelegation); - //组成分工会 - List lastDelegationUnions = dao().query(Teacher_congress_delegation_union.class, Cnd.where(Teacher_congress_delegation_union::getDelegationId, "=", lastDelegation.getId())); - List newDelegationUnions = lastDelegationUnions.stream().map(lastDelegationUnion -> { - Teacher_congress_delegation_union newDelegationUnion = BeanUtil.copyProperties(lastDelegationUnion, Teacher_congress_delegation_union.class); - newDelegationUnion.setId(R.UU32()); - newDelegationUnion.setDelegationId(newDelegation.getId()); - newDelegationUnion.setSessionId(session.getId()); - newDelegationUnion.setCreatedAt(null); - newDelegationUnion.setUpdatedAt(null); - newDelegationUnion.setCreatedBy(null); - newDelegationUnion.setUpdatedBy(null); - return newDelegationUnion; - }).toList(); - dao().fastInsert(newDelegationUnions); - - - //组成单位 - List lastDelegationUnits = dao().query(Teacher_congress_delegation_unit.class, Cnd.where(Teacher_congress_delegation_unit::getDelegationId, "=", lastDelegation.getId())); - List newDelegationUnits = lastDelegationUnits.stream().map(lastDelegationUnit -> { - Teacher_congress_delegation_unit newDelegationUnit = BeanUtil.copyProperties(lastDelegationUnit, Teacher_congress_delegation_unit.class); - newDelegationUnit.setId(R.UU32()); - newDelegationUnit.setDelegationId(newDelegation.getId()); - newDelegationUnit.setSessionId(session.getId()); - newDelegationUnit.setCreatedAt(null); - newDelegationUnit.setUpdatedAt(null); - newDelegationUnit.setCreatedBy(null); - newDelegationUnit.setUpdatedBy(null); - return newDelegationUnit; - }).toList(); - dao().fastInsert(newDelegationUnits); - } - - //代表数据 单位 分工会 要根据最新的设置来调整 - - //代表数据 - List lastDelegates = dao().query(Teacher_congress_delegate.class, Cnd.where(Teacher_congress_delegate::getSessionId, "=", lastSession.getId())); - List newDelegates = lastDelegates.stream().map(lastDelegate -> { - Teacher_congress_delegate newDelegate = BeanUtil.copyProperties(lastDelegate, Teacher_congress_delegate.class); - newDelegate.setId(R.UU32()); - newDelegate.setSessionId(session.getId()); - newDelegate.setCreatedAt(null); - newDelegate.setUpdatedAt(null); - newDelegate.setCreatedBy(null); - newDelegate.setUpdatedBy(null); - - //查询本人最新的信息从用户表中 - View_user vwUser = dao().fetch(View_user.class, Cnd.where(Sys_user::getId, "=", lastDelegate.getUserId())); - if (ObjectUtil.isNotEmpty(vwUser)) { - newDelegate.setUnitId(vwUser.getUnitId()); - newDelegate.setUnitName(vwUser.getUnitName()); - newDelegate.setUnionId(vwUser.getUnionId()); - newDelegate.setUnionName(vwUser.getUnionName()); - newDelegate.setSex(vwUser.getSex()); - newDelegate.setMobile(vwUser.getMobile()); - - //去查询他当前所处的单位、分工会处于哪个代表团 - if (StrUtil.isNotBlank(vwUser.getUnionId())) { - Teacher_congress_delegation_union delegationUnion = dao().fetch(Teacher_congress_delegation_union.class, Cnd.where(Teacher_congress_delegation_union::getSessionId, "=", session.getId()) - .and(Teacher_congress_delegation_union::getUnionId, "=", vwUser.getUnionId())); - if (ObjectUtil.isNotEmpty(delegationUnion)) { - newDelegate.setDelegationId(delegationUnion.getDelegationId()); - } + //团长角色权限继承 + List lastHeadUserRoles = dao().query(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", lastDelegation.getId()) + .and(Sys_user_role::getRoleId, "=", delegationHeadRole.getId())); + for (Sys_user_role lastHeadUser : lastHeadUserRoles) { + Sys_user_role newHeadUser = BeanUtil.copyProperties(lastHeadUser, Sys_user_role.class); + newHeadUser.setTcDelegationId(newDelegation.getId()); + newHeadUser.setTcSessionId(session.getId()); + dao().insert(newHeadUser); + } + //副团长角色权限继承 + List lastViceHeadUserRoles = dao().query(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", lastDelegation.getId()) + .and(Sys_user_role::getRoleId, "=", delegationViceHeadRole.getId())); + for (Sys_user_role lastViceHeadUser : lastViceHeadUserRoles) { + Sys_user_role newViceHeadUser = BeanUtil.copyProperties(lastViceHeadUser, Sys_user_role.class); + newViceHeadUser.setTcDelegationId(newDelegation.getId()); + newViceHeadUser.setTcSessionId(session.getId()); + dao().insert(newViceHeadUser); + } + //联络人角色权限继承 + List lastContactUserRoles = dao().query(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", lastDelegation.getId()) + .and(Sys_user_role::getRoleId, "=", delegationContactRole.getId())); + for (Sys_user_role lastContactUser : lastContactUserRoles) { + Sys_user_role newContactUser = BeanUtil.copyProperties(lastContactUser, Sys_user_role.class); + newContactUser.setTcDelegationId(newDelegation.getId()); + newContactUser.setTcSessionId(session.getId()); + dao().insert(newContactUser); } - if (StrUtil.isNotBlank(vwUser.getUnitId())) { - Teacher_congress_delegation_unit delegationUnit = dao().fetch(Teacher_congress_delegation_unit.class, Cnd.where(Teacher_congress_delegation_unit::getSessionId, "=", session.getId()) - .and(Teacher_congress_delegation_unit::getUnitId, "=", vwUser.getUnitId())); - if (ObjectUtil.isNotEmpty(delegationUnit)) { - newDelegate.setDelegationId(delegationUnit.getDelegationId()); + //组成分工会 + List lastDelegationUnions = dao().query(Teacher_congress_delegation_union.class, Cnd.where(Teacher_congress_delegation_union::getDelegationId, "=", lastDelegation.getId())); + List newDelegationUnions = lastDelegationUnions.stream().map(lastDelegationUnion -> { + Teacher_congress_delegation_union newDelegationUnion = BeanUtil.copyProperties(lastDelegationUnion, Teacher_congress_delegation_union.class); + newDelegationUnion.setId(R.UU32()); + newDelegationUnion.setDelegationId(newDelegation.getId()); + newDelegationUnion.setSessionId(session.getId()); + newDelegationUnion.setCreatedAt(null); + newDelegationUnion.setUpdatedAt(null); + newDelegationUnion.setCreatedBy(null); + newDelegationUnion.setUpdatedBy(null); + return newDelegationUnion; + }).toList(); + dao().fastInsert(newDelegationUnions); + + + //组成单位 + List lastDelegationUnits = dao().query(Teacher_congress_delegation_unit.class, Cnd.where(Teacher_congress_delegation_unit::getDelegationId, "=", lastDelegation.getId())); + List newDelegationUnits = lastDelegationUnits.stream().map(lastDelegationUnit -> { + Teacher_congress_delegation_unit newDelegationUnit = BeanUtil.copyProperties(lastDelegationUnit, Teacher_congress_delegation_unit.class); + newDelegationUnit.setId(R.UU32()); + newDelegationUnit.setDelegationId(newDelegation.getId()); + newDelegationUnit.setSessionId(session.getId()); + newDelegationUnit.setCreatedAt(null); + newDelegationUnit.setUpdatedAt(null); + newDelegationUnit.setCreatedBy(null); + newDelegationUnit.setUpdatedBy(null); + return newDelegationUnit; + }).toList(); + dao().fastInsert(newDelegationUnits); + } + + //代表数据 单位 分工会 要根据最新的设置来调整 + + //代表数据 + List lastDelegates = dao().query(Teacher_congress_delegate.class, Cnd.where(Teacher_congress_delegate::getSessionId, "=", lastSession.getId())); + List newDelegates = lastDelegates.stream().map(lastDelegate -> { + Teacher_congress_delegate newDelegate = BeanUtil.copyProperties(lastDelegate, Teacher_congress_delegate.class); + newDelegate.setId(R.UU32()); + newDelegate.setSessionId(session.getId()); + newDelegate.setCreatedAt(null); + newDelegate.setUpdatedAt(null); + newDelegate.setCreatedBy(null); + newDelegate.setUpdatedBy(null); + + //查询本人最新的信息从用户表中 + View_user vwUser = dao().fetch(View_user.class, Cnd.where(Sys_user::getId, "=", lastDelegate.getUserId())); + if (ObjectUtil.isNotEmpty(vwUser)) { + newDelegate.setUnitId(vwUser.getUnitId()); + newDelegate.setUnitName(vwUser.getUnitName()); + newDelegate.setUnionId(vwUser.getUnionId()); + newDelegate.setUnionName(vwUser.getUnionName()); + newDelegate.setSex(vwUser.getSex()); + newDelegate.setMobile(vwUser.getMobile()); + + //去查询他当前所处的单位、分工会处于哪个代表团 + if (StrUtil.isNotBlank(vwUser.getUnionId())) { + Teacher_congress_delegation_union delegationUnion = dao().fetch(Teacher_congress_delegation_union.class, Cnd.where(Teacher_congress_delegation_union::getSessionId, "=", session.getId()) + .and(Teacher_congress_delegation_union::getUnionId, "=", vwUser.getUnionId())); + if (ObjectUtil.isNotEmpty(delegationUnion)) { + newDelegate.setDelegationId(delegationUnion.getDelegationId()); + } + } + + if (StrUtil.isNotBlank(vwUser.getUnitId())) { + Teacher_congress_delegation_unit delegationUnit = dao().fetch(Teacher_congress_delegation_unit.class, Cnd.where(Teacher_congress_delegation_unit::getSessionId, "=", session.getId()) + .and(Teacher_congress_delegation_unit::getUnitId, "=", vwUser.getUnitId())); + if (ObjectUtil.isNotEmpty(delegationUnit)) { + newDelegate.setDelegationId(delegationUnit.getDelegationId()); + } + } + } + return newDelegate; + }).toList(); + dao().insert(newDelegates); + + //代表权限数据 + for (Teacher_congress_delegate newDelegate : newDelegates) { + Sys_user_role sysUserRole = new Sys_user_role(); + sysUserRole.setTcSessionId(session.getId()); + sysUserRole.setUserId(newDelegate.getUserId()); + sysUserRole.setRoleId(newDelegate.getRoleId()); + sysUserRole.setTcDelegationId(newDelegate.getDelegationId()); + dao().insert(sysUserRole); + } + + Sys_role committeeDoctorRole = sysRoleService.getByCode(RoleConstant.PROPOSAL_COMMITTEE_DIRECTOR); + + //提案委员会主任权限 + Teacher_congress_institution teacherCongressInstitutionProposalCommittee = dao().fetch(Teacher_congress_institution.class, Cnd.where(Teacher_congress_institution::getCode, "=", "TEACHER_CONGRESS_INSTITUTION_PROPOSAL_COMMITTEE") + .and(Teacher_congress_institution::getSessionId, "=", session.getId())); + if (ObjectUtil.isNotEmpty(teacherCongressInstitutionProposalCommittee)) { + List teacherCongressInstitutionUsers = dao().query(Teacher_congress_institution_user.class, Cnd.where(Teacher_congress_institution_user::getSessionId, "=", session.getId()) + .and(Teacher_congress_institution_user::getInstitutionId, "=", teacherCongressInstitutionProposalCommittee.getId()) + .and(Teacher_congress_institution_user::getIdentity, "=", "主任") + ); + if (ObjectUtil.isNotEmpty(teacherCongressInstitutionUsers)) { + for (Teacher_congress_institution_user teacherCongressInstitutionUser : teacherCongressInstitutionUsers) { + Sys_user_role sysUserRole = new Sys_user_role(); + sysUserRole.setTcSessionId(session.getId()); + sysUserRole.setUserId(teacherCongressInstitutionUser.getUserId()); + sysUserRole.setRoleId(committeeDoctorRole.getId()); + dao().insert(sysUserRole); } } } - return newDelegate; - }).toList(); - dao().insert(newDelegates); - //代表权限数据 - for (Teacher_congress_delegate newDelegate : newDelegates) { - Sys_user_role sysUserRole = new Sys_user_role(); - sysUserRole.setTcSessionId(session.getId()); - sysUserRole.setUserId(newDelegate.getUserId()); - sysUserRole.setRoleId(newDelegate.getRoleId()); - sysUserRole.setTcDelegationId(newDelegate.getDelegationId()); - dao().insert(sysUserRole); + sysRoleService.clearCache(); + sysUserService.clearCache(); } - - Sys_role committeeDoctorRole = sysRoleService.getByCode(RoleConstant.PROPOSAL_COMMITTEE_DIRECTOR); - - //提案委员会主任权限 - Teacher_congress_institution teacherCongressInstitutionProposalCommittee = dao().fetch(Teacher_congress_institution.class, Cnd.where(Teacher_congress_institution::getCode, "=", "TEACHER_CONGRESS_INSTITUTION_PROPOSAL_COMMITTEE") - .and(Teacher_congress_institution::getSessionId, "=", session.getId())); - if (ObjectUtil.isNotEmpty(teacherCongressInstitutionProposalCommittee)) { - List teacherCongressInstitutionUsers = dao().query(Teacher_congress_institution_user.class, Cnd.where(Teacher_congress_institution_user::getSessionId, "=", session.getId()) - .and(Teacher_congress_institution_user::getInstitutionId, "=", teacherCongressInstitutionProposalCommittee.getId()) - .and(Teacher_congress_institution_user::getIdentity, "=", "主任") - ); - if (ObjectUtil.isNotEmpty(teacherCongressInstitutionUsers)) { - for (Teacher_congress_institution_user teacherCongressInstitutionUser : teacherCongressInstitutionUsers) { - Sys_user_role sysUserRole = new Sys_user_role(); - sysUserRole.setTcSessionId(session.getId()); - sysUserRole.setUserId(teacherCongressInstitutionUser.getUserId()); - sysUserRole.setRoleId(committeeDoctorRole.getId()); - dao().insert(sysUserRole); - } - } - } - - sysRoleService.clearCache(); - sysUserService.clearCache(); } @Override diff --git a/src/main/resources/views/layouts/v4/apps.html b/src/main/resources/views/layouts/v4/apps.html index 8a95f77..b434f49 100644 --- a/src/main/resources/views/layouts/v4/apps.html +++ b/src/main/resources/views/layouts/v4/apps.html @@ -67,15 +67,15 @@ layout("/layouts/v4/baseLayout.html"){ } .apps-header { - padding: 0 0 20px 0; + padding: 0 0 10px 0; border-bottom: 1px solid #eee; - margin-bottom: 20px; + margin-bottom: 10px; } .apps-search-container { display: flex; align-items: center; - margin-bottom: 20px; + /*margin-bottom: 20px;*/ } .apps-search { @@ -103,13 +103,16 @@ layout("/layouts/v4/baseLayout.html"){ } .apps-filter { - margin-top: 20px; + margin-top: 10px; + display: flex; + align-items: flex-end; } .apps-filter-title { color: #666; font-size: 14px; margin-bottom: 5px; + margin-right: 5px; } .apps-filter-tags { @@ -356,20 +359,20 @@ layout("/layouts/v4/baseLayout.html"){ - - - - - - - - - - - - - - +
+
首字母:
+
+
全部
+
+ {{ letter }} +
+
+
diff --git a/src/main/resources/views/layouts/v4/baseLayout.html b/src/main/resources/views/layouts/v4/baseLayout.html index 3a6ef79..56f649c 100644 --- a/src/main/resources/views/layouts/v4/baseLayout.html +++ b/src/main/resources/views/layouts/v4/baseLayout.html @@ -71,7 +71,7 @@ - l + @@ -80,7 +80,7 @@ - + @@ -351,6 +351,16 @@ Vue.prototype.$auth = commonUtil.authService() Vue.prototype.$axios = commonUtil.axiosService() Vue.prototype.$downLoad = commonUtil.downLoadService + + Vue.prototype.$processStatusMap = { + 10: {text: "进行中", class: "doing"}, + 20: {text: "已完成", class: "finished"}, + 30: {text: "已撤回", class: "withdraw"}, + 40: {text: "强行终止", class: "interrupt"}, + 45: {text: "已拒绝", class: "reject"}, + 50: {text: "挂起", class: "pending"}, + 99: {text: "已废弃", class: "abandon"} + } @@ -676,7 +686,7 @@ -
+
diff --git a/src/main/resources/views/layouts/v4/home/user.js b/src/main/resources/views/layouts/v4/home/user.js index 0944fe1..ba5c538 100644 --- a/src/main/resources/views/layouts/v4/home/user.js +++ b/src/main/resources/views/layouts/v4/home/user.js @@ -108,6 +108,7 @@ const user = { + diff --git a/src/main/resources/views/layouts/v4/serv.html b/src/main/resources/views/layouts/v4/serv.html index 8205e17..8bcbe3b 100644 --- a/src/main/resources/views/layouts/v4/serv.html +++ b/src/main/resources/views/layouts/v4/serv.html @@ -63,15 +63,15 @@ layout("/layouts/v4/baseLayout.html"){ } .apps-header { - padding: 0 0 20px 0; + padding: 0 0 10px 0; border-bottom: 1px solid #eee; - margin-bottom: 20px; + margin-bottom: 10px; } .apps-search-container { display: flex; align-items: center; - margin-bottom: 20px; + /*margin-bottom: 20px;*/ } .apps-search { @@ -99,13 +99,16 @@ layout("/layouts/v4/baseLayout.html"){ } .apps-filter { - margin-top: 20px; + margin-top: 10px; + display: flex; + align-items: flex-end; } .apps-filter-title { color: #666; font-size: 14px; margin-bottom: 5px; + margin-right: 5px; } .apps-filter-tags { @@ -351,22 +354,22 @@ layout("/layouts/v4/baseLayout.html"){ - - - - - - - - - - - - - - - - +
+
首字母:
+
+
+ 全部 +
+
+ {{ letter }} +
+
+
diff --git a/src/main/resources/views/platform/flow/design/designer.html b/src/main/resources/views/platform/flow/design/designer.html index 87c2aac..86e28ef 100644 --- a/src/main/resources/views/platform/flow/design/designer.html +++ b/src/main/resources/views/platform/flow/design/designer.html @@ -39,14 +39,18 @@ 'assigneeText', 'assigneeMode', 'buttonConfig', - 'enableNextOperator' + 'enableNextOperator', + 'h5form' ]" > - - - - - + + diff --git a/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/applyStatistics/index.html b/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/applyStatistics/index.html index 89a9e02..9d656e0 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/applyStatistics/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/applyStatistics/index.html @@ -35,7 +35,7 @@ layout("/layouts/platform.html"){ - {{viewData.declareTotalBudgetMoney}} {{viewData.totalBudgetMoney}} - {{viewData.applyDate}} + {{$moment(viewData.applyDate).format('YYYY-MM-DD')}} {{viewData.activityMatterTwo}} diff --git a/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/schoolAudit/index.html b/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/schoolAudit/index.html index b5b132a..74665a8 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/schoolAudit/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/schoolAudit/index.html @@ -34,6 +34,16 @@ layout("/layouts/platform.html"){ + + + + + + @@ -225,6 +235,7 @@ layout("/layouts/platform.html"){ this.budgetReimburseTypeOption = await this.$businessTool.getDictOptions("ACTIVITY_BUDGET_REIMBURSE_TYPE") this.budgetTypeOption.unshift({name: "全部类型", code: ""}) this.unionList = await this.$businessTool.listUnion() + this.clubOption = await this.$businessTool.listClub() this.pageData() } }) diff --git a/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/schoolPrincipal/index.html b/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/schoolPrincipal/index.html index 319f68a..105abfb 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/schoolPrincipal/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/schoolPrincipal/index.html @@ -34,6 +34,16 @@ layout("/layouts/platform.html"){ + + + + + + @@ -225,6 +235,7 @@ layout("/layouts/platform.html"){ this.budgetReimburseTypeOption = await this.$businessTool.getDictOptions("ACTIVITY_BUDGET_REIMBURSE_TYPE") this.budgetTypeOption.unshift({name: "全部类型", code: ""}) this.unionList = await this.$businessTool.listUnion() + this.clubOption = await this.$businessTool.listClub() this.pageData() } }) diff --git a/src/main/resources/views/platform/zhgh/democratic/grassrootscongress/material/approval/index.html b/src/main/resources/views/platform/zhgh/democratic/grassrootscongress/material/approval/index.html index a867aac..f4ca010 100644 --- a/src/main/resources/views/platform/zhgh/democratic/grassrootscongress/material/approval/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/grassrootscongress/material/approval/index.html @@ -75,7 +75,7 @@ layout("/layouts/platform.html"){ 取消 - 退回到提案人 + 退回到发起人 不同意 同意 diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/common/info.js b/src/main/resources/views/platform/zhgh/democratic/proposal/common/info.js index 934f4fc..8eedeef 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/common/info.js +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/common/info.js @@ -28,9 +28,9 @@ const PROPOSAL_INFO = { - +
diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/query/comprehensive/index.html b/src/main/resources/views/platform/zhgh/democratic/proposal/query/comprehensive/index.html index 2462dc1..6d41f36 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/query/comprehensive/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/query/comprehensive/index.html @@ -337,7 +337,9 @@ layout("/layouts/platform.html"){ }) }, listSession() { - this.$axios.post("/platform/proposal/common/listSession").then((res) => { + this.$axios.post("/platform/proposal/common/listSession", { + orderBy: "asc" + }).then((res) => { if (res.code === 0) { this.sessionOptions = res.data if (this.sessionOptions) { diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/query/yearReport/index.html b/src/main/resources/views/platform/zhgh/democratic/proposal/query/yearReport/index.html index ff92788..540fa43 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/query/yearReport/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/query/yearReport/index.html @@ -140,7 +140,7 @@ layout("/layouts/platform.html"){ new Vue({ el: "#app", - dicts: ["PROPOSAL_TYPE", "PROPOSAL_CASE_FILING_RESULT"], + dicts: ["PROPOSAL_TYPE", "PROPOSAL_CASE_FILING_RESULT", "PROPOSAL_CASE_FILING_TYPE"], store, mixins: [initTableMixins], components: { diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/senior/basic/index.html b/src/main/resources/views/platform/zhgh/democratic/proposal/senior/basic/index.html index 1a807e4..0d42656 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/senior/basic/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/senior/basic/index.html @@ -128,29 +128,36 @@ layout("/layouts/platform.html"){ + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + @@ -177,15 +184,15 @@ layout("/layouts/platform.html"){ - - - - - - - - - + + + 取 消 diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/index.html b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/index.html index 105b05f..defcf72 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/index.html @@ -231,6 +231,14 @@ layout("/layouts/platform.html"){ cancelButtonText: "取消", type: "warning" }).then(() => { + // 是否有协办单位 + let tf_helpunitreply; + if (this.formData.tf_slaveUnitIds && this.formData.tf_slaveUnitIds.length > 0) { + tf_helpunitreply = 'HAS_HELP_UNIT' + } else { + tf_helpunitreply = 'NO_HELP_UNIT' + } + const loading = createLoading('提交中') this.$axios.post("/flow/common/executeTask", { data: JSON.stringify({ @@ -239,6 +247,7 @@ layout("/layouts/platform.html"){ tf_masterUnitName: this.formData.tf_masterUnitId ? this.underTakeOptions.find(v => v.id === this.formData.tf_masterUnitId)?.name : null, tf_slaveUnitNames: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name), tf_slaveUnitNameStr: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name).join(','), + tf_helpunitreply: tf_helpunitreply }) }).then((res) => { if (res.code === 0) { diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/feedback/index.html b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/feedback/index.html index 0c4ad7b..3026717 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/feedback/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/feedback/index.html @@ -92,17 +92,6 @@ layout("/layouts/platform.html"){ :rules="[{required:true,message:'必填',trigger:['change','blur']}]"> - 取消 @@ -231,7 +220,6 @@ layout("/layouts/platform.html"){ if (this.sessionOptions) { this.$set(this.pageForm, "sessionId", this.sessionOptions[0].id) this.pageData() - this.listDelegation() } } }) diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/mine/index.html b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/mine/index.html index 8e59b44..cbd5d1c 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/mine/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/mine/index.html @@ -42,6 +42,9 @@ layout("/layouts/platform.html"){ + diff --git a/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/write/index.html b/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/write/index.html index 1cdbcf5..481e34c 100644 --- a/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/write/index.html +++ b/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/write/index.html @@ -270,7 +270,7 @@ layout("/layouts/platform_h5.html"){ - + >--> - +