Browse Source

优化处理

王苗苗 3 weeks ago
parent
commit
3808ccd2db

+ 39 - 11
ruoyi-admin/src/main/java/com/ruoyi/web/controller/business/HandleDataController.java

@@ -18,8 +18,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.math.BigDecimal;
-import java.util.Collection;
-import java.util.List;
+import java.util.*;
 
 import static com.ruoyi.common.constant.Constants.HTTP_GET_TIME_OUT_MILLION_SECONDS;
 import static com.ruoyi.common.constant.Constants.SQL_SERVER_REMOTE_INTERFACE_ADDR;
@@ -50,6 +49,7 @@ public class HandleDataController {
      * 同步 组织【设备信息】列表
      */
     @GetMapping("/bizDeviceList")
+    @Transactional
     public R<String> bizDeviceList(BizDevice reqBean)
     {
         String result;
@@ -73,6 +73,7 @@ public class HandleDataController {
      * 同步 组织【水厂信息】列表
      */
     @GetMapping("/syncWaterWorkList")
+    @Transactional
     public R<String> syncWaterWorkList(BizWaterWork reqBean)
     {
         String result;
@@ -126,6 +127,7 @@ public class HandleDataController {
     {
         String result;
         List<ZDeviceSample> list;
+        List<ZDeviceSample> errorList = new ArrayList<>();
         try {
             result = HttpUtil.get(SQL_SERVER_REMOTE_INTERFACE_ADDR + "/deviceSampleList", HTTP_GET_TIME_OUT_MILLION_SECONDS);
             log.info("调用同步取样点位接口接口返回的结果为{}", result);
@@ -142,28 +144,39 @@ public class HandleDataController {
                 //通过设备编号去查询设备ID和水厂ID
                 if(StringUtils.isBlank(deviceNo)){
                     log.error("查询到的点位信息对应的设备编号时,因为没有配置设备编号导致无法获取水厂和设备信息!跳过该条数据,此数据为{}", JSON.toJSONString(deviceSample));
+                    errorList.add(deviceSample);
                     continue;
                 }
                 //查询设备
                 List<BizDevice> deviceList = this.bizDeviceMapper.selectBizDeviceList(BizDevice.builder().deviceNo(deviceNo).build());
                 if(CollectionUtils.isEmpty(deviceList)){
                     log.error("查询到的点位信息对应的设备编号时,因为没有通过设备编号查询到设备信息导致无法获取水厂和设备信息!跳过该条数据,此数据为{}", JSON.toJSONString(deviceSample));
+                    errorList.add(deviceSample);
                     continue;
                 }
                 if(deviceList.size() > 1){
                     log.error("通过设备编号查询设备详情时,查出多个设备信息,异常数据为{}", JSON.toJSONString(deviceSample));
+                    errorList.add(deviceSample);
+                    continue;
+                }
+                String assayType = deviceSample.getAssayType();
+                String itemName = deviceSample.getItemName();
+                if(StringUtils.isBlank(assayType) || StringUtils.isBlank(itemName)){
+                    log.error("存在为空的字段,异常数据为{}", JSON.toJSONString(deviceSample));
+                    errorList.add(deviceSample);
                     continue;
                 }
                 BizDevice bizDevice = deviceList.get(0);
                 tPosition.setOrganizationId(bizDevice.getDeviceWorks());
                 tPosition.setDeviceId(bizDevice.getDeviceId());
-                tPosition.setCode(deviceSample.getAssayType());
-                tPosition.setName(deviceSample.getItemName());
+                tPosition.setCode(assayType);
+                tPosition.setName(itemName);
                 tPosition.setCreateBy("sys");
                 tPosition.setCreateTime(DateUtils.getNowDate());
                 this.positionMapper.insertTPosition(tPosition);
             }
         }
+        System.out.println("错误信息数据为:" + JSON.toJSONString(errorList));
         return R.ok("同步成功");
     }
 
@@ -182,6 +195,7 @@ public class HandleDataController {
     {
         String result;
         List<ZQualityValue> list;
+        List<ZQualityValue> errorList = new ArrayList<>();
         try {
             result = HttpUtil.get(SQL_SERVER_REMOTE_INTERFACE_ADDR + "/qualityValueList", HTTP_GET_TIME_OUT_MILLION_SECONDS);
             log.info("调用同步质控样配置接口接口返回的结果为{}", result);
@@ -193,20 +207,34 @@ public class HandleDataController {
         //执行插入本地数据的操作
         if(!CollectionUtils.isEmpty(list)){
             for (ZQualityValue qualityValue : list) {
+                Double resultValue = qualityValue.getResultValue();
+                Double highValue = qualityValue.getHighValue();
+                Double lowValue = qualityValue.getLowValue();
+                Date beginTime = qualityValue.getBeginTime();
+                Date endTime = qualityValue.getEndTime();
+                Long deviceWorks = qualityValue.getDeviceWorks();
+                String assayItem = qualityValue.getAssayItem();
+                if(Objects.isNull(resultValue) || Objects.isNull(highValue) || Objects.isNull(lowValue) || Objects.isNull(beginTime) || Objects.isNull(endTime) || Objects.isNull(deviceWorks)
+                    || StringUtils.isBlank(assayItem)){
+                    log.error("查询配置信息时,数据异常,异常数据为{}", JSON.toJSONString(qualityValue));
+                    errorList.add(qualityValue);
+                    continue;
+                }
                 TQualityConf qualityConf = new TQualityConf();
-                qualityConf.setOrganizationId(qualityValue.getDeviceWorks());
-                qualityConf.setItemId(Long.valueOf(qualityValue.getAssayItem()));
-                qualityConf.setResultValue(BigDecimal.valueOf(qualityValue.getResultValue()));
+                qualityConf.setOrganizationId(deviceWorks);
+                qualityConf.setItemId(Long.valueOf(assayItem));
+                qualityConf.setResultValue(BigDecimal.valueOf(resultValue));
                 qualityConf.setFloatRate(null);
-                qualityConf.setHighValue(BigDecimal.valueOf(qualityValue.getHighValue()));
-                qualityConf.setLowValue(BigDecimal.valueOf(qualityValue.getLowValue()));
-                qualityConf.setBeginTime(qualityValue.getBeginTime());
-                qualityConf.setEndTime(qualityValue.getEndTime());
+                qualityConf.setHighValue(BigDecimal.valueOf(highValue));
+                qualityConf.setLowValue(BigDecimal.valueOf(lowValue));
+                qualityConf.setBeginTime(beginTime);
+                qualityConf.setEndTime(endTime);
                 qualityConf.setCreateBy("sys");
                 qualityConf.setCreateTime(DateUtils.getNowDate());
                 this.qualityConfMapper.insertTQualityConf(qualityConf);
             }
         }
+        System.out.println("错误信息数据为:" + JSON.toJSONString(errorList));
         return R.ok("同步成功");
     }