Merge remote-tracking branch 'origin/main'

This commit is contained in:
@jyuhsin
2025-09-19 17:18:42 +08:00
51 changed files with 3965 additions and 332 deletions
@@ -75,7 +75,12 @@ public class ActivityWorksCollectionReadController {
up.*,
co.NAME AS activityName,
su.typeName AS subjectName,
wo.worksTypeName AS worksName
wo.worksTypeName AS worksName,
(
SELECT COUNT(*)
FROM activity_works_collection_upload_like_num likeNum
WHERE likeNum.uploadId = up.id
) AS num
from
activity_works_collection_upload up
LEFT JOIN activity_works_collection co ON up.activityId = co.id
@@ -99,6 +104,7 @@ public class ActivityWorksCollectionReadController {
if(!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
cnd.and("up.unionId", "=", SecurityUtil.getUnionId());
}
cnd.desc("up.createdAt");
sql.setCondition(cnd);
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
@@ -121,7 +127,12 @@ public class ActivityWorksCollectionReadController {
co.NAME AS activityName,
su.typeName AS subjectName,
wo.worksTypeName AS worksName,
u.sex
u.sex,
(
SELECT COUNT(*)
FROM activity_works_collection_upload_like_num likeNum
WHERE likeNum.uploadId = up.id
) AS num
from
activity_works_collection_upload up
LEFT JOIN activity_works_collection co ON up.activityId = co.id
@@ -145,6 +156,7 @@ public class ActivityWorksCollectionReadController {
if(!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
cnd.and("up.unionId", "=", SecurityUtil.getUnionId());
}
cnd.desc("num");
sql.setCondition(cnd);
List<NutMap> listMap = baseService.listMap(sql);
@@ -159,7 +171,7 @@ public class ActivityWorksCollectionReadController {
exportEntities.add(new ExcelExportEntity("作品类型", "worksName", 20));
exportEntities.add(new ExcelExportEntity("作品名称", "name", 20));
exportEntities.add(new ExcelExportEntity("作品描述", "description", 20));
//exportEntities.add(new ExcelExportEntity("点赞次数", "dz_num", 20));
exportEntities.add(new ExcelExportEntity("点赞次数", "num", 20));
try {
ExportParams exportParams = new ExportParams();
@@ -1,12 +1,10 @@
package com.budwk.app.zhgh.activity.workscollection.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.date.DateUtil;
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.sys.models.Sys_user;
import com.budwk.app.sys.views.View_user;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.activity.basic.models.ActivityUserScope;
@@ -27,7 +25,6 @@ import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
/**
@@ -50,6 +47,8 @@ public class ActivityWorksCollectionUploadController {
public void index() {
}
/**
* @param pageForm 分页
* @param activityId 活动id
@@ -63,6 +62,8 @@ public class ActivityWorksCollectionUploadController {
select
up.*,
co.NAME AS activityName,
co.startDateTime AS activityStartDateTime,
co.endDateTime AS activityEndDateTime,
su.typeName AS subjectName,
wo.worksTypeName AS worksName
from
@@ -78,6 +79,7 @@ public class ActivityWorksCollectionUploadController {
cnd.andEX("up.activityId", "=", activityId);
cnd.andEX("up.subjectId", "=", subjectId);
cnd.andEX("up.worksId", "=", worksId);
cnd.desc("up.createdAt");
sql.setCondition(cnd);
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
@@ -91,8 +93,12 @@ public class ActivityWorksCollectionUploadController {
@At
@SaCheckPermission("activity.workscollection.upload")
public Result insert(@Param("data") @Valid Activity_works_collection_upload upload) {
String activityId = upload.getActivityId();
Activity_works_collection activity = dao.fetch(Activity_works_collection.class, activityId);
if (activity.getEndDateTime().getTime() < System.currentTimeMillis()){
return Result.error("活动已结束!");
}
if (activity.getActivityGroupId() != null) {
int count = dao.count(ActivityUserScope.class, Cnd.where(ActivityUserScope::getGroupId, "=", activity.getActivityGroupId())
.and(ActivityUserScope::getUserId, "=", SecurityUtil.getUserId()));
@@ -119,6 +125,10 @@ public class ActivityWorksCollectionUploadController {
@At
@SaCheckPermission("activity.workscollection.upload")
public Result update(@Param("data") @Valid Activity_works_collection_upload upload) {
Activity_works_collection activity = dao.fetch(Activity_works_collection.class, upload.getActivityId());
if (activity.getEndDateTime().getTime() < System.currentTimeMillis()){
return Result.error("活动已结束!");
}
dao.updateIgnoreNull(upload);
return Result.success();
}
@@ -133,6 +143,11 @@ public class ActivityWorksCollectionUploadController {
@At
@SaCheckPermission("activity.workscollection.upload")
public Result delete(@Valid String id) {
Activity_works_collection_upload upload = dao.fetch(Activity_works_collection_upload.class, id);
Activity_works_collection activity = dao.fetch(Activity_works_collection.class, upload.getActivityId());
if (activity.getEndDateTime().getTime() < System.currentTimeMillis()){
return Result.error("活动已结束!");
}
dao.delete(Activity_works_collection_upload.class, id);
return Result.success();
}
@@ -1,42 +0,0 @@
package com.budwk.app.zhgh.activity.workscollection.controller.h5;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
/**
* 手机端作品征集
*/
@IocBean
@At("/platform/h5/activity/worksCollection")
@Ok("json:full")
public class H5ActivityWorksCollectionController {
/**
* 活动列表页面
*/
@At("/activity")
@Ok("beetl:/platform/zhghh5/activity/workscollection/activity/index.html")
@SaCheckPermission("activity.workscollection.upload")
public void activity() {
}
/**
* 上传页面
*/
@At("/upload")
@Ok("beetl:/platform/zhghh5/activity/workscollection/upload/index.html")
@SaCheckPermission("activity.workscollection.upload")
public void upload() {
}
/**
* 我的上传页面
*/
@At("/upload/mine")
@Ok("beetl:/platform/zhghh5/activity/workscollection/upload/mine.html")
@SaCheckPermission("activity.workscollection.upload")
public void uploadMine() {
}
}
@@ -0,0 +1,36 @@
package com.budwk.app.zhgh.activity.workscollection.controller.h5;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.budwk.app.base.service.BaseService;
import io.swagger.annotations.ApiOperation;
import org.nutz.dao.Dao;
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;
/**
* @author zhf
* @date 2025/9/16 08:54
* @description 我的作品
*/
@IocBean
@At("/platform/activity/worksCollection/mine/h5")
@Ok("json:full")
@ApiOperation("手机端我的作品")
public class H5ActivityWorksMineCollectionController {
@Inject
private BaseService baseService;
@Inject
private Dao dao;
@At("")
@Ok("beetl:/platform/zhghh5/activity/workscollection/mine/index.html")
@SaCheckPermission("h5.activity.workscollection.mine")
public void index() {
}
}
@@ -0,0 +1,158 @@
package com.budwk.app.zhgh.activity.workscollection.controller.h5;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.date.DateUtil;
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.sys.views.View_user;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.activity.workscollection.models.Activity_works_collection;
import com.budwk.app.zhgh.activity.workscollection.models.Activity_works_collection_upload;
import com.budwk.app.zhgh.activity.workscollection.models.Activity_works_collection_upload_like_num;
import com.budwk.app.zhgh.activity.workscollection.param.ActivityWorksCollectionReadPageParam;
import io.swagger.annotations.ApiOperation;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import javax.validation.Valid;
/**
* @author zhf
* @date 2025/9/18 10:00
* @description
*/
@IocBean
@At("/platform/activity/worksCollection/read/h5")
@Ok("json:full")
@ApiOperation("手机端作品阅览")
public class H5ActivityWorksReadCollectionController {
@Inject
private BaseService baseService;
@Inject
private Dao dao;
@At("")
@Ok("beetl:/platform/zhghh5/activity/workscollection/read/index.html")
@SaCheckPermission("h5.activity.workscollection.read")
public void index() {
}
@At
@SaCheckPermission("h5.activity.workscollection.read")
public Result pageData(@Valid ActivityWorksCollectionReadPageParam pageForm) {
Sql sql = Sqls.create("""
select
up.*,
co.NAME AS activityName,
co.nbCount,
su.typeName AS subjectName,
wo.worksTypeName AS worksName,
(
SELECT COUNT(*)
FROM activity_works_collection_upload_like_num likeNum
WHERE likeNum.uploadId = up.id
) AS num,
EXISTS(
SELECT 1
FROM activity_works_collection_upload_like_num thisLikeNum
WHERE thisLikeNum.uploadId = up.id
AND thisLikeNum.userId = @userId
) AS isThisLike
from
activity_works_collection_upload up
LEFT JOIN activity_works_collection co ON up.activityId = co.id
LEFT JOIN activity_works_subjecttype su ON up.subjectId = su.id
LEFT JOIN activity_works_workstype wo ON up.worksId = wo.id
$condition
""").setParam("userId", SecurityUtil.getUserId());
Cnd cnd = Cnd.NEW();
cnd.andEX("YEAR(co.startDateTime)", "=", pageForm.getYear());
cnd.andEX("up.activityId", "=", pageForm.getActivityId());
cnd.andEX("up.subjectId", "=", pageForm.getSubjectId());
cnd.andEX("up.worksId", "=", pageForm.getWorksId());
cnd.andEX("unionId", "=", pageForm.getUnionId());
cnd.andEX("unitId", "=", pageForm.getUnitId());
if (StrUtil.isAllNotBlank(pageForm.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("userName", pageForm.getSearchKeyword());
seg.orLike("loginName", pageForm.getSearchKeyword());
cnd.and(seg);
}
if (pageForm.getPageOrderName().equals("num")) {
cnd.desc(pageForm.getPageOrderName()).asc("createdAt");
} else {
cnd.asc(pageForm.getPageOrderName());
}
sql.setCondition(cnd);
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
}
@At
@ApiOperation("点赞")
@SLog(tag = "作品点赞", msg = "作品Id:${uploadId}")
@SaCheckPermission("h5.activity.workscollection.read")
public Result doLike(@Valid String uploadId) {
Activity_works_collection_upload upload = dao.fetch(Activity_works_collection_upload.class, uploadId);
Activity_works_collection activity = dao.fetch(Activity_works_collection.class, upload.getActivityId());
if (activity.getNbStartDateTime().getTime() > System.currentTimeMillis()) {
return Result.error("点赞未开始!开始时间:" + DateUtil.format(activity.getNbStartDateTime(), "yyyy-MM-dd HH:mm:ss"));
}
if (activity.getNbEndDateTime().getTime() < System.currentTimeMillis()) {
return Result.error("点赞已结束!结束时间:" + DateUtil.format(activity.getNbEndDateTime(), "yyyy-MM-dd HH:mm:ss"));
}
int count = dao.count(Activity_works_collection_upload_like_num.class,
Cnd.where(Activity_works_collection_upload_like_num::getActivityId, "=", activity.getId())
.and("DATE(FROM_UNIXTIME(createdAt / 1000))", "=", DateUtil.today())
.and(Activity_works_collection_upload_like_num::getUserId, "=", SecurityUtil.getUserId()));
if (count >= activity.getNbCount()) {
return Result.error("当前活动每天只能点赞" + activity.getNbCount() + "次!");
}
View_user vwUser = dao.fetch(View_user.class, Cnd.where(View_user::getId, "=", SecurityUtil.getUserId()));
Activity_works_collection_upload_like_num likeNum = new Activity_works_collection_upload_like_num();
likeNum.setUploadId(uploadId);
likeNum.setActivityId(activity.getId());
likeNum.setUserId(SecurityUtil.getUserId());
likeNum.setUserName(SecurityUtil.getUserUsername());
likeNum.setLoginName(SecurityUtil.getUserLoginname());
likeNum.setUnitId(SecurityUtil.getUnitId());
likeNum.setUnitName(vwUser.getUnitName());
likeNum.setUnionId(SecurityUtil.getUnionId());
likeNum.setUnionName(vwUser.getUnionName());
dao.insert(likeNum);
return Result.success();
}
@At
@ApiOperation("取消点赞")
@SaCheckPermission("h5.activity.workscollection.read")
public Result doDeleteLike(@Valid String uploadId) {
Activity_works_collection_upload upload = dao.fetch(Activity_works_collection_upload.class, uploadId);
Activity_works_collection activity = dao.fetch(Activity_works_collection.class, upload.getActivityId());
if (activity.getNbStartDateTime().getTime() > System.currentTimeMillis()) {
return Result.error("点赞未开始!开始时间:" + DateUtil.format(activity.getNbStartDateTime(), "yyyy-MM-dd HH:mm:ss"));
}
if (activity.getNbEndDateTime().getTime() < System.currentTimeMillis()) {
return Result.error("点赞已结束!结束时间:" + DateUtil.format(activity.getNbEndDateTime(), "yyyy-MM-dd HH:mm:ss"));
}
dao.clear(Activity_works_collection_upload_like_num.class,
Cnd.where(Activity_works_collection_upload_like_num::getUploadId, "=", uploadId)
.and(Activity_works_collection_upload_like_num::getUserId, "=", SecurityUtil.getUserId()));
return Result.success();
}
}
@@ -0,0 +1,79 @@
package com.budwk.app.zhgh.activity.workscollection.controller.h5;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
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 io.swagger.annotations.ApiOperation;
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.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;
/**
* 手机端作品征集
*/
@IocBean
@At("/platform/activity/worksCollection/upload/h5")
@Ok("json:full")
@ApiOperation("手机端作品征集")
public class H5ActivityWorksUploadCollectionController {
@Inject
private BaseService baseService;
@Inject
private Dao dao;
@At("")
@Ok("beetl:/platform/zhghh5/activity/workscollection/upload/index.html")
@SaCheckPermission("h5.activity.workscollection.upload")
public void index() {
}
@At
@ApiOperation("活动查询")
@SaCheckPermission(value = {"h5.activity.workscollection.upload"}, mode = SaMode.OR)
public Result activityPageData(PageForm pageForm,
@Param(value = "year") Integer year,
@Param(value = "activityType") Integer activityType) {
Sql sql = Sqls.create("""
SELECT
awc.*,
aus.groupName activityGroupName
FROM
`activity_works_collection` awc
LEFT JOIN activity_user_scope aus ON aus.groupId = awc.activityGroupId
AND aus.userId = @userId
""").setParam("userId", SecurityUtil.getUserId());
Cnd cnd = Cnd.NEW();
cnd.andEX("YEAR(awc.startDateTime)", "=", year);
//查询报名中
if (activityType == 2) {
cnd.and(new Static("now() > awc.startDateTime and now() < awc.endDateTime"));
}//查询已结束的
else if (activityType == 3) {
cnd.and(new Static("now() > awc.startDateTime"));
} else if (activityType == 4) {
cnd.and(new Static("now() < awc.endDateTime"));
}
cnd.and("awc.enable", "=", 1);
cnd.and("awc.type", "=", 1);
sql.setCondition(cnd);
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
}
}
@@ -0,0 +1,72 @@
package com.budwk.app.zhgh.activity.workscollection.models;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
/**
* @author zhf
* @date 2025/9/18 10:46
* @description 作品点赞数量
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Table("activity_works_collection_upload_like_num")
@TableMeta("{'mysql-charset':'utf8mb4'}")
@Comment("作品点赞数量")
public class Activity_works_collection_upload_like_num extends BaseModel {
@Name
@Comment("ID")
@PrevInsert(uu32 = true)
@ColDefine(type = ColType.VARCHAR, width = 32)
private String id;
@Column
@Comment("活动Id")
@ColDefine(type = ColType.VARCHAR, width = 32, notNull = true)
private String activityId;
@Column
@Comment("作品Id")
@ColDefine(type = ColType.VARCHAR, width = 32, notNull = true)
private String uploadId;
@Column
@Comment("点赞人id")
@ColDefine(type = ColType.VARCHAR, width = 32, notNull = true)
private String userId;
@Column
@Comment("点赞人姓名")
@ColDefine(type = ColType.VARCHAR, width = 100, notNull = true)
private String userName;
@Column
@Comment("点赞人工号")
@ColDefine(type = ColType.VARCHAR, width = 100, notNull = true)
private String loginName;
@Column
@Comment("点赞人单位id")
@ColDefine(type = ColType.VARCHAR, width = 200, notNull = true)
private String unitId;
@Column
@Comment("点赞人单位")
@ColDefine(type = ColType.VARCHAR, width = 200, notNull = true)
private String unitName;
@Column
@Comment("点赞人分工会id")
@ColDefine(type = ColType.VARCHAR, width = 32, notNull = true)
private String unionId;
@Column
@Comment("点赞人分工会")
@ColDefine(type = ColType.VARCHAR, width = 50, notNull = true)
private String unionName;
}
@@ -79,7 +79,7 @@ public class OutlayReimburseApplyController {
@ApiOperation("查询这个预算已经报销了的金额")
@SaCheckPermission(value = {"outlay.reimburse.apply", "h5.outlay.reimburse.apply"}, mode = SaMode.OR)
public Result getBxMoneyByBudgetId(String budgetId) {
return Result.success(outlayReimburseApplyService.getBxMoneyByActivityId(budgetId,null));
return Result.success(outlayReimburseApplyService.getBxMoneyByActivityId(budgetId));
}
@@ -24,10 +24,9 @@ public interface OutlayReimburseApplyService extends BaseService<OutlayReimburse
/**
* 查询这个预算已经报销了的金额
* @param budgetId
* @param isSchoolBudget 是否是校会预算
* @return
*/
BigDecimal getBxMoneyByActivityId(String budgetId,Boolean isSchoolBudget);
BigDecimal getBxMoneyByActivityId(String budgetId);
/**
* 判断这个报销的记录预算是否充足
@@ -136,21 +136,19 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
}
@Override
public BigDecimal getBxMoneyByActivityId(String budgetId, Boolean isSchoolBudget) {
public BigDecimal getBxMoneyByActivityId(String budgetId) {
Sql sql = Sqls.create("""
SELECT
rei.money
FROM
`outlay_reimburse` rei
LEFT JOIN wf_process_instance ins ON ins.businessNo = rei.id
WHERE
rei.budgetId = @budgetId
AND ins.state = 20
$condition
""").setParam("budgetId", budgetId);
Cnd cnd = Cnd.NEW();
if (isSchoolBudget != null) {
cnd.and("isSchoolBudget", "=", isSchoolBudget);
}
cnd.and("rei.budgetId", "=", budgetId);
cnd.and("ins.state", "=", 20);
sql.setCondition(cnd);
List<NutMap> reiList = listMap(sql);
@@ -174,7 +172,7 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
if (budget.getIsRepeatReimburse()) {
//1.查询已经报销了的总金额
if (budget.getIsSchoolBudget()) {
BigDecimal bXMoney = getBxMoneyByActivityId(budgetId, budget.getIsSchoolBudget());
BigDecimal bXMoney = getBxMoneyByActivityId(budgetId);
//如果是分工会进来并且报销的活动是校会预算
// 1. 计算本次加上之前的报销总金额
BigDecimal totalReimbursement = bXMoney.add(moneyBig);
@@ -185,7 +183,7 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
return Result.success();
}
} else {
BigDecimal bXMoney = getBxMoneyByActivityId(budgetId, budget.getIsSchoolBudget());
BigDecimal bXMoney = getBxMoneyByActivityId(budgetId);
//如果是自己的项目就能超20%
//1.算出现在还能报销多少钱
BigDecimal twentyPercent = budget.getTotalBudgetMoney().multiply(new BigDecimal("20")).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
@@ -218,7 +216,7 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
//如果报销的项目是可以重复报销的
if (budget.getIsRepeatReimburse()) {
//这个预算已经报销了多少钱
BigDecimal totalMoney = getBxMoneyByActivityId(budgetId, null);
BigDecimal totalMoney = getBxMoneyByActivityId(budgetId );
//查出这个活动有没有跟其他预算关联,如果跟其他预算关联了,代表当前这条预算是分工会也能报校工会也能报,
// schoolBudgetId字段不为空就代表这条预算是使用的校工会的金额
List<ActivityBudget> budgetList = dao().query(ActivityBudget.class,
@@ -6,6 +6,7 @@ import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.lang.Dict;
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.flow.constant.FlowConst;
@@ -16,18 +17,24 @@ 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.staffbenefit.dsznfmtx.models.Dsznfmtx;
import com.budwk.app.zhgh.staffbenefit.dsznfmtx.service.DsznfmtxService;
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.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.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
@@ -49,6 +56,8 @@ public class DsznfmtxApplyController {
@Inject
private BaseService baseService;
@Inject
private DsznfmtxService dsznfmtxService;
@Inject
private FlowEngine flowEngine;
@Inject
private FlowCommonService flowCommonService;
@@ -111,6 +120,53 @@ public class DsznfmtxApplyController {
return Result.success();
}
@At
@Ok("json")
@ApiOperation("是否为退休、离休、离退休人员")
@SaCheckPermission(value = {"dsznfmtx.apply", "h5.dsznfmtx.apply"}, mode = SaMode.OR)
public Object checkRetirementStatus(HttpServletRequest req) {
Sql sql = Sqls.create("""
SELECT
info.id,
info.userState
FROM
sys_user info
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and("info.id", "=", SecurityUtil.getUserId());
sql.setCondition(cnd);
List<NutMap> map = dsznfmtxService.listMap(sql);
if (!map.isEmpty()) {
NutMap user = map.get(0);
String userState = user.getString("userState");
// 检查用户状态是否为退休相关状态
if ("退休".equals(userState) || "离休".equals(userState) || "离退休".equals(userState)) {
return Result.success(true);
}
}
return Result.success(false);
}
@At
@Ok("json")
@ApiOperation("是否已经申请过")
@SaCheckPermission(value = {"dsznfmtx.apply", "h5.dsznfmtx.apply"}, mode = SaMode.OR)
public Object checkUserApplied(HttpServletRequest req) {
try {
// 查询该用户是否已有申请记录
long count = dao.count(Dsznfmtx.class, Cnd.where("userId", "=", SecurityUtil.getUserId()));
// 返回true表示已申请,false表示未申请
return Result.success(count > 0);
} catch (Exception e) {
log.error("检查用户申请状态失败", e);
return Result.error("检查用户申请状态失败");
}
}
@At
@SaCheckLogin
public Result findOne(String id) {
@@ -146,5 +146,6 @@ public class Dsznfmtx extends BaseModel implements Serializable {
@Comment("办证机关")
private String office;
}
@@ -126,7 +126,7 @@ public class MaternityLeaveCollectController {
@At
@ApiOperation("删除")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission(value = {"maternityLeave.mine", "h5.maternityLeave.mine"}, mode = SaMode.OR)
@SaCheckPermission(value = {"maternityLeave.collect", "h5.maternityLeave.collect"}, mode = SaMode.OR)
@SLog( tag = "删除工会报销", msg = "删除工会报销")
public Result delete(@Param("id") String id) {
maternityLeaveService.delete(id);
@@ -53,7 +53,7 @@ public class MaternityLeaveSchoolAuditController {
@At
@ApiOperation("分页查询")
@SaCheckPermission(value = {"maternityLeave.unionAudit", "h5.maternityLeave.unionAudit"}, mode = SaMode.OR)
@SaCheckPermission(value = {"maternityLeave.schoolAudit", "h5.maternityLeave.schoolAudit"}, mode = SaMode.OR)
public Result pageData(PageForm pageForm,
boolean approval,
Integer year,