From 67082d07bdda71102a9131ff815db756973be0b3 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Fri, 29 Aug 2025 16:19:13 +0800 Subject: [PATCH] commit --- .../EvaluateActivityController.java | 10 +- .../controller/EvaluateApplyController.java | 55 ++- ...EvaluateBranchUnionApprovalController.java | 113 ++---- .../controller/EvaluateCommonController.java | 5 +- .../controller/EvaluateMineController.java | 81 ++-- ...EvaluateSchoolUnionApprovalController.java | 75 ++-- .../controller/EvaluateSummaryController.java | 77 +--- .../evaluation/service/EvaluateService.java | 6 + .../service/impl/EvaluateServiceImpl.java | 61 +++ .../evaluation/vo/EvaluateApplyPageVO.java | 65 --- .../evaluation/vo/EvaluateApplyVO.java | 18 - ...eCommitteeDelegationOnePushController.java | 8 +- ...eCommitteeDelegationTwoPushController.java | 13 +- .../ExecutiveCommitteePushController.java | 21 +- ...EnrollmentRegistrationApplyController.java | 44 ++- ...llmentRegistrationApplyListController.java | 15 +- .../EnrollmentRegistrationPlanController.java | 2 +- .../model/EnrollmentRegistration.java | 10 + .../ActivityBudgetApplyController.java | 31 +- .../ActivityBudgetApplyListController.java | 27 +- .../OutlayManageClubController.java | 159 ++++++++ .../OutlayManageClubUseDetailController.java | 127 ++++++ .../club/model/OutlayManageClub.java | 62 +++ .../OutlayReimburseApplyController.java | 46 ++- .../OutlayReimburseClubAuditController.java | 118 ++++++ .../OutlayReimburseUnionAuditController.java | 1 - ...ReimburseSchoolZxAuditPostInterceptor.java | 18 + .../model/OutlayReimburse.java | 5 + .../impl/OutlayReimburseApplyServiceImpl.java | 46 ++- .../evaluation/activity/index.html | 14 +- .../dayofficework/evaluation/apply/apply.js | 373 ++++++++++-------- .../dayofficework/evaluation/apply/index.html | 75 ++-- .../evaluation/branchUnionApproval/index.html | 146 +++---- .../dayofficework/evaluation/common/info.js | 188 +++++---- .../dayofficework/evaluation/mine/index.html | 98 +++-- .../evaluation/schoolUnionApproval/index.html | 130 +++--- .../evaluation/summary/index.html | 70 +++- .../delegationOnePush/index.html | 12 +- .../delegationOnePush/onePushFormalDialog.js | 1 + .../delegationTwoPush/index.html | 18 +- .../delegationTwoPush/twoPushFormalDialog.js | 1 + .../executiveCommitteeConfig/index.html | 35 +- .../executiveCommitteeMember/index.html | 6 +- .../preparatoryGroupPush/index.html | 6 +- .../preparatoryGroupPush/pushFormalDialog.js | 1 + .../enrollmentRegistration/apply/index.html | 90 ++++- .../applyList/index.html | 24 +- .../zhgh/enrollmentRegistration/info.js | 5 +- .../enrollmentRegistration/plan/index.html | 2 +- .../outlay/activityBudget/apply/index.html | 8 +- .../activityBudget/applyStatistics/index.html | 2 +- .../outlay/activityBudget/view/index.html | 110 ------ .../outlayManage/club/manage/index.html | 182 +++++++++ .../outlayManage/club/useDetail/detailInfo.js | 101 +++++ .../outlayManage/club/useDetail/index.html | 125 ++++++ .../outlay/outlayReimburse/apply/index.html | 52 ++- .../outlayReimburse/clubAudit/index.html | 199 ++++++++++ .../outlayReimburse/clubZxAudit/index.html | 199 ++++++++++ 58 files changed, 2501 insertions(+), 1091 deletions(-) delete mode 100644 src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/vo/EvaluateApplyPageVO.java delete mode 100644 src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/vo/EvaluateApplyVO.java create mode 100644 src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/controller/OutlayManageClubController.java create mode 100644 src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/controller/OutlayManageClubUseDetailController.java create mode 100644 src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/model/OutlayManageClub.java create mode 100644 src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseClubAuditController.java delete mode 100644 src/main/resources/views/platform/zhgh/outlay/activityBudget/view/index.html create mode 100644 src/main/resources/views/platform/zhgh/outlay/outlayManage/club/manage/index.html create mode 100644 src/main/resources/views/platform/zhgh/outlay/outlayManage/club/useDetail/detailInfo.js create mode 100644 src/main/resources/views/platform/zhgh/outlay/outlayManage/club/useDetail/index.html create mode 100644 src/main/resources/views/platform/zhgh/outlay/outlayReimburse/clubAudit/index.html create mode 100644 src/main/resources/views/platform/zhgh/outlay/outlayReimburse/clubZxAudit/index.html diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateActivityController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateActivityController.java index 51fb26a1..b4d8e171 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateActivityController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateActivityController.java @@ -1,12 +1,12 @@ package com.budwk.app.zhgh.dayofficework.evaluation.controller; +import cn.dev33.satoken.annotation.SaCheckLogin; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNode; import cn.hutool.core.lang.tree.TreeUtil; -import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; @@ -150,4 +150,12 @@ public class EvaluateActivityController { return Result.success(); } + @At + @SaCheckLogin + @ApiOperation("根据年查询荣誉申请事项") + public Result listEvaluateActivityByYear(Integer year) { + List list = dao.query(EvaluateActivity.class, Cnd.NEW().andEX(EvaluateActivity::getYear,"=",year)); + return Result.success(list); + } + } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateApplyController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateApplyController.java index 883ffd43..e4859d3c 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateApplyController.java @@ -1,16 +1,18 @@ package com.budwk.app.zhgh.dayofficework.evaluation.controller; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.lang.Dict; import com.budwk.app.base.annotation.SLog; -import com.budwk.app.base.constant.BpmProcessConstant; -import com.budwk.app.base.constant.RoleConstant; 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.bpm.service.BpmService; -import com.budwk.app.sys.models.Sys_user_role; -import com.budwk.app.web.controllers.open.commons.service.CommonService; +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.service.FlowCommonService; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply; import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateActivityService; import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService; @@ -45,9 +47,9 @@ public class EvaluateApplyController { @Inject private EvaluateService evaluateService; @Inject - private BpmService bpmService; + private FlowEngine flowEngine; @Inject - private CommonService commonService; + private FlowCommonService flowCommonService; @At("") @Ok("beetl:/platform/zhgh/dayofficework/evaluation/apply/index.html") @@ -96,12 +98,25 @@ public class EvaluateApplyController { @At @SaCheckPermission("evaluation.apply") @ApiOperation("保存") - @Aop(TransAop.READ_COMMITTED) @SLog(tag = "评优评先申请", msg = "保存申请") - public Result save(@Param("evaluateApply") EvaluateApply evaluateApply) { + public Result save(@Param("data") EvaluateApply evaluateApply) { evaluateApply.setApplyDateTime(new Date()); evaluateService.insertOrUpdate(evaluateApply); - bpmService.startSaveProcessInstance(BpmProcessConstant.PERSON_EVALUATE.name(), evaluateApply.getUserName() + "的申请", evaluateApply.getId(), null); + return Result.success(); + } + + @At + @SaCheckPermission("evaluation.apply") + @ApiOperation("重新提交申请") + @Aop(TransAop.READ_COMMITTED) + @SLog( tag = "评优评先申请", msg = "重新提交申请") + public Result submitAgain(@Param("data") EvaluateApply evaluateApply, @Param("taskId") Long taskId) { + evaluateService.insertOrUpdate(evaluateApply); + + Dict dict = Dict.create(); + dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId); + dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode()); + flowCommonService.executeTask(dict); return Result.success(); } @@ -110,15 +125,21 @@ public class EvaluateApplyController { @ApiOperation("提交") @Aop(TransAop.READ_COMMITTED) @SLog(tag = "评优评先申请", msg = "提交申请") - public Result submit(@Param("evaluateApply") EvaluateApply evaluateApply) { + public Result submit(@Param("data") EvaluateApply evaluateApply) { evaluateApply.setApplyDateTime(new Date()); evaluateService.insertOrUpdate(evaluateApply); - //查询分工会审批人工号 - String branchUnionApprovalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.BRANCH_UNION_CHAIRMAN, Cnd.where(Sys_user_role::getUnionId, "=", evaluateApply.getUnionId())); - if (StrUtil.isBlank(branchUnionApprovalLoginName)) { - return Result.error("分工会未配置审批人,请联系校工会!"); + + // 开启流程实例 + Dict args = Dict.create(); + args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode()); + args.set(FlowConst.FORM_DATA, evaluateApply); + ProcessInstance instance = flowEngine.startProcessInstanceByKey("PYPX", evaluateApply.getId(), SecurityUtil.getUserId(), args); + + // 自动完成第一个申请任务 + List doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null); + for (ProcessTask task : doingTaskList) { + flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args); } - bpmService.startSubmitProcessInstance(BpmProcessConstant.PERSON_EVALUATE.name(), evaluateApply.getUserName() + "的申请", evaluateApply.getId(), List.of(branchUnionApprovalLoginName), null); return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateBranchUnionApprovalController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateBranchUnionApprovalController.java index 62c8901c..fb6ec966 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateBranchUnionApprovalController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateBranchUnionApprovalController.java @@ -1,44 +1,29 @@ package com.budwk.app.zhgh.dayofficework.evaluation.controller; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; -import com.budwk.app.base.annotation.SLog; -import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.PageUtil; -import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; -import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; -import com.budwk.app.bpm.param.BpmTaskApprovalParam; import com.budwk.app.bpm.service.BpmService; -import com.budwk.app.sys.models.Sys_user_role; -import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.web.controllers.open.commons.service.CommonService; -import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply; import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService; -import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluateApplyPageVO; import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluatePageForm; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.nutz.aop.interceptor.ioc.TransAop; 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.Static; -import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; -import org.nutz.mvc.annotation.Param; import javax.validation.Valid; -import java.util.ArrayList; import java.util.List; -import java.util.Map; @IocBean @At("/platform/evaluate/branchUnionApproval") @@ -65,87 +50,63 @@ public class EvaluateBranchUnionApprovalController { @SaCheckPermission("evaluation.branchUnionApproval") @ApiOperation("数据列表") @Ok("json") - public Result pageData(@Valid EvaluatePageForm pageForm, boolean approval){ + public Result pageData(@Valid EvaluatePageForm pageForm, Boolean approval){ Sql sql = Sqls.create(""" SELECT info.*, ea.name AS evaluateName, hb.name AS honorName, bs.name as honorTypeName, - inst.id processInstanceId, - inst.processInstanceNodeId, - inst.processInstanceNodeName, - inst.processInstanceTaskIds, - inst.processInstanceStatus, - task.id processInstanceTaskId, - task.taskStatus processInstanceTaskStatus, - COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete + 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, + IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke FROM - bpm_process_task task - INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId - INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId - INNER JOIN evaluate_apply info ON info.id = inst.processInstanceBusinessId + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN evaluate_apply info ON info.id = ins.businessNo LEFT JOIN evaluate_activity ea ON ea.id = info.evaluateId LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId - LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10 + LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10 $condition """); Cnd cnd = Cnd.NEW(); - if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ - cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); + cnd.and("t.taskName", "=", "3bdaa29d-e5eb-4e3e-b7f1-14d03bedd078"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); + if (approval) { + cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); + } else { + cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode()); } - - cnd.and("nd.nodeCode","=",20); - if(approval){ - cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE); - }else{ - cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE); + if (StrUtil.isAllNotEmpty(pageForm.getSearchName(), pageForm.getSearchKeyword())) { + cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword()); } - - cnd.andEX("eva.year", "=", pageForm.getYear()); - cnd.and(Cnd.likeEX("info.userName", pageForm.getUserName())); - cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName())); - cnd.andEX("info.unionId","=",pageForm.getUnionId()); - cnd.andEX("info.unitId","=",pageForm.getUnitId()); - + cnd.andEX("YEAR(info.applyDateTime)", "=", pageForm.getYear()); + cnd.groupBy("t.id"); if(StrUtil.isAllBlank(pageForm.getPageOrderName(),pageForm.getPageOrderBy())){ - cnd.desc("info.applyDateTime"); + cnd.desc("t.createdAt").desc("info.applyDateTime"); }else{ cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); } sql.setCondition(cnd); - Pagination pageVO = evaluateService.listPageVO(pageForm, sql, EvaluateApplyPageVO.class); - return Result.success(pageVO); - } - - @At - @SaCheckPermission("evaluation.branchUnionApproval") - @ApiOperation("审核") - @SLog(tag = "评优评先分工会审核", msg = "分工会审核") - @Aop(TransAop.READ_COMMITTED) - public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam){ - approvalParam.getBpmTaskApprovalTypeEnum(); - Map variables = BeanUtil.beanToMap(approvalParam); - EvaluateApply evaluateApply = evaluateService.fetch(approvalParam.getProcessInstanceBusinessId()); - List assignments = new ArrayList<>(); - if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){ - String schoolUnionApprovalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_ADMIN, Cnd.where(Sys_user_role::getUnionId, "=", evaluateApply.getUnionId())); - assignments.add(schoolUnionApprovalLoginName); - } - bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments); - return Result.success(); - } - - @At - @SaCheckPermission("evaluation.branchUnionApproval") - @ApiOperation("撤回") - @SLog(tag = "评优评先分工会审核", msg = "撤回") - @Aop(TransAop.READ_COMMITTED) - public Result revoke(@Valid String taskId){ - bpmService.revokeTask(taskId); - return Result.success(); + Pagination pagination = evaluateService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); } } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateCommonController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateCommonController.java index cad13681..021b52a2 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateCommonController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateCommonController.java @@ -7,7 +7,6 @@ import com.budwk.app.base.result.Result; import com.budwk.app.bpm.service.BpmService; import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply; import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService; -import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluateApplyVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.nutz.ioc.loader.annotation.Inject; @@ -33,8 +32,6 @@ public class EvaluateCommonController { @SaCheckPermission("evaluation") public Result info(@Valid String id){ EvaluateApply evaluateApply = evaluateService.fetch(id); - EvaluateApplyVO vo = BeanUtil.copyProperties(evaluateApply, EvaluateApplyVO.class); - vo.setNodeTasks(bpmService.getNodeTasks(BpmProcessConstant.PERSON_EVALUATE, id)); - return Result.success(vo); + return Result.success(evaluateApply); } } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateMineController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateMineController.java index 47a30e9b..e36fd5bc 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateMineController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateMineController.java @@ -2,23 +2,18 @@ package com.budwk.app.zhgh.dayofficework.evaluation.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import com.budwk.app.base.annotation.SLog; -import com.budwk.app.base.constant.RoleConstant; 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.bpm.service.BpmService; -import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService; -import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluateApplyPageVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; -import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.mvc.annotation.At; @@ -48,66 +43,56 @@ public class EvaluateMineController { @At @SaCheckPermission("evaluation.mine") public Result pageData(@Valid PageForm pageForm, Integer year) { + Sql sql = Sqls.create(""" SELECT - info.*, - ea.name AS evaluateName, - hb.name AS honorName, - bs.name as honorTypeName, - inst.processInstanceNodeId, - inst.processInstanceNodeCode, - inst.processInstanceNodeName, - inst.processInstanceTaskIds, - inst.processInstanceStatus, - nd.nodeType AS processInstanceTaskNodeType, - ( - SELECT - count( 1 ) > 0 - FROM - bpm_process_task - WHERE - prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70 ) ORDER BY createdAt DESC LIMIT 1 ) - AND taskStatus = 'COMPELTE' - ) AS nextTaskIsComplete + info.*, + ea.name AS evaluateName, + hb.name AS honorName, + bs.name as honorTypeName, + 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 - evaluate_apply info - LEFT JOIN evaluate_activity ea ON ea.id = info.evaluateId - LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId - LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId - LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = info.id - LEFT JOIN bpm_process_node_define nd ON nd.id = inst.processInstanceNodeId + evaluate_apply info + LEFT JOIN evaluate_activity ea ON ea.id = info.evaluateId + LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId + LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId + 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(); - if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) { - cnd.and("info.loginName", "=", SecurityUtil.getUserLoginname()); - } - cnd.andEX("ea.year", "=", year); - cnd.groupBy("info.id"); + cnd.andEX("YEAR(info.year)", "=", year); + cnd.and("info.loginName", "=", SecurityUtil.getUserLoginname()); sql.setCondition(cnd); - Pagination pageVO = evaluateService.listPageVO(pageForm, sql, EvaluateApplyPageVO.class); - return Result.success(pageVO); + Pagination pagination = evaluateService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); } @At @SaCheckPermission("evaluation.mine") @ApiOperation("删除") - @Aop(TransAop.READ_COMMITTED) @SLog(tag = "评优评先申请", msg = "删除申请") public Result delete(@Valid String id) { evaluateService.delete(id); - bpmService.deleteInstance(id); return Result.success(); } - @At - @SaCheckPermission("evaluation.mine") - @ApiOperation("撤回") - @Aop(TransAop.READ_COMMITTED) - @SLog(tag = "评优评先申请", msg = "撤回申请") - public Result revokeApply(@Valid String id) { - bpmService.revokeApply(id); - return Result.success(); - } } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateSchoolUnionApprovalController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateSchoolUnionApprovalController.java index f1980deb..8bc5bcda 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateSchoolUnionApprovalController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateSchoolUnionApprovalController.java @@ -8,17 +8,15 @@ import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.PageUtil; -import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; import com.budwk.app.bpm.param.BpmTaskApprovalParam; import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; import com.budwk.app.sys.models.Sys_user_role; -import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.web.controllers.open.commons.service.CommonService; import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply; import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService; -import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluateApplyPageVO; import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluatePageForm; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -27,7 +25,6 @@ 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.Static; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -65,59 +62,65 @@ public class EvaluateSchoolUnionApprovalController { @SaCheckPermission("evaluation.schoolUnionApproval") @ApiOperation("数据列表") @Ok("json") - public Result pageData(@Valid EvaluatePageForm pageForm, boolean approval){ + public Result pageData(@Valid EvaluatePageForm pageForm, Boolean approval){ Sql sql = Sqls.create(""" SELECT info.*, ea.name AS evaluateName, hb.name AS honorName, bs.name as honorTypeName, - inst.id processInstanceId, - inst.processInstanceNodeId, - inst.processInstanceNodeName, - inst.processInstanceTaskIds, - inst.processInstanceStatus, - task.id processInstanceTaskId, - task.taskStatus processInstanceTaskStatus, - COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete + 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, + IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke FROM - bpm_process_task task - INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId - INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId - INNER JOIN evaluate_apply info ON info.id = inst.processInstanceBusinessId + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN evaluate_apply info ON info.id = ins.businessNo LEFT JOIN evaluate_activity ea ON ea.id = info.evaluateId LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId - LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10 + LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10 $condition """); Cnd cnd = Cnd.NEW(); - if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ - cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); - } - - cnd.and("nd.nodeCode","=",50); - if(approval){ - cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE); - }else{ - cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE); - } - - cnd.andEX("eva.year", "=", pageForm.getYear()); - cnd.and(Cnd.likeEX("info.userName", pageForm.getUserName())); - cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName())); + cnd.and("t.taskName", "=", "3c158aca-89ef-4188-bbc3-e8db201f02a1"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); cnd.andEX("info.unionId","=",pageForm.getUnionId()); cnd.andEX("info.unitId","=",pageForm.getUnitId()); + if (approval) { + cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); + } else { + cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode()); + } + if (StrUtil.isAllNotEmpty(pageForm.getSearchName(), pageForm.getSearchKeyword())) { + cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword()); + } + cnd.andEX("YEAR(info.applyDateTime)", "=", pageForm.getYear()); + cnd.groupBy("t.id"); if(StrUtil.isAllBlank(pageForm.getPageOrderName(),pageForm.getPageOrderBy())){ - cnd.desc("info.applyDateTime"); + cnd.desc("t.createdAt").desc("info.applyDateTime"); }else{ cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); } - sql.setCondition(cnd); - Pagination pageVO = evaluateService.listPageVO(pageForm, sql, EvaluateApplyPageVO.class); - return Result.success(pageVO); + Pagination pagination = evaluateService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); } @At diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateSummaryController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateSummaryController.java index 46a33614..e6ea57ce 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateSummaryController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/controller/EvaluateSummaryController.java @@ -5,23 +5,19 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.base.service.BaseService; import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.base.utils.PageUtil; -import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateActivity; import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService; -import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluateApplyPageVO; import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluatePageForm; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; -import org.nutz.dao.Cnd; import org.nutz.dao.Dao; -import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -47,7 +43,7 @@ public class EvaluateSummaryController { @Inject private EvaluateService evaluateService; @Inject - private BpmService bpmService; + private FlowEngine flowEngine; @At("") @Ok("beetl:/platform/zhgh/dayofficework/evaluation/summary/index.html") @@ -60,69 +56,18 @@ public class EvaluateSummaryController { @SaCheckPermission("evaluation.summary") @ApiOperation("获取评优评先活动列表") public Result pageData(@Valid EvaluatePageForm pageForm) { - Sql sql = Sqls.create(""" - SELECT - info.*, - eva.name as evaluateName, - hb.name AS honorName, - bs.name as honorTypeName, - ins.processInstanceNodeName - FROM - evaluate_apply info - LEFT JOIN evaluate_activity eva ON eva.id = info.evaluateId - LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId - LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId - LEFT JOIN bpm_process_instance ins ON ins.processInstanceBusinessId = info.id - $condition - """); - Cnd cnd = Cnd.NEW(); - cnd.andEX("eva.year", "=", pageForm.getYear()); - cnd.and(Cnd.likeEX("eva.id", pageForm.getEvaluateId())); - cnd.and(Cnd.likeEX("ea.userName", pageForm.getUserName())); - cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName())); - cnd.andEX("info.unitId", "=", pageForm.getUnitId()); - cnd.andEX("info.unionId", "=", pageForm.getUnionId()); - - if(StrUtil.isAllBlank(pageForm.getPageOrderName(),pageForm.getPageOrderBy())){ - cnd.desc("info.applyDateTime"); - }else{ - cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); - } - - sql.setCondition(cnd); - Pagination pageVO = evaluateService.listPageVO(pageForm, sql, EvaluateApplyPageVO.class); - return Result.success(pageVO); + Sql sql = evaluateService.getSummarySql(pageForm); + Pagination pagination = evaluateService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); } @At @Ok("void") @SaCheckPermission("evaluation.summary") @ApiOperation("导出评优评先活动列表") - public void exportExcel(@Valid EvaluatePageForm pageForm,HttpServletResponse response) { - Sql sql = Sqls.create(""" - SELECT - info.userName, - info.loginName, - info.sex, - info.unitName, - eva.`name` as evaluateName, - hb.name AS honorName, - bs.name as honorTypeName - FROM - evaluate_apply info - LEFT JOIN evaluate_activity eva ON eva.id = info.evaluateId - LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId - LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId - $condition - """); - Cnd cnd = Cnd.NEW(); - cnd.andEX("eva.year", "=", pageForm.getYear()); - cnd.and(Cnd.likeEX("eva.id", pageForm.getEvaluateId())); - cnd.and(Cnd.likeEX("ea.userName", pageForm.getUserName())); - cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName())); - cnd.andEX("info.unitId", "=", pageForm.getUnitId()); - cnd.andEX("info.unionId", "=", pageForm.getUnionId()); - sql.setCondition(cnd); + public void exportExcel(@Valid EvaluatePageForm pageForm, HttpServletResponse response) { + EvaluateActivity activity = evaluateService.dao().fetch(EvaluateActivity.class, pageForm.getEvaluateId()); + Sql sql = evaluateService.getSummarySql(pageForm); List list = baseService.listMap(sql); for (int i = 0; i < list.size(); i++) { list.get(i).put("序号", (i + 1)); @@ -143,7 +88,7 @@ public class EvaluateSummaryController { ExportParams exportParams = new ExportParams(); exportParams.setType(ExcelType.XSSF); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); - CommonDownloadUtil.download("评优评先人员列表.xlsx", workbook, response); + CommonDownloadUtil.download(activity.getName() + "人员列表.xlsx", workbook, response); } catch (Exception ignored) { } } @@ -154,7 +99,7 @@ public class EvaluateSummaryController { @SLog(tag = "评优评先活查询统计", msg = "删除") public Result delete(@Valid String id) { evaluateService.delete(id); - bpmService.deleteInstance(id); + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/service/EvaluateService.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/service/EvaluateService.java index eb3abc6b..4f4a6336 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/service/EvaluateService.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/service/EvaluateService.java @@ -2,6 +2,12 @@ package com.budwk.app.zhgh.dayofficework.evaluation.service; import com.budwk.app.base.service.BaseService; import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply; +import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluatePageForm; +import org.nutz.dao.sql.Sql; public interface EvaluateService extends BaseService { + + + + Sql getSummarySql(EvaluatePageForm pageForm); } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/service/impl/EvaluateServiceImpl.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/service/impl/EvaluateServiceImpl.java index 8420cc46..48ded2a2 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/service/impl/EvaluateServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/service/impl/EvaluateServiceImpl.java @@ -1,9 +1,16 @@ package com.budwk.app.zhgh.dayofficework.evaluation.service.impl; +import cn.hutool.core.util.StrUtil; import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply; import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService; +import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluatePageForm; +import org.nutz.dao.Cnd; import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; import org.nutz.ioc.loader.annotation.IocBean; @IocBean(args = {"refer:dao"}) @@ -11,4 +18,58 @@ public class EvaluateServiceImpl extends BaseServiceImpl implemen public EvaluateServiceImpl(Dao dao) { super(dao); } + + @Override + public Sql getSummarySql(EvaluatePageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + info.*, + ea.name AS evaluateName, + hb.name AS honorName, + bs.name as honorTypeName, + 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 + evaluate_apply info + LEFT JOIN evaluate_activity ea ON ea.id = info.evaluateId + LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId + LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId + 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(); + cnd.andEX("YEAR(info.year)", "=", pageForm.getYear()); + cnd.andEX("info.evaluateId", "=", pageForm.getEvaluateId()); + cnd.and("ins.state", "=", ProcessTaskStateEnum.FINISHED.getCode()); + cnd.andEX("info.unitId", "=", pageForm.getUnitId()); + cnd.andEX("info.unionId", "=", pageForm.getUnionId()); + if (StrUtil.isAllNotEmpty(pageForm.getSearchName(), pageForm.getSearchKeyword())) { + cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword()); + } + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("t.createdAt").desc("info.applyDateTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + sql.setCondition(cnd); + return sql; + } } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/vo/EvaluateApplyPageVO.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/vo/EvaluateApplyPageVO.java deleted file mode 100644 index 8d423add..00000000 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/vo/EvaluateApplyPageVO.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.budwk.app.zhgh.dayofficework.evaluation.vo; - -import com.budwk.app.bpm.vo.BpmTaskApprovalVo; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; - -@EqualsAndHashCode(callSuper = true) -@Data -public class EvaluateApplyPageVO extends BpmTaskApprovalVo { - - private String id; - - private String evaluateId; - - private String honorId; - - private String honorTypeId; - - private String loginName; - - private String userName; - - private Integer age; - - private String sex; - - private String nation; - - private String political; - - private String education; - - private String technicalTitle; - - private String governmentPosition; - - private String historyHonor; - - private String briefDeeds; - - private String unitName; - - private String unitId; - - private String unionName; - - private String unionId; - - private String clubName; - - private String clubId; - - private Date applyDateTime; - - private Boolean isClub; - - private String evaluateName; - - private String honorName; - - private String honorTypeName; - -} diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/vo/EvaluateApplyVO.java b/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/vo/EvaluateApplyVO.java deleted file mode 100644 index c382d6d3..00000000 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/evaluation/vo/EvaluateApplyVO.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.budwk.app.zhgh.dayofficework.evaluation.vo; - -import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo; -import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.List; - -@EqualsAndHashCode(callSuper = true) -@Data -public class EvaluateApplyVO extends EvaluateApply { - - @ApiModelProperty("节点审批记录") - private List nodeTasks; - -} diff --git a/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteeDelegationOnePushController.java b/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteeDelegationOnePushController.java index d9ffaa5b..3f05bf84 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteeDelegationOnePushController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteeDelegationOnePushController.java @@ -28,6 +28,7 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import javax.validation.Valid; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -226,9 +227,10 @@ public class ExecutiveCommitteeDelegationOnePushController { @At @SaCheckPermission("executiveCommittee.delegationOnePush") - @SLog( tag = "执委会推选-团长推选委员", msg = "删除推选的人") - public Result doDelete(String id) { - ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class, Cnd.NEW()); + @SLog(tag = "执委会推选-团长推选委员", msg = "删除推选的人") + public Result doDelete(@Valid String id, @Valid String teacherMeetId) { + ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class, + Cnd.where("teacherMeetId", "=", teacherMeetId)); if (ObjectUtil.isEmpty(config)) { return Result.error("请先配置基础信息"); } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteeDelegationTwoPushController.java b/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteeDelegationTwoPushController.java index 61dc95ce..7ca468e3 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteeDelegationTwoPushController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteeDelegationTwoPushController.java @@ -16,7 +16,6 @@ import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; -import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Strings; @@ -25,6 +24,7 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import javax.validation.Valid; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -146,7 +146,7 @@ public class ExecutiveCommitteeDelegationTwoPushController { @At @SaCheckPermission("executiveCommittee.delegationTwoPush") @ApiOperation("推选委员") - @SLog(type = "executiveCommitteePreparatoryGroupPush", tag = "执委会推选-团长二次推选", msg = "推选委员") + @SLog(tag = "执委会推选-团长二次推选", msg = "推选委员") public Result addOnePush(@Param("userValue") String[] userValue, String teacherMeetId) { try { @@ -177,7 +177,7 @@ public class ExecutiveCommitteeDelegationTwoPushController { List dbList = dao.query(Teacher_congress_delegate.class, Cnd.where(Teacher_congress_delegate::getSessionId, "=", teacherMeetId) - .andEX(Teacher_congress_delegate::getUserId, "in", userValue)); + .andEX(Teacher_congress_delegate::getUserId, "in", userValue)); List list = new ArrayList<>(); for (String id : userValue) { Teacher_congress_delegate jdhDb = dbList.stream().filter(v -> v.getUserId().equals(id)).findFirst().orElse(null); @@ -205,9 +205,10 @@ public class ExecutiveCommitteeDelegationTwoPushController { @At @ApiOperation("删除推选人员") @SaCheckPermission("executiveCommittee.delegationTwoPush") - @SLog(type = "executiveCommitteePreparatoryGroupPush", tag = "执委会推选-团长二次推选", msg = "删除推选人员") - public Result doDelete( String id) { - ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class, Cnd.NEW()); + @SLog(tag = "执委会推选-团长二次推选", msg = "删除推选人员") + public Result doDelete(@Valid String id, @Valid String teacherMeetId) { + ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class, + Cnd.where("teacherMeetId", "=", teacherMeetId)); if (ObjectUtil.isEmpty(config)) { return Result.error("请先配置基础信息"); } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteePushController.java b/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteePushController.java index f337d290..3af23dbf 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteePushController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/executiveCommittee/controller/ExecutiveCommitteePushController.java @@ -27,6 +27,7 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import javax.validation.Valid; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -125,7 +126,7 @@ public class ExecutiveCommitteePushController { @At @SaCheckPermission("executiveCommittee.preparatoryGroupPush") - @SLog(type = "executiveCommitteePreparatoryGroupPush", tag = "执委会推选-筹备组推选", msg = "推选委员") + @SLog(tag = "执委会推选-筹备组推选", msg = "推选委员") public Result addOnePush(@Param("userValue") String[] userValue, String teacherMeetId) { try { @@ -150,11 +151,11 @@ public class ExecutiveCommitteePushController { } Sql sql = Sqls.create(""" - SELECT - t1.* - FROM - teacher_congress_delegate t1 - $condition + SELECT + t1.* + FROM + teacher_congress_delegate t1 + $condition """); Cnd cnd = Cnd.NEW(); cnd.and("t1.sessionId", "=", teacherMeetId); @@ -191,9 +192,10 @@ public class ExecutiveCommitteePushController { @At @SaCheckPermission("executiveCommittee.preparatoryGroupPush") - @SLog(type = "executiveCommitteePreparatoryGroupPush", tag = "执委会推选-筹备组推选", msg = "删除推选的人") - public Result doDelete(String id) { - ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class, Cnd.NEW()); + @SLog(tag = "执委会推选-筹备组推选", msg = "删除推选的人") + public Result doDelete(@Valid String id, @Valid String teacherMeetId) { + ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class, + Cnd.where("teacherMeetId", "=", teacherMeetId)); if (ObjectUtil.isEmpty(config)) { return Result.error("请先配置基础信息"); } @@ -217,5 +219,4 @@ public class ExecutiveCommitteePushController { } - } diff --git a/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationApplyController.java b/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationApplyController.java index fb13863e..d592ddd1 100644 --- a/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationApplyController.java @@ -13,17 +13,17 @@ 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.sys.models.Sys_user; -import com.budwk.app.sys.views.View_user; +import com.budwk.app.flow.service.FlowCommonService; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.enrollmentRegistration.model.EnrollmentRegistration; -import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; +import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.util.NutMap; @@ -51,6 +51,9 @@ public class EnrollmentRegistrationApplyController { @Inject private FlowEngine flowEngine; + @Inject + private FlowCommonService flowCommonService; + @At("/index") @Ok("beetl:/platform/zhgh/enrollmentRegistration/apply/index.html") @@ -81,35 +84,34 @@ public class EnrollmentRegistrationApplyController { @At @SaCheckPermission("enrollmentRegistration.apply") @ApiOperation("保存申请") - @SLog(type = "enrollmentRegistrationApply", tag = "子女入学管理-子女入学登记", msg = "保存子女入学登记") + @SLog( tag = "子女入学管理-子女入学登记", msg = "保存子女入学登记") public Result save(@Param("data") EnrollmentRegistration enrollmentRegistration) { - View_user user = baseService.dao().fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId())); - enrollmentRegistration.setUserId(SecurityUtil.getUserId()); - enrollmentRegistration.setLoginName(SecurityUtil.getUserLoginname()); - enrollmentRegistration.setUserName(SecurityUtil.getUserUsername()); - enrollmentRegistration.setUnitId(SecurityUtil.getUnitId()); - enrollmentRegistration.setUnitName(user.getUnitName()); - enrollmentRegistration.setUnionId(SecurityUtil.getUnionId()); - enrollmentRegistration.setUnionName(user.getUnionName()); enrollmentRegistration.setApplyTime(DateUtil.now()); baseService.insertOrUpdate(enrollmentRegistration); return Result.success(); } + @At + @SaCheckPermission("enrollmentRegistration.apply") + @ApiOperation("重新提交申请") + @Aop(TransAop.READ_COMMITTED) + @SLog( tag = "子女入学管理-子女入学登记", msg = "重新提交申请") + public Result submitAgain(@Param("data") EnrollmentRegistration enrollmentRegistration, @Param("taskId") Long taskId) { + baseService.insertOrUpdate(enrollmentRegistration); + + Dict dict = Dict.create(); + dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId); + dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode()); + flowCommonService.executeTask(dict); + return Result.success(); + } + @At @SaCheckPermission("enrollmentRegistration.apply") @ApiOperation("提交申请") - @SLog(type = "enrollmentRegistrationApply", tag = "子女入学管理-子女入学登记", msg = "提交子女入学登记") + @SLog( tag = "子女入学管理-子女入学登记", msg = "提交子女入学登记") public Result submit(@Param("data") EnrollmentRegistration enrollmentRegistration) { if (StrUtil.isBlank(enrollmentRegistration.getId())) { - View_user user = baseService.dao().fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId())); - enrollmentRegistration.setUserId(SecurityUtil.getUserId()); - enrollmentRegistration.setLoginName(SecurityUtil.getUserLoginname()); - enrollmentRegistration.setUserName(SecurityUtil.getUserUsername()); - enrollmentRegistration.setUnitId(SecurityUtil.getUnitId()); - enrollmentRegistration.setUnitName(user.getUnitName()); - enrollmentRegistration.setUnionId(SecurityUtil.getUnionId()); - enrollmentRegistration.setUnionName(user.getUnionName()); enrollmentRegistration.setApplyTime(DateUtil.now()); } baseService.insertOrUpdate(enrollmentRegistration); diff --git a/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationApplyListController.java b/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationApplyListController.java index 417d00f8..a4a3d5c7 100644 --- a/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationApplyListController.java +++ b/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationApplyListController.java @@ -1,17 +1,21 @@ package com.budwk.app.zhgh.enrollmentRegistration.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.annotation.SLog; 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.service.BaseService; import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.enrollmentRegistration.model.EnrollmentRegistration; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; +import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.mvc.annotation.At; @@ -33,7 +37,6 @@ public class EnrollmentRegistrationApplyListController { private BaseService baseService; - @At("/index") @Ok("beetl:/platform/zhgh/enrollmentRegistration/applyList/index.html") @SaCheckPermission("enrollmentRegistration.applyList") @@ -81,6 +84,14 @@ public class EnrollmentRegistrationApplyListController { return Result.success(pagination); } - + @At + @ApiOperation("删除子女入学信息") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("enrollmentRegistration.applyList") + @SLog(tag = "子女入学-我的填报", msg = "删除id: ${args[0]}") + public Result doDelete(String id) { + baseService.dao().delete(EnrollmentRegistration.class, id); + return Result.success(); + } } diff --git a/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationPlanController.java b/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationPlanController.java index cc2a1667..91e38ea8 100644 --- a/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationPlanController.java +++ b/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/controller/EnrollmentRegistrationPlanController.java @@ -63,7 +63,7 @@ public class EnrollmentRegistrationPlanController { @ApiOperation("提交登记计划") @SaCheckPermission("enrollmentRegistration.plan") @Aop(TransAop.READ_COMMITTED) - @SLog(type = "outlayReimburseApply", tag = "子女入学管理-登记计划", msg = "提交登记计划") + @SLog( tag = "子女入学管理-登记计划", msg = "提交登记计划") public Result onSubmit(@Param("data") EnrollmentRegistrationPlan enrollmentRegistrationPlan) { baseService.insertOrUpdate(enrollmentRegistrationPlan); diff --git a/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/model/EnrollmentRegistration.java b/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/model/EnrollmentRegistration.java index 8c44beeb..ffa6927b 100644 --- a/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/model/EnrollmentRegistration.java +++ b/src/main/java/com/budwk/app/zhgh/enrollmentRegistration/model/EnrollmentRegistration.java @@ -34,6 +34,11 @@ public class EnrollmentRegistration extends BaseModel implements Serializable { @Comment("登记类型(字典)") private String registrationType; + @Column + @ColDefine(type = ColType.VARCHAR,width = 32) + @Comment("登记类型计划Id") + private String registrationTypeId; + @Column @ColDefine(type = ColType.VARCHAR,width = 30) @Comment("监护人(教工)姓名") @@ -84,6 +89,11 @@ public class EnrollmentRegistration extends BaseModel implements Serializable { @Comment("子女姓名") private String childrenName; + @Column + @ColDefine(type = ColType.VARCHAR,width = 30) + @Comment("出身年月") + private String childrenBirthday; + @Column @ColDefine(type = ColType.VARCHAR,width = 30) @Comment("性别") diff --git a/src/main/java/com/budwk/app/zhgh/outlay/activityBudget/conteoller/ActivityBudgetApplyController.java b/src/main/java/com/budwk/app/zhgh/outlay/activityBudget/conteoller/ActivityBudgetApplyController.java index 28966d52..cfed1930 100644 --- a/src/main/java/com/budwk/app/zhgh/outlay/activityBudget/conteoller/ActivityBudgetApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/outlay/activityBudget/conteoller/ActivityBudgetApplyController.java @@ -3,11 +3,15 @@ package com.budwk.app.zhgh.outlay.activityBudget.conteoller; import cn.dev33.satoken.annotation.SaCheckLogin; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Dict; import com.alibaba.excel.EasyExcel; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.CommonDownloadUtil; +import com.budwk.app.flow.constant.FlowConst; +import com.budwk.app.flow.enums.ProcessSubmitTypeEnum; +import com.budwk.app.flow.service.FlowCommonService; import com.budwk.app.sys.models.Sys_role; import com.budwk.app.sys.models.Sys_user_role; import com.budwk.app.sys.services.SysRoleService; @@ -15,15 +19,12 @@ import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.club.model.SysClub; import com.budwk.app.zhgh.club.service.SysClubService; -import com.budwk.app.zhgh.democratic.suggestionBox.models.SuggestionBox; -import com.budwk.app.zhgh.integral.controller.IntegralManageController; import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget; import com.budwk.app.zhgh.outlay.activityBudget.service.ActivityBudgetService; import com.budwk.app.zhgh.outlay.activityBudget.template.ActivityBudgetTemp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.IOUtils; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; @@ -38,8 +39,6 @@ import org.nutz.mvc.annotation.Param; import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; @@ -64,6 +63,9 @@ public class ActivityBudgetApplyController { @Inject private SysRoleService sysRoleService; + @Inject + private FlowCommonService flowCommonService; + @At("") @Ok("beetl:/platform/zhgh/outlay/activityBudget/apply/index.html") @@ -77,17 +79,32 @@ public class ActivityBudgetApplyController { @ApiOperation("提交年度预算申报") @SaCheckPermission("activity.budget.apply") @Aop(TransAop.READ_COMMITTED) - @SLog(type = "activityBudgetApply", tag = "年度预算申报-预算申报", msg = "提交年度预算申报") + @SLog( tag = "年度预算申报-预算申报", msg = "提交年度预算申报") public Result submit(@Param("data") ActivityBudget activityBudget) { activityBudget.setApplyDate(DateUtil.now()); return activityBudgetService.submit(activityBudget); } + @At + @SaCheckPermission("activity.budget.apply") + @ApiOperation("重新提交申请") + @Aop(TransAop.READ_COMMITTED) + @SLog( tag = "年度预算申报-预算申报", msg = "重新提交申请") + public Result submitAgain(@Param("data") ActivityBudget activityBudget, @Param("taskId") Long taskId) { + activityBudgetService.insertOrUpdate(activityBudget); + + Dict dict = Dict.create(); + dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId); + dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode()); + flowCommonService.executeTask(dict); + return Result.success(); + } + @At @SaCheckPermission("activity.budget.apply") @ApiOperation("保存申请") - @SLog(type = "activityBudgetApply", tag = "年度预算申报-预算申报", msg = "保存年度预算申报") + @SLog( tag = "年度预算申报-预算申报", msg = "保存年度预算申报") public Result save(@Param("data") ActivityBudget activityBudget) { activityBudget.setUserId(SecurityUtil.getUserId()); activityBudget.setLoginName(SecurityUtil.getUserLoginname()); diff --git a/src/main/java/com/budwk/app/zhgh/outlay/activityBudget/conteoller/ActivityBudgetApplyListController.java b/src/main/java/com/budwk/app/zhgh/outlay/activityBudget/conteoller/ActivityBudgetApplyListController.java index 1e0657a7..4403aec1 100644 --- a/src/main/java/com/budwk/app/zhgh/outlay/activityBudget/conteoller/ActivityBudgetApplyListController.java +++ b/src/main/java/com/budwk/app/zhgh/outlay/activityBudget/conteoller/ActivityBudgetApplyListController.java @@ -8,20 +8,15 @@ import com.budwk.app.base.annotation.SLog; 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.flow.entity.ProcessInstance; -import com.budwk.app.flow.entity.ProcessTask; import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget; import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudgetDetails; import com.budwk.app.zhgh.outlay.activityBudget.service.ActivityBudgetService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.checkerframework.checker.units.qual.C; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; -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; @@ -58,11 +53,6 @@ public class ActivityBudgetApplyListController { public void index() { } - @At("/view") - @Ok("beetl:/platform/zhgh/outlay/activityBudget/view/index.html") - @SaCheckPermission("activity.budget.applyList") - public void view() { - } @At @ApiOperation("分页查询") @@ -78,17 +68,11 @@ public class ActivityBudgetApplyListController { @ApiOperation("批量删除申报数据") @SaCheckPermission("activity.budget.applyList") @Aop(TransAop.READ_COMMITTED) - @SLog(type = "activityBudgetApplyList", tag = "年度预算申报-我的申报", msg = "删除了${ids.length}条数据,${ids}") + @SLog( tag = "年度预算申报-我的申报", msg = "删除了${ids.length}条数据,${ids}") public Result batchDelete(@Param("ids[]") @Valid String[] ids) { if (ObjectUtil.isNotEmpty(ids)) { activityBudgetService.clear(Cnd.where("id", "in", ids)); activityBudgetService.dao().clear(ActivityBudgetDetails.class, Cnd.where("budgetId", "in", ids)); - List instanceList = activityBudgetService.dao().query(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "in", ids)); - if (ObjectUtil.isNotEmpty(instanceList)) { - List instanceIds = instanceList.stream().map(ProcessInstance::getId).toList(); - activityBudgetService.dao().clear(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "in", instanceIds)); - activityBudgetService.dao().clear(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "in", ids)); - } } return Result.success(); } @@ -97,22 +81,17 @@ public class ActivityBudgetApplyListController { @ApiOperation("删除一条申报数据") @SaCheckPermission("activity.budget.applyList") @Aop(TransAop.READ_COMMITTED) - @SLog(type = "activityBudgetApplyList", tag = "年度预算申报-我的申报", msg = "删除了一条条数据,${id}") + @SLog( tag = "年度预算申报-我的申报", msg = "删除了一条条数据,${id}") public Result doDelete(String id) { activityBudgetService.dao().delete(ActivityBudget.class, id); activityBudgetService.dao().clear(ActivityBudgetDetails.class, Cnd.where("budgetId", "=", id)); - ProcessInstance instance = activityBudgetService.dao().fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", id)); - if (ObjectUtil.isNotEmpty(instance)) { - activityBudgetService.dao().clear(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "=", instance.getId())); - activityBudgetService.dao().delete(ProcessInstance.class, instance.getId()); - } return Result.success(); } @At @ApiOperation("提交申报数据") @SaCheckPermission("activity.budget.applyList") - @SLog(type = "activityBudgetApplyList", tag = "年度预算申报-我的申报", msg = "提交了${ids.length}条数据,${ids}") + @SLog( tag = "年度预算申报-我的申报", msg = "提交了${ids.length}条数据,${ids}") public Result batchSubmit(@Valid @Param("ids[]") String[] ids) { List budgetList = activityBudgetService.query(Cnd.where("id", "in", ids)); List budgets = budgetList.stream().filter(a -> diff --git a/src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/controller/OutlayManageClubController.java b/src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/controller/OutlayManageClubController.java new file mode 100644 index 00000000..1f24cf64 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/controller/OutlayManageClubController.java @@ -0,0 +1,159 @@ +package com.budwk.app.zhgh.outlay.outlayManage.club.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.date.DateUtil; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.RoleConstant; +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.service.BaseService; +import com.budwk.app.flow.enums.ProcessInstanceStateEnum; +import com.budwk.app.sys.models.Sys_role; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.club.model.SysClub; +import com.budwk.app.zhgh.outlay.outlayManage.club.model.OutlayManageClub; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * @author zhf + * @date 2025/8/28 11:36 + * @description + */ +@IocBean +@At("/platform/outlay/outlayManage/clubManage") +@Ok("json:full") +@Slf4j +@Api(tags = "分工会经费预算管理") +public class OutlayManageClubController { + + @Inject + private BaseService baseService; + + @Inject + private SysRoleService sysRoleService; + + @At("") + @Ok("beetl:/platform/zhgh/outlay/outlayManage/club/manage/index.html") + @SaCheckPermission("outlay.outlayManage.club.manage") + public void index() { + } + + @At + @ApiOperation("分页查询") + @SaCheckPermission("outlay.outlayManage.club.manage") + public Result pageData(PageForm pageForm, Integer year) { + Cnd cnd = Cnd.NEW(); + Sql sql = Sqls.create(""" + SELECT * FROM `outlay_manage_club` $condition + """); + cnd.andEX("year", "=", year); + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { + Sys_role sysRole = sysRoleService.getByCode(RoleConstant.CLUB_PRESIDENT); + List userRoles = baseService.dao().query(Sys_user_role.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).and("roleId", "=", sysRole.getId())); + List myClubId = userRoles.stream().map(Sys_user_role::getClubId).toList(); + cnd.andEX("clubId", "in", myClubId); + } + cnd.asc("clubCode"); + sql.setCondition(cnd); + Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); + } + + + @At + @ApiOperation("修改预算") + @SaCheckPermission("outlay.outlayManage.club.manage") + @SLog(tag = "分工会预算分配", msg = "修改了预算分配的金额:${args[0]},id:${args[1]}") + public Result doSubmit(String totalQuota, String id) { + OutlayManageClub outlayManageClub = baseService.dao().fetch(OutlayManageClub.class, id); + outlayManageClub.setTotalQuota(new BigDecimal(totalQuota)); + baseService.updateIgnoreNull(outlayManageClub); + return Result.success(); + } + + + @At + @ApiOperation("查看是否分配") + @SaCheckPermission("outlay.outlayManage.club.manage") + public Result getIsAllocationOutlay(Integer year) { + int count = baseService.dao().count(OutlayManageClub.class, Cnd.where("year", "=", year)); + return Result.success(count); + } + + @At + @ApiOperation("重置预算") + @SaCheckPermission("outlay.outlayManage.club.manage") + @SLog(tag = "协会预算分配", msg = "重置了预算分配的金额:${args[0]}") + public Result resetOutlay(Integer year) { + int count = baseService.dao().clear(OutlayManageClub.class, Cnd.where("year", "=", year)); + return Result.success(count); + } + + @At + @ApiOperation("下发预算") + @SaCheckPermission("outlay.outlayManage.club.manage") + @SLog(tag = "协会预算分配", msg = "根据申报的金额修改本年的预算预算") + public Result issuedOutlay() { + Sql sql = Sqls.create(""" + SELECT + ab.clubId, + ab.totalBudgetMoney + FROM + activity_budget ab + LEFT JOIN wf_process_instance wpi ON wpi.businessNo = ab.id + WHERE + YEAR(ab.applyDate) = @year + AND ab.outlayManageSource = 'ACTIVITY_BUDGET_TYPE_THREE' + AND ab.isSchoolBudget =0 + AND wpi.state = 20 + """).setParam("year", DateUtil.thisYear()); + List budgetList = baseService.listMap(sql); + + Sql sqlClub = Sqls.create(""" + SELECT + c.* + FROM + `sys_club` c + LEFT JOIN wf_process_instance inst ON inst.businessNo = c.id + WHERE + inst.state = @state + """).setParam("state", ProcessInstanceStateEnum.FINISHED.getCode()); + List clubList = baseService.listVO(sqlClub, SysClub.class); + + + List insertUnionList = new ArrayList<>(); + clubList.forEach(v -> { + BigDecimal totalBudgetMoney = budgetList.stream() + .filter(budget -> budget.getString("clubId").equals(v.getId())) + .map(budget -> new BigDecimal(budget.getString("totalBudgetMoney"))) // 提取 money 属性 + .reduce(BigDecimal.ZERO, BigDecimal::add); + OutlayManageClub outlayManageClub = new OutlayManageClub(); + outlayManageClub.setYear(DateUtil.thisYear()); + outlayManageClub.setClubName(v.getClubName()); + outlayManageClub.setClubCode(v.getClubCode()); + outlayManageClub.setClubId(v.getId()); + outlayManageClub.setTotalQuota(totalBudgetMoney); + insertUnionList.add(outlayManageClub); + }); + baseService.insert(insertUnionList); + return Result.success(); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/controller/OutlayManageClubUseDetailController.java b/src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/controller/OutlayManageClubUseDetailController.java new file mode 100644 index 00000000..cef2943a --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/controller/OutlayManageClubUseDetailController.java @@ -0,0 +1,127 @@ +package com.budwk.app.zhgh.outlay.outlayManage.club.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.RoleConstant; +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.service.BaseService; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.sys.models.Sys_role; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.outlay.outlayManage.model.OutlayUseDetail; +import com.budwk.app.zhgh.outlay.outlayManage.service.OutlayUseDetailService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Strings; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import java.util.List; + +/** + * @author zhf + * @date 2025/8/28 13:56 + * @description + */ +@IocBean +@At("/platform/outlay/outlayManage/clubUseDetail") +@Ok("json:full") +@Slf4j +@Api(tags = "协会预算使用明细") +public class OutlayManageClubUseDetailController { + + @Inject + private BaseService baseService; + + @Inject + private SysRoleService sysRoleService; + @Inject + private OutlayUseDetailService outlayUseDetailService; + + @At("") + @Ok("beetl:/platform/zhgh/outlay/outlayManage/club/useDetail/index.html") + @SaCheckPermission("outlay.outlayManage.club.useDetail") + public void index() { + } + + + @At + @ApiOperation("分页查询") + @SaCheckPermission("outlay.outlayManage.club.useDetail") + public Result pageData(PageForm pageForm, + Integer year, + String clubId) { + Sql sql = Sqls.create(""" + select * from outlay_manage_club $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("totalQuota", "IS NOT", null); + cnd.and("year", "=", year); + + if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { + cnd.andEX("clubId", "=", clubId); + } else { + Sys_role sysRole = sysRoleService.getByCode(RoleConstant.CLUB_PRESIDENT); + List userRoles = baseService.dao().query(Sys_user_role.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).and("roleId", "=", sysRole.getId())); + List myClubId = userRoles.stream().map(Sys_user_role::getClubId).toList(); + cnd.andEX("clubId", "in", myClubId); + } + + if (Strings.isNotBlank(pageForm.getPageOrderBy()) && Strings.isNotBlank(pageForm.getPageOrderName())) { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } else { + cnd.asc("clubCode"); + } + sql.setCondition(cnd); + Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); + } + + + @At + @ApiOperation("某个协会预算使用详情") + @SaCheckPermission("outlay.outlayManage.club.useDetail") + public Result detailInfo(PageForm pageForm, String outlayManageId) { + Sql sql = Sqls.create(""" + select * from outlay_use_detail where outlayManageId=@outlayManageId + """).setParam("outlayManageId", outlayManageId); + Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); + } + + + @At + @ApiOperation("删除协会预算详情") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("outlay.outlayManage.club.useDetail") + @SLog(tag = "协会预算使用详情", msg = "删除了协会预算使用详情:${args[0]}") + public Result doDeleteDetail(String id) { + outlayUseDetailService.doDeleteDetail(id,"club"); + return Result.success(); + } + + + @At + @ApiOperation("编辑协会预算详情") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("outlay.outlayManage.club.useDetail") + @SLog(tag = "协会预算使用详情", msg = "编辑了协会预算使用详情:${args[0]}") + public Result doEditDetail(OutlayUseDetail outlayUseDetail) { + outlayUseDetailService.doEditDetail(outlayUseDetail,"club"); + return Result.success(); + } + +} diff --git a/src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/model/OutlayManageClub.java b/src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/model/OutlayManageClub.java new file mode 100644 index 00000000..9933e633 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/outlay/outlayManage/club/model/OutlayManageClub.java @@ -0,0 +1,62 @@ +package com.budwk.app.zhgh.outlay.outlayManage.club.model; + +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.*; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author zhf + * @date 2025/8/28 11:34 + * @description + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Table("outlay_manage_club") +@TableMeta("{'mysql-charset':'utf8mb4'}") +@Comment("协会经费管理") +public class OutlayManageClub extends BaseModel implements Serializable { + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Prev(els = {@EL("uuid()")}) + private String id; + + @Column + @Comment("年份") + @ColDefine(type = ColType.INT) + private Integer year; + + @Column + @Comment("总额度") + @Default("0") + @ColDefine(customType = "decimal(10,2)") + private BigDecimal totalQuota; + + @Column + @Comment("已使用额度") + @Default("0") + @ColDefine(customType = "decimal(10,2)") + private BigDecimal usedQuota; + + @Column + @Comment("协会ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String clubId; + + @Column + @Comment("协会名称") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String clubName; + + @Column + @Comment("协会code") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String clubCode; + +} diff --git a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseApplyController.java b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseApplyController.java index 8003abd6..ed4960a2 100644 --- a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseApplyController.java @@ -12,15 +12,13 @@ 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.sys.views.View_user; +import com.budwk.app.flow.service.FlowCommonService; import com.budwk.app.web.commons.auth.utils.SecurityUtil; -import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget; import com.budwk.app.zhgh.outlay.outlayReimburse.model.OutlayReimburse; import com.budwk.app.zhgh.outlay.outlayReimburse.service.OutlayReimburseApplyService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; @@ -29,7 +27,6 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; -import javax.swing.*; import java.util.List; /** @@ -53,6 +50,9 @@ public class OutlayReimburseApplyController { @Inject private FlowEngine flowEngine; + @Inject + private FlowCommonService flowCommonService; + @At("/index") @Ok("beetl:/platform/zhgh/outlay/outlayReimburse/apply/index.html") @SaCheckPermission("outlay.reimburse.apply") @@ -85,20 +85,11 @@ public class OutlayReimburseApplyController { @At @ApiOperation("提交报销申请") - @SaCheckPermission("activity.budget.apply") + @SaCheckPermission("activity.reimburse.apply") @Aop(TransAop.READ_COMMITTED) - @SLog(type = "outlayReimburseApply", tag = "费用报销管理-报销申请", msg = "提交年度预算申报") + @SLog( tag = "费用报销管理-报销申请", msg = "提交年度预算申报") public Result submit(@Param("data") OutlayReimburse outlayReimburse) { - //添加预算详情表 if (StrUtil.isBlank(outlayReimburse.getId())){ - View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId())); - outlayReimburse.setUserId(SecurityUtil.getUserId()); - outlayReimburse.setUserName(SecurityUtil.getUserUsername()); - outlayReimburse.setLoginName(SecurityUtil.getUserLoginname()); - outlayReimburse.setUnitId(SecurityUtil.getUnitId()); - outlayReimburse.setUnitName(user.getUnitName()); - outlayReimburse.setUnionId(SecurityUtil.getUnionId()); - outlayReimburse.setUnionName(user.getUnionName()); outlayReimburse.setApplyTime(DateUtil.now()); } outlayReimburseApplyService.insertOrUpdate(outlayReimburse); @@ -117,20 +108,27 @@ public class OutlayReimburseApplyController { return Result.success(); } + @At + @SaCheckPermission("activity.reimburse.apply") + @ApiOperation("重新提交申请") + @Aop(TransAop.READ_COMMITTED) + @SLog( tag = "费用报销管理-报销申请", msg = "重新提交申请") + public Result submitAgain(@Param("data") OutlayReimburse outlayReimburse, @Param("taskId") Long taskId) { + outlayReimburseApplyService.insertOrUpdate(outlayReimburse); + + Dict dict = Dict.create(); + dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId); + dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode()); + flowCommonService.executeTask(dict); + return Result.success(); + } + @At @SaCheckPermission("outlay.reimburse.apply") @ApiOperation("保存申请") - @SLog(type = "outlayReimburseApply", tag = "费用报销管理-报销申请", msg = "保存年度预算申报") + @SLog( tag = "费用报销管理-报销申请", msg = "保存年度预算申报") public Result save(@Param("data") OutlayReimburse outlayReimburse) { - View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId())); - outlayReimburse.setUserId(SecurityUtil.getUserId()); - outlayReimburse.setUserName(SecurityUtil.getUserUsername()); - outlayReimburse.setLoginName(SecurityUtil.getUserLoginname()); - outlayReimburse.setUnitId(SecurityUtil.getUnitId()); - outlayReimburse.setUnitName(user.getUnitName()); - outlayReimburse.setUnionId(SecurityUtil.getUnionId()); - outlayReimburse.setUnionName(user.getUnionName()); outlayReimburse.setApplyTime(DateUtil.now()); outlayReimburseApplyService.insertOrUpdate(outlayReimburse); return Result.success(); diff --git a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseClubAuditController.java b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseClubAuditController.java new file mode 100644 index 00000000..37365c1b --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseClubAuditController.java @@ -0,0 +1,118 @@ +package com.budwk.app.zhgh.outlay.outlayReimburse.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.StrUtil; +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.service.BaseService; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; +import com.budwk.app.sys.services.SysDictService; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import java.util.List; + +/** + * @author zhf + * @date 2025/8/19 16:50 + * @description 分工会主席审核 + */ +@IocBean +@Ok("json:full") +@Slf4j +@Api(tags = "费用报销管理-协会审核") +@At("/platform/outlay/reimburse/clubAudit") +public class OutlayReimburseClubAuditController { + + @Inject + private BaseService baseService; + @Inject + private SysDictService sysDictService; + + @At("/index") + @Ok("beetl:/platform/zhgh/outlay/outlayReimburse/clubAudit/index.html") + @SaCheckPermission("outlay.reimburse.clubAudit") + public void index() { + + } + + + @At + @ApiOperation("分页查询") + @SaCheckPermission("outlay.reimburse.clubAudit") + public Result pageData(PageForm pageForm, + Integer year, + Boolean approval, + String outlayManageSource) { + Sql sql = Sqls.create(""" + SELECT + info.*, + YEAR(info.applyTime) year, + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariale, + 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, + IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke + FROM + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN outlay_reimburse info ON info.id = ins.businessNo + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10 + LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10 + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("t.taskName", "=", "68a9af7f-f532-4866-aa09-24f0f802389f"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); + cnd.andEX("info.outlayManageSource", "=", outlayManageSource); + + if (approval) { + cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); + } else { + cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode()); + } + if (StrUtil.isAllNotEmpty(pageForm.getSearchName(), pageForm.getSearchKeyword())) { + cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword()); + } + cnd.andEX("YEAR(info.applyTime)", "=", year); + cnd.groupBy("t.id"); + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("t.createdAt").desc("info.applyTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + sql.setCondition(cnd); + Pagination pageVO = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pageVO); + } + + + + + +} diff --git a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseUnionAuditController.java b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseUnionAuditController.java index 8efcdd8f..5c3bb842 100644 --- a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseUnionAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseUnionAuditController.java @@ -54,7 +54,6 @@ public class OutlayReimburseUnionAuditController { @SaCheckPermission("outlay.reimburse.unionAudit") public Result pageData(PageForm pageForm, Integer year, - String clubId, Boolean approval, String outlayManageSource) { Sql sql = Sqls.create(""" diff --git a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/interceptor/OutlayReimburseSchoolZxAuditPostInterceptor.java b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/interceptor/OutlayReimburseSchoolZxAuditPostInterceptor.java index 629ccce1..ee331e31 100644 --- a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/interceptor/OutlayReimburseSchoolZxAuditPostInterceptor.java +++ b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/interceptor/OutlayReimburseSchoolZxAuditPostInterceptor.java @@ -10,6 +10,7 @@ import com.budwk.app.flow.engine.core.Execution; import com.budwk.app.flow.engine.core.ServiceContext; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget; +import com.budwk.app.zhgh.outlay.outlayManage.club.model.OutlayManageClub; import com.budwk.app.zhgh.outlay.outlayManage.model.OutlayUseDetail; import com.budwk.app.zhgh.outlay.outlayManage.school.model.OutlayManageSchool; import com.budwk.app.zhgh.outlay.outlayManage.union.model.OutlayManageUnion; @@ -88,6 +89,23 @@ public class OutlayReimburseSchoolZxAuditPostInterceptor implements FlowIntercep detail.setOutlayManageId(manageUnion.getId()); dao.insert(detail); } + }else if (outlayReimburse.getOutlayManageSource().equals("ACTIVITY_BUDGET_TYPE_THREE")){ + // 更新分工会活动经费表 + OutlayManageClub manageClub = dao.fetch(OutlayManageClub.class, + Cnd.where("year", "=", DateUtil.thisYear()) + .and("clubId", "=", outlayReimburse.getClubId())); + if (ObjectUtil.isEmpty(manageClub)) { + throw new BaseException("该年份没有设置金额!"); + } + if (manageClub.getTotalQuota().subtract(manageClub.getUsedQuota()).compareTo(outlayReimburse.getMoney()) < 0) { + throw new BaseException("剩余配额不足!剩余:" + manageClub.getTotalQuota().subtract(manageClub.getUsedQuota())); + } + manageClub.setUsedQuota(manageClub.getUsedQuota().add(outlayReimburse.getMoney())); + dao.updateIgnoreNull(manageClub); + + //添加使用记录到经费管理表 + detail.setOutlayManageId(manageClub.getId()); + dao.insert(detail); } } diff --git a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/model/OutlayReimburse.java b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/model/OutlayReimburse.java index 559f7a23..badf91a0 100644 --- a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/model/OutlayReimburse.java +++ b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/model/OutlayReimburse.java @@ -74,6 +74,11 @@ public class OutlayReimburse extends BaseModel implements Serializable { @ColDefine(type = ColType.VARCHAR, width = 32) private String clubId; + @Column + @Comment("社团名称") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String clubName; + @Column @Comment("报销经费来源") @ColDefine(type = ColType.VARCHAR, width = 32) diff --git a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/service/impl/OutlayReimburseApplyServiceImpl.java b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/service/impl/OutlayReimburseApplyServiceImpl.java index b438dd1a..4683afbb 100644 --- a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/service/impl/OutlayReimburseApplyServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/service/impl/OutlayReimburseApplyServiceImpl.java @@ -3,10 +3,15 @@ package com.budwk.app.zhgh.outlay.outlayReimburse.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.result.Result; import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.sys.models.Sys_role; +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.outlay.activityBudget.models.ActivityBudget; +import com.budwk.app.zhgh.outlay.outlayManage.club.model.OutlayManageClub; import com.budwk.app.zhgh.outlay.outlayManage.school.model.OutlayManageSchool; import com.budwk.app.zhgh.outlay.outlayManage.union.model.OutlayManageUnion; import com.budwk.app.zhgh.outlay.outlayReimburse.model.OutlayReimburse; @@ -15,6 +20,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.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.util.NutMap; @@ -33,6 +39,9 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl userRoles = dao().query(Sys_user_role.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).and("roleId", "=", sysRole.getId())); + List myClubId = userRoles.stream().map(Sys_user_role::getClubId).toList(); + OutlayManageClub club = dao().fetch(OutlayManageClub.class, Cnd.where("year", "=", DateUtil.thisYear()) + .and("clubId", "in", StrUtil.isNotBlank(clubId) ? List.of(clubId) : myClubId)); + map.put("budgetMoney", ObjectUtil.isNotEmpty(club) ? club.getTotalQuota().subtract(club.getUsedQuota()) : 0); } map.put("activityList", canBudgetList); return map; } @Override - public BigDecimal getBxMoneyByActivityId(String budgetId,Boolean isSchoolBudget) { + public BigDecimal getBxMoneyByActivityId(String budgetId, Boolean isSchoolBudget) { Sql sql = Sqls.create(""" SELECT rei.money @@ -133,9 +148,9 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl budgetList = dao().query(ActivityBudget.class, @@ -257,18 +272,27 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl item.children).flat() const honor = secondList.find((o) => o.id === val) - this.selectHonor = this.honorOptions.find((o) => o.id === honor.parentId) - this.$set(this.formData, "honorTypeId", this.selectHonor.id) - this.$set(this.formData, "honorId", honor.id) + if (honor){ + this.selectHonor = this.honorOptions.find((o) => o.id === honor.parentId) + this.$set(this.formData, "honorTypeId", this.selectHonor.id) + this.$set(this.formData, "honorId", honor.id) + } + }, doSave() {}, doSubmit() { @@ -233,9 +236,8 @@ layout("/layouts/platform.html"){ openAdd() { this.stepActive = 0 this.dialogVisible = true - this.$nextTick(() => { - this.$refs.formRef.resetFields() - }) + this.formData={} + this.$refs.formRef.clearValidate() this.$axios.post("/platform/evaluate/activity/initQuotaAllocations").then((res) => { if (res.code === 0) { this.$set(this.formData, "quotaAllocations", res.data) diff --git a/src/main/resources/views/platform/zhgh/dayofficework/evaluation/apply/apply.js b/src/main/resources/views/platform/zhgh/dayofficework/evaluation/apply/apply.js index cdcf634a..d6788268 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/evaluation/apply/apply.js +++ b/src/main/resources/views/platform/zhgh/dayofficework/evaluation/apply/apply.js @@ -1,111 +1,117 @@ const apply_component = { template: /*language=HTML*/ ` - + + -