This commit is contained in:
2025-12-17 15:02:14 +08:00
parent 74970eacb5
commit debd178bae
14 changed files with 765 additions and 308 deletions
@@ -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();
@@ -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()) {
@@ -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;
}
@@ -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<NutMap> 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();
}
}
@@ -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);
@@ -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<ActivityBudget> 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;
}