From b536b4e005a3aee7908a60c31eddff90bf4b98dc Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期六, 07 八月 2021 22:20:16 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-fee/src/main/java/com/java110/fee/bmo/meterWater/impl/QueryPreMeterWaterImpl.java |   86 ++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 80 insertions(+), 6 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/bmo/meterWater/impl/QueryPreMeterWaterImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/meterWater/impl/QueryPreMeterWaterImpl.java
index b1014a1..aae95e9 100755
--- a/service-fee/src/main/java/com/java110/fee/bmo/meterWater/impl/QueryPreMeterWaterImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/meterWater/impl/QueryPreMeterWaterImpl.java
@@ -5,17 +5,22 @@
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.RoomDto;
 import com.java110.dto.contractRoom.ContractRoomDto;
+import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.meterWater.ImportExportMeterWaterDto;
 import com.java110.dto.meterWater.MeterWaterDto;
+import com.java110.dto.owner.OwnerDto;
 import com.java110.dto.parking.ParkingSpaceDto;
 import com.java110.fee.bmo.meterWater.IQueryPreMeterWater;
 import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
 import com.java110.intf.fee.IMeterWaterInnerServiceSMO;
 import com.java110.intf.store.IContractRoomInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeePo;
 import com.java110.po.meterWater.MeterWaterPo;
 import com.java110.utils.util.Assert;
@@ -55,6 +60,12 @@
     @Autowired
     private IContractRoomInnerServiceSMO contractRoomInnerServiceSMOImpl;
 
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
 
     @Override
     public ResponseEntity<String> query(MeterWaterDto meterWaterDto, String roomNum) {
@@ -81,16 +92,20 @@
             meterWaterDto.setMeterType(meterType);
             meterWaterDto.setObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
             meterWaterDto.setObjId(tmpRoomDto.getRoomId());
+            meterWaterDto.setCommunityId(communityId);
             List<MeterWaterDto> meterWaterDtos = meterWaterInnerServiceSMOImpl.queryMeterWaters(meterWaterDto);
             importExportMeterWaterDto = BeanConvertUtil.covertBean(tmpRoomDto, ImportExportMeterWaterDto.class);
-            String preDegree = "0" ;
+            String preDegree = "0";
             String preReadTime = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B);
-            if(meterWaterDtos != null && meterWaterDtos.size()> 0){
+            double price = 0;
+            if (meterWaterDtos != null && meterWaterDtos.size() > 0) {
                 preDegree = meterWaterDtos.get(0).getCurDegrees();
                 preReadTime = DateUtil.dateTimeToDate(meterWaterDtos.get(0).getCurReadingTime());
+                price = meterWaterDtos.get(0).getPrice();
             }
             importExportMeterWaterDto.setPreDegrees(preDegree);
             importExportMeterWaterDto.setPreReadingTime(preReadTime);
+            importExportMeterWaterDto.setPrice(price);
             importExportMeterWaterDtos.add(importExportMeterWaterDto);
         }
         return ResultVo.createResponseEntity(1, importExportMeterWaterDtos.size(), importExportMeterWaterDtos);
@@ -109,6 +124,7 @@
 
         List<PayFeePo> fees = new ArrayList<>();
         List<MeterWaterPo> meterWaterPos = new ArrayList<>();
+        List<FeeAttrPo> feeAttrPos = new ArrayList<>();
         for (int meteWaterIndex = 0; meteWaterIndex < importMeteWaterFees.size(); meteWaterIndex++) {
             meteWaterJson = importMeteWaterFees.getJSONObject(meteWaterIndex);
 
@@ -121,7 +137,8 @@
                     userId,
                     feeTypeCd,
                     fees,
-                    meterWaterPos
+                    meterWaterPos,
+                    feeAttrPos
             );
         }
 
@@ -131,13 +148,18 @@
 
         feeInnerServiceSMOImpl.saveFee(fees);
 
+        if (feeAttrPos.size() > 0) {
+            feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrPos);
+        }
+
         meterWaterInnerServiceSMOImpl.saveMeterWaters(meterWaterPos);
         return ResultVo.success();
     }
 
