diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementApplyController.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementApplyController.java index 8413a58..f337320 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementApplyController.java @@ -143,6 +143,7 @@ public class ActivityReimbursementApplyController { args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode()); args.set(FlowConst.FORM_DATA, activityReimbursementInfo); args.set("outlayManageSource", activityReimbursementInfo.getOutlayManageSource()); + args.set("actualMoney", activityReimbursementInfo.getActualMoney()); ProcessInstance instance = flowEngine.startProcessInstanceByKey("HDBX", activityReimbursementInfo.getId(), SecurityUtil.getUserId(), args); // 自动完成第一个申请任务 diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementDeputySchoolUnionController.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementDeputySchoolUnionController.java new file mode 100644 index 0000000..01eab68 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementDeputySchoolUnionController.java @@ -0,0 +1,123 @@ +package com.budwk.app.zhgh.activity.declarereimbursement.reimbursement.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.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.activity.declarereimbursement.reimbursement.service.ActivityReimbursementService; +import com.budwk.app.zhgh.activity.declarereimbursement.vo.CommonPageParam; +import io.swagger.annotations.ApiOperation; +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/12/9 15:06 + * @description 校工会副主席审核 + */ +@IocBean +@Ok("json") +@ApiOperation("活动报销,校工会副主席审核") +@At("/platform/activityReimbursement/deputySchoolUnion") +public class ActivityReimbursementDeputySchoolUnionController { + + + @Inject + private ActivityReimbursementService activityReimbursementService; + + @At("") + @SaCheckPermission("activityReimbursement.deputySchoolUnion") + @Ok("beetl:/platform/zhgh/activity/declarereimbursement/reimbursement/deputySchoolUnion/index.html") + public void index() { + } + + @At + @ApiOperation("活动报销,校工会副主席审核") + @SaCheckPermission("activityReimbursement.deputySchoolUnion") + public Result pageData(CommonPageParam pageParam) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.userName, + info.mobile, + info.loginName, + info.applyTime, + info.activityName, + info.activityAddress, + info.planStartTime, + info.planEndTime, + info.declareUnitName, + info.activityType, + info.activityContent, + info.activityNumber, + info.activityReimbursementMode, + info.outlayManageSource, + info.deductionBudgetId, + info.actualMoney, + outlay.budgetReimburseType, + 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 + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN activity_reimbursement_info info ON info.id = ins.businessNo + LEFT JOIN activity_budget outlay on info.deductionBudgetId=outlay.id + 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(); + pageParam.buildSearch(cnd, "info."); + + cnd.and("t.taskName", "=", "f9b8379f-f348-4985-ba58-b6ba28deb9af"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); + cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType()); + cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource()); + cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode()); + + if (pageParam.getAudit()) { + 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.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) { + cnd.desc("info.applyTime"); + } else { + cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy())); + } + cnd.groupBy("t.id"); + sql.setCondition(cnd); + Pagination pagination = activityReimbursementService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql); + return Result.success().addData(pagination); + } + + + +} diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementSchoolFinanceController.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementSchoolFinanceController.java new file mode 100644 index 0000000..a9c5bc9 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementSchoolFinanceController.java @@ -0,0 +1,121 @@ +package com.budwk.app.zhgh.activity.declarereimbursement.reimbursement.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.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.activity.declarereimbursement.reimbursement.service.ActivityReimbursementService; +import com.budwk.app.zhgh.activity.declarereimbursement.vo.CommonPageParam; +import io.swagger.annotations.ApiOperation; +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/12/9 14:27 + * @description 校工会财务 + */ +@IocBean +@Ok("json") +@ApiOperation("活动报销,校工会财务审核") +@At("/platform/activityReimbursement/schoolFinance") +public class ActivityReimbursementSchoolFinanceController { + + + @Inject + private ActivityReimbursementService activityReimbursementService; + + @At("") + @SaCheckPermission("activityReimbursement.schoolFinance") + @Ok("beetl:/platform/zhgh/activity/declarereimbursement/reimbursement/schoolFinance/index.html") + public void index() { + } + + @At + @ApiOperation("活动报销,校工会财务审核") + @SaCheckPermission("activityReimbursement.schoolFinance") + public Result pageData(CommonPageParam pageParam) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.userName, + info.mobile, + info.loginName, + info.applyTime, + info.activityName, + info.activityAddress, + info.planStartTime, + info.planEndTime, + info.declareUnitName, + info.activityType, + info.activityContent, + info.activityNumber, + info.activityReimbursementMode, + info.outlayManageSource, + info.deductionBudgetId, + info.actualMoney, + outlay.budgetReimburseType, + 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 + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN activity_reimbursement_info info ON info.id = ins.businessNo + LEFT JOIN activity_budget outlay on info.deductionBudgetId=outlay.id + 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(); + pageParam.buildSearch(cnd, "info."); + + cnd.and("t.taskName", "=", "ba496ac7-abb3-4e6d-8c8e-212863a0d6ee"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); + cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType()); + cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource()); + cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode()); + + if (pageParam.getAudit()) { + 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.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) { + cnd.desc("info.applyTime"); + } else { + cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy())); + } + cnd.groupBy("t.id"); + sql.setCondition(cnd); + Pagination pagination = activityReimbursementService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql); + return Result.success().addData(pagination); + } + +} diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/service/impl/ActivityReimbursementSchoolUnionServiceImpl.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/service/impl/ActivityReimbursementSchoolUnionServiceImpl.java index 5f3c703..cff9723 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/service/impl/ActivityReimbursementSchoolUnionServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/service/impl/ActivityReimbursementSchoolUnionServiceImpl.java @@ -23,6 +23,8 @@ import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.json.Json; +import java.util.Objects; + /** * @author zhf * @date 2025/12/4 18:06 @@ -55,7 +57,9 @@ public class ActivityReimbursementSchoolUnionServiceImpl extends BaseServiceImpl detail.setActivityTime(String.valueOf(info.getStartTime())); // 更新校工会经费表 if (info.getOutlayManageSource().equals("ACTIVITY_BUDGET_TYPE_ONE")) { - detail.setActivityTime(String.valueOf(info.getApplyTime())); + if (Objects.equals(info.getActivityReimbursementMode(),"daily")){ + detail.setActivityTime(String.valueOf(info.getApplyTime())); + } OutlayManageSchool school = dao().fetch(OutlayManageSchool.class, Cnd.where("year", "=", DateUtil.thisYear())); if (ObjectUtil.isEmpty(school)) { throw new BaseException("该年份没有设置金额!"); @@ -70,6 +74,9 @@ public class ActivityReimbursementSchoolUnionServiceImpl extends BaseServiceImpl detail.setOutlayManageId(school.getId()); dao().insert(detail); } else if (info.getOutlayManageSource().equals("ACTIVITY_BUDGET_TYPE_TWO")) { + if (Objects.equals(info.getActivityReimbursementMode(),"daily")){ + detail.setActivityTime(String.valueOf(info.getApplyTime())); + } ActivityBudget budget = dao().fetch(ActivityBudget.class, Cnd.where("id", "=", info.getDeductionBudgetId())); if (ObjectUtil.isNotEmpty(budget)&&budget.getIsSchoolBudget()){ @@ -88,6 +95,9 @@ public class ActivityReimbursementSchoolUnionServiceImpl extends BaseServiceImpl detail.setOutlayManageId(school.getId()); dao().insert(detail); }else{ + if (Objects.equals(info.getActivityReimbursementMode(),"daily")){ + detail.setActivityTime(String.valueOf(info.getApplyTime())); + } // 更新分工会活动经费表 OutlayManageUnion manageUnion = dao().fetch(OutlayManageUnion.class, Cnd.where("year", "=", DateUtil.thisYear()) @@ -106,6 +116,9 @@ public class ActivityReimbursementSchoolUnionServiceImpl extends BaseServiceImpl dao().insert(detail); } }else if (info.getOutlayManageSource().equals("ACTIVITY_BUDGET_TYPE_THREE")){ + if (Objects.equals(info.getActivityReimbursementMode(),"daily")){ + detail.setActivityTime(String.valueOf(info.getApplyTime())); + } // 更新分工会活动经费表 OutlayManageClub manageClub = dao().fetch(OutlayManageClub.class, Cnd.where("year", "=", DateUtil.thisYear()) diff --git a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/clubprincipal/index.html b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/clubprincipal/index.html index be6c201..21f0e93 100644 --- a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/clubprincipal/index.html +++ b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/clubprincipal/index.html @@ -2,231 +2,243 @@ layout("/layouts/platform.html"){ #-->
- - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - 已审核 - 未审核 - - + + + + 已审核 + 未审核 + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 已审核 + 未审核 + + + + + + + + + + + + + + + + + + + + + + + +
+ + + diff --git a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolFinance/index.html b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolFinance/index.html new file mode 100644 index 0000000..41587ca --- /dev/null +++ b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolFinance/index.html @@ -0,0 +1,267 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 已审核 + 未审核 + + + + + + + + + + + + + + + + + + + + + + + +
+ + + diff --git a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolprincipal/index.html b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolprincipal/index.html index 521e68a..41587ca 100644 --- a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolprincipal/index.html +++ b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolprincipal/index.html @@ -2,253 +2,265 @@ layout("/layouts/platform.html"){ #-->
- - - - - - - + + + + + + + - - - + + + - - - - - - - - - - - - + + + + + + + + + + + + - + + - - - - 已审核 - 未审核 - - + + + + 已审核 + 未审核 + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + +
- - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + + - - - - 已审核 - 未审核 - - + + + + 已审核 + 未审核 + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + +