From 05f5fcc1efbd628f08c868fdaf622554ff85271a Mon Sep 17 00:00:00 2001
From: xiaogang <905166056@qq.com>
Date: 星期五, 21 五月 2021 17:44:43 +0800
Subject: [PATCH] 优化采购管理、优化维修工单办结、优化相关内容

---
 service-api/src/main/java/com/java110/api/listener/meterWater/UpdateMeterWaterListener.java |   68 ++++++++++++++++++++++++++++------
 1 files changed, 56 insertions(+), 12 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/listener/meterWater/UpdateMeterWaterListener.java b/service-api/src/main/java/com/java110/api/listener/meterWater/UpdateMeterWaterListener.java
index 9f229fc..afb05c3 100755
--- a/service-api/src/main/java/com/java110/api/listener/meterWater/UpdateMeterWaterListener.java
+++ b/service-api/src/main/java/com/java110/api/listener/meterWater/UpdateMeterWaterListener.java
@@ -6,15 +6,21 @@
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.dto.RoomDto;
 import com.java110.dto.meterWater.MeterWaterDto;
+import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IMeterWaterInnerServiceSMO;
 import com.java110.po.fee.PayFeePo;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.ServiceCodeMeterWaterConstant;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -30,35 +36,73 @@
     @Autowired
     private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl;
 
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    //鍩�
+    public static final String DOMAIN_COMMON = "DOMAIN.COMMON";
+
+    //閿�(姘磋垂榛戝悕鍗�)
+    public static final String WATER_BLACK_LIST = "WATER_BLACK_LIST";
+
+    //閿�(鐢佃垂榛戝悕鍗�)
+    public static final String ELECTRIC_BLACK_LIST = "ELECTRIC_BLACK_LIST";
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-
         Assert.hasKeyAndValue(reqJson, "waterId", "waterId涓嶈兘涓虹┖");
         Assert.hasKeyAndValue(reqJson, "preDegrees", "璇锋眰鎶ユ枃涓湭鍖呭惈preDegrees");
         Assert.hasKeyAndValue(reqJson, "curDegrees", "璇锋眰鎶ユ枃涓湭鍖呭惈curDegrees");
         Assert.hasKeyAndValue(reqJson, "preReadingTime", "璇锋眰鎶ユ枃涓湭鍖呭惈preReadingTime");
         Assert.hasKeyAndValue(reqJson, "curReadingTime", "璇锋眰鎶ユ枃涓湭鍖呭惈curReadingTime");
         Assert.hasKeyAndValue(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId");
-
     }
 
     @Override
     protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
         MeterWaterDto meterWaterDto = new MeterWaterDto();
         meterWaterDto.setWaterId(reqJson.getString("waterId"));
         meterWaterDto.setCommunityId(reqJson.getString("communityId"));
         List<MeterWaterDto> meterWaterDtos = meterWaterInnerServiceSMOImpl.queryMeterWaters(meterWaterDto);
-
         Assert.listOnlyOne(meterWaterDtos, "鏁版嵁寮傚父鏈壘鍒拌垂鐢ㄤ俊鎭�");
-
-        PayFeePo payFeePo = new PayFeePo();
-        payFeePo.setFeeId(meterWaterDtos.get(0).getFeeId());
-        payFeePo.setCommunityId(meterWaterDtos.get(0).getCommunityId());
-        payFeePo.setStartTime(reqJson.getString("preReadingTime"));
-        //payFeePo.setEndTime(reqJson.getString("curReadingTime"));
-        super.update(context, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_ONLY_UPDATE_FEE_INFO);
-        meterWaterBMOImpl.updateMeterWater(reqJson, context);
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomId(meterWaterDtos.get(0).getObjId());
+        List<RoomDto> roomList = roomInnerServiceSMOImpl.queryRooms(roomDto);
+        Assert.listOnlyOne(roomList, "鏌ヨ鎴垮眿淇℃伅閿欒锛�");
+        //鑾峰彇鎶勮〃瀵硅薄鎵�灞炲皬鍖篿d
+        String communityId = roomList.get(0).getCommunityId();
+        //鑾峰彇鎶勮〃绫诲瀷
+        String meterType = meterWaterDtos.get(0).getMeterType();
+        //鍙栧嚭寮�鍏虫槧灏勭殑澶囨敞鍊�(姘磋垂榛戝悕鍗�)
+        String waterRemark = MappingCache.getRemark(DOMAIN_COMMON, WATER_BLACK_LIST);
+        List<String> waterRemarkList = new ArrayList<>();
+        if (!StringUtil.isEmpty(waterRemark)) {
+            String[] waterSplit = waterRemark.split(",");
+            //灏嗘暟缁勮浆鎴恖ist闆嗗悎(姘磋垂榛戝悕鍗曢泦鍚�)
+            waterRemarkList = Arrays.asList(waterSplit);
+        }
+        //鍙栧嚭寮�鍏虫槧灏勭殑澶囨敞鍊�(鐢佃垂榛戝悕鍗�)
+        String electricRemark = MappingCache.getRemark(DOMAIN_COMMON, ELECTRIC_BLACK_LIST);
+        List<String> electricRemarkList = new ArrayList<>();
+        if (!StringUtil.isEmpty(electricRemark)) {
+            String[] electricSplit = electricRemark.split(",");
+            //灏嗘暟缁勮浆鎴恖ist闆嗗悎(鐢佃垂榛戝悕鍗曢泦鍚�)
+            electricRemarkList = Arrays.asList(electricSplit);
+        }
+        //濡傛灉鏄按璐癸紝涓斿湪姘磋垂榛戝悕鍗曞氨鐩存帴鐢熸垚姘磋垂璁板綍锛屼笉鐢熸垚璐圭敤
+        if (waterRemarkList.contains(communityId) && meterType.equals("2020")) {
+            meterWaterBMOImpl.updateMeterWater(reqJson, context);
+        } else if (electricRemarkList.contains(communityId) && meterType.equals("1010")) {
+            meterWaterBMOImpl.updateMeterWater(reqJson, context);
+        } else {
+            PayFeePo payFeePo = new PayFeePo();
+            payFeePo.setFeeId(meterWaterDtos.get(0).getFeeId());
+            payFeePo.setCommunityId(meterWaterDtos.get(0).getCommunityId());
+            payFeePo.setStartTime(reqJson.getString("preReadingTime"));
+            //payFeePo.setEndTime(reqJson.getString("curReadingTime"));
+            super.update(context, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_ONLY_UPDATE_FEE_INFO);
+            meterWaterBMOImpl.updateMeterWater(reqJson, context);
+        }
     }
 
     @Override

--
Gitblit v1.8.0