From 9b30285de6191e5fb2df447684ba2ed2c28d9db3 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 23 十一月 2023 11:49:04 +0800
Subject: [PATCH] 优化带啊

---
 service-fee/src/main/java/com/java110/fee/bmo/fee/impl/FeeBMOImpl.java |   46 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/bmo/fee/impl/FeeBMOImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/fee/impl/FeeBMOImpl.java
index 83a40f8..ea9f438 100644
--- a/service-fee/src/main/java/com/java110/fee/bmo/fee/impl/FeeBMOImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/fee/impl/FeeBMOImpl.java
@@ -5,7 +5,7 @@
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.smo.IComputeFeeSMO;
-import com.java110.dto.RoomDto;
+import com.java110.dto.room.RoomDto;
 import com.java110.dto.contract.ContractDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
@@ -18,18 +18,16 @@
 import com.java110.intf.common.ICarInoutInnerServiceSMO;
 import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
-import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.fee.IPayFeeDetailV1InnerServiceSMO;
-import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
+import com.java110.intf.fee.*;
 import com.java110.intf.user.IUserV1InnerServiceSMO;
 import com.java110.po.car.CarInoutPo;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeeConfigPo;
 import com.java110.po.fee.PayFeeDetailPo;
 import com.java110.po.fee.PayFeePo;
-import com.java110.po.feeReceipt.FeeReceiptPo;
-import com.java110.po.feeReceiptDetail.FeeReceiptDetailPo;
+import com.java110.po.fee.FeeReceiptPo;
+import com.java110.po.fee.FeeReceiptDetailPo;
+import com.java110.utils.cache.CommonCache;
 import com.java110.utils.constant.*;
 import com.java110.utils.exception.ListenerExecuteException;
 import com.java110.utils.util.Assert;
@@ -83,6 +81,9 @@
 
     @Autowired
     private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeReceiptInnerServiceSMO feeReceiptInnerServiceSMOImpl;
 
     /**
      * 娣诲姞灏忓尯淇℃伅
@@ -372,6 +373,9 @@
      */
     public JSONObject addFeePreDetail(JSONObject paramInJson) {
 
+        //todo 鐢熸垚鏀舵嵁缂栧彿
+        String receiptCode = feeReceiptInnerServiceSMOImpl.generatorReceiptCode(paramInJson.getString("communityId"));
+
         JSONObject businessFeeDetail = new JSONObject();
         businessFeeDetail.putAll(paramInJson);
         businessFeeDetail.put("detailId", paramInJson.getString("detailId"));
@@ -423,9 +427,11 @@
             payFeeDetail.setPayableAmount("0.0");
         }
         payFeeDetail.setPayOrderId(paramInJson.getString("oId"));
+        //todo 缂撳瓨鏀舵嵁缂栧彿
+        CommonCache.setValue(payFeeDetail.getDetailId() + CommonCache.RECEIPT_CODE, receiptCode, CommonCache.DEFAULT_EXPIRETIME_TWO_MIN);
         // todo 鍒峰叆鏀堕摱浜哄憳淇℃伅
         freshCashierInfo(payFeeDetail, paramInJson);
-
+        payFeeDetail.setOpenInvoice("N");
         int flag = payFeeDetailNewV1InnerServiceSMOImpl.savePayFeeDetailNew(payFeeDetail);
         if (flag < 1) {
             throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "淇濆瓨璐圭敤鏄庣粏澶辫触");
@@ -691,12 +697,22 @@
         if (paramInJson.containsKey("startTime")) {
             time = paramInJson.getString("startTime");
         }
+
+        //鏌ヨ璐圭敤椤�
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setConfigId(paramInJson.getString("configId"));
+        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+        Assert.listOnlyOne(feeConfigDtos, "鏌ヨ璐圭敤椤归敊璇紒");
+
         JSONObject businessUnit = new JSONObject();
         businessUnit.put("feeId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
         businessUnit.put("configId", paramInJson.getString("configId"));
         businessUnit.put("feeTypeCd", paramInJson.getString("feeTypeCd"));
         businessUnit.put("incomeObjId", paramInJson.getString("storeId"));
         businessUnit.put("amount", "-1.00");
+        if (paramInJson.containsKey("amount") && !StringUtil.isEmpty(paramInJson.getString("amount"))) {
+            businessUnit.put("amount", paramInJson.getString("amount"));
+        }
         businessUnit.put("startTime", time);
         businessUnit.put("endTime", time);
         businessUnit.put("communityId", paramInJson.getString("communityId"));
@@ -707,6 +723,12 @@
         businessUnit.put("batchId", paramInJson.getString("batchId"));
         businessUnit.put("userId", context.getReqHeaders().get(CommonConstant.HTTP_USER_ID));
         paramInJson.put("feeId", businessUnit.getString("feeId"));
+
+        if(FeeDto.FEE_FLAG_CYCLE.equals(feeConfigDtos.get(0).getFeeFlag())) {
+            businessUnit.put("maxTime",  feeConfigDtos.get(0).getEndTime());
+        }else {
+            businessUnit.put("maxTime",  paramInJson.getString("endTime"));
+        }
         return businessUnit;
     }
 
@@ -717,7 +739,7 @@
         feeAttrPo.setSpecCd(specCd);
         feeAttrPo.setValue(value);
         feeAttrPo.setFeeId(paramInJson.getString("feeId"));
-        feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+        feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId, true));
         return feeAttrPo;
 
     }
@@ -781,6 +803,12 @@
         businessUnit.put("batchId", paramInJson.getString("batchId"));
         businessUnit.put("userId", dataFlowContext.getReqHeaders().get(CommonConstant.HTTP_USER_ID));
 
+        if(FeeDto.FEE_FLAG_CYCLE.equals(feeConfigDtos.get(0).getFeeFlag())) {
+            businessUnit.put("maxTime",  feeConfigDtos.get(0).getEndTime());
+        }else {
+            businessUnit.put("maxTime",  paramInJson.getString("endTime"));
+        }
+
         paramInJson.put("feeId", businessUnit.getString("feeId"));
         return businessUnit;
     }

--
Gitblit v1.8.0