This commit is contained in:
LHB-rabbit 2025-02-15 16:06:13 +08:00
commit 678508f626
6 changed files with 493 additions and 38 deletions

View File

@ -7,6 +7,7 @@ import kd.bos.cache.CacheFactory;
import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.entity.LocaleString;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.entity.EntityMetadataCache;
import kd.bos.entity.MainEntityType;
@ -21,12 +22,17 @@ import kd.bos.form.control.AttachmentPanel;
import kd.bos.form.control.Control;
import kd.bos.form.control.EntryGrid;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.field.ComboEdit;
import kd.bos.form.field.ComboItem;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.lang.Lang;
import kd.bos.metadata.dao.MetaCategory;
import kd.bos.metadata.dao.MetadataDao;
import kd.bos.metadata.form.ControlAp;
import kd.bos.metadata.form.FormMetadata;
import kd.bos.metadata.form.control.AttachmentPanelAp;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.sdk.plugin.Plugin;
@ -49,7 +55,26 @@ public class PDFMergeDynamicPlugin extends AbstractFormPlugin implements Plugin
@Override
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
initData();
IFormView parentView = this.getView().getParentView();
String parentFormName = parentView.getModel().getDataEntity().getDataEntityType().getName();
DynamicObject orgBillObject = BusinessDataServiceHelper.loadSingle("bos_entityobject",
new QFilter[]{new QFilter("number", QCP.equals, parentFormName)});
this.getView().getModel().setValue("yem_srcentity",orgBillObject);
this.getView().setEnable(false,"yem_srcentity");
Map<String,String> attachControl = getAttachControl(parentFormName);
Set<String> attachControlKey = attachControl.keySet();
// 初始化 [目标面板]下拉列表项集合
String currLCId = Lang.get().toString();// 获取当前语言代码
List<ComboItem> entryItems = new ArrayList<>();
for (String name : attachControlKey) {
ComboItem comboItem = new ComboItem();
comboItem.setValue(attachControl.get(name));
comboItem.setCaption(new LocaleString(currLCId, "" + name));
entryItems.add(comboItem);
}
ComboEdit yemTargetkey = this.getControl("yem_targetkey");
yemTargetkey.setComboItems(entryItems);
initData(attachControlKey);
}
@Override
@ -58,7 +83,11 @@ public class PDFMergeDynamicPlugin extends AbstractFormPlugin implements Plugin
String operateKey = e.getOperateKey();
switch(operateKey){
case "refreshentry": // 刷新自动重新从父页面更新PDF文件明细
initData();
IFormView parentView = this.getView().getParentView();
String parentFormName = parentView.getModel().getDataEntity().getDataEntityType().getName();
Map<String,String> attachControl = getAttachControl(parentFormName);
Set<String> attachControlKey = attachControl.keySet();
initData(attachControlKey);
break;
default :
break;
@ -68,17 +97,13 @@ public class PDFMergeDynamicPlugin extends AbstractFormPlugin implements Plugin
/**
* PDF文件合并界面初始化
* */
private void initData(){
private void initData(Set<String> attachControlKey){
IFormView view = this.getView();
IDataModel model = view.getModel();
IFormView parentView = this.getView().getParentView();
// 清除分录
model.deleteEntryData("yem_entryentity");
FormShowParameter formShowParameter = view.getFormShowParameter();
String attachKey = formShowParameter.getCustomParam("srcAttachKey");
if (YEM.isEmpty(attachKey))return;
IFormView parentView = view.getParentView();
if (parentView == null) return;
DynamicObject dataEntity = parentView.getModel().getDataEntity();// 源单实体
for (String attachKey : attachControlKey) {
// 获取附件
AttachmentPanel panel = parentView.getControl(attachKey);
List<Map<String, Object>> attachs = panel.getAttachmentData();
@ -94,6 +119,7 @@ public class PDFMergeDynamicPlugin extends AbstractFormPlugin implements Plugin
}
}
}
}
@Override
public void registerListener(EventObject e) {
@ -106,29 +132,31 @@ public class PDFMergeDynamicPlugin extends AbstractFormPlugin implements Plugin
super.click(evt);
IFormView view = this.getView();
IFormView parentView = view.getParentView();
if (parentView == null)return;
Control source = (Control) evt.getSource();
String key = source.getKey();
// 获取需要合并的文件
EntryGrid treeEntryEntity = this.getControl("yem_entryentity");
String yemTargetkey = (String) view.getModel().getValue("yem_targetkey");
int[] rows = treeEntryEntity.getSelectRows();
switch(key){
case "btnok":
if (rows.length == 0 ){
this.getView().showErrorNotification(ResManager.loadKDString("请先选择需要合并的附件!", "PDFMergeDynamicPlugin_0", "yem-base"));
return;
}
if (rows.length < 2 ){
this.getView().showErrorNotification(ResManager.loadKDString("请至少选择两个文件进行合并!", "PDFMergeDynamicPlugin_1", "yem-base"));
return;
}
if (YEM.isEmpty(yemTargetkey)){
this.getView().showErrorNotification(ResManager.loadKDString("请先选择合并附件的目标面板!", "PDFMergeDynamicPlugin_0", "yem-base"));
return;
}
Arrays.sort(rows);
try {
mergeCreateFile(rows);
mergeCreateFile(rows,yemTargetkey);
} catch (IOException e) {
this.getView().showErrorNotification(ResManager.loadKDString("文件合并失败!", "PDFMergeDynamicPlugin_2", "yem-base"));
return;
}
view.returnDataToParent("success");
view.returnDataToParent(yemTargetkey);
view.close();
break;
case "btncancel":
@ -144,12 +172,9 @@ public class PDFMergeDynamicPlugin extends AbstractFormPlugin implements Plugin
// 合并生成文件并回传至源单
private void mergeCreateFile(int[] rows) throws IOException {
private void mergeCreateFile(int[] rows ,String yemTargetkey ) throws IOException {
// 获取源单数据
FormShowParameter formShowParameter = this.getView().getFormShowParameter();
String attachKey = formShowParameter.getCustomParam("targetAttachKey");
IFormView parentView = this.getView().getParentView();
if (YEM.isEmpty(attachKey) || parentView == null)return;
DynamicObject obj = parentView.getModel().getDataEntity();// 源单实体
SimpleDateFormat format = new SimpleDateFormat("HHmmss");
String date = format.format(new Date());
@ -219,7 +244,7 @@ public class PDFMergeDynamicPlugin extends AbstractFormPlugin implements Plugin
attachMap.put("creator", user == null ? "金小蝶":user.getString("name"));
attachMap.put("description", "");//description
attachMap.put("type", "pdf");
attachMap.put("fattachmentpanel",attachKey);
attachMap.put("fattachmentpanel",yemTargetkey);
attachMap.put("entityNum", "");
attachMap.put("billPkId", 0L);
attachMap.put("billno", "");
@ -227,9 +252,9 @@ public class PDFMergeDynamicPlugin extends AbstractFormPlugin implements Plugin
attachMap.put("endProgress", true);
attachMap.put("filesource", 1);
attachDataList.add(attachMap);
AttachmentPanel control = this.getView().getParentView().getControl(attachKey);
AttachmentPanel control = this.getView().getParentView().getControl(yemTargetkey);
control.upload(attachDataList);
this.getView().getParentView().updateView(attachKey);
this.getView().getParentView().updateView(yemTargetkey);
}
@ -286,19 +311,20 @@ public class PDFMergeDynamicPlugin extends AbstractFormPlugin implements Plugin
/**
* 获取源单实体所有附件面板的key
* 获取源单实体所有附件面板的key\name
* @param formName 源单标识
* */
private List<String> getAttachControl(String formName){
private Map<String,String> getAttachControl(String formName){
MainEntityType entityType = EntityMetadataCache.getDataEntityType(formName);
FormMetadata taskMeta = (FormMetadata) MetadataDao.readRuntimeMeta(MetadataDao.getIdByNumber(
entityType.getName(), MetaCategory.Form), MetaCategory.Form);
List<ControlAp<?>> items = taskMeta.getItems();
// 附件面板标识集合
List<String> attachmentPanelAp = new ArrayList<>();
Map<String,String> attachmentPanelAp = new HashMap<>();
items.forEach(item ->{
if(item instanceof AttachmentPanelAp){
attachmentPanelAp.add(item.getKey());
AttachmentPanelAp attachmentPanel = (AttachmentPanelAp) item;
attachmentPanelAp.put(String.valueOf(attachmentPanel.getName()),attachmentPanel.getKey());
}
});
return attachmentPanelAp;

View File

@ -0,0 +1,97 @@
package yem.base.common.module.attach.form;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.bill.OperationStatus;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.form.CloseCallBack;
import kd.bos.form.FormShowParameter;
import kd.bos.form.ShowType;
import kd.bos.form.control.Control;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.events.ClosedCallBackEvent;
import kd.sdk.plugin.Plugin;
import yem.base.common.utils.YEM;
import java.util.EventObject;
import java.util.HashMap;
import java.util.Map;
/**
* 单据界面插件
*/
public class PDFMergeFormPlugin extends AbstractBillPlugIn implements Plugin {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
Control control = this.getView().getControl("yem_pdf_merge");
if (control != null){
this.addClickListeners("yem_pdf_merge");
}
}
@Override
public void click(EventObject evt) {
super.click(evt);
Control source = (Control) evt.getSource();
String key = source.getKey();
if ("yem_pdf_merge".equals(key)){
FormShowParameter showParameter = new FormShowParameter();
showParameter.setStatus(OperationStatus.ADDNEW);
showParameter.getOpenStyle().setShowType(ShowType.Modal);
showParameter.setFormId("yem_base_pdfmerge");
Map<String, Object> map = new HashMap<>();
map.put("srcAttachKey", "attachmentpanel");
map.put("targetAttachKey", "signattachment");
showParameter.setCustomParams(map);
showParameter.setCloseCallBack(new CloseCallBack(this.getClass().getName(),"yem_base_pdfmerge"));
this.getView().showForm(showParameter);
}
}
@Override
public void afterDoOperation(AfterDoOperationEventArgs e) {
super.afterDoOperation(e);
String operateKey = e.getOperateKey();
OperationResult operationResult = e.getOperationResult();
if (!operationResult.isSuccess())return;
switch(operateKey){
case "filemerge":// 附件合并
showFileMergePage();
break;
default :
break;
}
}
// 打开附件合并界面
private void showFileMergePage(){
FormShowParameter showParameter = new FormShowParameter();
showParameter.setStatus(OperationStatus.ADDNEW);
showParameter.getOpenStyle().setShowType(ShowType.Modal);
showParameter.setFormId("yem_base_pdfmerge");
showParameter.setCloseCallBack(new CloseCallBack(this.getClass().getName(),"yem_base_pdfmerge"));
this.getView().showForm(showParameter);
}
@Override
public void closedCallBack(ClosedCallBackEvent e) {
super.closedCallBack(e);
String actionId = e.getActionId();
if ("yem_base_pdfmerge".equals(actionId)) {
// 返回目标附件面板key
String returnData = (String) e.getReturnData();
if (!YEM.isEmpty(returnData)){
// 刷新附件面板
this.getView().updateView(returnData);
this.getView().showSuccessNotification(ResManager.loadKDString("合并PDF文件成功", "PDFMergeFormPlugin_0", "yem-base"));
}
}
}
}

View File

@ -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);
}
}
}

