commit
This commit is contained in:
+34
-30
@@ -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.staffmanage.specialstaff.model.SpecialStaff;
|
||||||
import com.budwk.app.zhgh.welfare.model.WelfareList;
|
import com.budwk.app.zhgh.welfare.model.WelfareList;
|
||||||
import com.deepoove.poi.XWPFTemplate;
|
import com.deepoove.poi.XWPFTemplate;
|
||||||
|
import com.deepoove.poi.config.Configure;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.ddr.poi.html.HtmlRenderPolicy;
|
||||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
import org.nutz.dao.*;
|
import org.nutz.dao.*;
|
||||||
import org.nutz.dao.sql.Sql;
|
import org.nutz.dao.sql.Sql;
|
||||||
@@ -82,8 +84,6 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
|
|||||||
@Inject
|
@Inject
|
||||||
private SysUserService sysUserService;
|
private SysUserService sysUserService;
|
||||||
@Inject
|
@Inject
|
||||||
private Dao dao;
|
|
||||||
@Inject
|
|
||||||
private FlowEngine flowEngine;
|
private FlowEngine flowEngine;
|
||||||
@Inject
|
@Inject
|
||||||
private SysOfficeTemplateUtil sysOfficeTemplateUtil;
|
private SysOfficeTemplateUtil sysOfficeTemplateUtil;
|
||||||
@@ -595,7 +595,6 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
|
|||||||
throw new RuntimeException("会员申请记录不存在");
|
throw new RuntimeException("会员申请记录不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 获取流程实例信息 (确保流程已归档或存在)
|
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
info.*,
|
info.*,
|
||||||
@@ -607,13 +606,13 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
|
|||||||
info.id = @id
|
info.id = @id
|
||||||
""").setParam("id", id);
|
""").setParam("id", id);
|
||||||
sql.setCallback(Sqls.callback.map());
|
sql.setCallback(Sqls.callback.map());
|
||||||
dao.execute(sql);
|
dao().execute(sql);
|
||||||
NutMap info = (NutMap) sql.getResult();
|
NutMap info = (NutMap) sql.getResult();
|
||||||
|
|
||||||
HashMap<String, Object> docData = new HashMap<>();
|
HashMap<String, Object> docData = new HashMap<>();
|
||||||
|
|
||||||
docData.put("unitName", member.getUnitName());
|
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("username", member.getUsername());
|
||||||
docData.put("sex", member.getSex());
|
docData.put("sex", member.getSex());
|
||||||
@@ -625,7 +624,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
|
|||||||
|
|
||||||
docData.put("nativePlace", member.getNativePlace());
|
docData.put("nativePlace", member.getNativePlace());
|
||||||
docData.put("marriage", member.getMarriage());
|
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("jobCategory", member.getJobCategory());
|
||||||
docData.put("idCard", member.getIdCard());
|
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("arrivalAtSchoolDate", StrUtil.isNotBlank(member.getArrivalAtSchoolDate()) ? DateUtil.parse(member.getArrivalAtSchoolDate()).toString("yyyy-MM-dd") : "");
|
||||||
docData.put("homeAddress", member.getHomeAddress());
|
docData.put("homeAddress", member.getHomeAddress());
|
||||||
|
|
||||||
docData.put("personalData", member.getPersonalData());
|
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) 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", "无");
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
// 处理家庭成员列表
|
||||||
|
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<>();
|
List<ProcessTaskVO> doneTaskVos = new ArrayList<>();
|
||||||
Long instanceId = info.getLong("instanceId");
|
Long instanceId = info.getLong("instanceId");
|
||||||
if (instanceId != null) {
|
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("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
||||||
}
|
}
|
||||||
approval.put("opinion", taskFormData != null ? taskFormData.getStr("tf_opinion") : "");
|
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("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
||||||
}
|
}
|
||||||
approval.put("opinion", taskFormData != null ? taskFormData.getStr("tf_opinion") : "");
|
approval.put("opinion", taskFormData != null ? taskFormData.getStr("tf_opinion") : "");
|
||||||
docData.put("schoolUnionApproval", approval);
|
docData.put("xgh", approval);
|
||||||
});
|
});
|
||||||
|
|
||||||
String fileName = "会员入会申请表_" + member.getUsername() + "_" +
|
String fileName = "会员入会申请表_" + member.getUsername() + "_" + DateUtil.format(new Date(), "yyyyMMdd") + ".docx";
|
||||||
(member.getApplyDateTime() != null ? DateUtil.format(member.getApplyDateTime(), "yyyyMMdd") : "") +
|
|
||||||
".docx";
|
|
||||||
|
|
||||||
response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
|
response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
|
||||||
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8));
|
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 {
|
try {
|
||||||
XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("member_apply_form"))
|
XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("member_apply_form"), config)
|
||||||
.render(docData)
|
.render(docData)
|
||||||
.write(response.getOutputStream());
|
.write(response.getOutputStream());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user