+
     private void dealImportExportMeterWater(ImportExportMeterWaterDto importExportMeterWaterDto, String communityId,
                                             String storeId, String configId, String userId, String feeTypeCd,
-                                            List<PayFeePo> fees, List<MeterWaterPo> meterWaterPos) {
+                                            List<PayFeePo> fees, List<MeterWaterPo> meterWaterPos, List<FeeAttrPo> feeAttrPos) {
 
         RoomDto roomDto = new RoomDto();
         roomDto.setCommunityId(communityId);
@@ -150,6 +172,8 @@
 
         if (FeeConfigDto.FEE_TYPE_CD_WATER.equals(feeTypeCd)) {
             importExportMeterWaterDto.setMeterType("1010");
+        } else if (FeeConfigDto.FEE_TYPE_CD_GAS.equals(feeTypeCd)) {
+            importExportMeterWaterDto.setMeterType("3030");
         } else {
             importExportMeterWaterDto.setMeterType("2020");
         }
@@ -172,10 +196,58 @@
         //payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
         payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
 
-        if(contractRoomDtos != null && contractRoomDtos.size()> 0){
+        if (contractRoomDtos != null && contractRoomDtos.size() > 0) {
             payFeePo.setPayerObjId(contractRoomDtos.get(0).getContractId());
             //payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
             payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CONTRACT);
+            FeeAttrPo feeAttrPo = new FeeAttrPo();
+            feeAttrPo.setCommunityId(communityId);
+            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_IMPORT_FEE_NAME);
+            String feeName = importExportMeterWaterDto.getFloorNum() + "鏍�" + importExportMeterWaterDto.getUnitNum() + "鍗曞厓" + importExportMeterWaterDto.getRoomNum() + "瀹�";
+
+            if ("1010".equals(importExportMeterWaterDto.getMeterType())) {
+                feeName += "姘磋垂";
+            } else if ("2020".equals(importExportMeterWaterDto.getMeterType())) {
+                feeName += "鐢佃垂";
+            } else {
+                feeName += "鐕冩皵璐�";
+            }
+            feeAttrPo.setValue(feeName);
+            feeAttrPo.setFeeId(payFeePo.getFeeId());
+            feeAttrPos.add(feeAttrPo);
+        }
+
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(communityId);
+        ownerDto.setRoomId(roomDtos.get(0).getRoomId());
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
+
+        if (ownerDtos != null && ownerDtos.size() > 0) {
+            FeeAttrPo feeAttrPo = new FeeAttrPo();
+            feeAttrPo.setCommunityId(communityId);
+            feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID);
+            feeAttrPo.setValue(ownerDtos.get(0).getOwnerId());
+            feeAttrPo.setFeeId(payFeePo.getFeeId());
+            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            feeAttrPos.add(feeAttrPo);
+
+            feeAttrPo = new FeeAttrPo();
+            feeAttrPo.setCommunityId(communityId);
+            feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK);
+            feeAttrPo.setValue(ownerDtos.get(0).getLink());
+            feeAttrPo.setFeeId(payFeePo.getFeeId());
+            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            feeAttrPos.add(feeAttrPo);
+
+            feeAttrPo = new FeeAttrPo();
+            feeAttrPo.setCommunityId(communityId);
+            feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME);
+            feeAttrPo.setValue(ownerDtos.get(0).getName());
+            feeAttrPo.setFeeId(payFeePo.getFeeId());
+            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            feeAttrPos.add(feeAttrPo);
+
         }
         payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
         payFeePo.setState(FeeDto.STATE_DOING);
@@ -185,6 +257,7 @@
         payFeePo.setCommunityId(communityId);
         fees.add(payFeePo);
 
+
         MeterWaterPo meterWaterPo = new MeterWaterPo();
         meterWaterPo.setCommunityId(communityId);
         meterWaterPo.setCurDegrees(importExportMeterWaterDto.getCurDegrees());
@@ -192,12 +265,13 @@
         meterWaterPo.setFeeId(payFeePo.getFeeId());
         meterWaterPo.setMeterType(importExportMeterWaterDto.getMeterType());
         meterWaterPo.setObjId(roomDtos.get(0).getRoomId());
-        meterWaterPo.setObjName(importExportMeterWaterDto.getFloorNum() + "鏍�" + importExportMeterWaterDto.getUnitNum() + "鍗曞厓" + importExportMeterWaterDto.getRoomNum() + "瀹�");
+        meterWaterPo.setObjName(importExportMeterWaterDto.getFloorNum() + "-" + importExportMeterWaterDto.getUnitNum() + "-" + importExportMeterWaterDto.getRoomNum());
         meterWaterPo.setObjType(MeterWaterDto.OBJ_TYPE_ROOM);
         meterWaterPo.setPreDegrees(importExportMeterWaterDto.getPreDegrees());
         meterWaterPo.setPreReadingTime(importExportMeterWaterDto.getPreReadingTime());
         meterWaterPo.setWaterId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_waterId));
         meterWaterPo.setRemark(importExportMeterWaterDto.getRemark());
+        meterWaterPo.setPrice(importExportMeterWaterDto.getPrice());
         meterWaterPos.add(meterWaterPo);
     }
 

--
Gitblit v1.8.0