From d7d3b53ab846738cc9a4ed3de46d28fd872f333b Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 29 十月 2023 14:53:29 +0800
Subject: [PATCH] 优化催交

---
 service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java |  177 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 135 insertions(+), 42 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java b/service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java
index 86cd07a..573bffc 100644
--- a/service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java
+++ b/service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java
@@ -78,7 +78,7 @@
             }
         }
 
-        if (oweFeeCallablePos.size() < 1) {
+        if (oweFeeCallablePos.isEmpty()) {
             return;
         }
 
@@ -92,50 +92,102 @@
         String oweUrl = "";
         OweFeeCallablePo updateOweFeeCallablePo = null;
         OwnerAppUserDto ownerAppUserDto = null;
-        for (OweFeeCallablePo oweFeeCallablePo : oweFeeCallablePos) {
+        String userId = "";
+        List<JSONObject> contents = null;
 
-            if (StringUtil.isEmpty(oweFeeCallablePo.getOwnerId()) || oweFeeCallablePo.getOwnerId().startsWith("-")) {
-                updateOweFeeCallablePo = new OweFeeCallablePo();
-                updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId());
-                updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId());
-                updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
-                updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-涓氫富涓嶅瓨鍦�");
-                oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo);
-                continue;
-            }
-            ownerAppUserDto = new OwnerAppUserDto();
-            ownerAppUserDto.setMemberId(oweFeeCallablePo.getOwnerId());
-            ownerAppUserDto.setCommunityId(oweFeeCallablePo.getCommunityId());
-            ownerAppUserDto.setAppType(OwnerAppUserDto.APP_TYPE_WECHAT);
-            List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
-            if (ownerAppUserDtos == null || ownerAppUserDtos.size() < 1) {
-                updateOweFeeCallablePo = new OweFeeCallablePo();
-                updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId());
-                updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId());
-                updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
-                updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-涓氫富鏈粦瀹�");
-                oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo);
-                continue;
+        List<OweFeeCallablePo> sendOweFeeCallablePos = null;
+
+        //todo 鎸夋埧灞嬪彂閫�
+        for (int roomIndex = 0; roomIndex < roomIds.size(); roomIndex++) {
+            contents = new ArrayList<>();
+            String notifyWay = MsgNotifyFactory.NOTIFY_WAY_WECHAT;
+            userId = "";
+            String ofcId = "";
+            String ownerId = "";
+            try {
+                sendOweFeeCallablePos = new ArrayList<>();
+                for (OweFeeCallablePo oweFeeCallablePo : oweFeeCallablePos) {
+                    if (!oweFeeCallablePo.getPayerObjId().equals(roomIds.getString(roomIndex))) {
+                        continue;
+                    }
+
+                    ofcId = oweFeeCallablePo.getOfcId();
+                    ownerId = oweFeeCallablePo.getOwnerId();
+
+                    //todo 涓氫富涓嶅瓨鍦�
+                    if (StringUtil.isEmpty(oweFeeCallablePo.getOwnerId()) || oweFeeCallablePo.getOwnerId().startsWith("-")) {
+                        updateOweFeeCallablePo = new OweFeeCallablePo();
+                        updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId());
+                        updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId());
+                        updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
+                        updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-涓氫富涓嶅瓨鍦�");
+                        oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo);
+                        continue;
+                    }
+
+
+                    ownerAppUserDto = new OwnerAppUserDto();
+                    ownerAppUserDto.setMemberId(oweFeeCallablePo.getOwnerId());
+                    ownerAppUserDto.setCommunityId(oweFeeCallablePo.getCommunityId());
+                    ownerAppUserDto.setAppType(OwnerAppUserDto.APP_TYPE_WECHAT);
+                    List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
+                    if (ownerAppUserDtos != null && ownerAppUserDtos.size() > 0) {
+                        userId = ownerAppUserDtos.get(0).getUserId();
+                    }
+
+                    oweUrl = FeeDto.PAYER_OBJ_TYPE_ROOM.equals(oweFeeCallablePo.getPayerObjType()) ? oweRoomUrl : oweCarUrl;
+                    content = new JSONObject();
+                    content.put("feeTypeName", oweFeeCallablePo.getFeeName());
+                    content.put("payerObjName", oweFeeCallablePo.getPayerObjName());
+                    content.put("billAmountOwed", oweFeeCallablePo.getAmountdOwed());
+                    content.put("date", DateUtil.dateTimeToDate(oweFeeCallablePo.getStartTime()) + "~" + DateUtil.dateTimeToDate(oweFeeCallablePo.getEndTime()));
+                    content.put("url", oweUrl + oweFeeCallablePo.getPayerObjId());
+
+                    if (OweFeeCallableDto.CALLABLE_WAY_SMS.equals(oweFeeCallablePo.getCallableWay())) {
+                        notifyWay = MsgNotifyFactory.NOTIFY_WAY_ALI;
+                    }
+                    contents.add(content);
+                    sendOweFeeCallablePos.add(oweFeeCallablePo);
+
+                }
+
+                if (contents.isEmpty()) {
+                    continue;
+                }
+
+                //todo 鍌即
+                ResultVo resultVo = MsgNotifyFactory.sendOweFeeMsg(data.getString("communityId"), userId, ownerId, contents, notifyWay);
+
+                for (OweFeeCallablePo oweFeeCallablePo : sendOweFeeCallablePos) {
+                    if (StringUtil.isEmpty(oweFeeCallablePo.getOwnerId()) || oweFeeCallablePo.getOwnerId().startsWith("-")) {
+                        continue;
+                    }
+                    ofcId = oweFeeCallablePo.getOfcId();
+                    updateOweFeeCallablePo = new OweFeeCallablePo();
+                    updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId());
+                    updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId());
+                    if (resultVo.getCode() != ResultVo.CODE_OK) {
+                        updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
+                        updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-" + resultVo.getMsg());
+                    } else {
+                        updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_COMPLETE);
+                    }
+                    oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo);
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+
+                if(!StringUtil.isEmpty(ofcId)){
+                    updateOweFeeCallablePo = new OweFeeCallablePo();
+                    updateOweFeeCallablePo.setOfcId(ofcId);
+                    updateOweFeeCallablePo.setCommunityId(data.getString("communityId"));
+                    updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
+                    updateOweFeeCallablePo.setRemark(e.getMessage());
+                    oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo);
+                }
+
             }
 
