guarantee-lsq 2 rokov pred
rodič
commit
96b909bd92

+ 30 - 15
platform-service/src/main/java/com/platform/service/sb/impl/SbChangeRecordServiceImpl.java

@@ -70,6 +70,10 @@ public class SbChangeRecordServiceImpl extends BaseServiceImpl<SbChangeRecordMap
         return new MyPage(mapper.selectList(record));
     }
 
+    private String getPureString(String info){
+        return com.platform.common.util.StringUtils.isBlank(info) ? "" : info;
+    }
+
     /**
      * 处理单个变更设备
      * @param model
@@ -80,27 +84,38 @@ public class SbChangeRecordServiceImpl extends BaseServiceImpl<SbChangeRecordMap
         SbInfo tempInfo = new SbInfo();
         tempInfo.setId(sbInfo.getId());
         tempInfo.setPositionId(sbInfo.getPositionId());
+        boolean insetFlag = Boolean.FALSE;
         if(model.getChangeType() == SbChangeTypeEnum.SB_CHANGE_SB_NO.getValue()){
+            String oldSbPositionNo = getPureString(sbInfo.getPositionNo()); // 原设备位号
+            String positionNo = getPureString(model.getSbNoId());
             // 设备位号变动
-            remark.append("设备位号变动【"+sbInfo.getPositionNo()).append("】 ---> ");
-            remark.append("【"+model.getSbNoId()+"】");
-            sbInfo.setPositionNo(model.getSbNoId()); // 设备位号
-            // 位号变动,父设备也有可能变动
-            SbLocation location = new SbLocation();
-            location.setNo(model.getSbNoId());
-            List<SbLocation> locations = sbLocationMapper.select(location);
-            if(locations != null && locations.size() > 0){
-                sbInfo.setParentId(locations.get(0).getSbId());
+            if(!oldSbPositionNo.equals(positionNo)){
+                insetFlag = Boolean.TRUE;
+                remark.append("设备位号变动【"+oldSbPositionNo).append("】 ---> ");
+                remark.append("【"+positionNo+"】");
+                sbInfo.setPositionNo(positionNo); // 设备位号
+                // 位号变动,父设备也有可能变动
+                SbLocation location = new SbLocation();
+                location.setNo(positionNo);
+                List<SbLocation> locations = sbLocationMapper.select(location);
+                if(locations != null && locations.size() > 0){
+                    sbInfo.setParentId(locations.get(0).getSbId());
+                }
             }
         }else if(model.getChangeType() == SbChangeTypeEnum.SB_CHANGE_SB_POSITION.getValue()){
+            String oldPosition = StringUtils.isBlank(tempInfo.getPositionId()) ? "" : sbPositionMapper.selectNameById(tempInfo.getPositionId());
+            String position = StringUtils.isBlank(model.getPositionId()) ? "" : sbPositionMapper.selectNameById(model.getPositionId());
             // 设备位置变动
-            sbInfo.setPositionId(model.getPositionId());
-            String before = StringUtils.isBlank(tempInfo.getPositionId()) ? "" : sbPositionMapper.selectNameById(tempInfo.getPositionId());
-            remark.append("设备位置变动【" + before).append("】 ---> ");
-            String after = StringUtils.isBlank(model.getPositionId()) ? "" : sbPositionMapper.selectNameById(model.getPositionId());
-            remark.append("【" + after + "】");
+            if(!oldPosition.equals(position)){
+                insetFlag = Boolean.TRUE;
+                sbInfo.setPositionId(model.getPositionId());
+                remark.append("设备位置变动【" + oldPosition).append("】 ---> ");
+                remark.append("【" + position + "】");
+            }
+        }
+        if(insetFlag){
+            handleSbChangeRecord(remark.toString(),model,tempInfo,model.getChangeType());
         }
-        handleSbChangeRecord(remark.toString(),model,tempInfo,model.getChangeType());
         sbInfoMapper.updateByPrimaryKey(sbInfo);
     }