From fdf45f690fa4eca9191aa0fb6abf077e7b36ce06 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 23 四月 2021 10:11:59 +0800
Subject: [PATCH] 优化代码

---
 service-api/src/main/java/com/java110/api/listener/fee/PayFeeListener.java |  105 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 91 insertions(+), 14 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/listener/fee/PayFeeListener.java b/service-api/src/main/java/com/java110/api/listener/fee/PayFeeListener.java
index db4723c..977f585 100755
--- a/service-api/src/main/java/com/java110/api/listener/fee/PayFeeListener.java
+++ b/service-api/src/main/java/com/java110/api/listener/fee/PayFeeListener.java
@@ -8,24 +8,28 @@
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
+import com.java110.dto.feeReceipt.FeeReceiptDetailDto;
 import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.repair.RepairDto;
+import com.java110.dto.repair.RepairUserDto;
 import com.java110.entity.center.AppService;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.community.IRepairInnerServiceSMO;
+import com.java110.intf.community.IRepairUserInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
 import com.java110.intf.fee.IFeeReceiptDetailInnerServiceSMO;
-import com.java110.intf.fee.IFeeReceiptInnerServiceSMO;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.po.car.OwnerCarPo;
 import com.java110.po.feeReceipt.FeeReceiptPo;
 import com.java110.po.feeReceiptDetail.FeeReceiptDetailPo;
 import com.java110.po.owner.RepairPoolPo;
+import com.java110.po.owner.RepairUserPo;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.ServiceCodeConstant;
@@ -41,6 +45,7 @@
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 
+import java.text.ParseException;
 import java.util.Date;
 import java.util.List;
 
@@ -61,8 +66,6 @@
     private IFeeBMO feeBMOImpl;
 
     @Autowired
-    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
-    @Autowired
     private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
 
     @Autowired
@@ -77,15 +80,18 @@
     @Autowired
     private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
 
+
     @Autowired
-    private IFeeReceiptInnerServiceSMO feeReceiptInnerServiceSMOImpl;
+    private IPayFeeDetailDiscountBMO payFeeDetailDiscountBMOImpl;
 
     @Autowired
     private IFeeReceiptDetailInnerServiceSMO feeReceiptDetailInnerServiceSMOImpl;
 
     @Autowired
-    private IPayFeeDetailDiscountBMO payFeeDetailDiscountBMOImpl;
+    private IRepairUserInnerServiceSMO repairUserInnerServiceSMO;
 
+    @Autowired
+    private IRepairInnerServiceSMO repairInnerServiceSMO;
 
     @Override
     public String getServiceCode() {
@@ -98,7 +104,7 @@
     }
 
     @Override
-    public void soService(ServiceDataFlowEvent event) {
+    public void soService(ServiceDataFlowEvent event) throws ParseException {
 
         logger.debug("ServiceDataFlowEvent : {}", event);
 
@@ -133,7 +139,6 @@
                 }
             }
         }
-
         //涓哄仠杞﹁垂鍗曠嫭澶勭悊
         if (paramObj.containsKey("carPayerObjType") && FeeDto.PAYER_OBJ_TYPE_CAR.equals(paramObj.getString("carPayerObjType"))) {
             Date feeEndTime = (Date) paramObj.get("carFeeEndTime");
@@ -158,25 +163,91 @@
                 }
             }
         }
-
         //鍒ゆ柇鏄惁鏈夋淳鍗曞睘鎬D
         FeeAttrDto feeAttrDto = new FeeAttrDto();
         feeAttrDto.setCommunityId(paramObj.getString("communityId"));
         feeAttrDto.setFeeId(paramObj.getString("feeId"));
         feeAttrDto.setSpecCd(FeeAttrDto.SPEC_CD_REPAIR);
         List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
-
         //淇敼 娲惧崟鐘舵��
         if (feeAttrDtos != null && feeAttrDtos.size() > 0) {
             JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
             business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_REPAIR);
             business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 2);
             business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+            RepairDto repairDto = new RepairDto();
+            repairDto.setRepairId(feeAttrDtos.get(0).getValue());
+            //鏌ヨ鎶ヤ慨璁板綍
+            List<RepairDto> repairDtos = repairInnerServiceSMO.queryRepairs(repairDto);
+            Assert.listOnlyOne(repairDtos, "鎶ヤ慨淇℃伅閿欒锛�");
+            //鑾峰彇鎶ヤ慨娓犻亾
+            String repairChannel = repairDtos.get(0).getRepairChannel();
             RepairPoolPo repairPoolPo = new RepairPoolPo();
             repairPoolPo.setRepairId(feeAttrDtos.get(0).getValue());
             repairPoolPo.setCommunityId(paramObj.getString("communityId"));
-            repairPoolPo.setState(RepairDto.STATE_APPRAISE);
+            if (repairChannel.equals("Z")) { //濡傛灉鏄笟涓昏嚜涓绘姤淇紝鐘舵�佸氨鍙樻垚寰呰瘎浠�
+                repairPoolPo.setState(RepairDto.STATE_APPRAISE);
+            } else { //濡傛灉鏄憳宸ヤ唬瀹㈡姤淇垨鐢佃瘽鎶ヤ慨锛岀姸鎬佸氨鍙樻垚寰呭洖璁�
+                repairPoolPo.setState(RepairDto.STATE_RETURN_VISIT);
+            }
             business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(RepairPoolPo.class.getSimpleName(), BeanConvertUtil.beanCovertMap(repairPoolPo));
