From f851a15d7bec9a7afee514f6896532b3b5e2433e Mon Sep 17 00:00:00 2001
From: chengf <2156125618@qq.com>
Date: 星期三, 13 八月 2025 18:49:01 +0800
Subject: [PATCH] 合同主体与费用初始化2025/08/13

---
 service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java |  128 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 113 insertions(+), 15 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java b/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java
index e76f44a..f49dab4 100644
--- a/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java
+++ b/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java
@@ -12,12 +12,15 @@
 import com.java110.dto.room.RoomDto;
 import com.java110.dto.system.ComponentValidateResult;
 import com.java110.intf.IImportPropertyWhiteListfFlowServiceSMO;
+import com.java110.intf.common.ICarInoutInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.*;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
+import com.java110.job.cmd.importCarInout.CarInout;
 import com.java110.job.importData.DefaultImportData;
 import com.java110.job.importData.IImportDataAdapt;
+import com.java110.po.car.CarInoutPo;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeeDetailPo;
 import com.java110.po.fee.PayFeePo;
@@ -34,6 +37,7 @@
 import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Random;
 
 /**
  * 鎴垮眿缂磋垂淇℃伅瀵煎叆 閫傞厤鍣�
@@ -71,6 +75,9 @@
     @Autowired
     private IRoomInnerServiceSMO iRoomInnerServiceSMOImpl;
 
+    @Autowired
+    private ICarInoutInnerServiceSMO carInoutInnerServiceSMOImpl;
+
     @Override
     public void importData(List<AssetImportLogDetailDto> assetImportLogDetailDtos) {
         importDatas(assetImportLogDetailDtos);
@@ -80,27 +87,118 @@
 
         List<ImportRoomFee> importRoomFees = new ArrayList<>();
         for (AssetImportLogDetailDto assetImportLogDetailDto : infos) {
+            String communityId = assetImportLogDetailDto.getCommunityId();
             JSONObject data = JSONObject.parseObject(assetImportLogDetailDto.getContent());
             ImportRoomFee importRoomFee = BeanConvertUtil.covertBean(data, ImportRoomFee.class);
             RoomDto roomDto = new RoomDto();
             roomDto.setDoorRoomNum(importRoomFee.getDoorRoomNum());
-            List<RoomDto> roomDtos = iRoomInnerServiceSMOImpl.queryRooms(roomDto);
-            try {
-                importRoomFee.setRoomId(roomDtos.get(0).getRoomId());
-            }catch (Exception e){
-                e.printStackTrace();
+            roomDto.setCommunityId(communityId);
+            if(importRoomFee.getSecondaryFeeTypeCd()!= null && importRoomFee.getSecondaryFeeTypeCd().equals("涓存椂鍋滆溅璐�-鍏朵粬")){
+                CarInoutPo carInout = new CarInoutPo();
+                carInout.setbId(JSONObject.parseObject(assetImportLogDetailDto.getContent().toString()).getString("invoiceReceiptNo"));
+                carInout.setCommunityId(communityId);
+                carInout.setCarNum("A888888");
+                carInout.setVehicleType("temp");
+                carInout.setDirection("entry");
+                carInout.setState("100300");
+                carInout.setInTime(JSONObject.parseObject(assetImportLogDetailDto.getContent().toString()).getString("chargeStart"));
+                carInout.setStatusCd("0");
+                carInout.setCreateTime(JSONObject.parseObject(assetImportLogDetailDto.getContent().toString()).getString("inputTime"));
+
+// 妫�鏌ラ噸澶嶄唬鐮�...
+
+                List<CarInoutPo> carInoutPos = new ArrayList<>();
+                carInout.setInoutId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_inoutId));
+                carInoutPos.add(carInout);
+
+// 濡傛灉鏈夌粨鏉熸椂闂达紝鍒涘缓鏂扮殑瀵硅薄浣滀负鍑哄彛璁板綍
+                if(JSONObject.parseObject(assetImportLogDetailDto.getContent().toString()).containsKey("chargeEnd")){
+                    // 鍒涘缓鏂扮殑瀵硅薄锛岃�屼笉鏄慨鏀瑰凡娣诲姞鐨勫璞�
+                    CarInoutPo exitCarInout = new CarInoutPo();
+                    // 澶嶅埗鍩烘湰灞炴��
+                    exitCarInout.setbId(carInout.getbId());
+                    exitCarInout.setCommunityId(carInout.getCommunityId());
+                    exitCarInout.setCarNum(carInout.getCarNum());
+                    exitCarInout.setVehicleType(carInout.getVehicleType());
+                    exitCarInout.setInTime(carInout.getInTime());
+                    exitCarInout.setStatusCd(carInout.getStatusCd());
+                    exitCarInout.setCreateTime(carInout.getCreateTime());
+
+                    // 璁剧疆鍑哄彛鐩稿叧灞炴��
+                    exitCarInout.setOutTime(JSONObject.parseObject(assetImportLogDetailDto.getContent().toString()).getString("chargeEnd"));
+                    exitCarInout.setDirection("exit");
+                    exitCarInout.setState("100400");
+                    exitCarInout.setInoutId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_inoutId));
+                    exitCarInout.setPaymentAmount(JSONObject.parseObject(assetImportLogDetailDto.getContent().toString()).getString("chargeAmount"));
+
+                    carInoutPos.add(exitCarInout);
+                }
+
+                try {
+                    carInoutInnerServiceSMOImpl.batchSaveCarInout2(carInoutPos);
+                }catch (Exception e){
+
+                    updateImportLogDetailState(importRoomFee.getDetailId(),e);
+                }
+                updateImportLogDetailState(importRoomFee.getDetailId());
             }
-            importRoomFee.setFeeName(data.getString("secondaryFeeTypeCd"));
-            importRoomFee.setDetailId(assetImportLogDetailDto.getDetailId());
-            importRoomFee.setStartTime(data.getString("chargeStart"));
-            importRoomFee.setEndTime(data.getString("chargeEnd").split(" ")[0]+" 23:59:59");
-            importRoomFee.setCreateTime(data.getString("inputTime"));
-            importRoomFee.setReceivableAmount(data.getString("bankDepositAmount"));
-            importRoomFee.setAmount(data.getString("chargeAmount"));
-            importRoomFee.setStaffName(data.getString("charger"));
-            importRoomFee.setOpenInv(data.containsKey("invoiceReceiptNo") && data.getString("invoiceReceiptNo") != null ? "Y" : "N");
+            else if(JSONObject.parseObject(assetImportLogDetailDto.getContent().toString()).getString("secondaryFeeTypeCd").contains("骞垮憡")){
+                List<RoomDto> roomDtos = iRoomInnerServiceSMOImpl.queryRooms(roomDto);
+                try {
+                    importRoomFee.setRoomId(roomDtos.get(0).getRoomId());
+                }catch (Exception e){
+                    throw new IllegalArgumentException("闂ㄥ鍙�"+importRoomFee.getDoorRoomNum()+"鏈煡璇㈠埌鎴垮眿");
+                }
+                importRoomFee.setFeeName(data.getString("secondaryFeeTypeCd"));
+                FeeDto feeDto = new FeeDto();
+                feeDto.setFeeName(importRoomFee.getFeeName());
+                List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+                if(feeDtos.size() == 0){
+                    updateImportLogDetailState(importRoomFee.getDetailId(),new IllegalArgumentException("璐圭敤椤�"+importRoomFee.getFeeName()+"涓嶅瓨鍦�"));
+
+                    throw new IllegalArgumentException("璐圭敤椤�"+importRoomFee.getFeeName()+"涓嶅瓨鍦�");
+                }
+
+                importRoomFee.setDetailId(assetImportLogDetailDto.getDetailId());
+                importRoomFee.setStartTime(data.getString("chargeStart"));
+                importRoomFee.setEndTime(data.getString("chargeEnd").split(" ")[0]+" 23:59:59");
+                importRoomFee.setCreateTime(data.getString("inputTime"));
+                importRoomFee.setReceivableAmount(data.getString("bankDepositAmount"));
+                importRoomFee.setAmount(data.getString("chargeAmount"));
+                importRoomFee.setStaffName(data.getString("charger"));
+                importRoomFee.setIsContractFee("O");
+                importRoomFee.setOpenInv(data.containsKey("invoiceReceiptNo") && data.getString("invoiceReceiptNo") != null ? "Y" : "N");
 //            if(importRoomFee.getPayerObjName())
-            importRoomFees.add(importRoomFee);
+                importRoomFees.add(importRoomFee);
+            }
+            else{
+                List<RoomDto> roomDtos = iRoomInnerServiceSMOImpl.queryRooms(roomDto);
+                try {
+                    importRoomFee.setRoomId(roomDtos.get(0).getRoomId());
+                }catch (Exception e){
+                    updateImportLogDetailState(importRoomFee.getDetailId(),new IllegalArgumentException("璐圭敤椤�"+importRoomFee.getFeeName()+"涓嶅瓨鍦�"));
+                    throw new IllegalArgumentException("闂ㄥ鍙�"+importRoomFee.getDoorRoomNum()+"鏈煡璇㈠埌鎴垮眿");
+                }
+                importRoomFee.setFeeName(data.getString("secondaryFeeTypeCd"));
+                FeeDto feeDto = new FeeDto();
+                feeDto.setFeeName(importRoomFee.getFeeName());
+                List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+                if(feeDtos.size() == 0){
+                    updateImportLogDetailState(importRoomFee.getDetailId(),new IllegalArgumentException("璐圭敤椤�"+importRoomFee.getFeeName()+"涓嶅瓨鍦�"));
+                    throw new IllegalArgumentException("璐圭敤椤�"+importRoomFee.getFeeName()+"涓嶅瓨鍦�");
+                }
+
+                importRoomFee.setDetailId(assetImportLogDetailDto.getDetailId());
+                importRoomFee.setStartTime(data.getString("chargeStart"));
+                importRoomFee.setEndTime(data.getString("chargeEnd").split(" ")[0]+" 23:59:59");
+                importRoomFee.setCreateTime(data.getString("inputTime"));
+                importRoomFee.setReceivableAmount(data.getString("bankDepositAmount"));
+                importRoomFee.setAmount(data.getString("chargeAmount"));
+                importRoomFee.setStaffName(data.getString("charger"));
+                importRoomFee.setOpenInv(data.containsKey("invoiceReceiptNo") && data.getString("invoiceReceiptNo") != null ? "Y" : "N");
+//            if(importRoomFee.getPayerObjName())
+                importRoomFees.add(importRoomFee);
+            }
         }
 
         if (ListUtil.isNull(importRoomFees)) {

--
Gitblit v1.8.0