Browse Source

字符串转换null值处理

yangwanyi 3 years ago
parent
commit
6113522cae

+ 1 - 1
src/main/java/com/persagy/transfer/constant/InfosKeyConstant.java

@@ -25,7 +25,7 @@ public class InfosKeyConstant {
     /**
      * 设备型号
      */
-    public static final String EQUIPMENT_MODEL = "Specification";
+    public static final String EQUIPMENT_MODEL = "specification";
 
     /**
      * 设备分类

+ 39 - 39
src/main/java/com/persagy/transfer/service/impl/WdDbServiceImpl.java

@@ -62,23 +62,23 @@ public class WdDbServiceImpl implements WdDbService {
     public void sycnHydomcAsset(JSONObject infosObj, String wdProjectId, HydomcAsset hydomcAsset, Integer valid, java.util.Date updateTime, String classstrucrureid) {
         log.debug("准备同步万达设备信息对象数据");
         // 根据万达设备信息表的主键查询数据是否存在
-        hydomcAsset = this.getHydomcAssetByPKey(String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_CODE)));
+        hydomcAsset = this.getHydomcAssetByPKey(StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_CODE)));
         if (hydomcAsset == null) {
             log.debug("万达数据库没有这条数据,准备新增");
             hydomcAsset = new HydomcAsset(); // 万达设备信息主表实体
-            hydomcAsset.setSbybm(String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_CODE))); // 主键  无其他主键可采用设备编码为主键,但要确保唯一(工程信息化设备原码)
-            hydomcAsset.setDescription(String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_NAME))); // 设备名称
+            hydomcAsset.setSbybm(StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_CODE))); // 主键  无其他主键可采用设备编码为主键,但要确保唯一(工程信息化设备原码)
+            hydomcAsset.setDescription(StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_NAME))); // 设备名称
             // hydomcAsset.setWzqy(); // 详细设备安装位置,格式:楼体-楼层-区域 没有key 后续补充
-            hydomcAsset.setFwqy(String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_SERVICE_ZONE))); // 设备服务区域 设备/系统服务范围
-            hydomcAsset.setSbxh(String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_MODEL))); // 厂商设备型号
+            hydomcAsset.setFwqy(StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_SERVICE_ZONE))); // 设备服务区域 设备/系统服务范围
+            hydomcAsset.setSbxh(StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_MODEL))); // 厂商设备型号
             hydomcAsset.setClassstructureid(classstrucrureid); // 对接设备分类id,同步后不可更改
             hydomcAsset.setStatus(valid == 0 ? SwitchConstant.SCRAP : SwitchConstant.RUNNING); // 设备状态 运行中/报废    默认都为运行中
-            hydomcAsset.setSbxhh(String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_IDX))); // 设备序号 同类设备的序号,即第几台设备:第几台电梯
-            hydomcAsset.setCjsbxh(String.valueOf(infosObj.get(InfosKeyConstant.SERIAL_NUM))); // 厂家设备序列号
-            hydomcAsset.setManufacturer(String.valueOf(infosObj.get(InfosKeyConstant.MANUFACTURER))); // 生产商公司供方管理系统编码code
-            hydomcAsset.setVendor(String.valueOf(infosObj.get(InfosKeyConstant.SUPPLIER))); // 供应商公司供方管理系统编码code
-            hydomcAsset.setFws(String.valueOf(infosObj.get(InfosKeyConstant.MAINTAINER))); // 服务商公司供方管理系统编码code
-            hydomcAsset.setPurchaseprice(Double.valueOf(String.valueOf(infosObj.get(InfosKeyConstant.PURCHASE_PRICE)))); // 采购金额 填写人民币元
+            hydomcAsset.setSbxhh(StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_IDX))); // 设备序号 同类设备的序号,即第几台设备:第几台电梯
+            hydomcAsset.setCjsbxh(StringTool.object2String(infosObj.get(InfosKeyConstant.SERIAL_NUM))); // 厂家设备序列号
+            hydomcAsset.setManufacturer(StringTool.object2String(infosObj.get(InfosKeyConstant.MANUFACTURER))); // 生产商公司供方管理系统编码code
+            hydomcAsset.setVendor(StringTool.object2String(infosObj.get(InfosKeyConstant.SUPPLIER))); // 供应商公司供方管理系统编码code
+            hydomcAsset.setFws(StringTool.object2String(infosObj.get(InfosKeyConstant.MAINTAINER))); // 服务商公司供方管理系统编码code
+            hydomcAsset.setPurchaseprice(Double.valueOf(StringTool.object2String(infosObj.get(InfosKeyConstant.PURCHASE_PRICE)))); // 采购金额 填写人民币元
             hydomcAsset.setZjsynx(StringTool.object2Double(infosObj.get(InfosKeyConstant.SERVICE_LIFE))); // 折旧/使用年限 按年填写 如3年半则填写 3.5
             hydomcAsset.setScrq(StringTool.object2DateTime(infosObj.get(InfosKeyConstant.PRODUCT_DATE))); // 生产日期/出厂日期 年/月/日
             hydomcAsset.setCgrq(StringTool.object2DateTime(infosObj.get(InfosKeyConstant.PURCHASE_DATE))); // 采购日期
@@ -88,12 +88,12 @@ public class WdDbServiceImpl implements WdDbService {
             hydomcAsset.setZbjsrq(StringTool.object2DateTime(infosObj.get(InfosKeyConstant.WARRANTY_END_DATE))); // 质保结束日期
             hydomcAsset.setZxzq(StringTool.object2Integer(infosObj.get(InfosKeyConstant.MEDIUM_REPAIR_CYCLE))); // 中修周期 单位为月
             hydomcAsset.setDxzq(StringTool.object2Integer(infosObj.get(InfosKeyConstant.OVERHAUL_CYCLE))); // 大修周期 单位为月
-            hydomcAsset.setWylx(String.valueOf(infosObj.get(InfosKeyConstant.PROPERTY_TYPE))); // 物业类型 自持/销售/合作方
-            hydomcAsset.setSbglgs(String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_MANAGE_OWNERSHIP))); // 设备管理归属 商管/百货/大歌星/超市/影院/大酒楼/其他
-            hydomcAsset.setHysbbm(String.valueOf(infosObj.get(InfosKeyConstant.WISDOM_CLOUD_LOCAL_CODE))); // 慧云设备编码
-            hydomcAsset.setSfhysy(String.valueOf(infosObj.get(InfosKeyConstant.WISDOM_CLOUD_USE))); // 是否慧云使用 是/否   缺省为 是
-            hydomcAsset.setSfzld(String.valueOf(infosObj.get(InfosKeyConstant.MAIN_STORE))); // 是否是主力店 缺省为 否
-            hydomcAsset.setMark(String.valueOf(infosObj.get(InfosKeyConstant.REMARK))); // 备注 wD_beizhu
+            hydomcAsset.setWylx(StringTool.object2String(infosObj.get(InfosKeyConstant.PROPERTY_TYPE))); // 物业类型 自持/销售/合作方
+            hydomcAsset.setSbglgs(StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_MANAGE_OWNERSHIP))); // 设备管理归属 商管/百货/大歌星/超市/影院/大酒楼/其他
+            hydomcAsset.setHysbbm(StringTool.object2String(infosObj.get(InfosKeyConstant.WISDOM_CLOUD_LOCAL_CODE))); // 慧云设备编码
+            hydomcAsset.setSfhysy(StringTool.object2String(infosObj.get(InfosKeyConstant.WISDOM_CLOUD_USE))); // 是否慧云使用 是/否   缺省为 是
+            hydomcAsset.setSfzld(StringTool.object2String(infosObj.get(InfosKeyConstant.MAIN_STORE))); // 是否是主力店 缺省为 否
+            hydomcAsset.setMark(StringTool.object2String(infosObj.get(InfosKeyConstant.REMARK))); // 备注 wD_beizhu
             hydomcAsset.setSiteid(wdProjectId); // 项目唯一id,可采用租赁系统广场id,同步后不可更改
             hydomcAsset.setDatastatus(valid == 0 ? SwitchConstant.IS_DELETE : SwitchConstant.IS_UPDATE); // 数据状态 update/delete 当数据状态为delete时,设备状态需改为报废
             hydomcAsset.setChangedate(updateTime); // 数据更新时间 增量字段
@@ -107,19 +107,19 @@ public class WdDbServiceImpl implements WdDbService {
                 updateWrapper.set("datastatus", SwitchConstant.IS_DELETE); // 数据状态 update/delete 当数据状态为delete时,设备状态需改为报废
             } else {
                 log.debug("万达数据库已经存在该条数据,但博锐尚格这条数据状态为有效,因此需要更新所有字段");
-                updateWrapper.set("sbybm", String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_CODE))); // 主键  无其他主键可采用设备编码为主键,但要确保唯一(工程信息化设备原码)
-                updateWrapper.set("description", String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_NAME))); // 设备名称
+                updateWrapper.set("sbybm", StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_CODE))); // 主键  无其他主键可采用设备编码为主键,但要确保唯一(工程信息化设备原码)
+                updateWrapper.set("description", StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_NAME))); // 设备名称
                 // updateWrapper.setWzqy(); // 详细设备安装位置,格式:楼体-楼层-区域 没有key 后续补充
-                updateWrapper.set("fwqy", String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_SERVICE_ZONE))); // 设备服务区域 设备/系统服务范围
-                updateWrapper.set("sbxh", String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_MODEL))); // 厂商设备型号
+                updateWrapper.set("fwqy", StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_SERVICE_ZONE))); // 设备服务区域 设备/系统服务范围
+                updateWrapper.set("sbxh", StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_MODEL))); // 厂商设备型号
                 updateWrapper.set("classstructureid", classstrucrureid); // 对接设备分类id,同步后不可更改
                 updateWrapper.set("status", SwitchConstant.RUNNING); // 设备状态 运行中/报废    默认都为运行中
-                updateWrapper.set("sbxhh", String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_IDX))); // 设备序号 同类设备的序号,即第几台设备:第几台电梯
-                updateWrapper.set("cjsbxh", String.valueOf(infosObj.get(InfosKeyConstant.SERIAL_NUM))); // 厂家设备序列号
-                updateWrapper.set("manufacturer", String.valueOf(infosObj.get(InfosKeyConstant.MANUFACTURER))); // 生产商公司供方管理系统编码code
-                updateWrapper.set("vendor", String.valueOf(infosObj.get(InfosKeyConstant.SUPPLIER))); // 供应商公司供方管理系统编码code
-                updateWrapper.set("fws", String.valueOf(infosObj.get(InfosKeyConstant.MAINTAINER))); // 服务商公司供方管理系统编码code
-                updateWrapper.set("purchaseprice", Double.valueOf(String.valueOf(infosObj.get(InfosKeyConstant.PURCHASE_PRICE)))); // 采购金额 填写人民币元
+                updateWrapper.set("sbxhh", StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_IDX))); // 设备序号 同类设备的序号,即第几台设备:第几台电梯
+                updateWrapper.set("cjsbxh", StringTool.object2String(infosObj.get(InfosKeyConstant.SERIAL_NUM))); // 厂家设备序列号
+                updateWrapper.set("manufacturer", StringTool.object2String(infosObj.get(InfosKeyConstant.MANUFACTURER))); // 生产商公司供方管理系统编码code
+                updateWrapper.set("vendor", StringTool.object2String(infosObj.get(InfosKeyConstant.SUPPLIER))); // 供应商公司供方管理系统编码code
+                updateWrapper.set("fws", StringTool.object2String(infosObj.get(InfosKeyConstant.MAINTAINER))); // 服务商公司供方管理系统编码code
+                updateWrapper.set("purchaseprice", StringTool.object2Double(Double.valueOf(StringTool.object2String(infosObj.get(InfosKeyConstant.PURCHASE_PRICE))))); // 采购金额 填写人民币元
                 updateWrapper.set("zjsynx", StringTool.object2Double(infosObj.get(InfosKeyConstant.SERVICE_LIFE))); // 折旧/使用年限 按年填写 如3年半则填写 3.5
                 updateWrapper.set("scrq", StringTool.object2DateTime(infosObj.get(InfosKeyConstant.PRODUCT_DATE))); // 生产日期/出厂日期 年/月/日
                 updateWrapper.set("cgrq", StringTool.object2DateTime(infosObj.get(InfosKeyConstant.PURCHASE_DATE))); // 采购日期
@@ -129,12 +129,12 @@ public class WdDbServiceImpl implements WdDbService {
                 updateWrapper.set("zbjsrq", StringTool.object2DateTime(infosObj.get(InfosKeyConstant.WARRANTY_END_DATE))); // 质保结束日期
                 updateWrapper.set("zxzq", StringTool.object2Integer(infosObj.get(InfosKeyConstant.MEDIUM_REPAIR_CYCLE))); // 中修周期 单位为月
                 updateWrapper.set("dxzq", StringTool.object2Integer(infosObj.get(InfosKeyConstant.OVERHAUL_CYCLE))); // 大修周期 单位为月
-                updateWrapper.set("wylx", String.valueOf(infosObj.get(InfosKeyConstant.PROPERTY_TYPE))); // 物业类型 自持/销售/合作方
-                updateWrapper.set("sbglgs", String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_MANAGE_OWNERSHIP))); // 设备管理归属 商管/百货/大歌星/超市/影院/大酒楼/其他
-                updateWrapper.set("hysbbm", String.valueOf(infosObj.get(InfosKeyConstant.WISDOM_CLOUD_LOCAL_CODE))); // 慧云设备编码
-                updateWrapper.set("sfhysy", String.valueOf(infosObj.get(InfosKeyConstant.WISDOM_CLOUD_USE))); // 是否慧云使用 是/否   缺省为 是
-                updateWrapper.set("sfzld", String.valueOf(infosObj.get(InfosKeyConstant.MAIN_STORE))); // 是否是主力店 缺省为 否
-                updateWrapper.set("mark", String.valueOf(infosObj.get(InfosKeyConstant.REMARK))); // 备注 wD_beizhu
+                updateWrapper.set("wylx", StringTool.object2String(infosObj.get(InfosKeyConstant.PROPERTY_TYPE))); // 物业类型 自持/销售/合作方
+                updateWrapper.set("sbglgs", StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_MANAGE_OWNERSHIP))); // 设备管理归属 商管/百货/大歌星/超市/影院/大酒楼/其他
+                updateWrapper.set("hysbbm", StringTool.object2String(infosObj.get(InfosKeyConstant.WISDOM_CLOUD_LOCAL_CODE))); // 慧云设备编码
+                updateWrapper.set("sfhysy", StringTool.object2String(infosObj.get(InfosKeyConstant.WISDOM_CLOUD_USE))); // 是否慧云使用 是/否   缺省为 是
+                updateWrapper.set("sfzld", StringTool.object2String(infosObj.get(InfosKeyConstant.MAIN_STORE))); // 是否是主力店 缺省为 否
+                updateWrapper.set("mark", StringTool.object2String(infosObj.get(InfosKeyConstant.REMARK))); // 备注 wD_beizhu
                 updateWrapper.set("siteid", wdProjectId); // 项目唯一id,可采用租赁系统广场id,同步后不可更改
                 updateWrapper.set("datastatus", SwitchConstant.IS_UPDATE); // 数据状态 update/delete 当数据状态为delete时,设备状态需改为报废
             }
@@ -159,14 +159,14 @@ public class WdDbServiceImpl implements WdDbService {
         HydomcAssetspec hydomcAssetspec;
         for (WdfacilityRelPersagy wdfacilityRelPersagy : wdfacilityRelList) {
             // 根据万达设备信息表的SITEID、SBYBM、ASSETATTRID查询数据是否存在
-            hydomcAssetspec = this.getHydomcAssetspec(wdProjectid, String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_CODE)), wdfacilityRelPersagy.getAssetattrid());
+            hydomcAssetspec = this.getHydomcAssetspec(wdProjectid, StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_CODE)), wdfacilityRelPersagy.getAssetattrid());
             if (hydomcAssetspec == null) {
                 log.debug("万达表hydomc_assetspec没有这条数据,准备新增");
                 hydomcAssetspec = this.handleHydomcAssetspec(new HydomcAssetspec(), wdProjectid, infosObj, wdfacilityRelPersagy, updateTime);
                 this.hydomcAssetspecMapper.insert(hydomcAssetspec);
             } else {
                 // key为wdfacility_rel_persagy的code值从debugs取 有值update 无值(空、空字符串)就是delete
-                if (StringUtils.isBlank(String.valueOf(infosObj.get(wdfacilityRelPersagy.getCode())))) {
+                if (StringUtils.isBlank(StringTool.object2String(infosObj.get(wdfacilityRelPersagy.getCode())))) {
                     log.debug("万达表hydomc_assetspec有这条数据,但code没有值,只需要更新数据状态为delete即可");
                     hydomcAssetspec.setDatastatus(SwitchConstant.IS_DELETE); // 数据状态 update/delete
                     hydomcAssetspec.setChangedate(updateTime); // 数据更新时间 增量字段
@@ -192,8 +192,8 @@ public class WdDbServiceImpl implements WdDbService {
      */
     public HydomcAssetspec handleHydomcAssetspec(HydomcAssetspec hydomcAssetspec, String wdProjectid, JSONObject infosObj, WdfacilityRelPersagy wdfacilityRelPersagy, Date changedate) {
         hydomcAssetspec.setSiteid(wdProjectid); // 广场id 关联设备信息 Pj4403070003
-        hydomcAssetspec.setSbybm(String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_CODE))); // 设备编码 关联设备信息 wD_gongchengxinxihua
-        hydomcAssetspec.setClassstructureid(String.valueOf(infosObj.get(InfosKeyConstant.EQUIPMENT_SORT))); // 设备分类id 1507
+        hydomcAssetspec.setSbybm(StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_CODE))); // 设备编码 关联设备信息 wD_gongchengxinxihua
+        hydomcAssetspec.setClassstructureid(StringTool.object2String(infosObj.get(InfosKeyConstant.EQUIPMENT_SORT))); // 设备分类id 1507
         // 根据Datatype判断设置设备参数数字值还是设备参数文本值 key为wdfacility_rel_persagy的code值从debugs取
         final String IS_NUMBER = "数字";
         final String IS_LETTER = "字母";
