From 64b14b0549344f13b191e2c26ed199f62655c43f Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期三, 25 二月 2026 10:12:46 +0800
Subject: [PATCH] 导入测试

---
 service-job/src/main/java/com/java110/job/importData/adapt/ImportOwnerCarQueueV2DataAdapt.java |  147 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 136 insertions(+), 11 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/importData/adapt/ImportOwnerCarQueueV2DataAdapt.java b/service-job/src/main/java/com/java110/job/importData/adapt/ImportOwnerCarQueueV2DataAdapt.java
index f454fde..5b2456e 100644
--- a/service-job/src/main/java/com/java110/job/importData/adapt/ImportOwnerCarQueueV2DataAdapt.java
+++ b/service-job/src/main/java/com/java110/job/importData/adapt/ImportOwnerCarQueueV2DataAdapt.java
@@ -6,6 +6,7 @@
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.community.CommunityDto;
 import com.java110.dto.dict.DictDto;
+import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.importData.*;
 import com.java110.dto.log.AssetImportLogDetailDto;
 import com.java110.dto.oweFeeCallable.OweFeeCallableDto;
@@ -21,7 +22,11 @@
 import com.java110.intf.community.IParkingSpaceV1InnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.dev.IDictV1InnerServiceSMO;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
+import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
 import com.java110.intf.fee.IOweFeeCallableV1InnerServiceSMO;
+import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
 import com.java110.intf.user.IOwnerV1InnerServiceSMO;
@@ -29,6 +34,8 @@
 import com.java110.job.importData.IImportDataAdapt;
 import com.java110.po.car.OwnerCarPo;
 import com.java110.po.dict.DictPo;
+import com.java110.po.fee.FeeAttrPo;
+import com.java110.po.fee.PayFeePo;
 import com.java110.po.oweFeeCallable.OweFeeCallablePo;
 import com.java110.po.owner.OwnerPo;
 import com.java110.po.parking.ParkingAreaPo;
@@ -36,6 +43,7 @@
 import com.java110.po.room.ApplyRoomDiscountPo;
 import com.java110.po.room.LitigationInfoPo;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.ListUtil;
 import com.java110.utils.util.StringUtil;
 import org.mybatis.spring.SqlSessionTemplate;
@@ -62,6 +70,13 @@
     @Autowired
     private IOwnerCarV1InnerServiceSMO ownerCarV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+    @Autowired
+    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMO;
+
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMO;
 
     @Autowired
     private IApplyRoomDiscountServiceDao applyRoomDiscountServiceDaoImpl;
@@ -94,6 +109,10 @@
 
     @Autowired
     IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
     @Override
     public void importData(List<AssetImportLogDetailDto> assetImportLogDetailDtos) {
         importDatas(assetImportLogDetailDtos);
@@ -105,11 +124,24 @@
         for (AssetImportLogDetailDto assetImportLogDetailDto : infos) {
 
             try {
-                doImportData(assetImportLogDetailDto);
+                OwnerCarDto ownerCarDto = null;
+                doImportData(assetImportLogDetailDto,ownerCarDto);
                 updateImportLogDetailState(assetImportLogDetailDto.getDetailId());
             } catch (Exception e) {
                 e.printStackTrace();
-                updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), e);
+
+                if (e.getMessage().contains("for column 'end_time' at row 1")){
+                    updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), "娉ㄩ攢鏃ユ湡鏍煎紡閿欒锛�");
+                }
+                else if (e.getMessage().contains("for column 'start_time' at row 1")){
+                    updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), "鍚敤鏃ユ湡鏍煎紡閿欒锛�");
+                }
+//                else if (e.getMessage().contains("### Error updating database")){
+//                    updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), "鏈煡閿欒锛岃鑱旂郴绠$悊鍛�");
+//                }
+                else {
+                    updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), e);
+                }
             }
         }
 
@@ -120,13 +152,13 @@
      *
      * @param assetImportLogDetailDto
      */
