Browse Source

提取公共代码

lijie 4 years ago
parent
commit
0fcdfa358f

+ 13 - 0
fm-common/pom.xml

@@ -11,11 +11,24 @@
     <modelVersion>4.0.0</modelVersion>
     <artifactId>fm-common</artifactId>
     <version>3.0.0</version>
+    <repositories>
+        <repository>
+            <id>persagy</id>
+            <name>releases Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+        </repository>
+        <repository>
+            <id>integrated</id>
+            <name>releases Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/integrated/</url>
+        </repository>
+    </repositories>
     <distributionManagement>
         <repository>
             <id>persagy</id>
             <name>releases Repository</name>
             <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+            <layout>default</layout>
         </repository>
     </distributionManagement>
     <dependencies>

+ 113 - 0
fm-common/src/main/java/com/persagy/fm/common/constant/CommonConstant.java

@@ -34,6 +34,119 @@ public class CommonConstant {
     public static final String SYSTEM_TYPE_MAC = "mac";
     /**自定义请求头-os-type*/
     public static final String OS_TYPE = "os-type";
+    //数据字典类型-专业、系统大类、设备大类
+    public final static String dict_type_object_domain = "domain_require";
+    //数据字典类型-信息点
+    public final static String dict_type_info_point = "info_point";
+
+    //字段名称-数据平台
+    public final static String info_name_datas = "infos";
+    //字段名称-本地名称-项目
+    public final static String info_name_local_name_project = "ProjLocalName";
+    //字段名称-本地名称-项目
+    public final static String info_name_local_id_project = "ProjLocalID";
+    //字段名称-本地名称-建筑
+    public final static String info_name_local_name_build = "BuildLocalName";
+    //字段名称-本地编码-建筑
+    public final static String info_name_local_id_build = "BuildLocalID";
+    //字段名称-本地名称-楼层
+    public final static String info_name_local_name_floor = "FloorLocalName";
+    //字段名称-本地编码-楼层
+    public final static String info_name_local_id_floor = "FloorLocalID";
+    //字段名称-本地编码-竖井
+    public final static String info_name_local_id_shaft = "ShaftLocalID";
+    //字段名称-本地编码-竖井
+    public final static String info_name_local_name_shaft = "ShaftLocalName";
+    //字段名称-本地名称-空间
+    public final static String info_name_local_name_space = "RoomLocalName";
+    //字段名称-本地编码-空间
+    public final static String info_name_local_id_space = "RoomLocalID";
+    //字段名称-本地名称-系统
+    public final static String info_name_local_name_system = "SysLocalName";
+    //字段名称-本地编码-系统
+    public final static String info_name_local_id_system = "SysLocalID";
+    //字段名称-本地名称-设备
+    public final static String info_name_local_name_equip = "EquipLocalName";
+    //字段名称-本地编码-设备
+    public final static String info_name_local_id_equip = "EquipLocalID";
+    //字段名称-信息点-code
+    public final static String info_name_info_point_code = "infoPointCode";
+    //字段名称-信息点-name
+    public final static String info_name_info_point_name = "infoPointName";
+    //字段名称-信息点-输入方式(原始组件)
+    public final static String info_name_info_point_baseCmpt = "inputMode";
+
+    //关系-关联code
+    public final static String relation_from_id = "from_id";
+    //关系-被关联code
+    public final static String relation_to_id = "to_id";
+
+    //图类型-设备所在空间
+    public final static String graph_type_equip_in_space = "EquipinSpace";
+    //图类型-设备服务空间
+    public final static String graph_type_equip_service_space = "EquipforSpace";
+    //图类型-系统包含设备
+    public final static String graph_type_system_contain_equip = "SystemEquip";
+    //竖井关联的建筑
+    public final static String graph_type_shaft_and_building = "ShaftandBuilding";
+
+    //关系类型-设备所在空间
+    public final static String relation_type_equip_in_space = "1";
+    //关系类型-设备服务空间
+    public final static String relation_type_equip_service_space = "1";
+    //关系类型-系统包含设备
+    public final static String relation_type_system_contain_equip = "1";
+
+    //数据类型-建筑
+    public final static String data_type_build = "build";
+    //数据类型-楼层
+    public final static String data_type_floor = "floor";
+    //数据类型-空间
+    public final static String data_type_space = "space";
+    //数据类型-系统
+    public final static String data_type_system = "system";
+    //数据类型-设备
+    public final static String data_type_equip = "equip";
+    //数据类型-系统大类
+    public final static String data_type_system_class = "system_class";
+    //数据类型-设备大类
+    public final static String data_type_equip_class = "equip_class";
+    //数据类型-空间大类
+    public final static String data_type_space_class = "space_class";
+    //数据类型-建筑功能类型
+    public final static String data_type_build_func_type = "build_func_type";
+    //数据类型-楼层类型
+    public final static String data_type_floor_type = "floor_type";
+    //数据类型-竖井功能类型
+    public final static String data_type_shaft_type = "shaft_type";
+    //数据类型-竖井
+    public final static String data_type_shaft = "shaft";
+    //标识-项目
+    public final static String tag_project = "Pj";
+    //标识-建筑
+    public final static String tag_build = "Bd";
+    //标识-楼层
+    public final static String tag_floor = "Fl";
+    //标识-空间
+    public final static String tag_space = "Sp";
+    //标识-设备
+    public final static String tag_equip = "Eq";
+    //标识-系统
+    public final static String tag_system = "Sy";
+    //标识-设备对象
+    public final static String tag_equip_object = "EqObj";
+    //标识-系统对象
+    public final static String tag_system_object = "SyObj";
+    //标识-设备字典-专业
+    public final static String tag_dict_class = "Clazz";
+    //标识-设备字典-系统
+    public final static String tag_dict_sytstem = "System";
+    //标识-设备字典-设备
+    public final static String tag_dict_equip = "Equip";
+    //时间格式-显示
+    public final static String date_format_show = "yyyy-MM-dd HH:mm:ss";
+    //时间格式-存储
+    public final static String date_format_save = "yyyyMMddHHmmss";
 
 
 }

