From 610a5138624181f60a786c885d9f305245e0ee40 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 05 八月 2021 12:31:07 +0800
Subject: [PATCH] 导入日志记录完成

---
 service-front/src/main/java/com/java110/front/smo/assetImport/impl/ImportFeeDetailSMOImpl.java |   78 ++++++++++++++++++++++++++++++++------
 1 files changed, 65 insertions(+), 13 deletions(-)

diff --git a/service-front/src/main/java/com/java110/front/smo/assetImport/impl/ImportFeeDetailSMOImpl.java b/service-front/src/main/java/com/java110/front/smo/assetImport/impl/ImportFeeDetailSMOImpl.java
index 7cf7e12..f90ac5d 100755
--- a/service-front/src/main/java/com/java110/front/smo/assetImport/impl/ImportFeeDetailSMOImpl.java
+++ b/service-front/src/main/java/com/java110/front/smo/assetImport/impl/ImportFeeDetailSMOImpl.java
@@ -5,6 +5,9 @@
 import com.java110.core.component.BaseComponentSMO;
 import com.java110.core.context.IPageData;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.ISaveTransactionLogSMO;
+import com.java110.dto.assetImportLog.AssetImportLogDto;
+import com.java110.dto.assetImportLogDetail.AssetImportLogDetailDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.entity.assetImport.ImportRoomFee;
 import com.java110.entity.component.ComponentValidateResult;
@@ -49,6 +52,9 @@
     @Autowired
     private RestTemplate restTemplate;
 
+    @Autowired
+    private ISaveTransactionLogSMO saveTransactionLogSMOImpl;
+
     @Override
     public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception {
 
@@ -66,7 +72,7 @@
             if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(paramIn.getString("objType"))) {
                 //鑾峰彇妤间俊鎭�
                 getRooms(workbook, rooms);
-            }else {
+            } else {
                 //鑾峰彇妤间俊鎭�
                 getCars(workbook, rooms);
             }
@@ -158,24 +164,45 @@
         data.put("storeId", result.getStoreId());
         data.put("userId", result.getUserId());
         data.put("communityId", result.getCommunityId());
+        AssetImportLogDto assetImportLogDto = new AssetImportLogDto();
+        assetImportLogDto.setSuccessCount(0L);
+        assetImportLogDto.setErrorCount(0L);
+        assetImportLogDto.setCommunityId(result.getCommunityId());
+        assetImportLogDto.setLogType(AssetImportLogDto.LOG_TYPE_HISTORY_FEE_IMPORT);
+        List<AssetImportLogDetailDto> assetImportLogDetailDtos = new ArrayList<>();
+        assetImportLogDto.setAssetImportLogDetailDtos(assetImportLogDetailDtos);
+        try {
+            List<ImportRoomFee> tmpImportRoomFees = new ArrayList<>();
+            for (int roomIndex = 0; roomIndex < roomFees.size(); roomIndex++) {
 
-        List<ImportRoomFee> tmpImportRoomFees = new ArrayList<>();
-        for (int roomIndex = 0; roomIndex < roomFees.size(); roomIndex++) {
+                tmpImportRoomFees.add(roomFees.get(roomIndex));
 
-            tmpImportRoomFees.add(roomFees.get(roomIndex));
+                if (roomIndex % DEFAULT_ADD_FEE_COUNT == 0 && roomIndex != 0) {
 
-            if (roomIndex % DEFAULT_ADD_FEE_COUNT == 0 && roomIndex != 0) {
+                    createRoomFee(pd, tmpImportRoomFees, data, assetImportLogDto);
 
-                createRoomFee(pd, tmpImportRoomFees, data);
-
-                tmpImportRoomFees = new ArrayList<>();
+                    tmpImportRoomFees = new ArrayList<>();
+                }
             }
-        }
-        if (tmpImportRoomFees != null && tmpImportRoomFees.size() > 0) {
 
-            createRoomFee(pd, tmpImportRoomFees, data);
+            if (tmpImportRoomFees != null && tmpImportRoomFees.size() > 0) {
+
+                createRoomFee(pd, tmpImportRoomFees, data, assetImportLogDto);
+            }
+        } finally {
+            //瀛樺叆瀵煎叆鏃ュ織
+            saveImportLog(assetImportLogDto);
         }
         return ResultVo.success();
+    }
+
+    /**
+     * 淇濆瓨鏃ュ織
+     *
+     * @param assetImportLogDto
+     */
+    private void saveImportLog(AssetImportLogDto assetImportLogDto) {
+        saveTransactionLogSMOImpl.saveAssetImportLog(assetImportLogDto);
     }
 
     /**
@@ -184,14 +211,39 @@
      * @param pd
      * @param tmpImportRoomFee
      */
-    private void createRoomFee(IPageData pd, List<ImportRoomFee> tmpImportRoomFee, JSONObject data) {
+    private void createRoomFee(IPageData pd, List<ImportRoomFee> tmpImportRoomFee, JSONObject data, AssetImportLogDto assetImportLogDto) {
+        Long successCount = assetImportLogDto.getSuccessCount();
+        Long failCount = assetImportLogDto.getErrorCount();
 
+        List<AssetImportLogDetailDto> assetImportLogDetailDtos = assetImportLogDto.getAssetImportLogDetailDtos();
+        AssetImportLogDetailDto assetImportLogDetailDto = null;
         JSONArray importRoomFees = JSONArray.parseArray(JSONObject.toJSONString(tmpImportRoomFee));
         data.put("importRoomFees", importRoomFees);
 
         String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/payFeeDetail/importPayFeeDetail";
 
-        this.callCenterService(restTemplate, pd, data.toJSONString(), apiUrl, HttpMethod.POST);
+        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, data.toJSONString(), apiUrl, HttpMethod.POST);
+
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            failCount += importRoomFees.size();
+            assetImportLogDetailDto = new AssetImportLogDetailDto();
+            assetImportLogDetailDto.setCommunityId(assetImportLogDto.getCommunityId());
+            if (Assert.isJsonObject(responseEntity.getBody())) {
+                JSONObject paramOut = JSONObject.parseObject(responseEntity.getBody());
+                assetImportLogDetailDto.setState(paramOut.getString("code"));
+                assetImportLogDetailDto.setMessage(paramOut.getString("msg"));
+            } else {
+                assetImportLogDetailDto.setState("F");
+                assetImportLogDetailDto.setMessage(responseEntity.getBody());
+            }
+            assetImportLogDetailDto.setObjName("鏃�");
+            assetImportLogDetailDtos.add(assetImportLogDetailDto);
+        } else {
+            successCount += importRoomFees.size();
+        }
+
+        assetImportLogDto.setSuccessCount(successCount);
+        assetImportLogDto.setErrorCount(failCount);
     }
 
 

--
Gitblit v1.8.0