@@ -202,10 +202,10 @@ public class WdDbServiceImpl implements WdDbService {
             hydomcAssetspec.setNumvalue(StringTool.object2Double(infosObj.get(wdfacilityRelPersagy.getCode()))); // 设备参数数字值 (取自debugs)
         } else if (IS_LETTER.equals(wdfacilityRelPersagy.getDatatype())) { // 是字母
             log.debug("dataType是字母");
-            hydomcAssetspec.setAlnvalue(String.valueOf(infosObj.get(wdfacilityRelPersagy.getCode()))); // 设备参数文本值 (取自debugs)
+            hydomcAssetspec.setAlnvalue(StringTool.object2String(infosObj.get(wdfacilityRelPersagy.getCode()))); // 设备参数文本值 (取自debugs)
         }
         // key为wdfacility_rel_persagy的code值从debugs取 有值update 无值(空、空字符串)就是delete
-        if (StringUtils.isBlank(String.valueOf(infosObj.get(wdfacilityRelPersagy.getCode())))) {
+        if (StringUtils.isBlank(StringTool.object2String(infosObj.get(wdfacilityRelPersagy.getCode())))) {
             log.debug("code没有值,数据状态设置为delete");
             hydomcAssetspec.setDatastatus(SwitchConstant.IS_DELETE); // 数据状态 update/delete
         } else {

+ 8 - 12
src/main/java/com/persagy/transfer/utils/StringTool.java

@@ -15,6 +15,14 @@ import java.util.Date;
  **/
 public class StringTool {
 
+    public static String object2String(Object obj) {
+        if (obj != null && StringUtils.isNotBlank(String.valueOf(obj)) && !"null".equals(String.valueOf(obj))) {
+            return String.valueOf(obj);
+        } else {
+            return StringUtils.EMPTY;
+        }
+    }
+
     public static Double object2Double(Object obj) {
         if (obj != null && StringUtils.isNotBlank(String.valueOf(obj))) {
             return Double.valueOf(String.valueOf(obj));
@@ -32,18 +40,6 @@ public class StringTool {
         } else {
             return null;
         }
-//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        Date date = null;
-//        if (str != null && StringUtils.isNotBlank(String.valueOf(str))) {
-//            try {
-//                date = sdf.parse(String.valueOf(str));
-//            } catch (ParseException e) {
-//                e.printStackTrace();
-//            }
-//        }
-//        return date;
-//    }
-
     }
 
     public static Integer object2Integer(Object obj) {