Sfoglia il codice sorgente

添加表注释和表字段注释

wanwei 7 mesi fa
parent
commit
5f09d21416

+ 75 - 0
src/main/java/kd/bos/newdevportal/table/TableListPlugin.java

@@ -0,0 +1,75 @@
+package kd.bos.newdevportal.table;
+
+import kd.bos.dataentity.utils.StringUtils;
+import kd.bos.db.DB;
+import kd.bos.db.DBRoute;
+import kd.bos.entity.EntityMetadataCache;
+import kd.bos.entity.datamodel.ListSelectedRow;
+import kd.bos.entity.datamodel.ListSelectedRowCollection;
+import kd.bos.exception.KDException;
+import kd.bos.form.control.events.ItemClickEvent;
+import kd.bos.list.BillList;
+import kd.bos.metadata.dao.MetadataDao;
+import java.util.EventObject;
+import java.util.Iterator;
+
+/**
+ * TableListPlugin 添加表注释和表字段注释
+ * <p>
+ * 添加表注释和表字段注释
+ * </p>
+ *
+ * @author ww
+ * @version 1.0
+ */
+public class TableListPlugin extends TableManagerListPlugin {
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+        this.addItemClickListeners(new String[]{"toolbarap"});
+    }
+    @Override
+    public void itemClick(ItemClickEvent evt) {
+        String itemKey = evt.getItemKey();
+        if ("nckd_remark".equals(itemKey)) {
+            BillList billList = (BillList)this.getControl("billlistap");
+            ListSelectedRowCollection list =  billList.getSelectedRows();
+            for (ListSelectedRow detail : list) {
+                Object pk = detail.getPrimaryKeyValue();
+                String pkStr = String.valueOf(pk);
+                String[] info = pkStr.split("@@");
+                if (info.length < 2) {
+                    throw new KDException("err data");
+                }
+
+                //获取数据字典明细
+                String tablename = info[0];//表名称
+                String entityId = info[1];//id
+                String dbroute = EntityMetadataCache.getDataEntityType(MetadataDao.getEntityNumberById(info[1])).getDBRouteKey();
+                TableInfoProvider provider = TableInfoProvider.create(DBRoute.of(dbroute == null ? "sys" : dbroute));
+                String refEntityNum =  StringUtils.isNotBlank(entityId) ? MetadataDao.getNumberById(entityId) : null;
+                DesignerTable table =  provider.getTableInfo(tablename == null ? "t_bd_attachment" : tablename, refEntityNum);
+
+                //表注释
+                String comment = table.getName();
+                StringBuilder sql = new StringBuilder();
+                if (table != null) {
+                    sql.append("/*dialect*/ COMMENT ON TABLE " + tablename + " IS '" + comment + "';");
+                    //获取表字段
+                    Iterator fields = table.getCols().iterator();
+                    while(fields.hasNext()) {
+                        DesignerColumn col = (DesignerColumn)fields.next();
+                        String f_fieldkey = col.getCode();//字段标识
+                        String f_fieldname = col.getName();//字段名称
+                        sql.append("/*dialect*/ COMMENT ON COLUMN " + tablename + "." +f_fieldkey + " IS '" + f_fieldname + "';");
+                    }
+                    // 获取SQL字符串
+                    String sqlContent = sql.toString();
+
+                    //执行
+                    DBRoute route = DBRoute.of(dbroute);
+                    DB.execute(route, sqlContent);
+                }
+            }
+        }
+    }
+}