CaseInquestServiceImpl.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package com.fdkankan.fusion.service.impl;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.deepoove.poi.XWPFTemplate;
  5. import com.deepoove.poi.data.TextRenderData;
  6. import com.deepoove.poi.data.style.Style;
  7. import com.fdkankan.fusion.common.ResultCode;
  8. import com.fdkankan.fusion.entity.CaseInquest;
  9. import com.fdkankan.fusion.exception.BusinessException;
  10. import com.fdkankan.fusion.mapper.ICaseInquestMapper;
  11. import com.fdkankan.fusion.response.CaseInquestVo;
  12. import com.fdkankan.fusion.response.WitnessVo;
  13. import com.fdkankan.fusion.service.ICaseInquestService;
  14. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  15. import org.apache.poi.xwpf.usermodel.UnderlinePatterns;
  16. import org.springframework.beans.BeanUtils;
  17. import org.springframework.stereotype.Service;
  18. import java.io.InputStream;
  19. /**
  20. * <p>
  21. * 服务实现类
  22. * </p>
  23. *
  24. * @author
  25. * @since 2024-07-04
  26. */
  27. @Service
  28. public class CaseInquestServiceImpl extends ServiceImpl<ICaseInquestMapper, CaseInquest> implements ICaseInquestService {
  29. @Override
  30. public CaseInquest getByCaseId(Integer caseId) {
  31. LambdaQueryWrapper<CaseInquest> wrapper = new LambdaQueryWrapper<>();
  32. wrapper.eq(CaseInquest::getCaseId,caseId);
  33. return this.getOne(wrapper);
  34. }
  35. @Override
  36. public void saveByParam(CaseInquest caseInquest) {
  37. if(caseInquest.getCaseId() == null){
  38. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  39. }
  40. CaseInquest dbCaseInquest = this.getByCaseId(caseInquest.getCaseId());
  41. if(dbCaseInquest != null){
  42. caseInquest.setId(dbCaseInquest.getId());
  43. }
  44. this.saveOrUpdate(caseInquest);
  45. }
  46. @Override
  47. public XWPFTemplate getWordByTemplate(CaseInquest caseInquest) {
  48. InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("template/inquest-template.docx");
  49. // 渲染模板
  50. CaseInquestVo vo = new CaseInquestVo();
  51. BeanUtils.copyProperties(caseInquest,vo);
  52. String info = "证人或当事人(签名):%s %s年 %s月 %s日 身份证件号码:%s\n"
  53. +" 单位或住址:%s\n";
  54. StringBuilder msg = new StringBuilder();
  55. for (Object object : vo.getWitnessInfo()) {
  56. JSONObject obj = (JSONObject) object;
  57. WitnessVo witnessVo = JSONObject.toJavaObject(obj,WitnessVo.class);
  58. String format = String.format(info, witnessVo.getName(), witnessVo.getYear(), witnessVo.getMonth(), witnessVo.getDay(), witnessVo.getId(), witnessVo.getAddress());
  59. msg.append(format);
  60. }
  61. TextRenderData text = new TextRenderData("000000",msg.toString());
  62. Style style = text.getStyle();
  63. style.setUnderlinePatterns(UnderlinePatterns.SINGLE);
  64. vo.setText(text);
  65. XWPFTemplate template = XWPFTemplate.compile(inputStream).render(vo);
  66. return template;
  67. }
  68. }