diff --git a/src/main/java/com/budwk/app/base/model/Audit.java b/src/main/java/com/budwk/app/base/model/Audit.java index 95beead..6171ae6 100644 --- a/src/main/java/com/budwk/app/base/model/Audit.java +++ b/src/main/java/com/budwk/app/base/model/Audit.java @@ -1,5 +1,6 @@ package com.budwk.app.base.model; +import cn.hutool.json.JSONObject; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import lombok.Data; import lombok.EqualsAndHashCode; @@ -64,6 +65,16 @@ public class Audit extends BaseModel { @ColDefine(type = ColType.INT) private Integer auditType; + @Column + @Comment("扩展字段") + @ColDefine(type = ColType.MYSQL_JSON) + private JSONObject ext; + + @Column + @Comment("父级ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String parentId; + public Date nowDate() { return new Date(); diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareClubPrincipalController.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareClubPrincipalController.java index 07ddd47..91c3772 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareClubPrincipalController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareClubPrincipalController.java @@ -98,6 +98,7 @@ public class ActivityDeclareClubPrincipalController { pageParam.buildSearch(cnd, "info."); cnd.and("t.taskName", "=", "06d5979b-b52f-4df1-8974-087568322cd6"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); if (pageParam.getAudit()) { diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/models/ActivityDeclareInfo.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/models/ActivityDeclareInfo.java index 4b789a4..ff7fe64 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/models/ActivityDeclareInfo.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/models/ActivityDeclareInfo.java @@ -131,4 +131,9 @@ public class ActivityDeclareInfo extends BaseModel { @Comment("预算总金额") @ColDefine(customType = "decimal(10,2)") private BigDecimal budgetMoney; + + @Column + @Comment("扣款预算") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String deductionBudgetId; } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetAllocationEditController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetAllocationEditController.java new file mode 100644 index 0000000..5e32dcc --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/conteoller/ActivityBudgetAllocationEditController.java @@ -0,0 +1,91 @@ +package com.budwk.app.zhgh.dayofficework.outlay.activityBudget.conteoller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.model.Audit; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.result.Result; +import com.budwk.app.sys.models.Sys_file; +import com.budwk.app.zhgh.dayofficework.outlay.activityBudget.models.ActivityBudget; +import com.budwk.app.zhgh.dayofficework.outlay.activityBudget.service.ActivityBudgetApplyStatisticsService; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; +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; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @author zhf + * @date 2025/5/26 14:25 + * @description 预算指定某个人修改 + */ + +@IocBean +@Ok("json:full") +@Slf4j +@Api(tags = "管理员修改预算") +@At("/platform/activity/budget/allocationEdit") +public class ActivityBudgetAllocationEditController { + + @Inject + private ActivityBudgetApplyStatisticsService applyStatisticsService; + + @At("") + @Ok("beetl:/platform/zhgh/dayofficework/outlay/activityBudget/allocationEdit/index.html") + @SaCheckPermission("activity.budget.allocationEdit") + public void index() { + } + + @At + @SaCheckPermission("activity.budget.allocationEdit") + public Result pageData(PageForm pageForm, Integer year, String unionId, String clubId, String budgetTypeCode, String activityMatter, String budgetReimburseType) { + Sql sql = applyStatisticsService.getsql(year, unionId, clubId, budgetTypeCode, activityMatter, budgetReimburseType); + return Result.success(applyStatisticsService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql)); + } + + @At + @SaCheckPermission("activity.budget.allocationEdit") + public Result getApplyMoney(Integer year, String unionId, String clubId, String budgetTypeCode, String activityMatter, String budgetReimburseType) { + Sql sql = applyStatisticsService.getsql(year, unionId, clubId, budgetTypeCode, activityMatter, budgetReimburseType); + List list = applyStatisticsService.listMap(sql); + list = list.stream().filter(v -> !v.getBoolean("isSchoolBudget")).toList(); + double declareTotalBudgetMoney = list.stream().mapToDouble(map -> map.getDouble("declareTotalBudgetMoney")).sum(); + double totalBudgetMoney = list.stream().mapToDouble(map -> map.getDouble("totalBudgetMoney")).sum(); + return Result.success(Map.of("declareTotalBudgetMoney", declareTotalBudgetMoney, "totalBudgetMoney", totalBudgetMoney)); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SLog(tag = "管理员修改预算", msg = "预算名称:${args[0].activityMatter},预算金额:${args[1]}") + @SaCheckPermission("activity.budget.allocationEdit") + public Result doSubmit(String id, String totalBudgetMoney, String activityMatter, Sys_file[] files, Audit audit) { + ActivityBudget budget = applyStatisticsService.dao().fetch(ActivityBudget.class, id); + JSONObject jsonObject = new JSONObject(); + jsonObject.set("money", budget.getTotalBudgetMoney()); + jsonObject.set("files", files); + audit.setExt(jsonObject); + audit.setParentId(id); + applyStatisticsService.insert(audit); + + applyStatisticsService.dao().update(ActivityBudget.class, + Chain.make("totalBudgetMoney", totalBudgetMoney), + Cnd.where("id", "=", id)); + return Result.success(); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/service/ActivityBudgetApplyStatisticsService.java b/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/service/ActivityBudgetApplyStatisticsService.java index 9e95f26..2820472 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/service/ActivityBudgetApplyStatisticsService.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/service/ActivityBudgetApplyStatisticsService.java @@ -5,6 +5,8 @@ import org.nutz.dao.sql.Sql; public interface ActivityBudgetApplyStatisticsService extends BaseService { + + Sql getsql(Integer year, String unionId,String clubId, String outlayManageSource,String activityMatter,String budgetReimburseType); diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/service/impl/ActivityBudgetServiceImpl.java b/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/service/impl/ActivityBudgetServiceImpl.java index ab0efd5..58dd380 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/service/impl/ActivityBudgetServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/outlay/activityBudget/service/impl/ActivityBudgetServiceImpl.java @@ -7,6 +7,7 @@ import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.model.Audit; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.base.service.impl.BaseServiceImpl; @@ -242,6 +243,7 @@ public class ActivityBudgetServiceImpl extends BaseServiceImpl i execute(sql); NutMap activityBudget = (NutMap) sql.getResult(); activityBudget.put("budgetDetails", dao().query(ActivityBudgetDetails.class, Cnd.where("budgetId", "=", id))); + activityBudget.put("allocationEditAuditList", dao().query(Audit.class, Cnd.where("parentId", "=", id))); return activityBudget; } diff --git a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/declare/apply/index.html b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/declare/apply/index.html index 60cced4..d8412ac 100644 --- a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/declare/apply/index.html +++ b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/declare/apply/index.html @@ -2,325 +2,367 @@ layout("/layouts/platform.html"){ #-->
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - 保存 - 提交 - 提交 - - + + 保存 + 提交 + 提交 + +
+ +
+ + + + + +
+ + + diff --git a/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/apply/index.html b/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/apply/index.html index 268cf5a..27e70af 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/apply/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/apply/index.html @@ -9,11 +9,19 @@ layout("/layouts/platform.html"){ {{formData.userName}} {{formData.applyDate}} + + + + + + - - - - - + @@ -178,6 +180,8 @@ layout("/layouts/platform.html"){ clubId: [{required: true, message: '必填', trigger: ['blur', 'change']}], helpUnitName: [{required: true, message: '必填', trigger: ['blur', 'change']}], unionId: [{required: true, message: '必填', trigger: ['blur', 'change']}], + mobile: [{required: true, message: '必填', trigger: ['blur', 'change']}], + activityDate: [{required: true, message: '必填', trigger: ['blur', 'change']}], }, formData: { budgetDetails: [] @@ -270,9 +274,10 @@ layout("/layouts/platform.html"){ }) } this.budgetTypeOption = budgetTypeOption + if (this.budgetTypeOption.length === 1){ + this.$set(this.formData, "outlayManageSource", this.budgetTypeOption[0].code) + } } - - }, getSchoolBudget() { this.$axios.post("/platform/activity/budget/apply/getSchoolBudget").then((res) => { diff --git a/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/info.js b/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/info.js index e3d14a8..d715278 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/info.js +++ b/src/main/resources/views/platform/zhgh/dayofficework/outlay/activityBudget/info.js @@ -67,6 +67,35 @@ const ACTIVITY_BUDGET_INFO = { + +