File diff suppressed because it is too large
+ 50 - 0
fm-common/src/main/java/com/persagy/fm/common/constant/CommonMessage.java


+ 88 - 0
fm-common/src/main/java/com/persagy/fm/common/constant/DataRequestPathUtil.java

@@ -0,0 +1,88 @@
+/**
+ * @包名称 com.sagacloud.common
+ * @文件名 DataRequestPathUtil.java
+ * @创建者 wanghailong
+ * @邮箱 wanghailong@persagy.com  
+ * @修改描述 
+ */
+
+package com.persagy.fm.common.constant;
+
+/** 
+ * 功能描述: 数据请求路径工具类
+ * @类型名称 DataRequestPathUtil
+ * @创建者 wanghailong
+ * @邮箱 wanghailong@persagy.com  
+ * @修改描述 
+ */
+public class DataRequestPathUtil {
+	
+	/**** 数据平台请求路径 ***/
+	//get:数据平台-数据字典查询
+	public final static String dataPlat_dict_query = "BASEPATH/dict/query/PARAM";
+
+	//post: 数据平台-对象模糊查询
+	public final static String dataPlat_object_like_query = "BASEPATH/object/search?projectId=PROJECTID&secret=SECRET";
+	//post:数据平台-对象-批量查询
+	public final static String dataPlat_object_batch_query = "BASEPATH/object/batch_query?projectId=PROJECTID&secret=SECRET";
+	//post:数据平台-对象-批量查询 (post)
+	public final static String dataPlat_object_batch_query_post = "BASEPATH/object/batch_query";
+
+	//post:根据信息点来查询各物理实体
+	public final static String dataPlat_object_query_by_info = "BASEPATH/object/query_by_info?projectId=PROJECTID&secret=SECRET";
+	//post:数据平台-对象-查询某个对象下的指定类型的objects
+	public final static String dataPlat_object_subset_query = "BASEPATH/object/subset_query?projectId=PROJECTID&secret=SECRET";
+	//post:数据平台-系统-查询某个专业下的所有系统
+	public final static String dataPlat_system_query_by_domain = "BASEPATH/equipment/system_query?projectId=PROJECTID&secret=SECRET";
+	//get:数据平台-项目-管理员查询
+	public final static String dataPlat_project_query = "BASEPATH/mng/project/query?secret=SECRET";
+	//post:数据平台-对象-设备综合查询
+	public final static String dataPlat_equipment_complex_query = "BASEPATH/equipment/complex_query?projectId=PROJECTID&secret=SECRET";
+		
+
+	//post:数据平台-关系-图实例-查询
+	public final static String dataPlat_relation_graph_instance_query = "BASEPATH/relation/graph_instance/query?projectId=PROJECTID&secret=SECRET";
+	//post:数据平台-关系-关系实例-查询
+	public final static String dataPlat_relation_relation_instance_query = "BASEPATH/relation/query?projectId=PROJECTID&secret=SECRET";
+	//post:数据平台-关系-指定图类型和关系类型的集合
+	public final static String dataPlat_relation_query_subset = "BASEPATH/relation/query_subset?projectId=PROJECTID&secret=SECRET";
+	//post:数据平台-关系-根据obj_type查询
+	public final static String dataPlat_relation_query_by_obj_type = "BASEPATH/relation/query_by_obj_type";
+
+
+	//get:数据平台-信息点-空间信息点
+	public final static String dataPlat_infoPoint_query_space = "BASEPATH/infocode/query/space";
+	//get:数据平台-信息点-楼层信息点
+	public final static String dataPlat_infoPoint_query_floor = "BASEPATH/infocode/query/floor";
+	//get:数据平台-信息点-建筑体信息点
+	public final static String dataPlat_infoPoint_query_building = "BASEPATH/infocode/query/building";
+	//get:数据平台-信息点-设备、系统独有信息点
+	public final static String dataPlat_infoPoint_special = "BASEPATH/infocode/query?ID=PARAM";
+	//post:数据平台-信息点-模糊查询
+	public final static String dataPlat_infoPoint_search = "BASEPATH/info_point/search?projectId=PROJECTID&secret=SECRET";
+	//post:数据平台-抗震设防烈度
+	public final static String dataPlat_seismic_precautionary_intensity_query = "BASEPATH/dict/query/seismic_precautionary_intensity";
+	//post:数据平台-查询信息点方案
+	public final static String dataPlat_custom_infoCode_scheme_query = "BASEPATH/custom_infocode/scheme/query";
+	//post:数据平台-查询信息点
+	public final static String dataPlat_custom_infoCode_scheme_info_query = "BASEPATH/custom_infocode/scheme/info/query";
+	//post:数据平台-增加自定义信息点
+	public final static String dataPlat_custom_infoCode_scheme_info_create = "BASEPATH/custom_infocode/scheme/info/create";
+
+	//post : 查询当前用户的密码MD5值
+//	public final static String persagy_manage_query_password_byuserid = "BASEPATH/Spring/MVC/entrance/unifier/queryPasswordByUserIdService";
+
+	//post:数据平台-查询种族相关信息点
+	public final static String dataPlat_infoCode_query_property = "BASEPATH/infocode/query_property";
+
+	//post:数据平台-图-图实例-添加
+	public final static String dataPlat_relation_graph_instance_create = "BASEPATH/relation/graph_instance/create?projectId=PROJECTID&secret=SECRET";
+	
+	//post:saas-竖井查询
+	public final static String dataPlat_query_shaft = "BASEPATH/restObjectService/queryShaft";
+
+	//post:数据平台-根据空间id或设备id查关系详情(层级结构)
+	public final static String dataPlat_query_space_or_equip = "BASEPATH/facility/querySpaceOrEquip";
+	//post:数据平台-根据空间id或设备id查关系详情(非层级结构)
+	public final static String dataPlat_query_space_or_equip_NoHierarchy = "BASEPATH/facility/querySpaceOrEquipNoHierarchy";
+}

