12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 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;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author
- * @since 2024-07-04
- */
- @Service
- public class CaseInquestServiceImpl extends ServiceImpl<ICaseInquestMapper, CaseInquest> implements ICaseInquestService {
- @Override
- public CaseInquest getByCaseId(Integer caseId) {
- LambdaQueryWrapper<CaseInquest> 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;
- }
- }
|