diff --git a/yem-base/yem-base-common/src/main/java/yem/base/common/module/meta/list/FieldKeyStoreList.java b/yem-base/yem-base-common/src/main/java/yem/base/common/module/meta/list/FieldKeyStoreList.java new file mode 100644 index 0000000..0273afd --- /dev/null +++ b/yem-base/yem-base-common/src/main/java/yem/base/common/module/meta/list/FieldKeyStoreList.java @@ -0,0 +1,30 @@ +package yem.base.common.module.meta.list; + +import com.alibaba.druid.util.StringUtils; +import kd.bos.form.ShowType; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.list.plugin.AbstractListPlugin; +import kd.bos.report.ReportShowParameter; + + +/** + * 字段标识库 列表插件 + */ +public class FieldKeyStoreList extends AbstractListPlugin { + + @Override + public void itemClick(ItemClickEvent evt) { + super.itemClick(evt); + String key = evt.getItemKey(); + if (StringUtils.equals("yem_barrptdiff", key)) { //异常字段查询 + //获得报表显示参数 + ReportShowParameter reportShowParameter = new ReportShowParameter(); + //设置报表标识 + reportShowParameter.setFormId("yem_base_filekeydiff"); + //设置弹出页面的打开方式 + reportShowParameter.getOpenStyle().setShowType(ShowType.Modal); + //绑定子页面到当前页面 + this.getView().showForm(reportShowParameter); + } + } +} diff --git a/yem-base/yem-base-common/src/main/java/yem/base/common/module/meta/report/FileKeyDiffRptListDataPlugin.java b/yem-base/yem-base-common/src/main/java/yem/base/common/module/meta/report/FileKeyDiffRptListDataPlugin.java new file mode 100644 index 0000000..cc38404 --- /dev/null +++ b/yem-base/yem-base-common/src/main/java/yem/base/common/module/meta/report/FileKeyDiffRptListDataPlugin.java @@ -0,0 +1,159 @@ +package yem.base.common.module.meta.report; + +import kd.bos.algo.*; +import kd.bos.algo.input.CollectionInput; +import kd.bos.entity.report.AbstractReportListDataPlugin; +import kd.bos.entity.report.ReportQueryParam; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.QueryServiceHelper; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * 异常字段表 数据包插件 + */ +public class FileKeyDiffRptListDataPlugin extends AbstractReportListDataPlugin { + + private static final String algoKey = "FileKeyDiffListDataPlugin"; + public static final DataType[] DATATYPESXS = { + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType, + DataType.StringType }; + public static final String[] FIELDSXS = { + "yem_bizcloudname", + "yem_appname", + "yem_entitykey", + "yem_entityname", + "yem_modeltype", + "yem_parentname", + "yem_entitysname", + "yem_fieldnumber", + "yem_fieldnumbers", + "yem_aliasname", + "yem_fieldname", + "yem_fieldnames", + "yem_datatype", + "yem_fieldtype", + "yem_basedatatype", + "yem_textfield1"}; + + @Override + public DataSet query(ReportQueryParam queryParam, Object o) throws Throwable { + + // 创建显示行字段 + Collection coll = new ArrayList<>(); + RowMeta createRowMeta = RowMetaFactory.createRowMeta(FIELDSXS, DATATYPESXS);//字段集合 + CollectionInput collectionInput = new CollectionInput(createRowMeta, coll); + DataSet createDataSet = Algo.create(algoKey).createDataSet(collectionInput);//数据集合 + +// // 获取过滤 +// List filters = queryParam.getFilter().getFilterItems(); +// String tpv_ordernumm = null; +// for (FilterItemInfo filterItem : filters) { +// switch (filterItem.getPropName()) { +// case "tpv_ordernumm": +// tpv_ordernumm = filterItem.getString(); +// break; +// default: +// break; +// } +// } + List filterList1 = new ArrayList<>(); + filterList1.add(new QFilter("yem_fieldnumber", QCP.not_equals2, "billno")); + filterList1.add(new QFilter("yem_fieldnumber", QCP.not_equals2, "id")); + filterList1.add(new QFilter("yem_fieldnumber", QCP.not_equals2, "org")); + filterList1.add(new QFilter("yem_fieldnumber", QCP.not_equals2, "seq")); + + DataSet dataSet1 = QueryServiceHelper.queryDataSet(algoKey, "yem_base_fieldkeystore", + "id,yem_bizcloudname ,yem_appname, yem_entitykey , yem_entityname, yem_modeltype, yem_parentname," + + " yem_entitysname, yem_fieldnumber, yem_fieldnumbers, yem_aliasname, yem_fieldname, yem_fieldnames ," + + " yem_datatype, yem_fieldtype, yem_basedatatype" + ,filterList1.toArray(new QFilter[0]), "yem_fieldname desc"); + GroupbyDataSet groupby1 = dataSet1.groupBy(new String[]{"yem_fieldnumber","yem_aliasname","yem_fieldname","yem_fieldnames"}); + groupby1.minP("id","yem_bizcloudname"); + groupby1.minP("id","yem_appname"); + groupby1.minP("id","yem_entitykey"); + groupby1.minP("id","yem_entityname"); + groupby1.minP("id","yem_modeltype"); + groupby1.minP("id","yem_parentname"); + groupby1.minP("id","yem_entitysname"); + groupby1.minP("id","yem_datatype"); + groupby1.minP("id","yem_fieldtype"); + groupby1.minP("id","yem_basedatatype"); + groupby1.minP("id","yem_fieldnumbers"); + groupby1.count("yem_textfield1"); + DataSet dataSet2 = groupby1.finish(); //构造完毕,返回DataSet + dataSet2 = dataSet2.orderBy(new String[]{"yem_fieldnames"}); + + DataSet dataSet3 = dataSet2.copy(); + dataSet3 = dataSet3.select("yem_fieldnames as yem_fieldnames2"); + GroupbyDataSet groupby2 = dataSet3.groupBy(new String[]{"yem_fieldnames2"}); + groupby2.count("yem_count"); + DataSet dataSet4 = groupby2.finish(); //构造完毕,返回DataSet + dataSet4 = dataSet4.where("yem_count>1"); + + DataSet dataSet5 = dataSet4.join(dataSet2,JoinType.INNER).on("yem_fieldnames2", "yem_fieldnames") + .select("yem_bizcloudname", "yem_appname", "yem_entitykey","yem_entityname", "yem_modeltype", + "yem_parentname", "yem_entitysname", "yem_fieldnumber","yem_fieldnumbers", "yem_aliasname", + "yem_fieldname", "yem_fieldnames", "yem_datatype","yem_fieldtype", "yem_basedatatype","yem_textfield1") + .finish(); + + DataSet dataSetfinal = dataSet5.copy(); + for (Row row : dataSetfinal) { + String yem_bizcloudname = row.getString("yem_bizcloudname"); + String yem_appname = row.getString("yem_appname"); + String yem_entitykey = row.getString("yem_entitykey"); + String yem_entityname = row.getString("yem_entityname"); + String yem_modeltype = row.getString("yem_modeltype"); + String yem_parentname = row.getString("yem_parentname"); + String yem_entitysname = row.getString("yem_entitysname"); + String yem_fieldnumber = row.getString("yem_fieldnumber"); + String yem_fieldnumbers = row.getString("yem_fieldnumbers"); + String yem_aliasname = row.getString("yem_aliasname"); + String yem_fieldname = row.getString("yem_fieldname"); + String yem_fieldnames = row.getString("yem_fieldnames"); + String yem_datatype = row.getString("yem_datatype"); + String yem_fieldtype = row.getString("yem_fieldtype"); + String yem_basedatatype = row.getString("yem_basedatatype"); + String yem_textfield1 = row.getString("yem_textfield1"); + + Object[] tempData = new Object[FIELDSXS.length]; + tempData[0] = yem_bizcloudname; + tempData[1] = yem_appname; + tempData[2] = yem_entitykey; + tempData[3] = yem_entityname; + tempData[4] = yem_modeltype; + tempData[5] = yem_parentname; + tempData[6] = yem_entitysname; + tempData[7] = yem_fieldnumber; + tempData[8] = yem_fieldnumbers; + tempData[9] = yem_aliasname; + tempData[10] = yem_fieldname; + tempData[11] = yem_fieldnames; + tempData[12] = yem_datatype; + tempData[13] = yem_fieldtype; + tempData[14] = yem_basedatatype; + tempData[15] = yem_textfield1; + + coll.add(tempData); + } + + return createDataSet; + } +} diff --git a/yem-base/yem-base-common/src/main/java/yem/base/common/module/plugin/report/FileKeyDiffRptFromDataPlugin.java b/yem-base/yem-base-common/src/main/java/yem/base/common/module/plugin/report/FileKeyDiffRptFromDataPlugin.java new file mode 100644 index 0000000..f4409c1 --- /dev/null +++ b/yem-base/yem-base-common/src/main/java/yem/base/common/module/plugin/report/FileKeyDiffRptFromDataPlugin.java @@ -0,0 +1,19 @@ +package yem.base.common.module.plugin.report; + +import kd.bos.report.filter.ReportFilter; +import kd.bos.report.plugin.AbstractReportFormPlugin; + +import java.util.EventObject; + +/** + * 异常字段表 表单插件 + */ +public class FileKeyDiffRptFromDataPlugin extends AbstractReportFormPlugin { + + @Override + public void afterCreateNewData(EventObject e) { + super.afterCreateNewData(e); + ReportFilter filter = this.getView().getControl("reportfilterap"); + filter.search(); + } +}