From 9c276bcfed8d7be041fe662a1de9599a2741077d Mon Sep 17 00:00:00 2001 From: = <=> Date: Fri, 20 Mar 2026 10:58:18 +0800 Subject: [PATCH] commit --- .../service/impl/MemberManageServiceImpl.java | 64 ++++++++++--------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java index fd79908..54304af 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java @@ -37,7 +37,9 @@ import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; import com.budwk.app.zhgh.staffmanage.specialstaff.model.SpecialStaff; import com.budwk.app.zhgh.welfare.model.WelfareList; import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; import lombok.extern.slf4j.Slf4j; +import org.ddr.poi.html.HtmlRenderPolicy; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.*; import org.nutz.dao.sql.Sql; @@ -82,8 +84,6 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement @Inject private SysUserService sysUserService; @Inject - private Dao dao; - @Inject private FlowEngine flowEngine; @Inject private SysOfficeTemplateUtil sysOfficeTemplateUtil; @@ -595,7 +595,6 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement throw new RuntimeException("会员申请记录不存在"); } - // 2. 获取流程实例信息 (确保流程已归档或存在) Sql sql = Sqls.create(""" SELECT info.*, @@ -607,13 +606,13 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement info.id = @id """).setParam("id", id); sql.setCallback(Sqls.callback.map()); - dao.execute(sql); + dao().execute(sql); NutMap info = (NutMap) sql.getResult(); HashMap docData = new HashMap<>(); docData.put("unitName", member.getUnitName()); - docData.put("applyDateTime", member.getApplyDateTime() != null ? DateUtil.format(member.getApplyDateTime(), "yyyy年MM月dd日") : ""); + docData.put("time", DateUtil.format(new Date(), "yyyy年MM月dd日")); docData.put("username", member.getUsername()); docData.put("sex", member.getSex()); @@ -625,7 +624,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement docData.put("nativePlace", member.getNativePlace()); docData.put("marriage", member.getMarriage()); - docData.put("specialty", member.getSpecialty()); + docData.put("specialty", StrUtil.isNotBlank(member.getSpecialty()) ? HtmlUtil.cleanHtmlTag(member.getSpecialty()) : ""); docData.put("jobCategory", member.getJobCategory()); docData.put("idCard", member.getIdCard()); @@ -634,25 +633,25 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement docData.put("arrivalAtSchoolDate", StrUtil.isNotBlank(member.getArrivalAtSchoolDate()) ? DateUtil.parse(member.getArrivalAtSchoolDate()).toString("yyyy-MM-dd") : ""); docData.put("homeAddress", member.getHomeAddress()); - docData.put("personalData", member.getPersonalData()); - - // 处理家庭成员列表 (假设模板支持循环或需要拼接字符串,这里先拼接为字符串示例,若模板支持循环需调整模板引擎配置) -// if (member.getFamilies() != null && !member.getFamilies().isEmpty()) { -// StringBuilder familyStr = new StringBuilder(); -// for (int i = 0; i < member.getFamilies().size(); i++) { -// NutMap fam = (NutMap) member.getFamilies().get(i); -// familyStr.append((i + 1)).append(". ") -// .append("关系:").append(fam.getStr("relation")).append(", ") -// .append("姓名:").append(fam.getStr("name")).append(", ") -// .append("单位:").append(fam.getStr("unit")).append(", ") -// .append("备注:").append(fam.getStr("remark")).append("\n"); -// } -// docData.put("familiesStr", familyStr.toString()); -// } else { -// docData.put("familiesStr", "无"); -// } - + docData.put("personalData", sysOfficeTemplateUtil.convertRichTextToDocText(member.getPersonalData())); + docData.put("sign", sysOfficeTemplateUtil.createPictureRenderData(member.getSign())); + docData.put("applyDateTime", member.getApplyDateTime() != null ? DateUtil.format(member.getApplyDateTime(), "yyyy年MM月dd日") : ""); + // 处理家庭成员列表 + if (member.getFamilies() != null && !member.getFamilies().isEmpty()) { + StringBuilder familyStr = new StringBuilder(); + for (int i = 0; i < member.getFamilies().size(); i++) { + NutMap fam = NutMap.WRAP(member.getFamilies().get(i)); + familyStr.append((i + 1)).append(". ") + .append("关系:").append(StrUtil.nullToDefault(fam.getString("relation"), "无")).append(", ") + .append("姓名:").append(StrUtil.nullToDefault(fam.getString("name"), "无")).append(", ") + .append("单位:").append(StrUtil.nullToDefault(fam.getString("unit"), "无")).append(", ") + .append("备注:").append(StrUtil.nullToDefault(fam.getString("remark"), "无")).append("\n"); + } + docData.put("familiesStr", familyStr.toString()); + } else { + docData.put("familiesStr", "无"); + } List doneTaskVos = new ArrayList<>(); Long instanceId = info.getLong("instanceId"); if (instanceId != null) { @@ -675,7 +674,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); } approval.put("opinion", taskFormData != null ? taskFormData.getStr("tf_opinion") : ""); - docData.put("branchUnionApproval", approval); + docData.put("fgh", approval); }); // 提取校工会审核意见 @@ -690,17 +689,22 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); } approval.put("opinion", taskFormData != null ? taskFormData.getStr("tf_opinion") : ""); - docData.put("schoolUnionApproval", approval); + docData.put("xgh", approval); }); - String fileName = "会员入会申请表_" + member.getUsername() + "_" + - (member.getApplyDateTime() != null ? DateUtil.format(member.getApplyDateTime(), "yyyyMMdd") : "") + - ".docx"; + String fileName = "会员入会申请表_" + member.getUsername() + "_" + DateUtil.format(new Date(), "yyyyMMdd") + ".docx"; response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8)); + + HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy(); + htmlRenderPolicy.getConfig().setShowDefaultTableBorderInTableCell(true); + + Configure config = Configure.builder() + .bind("personalData", htmlRenderPolicy) + .build(); try { - XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("member_apply_form")) + XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("member_apply_form"), config) .render(docData) .write(response.getOutputStream()); } catch (IOException e) {