From 7c6e90dcb144f4c2dee4053ef6aa9531c23e5254 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期五, 03 九月 2021 03:43:29 +0800
Subject: [PATCH] 优化代码
---
service-front/src/main/java/com/java110/front/smo/assetImport/impl/ImportFeeDetailSMOImpl.java | 139 +++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 124 insertions(+), 15 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 efc31bd..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,10 @@
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;
import com.java110.front.smo.assetImport.IImportFeeDetailSMO;
@@ -48,25 +52,84 @@
@Autowired
private RestTemplate restTemplate;
+ @Autowired
+ private ISaveTransactionLogSMO saveTransactionLogSMOImpl;
+
@Override
public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception {
try {
ComponentValidateResult result = this.validateStoreStaffCommunityRelationship(pd, restTemplate);
+ JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+ Assert.hasKeyAndValue(paramIn, "communityId", "璇锋眰涓湭鍖呭惈灏忓尯");
+ Assert.hasKeyAndValue(paramIn, "objType", "璇锋眰涓湭鍖呭惈璐圭敤瀵硅薄");
//InputStream is = uploadFile.getInputStream();
Workbook workbook = ImportExcelUtils.createWorkbook(uploadFile); //宸ヤ綔绨�
List<ImportRoomFee> rooms = new ArrayList<ImportRoomFee>();
-
- //鑾峰彇妤间俊鎭�
- getRooms(workbook, rooms);
+ if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(paramIn.getString("objType"))) {
+ //鑾峰彇妤间俊鎭�
+ getRooms(workbook, rooms);
+ } else {
+ //鑾峰彇妤间俊鎭�
+ getCars(workbook, rooms);
+ }
// 淇濆瓨鏁版嵁
return dealExcelData(pd, rooms, result);
} catch (Exception e) {
logger.error("瀵煎叆澶辫触 ", e);
return new ResponseEntity<String>("闈炲父鎶辨瓑锛屾偍濉啓鐨勬ā鏉挎暟鎹湁璇細" + e.getMessage(), HttpStatus.BAD_REQUEST);
+ }
+ }
+
+ private void getCars(Workbook workbook, List<ImportRoomFee> rooms) {
+ Sheet sheet = null;
+ sheet = ImportExcelUtils.getSheet(workbook, "杞﹁締缂磋垂鍘嗗彶");
+ List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
+ ImportRoomFee importRoomFee = null;
+ for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
+ Object[] os = oList.get(osIndex);
+ if (osIndex == 0) { // 绗竴琛屾槸 澶撮儴淇℃伅 鐩存帴璺宠繃
+ continue;
+ }
+ if (StringUtil.isNullOrNone(os[0])) {
+ continue;
+ }
+
+ //璐圭敤鍚嶇О娌℃湁濉啓锛岄粯璁よ烦杩�
+ if (StringUtil.isNullOrNone(os[4])) {
+ continue;
+ }
+ Assert.hasValue(os[0], (osIndex + 1) + "琛岃溅鐗屽彿涓嶈兘涓虹┖");
+ Assert.hasValue(os[1], (osIndex + 1) + "琛屾敹璐归」鐩笉鑳戒负绌�");
+ Assert.hasValue(os[2], (osIndex + 1) + "琛岀即璐瑰懆鏈熶笉鑳戒负绌�");
+ Assert.hasValue(os[3], (osIndex + 1) + "琛屽紑濮嬫椂闂翠笉鑳戒负绌�");
+ Assert.hasValue(os[4], (osIndex + 1) + "琛岀粨鏉熸椂闂翠笉鑳戒负绌�");
+ Assert.hasValue(os[5], (osIndex + 1) + "琛岀即璐规椂闂翠笉鑳戒负绌�");
+ Assert.hasValue(os[6], (osIndex + 1) + "琛岀即璐归噾棰濅笉鑳戒负绌�");
+
+//
+
+ String startTime = excelDoubleToDate(os[3].toString());
+ String endTime = excelDoubleToDate(os[4].toString());
+ String createTime = excelDoubleToDate(os[5].toString());
+ Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "琛屽紑濮嬫椂闂存牸寮忛敊璇� 璇峰~鍐橸YYY-MM-DD 鏂囨湰鏍煎紡");
+ Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "琛岀粨鏉熸椂闂存牸寮忛敊璇� 璇峰~鍐橸YYY-MM-DD 鏂囨湰鏍煎紡");
+ Assert.isDate(createTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "琛岀粨鏉熸椂闂存牸寮忛敊璇� 璇峰~鍐橸YYY-MM-DD 鏂囨湰鏍煎紡");
+
+
+ importRoomFee = new ImportRoomFee();
+ importRoomFee.setCarNum(os[0].toString());
+ importRoomFee.setFeeName(os[1].toString());
+ importRoomFee.setCycle(os[2].toString());
+ importRoomFee.setStartTime(startTime);
+ importRoomFee.setEndTime(endTime);
+ importRoomFee.setCreateTime(createTime);
+ importRoomFee.setAmount(os[6].toString());
+ importRoomFee.setRemark(!StringUtil.isNullOrNone(os[7]) ? os[7].toString() : "");
+ rooms.add(importRoomFee);
}
}
@@ -101,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);
}
/**
@@ -127,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