+ 517 - 0
fm-common/src/main/java/com/persagy/fm/common/constant/DataRequestProcessUtil.java

@@ -0,0 +1,517 @@
+package com.persagy.fm.common.constant;
+
+import cn.hutool.core.date.DateTime;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Maps;
+import com.persagy.common.utils.DateUtil;
+import com.persagy.fm.common.constant.enums.ResultEnum;
+import com.persagy.fm.common.old.utils.StringUtil;
+import java.text.SimpleDateFormat;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Map;
+
+/**
+ * 
+ * 功能描述: 数据请求处理类,包括查询条件的组装、返回数据处理、排序等
+ * @类型名称 DataRequestProcessUtil
+ * @创建者 wanghailong
+ * @邮箱 wanghailong@persagy.com  
+ * @修改描述
+ */
+public class DataRequestProcessUtil {
+    /**
+     * 转换更新参数
+     * @param jsonObject    用户接口参数,除了过滤项,其它项默认为新增项
+     * @return              数据平台接口参数
+     */
+    public static JSONObject getAddParamJson(JSONObject jsonObject){
+        JSONObject paramJson = new JSONObject();
+        paramJson.put("insertObject", jsonObject);
+        return paramJson;
+    }
+
+    /**
+     * 转换主键查询参数
+     * @param jsonObject    用户接口数据
+     * @param majors         主键
+     * @return                数据平台接口参数
+     */
+    public static JSONObject getKeyWithMajors(JSONObject jsonObject, String... majors){
+        JSONObject paramJson = new JSONObject();
+        JSONObject keyJson = new JSONObject();
+        Object value;
+        for(String major : majors){
+            value = jsonObject.get(major);
+            if(value != null && !"".equals(value.toString())){
+                keyJson.put(major, value);
+            }
+        }
+        paramJson.put("Key", keyJson);
+        return paramJson;
+    }
+
+    /**
+     * 转换更新参数
+     * @param jsonObject    用户接口参数,除了过滤项,其它项默认为修改项
+     * @param majors        过滤项
+     * @return              数据平台接口参数
+     */
+    public static JSONObject getUpdateParamJson(JSONObject jsonObject, String... majors){
+        JSONObject paramJson = new JSONObject();
+        JSONObject criteriaJson = new JSONObject();
+        Object value;
+        for(String major : majors){
+            value = jsonObject.get(major);
+            if(value != null && !"".equals(value.toString())){
+                criteriaJson.put(major, value);
+            }
+            jsonObject.remove(major);
+        }
+        paramJson.put("criteria", criteriaJson);
+        paramJson.put("set", jsonObject);
+
+        return paramJson;
+    }
+
+    /**
+     * 获得除去某些项的条件
+     * @param jsonObject    用户接口参数
+     * @param majors        过滤项
+     * @return              数据平台接口参数
+     */
+    public static JSONObject getCriteriaRemoveMajors(JSONObject jsonObject, String... majors){
+        JSONObject paramJson = new JSONObject();
+        for(String major : majors){
+            jsonObject.remove(major);
+        }
+        paramJson.put("criteria", jsonObject);
+        return paramJson;
+    }
+
+    /**
+     * 获得指定项的条件
+     * @param jsonObject    用户接口参数
+     * @param majors        过滤项
+     * @return              数据平台接口参数
+     */
+    public static JSONObject getCriteriaWithMajors(JSONObject jsonObject, String... majors){
+        JSONObject paramJson = new JSONObject();
+        JSONObject criteria = new JSONObject();
+        for(String major : majors){
+            criteria.put(major, jsonObject.get(major));
+        }
+        paramJson.put("criteria", criteria);
+        return paramJson;
+    }
+
+    /**
+     * 获得指定项的条件-用于批量查询
+     * @param jsonArray    用户接口参数
+     * @param key           参数的code码
+     * @param code          用户接口参数code码
+     * @return              数据平台接口参数
+     */
+    public static JSONObject getCriteriasWithMajors(JSONArray jsonArray, String key, String code){
+        JSONObject paramJson = new JSONObject();
+        JSONArray criterias = new JSONArray();
+        JSONObject criteria, json;
+        for(int i=0; i<jsonArray.size(); i++){
+            json = jsonArray.getJSONObject(i);
+            criteria = new JSONObject();
+            criteria.put(code, json.get(key));
+            criterias.add(criteria);
+        }
+        paramJson.put("criterias", criterias);
+        return paramJson;
+    }
+
+    /**
+     * 获得指定项的条件-用于批量查询
+     * @param jsonObject    用户接口参数
+     * @param key           参数的code码
+     * @param code          用户接口参数code码
+     * @return              数据平台接口参数
+     */
+    public static JSONObject getCriteriasWithMajors(JSONObject jsonObject, String key, String code){
+        JSONObject paramJson = new JSONObject();
+        JSONArray criterias = new JSONArray();
+        JSONObject criteria = new JSONObject();
+        criteria.put(code, jsonObject.get(key));
+        criterias.add(criteria);
+        paramJson.put("criterias", criterias);
+        return paramJson;
+    }
+    
+    /**
+     * 获得批量查询参数
+     * @param jsonObject 参数
+     * @param arrayInfo 批量数组名
+     * @param infoName  查询参数
+     * @param marjors   非批量参数
+     * @return
+     */
+    public static JSONObject getCriteriasWithMajors(JSONObject jsonObject, String arrayInfo, String infoName, String... marjors){
+        JSONObject paramJson = new JSONObject();
+        JSONArray criterias = new JSONArray();
+        JSONObject criteria;
+        JSONArray infos = jsonObject.getJSONArray(arrayInfo);
+        if(infos != null) {
+            for (int i=0; i<infos.size(); i++){
+                criteria = new JSONObject();
+                criteria.put(infoName, infos.get(i));
+                for(String marjor : marjors){
+                    if(!marjor.equals(infoName))
+                        criteria.put(marjor, jsonObject.get(marjor));
+                }
+                criterias.add(criteria);
+            }
+        }
+        paramJson.put("criterias", criterias);
+        return paramJson;
+    }
+
+    /**
+     * 获得数据平台查询条件
+     * @param codeName
+     * @param jsonObject
+     * @param majors
+     * @return
+     */
+    public static JSONObject getDataPlatCriteriaWithMajors(String codeName, JSONObject jsonObject, String... majors){
+        JSONObject paramJson = new JSONObject();
+        JSONObject criteria = new JSONObject();
+        if(codeName != null){
+            criteria.put("id", jsonObject.get(codeName));
+        }
+        for(String major : majors){
+            criteria.put(major, jsonObject.get(major));
+        }
+        paramJson.put("criteria", criteria);
+        return paramJson;
+    }
+
+    /**
+     *
+     * 功能描述:处理查询返回结果,将结果中的内容项转化为JsonString
+     * @param queryResult
+     * @param majors
+     * @return
+     * @创建者 wanghailong
+     * @邮箱 wanghailong@persagy.com 
+     * @修改描述
+     */
+    public static String prossesResultToJsonString(String queryResult, String... majors){
+        if(queryResult.contains("Result") && queryResult.contains("Content")){
+            JSONObject resultJson = JSONObject.parseObject(queryResult);
+            JSONArray array = (JSONArray) resultJson.get("Content");
+            for(int i = 0 ; i < array.size() ; i++){
+                JSONObject dataJson = array.getJSONObject(i);
+                for(String major : majors){
+                    String dataString = dataJson.getString(major);
+                    if(!StringUtil.isNull(dataString)){
+                        if(dataString.startsWith("{")){
+                            dataJson.put(major, JSONObject.parseObject(dataJson.getString(major)));
+                        }else if(dataString.startsWith("[")){
+                            dataJson.put(major, JSONArray.parseArray(dataJson.getString(major)));
+                        }
+                    }
+                }
+                array.set(i, dataJson);
+            }
+            resultJson.put("Content", array);
+            queryResult = resultJson.toString();
+        }
+        return queryResult;
+    }
+
+    /**
+     *
+     * 功能描述:处理插入参数,将参数中的内容项转化为JsonString
+     * @param jsonObject
+     * @param majors
+     * @return
+     * @创建者 wanghailong
+     * @邮箱 wanghailong@persagy.com
+     * @修改描述
+     */
+    public static JSONObject prossesParamToJsonString(JSONObject jsonObject, String... majors){
+        for(String major : majors){
+            if(jsonObject.containsKey(major)){
+                jsonObject.put(major, JSON.toJSONString(jsonObject.get(major)));
+            }
+        }
+        return jsonObject;
+    }
+
+    /**
+     * 功能描述:处理查询返回结果,转换结果中Date类型的数据格式
+     * @param queryResult
+     * @param fromDateFormat
+     * @param toDateFormat
+     * @param majors
+     * @return
+     * @throws Exception
+     */
+    public static String prossesResultToDateString(String queryResult, String fromDateFormat, String toDateFormat , String... majors) throws Exception {
+        if(queryResult.contains("Result") && queryResult.contains("Content")){
+            JSONObject resultJson = JSONObject.parseObject(queryResult);
+            JSONArray array = (JSONArray) resultJson.get("Content");
+            SimpleDateFormat fsdf = new SimpleDateFormat(fromDateFormat);
+            SimpleDateFormat tsdf = new SimpleDateFormat(toDateFormat);
+            for(int i = 0 ; i < array.size() ; i++){
+                JSONObject dataJson = array.getJSONObject(i);
+                for(String major : majors){
+                    String dataString = dataJson.getString(major);
+                    if(!StringUtil.isNull(dataString)){
+                        dataJson.put(major, tsdf.format(fsdf.parse(dataString)));
+                    }
+                }
+                array.set(i, dataJson);
+            }
+            resultJson.put("Content", array);
+            queryResult = resultJson.toString();
+        }
+        return queryResult;
+    }
+
+    /**
+     *
+     * 功能描述:返回查询结果中的第一条记录
+     * @param queryResult
+     * @return
+     * @创建者 wanghailong
+     * @邮箱 wanghailong@persagy.com 
+     * @修改描述
+     */
+    public static String getFirstRecordfromResult(String queryResult){
+        if(queryResult.contains("Result") && queryResult.contains("Content")){
+            JSONObject resultJson = JSONObject.parseObject(queryResult);
+            JSONArray array = (JSONArray) resultJson.get("Content");
+            if(array.size() > 0 && null != array.get(0)) {
+                resultJson.put("Item", JSONObject.parseObject(array.get(0).toString()));
+                resultJson.remove("Content");
+                resultJson.remove("Count");
+            }
+
+            queryResult = resultJson.toString();
+        }
+        return queryResult;
+    }
+
+    /**
+     *
+     * 功能描述:返回查询结果中的第一条记录,Json格式
+     * @param queryResult
+     * @return
+     * @创建者 wanghailong
+     * @邮箱 wanghailong@persagy.com 
+     * @修改描述
+     */
+    public static JSONObject getFirstRecordfromResultWithJson(String queryResult){
+        JSONObject firstJson = null;
+        if(queryResult.contains("Result") && queryResult.contains("Content")){
+            JSONObject resultJson = JSONObject.parseObject(queryResult);
+            JSONArray array = (JSONArray) resultJson.get("Content");
+            if(array.size() > 0 && null != array.get(0)) {
+                firstJson = JSONObject.parseObject(array.get(0).toString());
+            }
+        }
+        return firstJson;
+    }
+
+    /**
+     * 转换返回结果数据格式 persagy --> saga
+     * @param queryResult
+     * @return
+     */
+    public static JSONObject translationResultFromPersagy(String queryResult){
+        JSONObject queryJson = JSONObject.parseObject(queryResult);
+        JSONObject result = new JSONObject();
+        result.put(ResultEnum.RESULT.getType(), queryJson.get(ResultEnum.PERSAGY_RESULT.getType()));
+        result.put(ResultEnum.CONTENT.getType(), queryJson.get(ResultEnum.PERSAGY_CONTENT.getType()));
+        result.put(ResultEnum.RESULT_MSG.getType(), queryJson.get(ResultEnum.PERSAGY_REASON.getType()));
+        return result;
+    }
+
+
+    public static <K, V> Map<K, V> getMapFromResult(JSONObject resultJson, String keyCode, String valueCode){
+        Map<K, V> map = Maps.newHashMap();
+
+        JSONArray results = resultJson.getJSONArray(ResultEnum.CONTENT.getType());
+        results = results == null ? new JSONArray() : results;
+        JSONObject result;
+
+        for(int i=0; i<results.size(); i++){
+            result = results.getJSONObject(i);
+            map.put((K)result.get(keyCode), (V)result.get(valueCode));
+        }
+
+        return map;
+    }
+
+    /**
+     * 排序
+     * @param queryResult
+     * @param field  排序的字段
+     * @param order      -1:倒序  1:正序
+     * @return
+     */
+    public static JSONObject sortByField(String queryResult, String field, int order){
+        JSONObject resultJson = JSONObject.parseObject(queryResult);
+        JSONArray contentArray = resultJson.getJSONArray("Content");
+        if(contentArray != null){
+            Collections.sort(contentArray, new Comparator<Object>(){
+                public int compare(Object str1, Object str2){
+                    JSONObject obj1 = JSONObject.parseObject(str1.toString());
+                    JSONObject obj2 = JSONObject.parseObject(str2.toString());
+                    if(obj1.getLongValue(field) > obj2.getLongValue(field)){
+                        return order;
+                    }
+                    if(obj1.getLongValue(field) == obj2.getLongValue(field)){
+                        return 0;
+                    }
+                    return -1 * order;
+                }
+            });
+        }
+        resultJson.put("Content", contentArray);
+        return resultJson;
+    }
+
+    /**
+     * 排序
+     * @param array
+     * @param field  排序的字段
+     * @param order      -1:倒序  1:正序
+     * @return
+     */
+    public static JSONArray sortByField(JSONArray array, String field, int order){
+        if(array != null){
+            Collections.sort(array, new Comparator<Object>(){
+                public int compare(Object str1, Object str2){
+                    JSONObject obj1 = JSONObject.parseObject(str1.toString());
+                    JSONObject obj2 = JSONObject.parseObject(str2.toString());
+                    if(obj1.getLongValue(field) > obj2.getLongValue(field)){
+                        return order;
+                    }
+                    if(obj1.getLongValue(field) == obj2.getLongValue(field)){
+                        return 0;
+                    }
+                    return -1 * order;
+                }
+            });
+        }
+        return array;
+    }
+    
+    /**
+     * 排序
+     * @param array
+     * @param field  排序的字段
+     * @param order      -1:倒序  1:正序
+     * @return
+     */
+    public static JSONArray sortByIntegerField(JSONArray array, String field, int order){
+    	if(array != null){
+    		Collections.sort(array, new Comparator<Object>(){
+    			public int compare(Object str1, Object str2){
+    				JSONObject obj1 = JSONObject.parseObject(str1.toString());
+    				JSONObject obj2 = JSONObject.parseObject(str2.toString());
+    				String order1_Str = obj1.getString(field);
+    				String order2_Str = obj2.getString(field);
+    				if(StringUtil.isNull(order1_Str)) {
+    					order1_Str = Integer.MIN_VALUE + "";
+    				}
+    				if(StringUtil.isNull(order2_Str)) {
+    					order2_Str = Integer.MIN_VALUE + "";
+    				}
+    				
+    				
+    				Integer order1 = Integer.valueOf(order1_Str);
+    				Integer order2 = Integer.valueOf(order2_Str);
+    				
+    				if(order1 > order2){
+    					return order;
+    				}
+    				if(order1 == order2){
+    					return 0;
+    				}
+    				return -1 * order;
+    			}
+    		});
+    	}
+    	return array;
+    }
+    /**
+     * 排序
+     * @param array
+     * @param field  排序的字段
+     * @param order      -1:倒序  1:正序
+     * @return
+     */
+    public static JSONArray sortByStringField(JSONArray array, String field, int order){
+    	if(array != null){
+    		Collections.sort(array, new Comparator<Object>(){
+    			public int compare(Object str1, Object str2){
+    				JSONObject obj1 = JSONObject.parseObject(str1.toString());
+    				JSONObject obj2 = JSONObject.parseObject(str2.toString());
+    				String order1 = obj1.getString(field);
+    				if(order1 == null) {
+    					order1 = "";
+    				}
+    				
+    				String order2 = obj2.getString(field);
+    				if(order2 == null) {
+    					order2 = "";
+    				}
+    				
+    				
+    				if(order1.compareTo(order2) > -1){
+    					return order;
+    				}
+    				return -1 * order;
+    			}
+    		});
+    	}
+    	return array;
+    }
+
+    /**
+     * 排序
+     * @param array
+     * @param field  排序的字段
+     * @param order      -1:倒序  1:正序
+     * @return
+     */
+    public static JSONArray sortByDateField(JSONArray array, String field, int order){
+    	if(array != null){
+    		Collections.sort(array, new Comparator<Object>(){
+    			public int compare(Object str1, Object str2){
+    				JSONObject obj1 = JSONObject.parseObject(str1.toString());
+    				JSONObject obj2 = JSONObject.parseObject(str2.toString());
+    				String order1_Str = obj1.getString(field);
+    				String order2_Str = obj2.getString(field);
+    				try {
+    					DateTime order1 = DateUtil.parse(order1_Str,CommonConstant.date_format_save);
+                        DateTime order2 = DateUtil.parse(order2_Str,CommonConstant.date_format_save);
+
+    					if(order1.getTime() > order2.getTime()){
+    						return order;
+    					}
+    					if(order1.getTime() == order2.getTime()){
+    						return 0;
+    					}
+					} catch (Exception e) {
+					}
+    				return -1 * order;
+    			}
+    		});
+    	}
+    	return array;
+    }
+    
+    
+}