View File

@ -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<Object[]> coll = new ArrayList<>();
RowMeta createRowMeta = RowMetaFactory.createRowMeta(FIELDSXS, DATATYPESXS);//字段集合
CollectionInput collectionInput = new CollectionInput(createRowMeta, coll);
DataSet createDataSet = Algo.create(algoKey).createDataSet(collectionInput);//数据集合
// // 获取过滤
// List<FilterItemInfo> 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<QFilter> 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;
}
}

View File

@ -0,0 +1,124 @@
package yem.base.common.module.meta.task;
import kd.bos.algo.DataSet;
import kd.bos.context.RequestContext;
import kd.bos.dataentity.OperateOption;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.report.FilterInfo;
import kd.bos.entity.report.ReportQueryParam;
import kd.bos.exception.KDException;
import kd.bos.orm.ORM;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.schedule.executor.AbstractTask;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.DeleteServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
import yem.base.common.module.meta.report.DataDictionaryRptQuery;
import yem.base.common.utils.YEM;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Description: 字段标识库 定时更新插件
* @author: lib
* @date: 2025/1/9 9:54
*/
public class FieldKeyStoreUpdateTaskPlugin extends AbstractTask implements Plugin {
@Override
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
// 获取参数
String bizcloudkey = (String) map.get("bizcloudkey");// 业务云标识
String appkeys = (String) map.get("appkeys");// 应用标识拼接
if (YEM.isEmpty(bizcloudkey) || YEM.isEmpty(appkeys))return;
String[] appkeyArray = appkeys.split(",");
for (int i = 0; i < appkeyArray.length; i++) {
String appkey = appkeyArray[i];
// 更新数据
try {
updateFieldKeyStore(bizcloudkey,appkey);
} catch (Throwable e) {
throw new KDException(e.getMessage());
}
}
}
/**
* @Description: 查询并更新字段标识库数据
* @function 功能
* 1根据业务云应用标识查询数据字典报表获取对应应用下所有表单元数据项
* 2根据所查结果分别查询每个元数据 对应表单字段
* 3查询字段标识库删除已有对应历史数据创建最新数据
* @purposes 定时任务更新调用
* @param bizcloudkey 业务云标识
* @param appkey 应用标识
* @return void
*/
private void updateFieldKeyStore (String bizcloudkey ,String appkey) throws Throwable {
// 定义List 用以收集 新增的数据
List<DynamicObject> creatNewList = new ArrayList<>();
// 定义List 用以收集 涉及到的表单ID
List<String> billIdList = new ArrayList<>();
// 查询 业务云/应用 的所有元数据实体
DataDictionaryRptQuery report = new DataDictionaryRptQuery();
ReportQueryParam Param = new ReportQueryParam();
FilterInfo filters = Param.getFilter();
filters.addFilterItem("yem_datefilter", "1");
filters.addFilterItem("yem_fbizcloud", bizcloudkey);
filters.addFilterItem("yem_fapp", appkey);
Param.setFilter(filters);
DataSet entityList = report.query(Param, null);
DynamicObjectCollection entityCollection = ORM.create().toPlainDynamicObjectCollection(entityList);
for (DynamicObject entity : entityCollection){
String yemEntityid = entity.getString("yem_entityid");// 表单ID
String yemEntitykey = entity.getString("yem_entitykey");// 表单标识
// 查询 元数据实体 的所有字段信息
DataSet entityFields = DataDictionaryRptQuery.queryDataBill(yemEntitykey);
DynamicObjectCollection fieldsCollection = ORM.create().toPlainDynamicObjectCollection(entityFields);
for(DynamicObject fields : fieldsCollection){
DynamicObject addNew = BusinessDataServiceHelper.newDynamicObject("yem_base_fieldkeystore");
addNew.set("name",yemEntitykey+fields.getString("yem_number2"));//名称
addNew.set("enable", "1");//使用状态
addNew.set("status", "C");//数据状态
addNew.set("yem_bizcloud",entity.getString("yem_bizcloud"));// 业务云ID
addNew.set("yem_bizcloudkey",entity.getString("yem_bizcloudkey"));// 业务云标识
addNew.set("yem_bizcloudname",entity.getString("yem_bizcloudname"));// 业务云名称
addNew.set("yem_appid",entity.getString("yem_appid"));// 应用ID
addNew.set("yem_appkey",entity.getString("yem_appkey"));// 应用标识
addNew.set("yem_appname",entity.getString("yem_appname"));// 应用名称
addNew.set("yem_dbroute",entity.getString("yem_dbroute"));// 数据库标识
addNew.set("yem_entityid",yemEntityid);// 表单ID
addNew.set("yem_entitykey",yemEntitykey);// 表单标识
addNew.set("yem_entityname",entity.getString("yem_entityname"));// 表单名称
addNew.set("yem_modeltype",entity.getString("yem_modeltype"));// 模型类型
addNew.set("yem_isv",entity.getString("yem_isv"));// 开发商标识
addNew.set("yem_parentname",fields.getString("yem_parent2"));// 父实体名称
addNew.set("yem_entitysname",entity.getString("yem_entity2"));// 实体名称
addNew.set("yem_fieldnumber",fields.getString("yem_number2"));// 字段编码
addNew.set("yem_fieldnumbers",fields.getString("yem_fullnumber2"));// 字段全编码
addNew.set("yem_aliasname",fields.getString("yem_alias2"));// 对应数据库字段名
addNew.set("yem_datatype",fields.getString("yem_aliastype2"));// 数据类型
addNew.set("yem_fieldname",fields.getString("yem_name2"));// 字段名称
addNew.set("yem_fieldnames",fields.getString("yem_fullname2"));// 字段全名
addNew.set("yem_fieldtype",fields.getString("yem_datatype2"));// 字段类型
addNew.set("yem_fieldtypekey",fields.getString("yem_datatype_key2"));// 字段类型key
addNew.set("yem_basedatatype",fields.getString("yem_basedatakey2"));// 基础资料类型
creatNewList.add(addNew);
}
billIdList.add(yemEntityid);
}
// 删除 字段标识库 中的历史数据
DeleteServiceHelper.delete("yem_base_fieldkeystore",
new QFilter[]{new QFilter("yem_entityid", QCP.in, billIdList)});
// 保存最新的数据
SaveServiceHelper.saveOperate("save","yem_base_fieldkeystore",
creatNewList.toArray(new DynamicObject[0]), OperateOption.create());
}
}

View File

@ -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();
}
}