diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/birthday/controller/UserBirthdayExportController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/birthday/controller/UserBirthdayExportController.java new file mode 100644 index 0000000..9ab0e6e --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/birthday/controller/UserBirthdayExportController.java @@ -0,0 +1,90 @@ +package com.budwk.app.zhgh.staffmanage.birthday.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.staffmanage.birthday.param.UserBirthdayPageForm; +import com.budwk.app.zhgh.staffmanage.birthday.service.UserBirthdayService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +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.servlet.http.HttpServletResponse; + +/** + * 生日祝福数据导出。 + * Controller 只接收查询参数并调用 Service,名单分组、日期范围和签名表布局均由 Service 处理。 + */ +@IocBean +@At("/platform/staffManage/birthday/export") +@Ok("json:full") +@Api(tags = "生日祝福数据导出") +public class UserBirthdayExportController { + + @Inject + private UserBirthdayService userBirthdayService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/birthday/export/index.html") + @SaCheckPermission("staff.birthday.export") + public void index() { + } + + /** + * 分页查询待导出的生日人员。 + * + * @param pageForm 分页、姓名/工号、校区、组织、人员状态和生日日期条件;校区使用 cx 或 hz + * @return Result.data 为 Pagination,list 是人员数据,totalCount 是总数 + */ + @At + @ApiOperation("分页查询待导出的生日人员") + @SaCheckPermission("staff.birthday.export") + public Result pageData(UserBirthdayPageForm pageForm) { + return Result.success(userBirthdayService.pageData(pageForm)); + } + + /** + * 按当前查询条件导出生日人员列表。 + * + * @param pageForm 与页面列表一致的筛选条件 + * @param response 返回 XSSF 格式的 xlsx 文件流 + */ + @At + @Ok("void") + @ApiOperation("导出当前生日人员列表") + @SaCheckPermission("staff.birthday.export") + public void doExport(UserBirthdayPageForm pageForm, HttpServletResponse response) { + userBirthdayService.exportXlsx(pageForm, response); + } + + /** + * 按当前查询条件分别生成杭州、长兴校区生日名单 Sheet。 + * + * @param pageForm 与页面列表一致的筛选条件 + * @param response 返回 XSSF 格式的 xlsx 文件流 + */ + @At + @Ok("void") + @ApiOperation("按校区导出职工生日名单") + @SaCheckPermission("staff.birthday.export") + public void doExportCampusBirthday(UserBirthdayPageForm pageForm, HttpServletResponse response) { + userBirthdayService.exportCampusBirthdayXlsx(pageForm, response); + } + + /** + * 导出生日签名表。 + * pageForm.campusName 使用 hz 或 cx;startDate、endDate 传 yyyy-MM-dd,未传时使用默认导出月份。 + * + * @param pageForm 校区、生日日期以及其他人员筛选条件 + * @param response 返回 XSSF 格式的 xlsx 文件流 + */ + @At + @Ok("void") + @ApiOperation("导出生日签名表") + @SaCheckPermission("staff.birthday.export") + public void doExportSignature(UserBirthdayPageForm pageForm, HttpServletResponse response) { + userBirthdayService.exportSignatureXlsx(pageForm, response); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/birthday/models/UserBirthdayCampus.java b/src/main/java/com/budwk/app/zhgh/staffmanage/birthday/models/UserBirthdayCampus.java new file mode 100644 index 0000000..2b96114 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/birthday/models/UserBirthdayCampus.java @@ -0,0 +1,56 @@ +package com.budwk.app.zhgh.staffmanage.birthday.models; + +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.ColDefine; +import org.nutz.dao.entity.annotation.ColType; +import org.nutz.dao.entity.annotation.Column; +import org.nutz.dao.entity.annotation.Comment; +import org.nutz.dao.entity.annotation.Name; +import org.nutz.dao.entity.annotation.Table; +import org.nutz.dao.entity.annotation.TableMeta; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +/** + * 生日祝福人员校区标记。 + * campusId 使用 cx 表示长兴校区、hz 表示杭州校区,按工号覆盖人员单位推导出的默认校区。 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Table("user_birthday_campus") +@TableMeta("{'mysql-charset':'utf8mb4'}") +@Comment("生日祝福人员校区标记") +public class UserBirthdayCampus extends BaseModel { + + @Name + @Comment("ID") + @PrevInsert(uu32 = true) + @ColDefine(type = ColType.VARCHAR, width = 32) + private String id; + + @Column + @Comment("工号") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String loginname; + + @Column + @Comment("姓名") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String username; + + @Column + @Comment("校区编码,cx为长兴校区、hz为杭州校区") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String campusId; + + @Column + @Comment("校区名称") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String campusName; + + @Column + @Comment("备注") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String remark; +} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/birthday/export/index.html b/src/main/resources/views/platform/zhgh/staffmanage/birthday/export/index.html new file mode 100644 index 0000000..dbac7a3 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/birthday/export/index.html @@ -0,0 +1,196 @@ + +