package com.fdkankan.fusion.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.data.TextRenderData; import com.deepoove.poi.data.style.Style; import com.fdkankan.fusion.common.ResultCode; import com.fdkankan.fusion.entity.CaseInquest; import com.fdkankan.fusion.exception.BusinessException; import com.fdkankan.fusion.mapper.ICaseInquestMapper; import com.fdkankan.fusion.response.CaseInquestVo; import com.fdkankan.fusion.response.WitnessVo; import com.fdkankan.fusion.service.ICaseInquestService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.poi.xwpf.usermodel.UnderlinePatterns; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.io.InputStream; /** *

* 服务实现类 *

* * @author * @since 2024-07-04 */ @Service public class CaseInquestServiceImpl extends ServiceImpl implements ICaseInquestService { @Override public CaseInquest getByCaseId(Integer caseId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(CaseInquest::getCaseId,caseId); return this.getOne(wrapper); } @Override public void saveByParam(CaseInquest caseInquest) { if(caseInquest.getCaseId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } CaseInquest dbCaseInquest = this.getByCaseId(caseInquest.getCaseId()); if(dbCaseInquest != null){ caseInquest.setId(dbCaseInquest.getId()); } this.saveOrUpdate(caseInquest); } @Override public XWPFTemplate getWordByTemplate(CaseInquest caseInquest) { InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("template/inquest-template.docx"); // 渲染模板 CaseInquestVo vo = new CaseInquestVo(); BeanUtils.copyProperties(caseInquest,vo); String info = "证人或当事人(签名):%s %s年 %s月 %s日 身份证件号码:%s\n" +" 单位或住址:%s\n"; StringBuilder msg = new StringBuilder(); for (Object object : vo.getWitnessInfo()) { JSONObject obj = (JSONObject) object; WitnessVo witnessVo = JSONObject.toJavaObject(obj,WitnessVo.class); String format = String.format(info, witnessVo.getName(), witnessVo.getYear(), witnessVo.getMonth(), witnessVo.getDay(), witnessVo.getId(), witnessVo.getAddress()); msg.append(format); } TextRenderData text = new TextRenderData("000000",msg.toString()); Style style = text.getStyle(); style.setUnderlinePatterns(UnderlinePatterns.SINGLE); vo.setText(text); XWPFTemplate template = XWPFTemplate.compile(inputStream).render(vo); return template; } }