+ 59 - 0
fm-common/src/main/java/com/persagy/fm/common/constant/enums/IdPrefixEnum.java

@@ -0,0 +1,59 @@
+package com.persagy.fm.common.constant.enums;
+/***
+ * Description: 表ID的前缀枚举类
+ * @author : lijie
+ * @date :2021/4/1 22:17
+ * Update By lijie 2021/4/1 22:17
+ */
+public enum IdPrefixEnum {
+    /**sop表ID的前缀*/
+    SOP("SOP","sop表ID的前缀"),
+    /**sop_cell表ID的前缀*/
+    SOP_CELL("SOPSC","sop_cell表ID的前缀"),
+    /**sop_domain_rel表ID的前缀*/
+    SOP_DOMAIN_REL("SDRI","sop_domain_rel表ID的前缀"),
+    /**sop_tool_rel表ID的前缀*/
+    SOP_TOOL_REL("STRI","sop_tool_rel表ID的前缀"),
+    /**sop_media_rel表ID的前缀*/
+    SOP_MEDIA_REL("SMRI","sop_media_rel表ID的前缀"),
+    /**sop_obj_rel表ID的前缀*/
+    SOP_OBJ_REL("SOR","sop_obj_rel表ID的前缀"),
+    /**sop_equip_model_rel表id的前缀*/
+    SOP_EQUIP_MODEL_REL("SEMR","sop_equip_model_rel表ID的前缀"),
+    /**sop_order_type_rel表id的前缀*/
+    SOP_ORDER_TYPE_REL("SOTR","sop_order_type_rel表ID的前缀"),
+    /**sop_label_rel表id的前缀*/
+    SOP_LABEL_REL("SLR","sop_label_rel表ID的前缀"),
+    /**sop_edit表id的前缀*/
+    SOP_EDIT("SE","sop_edit表ID的前缀"),
+    /**sop_his表id的前缀*/
+    SOP_HIS("SH","sop_his表ID的前缀"),
+    /**sop_destroy_msg表id的前缀*/
+    SOP_DESTROY_MSG("SDM","sop_destroy_msg表ID的前缀"),
+    /**wo_flow_plan表ID的前缀*/
+    WO_FLOW_PLAN("FP","wo_flow_plan表ID的前缀");
+
+    IdPrefixEnum(String prefix, String describe) {
+        this.prefix = prefix;
+        this.describe = describe;
+    }
+
+    private String prefix;
+    private String describe;
+
+    public String getPrefix() {
+        return prefix;
+    }
+
+    public void setPrefix(String prefix) {
+        this.prefix = prefix;
+    }
+
+    public String getDescribe() {
+        return describe;
+    }
+
+    public void setDescribe(String describe) {
+        this.describe = describe;
+    }
+}

