parent
ffd01d8dbf
commit
29a13ebe1b
22 changed files with 942 additions and 47 deletions
@ -0,0 +1,166 @@ |
|||||||
|
package org.springblade.desk.energy.util; |
||||||
|
|
||||||
|
import com.videasoft.utils.other.Function; |
||||||
|
import com.videasoft.webframework.common.web.report.HtmlExporterUtil; |
||||||
|
import com.videasoft.webframework.common.web.report.ReportModel; |
||||||
|
import com.videasoft.webframework.configs.ReportInfoReader; |
||||||
|
import jakarta.servlet.ServletOutputStream; |
||||||
|
import jakarta.servlet.http.HttpServletRequest; |
||||||
|
import jakarta.servlet.http.HttpServletResponse; |
||||||
|
import net.sf.jasperreports.engine.JRException; |
||||||
|
import net.sf.jasperreports.engine.JasperExportManager; |
||||||
|
import net.sf.jasperreports.engine.JasperPrint; |
||||||
|
import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter; |
||||||
|
import net.sf.jasperreports.export.ExporterInput; |
||||||
|
import net.sf.jasperreports.export.OutputStreamExporterOutput; |
||||||
|
import net.sf.jasperreports.export.SimpleExporterInput; |
||||||
|
import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput; |
||||||
|
import org.apache.commons.lang3.StringUtils; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.io.OutputStream; |
||||||
|
import java.io.PrintWriter; |
||||||
|
import java.io.UnsupportedEncodingException; |
||||||
|
import java.net.URLEncoder; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Iterator; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
@Service |
||||||
|
public class ExportUtil { |
||||||
|
public void export(String reportId, short exportType, String fileName, Object data, Map<String, Object> params, HttpServletRequest request, HttpServletResponse response) { |
||||||
|
if (params == null) { |
||||||
|
params = new HashMap(); |
||||||
|
} |
||||||
|
|
||||||
|
try { |
||||||
|
Map<String, ReportModel> reports = ReportInfoReader.getReport(); |
||||||
|
JasperPrint jp = JasperReportUtil.getJasperPrint(reportId, data, (Map)params); |
||||||
|
ReportModel rm = (ReportModel)reports.get(reportId); |
||||||
|
jp.setName("测试"); |
||||||
|
if (StringUtils.isBlank(fileName)) { |
||||||
|
fileName = Function.toUtf8String(rm.getReportName()); |
||||||
|
} |
||||||
|
|
||||||
|
if (0 == exportType) { |
||||||
|
fileName = fileName + ".xlsx"; |
||||||
|
fileName= URLEncoder.encode(fileName,"UTF-8"); |
||||||
|
this.exportExcel(jp, fileName, response); |
||||||
|
} else if (1 == exportType) { |
||||||
|
fileName = fileName + ".pdf"; |
||||||
|
fileName= URLEncoder.encode(fileName,"UTF-8"); |
||||||
|
this.exportPdf(jp, fileName, response); |
||||||
|
} else if (3 == exportType) { |
||||||
|
this.exportHtml(jp, response); |
||||||
|
} |
||||||
|
} catch (Exception var12) { |
||||||
|
var12.printStackTrace(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
protected void exportExcel(Object jasperPrint, String fileName, HttpServletResponse response) { |
||||||
|
OutputStream out = null; |
||||||
|
|
||||||
|
try { |
||||||
|
out = this.getExportStream("application/vnd.ms-excel", fileName, response); |
||||||
|
JRXlsxExporter exporter = new JRXlsxExporter(); |
||||||
|
ExporterInput exporterInput = null; |
||||||
|
if (jasperPrint instanceof JasperPrint) { |
||||||
|
exporterInput = new SimpleExporterInput((JasperPrint)jasperPrint); |
||||||
|
} else if (jasperPrint instanceof List) { |
||||||
|
exporterInput = SimpleExporterInput.getInstance((List)jasperPrint); |
||||||
|
} |
||||||
|
|
||||||
|
exporter.setExporterInput(exporterInput); |
||||||
|
OutputStreamExporterOutput exporterOutput = new SimpleOutputStreamExporterOutput(response.getOutputStream()); |
||||||
|
exporter.setExporterOutput(exporterOutput); |
||||||
|
exporter.exportReport(); |
||||||
|
} catch (JRException var20) { |
||||||
|
var20.getMessage(); |
||||||
|
} catch (UnsupportedEncodingException var21) { |
||||||
|
var21.printStackTrace(); |
||||||
|
var21.getMessage(); |
||||||
|
} catch (IOException var22) { |
||||||
|
var22.printStackTrace(); |
||||||
|
var22.getMessage(); |
||||||
|
} finally { |
||||||
|
if (out != null) { |
||||||
|
try { |
||||||
|
out.flush(); |
||||||
|
out.close(); |
||||||
|
} catch (IOException var19) { |
||||||
|
var19.printStackTrace(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
private void exportPdf(Object jasperPrint, String fileName, HttpServletResponse response) { |
||||||
|
try { |
||||||
|
OutputStream ouputStream = this.getExportStream("application/pdf", fileName, response); |
||||||
|
if (jasperPrint instanceof JasperPrint) { |
||||||
|
JasperExportManager.exportReportToPdfStream((JasperPrint)jasperPrint, ouputStream); |
||||||
|
} else if (jasperPrint instanceof List) { |
||||||
|
List<JasperPrint> list = (List)jasperPrint; |
||||||
|
if (list != null && list.size() > 0) { |
||||||
|
Iterator var6 = list.iterator(); |
||||||
|
|
||||||
|
while(var6.hasNext()) { |
||||||
|
JasperPrint jp = (JasperPrint)var6.next(); |
||||||
|
JasperExportManager.exportReportToPdfStream(jp, ouputStream); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
ouputStream.flush(); |
||||||
|
ouputStream.close(); |
||||||
|
} catch (Exception var8) { |
||||||
|
var8.getMessage(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
protected void exportHtml(Object jasperPrint, HttpServletResponse response) { |
||||||
|
PrintWriter printWriter = null; |
||||||
|
|
||||||
|
try { |
||||||
|
response.setCharacterEncoding("UTF-8"); |
||||||
|
response.setContentType("text/html"); |
||||||
|
printWriter = response.getWriter(); |
||||||
|
HtmlExporterUtil exporter = new HtmlExporterUtil(jasperPrint, printWriter); |
||||||
|
exporter.exportReport(); |
||||||
|
} catch (JRException var9) { |
||||||
|
var9.getMessage(); |
||||||
|
} catch (IOException var10) { |
||||||
|
var10.getMessage(); |
||||||
|
} finally { |
||||||
|
printWriter.close(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
protected OutputStream getExportStream(String contentType, String fileName, HttpServletResponse response) { |
||||||
|
String ct = "application/octet-stream"; |
||||||
|
if (contentType != null) { |
||||||
|
ct = contentType; |
||||||
|
} |
||||||
|
|
||||||
|
ServletOutputStream out = null; |
||||||
|
|
||||||
|
try { |
||||||
|
response.setCharacterEncoding("UTF-8"); |
||||||
|
response.setContentType(ct); |
||||||
|
if (fileName != null && fileName.trim().length() > 0) { |
||||||
|
response.setHeader("Content-Disposition", "attachment;filename=" + fileName); |
||||||
|
} |
||||||
|
|
||||||
|
response.setBufferSize(2048); |
||||||
|
out = response.getOutputStream(); |
||||||
|
} catch (IOException var7) { |
||||||
|
var7.getMessage(); |
||||||
|
} |
||||||
|
|
||||||
|
return out; |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,117 @@ |
|||||||
|
package org.springblade.desk.energy.util; |
||||||
|
|
||||||
|
import com.videasoft.configs.Configers; |
||||||
|
import com.videasoft.utils.other.Function; |
||||||
|
import com.videasoft.utils.reader.PathReader; |
||||||
|
import com.videasoft.webframework.common.web.report.JasperReportUtils; |
||||||
|
import com.videasoft.webframework.common.web.report.PrintData; |
||||||
|
import com.videasoft.webframework.common.web.report.ReportModel; |
||||||
|
import com.videasoft.webframework.common.web.report.SubReportModel; |
||||||
|
import com.videasoft.webframework.configs.ReportInfoReader; |
||||||
|
import net.sf.jasperreports.engine.JasperFillManager; |
||||||
|
import net.sf.jasperreports.engine.JasperPrint; |
||||||
|
import net.sf.jasperreports.engine.JasperReport; |
||||||
|
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; |
||||||
|
import net.sf.jasperreports.engine.util.JRLoader; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.io.InputStream; |
||||||
|
import java.util.*; |
||||||
|
@Service |
||||||
|
public class JasperReportUtil { |
||||||
|
|
||||||
|
|
||||||
|
protected static final Logger logger = LoggerFactory.getLogger(JasperReportUtils.class); |
||||||
|
|
||||||
|
public JasperReportUtil() { |
||||||
|
} |
||||||
|
|
||||||
|
public static final ReportModel getReportModel(String reportId) throws Exception { |
||||||
|
return ReportInfoReader.getReportModel(reportId); |
||||||
|
} |
||||||
|
|
||||||
|
public static final JasperPrint getJasperPrint(String reportId, Object data, Map<String, Object> params) throws Exception { |
||||||
|
ReportModel rm = ReportInfoReader.getReportModel(reportId); |
||||||
|
if (rm == null) { |
||||||
|
throw new Exception("找不到报表模板定义"); |
||||||
|
} else { |
||||||
|
Collection<?> mainData = null; |
||||||
|
if (data instanceof Collection) { |
||||||
|
mainData = (Collection)data; |
||||||
|
} else { |
||||||
|
mainData = new ArrayList(1); |
||||||
|
((List)mainData).add(data); |
||||||
|
} |
||||||
|
|
||||||
|
if (params == null) { |
||||||
|
params = new HashMap(); |
||||||
|
} |
||||||
|
|
||||||
|
JasperReport jr = rm.getJasperRoport(); |
||||||
|
InputStream inputStream = PathReader.class.getResourceAsStream(rm.getTemplatePath()); |
||||||
|
if (inputStream == null) { |
||||||
|
logger.error("读取打印模版:" + rm.getTemplatePath() + "出错,文件可能不存在!"); |
||||||
|
return null; |
||||||
|
} else { |
||||||
|
if (rm.isDebug() || jr == null) { |
||||||
|
jr = (JasperReport) JRLoader.loadObject(inputStream); |
||||||
|
rm.setJasperRoport(jr); |
||||||
|
} |
||||||
|
|
||||||
|
if (rm.getExtParam() != null) { |
||||||
|
((Map)params).putAll(rm.getExtParam()); |
||||||
|
} |
||||||
|
|
||||||
|
// ((Map)params).put("companyInfo", Configers.getEnumConfiger("company").getOption());
|
||||||
|
SubReportModel subReport = null; |
||||||
|
JasperReport subJS = null; |
||||||
|
ReportModel subRM = null; |
||||||
|
Collection<?> subData = null; |
||||||
|
List<SubReportModel> subReports = rm.getSubReports(); |
||||||
|
if (subReports != null && subReports.size() > 0) { |
||||||
|
for(int i = 0; i < subReports.size(); ++i) { |
||||||
|
subReport = (SubReportModel)subReports.get(i); |
||||||
|
subRM = ReportInfoReader.getReportModel(subReport.getSubReportId()); |
||||||
|
subJS = subRM.getJasperRoport(); |
||||||
|
if (subRM.isDebug() || subJS == null) { |
||||||
|
subJS = (JasperReport)JRLoader.loadObject(PathReader.class.getResourceAsStream(subRM.getTemplatePath())); |
||||||
|
subRM.setJasperRoport(subJS); |
||||||
|
} |
||||||
|
|
||||||
|
subData = (Collection) Function.getPropertyValue(((Map)params).get("jasper_head_data"), subReport.getPropertyName()); |
||||||
|
((Map)params).put("subReport_" + subReport.getJsReportParamName(), subJS); |
||||||
|
((Map)params).put("subData_" + subReport.getDataParamName(), subData != null ? new JRBeanCollectionDataSource(subData) : null); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
JasperPrint jp = JasperFillManager.fillReport(jr, (Map)params, new JRBeanCollectionDataSource((Collection)mainData)); |
||||||
|
mainData = null; |
||||||
|
subData = null; |
||||||
|
if (jp == null) { |
||||||
|
throw new Exception("无法生成导出或打印资源!"); |
||||||
|
} else { |
||||||
|
return jp; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public static final ArrayList<JasperPrint> getJasperPrints(String reportId, List<PrintData> data, Map<String, Object> pubParamMap) throws Exception { |
||||||
|
ArrayList<JasperPrint> jps = new ArrayList(data.size()); |
||||||
|
|
||||||
|
for(int i = 0; i < data.size(); ++i) { |
||||||
|
PrintData d = (PrintData)data.get(i); |
||||||
|
if (d.getParams() == null) { |
||||||
|
d.setParams(new HashMap()); |
||||||
|
} |
||||||
|
|
||||||
|
d.getParams().putAll(pubParamMap); |
||||||
|
JasperPrint jp = getJasperPrint(reportId, d.getData(), d.getParams()); |
||||||
|
jps.add(jp); |
||||||
|
} |
||||||
|
|
||||||
|
return jps; |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,176 @@ |
|||||||
|
//package org.springblade.desk.energy.util;
|
||||||
|
//
|
||||||
|
//import com.itextpdf.text.*;
|
||||||
|
//import com.itextpdf.text.pdf.*;
|
||||||
|
//
|
||||||
|
//import java.io.IOException;
|
||||||
|
//
|
||||||
|
///**
|
||||||
|
// * @Author xx
|
||||||
|
// * @Date 2023/12/15 10:05
|
||||||
|
// * @Description: 导出pdf添加页数
|
||||||
|
// * @Version 1.0
|
||||||
|
// */
|
||||||
|
//public class PdfPageUtil extends PdfPageEventHelper {
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 页眉
|
||||||
|
// */
|
||||||
|
// //public String header = "itext测试页眉";
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 文档字体大小,页脚页眉最好和文本大小一致
|
||||||
|
// */
|
||||||
|
// public int presentFontSize = 15;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 文档页面大小,最好前面传入,否则默认为A4纸张
|
||||||
|
// */
|
||||||
|
// public Rectangle pageSize = PageSize.A4;
|
||||||
|
//
|
||||||
|
// // 模板
|
||||||
|
// public PdfTemplate total;
|
||||||
|
//
|
||||||
|
// // 基础字体对象
|
||||||
|
// public BaseFont bf = null;
|
||||||
|
//
|
||||||
|
// // 利用基础字体生成的字体对象,一般用于生成中文文字
|
||||||
|
// public Font fontDetail = null;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// *
|
||||||
|
// * 无参构造方法.
|
||||||
|
// *
|
||||||
|
// */
|
||||||
|
// public PdfPageUtil() {
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// *
|
||||||
|
// * 构造方法.
|
||||||
|
// *
|
||||||
|
// * @param
|
||||||
|
// *
|
||||||
|
// * @param presentFontSize
|
||||||
|
// * 数据体字体大小
|
||||||
|
// * @param pageSize
|
||||||
|
// * 页面文档大小,A4,A5,A6横转翻转等Rectangle对象
|
||||||
|
// */
|
||||||
|
// public PdfPageUtil( int presentFontSize, Rectangle pageSize) {
|
||||||
|
// this.presentFontSize = presentFontSize;
|
||||||
|
// this.pageSize = pageSize;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public void setPresentFontSize(int presentFontSize) {
|
||||||
|
// this.presentFontSize = presentFontSize;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// *
|
||||||
|
// * 文档打开时创建模板
|
||||||
|
// */
|
||||||
|
// @Override
|
||||||
|
// public void onOpenDocument(PdfWriter writer, Document document) {
|
||||||
|
// // 共 页 的矩形的长宽高
|
||||||
|
// total = writer.getDirectContent().createTemplate(50, 50);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// *
|
||||||
|
// *关闭每页的时候,写入页眉,写入'第几页共'这几个字。
|
||||||
|
// */
|
||||||
|
// @Override
|
||||||
|
// public void onEndPage(PdfWriter writer, Document document) {
|
||||||
|
// this.addPage(writer, document);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// //加分页
|
||||||
|
// public void addPage(PdfWriter writer, Document document){
|
||||||
|
// //设置分页页眉页脚字体
|
||||||
|
// try {
|
||||||
|
// if (bf == null) {
|
||||||
|
// bf = BaseFont.createFont("C:/Windows/Fonts/simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.EMBEDDED );
|
||||||
|
// }
|
||||||
|
// if (fontDetail == null) {
|
||||||
|
// fontDetail = new Font(bf, presentFontSize, Font.NORMAL);// 数据体字体
|
||||||
|
// }
|
||||||
|
// } catch (DocumentException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 1.写入页眉
|
||||||
|
//// ColumnText.showTextAligned(writer.getDirectContent(),
|
||||||
|
//// Element.ALIGN_LEFT, new Phrase(header, fontDetail),
|
||||||
|
//// document.left(), document.top() + 20, 0);
|
||||||
|
// // 2.写入前半部分的 第 X页/共
|
||||||
|
// int pageS = writer.getPageNumber();
|
||||||
|
// //String foot1 = "第 " + pageS + " 页 /共";
|
||||||
|
// String foot1 = pageS +"/";
|
||||||
|
// Phrase footer = new Phrase(foot1, fontDetail);
|
||||||
|
//
|
||||||
|
// // 3.计算前半部分的foot1的长度,后面好定位最后一部分的'Y页'这俩字的x轴坐标,字体长度也要计算进去 = len
|
||||||
|
// float len = bf.getWidthPoint(foot1, presentFontSize);
|
||||||
|
//
|
||||||
|
// // 4.拿到当前的PdfContentByte
|
||||||
|
// PdfContentByte cb = writer.getDirectContent();
|
||||||
|
//
|
||||||
|
// // 5.写入页脚1,x轴就是(右margin+左margin + right() -left()- len)/2.0F
|
||||||
|
// ColumnText
|
||||||
|
// .showTextAligned(
|
||||||
|
// cb,
|
||||||
|
// Element.ALIGN_CENTER,
|
||||||
|
// footer,
|
||||||
|
// (document.rightMargin() + document.right()
|
||||||
|
// + document.leftMargin() - document.left() - len) / 2.0F ,
|
||||||
|
// document.bottom() - 10, 0);
|
||||||
|
// cb.addTemplate(total, (document.rightMargin() + document.right()
|
||||||
|
// + document.leftMargin() - document.left()) / 2.0F ,
|
||||||
|
// document.bottom() - 10); // 调节模版显示的位置
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//// //加水印
|
||||||
|
//// public void addWatermark(PdfWriter writer){
|
||||||
|
//// // 水印图片
|
||||||
|
//// Image image;
|
||||||
|
//// try {
|
||||||
|
//// image = Image.getInstance("./web/images/001.jpg");
|
||||||
|
//// PdfContentByte content = writer.getDirectContentUnder();
|
||||||
|
//// content.beginText();
|
||||||
|
//// // 开始写入水印
|
||||||
|
//// for(int k=0;k<5;k++){
|
||||||
|
//// for (int j = 0; j <4; j++) {
|
||||||
|
//// image.setAbsolutePosition(150*j,170*k);
|
||||||
|
//// content.addImage(image);
|
||||||
|
//// }
|
||||||
|
//// }
|
||||||
|
//// content.endText();
|
||||||
|
//// } catch (IOException | DocumentException e) {
|
||||||
|
//// // TODO Auto-generated catch block
|
||||||
|
//// e.printStackTrace();
|
||||||
|
//// }
|
||||||
|
//// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// *
|
||||||
|
// * 关闭文档时,替换模板,完成整个页眉页脚组件
|
||||||
|
// */
|
||||||
|
// @Override
|
||||||
|
// public void onCloseDocument(PdfWriter writer, Document document) {
|
||||||
|
// // 关闭文档的时候,将模板替换成实际的 Y 值
|
||||||
|
// total.beginText();
|
||||||
|
// // 生成的模版的字体、颜色
|
||||||
|
// total.setFontAndSize(bf, presentFontSize);
|
||||||
|
// //页脚内容拼接 如 第1页/共2页
|
||||||
|
// //String foot2 = " " + (writer.getPageNumber()) + " 页";
|
||||||
|
// //页脚内容拼接 如 第1页/共2页
|
||||||
|
// String foot2 = String.valueOf(writer.getPageNumber());
|
||||||
|
// // 模版显示的内容
|
||||||
|
// total.showText(foot2);
|
||||||
|
// total.endText();
|
||||||
|
// total.closePath();
|
||||||
|
// }
|
||||||
|
//}
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
|
||||||
|
<Reports> |
||||||
|
<include fileName="/configs/report/safety_report.xml"></include> |
||||||
|
|
||||||
|
</Reports> |
||||||
@ -0,0 +1,6 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<Reports> |
||||||
|
<!-- 巡检点打印 --> |
||||||
|
<Report reportId="safety_inspectionPoint" reportName="巡检点" templatePath="/configs/jasperReport/safety/safety_inspectionPoint.jasper" debug="true"/> |
||||||
|
|
||||||
|
</Reports> |
||||||
@ -0,0 +1,159 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<config> |
||||||
|
|
||||||
|
<!-- |
||||||
|
config格式: 一组值: |
||||||
|
<item id="serverInfo" desc="服务器信息"> |
||||||
|
<option code="serverAddr"></option> |
||||||
|
<option code="serverPort"></option> |
||||||
|
<option code="serverName"></option> |
||||||
|
</item> |
||||||
|
|
||||||
|
单个值: |
||||||
|
<option code="serverName"></option> |
||||||
|
--> |
||||||
|
|
||||||
|
<!-- 用户请求路由格式 |
||||||
|
<item id="user.request.router" desc="用户请求路由"> |
||||||
|
<option code="B">/customer</option> |
||||||
|
</item> |
||||||
|
--> |
||||||
|
|
||||||
|
<!--软件注册--> |
||||||
|
<item id="register" desc="软件注册"> |
||||||
|
<option code="reg_sn" desc="序列号">VIDEA20YKH1S24WW9QR8VUZF66Z0ABBPNSFCBHW</option> |
||||||
|
<option code="reg_code" desc="注册码">GYGLNJNXPGGJXGHRGUTHWHPWXTGQPYHYNJSPXHRGWYRKYWWQ</option> |
||||||
|
<option code="reg_date" desc="注册时间">2022-03-31</option> |
||||||
|
</item> |
||||||
|
|
||||||
|
<!-- 客户信息 --> |
||||||
|
<item id="company" desc="客户信息"> |
||||||
|
<option code="companyName" desc="客户公司的名称"></option> |
||||||
|
<option code="companySN" desc="客户公司的简称"></option> |
||||||
|
<option code="companyEN" desc="客户公司的英文名称"></option> |
||||||
|
<option code="companybank" desc="客户公司的开户银行"></option> |
||||||
|
<option code="companyAccount" desc="客户公司的开户银行帐号"></option> |
||||||
|
<option code="companyTaxNo" desc="客户公司的税号"></option> |
||||||
|
<option code="companyAddr" desc="客户公司的地址"></option> |
||||||
|
<option code="companyPost" desc="客户公司的邮编"></option> |
||||||
|
<option code="companyHome" desc="客户公司的主页地址"></option> |
||||||
|
<option code="companyTel" desc="客户公司的电话"></option> |
||||||
|
<option code="companyFax" desc="客户公司的传真"></option> |
||||||
|
<option code="companyMail" desc="客户公司的电邮"></option> |
||||||
|
</item> |
||||||
|
|
||||||
|
<!--密码验证次数--> |
||||||
|
<item id="account" desc="账户验证次数"> |
||||||
|
<option code="tryTimes">5</option> |
||||||
|
</item> |
||||||
|
|
||||||
|
<!-- 附件存放地址 --> |
||||||
|
<option code="upload.dir">uploaded</option> |
||||||
|
|
||||||
|
<!-- 系统启用时间 --> |
||||||
|
<option code="project_startup_date">2022-08-27 00:00:00</option> |
||||||
|
<!-- 库存查询,false本地查询,true服务器查询 --> |
||||||
|
<option code="nativeOrServe">false</option> |
||||||
|
<!-- 物料查询,开始时间 --> |
||||||
|
<option code="goodsInfoStartDate">2022-01-01 00:00:00</option> |
||||||
|
|
||||||
|
<!--基础资料——获取物料信息--> |
||||||
|
<option code="bsGetGoodsInfo">false</option> |
||||||
|
<!--基础资料——获取飞拔信息--> |
||||||
|
<option code="bsGetFeiBaInfo">false</option> |
||||||
|
<!--工艺管理——创建工艺特殊过程任务-->kanban/getBatchNumAfter |
||||||
|
<option code="craSpecTask">false</option> |
||||||
|
<!--工艺管理——到期提醒--> |
||||||
|
<option code="craExpRem">false</option> |
||||||
|
<!--安全管理——创建安全点检任务--> |
||||||
|
<option code="safSpotTask">false</option> |
||||||
|
<!--安全管理——创建安全巡检任务--> |
||||||
|
<option code="safPatrolTask">false</option> |
||||||
|
<!--外协管理——创建外协试验任务--> |
||||||
|
<option code="oemTextTask">false</option> |
||||||
|
<!--外协管理——创建外协巡检任务--> |
||||||
|
<option code="oemPatrolTask">false</option> |
||||||
|
<!--外协管理——查询外协特殊过程任务--> |
||||||
|
<option code="oemProcessTask">false</option> |
||||||
|
<!--外协管理——外协试验任务发送--> |
||||||
|
<option code="oemSendTestPj">false</option> |
||||||
|
<!--外协管理——外协试验任务结果查询--> |
||||||
|
<option code="oemQueryTestPj">false</option> |
||||||
|
<!--外协管理——外协巡检任务发送--> |
||||||
|
<option code="oemSendInsTask">false</option> |
||||||
|
<!--外协管理——外协巡检任务结果查询--> |
||||||
|
<option code="oemQueryInsTask">false</option> |
||||||
|
<!--质量管理——创建质量化学参数录入任务--> |
||||||
|
<option code="quaBathHandle">false</option> |
||||||
|
<!--质量管理——创建质量试验任务--> |
||||||
|
<option code="quaTextTask">false</option> |
||||||
|
<!--质量管理——获取生产追溯数据--> |
||||||
|
<option code="quaProduceRun">false</option> |
||||||
|
<!--计量管理——获取记录仪信息--> |
||||||
|
<option code="metGetCrInfo">false</option> |
||||||
|
<!--计量管理——获取计量信息--> |
||||||
|
<option code="metGetMetInfo">false</option> |
||||||
|
<!--计量管理——获取设备维修记录--> |
||||||
|
<option code="metGetCurInfo">false</option> |
||||||
|
<!--能源管理——更新产线、班组的实际用水用电量--> |
||||||
|
<option code="eneUpdateUsed">false</option> |
||||||
|
<!--能源管理——按小时保存用水用电量历史数据--> |
||||||
|
<option code="eneSaveHr">false</option> |
||||||
|
<!--设备管理——获取设备信息--> |
||||||
|
<option code="equGetEcInfo">false</option> |
||||||
|
<!--分派管理——生产单位日产能初始化--> |
||||||
|
<option code="capacityTask">false</option> |
||||||
|
<!--仓库管理——采购订单进度查询--> |
||||||
|
<option code="wmsQueryBuyRate">false</option> |
||||||
|
<!--报表管理——查询参数设置数据--> |
||||||
|
<option code="rpParameterSet">false</option> |
||||||
|
<!-- 酸雾塔报警记录--> |
||||||
|
<option code="rpAcidMistTower">false</option> |
||||||
|
<!-- 环保管理——巡检任务触发--> |
||||||
|
<option code="epInspectionTasks">false</option> |
||||||
|
<!-- 设备管理——设备报修--> |
||||||
|
<option code="deviceRepair">false</option> |
||||||
|
<!-- 环保管理——酸雾塔PH报警--> |
||||||
|
<option code="towerSosRec">false</option> |
||||||
|
<!-- 设备管理——产量推送--> |
||||||
|
<option code="proPush">false</option> |
||||||
|
<!-- 自动分派已入库订单--> |
||||||
|
<option code="autoDispatch">false</option> |
||||||
|
<!--自动刷新生产计划状态--> |
||||||
|
<option code="autoDispatchPlan">false</option> |
||||||
|
<!-- 解锁账户--> |
||||||
|
<option code="unlockAccount">false</option> |
||||||
|
<!-- 调换班组--> |
||||||
|
<option code="exchangeTeamTime">false</option> |
||||||
|
<option code="exchangeTeam">002:003,</option> |
||||||
|
<!--压饼模责任人--> |
||||||
|
<option code="ybmUser">kaaosi</option> |
||||||
|
<!--急件问题停滞--> |
||||||
|
<option code="stagnateTimer">false</option> |
||||||
|
<!--测厚仪接口调用是否输出日志--> |
||||||
|
<option code="getChyData">false</option> |
||||||
|
<!--解除绑定--> |
||||||
|
<option code="unBindEc">false</option> |
||||||
|
<!--烧结设备数据抓取--> |
||||||
|
<option code="sjDataCapture">false</option> |
||||||
|
<!--槽液精细化-计划类-任务发起--> |
||||||
|
<option code="planClassTask">false</option> |
||||||
|
<!--烧结转试查询数据状态--> |
||||||
|
<option code="testPlanIncomplete">false</option> |
||||||
|
<!--自动调班--> |
||||||
|
<option code="teamRotation">false</option> |
||||||
|
<!--年度数据存储--> |
||||||
|
<option code="yearDataStorage">false</option> |
||||||
|
<!--班组准时率--> |
||||||
|
<option code="teamPunctuality">false</option> |
||||||
|
<!--获取测厚仪数据--> |
||||||
|
<option code="queryChyData">false</option> |
||||||
|
<!--获取首页统计数量--> |
||||||
|
<option code="homeStatisNumTask">false</option> |
||||||
|
<!--获取在线人员统计--> |
||||||
|
<option code="onlineStatTask">false</option> |
||||||
|
<!--首页待办消息缓存--> |
||||||
|
<option code="flowQueueForCheckTask">false</option> |
||||||
|
<!--每天定时更新待办消息到redis--> |
||||||
|
<option code="flowQueueForCheckDay">false</option> |
||||||
|
</config> |
||||||
Loading…
Reference in new issue