-            oweUrl = FeeDto.PAYER_OBJ_TYPE_ROOM.equals(oweFeeCallablePo.getPayerObjType()) ? oweRoomUrl : oweCarUrl;
-            content = new JSONObject();
-            content.put("feeTypeName", oweFeeCallablePo.getFeeName());
-            content.put("payerObjName", oweFeeCallablePo.getPayerObjName());
-            content.put("billAmountOwed", oweFeeCallablePo.getAmountdOwed());
-            content.put("date", DateUtil.dateTimeToDate(oweFeeCallablePo.getStartTime()) + "~" + DateUtil.dateTimeToDate(oweFeeCallablePo.getEndTime()));
-            content.put("url", oweUrl);
-            ResultVo resultVo = MsgNotifyFactory.sendOweFeeMsg(data.getString("communityId"), ownerAppUserDtos.get(0).getUserId(), content);
-            updateOweFeeCallablePo = new OweFeeCallablePo();
-            updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId());
-            updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId());
-            if (resultVo.getCode() != ResultVo.CODE_OK) {
-                updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
-                updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-" + resultVo.getMsg());
-            } else {
-                updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_COMPLETE);
-            }
-            oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo);
         }
     }
 
@@ -163,6 +215,11 @@
         OweFeeCallablePo oweFeeCallablePo = null;
 
         for (ReportOweFeeDto reportOweFeeDto : feeDtos) {
+
+            // todo  鏍¢獙 鏃堕棿鑼冨洿
+            if (!hasInTime(reportOweFeeDto, data)) {
+                continue;
+            }
             oweFeeCallablePo = new OweFeeCallablePo();
 
             oweFeeCallablePo.setAmountdOwed(reportOweFeeDto.getAmountOwed());
@@ -216,6 +273,17 @@
         if (data.containsKey("feeId")) {
             reportOweFeeDto.setFeeId(data.getString("feeId"));
         }
+        List<String> feeIds = new ArrayList<>();
+
+        if (data.containsKey("feeIds")) {
+            JSONArray feeIdAs = data.getJSONArray("feeIds");
+            for (int feeIndex = 0; feeIndex < feeIdAs.size(); feeIndex++) {
+                feeIds.add(feeIdAs.getString(feeIndex));
+            }
+            if (feeIds.size() > 0) {
+                reportOweFeeDto.setFeeIds(feeIds.toArray(new String[feeIds.size()]));
+            }
+        }
         List<String> configIdss = new ArrayList<>();
         if (data.containsKey("configIds")) {
             JSONArray configIds = data.getJSONArray("configIds");
@@ -232,5 +300,30 @@
 
     }
 
+    private boolean hasInTime(ReportOweFeeDto tempFeeDto, JSONObject reqJson) {
+        if (!reqJson.containsKey("startTime") || !reqJson.containsKey("endTime")) {
+            return true;
+        }
+
+        String startTime = reqJson.getString("startTime");
+        String endTime = reqJson.getString("endTime");
+
+        if (StringUtil.isEmpty(startTime) || StringUtil.isEmpty(endTime)) {
+            return true;
+        }
+        if (StringUtil.isEmpty(tempFeeDto.getDeadlineTime())) {
+            return true;
+        }
+        if (StringUtil.isEmpty(tempFeeDto.getEndTime())) {
+            return true;
+        }
+
+        if (DateUtil.getDateFromStringB(tempFeeDto.getEndTime()).before(DateUtil.getDateFromStringB(startTime)) && DateUtil.getDateFromStringB(tempFeeDto.getDeadlineTime()).after(DateUtil.getDateFromStringB(endTime))) {
+            return true;
+        }
+
+        return false;
+    }
+
 
 }

--
Gitblit v1.8.0