From 7958f1dddb8a7f4e70d232b07a7703955ecedae0 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期六, 26 八月 2023 12:45:33 +0800
Subject: [PATCH] 优化diamante

---
 service-common/src/main/java/com/java110/common/smartMeter/SmartMeterCoreReadImpl.java |   79 +++++++++++++++++++++++++++------------
 1 files changed, 55 insertions(+), 24 deletions(-)

diff --git a/service-common/src/main/java/com/java110/common/smartMeter/SmartMeterCoreReadImpl.java b/service-common/src/main/java/com/java110/common/smartMeter/SmartMeterCoreReadImpl.java
index 4a264b7..e2d51f9 100644
--- a/service-common/src/main/java/com/java110/common/smartMeter/SmartMeterCoreReadImpl.java
+++ b/service-common/src/main/java/com/java110/common/smartMeter/SmartMeterCoreReadImpl.java
@@ -1,30 +1,34 @@
 package com.java110.common.smartMeter;
 
 import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.CommunityMemberDto;
+import com.java110.dto.community.CommunityMemberDto;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
-import com.java110.dto.meterMachine.MeterMachineDto;
-import com.java110.dto.meterMachineDetail.MeterMachineDetailDto;
-import com.java110.dto.meterWater.MeterWaterDto;
+import com.java110.dto.meter.MeterMachineDto;
+import com.java110.dto.meter.MeterMachineDetailDto;
+import com.java110.dto.meter.MeterMachineFactoryDto;
+import com.java110.dto.meter.MeterWaterDto;
 import com.java110.dto.owner.OwnerDto;
-import com.java110.dto.payFeeBatch.PayFeeBatchDto;
+import com.java110.dto.payFee.PayFeeBatchDto;
 import com.java110.intf.common.IMeterMachineDetailV1InnerServiceSMO;
+import com.java110.intf.common.IMeterMachineFactoryV1InnerServiceSMO;
 import com.java110.intf.common.IMeterMachineV1InnerServiceSMO;
 import com.java110.intf.community.ICommunityMemberV1InnerServiceSMO;
 import com.java110.intf.fee.*;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeePo;
-import com.java110.po.meterMachine.MeterMachinePo;
-import com.java110.po.meterMachineDetail.MeterMachineDetailPo;
-import com.java110.po.meterWater.MeterWaterPo;
-import com.java110.po.payFeeBatch.PayFeeBatchPo;
+import com.java110.po.meter.MeterMachinePo;
+import com.java110.po.meter.MeterMachineDetailPo;
+import com.java110.po.meter.MeterWaterPo;
+import com.java110.po.payFee.PayFeeBatchPo;
 import com.java110.utils.exception.CmdException;
+import com.java110.utils.factory.ApplicationContextFactory;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -65,6 +69,9 @@
     @Autowired
     private IPayFeeConfigV1InnerServiceSMO payFeeConfigV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IMeterMachineFactoryV1InnerServiceSMO meterMachineFactoryV1InnerServiceSMOImpl;
+
     @Override
     public void saveMeterAndCreateFee(MeterMachineDetailDto meterMachineDetailDto, String degree, String batchId) {
 
@@ -74,12 +81,27 @@
         List<MeterMachineDto> meterMachineDtos = meterMachineV1InnerServiceSMOImpl.queryMeterMachines(meterMachineDto);
         Assert.listOnlyOne(meterMachineDtos, "琛ㄤ笉瀛樺湪");
 
+        String preDegrees = "0";
+        String preReadingTime = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A);
+
+        //璐圭敤鎶勮〃
+        MeterWaterDto meterWaterDto = new MeterWaterDto();
+        meterWaterDto.setObjType(MeterWaterDto.OBJ_TYPE_ROOM);
+        meterWaterDto.setObjId(meterMachineDtos.get(0).getRoomId());
+        meterWaterDto.setCommunityId(meterMachineDtos.get(0).getCommunityId());
+        meterWaterDto.setMeterType(meterMachineDtos.get(0).getMeterType());
+        List<MeterWaterDto> meterWaterDtos = meterWaterInnerServiceSMOImpl.queryMeterWaters(meterWaterDto);
+
+        if (meterWaterDtos != null && meterWaterDtos.size() > 0) {
+            preDegrees = meterWaterDtos.get(0).getCurDegrees();
+            preReadingTime = meterWaterDtos.get(0).getCurReadingTime();
+        }
 
         MeterMachineDetailPo meterMachineDetailPo = new MeterMachineDetailPo();
         meterMachineDetailPo.setDetailId(meterMachineDetailDto.getDetailId());
         meterMachineDetailPo.setCurDegrees(degree);
         meterMachineDetailPo.setState(MeterMachineDetailDto.STATE_C);
