This commit is contained in:
2025-11-08 15:08:45 +08:00
parent 59b6f22177
commit 572539f834
11 changed files with 1091 additions and 440 deletions
@@ -12,8 +12,6 @@ import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.base.utils.CommonDownloadUtil;
import com.budwk.app.flow.engine.FlowEngine;
import com.budwk.app.sys.models.Sys_dict;
import com.budwk.app.zhgh.dayofficework.unionReimburse.vo.UnionReimburseCollectExcelVO;
import com.budwk.app.zhgh.staffbenefit.maternityLeave.service.MaternityLeaveService;
import com.budwk.app.zhgh.staffbenefit.maternityLeave.vo.MaternityLeaveCollectExcelVO;
import io.swagger.annotations.Api;
@@ -0,0 +1,174 @@
package com.budwk.app.zhgh.staffbenefit.maternityLeave.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.date.DateUtil;
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.param.PageForm;
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.flow.service.FlowCommonService;
import com.budwk.app.sys.models.Sys_home_activity;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.activity.culture.models.ActivityTissue;
import com.budwk.app.zhgh.staffbenefit.maternityLeave.models.MaternityLeave;
import com.budwk.app.zhgh.staffbenefit.maternityLeave.service.MaternityLeaveService;
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.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.json.Json;
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 java.util.Date;
import java.util.List;
/**
* @author zhf
* @date 2025/11/8 10:21
* @description 计生办审批
*/
@IocBean
@At("/platform/maternityLeave/familyPlanningOffice")
@Api("计生办审批")
@Ok("json:full")
@Slf4j
public class MaternityLeaveFamilyPlanningOfficeAuditController {
@Inject
private MaternityLeaveService maternityLeaveService;
@Inject
private FlowCommonService flowCommonService;
@At("/index")
@Ok("beetl:/platform/zhgh/staffbenefit/maternityLeave/familyPlanningOffice/index.html")
@SaCheckPermission("maternityLeave.familyPlanningOffice")
public void index() {
}
@At("/h5")
@Ok("beetl:/platform/zhghh5/staffbenefit/maternityLeave/familyPlanningOffice/index.html")
@SaCheckPermission("h5.maternityLeave.familyPlanningOffice")
public void h5Index() {
}
@At
@ApiOperation("分页查询")
@SaCheckPermission(value = {"maternityLeave.familyPlanningOffice", "h5.maternityLeave.familyPlanningOffice"}, mode = SaMode.OR)
public Result pageData(PageForm pageForm,
boolean approval,
Integer year,
String unionId,
String unitId,
String searchKeyword,
String sex) {
Sql sql = Sqls.create("""
SELECT
info.*,
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 maternity_leave 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", "=", "d3b59e32-2f30-499b-b015-c485b330ddcb");
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.andEX("year(info.applyTime)", "=", year);
// 工会、单位名称查询条件
cnd.andEX("info.unionId", "=", unionId);
cnd.andEX("info.unitId", "=", unitId);
// 性别查询条件
cnd.andEX("info.sex", "=", sex);
// 姓名和工号查询条件
if (StrUtil.isNotBlank(searchKeyword)) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("info.userName", "%" + searchKeyword + "%");
seg.orLike("info.loginName", "%" + searchKeyword + "%");
cnd.and(seg);
}
if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
cnd.desc("info.applyTime");
} else {
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
cnd.groupBy("t.id");
cnd.desc("t.createdAt");
sql.setCondition(cnd);
Pagination<NutMap> pagination = maternityLeaveService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
}
@At
@SLog(tag = "生育休假", msg = "计生办审核了一条记录")
@ApiOperation("计生办测算天数")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission(value = {"maternityLeave.familyPlanningOffice", "h5.maternityLeave.familyPlanningOffice"}, mode = SaMode.OR)
public Result doReview(@Param("data") String param, String id) {
Dict args = Json.fromJson(Dict.class, param);
MaternityLeave maternityLeave = maternityLeaveService.dao().fetch(MaternityLeave.class, id);
maternityLeave.setStartTime(DateUtil.parse(args.getStr("startTime")));
maternityLeave.setEndTime(DateUtil.parse(args.getStr("endTime")));
maternityLeave.setWithLeave(args.getStr("withLeave"));
maternityLeave.setWinterLeave(args.getStr("winterLeave"));
maternityLeave.setSummerLeave(args.getStr("summerLeave"));
maternityLeave.setParentalLeave(args.getStr("parentalLeave"));
maternityLeave.setMaternityLeave(args.getStr("maternityLeave"));
maternityLeave.setExtendLeave(args.getStr("extendLeave"));
maternityLeave.setBirthsLeave(args.getStr("birthsLeave"));
maternityLeave.setDifficultLeave(args.getStr("difficultLeave"));
maternityLeave.setLeaveDays(args.getStr("leaveDays"));
maternityLeaveService.update(maternityLeave);
flowCommonService.executeTask(args);
return Result.success();
}
}
@@ -5,7 +5,6 @@ import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
@@ -17,11 +16,8 @@ import com.budwk.app.flow.entity.ProcessTask;
import com.budwk.app.flow.vo.ProcessTaskVO;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.web.commons.base.Globals;
import com.budwk.app.zhgh.activity.declarereimbursement.vo.ActivityBudgetVO;
import com.budwk.app.zhgh.staffbenefit.maternityLeave.service.MaternityLeaveService;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -45,8 +41,6 @@ import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import static cn.dev33.satoken.SaManager.config;
/**
* @author : hongqiwei
* @description :
@@ -1,6 +1,5 @@
package com.budwk.app.zhgh.staffbenefit.maternityLeave.models;
import com.aspose.slides.internal.og.all;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -174,6 +173,21 @@ public class MaternityLeave extends BaseModel implements Serializable {
@Comment("填写时间")
private Date applyTime;
@Column
@ColDefine(type = ColType.BOOLEAN)
@Comment("是否难产")
private Boolean isDystocia;
@Column
@ColDefine(type = ColType.BOOLEAN)
@Comment("是否三胎")
private Boolean isThreeChildren;
@Column
@ColDefine(type = ColType.BOOLEAN)
@Comment("是否多胞胎")
private Boolean isMultipleBirths;
}