src/main/java/com/product/mobile/core/controller/FaceMobileController.java
@@ -1,5 +1,6 @@ package com.product.mobile.core.controller; import com.product.common.lang.StringUtils; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.mobile.core.config.MobileCoreCode; @@ -57,7 +58,16 @@ try { //不验证传入的表名 可能会是 product_sys_flow_task/product_sys_flow_detail FieldSetEntity fse = BaseUtil.getFieldSetEntity(request); return BaseUtil.success(faceMobileService.getFlowFaceField(fse)); // //通过审批任务的uuid来查表单信息 // if (StringUtils.isEmpty(fse.getString("table_uuid")) && StringUtils.isEmpty(fse.getString("table_name"))) { // return BaseUtil.success(faceMobileService.getFlowFaceField(fse)); // }else { // //通过业务表信息查表单信息 // return BaseUtil.success(faceMobileService.getFaceFieldByTable(fse)); // } return BaseUtil.success(faceMobileService.getFaceConfig(fse)); } catch (BaseException e) { e.printStackTrace(); return error(e); src/main/java/com/product/mobile/core/entity/FaceFieldEntity.java
@@ -1,8 +1,6 @@ package com.product.mobile.core.entity; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Author cheng @@ -10,8 +8,10 @@ * @Desc */ public class FaceFieldEntity { private String table; private String fieldName; private String field; /** * 是否必填 @@ -20,12 +20,12 @@ /** * 显示名称 */ private String label; private String name; /** * 参照名称 */ private String advanceName; private String prompt; /** * 组件类型 @@ -87,14 +87,35 @@ private List<FaceFieldEntity> subField; private Map<String, Object> otherParams = new HashMap<>(); private String type; private String length; public String getFieldName() { return fieldName; public String getType() { return type; } public String getLength() { return length; } public void setFieldName(String fieldName) { this.fieldName = fieldName; public void setLength(String length) { this.length = length; } public void setType(String fieldType) { this.type = fieldType; } public String getField() { return field; } public void setField(String fieldName) { this.field = fieldName; } public String getRequired() { @@ -105,20 +126,20 @@ this.required = required; } public String getLabel() { return label; public String getName() { return name; } public void setLabel(String label) { this.label = label; public void setName(String label) { this.name = label; } public String getAdvanceName() { return advanceName; public String getPrompt() { return prompt; } public void setAdvanceName(String advanceName) { this.advanceName = advanceName; public void setPrompt(String advanceName) { this.prompt = advanceName; } public String getComponentType() { @@ -232,16 +253,11 @@ public void setSubField(List<FaceFieldEntity> subField) { this.subField = subField; } public Map<String, Object> getOtherParams() { return otherParams; public String getTable() { return table; } public void setOtherParams(Map<String, Object> otherParams) { this.otherParams = otherParams; } public Object putOtherParam(String key, Object value) { return otherParams.put(key, value); public void setTable(String tableUuid) { this.table = tableUuid; } } src/main/java/com/product/mobile/core/service/FaceMobileService.java
@@ -34,7 +34,129 @@ @Resource FlowDetailService flowDetailService; ///获取表单总入口 /** * * @param fse传入表名,或 表UUID * @return */ public List<FaceFieldEntity> getFaceConfig(FieldSetEntity fse) { String tableUuid=fse.getString("table_uuid"); if (tableUuid==null && StringUtils.isNotEmpty(fse.getString("uuid")) && StringUtils.isEmpty(fse.getString("table_name"))) { //通过业务表信息查表单信息 FieldSetEntity detailFse = getBaseDao().getFieldSetEntity(CmnConst.TABLE_FLOW_DETAIL, fse.getString(CmnConst.FIELD_UUID), false); if(detailFse!=null) { //获取表名 fse.setValue("table_name", detailFse.getString("table_name")); } } //通过审批任务的uuid来查表单信息 if (tableUuid==null && StringUtils.isNotEmpty(fse.getString("table_name"))) { FieldSetEntity tableInfo = BaseUtil.getSingleInfoByCache("所有表信息", new String[]{fse.getString("table_name")}); if (!FieldSetEntity.isEmpty(tableInfo)) { tableUuid = tableInfo.getString("uuid"); fse.setValue("table_uuid", tableUuid); } } if(tableUuid!=null) { FieldSetEntity tableInfo = BaseUtil.getSingleInfoByCache("所有表信息(uuid)", new String[]{tableUuid}); if (!FieldSetEntity.isEmpty(tableInfo)) { //获取表名 fse.setValue("table_name", tableInfo.getString("table_name")); } } List<FaceFieldEntity> ls=getFaceFieldByTable(fse); addproperty(tableUuid,fse.getString("table_name"),ls); //所有表单uuid自动添加,并为hidden return ls; } //递归把主表和子表的字段属性添加进去,如果没有配表单,则取表数据结构进行展示 /** * * @param ls查出来的表单信息 * @param tables 记录的所有表,对应的表单信息 */ private void addproperty(String table_uuid,String table_name,List<FaceFieldEntity> ls) { if(ls==null) { ls=new ArrayList<FaceFieldEntity>(); } if(ls.size()>0) { for(int i=0;i<ls.size();i++) { String subTableName=ls.get(i).getSubTableName();///可能是子表 if(StringUtils.isEmpty(subTableName)) {///主表字段 DataTableEntity dt = DataPoolCacheImpl.getInstance().getCacheData("表字段信息" ,new String[] {table_uuid,ls.get(i).getField()}); if(!DataTableEntity.isEmpty(dt)) { // if(StringUtils.isEmpty(ls.get(i).getType())) { // ls.get(i).setType(dt.getFieldSetEntity(0).getString("field_type")); // } if(StringUtils.isEmpty(ls.get(i).getPrompt()) && !StringUtils.isEmpty(dt.getFieldSetEntity(0).getString("field_reference"))) { ls.get(i).setPrompt(dt.getFieldSetEntity(0).getString("field_reference")); } if(StringUtils.isEmpty(ls.get(i).getRequired()) && !StringUtils.isEmpty(dt.getFieldSetEntity(0).getString("is_required"))) { ls.get(i).setRequired(dt.getFieldSetEntity(0).getString("is_required")); } if(StringUtils.isEmpty(ls.get(i).getName()) && !StringUtils.isEmpty(dt.getFieldSetEntity(0).getString("field_show_name"))) { ls.get(i).setName(dt.getFieldSetEntity(0).getString("field_show_name")); } } ls.get(i).setTable(table_name); }else { //============把子表字段也处理一下 //子表 FieldSetEntity tableInfo = BaseUtil.getSingleInfoByCache("所有表信息", new String[]{subTableName}); if (!FieldSetEntity.isEmpty(tableInfo)) { addproperty(tableInfo.getString("uuid"),tableInfo.getString("table_name"),ls.get(i).getSubField()); } } } DataTableEntity dt = DataPoolCacheImpl.getInstance().getCacheData("表字段信息",new String[] {table_uuid,"uuid"}); if(!DataTableEntity.isEmpty(dt)) { FaceFieldEntity uuid=new FaceFieldEntity(); uuid.setField("uuid"); uuid.setType("String"); uuid.setTable(table_name); uuid.setDisabled("0"); ls.add(uuid); } }else {///以表单设计为准,如果没有配置表单,则以数据表为准,全部保留 DataTableEntity dte = DataPoolCacheImpl.getInstance().getCacheData("所有字段信息并按表分组",new String[] {table_uuid}); for(int j=0;j<dte.getRows();j++) { FaceFieldEntity uuid=new FaceFieldEntity(); FieldSetEntity f=dte.getFieldSetEntity(j); if("pk".equals(f.getString("field_type")) ||"updated_by".equals(f.getString("field_name")) ||"uuid".equals(f.getString("field_name")) ||"updated_utc_datetime".equals(f.getString("field_name"))) { continue; } uuid.setPrompt(f.getString("field_reference")); uuid.setName(f.getString("field_show_name")); uuid.setField(f.getString("field_name")); uuid.setType(f.getString("field_type")); uuid.setTable(table_name); ls.add(uuid); } } } public List<FaceFieldEntity> getFaceFieldByTable(FieldSetEntity fse) { String tableUuid = fse.getString("table_uuid"); String tableName = fse.getString("table_name"); @@ -48,6 +170,7 @@ throw new BaseException(MobileCoreCode.SYSTEM_FORM_COUNT); } FieldSetEntity faceFse = getBaseDao().getFieldSetByFilter("product_sys_face", "table_uuid=?", new Object[]{tableUuid}, true); faceFse.setTableName(tableName); return getFaceField(faceFse); } @@ -242,7 +365,7 @@ } if ("__vModel__".equals(setEntity.getString("property_name"))) { result.add(faceFieldEntity); propertyName = "fieldName"; propertyName = "field"; } else if ("defaultNow".equals(propertyName)) { propertyName = "defaultValue"; } else if ("__config__".equals(propertyName)) { @@ -267,7 +390,7 @@ faceFieldEntity.putOtherParam(propertyName, setEntity.getObject("property_value")); } } if (StringUtils.isEmpty(faceFieldEntity.getFieldName())) { if (StringUtils.isEmpty(faceFieldEntity.getField())) { return; } if (parentGroup == other) { src/main/java/com/product/mobile/core/service/SysMessageService.java
@@ -82,7 +82,7 @@ ps.add(type); } StringBuilder sql = new StringBuilder(); sql.append("\nselect SUBSTRING(message_type,1,1) message_type, count(*) num from product_db_lift.product_sys_message m inner join product_db_lift.product_sys_message_user u on u.message_uuid=m.uuid \r\n" sql.append("\nselect SUBSTRING(message_type,1,1) message_type, count(*) num from product_sys_message m inner join product_sys_message_user u on u.message_uuid=m.uuid \r\n" + "and u.user_id=? and u.read_type=?").append(f).append(" group by SUBSTRING(message_type,1,1) "); DataTableEntity dte = baseDao.listTable(sql.toString(),ps.toArray(),Integer.MAX_VALUE, 1); return dte; src/main/java/com/product/mobile/core/service/SystemTableMetaService.java
@@ -36,7 +36,7 @@ Map<Object,Object> vs=fse.getValues(); StringBuilder b=new StringBuilder(); b.append("select t.table_name,f.field_name,f.field_length,f.field_show_name,f.field_type,f.field_reference,f.is_more_value,f.is_required from product_sys_datamodel_field f left join product_sys_datamodel_table t on f.table_uuid=t.uuid"); b.append("select t.table_name,f.field_name,f.field_length,f.field_show_name,f.field_type,f.field_reference,f.is_required from product_sys_datamodel_field f left join product_sys_datamodel_table t on f.table_uuid=t.uuid"); List<Object> ps=new ArrayList<>(); if(vs!=null && vs.size()>0) { b.append(" where ");