+ 7 - 1
fm-common/src/main/java/com/persagy/fm/common/constant/enums/ResultEnum.java

@@ -19,7 +19,13 @@ public enum ResultEnum {
     /**对象*/
     ITEM("Item","对象"),
     /**总数*/
-    COUNT("Count","总数");
+    COUNT("Count","总数"),
+    /**第六代框架接口返回结构*/
+    PERSAGY_RESULT("result","PERSAGY_RESULT"),
+    /**第六代框架接口返回结构*/
+    PERSAGY_REASON("reason","PERSAGY_RESULT"),
+    /**第六代框架接口返回结构*/
+    PERSAGY_CONTENT("content","PERSAGY_CONTENT");
 
     ResultEnum(String type, String describe) {
         this.type = type;

+ 12 - 0
fm-common/src/main/java/com/persagy/fm/common/validator/Delete.java

@@ -0,0 +1,12 @@
+package com.persagy.fm.common.validator;
+
+import javax.validation.groups.Default;
+
+/***
+ * Description: 集团SOP删除的验证接口
+ * @author : lijie
+ * @date :2021/4/10 17:58
+ * Update By lijie 2021/4/10 17:58
+ */
+public interface Delete extends Default {
+}

+ 12 - 0
fm-common/src/main/java/com/persagy/fm/common/validator/Insert.java

@@ -0,0 +1,12 @@
+package com.persagy.fm.common.validator;
+
+import javax.validation.groups.Default;
+
+/***
+ * Description: 集团SOP插入的校验器
+ * @author : lijie
+ * @date :2021/4/2 12:07
+ * Update By lijie 2021/4/2 12:07
+ */
+public interface Insert extends Default {
+}

+ 12 - 0
fm-common/src/main/java/com/persagy/fm/common/validator/Query.java

@@ -0,0 +1,12 @@
+package com.persagy.fm.common.validator;
+
+import javax.validation.groups.Default;
+
+/***
+ * Description: 集团SOP的校验器
+ * @author : lijie
+ * @date :2021/4/10 17:59
+ * Update By lijie 2021/4/10 17:59
+ */
+public interface Query extends Default {
+}

+ 12 - 0
fm-common/src/main/java/com/persagy/fm/common/validator/Update.java

@@ -0,0 +1,12 @@
+package com.persagy.fm.common.validator;
+
+import javax.validation.groups.Default;
+
+/***
+ * Description: 更新的校验器
+ * @author : lijie
+ * @date :2021/4/10 18:00
+ * Update By lijie 2021/4/10 18:00
+ */
+public interface Update extends Default {
+}

+ 7 - 0
fm-package/pom.xml

@@ -11,6 +11,13 @@
     <modelVersion>4.0.0</modelVersion>
     <artifactId>fm-package</artifactId>
     <packaging>pom</packaging>
+    <distributionManagement>
+        <repository>
+            <id>persagy</id>
+            <name>releases Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+        </repository>
+    </distributionManagement>
 
     <!-- 插件配置 -->
     <build>

+ 8 - 0
fm-parent/pom.xml

@@ -15,6 +15,14 @@
             <url>http://47.93.132.139:8081/nexus/content/repositories/integrated/</url>
         </repository>
     </repositories>
+    <distributionManagement>
+        <repository>
+            <id>persagy</id>
+            <name>releases Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+            <layout>default</layout>
+        </repository>
+    </distributionManagement>
 
     <parent>
         <groupId>org.springframework.boot</groupId>

+ 7 - 0
fm-server/pom.xml

@@ -11,6 +11,13 @@
     <modelVersion>4.0.0</modelVersion>
     <artifactId>fm-server</artifactId>
     <version>3.0.0</version>
+    <distributionManagement>
+        <repository>
+            <id>persagy</id>
+            <name>releases Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+        </repository>
+    </distributionManagement>
     <dependencies>
         <!-- 集成框架工具类 -->
         <dependency>

+ 7 - 0
fm-translate/pom.xml

@@ -10,6 +10,13 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>fm-translate</artifactId>
+    <distributionManagement>
+        <repository>
+            <id>persagy</id>
+            <name>releases Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+        </repository>
+    </distributionManagement>
     <dependencies>
         <dependency>
             <groupId>com.persagy</groupId>