定制封皮选择代码优化

This commit is contained in:
yujh 2024-10-02 09:19:29 +08:00
parent a348ccfc4c
commit a5f8594fa7
4 changed files with 174 additions and 221 deletions

View File

@ -1,7 +1,11 @@
package com.actionsoft.apps.coe.pal.output.pr.report1;
import static com.actionsoft.apps.coe.pal.pal.output.util.OutputWordUtil.specialCharTransfer;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Timestamp;
import java.util.*;
import java.util.function.Function;
@ -37,6 +41,7 @@ import com.actionsoft.apps.resource.plugin.profile.DCPluginProfile;
import com.actionsoft.bpms.bo.engine.BO;
import com.actionsoft.bpms.bpmn.engine.model.def.ProcessNode;
import com.actionsoft.bpms.commons.database.RowMap;
import com.actionsoft.bpms.commons.formfile.model.delegate.FormFile;
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
import com.actionsoft.bpms.server.DispatcherRequest;
import com.actionsoft.bpms.server.UserContext;
@ -384,23 +389,6 @@ public class Report1Gener {
int index = 1;// 流程步骤序号
int dangerIndex = 1;// 风险序号
int regulateIndex = 1;// 控制序号
int roleMappingPostIndex =1;//控制序号
//先排序将子流程的几点放到最后
// 将type为"sub_process_node"的Map移动到列表末尾
List<Map<String, Object>> toRemove = new ArrayList<>();
for (Iterator<Map<String, Object>> iterator = repositoryFileElements.iterator(); iterator.hasNext();) {
Map<String, Object> map = iterator.next();
if ("sub_process_node".equals(map.get("type"))) {
toRemove.add(map); // 先收集起来
iterator.remove(); // 然后从原列表中移除
}
}
// 将收集到的Map添加到列表末尾
repositoryFileElements.addAll(toRemove);
// 输出结果
for (Map<String, Object> shape : repositoryFileElements) {
if ("method_approval_node,method_service_node,method_approval_node3,method_service_node4,decision,sub_process_node".indexOf((String)shape.get("type")) == -1) {
@ -539,12 +527,10 @@ public class Report1Gener {
String postInfo = maps.stream()
.map(rowMap -> (String) rowMap.get("RELATIONSHAPETEXT")) // 提取每个Map中的RELATIONSHAPETEXT字段
.collect(Collectors.joining(",")); // 使用逗号拼接字符串
_roleMappingPostTr.put("shape_number",roleMappingPostIndex);
_roleMappingPostTr.put("roleMapping_role",attrValue);
_roleMappingPostTr.put("roleMapping_post",postInfo);
//如果存在角色关联岗位的则加个*
_tr.put("shape_" + attrId, "*"+attrValue.replace("\n", WRAPSTRING));
roleMappingPostIndex++;
}
}
}
@ -669,8 +655,7 @@ public class Report1Gener {
// TODO: handle exception
}*/
//上下游流程
//上线临时抽离
/*List<PALRepositoryPropertyModel> repositoryPropertyList = PALRepositoryPropertyCache.getPropertyByPlId(repositoryModel.getId());
List<PALRepositoryPropertyModel> repositoryPropertyList = PALRepositoryPropertyCache.getPropertyByPlId(repositoryModel.getId());
if (repositoryPropertyList != null && repositoryPropertyList.size() > 0) {
for (PALRepositoryPropertyModel palRepositoryPropertyModel : repositoryPropertyList) {
JSONObject _process_tr = new JSONObject();
@ -685,7 +670,7 @@ public class Report1Gener {
procedureTable.add(_process_tr);
}
}
}*/
}
//相关/支持文件
@ -854,7 +839,7 @@ public class Report1Gener {
dataMap.put("procedureTableCount", procedureTable.size());
//增加模版内容替换逻辑
//getReportTempleteInfo(dataMap,userContext);
getReportTempleteInfo(dataMap,userContext,repositoryId);
boolean contains = isNumberAscArray.contains("false");
if(contains) {
fileTable.sort(Comparator.comparing(obj -> ((JSONObject) obj).getString("file_name")));
@ -1093,29 +1078,57 @@ public class Report1Gener {
* 获取流程模版中的信息内容做动态的替换逻辑
* @param dataMap
* @param me
* @param me
*/
public void getReportTempleteInfo(JSONObject dataMap,UserContext me){
String deptId = me.getDepartmentModel().getId();
//先查询模版文件中有无配置模版
BO bo = SDK.getBOAPI().query("BO_EU_OUTPUT_TEMPLATE", true).addQuery("APPLYDEPTID=", deptId).detail();
if(null!= bo){//有信息则走模版配置
//公司名称 &&&&& 换行
String companyName = bo.getString("COMPANYNAME");
companyName = companyName.replace("&&&&&", WRAPSTRING_COMPANY.replace("${CNAMEFONTSIZE}",String.valueOf(Integer.parseInt(bo.getString("CNAMEFONTSIZE"))*2)));
dataMap.put("COMPANYNAME",companyName);
dataMap.put("CNAMEFONTSIZE",Integer.parseInt(bo.getString("CNAMEFONTSIZE"))*2);
dataMap.put("HEADERFONT",bo.getString("HEADERFONT"));
dataMap.put("HEADERFONTSIZE",bo.getString("HEADERFONTSIZE"));
dataMap.put("HEADERLOGO",bo.getString("HEADERLOGO"));
dataMap.put("FOOTERFONT",bo.getString("FOOTERFONT"));
dataMap.put("FOOTERFONTSIZE",bo.getString("FOOTERFONTSIZE"));
}else{//无模版则走默认配置
dataMap.put("COMPANYNAME","内蒙古伊利实业集团股份有限公司");
dataMap.put("CNAMEFONTSIZE",44);
public void getReportTempleteInfo(JSONObject dataMap,UserContext me,String palId){
BO bo = null;
//先查询有无模版Id
BO tplBo = SDK.getBOAPI().query("BO_EU_TPL_PAL_MAPPING").addQuery("PALID=", palId).orderByCreated().desc().detail();
if(tplBo!=null){
bo = SDK.getBOAPI().query("BO_EU_OUTPUT_TEMPLATE").detailById(tplBo.getString("TPLID"));
}else{
bo = SDK.getBOAPI().query("BO_EU_OUTPUT_TEMPLATE").addQuery("APPLYTYPE=", "默认").detail();
}
//公司名称 &&&&& 换行
String companyName = bo.getString("COMPANYNAME");
companyName = companyName.replace("&&&&&", WRAPSTRING_COMPANY.replace("${CNAMEFONTSIZE}",String.valueOf(Integer.parseInt(bo.getString("CNAMEFONTSIZE"))*2)));
dataMap.put("COMPANYNAME",companyName);
dataMap.put("CNAMEFONTSIZE",changeValueToDouble(bo.getString("CNAMEFONTSIZE")));
dataMap.put("HEADERFONT",bo.getString("HEADERFONT"));
dataMap.put("FOOTERFONT",bo.getString("FOOTERFONT"));
List<FormFile> headerlogo = SDK.getBOAPI().getFiles(bo.getId(), "HEADERLOGO");
if(headerlogo.size()>0){
FormFile formFile = headerlogo.get(0);
DCContext dc = SDK.getBOAPI().getFileDCContext(formFile);
InputStream inputStream = SDK.getDCAPI().read(dc);
try {
// 使用ByteArrayOutputStream来收集InputStream中的数据
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[16384];
while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
buffer.flush();
byte[] imageBytes = buffer.toByteArray();
// 将字节数组转换为Base64编码的字符串
String imageBase64 = Base64.getEncoder().encodeToString(imageBytes);
dataMap.put("HEADERLOGO",imageBase64);
} catch (IOException e) {
e.printStackTrace();
} finally {
// 确保InputStream被关闭如果它来自需要关闭的资源如文件或网络连接
try {
if (inputStream != null) {
inputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 去重
* @param jsonArray
@ -1135,9 +1148,21 @@ public class Report1Gener {
// 如果你想要一个JSONArray作为最终结果你可以这样做
JSONArray uniqueJsonArray = new JSONArray();
int shape_number =1;
for (JSONObject jsonObject : uniqueRolesMap.values()) {
jsonObject.put("shape_number",shape_number);
uniqueJsonArray.add(jsonObject);
shape_number++;
}
return uniqueJsonArray;
}
/**
* 把传入的值*2
* @param objVal
* @return
*/
public Integer changeValueToDouble(String objVal){
return Integer.parseInt(objVal)*2;
}
}

View File

@ -1341,10 +1341,10 @@
<w:rFonts w:ascii="黑体" w:fareast="黑体" w:h-ansi="黑体" w:cs="黑体"/>
<wx:font wx:val="黑体"/>
<w:color w:val="000000"/>
<w:sz w:val="44"/>
<w:sz w:val="${CNAMEFONTSIZE}"/>
<w:lang w:val="ZH-CN"/>
</w:rPr>
<w:t>内蒙古伊利实业集团股份有限公司</w:t>
<w:t>${COMPANYNAME}</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00AC2941" wsp:rsidRDefault="00AC2941">
@ -1556,7 +1556,7 @@
<w:spacing w:before="45" w:after="45"/>
</w:pPr>
<w:r>
<w:t>内蒙古伊利实业集团股份有限公司</w:t>
<w:t>${HEADERFONT}</w:t>
</w:r>
</w:p>
</w:tc>
@ -1614,79 +1614,7 @@
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype>
<w:binData w:name="wordml://03000001.png" xml:space="preserve">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
y7fdOgAAAABJRU5ErkJggk==
<w:binData w:name="wordml://03000001.png" xml:space="preserve">${HEADERLOGO}
</w:binData>
<v:shape id="图片 1" o:spid="_x0000_i1030" type="#_x0000_t75" alt="" style="width:45.35pt;height:34pt;mso-width-percent:0;mso-height-percent:0;mso-position-horizontal-relative:page;mso-position-vertical-relative:page;mso-width-percent:0;mso-height-percent:0">
<v:imagedata src="wordml://03000001.png" o:title=""/>
@ -1763,7 +1691,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:spacing w:before="45" w:after="45"/>
</w:pPr>
<w:r>
<w:t>以上信息为伊利公司所有,未经允许不得外传</w:t>
<w:t>${FOOTERFONT}</w:t>
</w:r>
</w:p>
</w:tc>
@ -4051,7 +3979,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:spacing w:before="45" w:after="45"/>
</w:pPr>
<w:r>
<w:t>内蒙古伊利实业集团股份有限公司</w:t>
<w:t>${HEADERFONT}</w:t>
</w:r>
</w:p>
</w:tc>
@ -4184,7 +4112,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:spacing w:before="45" w:after="45"/>
</w:pPr>
<w:r>
<w:t>以上信息为伊利公司所有,未经允许不得外传</w:t>
<w:t>${FOOTERFONT}</w:t>
</w:r>
</w:p>
</w:tc>
@ -4976,8 +4904,8 @@ y7fdOgAAAABJRU5ErkJggk==
<w:tblLayout w:type="Fixed"/>
</w:tblPr>
<w:tblGrid>
<w:gridCol w:w="5393"/>
<w:gridCol w:w="6393"/>
<w:gridCol w:w="6787"/>
<w:gridCol w:w="6788"/>
</w:tblGrid>
<w:tr wsp:rsidR="00AC2941" wsp:rsidRPr="006A6A9A" wsp:rsidTr="007A3F31">
<w:trPr>
@ -4985,7 +4913,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="789" w:type="dxa"/>
<w:tcW w:w="6787" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -5024,7 +4952,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1729" w:type="dxa"/>
<w:tcW w:w="6788" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -5066,7 +4994,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:tr wsp:rsidR="00AC2941" wsp:rsidTr="007A3F31">
<w:tc>
<w:tcPr>
<w:tcW w:w="1729" w:type="dxa"/>
<w:tcW w:w="6787" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -5101,7 +5029,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1729" w:type="dxa"/>
<w:tcW w:w="6788" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -5474,7 +5402,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:spacing w:before="45" w:after="45"/>
</w:pPr>
<w:r>
<w:t>内蒙古伊利实业集团股份有限公司</w:t>
<w:t>${HEADERFONT}</w:t>
</w:r>
</w:p>
</w:tc>
@ -5611,7 +5539,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:spacing w:before="45" w:after="45"/>
</w:pPr>
<w:r>
<w:t>以上信息为伊利公司所有,未经允许不得外传</w:t>
<w:t>${FOOTERFONT}</w:t>
</w:r>
</w:p>
</w:tc>
@ -6706,7 +6634,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="1500" w:type="dxa"/>
<w:tcW w:w="2000" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -6745,7 +6673,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="700" w:type="dxa"/>
<w:tcW w:w="2000" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -6784,7 +6712,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2500" w:type="dxa"/>
<w:tcW w:w="5000" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -6823,7 +6751,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2500" w:type="dxa"/>
<w:tcW w:w="5000" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -6862,7 +6790,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2500" w:type="dxa"/>
<w:tcW w:w="5000" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -6904,7 +6832,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:tr wsp:rsidR="00AC2941" wsp:rsidTr="007A3F31">
<w:tc>
<w:tcPr>
<w:tcW w:w="1500" w:type="dxa"/>
<w:tcW w:w="2000" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -6939,7 +6867,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="700" w:type="dxa"/>
<w:tcW w:w="2000" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -6974,7 +6902,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2500" w:type="dxa"/>
<w:tcW w:w="5000" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -7010,7 +6938,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2500" w:type="dxa"/>
<w:tcW w:w="5000" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -7045,7 +6973,7 @@ y7fdOgAAAABJRU5ErkJggk==
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2500" w:type="dxa"/>
<w:tcW w:w="5000" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
@ -7254,7 +7182,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:spacing w:before="45" w:after="45"/>
</w:pPr>
<w:r>
<w:t>内蒙古伊利实业集团股份有限公司</w:t>
<w:t>${HEADERFONT}</w:t>
</w:r>
</w:p>
</w:tc>
@ -7387,7 +7315,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:spacing w:before="45" w:after="45"/>
</w:pPr>
<w:r>
<w:t>以上信息为伊利公司所有,未经允许不得外传</w:t>
<w:t>${FOOTERFONT}</w:t>
</w:r>
</w:p>
</w:tc>

View File

@ -12,6 +12,8 @@ import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryPropertyCac
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryPropertyModel;
import com.actionsoft.apps.coe.pal.system.property.CoePropertyUtil;
import com.actionsoft.bpms.bo.engine.BO;
import com.actionsoft.bpms.commons.formfile.model.delegate.FormFile;
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
import com.actionsoft.bpms.server.DispatcherRequest;
import com.actionsoft.bpms.server.UserContext;
@ -25,7 +27,7 @@ import com.alibaba.fastjson.JSONObject;
import com.awspaas.apps.coe.pal.output.zd.util.PrReportComment;
import com.awspaas.apps.coe.pal.output.zd.util.ReportRepositoryCompare;
import java.io.FileNotFoundException;
import java.io.*;
import java.sql.Timestamp;
import java.util.*;
@ -46,6 +48,9 @@ public class Report1Gener {
//word换行符
private final String WRAPSTRING = "</w:t></w:r></w:p><w:p><w:pPr><w:keepNext w:val=\"off\"/><w:keepLines w:val=\"off\"/><w:pageBreakBefore w:val=\"off\"/><w:widowControl/><w:kinsoku/><w:wordWrap/><w:overflowPunct/><w:topLinePunct w:val=\"off\"/><w:autoSpaceDE/><w:autoSpaceDN/><w:adjustRightInd/><w:snapToGrid/><w:spacing w:line=\"240\" w:line-rule=\"auto\"/><w:ind w:left=\"0\" w:right=\"0\" w:right-chars=\"0\" w:first-line=\"0\" w:first-line-chars=\"0\"/><w:jc w:val=\"both\"/><w:textAlignment w:val=\"auto\"/><w:outlineLvl w:val=\"9\"/><w:rPr><w:rFonts w:ascii=\"宋体\" w:h-ansi=\"宋体\" w:fareast=\"宋体\" w:cs=\"宋体\" w:hint=\"fareast\"/><w:color w:val=\"auto\"/><w:sz w:val=\"21\"/><w:sz-cs w:val=\"21\"/><w:lang w:val=\"EN-US\"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii=\"宋体\" w:h-ansi=\"宋体\" w:fareast=\"宋体\" w:cs=\"宋体\" w:hint=\"fareast\"/><w:color w:val=\"auto\"/><w:sz w:val=\"21\"/><w:sz-cs w:val=\"21\"/><w:lang w:val=\"EN-US\"/></w:rPr><w:t>";
//word换行符公司名称
private final String WRAPSTRING_COMPANY = "</w:t></w:r></w:p><w:p wsp:rsidR=\"00AC2941\" wsp:rsidRDefault=\"00AC2941\"><w:pPr><w:jc w:val=\"center\"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii=\"黑体\" w:fareast=\"黑体\" w:h-ansi=\"黑体\" w:cs=\"黑体\"/><wx:font wx:val=\"黑体\"/><w:color w:val=\"000000\"/><w:sz w:val=\"${CNAMEFONTSIZE}\"/><w:lang w:val=\"ZH-CN\"/></w:rPr><w:t>";
public Report1Gener() {
}
@ -196,6 +201,7 @@ public class Report1Gener {
*/
private JSONObject getData2(String repositoryId, JSONObject wizardJsonData, String docPath, String fileName) {
JSONObject dataMap = new JSONObject();
getReportTempleteInfo(dataMap,userContext,repositoryId);
dataMap.put("organizationType", "涉及部门及岗位\\角色");
boolean raciRelationType = SDK.getAppAPI().getPropertyBooleanValue("com.awspaas.user.apps.coe.pal.output.zd", "DETY_POSITION_ROLE_RELATION_TYPE", false);
@ -305,4 +311,70 @@ public class Report1Gener {
return versionHistoryTable;
}
/**
* 获取流程模版中的信息内容做动态的替换逻辑
* @param dataMap
* @param me
* @param me
*/
public void getReportTempleteInfo(JSONObject dataMap,UserContext me,String palId){
BO bo = null;
//先查询有无模版Id
//先查询有无模版Id
BO tplBo = SDK.getBOAPI().query("BO_EU_TPL_PAL_MAPPING").addQuery("PALID=", palId).orderByCreated().desc().detail();
if(tplBo!=null){
bo = SDK.getBOAPI().query("BO_EU_OUTPUT_TEMPLATE").detailById(tplBo.getString("TPLID"));
}else{
bo = SDK.getBOAPI().query("BO_EU_OUTPUT_TEMPLATE").addQuery("APPLYTYPE=", "默认").detail();
}
//公司名称 &&&&& 换行
String companyName = bo.getString("COMPANYNAME");
companyName = companyName.replace("&&&&&", WRAPSTRING_COMPANY.replace("${CNAMEFONTSIZE}",String.valueOf(Integer.parseInt(bo.getString("CNAMEFONTSIZE"))*2)));
dataMap.put("COMPANYNAME",companyName);
dataMap.put("CNAMEFONTSIZE",changeValueToDouble(bo.getString("CNAMEFONTSIZE")));
dataMap.put("HEADERFONT",bo.getString("HEADERFONT"));
dataMap.put("FOOTERFONT",bo.getString("FOOTERFONT"));
List<FormFile> headerlogo = SDK.getBOAPI().getFiles(bo.getId(), "HEADERLOGO");
if(headerlogo.size()>0){
FormFile formFile = headerlogo.get(0);
DCContext dc = SDK.getBOAPI().getFileDCContext(formFile);
InputStream inputStream = SDK.getDCAPI().read(dc);
try {
// 使用ByteArrayOutputStream来收集InputStream中的数据
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[16384];
while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
buffer.flush();
byte[] imageBytes = buffer.toByteArray();
// 将字节数组转换为Base64编码的字符串
String imageBase64 = Base64.getEncoder().encodeToString(imageBytes);
dataMap.put("HEADERLOGO",imageBase64);
} catch (IOException e) {
e.printStackTrace();
} finally {
// 确保InputStream被关闭如果它来自需要关闭的资源如文件或网络连接
try {
if (inputStream != null) {
inputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 把传入的值*2
* @param objVal
* @return
*/
public Integer changeValueToDouble(String objVal){
return Integer.parseInt(objVal)*2;
}
}

View File

@ -2789,11 +2789,11 @@
<w:rFonts w:ascii="黑体" w:fareast="黑体" w:h-ansi="黑体" w:cs="黑体" w:hint="fareast"/>
<wx:font wx:val="黑体"/>
<w:color w:val="000000"/>
<w:sz w:val="44"/>
<w:sz w:val="${CNAMEFONTSIZE}"/>
<w:sz-cs w:val="44"/>
<w:lang w:val="ZH-CN"/>
</w:rPr>
<w:t>内蒙古伊利实业集团股份有限公司</w:t>
<w:t>${COMPANYNAME}</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="002737AF" wsp:rsidRDefault="002737AF" wsp:rsidP="00F96B41">
@ -3025,7 +3025,7 @@
<w:spacing w:before="45" w:after="45"/>
</w:pPr>
<w:r>
<w:t>内蒙古伊利实业集团股份有限公司</w:t>
<w:t>${HEADERFONT}</w:t>
</w:r>
</w:p>
</w:tc>
@ -3082,79 +3082,7 @@
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype>
<w:binData w:name="wordml://d73e3f67.png" xml:space="preserve">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
y7fdOgAAAABJRU5ErkJggk==
<w:binData w:name="wordml://d73e3f67.png" xml:space="preserve">${HEADERLOGO}
</w:binData>
<v:shape id="图片 1" o:spid="_x0000_i1026" type="#_x0000_t75" alt="" style="width:45.2pt;height:35.15pt;mso-width-percent:0;mso-height-percent:0;mso-position-horizontal-relative:page;mso-position-vertical-relative:page;mso-width-percent:0;mso-height-percent:0">
<v:imagedata src="wordml://d73e3f67.png" o:title=""/>
@ -3238,7 +3166,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:rFonts w:ascii="黑体" w:fareast="黑体" w:h-ansi="黑体"/>
<wx:font wx:val="黑体"/>
</w:rPr>
<w:t>以上信息为伊利公司所有,未经允许不得外传</w:t>
<w:t>${FOOTERFONT}</w:t>
</w:r>
</w:p>
</w:tc>
@ -5245,7 +5173,7 @@ y7fdOgAAAABJRU5ErkJggk==
<w:spacing w:before="45" w:after="45"/>
</w:pPr>
<w:r>
<w:t>内蒙古伊利实业集团股份有限公司</w:t>
<w:t>${HEADERFONT}</w:t>
</w:r>
</w:p>
</w:tc>
@ -5385,7 +5313,7 @@ y7fdOgAAAABJRU5ErkJggk==
<wx:font wx:val="黑体"/>
<w:color w:val="auto"/>
</w:rPr>
<w:t>以上信息为伊利公司所有,未经允许不得外传</w:t>
<w:t>${FOOTERFONT}</w:t>
</w:r>
</w:p>
</w:tc>