From 1486a2ce86eb63d51e5a61a8364df42e7585a8fc Mon Sep 17 00:00:00 2001 From: 许鹏程 <1821349743@qq.com> Date: 星期三, 16 八月 2023 11:55:23 +0800 Subject: [PATCH] xn commit --- src/main/java/com/product/print/service/PrintRealizeService.java | 37 ++++++++++++++++++++++++++++++++----- 1 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/product/print/service/PrintRealizeService.java b/src/main/java/com/product/print/service/PrintRealizeService.java index 5426ec5..9f3353b 100644 --- a/src/main/java/com/product/print/service/PrintRealizeService.java +++ b/src/main/java/com/product/print/service/PrintRealizeService.java @@ -10,6 +10,7 @@ import com.deepoove.poi.config.ConfigureBuilder; import com.deepoove.poi.data.TextRenderData; import com.deepoove.poi.data.style.Style; +import com.deepoove.poi.render.RenderContext; import com.product.common.lang.StringUtils; import com.product.core.cache.DataPoolCacheImpl; import com.product.core.config.Global; @@ -23,10 +24,13 @@ import com.product.print.config.CmnConst; import com.product.print.service.ide.IPrintRealizeService; import com.product.print.util.DynamicTableRenderPolicy; +import com.product.print.util.FlowOpinionRenderPolicy; +import com.product.print.util.TableEmptyHandler; import com.product.tool.flow.service.FlowDetailService; import com.product.util.BaseUtil; import com.product.util.SystemParamReplace; +import org.apache.poi.xwpf.usermodel.XWPFTable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -57,7 +61,7 @@ public static void dataConvertCheckedData(FieldSetEntity fse) { TextRenderData selSymbol = new TextRenderData(CmnConst.PRINT_CHECKED_CHAR, new Style(CmnConst.PRINT_FONT, 14)); - TextRenderData unselSymbol = new TextRenderData(CmnConst.PRINT_UNCHECKED_CHAR, new Style(CmnConst.PRINT_FONT, 14)); + TextRenderData unselSymbol = new TextRenderData(CmnConst.PRINT_UNCHECKED_CHAR, new Style(CmnConst.PRINT_FONT, 18)); //鑾峰彇琛ㄥ崟瀛楁 Object[] fields = fse.getMeta().getFields(); @@ -186,6 +190,9 @@ for (int i = 0; i < fields.length; i++) { String field = fields[i].toString(); FieldSetEntity metaEntity = fse.getMeta().getFieldMeta(field); + if (metaEntity == null) { + continue; + } String fieldType = metaEntity.getString("field_type"); //鍒ゆ柇鏄惁鎷ユ湁娴佺▼鏍囪瘑 if ("flowsign".equals(fieldType)) { @@ -217,7 +224,7 @@ replaceWord(localTempPathWord, file.getPath(), fse); file.delete(); - String replaceParams = SystemParamReplace.replaceParams(printConf.getString(CmnConst.PRINT_FILE_NAME), fse); + String replaceParams = SystemParamReplace.replaceParams(Optional.ofNullable(printConf.getString(CmnConst.PRINT_FILE_NAME)).orElse(printConf.getString(CmnConst.PRINT_NAME)), fse); printConf.setValue(CmnConst.PRINT_FILE_NAME, replaceParams); if (isConvertPdf) { try { @@ -261,16 +268,36 @@ //鑾峰彇瀛愯〃鏁版嵁 Map<String, DataTableEntity> subDataMap = dataFse.getSubData(); ConfigureBuilder config = Configure.createDefault().builder(); + config.addPlugin('@', new FlowOpinionRenderPolicy(flowOpinion)); + config.addPlugin('$', new com.deepoove.poi.policy.DynamicTableRenderPolicy() { + @Override + public void doRender(RenderContext<Object> context) throws Exception { + return; + } + + @Override + public void render(XWPFTable table, Object data) throws Exception { + return; + } + }); + config.buildGrammerRegex("(#)?([\\w\\u4e00-\\u9fa5]+)(\\.?[\\w\\u4e00-\\u9fa5\\|]*)*(#)?"); + TableEmptyHandler tableEmptyHandler = new TableEmptyHandler(); if (!CollectionUtil.isEmpty(subDataMap)) { for (Map.Entry<String, DataTableEntity> entry : subDataMap.entrySet()) { cloneValues.put(entry.getKey(), entry.getValue().getData().stream().map(item -> (Map<String, Object>) ((Map) item.getValues())).collect(Collectors.toList())); config.bind(entry.getKey(), new DynamicTableRenderPolicy(entry.getKey())); + tableEmptyHandler.addTag(entry.getKey()); } } - if(flowOpinion!=null && flowOpinion.size()>0){ - cloneValues.put("lx_flow_opinion", flowOpinion); - config.bind("lx_flow_opinion", new DynamicTableRenderPolicy("lx_flow_opinion")); + if (flowOpinion != null) { + if (!CollectionUtil.isEmpty(flowOpinion)) { + cloneValues.put("lx_flow_opinion", flowOpinion); + config.bind("lx_flow_opinion", new DynamicTableRenderPolicy("lx_flow_opinion")); + } + tableEmptyHandler.addTag("lx_flow_opinion"); } + config.setValidErrorHandler(tableEmptyHandler); + try { //妫�鏌ヨ緭鍑烘枃浠舵槸鍚﹀瓨鍦紝涓嶅瓨鍦ㄥ垯鍒涘缓 FileUtil.touch(outPath); -- Gitblit v1.9.2