+            businesses.add(business);
+        }
+
+        //淇敼鎶ヤ慨娲惧崟鐘舵��
+        if (feeAttrDtos != null && feeAttrDtos.size() > 0) {
+            JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+            business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_REPAIR_USER);
+            business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 3);
+            business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+            RepairDto repairDto = new RepairDto();
+            repairDto.setRepairId(feeAttrDtos.get(0).getValue());
+            //鏌ヨ鎶ヤ慨璁板綍
+            List<RepairDto> repairDtos = repairInnerServiceSMO.queryRepairs(repairDto);
+            Assert.listOnlyOne(repairDtos, "鎶ヤ慨淇℃伅閿欒锛�");
+            //鑾峰彇鎶ヤ慨娓犻亾
+            String repairChannel = repairDtos.get(0).getRepairChannel();
+            RepairUserDto repairUserDto = new RepairUserDto();
+            repairUserDto.setRepairId(feeAttrDtos.get(0).getValue());
+            repairUserDto.setState(RepairUserDto.STATE_PAY_FEE);
+            //鏌ヨ寰呮敮浠樼姸鎬佺殑璁板綍
+            List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+            Assert.listOnlyOne(repairUserDtoList, "淇℃伅閿欒锛�");
+            RepairUserPo repairUserPo = new RepairUserPo();
+            repairUserPo.setRuId(repairUserDtoList.get(0).getRuId());
+            if (repairChannel.equals("Z")) {  //濡傛灉涓氫富鏄嚜涓绘姤淇紝鐘舵�佸氨鍙樻垚宸叉敮浠橈紝骞舵柊澧炰竴鏉″緟璇勪环鐘舵��
+                repairUserPo.setState(RepairUserDto.STATE_FINISH_PAY_FEE);
+                //濡傛灉鏄緟璇勪环鐘舵�侊紝灏辨洿鏂扮粨鏉熸椂闂�
+                repairUserPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+                repairUserPo.setContext("宸叉敮浠�" + paramObj.getString("feePrice") + "鍏�");
+                //鏂板寰呰瘎浠风姸鎬�
+                JSONObject object = JSONObject.parseObject("{\"datas\":{}}");
+                object.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_REPAIR_USER);
+                object.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 4);
+                object.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+                RepairUserPo repairUser = new RepairUserPo();
+                repairUser.setRuId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ruId));
+                repairUser.setStartTime(repairUserPo.getEndTime());
+                repairUser.setState(RepairUserDto.STATE_EVALUATE);
+                repairUser.setContext("寰呰瘎浠�");
+                repairUser.setCommunityId(paramObj.getString("communityId"));
+                repairUser.setCreateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+                repairUser.setRepairId(repairUserDtoList.get(0).getRepairId());
+                repairUser.setStaffId(repairUserDtoList.get(0).getStaffId());
+                repairUser.setStaffName(repairUserDtoList.get(0).getStaffName());
+                repairUser.setPreStaffId(repairUserDtoList.get(0).getStaffId());
+                repairUser.setPreStaffName(repairUserDtoList.get(0).getStaffName());
+                repairUser.setPreRuId(repairUserDtoList.get(0).getRuId());
+                repairUser.setRepairEvent("auditUser");
+                object.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(RepairUserPo.class.getSimpleName(), BeanConvertUtil.beanCovertMap(repairUser));
+                businesses.add(object);
+            } else {  //濡傛灉鏄憳宸ヤ唬瀹㈡姤淇垨鐢佃瘽鎶ヤ慨锛岀姸鎬佸氨鍙樻垚宸叉敮浠�
+                repairUserPo.setState(RepairUserDto.STATE_FINISH_PAY_FEE);
+                //濡傛灉鏄凡鏀粯鐘舵�侊紝灏辨洿鏂扮粨鏉熸椂闂�
+                repairUserPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+                repairUserPo.setContext("宸叉敮浠�" + paramObj.getString("feePrice") + "鍏�");
+            }
+            business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(RepairUserPo.class.getSimpleName(), BeanConvertUtil.beanCovertMap(repairUserPo));
             businesses.add(business);
         }
 
@@ -187,10 +258,16 @@
             return;
         }
 
-        //杩欓噷鍙槸鍐欏叆 鏀舵嵁琛紝鏆備笉鑰冭檻 浜嬪姟涓�鑷存�ч棶棰橈紝灏辩畻鍐欏叆澶辫触 涔熷彧鏄奖鍝� 鏀舵嵁鎵撳嵃锛屽鏋� 璐靛叕鍙稿 鏀舵嵁瑕佹眰 姣旇緝楂橈紝涓嶈兘鏈夊け璐ョ殑鎯呭喌 璇峰姞鍏ヤ簨鍔$鐞�
-        feeReceiptDetailInnerServiceSMOImpl.saveFeeReceiptDetail(feeReceiptDetailPo);
-        feeReceiptInnerServiceSMOImpl.saveFeeReceipt(feeReceiptPo);
+        //鏍规嵁鏄庣粏ID 鏌ヨ鏀舵嵁淇℃伅
+        FeeReceiptDetailDto feeReceiptDetailDto = new FeeReceiptDetailDto();
+        feeReceiptDetailDto.setDetailId(paramObj.getString("detailId"));
+        feeReceiptDetailDto.setCommunityId(paramObj.getString("communityId"));
+        List<FeeReceiptDetailDto> feeReceiptDetailDtos = feeReceiptDetailInnerServiceSMOImpl.queryFeeReceiptDetails(feeReceiptDetailDto);
 
+        if (feeReceiptDetailDtos != null || feeReceiptDetailDtos.size() > 0) {
+            dataFlowContext.setResponseEntity(ResultVo.createResponseEntity(feeReceiptDetailDtos.get(0)));
+            return;
+        }
         dataFlowContext.setResponseEntity(ResultVo.createResponseEntity(feeReceiptDetailPo));
     }
 

--
Gitblit v1.8.0