-        meterMachineDetailPo.setPrestoreDegrees(degree);
+        meterMachineDetailPo.setPrestoreDegrees(preDegrees);
         meterMachineDetailPo.setCurReadingTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         meterMachineDetailV1InnerServiceSMOImpl.updateMeterMachineDetail(meterMachineDetailPo);
 
@@ -95,21 +117,7 @@
             return;
         }
 
-        String preDegrees = "0";
-        String preReadingTime = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A);
 
-        //璐圭敤鎶勮〃
-        MeterWaterDto meterWaterDto = new MeterWaterDto();
-        meterWaterDto.setObjType(MeterWaterDto.OBJ_TYPE_ROOM);
-        meterWaterDto.setObjId(meterMachineDtos.get(0).getRoomId());
-        meterWaterDto.setCommunityId(meterMachineDtos.get(0).getCommunityId());
-        meterMachinePo.setMeterType(meterMachineDtos.get(0).getMeterType());
-        List<MeterWaterDto> meterWaterDtos = meterWaterInnerServiceSMOImpl.queryMeterWaters(meterWaterDto);
-
-        if (meterWaterDtos != null && meterWaterDtos.size() > 0) {
-            preDegrees = meterWaterDtos.get(0).getPreDegrees();
-            preReadingTime = meterWaterDtos.get(0).getCurReadingTime();
-        }
 
         CommunityMemberDto communityMemberDto = new CommunityMemberDto();
         communityMemberDto.setCommunityId(meterMachineDtos.get(0).getCommunityId());
@@ -246,4 +254,27 @@
         return payFeeBatchPo.getBatchId();
     }
 
+    @Override
+    public double getMeterDegree(MeterMachineDto meterMachineDto) {
+
+        MeterMachineFactoryDto meterMachineFactoryDto = new MeterMachineFactoryDto();
+        meterMachineFactoryDto.setFactoryId(meterMachineDto.getImplBean());
+        List<MeterMachineFactoryDto> meterMachineFactoryDtos = meterMachineFactoryV1InnerServiceSMOImpl.queryMeterMachineFactorys(meterMachineFactoryDto);
+        Assert.listOnlyOne(meterMachineFactoryDtos, "鏅鸿兘姘寸數琛ㄥ巶瀹朵笉瀛樺湪");
+        ISmartMeterFactoryAdapt smartMeterFactoryAdapt = ApplicationContextFactory.getBean(meterMachineFactoryDtos.get(0).getBeanImpl(), ISmartMeterFactoryAdapt.class);
+        if (smartMeterFactoryAdapt == null) {
+            throw new CmdException("鍘傚鎺ュ彛鏈疄鐜�");
+        }
+
+        ResultVo resultVo = smartMeterFactoryAdapt.requestRead(meterMachineDto);
+
+        if(ResultVo.CODE_OK != resultVo.getCode()){
+            return 0.0;
+        }
+        if(resultVo.getData() == null){
+            return 0.0;
+        }
+        return Double.parseDouble(resultVo.getData().toString());
+    }
+
 }

--
Gitblit v1.8.0