-    private void doImportData(AssetImportLogDetailDto assetImportLogDetailDto) {
+    private void doImportData(AssetImportLogDetailDto assetImportLogDetailDto,OwnerCarDto ownerCarDto) throws Exception {
 
         JSONObject data = JSONObject.parseObject(assetImportLogDetailDto.getContent());
         String[] o = JSON.parseObject(data.getString("otherItem"), String[].class);
         String otherItem = data.getString("otherItem");
         data.put("otherItem", null);
-        OwnerCarDto ownerCarDto = BeanConvertUtil.covertBean(data, OwnerCarDto.class);
+        ownerCarDto = BeanConvertUtil.covertBean(data, OwnerCarDto.class);
         if (ownerCarDto.getOwnerName() == null || "".equals(ownerCarDto.getOwnerName())) {
             RoomDto roomDto = new RoomDto();
             roomDto.setRoadName(ownerCarDto.getRoadName());
@@ -134,18 +166,23 @@
             roomDto.setCommunityId(ownerCarDto.getCommunityId());
             roomDto.setUnitNum(ownerCarDto.getUnitNum());
             roomDto.setRoomNum(ownerCarDto.getRoomNum());
+            if (Vtil.defaultValue(roomDto.getRoomNum()).equals("")){
+                roomDto.setPropertyType("鍟嗛摵");
+            }
             List<RoomDto> roomDtos = iroomInnerServiceSMOImpl.queryRooms(roomDto);
             if (roomDtos.isEmpty()) {
-                throw new IllegalArgumentException("鏈~鍐欎笟涓讳笖鎴垮眿涓嶅瓨鍦�");
+                ownerCarDto.setRemark("鎴垮眿锛�" + roomDto.getRoadName() + "-" + roomDto.getFloorNum() + "-" + roomDto.getUnitNum() + "-" + Vtil.defaultValue(ownerCarDto.getRoomName()) + "鏈煡璇㈠埌");
+//                throw new IllegalArgumentException("鏈~鍐欎笟涓讳笖鎴垮眿涓嶅瓨鍦�");
             } else if (roomDtos.size() > 1) {
-                throw new IllegalArgumentException("璇ユ埧灞嬪瓨鍦ㄥ涓笟涓�");
+                ownerCarDto.setRemark("鎴垮眿锛�" + roomDto.getRoadName() + "-" + roomDto.getFloorNum() + "-" + roomDto.getUnitNum() + "-" + Vtil.defaultValue(ownerCarDto.getRoomName()) + "鏌ヨ鍒板涓埧灞�");
             }
             else {
                 OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
                 ownerRoomRelDto.setRoomId(roomDtos.get(0).getRoomId());
                 List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
                 if (ownerRoomRelDtos.isEmpty()) {
-                    throw new IllegalArgumentException("鏈~鍐欎笟涓讳笖璇ユ埧灞嬫湭缁戝畾涓氫富");
+                    ownerCarDto.setRemark("鎴垮眿锛�" + roomDto.getRoadName() + "-" + roomDto.getFloorNum() + "-" + roomDto.getUnitNum() + "-" + Vtil.defaultValue(ownerCarDto.getRoomName()) + "鏈煡璇㈠埌涓氫富");
+//                    throw new IllegalArgumentException("鏈~鍐欎笟涓讳笖璇ユ埧灞嬫湭缁戝畾涓氫富");
                 } else {
                     OwnerDto ownerDto = new OwnerDto();
                     ownerDto.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId());
@@ -153,6 +190,7 @@
                     if (ownerDtos.isEmpty()) {
                         throw new IllegalArgumentException("鏈煡閿欒锛�00022");
                     } else {
+                        ownerCarDto.setOwnerId(ownerDtos.get(0).getOwnerId());
                         ownerCarDto.setOwnerName(ownerDtos.get(0).getName());
                     }
                 }
@@ -164,6 +202,9 @@
         Object[] os = ownerCarDto.getOtherItem();
         String communityId = ownerCarDto.getCommunityId();
         JSONArray objects = JSONObject.parseArray(otherItem);
+        OwnerCarDto carDto = new OwnerCarDto();
+        carDto.setCommunityId(ownerCarDto.getCommunityId());
+        carDto.setCarNum(ownerCarDto.getCarNum());
         communityDto.setCommunityCode(defaultValue(os[1]));
         communityDto.setName(defaultValue(os[2]));
         List<CommunityDto> communityDtos = communityV1InnerServiceSMOImpl.queryCommunitys(communityDto);
@@ -174,14 +215,21 @@
         ownerCarDto.setCommunityId(communityDtos.get(0).getCommunityId());
         communityDto.setCommunityId(communityDtos.get(0).getCommunityId());
 
-        //todo 瀵煎叆涓氫富淇℃伅
-        importOwnerData(ownerCarDto, os);
+//        //todo 瀵煎叆涓氫富淇℃伅
+//        importOwnerData(ownerCarDto, os);
 
         OwnerCarPo ownerCarPo = BeanConvertUtil.covertBean(ownerCarDto, OwnerCarPo.class);
+
+
+
+
         ownerCarPo.setStartTime(ownerCarDto.getLogStartTime());
         ownerCarPo.setEndTime(ownerCarDto.getLogEndTime());
+
+
+
         //鑾峰彇鎴垮眿鍚嶇О
-        String carTypeCd = defaultValue(os[13]);
+        String carTypeCd = defaultValue(os[12]);
         if (!carTypeCd.equals("")){
             DictDto dictDto = new DictDto();
             dictDto.setTableName("owner_car");
@@ -195,7 +243,6 @@
                 dictPo.setTableName("owner_car");
                 dictPo.setTableColumns("car_type_cd");
                 dictPo.setName(carTypeCd);
-                dictPo.setDescription(carTypeCd);
                 dictPo.setStatusCd(dictDtos1.get(dictDtos1.size() - 1).getStatusCd() + 100);
                 int i = dictV1InnerServiceSMOImpl.saveDict(dictPo);
                 if (i == 0) {
@@ -208,6 +255,28 @@
         else {
             ownerCarPo.setCarTypeCd("1001"); //榛樿涓昏溅杈�
         }
+
+
+        int i1 = ownerCarInnerServiceSMOImpl.queryOwnerCarsCount(carDto);
+        if (i1 > 0) {
+            carDto.setOwnerId(ownerCarDto.getOwnerId());
+            carDto.setParkingType(Vtil.defaultValue(os[13]));
+            carDto.setCarNum(null);
+            carDto.setCarNumLikeRight_(ownerCarDto.getCarNum());
+            carDto.setRoadName(defaultValue(os[3]));
+            carDto.setFloorNum(defaultValue(os[4]));
+            carDto.setUnitNum(defaultValue(os[5]));
+            carDto.setRoomNum(defaultValue(os[6]));
+            carDto.setCarTypeCd(ownerCarPo.getCarTypeCd());
+            carDto.setUnitPricePerMonth(defaultValue(os[18]));
+            int i2 = ownerCarInnerServiceSMOImpl.queryOwnerCarsCount(carDto);
+            if (i2 > 0) {
+                throw new IllegalArgumentException("閲嶅鐨勮溅杈�:" + ownerCarDto.getCarNum());
+            } else {
+                ownerCarDto.setCarNum(ownerCarDto.getCarNum() + "_" + i1);
+            }
+        }
+
 
         ParkingAreaDto parkingAreaDto = new ParkingAreaDto();
         parkingAreaDto.setNum(ownerCarDto.getAreaNum());
@@ -284,6 +353,9 @@
             roomDto.setFloorNum(defaultValue(os[4]));
             roomDto.setUnitNum(defaultValue(os[5]));
             roomDto.setRoomNum(defaultValue(os[6]));
+            if (roomDto.getRoomNum() == null || roomDto.getRoomNum().equals("")) {
+                roomDto.setPropertyType("鍟嗛摵");
+            }
             List<RoomDto> roomDtos = iroomInnerServiceSMOImpl.queryRooms(roomDto);
             if (ListUtil.isNull(roomDtos)) {
                 throw new IllegalArgumentException("鏈煡璇㈠埌鎴块棿");
@@ -494,6 +566,13 @@
 
 
         //瀵煎叆杞﹁締
+        saveFee(ownerCarPo, os, ownerCarDto, assetImportLogDetailDto);
+        ownerCarPo.setParkingType(Vtil.defaultValue(os[12]));
+
+        ownerCarPo.setRoadName(defaultValue(os[3]));
+        ownerCarPo.setFloorNum(defaultValue(os[4]));
+        ownerCarPo.setUnitNum(defaultValue(os[5]));
+        ownerCarPo.setRoomNum(defaultValue(os[6]));
         ownerCarV1InnerServiceSMOImpl.saveOwnerCar(ownerCarPo);
         ParkingSpacePo parkingSpacePo = new ParkingSpacePo();
         parkingSpacePo.setPsId(psId); //杞︿綅id
@@ -501,6 +580,52 @@
         parkingSpaceV1InnerServiceSMOImpl.updateParkingSpace(parkingSpacePo);
     }
 
+    public void saveFee(OwnerCarPo ownerCarPo, Object[] os, OwnerCarDto ownerCarDto, AssetImportLogDetailDto assetImportLogDetailDto) {
+        List<FeeConfigDto> feeDtos = null;
+        if (!ownerCarPo.getCommunityId().isEmpty()){
+            FeeConfigDto feeConfigDto = new FeeConfigDto();
+            feeConfigDto.setCommunityId(ownerCarPo.getCommunityId());
+            feeConfigDto.setSquarePrice(Vtil.processCount(ownerCarPo.getUnitPricePerMonth(), 2, null));
+            switch (Vtil.defaultValue(os[12])) {
+                case "鍦伴潰鍋滆溅": feeConfigDto.setFeeTypeCd("630000003");break;
+                case "鍦颁笅鍋滆溅": feeConfigDto.setFeeTypeCd("630000004");break;
+                default: feeConfigDto.setFeeTypeCds(new String[]{"630000003","630000004"});
+            }
+            if (feeConfigDto.getSquarePrice() == null) {
+                throw new IllegalArgumentException("鏈煡璇㈠埌鏀惰垂椤�");
+            }
+            feeDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+            if (feeDtos.isEmpty()) {
+                throw new IllegalArgumentException("鍗曚环`"+ownerCarPo.getUnitPricePerMonth()+"`鏈煡璇㈠埌鏀惰垂椤�");
+            }
+        }
+        FeeConfigDto feeDto = feeDtos.get(0);
+        PayFeePo payFeePo = new PayFeePo();
+        payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+        payFeePo.setbId("-1");
+        payFeePo.setFeeTypeCd(feeDto.getFeeTypeCd());
+        payFeePo.setSecondaryFeeTypeCd(feeDto.getSecondaryFeeTypeCd());
+        payFeePo.setCommunityId(ownerCarDto.getCommunityId());
+        payFeePo.setPayerObjId(ownerCarPo.getCarId());
+        payFeePo.setIncomeObjId("102025062610470035");
+        payFeePo.setStartTime(Vtil.processDateEnhanced(ownerCarDto.getStartTime(), null, "yyyy-MM-dd HH:mm:ss", "start", feeDto.getStartTime()));
+        payFeePo.setEndTime(payFeePo.getStartTime());
+        payFeePo.setUserId(ownerCarPo.getUserId());
+        payFeePo.setStatusCd("0");
+        payFeePo.setFeeFlag(feeDto.getFeeFlag());
+        payFeePo.setConfigId(feeDto.getConfigId());
+        payFeePo.setState("2008001");
+        payFeePo.setPayerObjType("6666");
+        payFeePo.setBatchId(assetImportLogDetailDto.getLogId());
+        payFeeV1InnerServiceSMO.savePayFee(payFeePo);
+        List<FeeAttrPo> feeAttrPos = new ArrayList<>();
+        feeAttrPos.add(
+                new FeeAttrPo(payFeePo.getFeeId(), payFeePo.getCommunityId(), GenerateCodeFactory.getGeneratorId("11"), "390010" ,
+                        Vtil.processDateEnhanced(ownerCarDto.getEndTime(), null, "yyyy-MM-dd HH:mm:ss", "end", feeDto.getEndTime())));
+        feeAttrPos.add(new FeeAttrPo(payFeePo.getFeeId(), payFeePo.getCommunityId(), GenerateCodeFactory.getGeneratorId("11"), "390012" , "(" + ownerCarPo.getCarNum() + ")"));
+        feeAttrInnerServiceSMO.saveFeeAttrs(feeAttrPos);
+    }
+
     private String defaultValueToDate(Object o) {
         return o == null ? null : o.toString();
     }

--
Gitblit v1.8.0