This commit is contained in:
=
2026-03-20 10:58:18 +08:00
parent bae4b81edf
commit 9c276bcfed
@@ -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<Sys_user> 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<Sys_user> implement
throw new RuntimeException("会员申请记录不存在");
}
// 2. 获取流程实例信息 (确保流程已归档或存在)
Sql sql = Sqls.create("""
SELECT
info.*,
@@ -607,13 +606,13 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
info.id = @id
""").setParam("id", id);
sql.setCallback(Sqls.callback.map());
dao.execute(sql);
dao().execute(sql);
NutMap info = (NutMap) sql.getResult();
HashMap<String, Object> 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<Sys_user> 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<Sys_user> 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<ProcessTaskVO> doneTaskVos = new ArrayList<>();
Long instanceId = info.getLong("instanceId");
if (instanceId != null) {
@@ -675,7 +674,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> 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<Sys_user> 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) {