From e76458b9568be1b8b9c360b2d9207f5f2c1a3bcf Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 24 五月 2021 10:46:27 +0800
Subject: [PATCH] 优化代码
---
service-report/src/main/java/com/java110/report/bmo/reportOweFee/impl/GetReportOweFeeBMOImpl.java | 88 ++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 84 insertions(+), 4 deletions(-)
diff --git a/service-report/src/main/java/com/java110/report/bmo/reportOweFee/impl/GetReportOweFeeBMOImpl.java b/service-report/src/main/java/com/java110/report/bmo/reportOweFee/impl/GetReportOweFeeBMOImpl.java
index 95bf2ce..857edf1 100644
--- a/service-report/src/main/java/com/java110/report/bmo/reportOweFee/impl/GetReportOweFeeBMOImpl.java
+++ b/service-report/src/main/java/com/java110/report/bmo/reportOweFee/impl/GetReportOweFeeBMOImpl.java
@@ -5,6 +5,7 @@
import com.java110.intf.report.IReportOweFeeInnerServiceSMO;
import com.java110.report.bmo.reportOweFee.IGetReportOweFeeBMO;
import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@@ -46,6 +47,79 @@
ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
return responseEntity;
+ }
+
+ /**
+ * query all owe fee
+ *
+ * @param reportOweFeeDto
+ * @return
+ */
+ @Override
+ public ResponseEntity<String> getAllFees(ReportOweFeeDto reportOweFeeDto) {
+ //
+ List<ReportOweFeeDto> allReportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFees(reportOweFeeDto);
+ if (allReportOweFeeDtos == null || allReportOweFeeDtos.size() < 1) {
+ return ResultVo.createResponseEntity(allReportOweFeeDtos);
+ }
+
+ //get old report owe fee
+ List<ReportOweFeeDto> oldReportOweFeeDtos = new ArrayList<>();
+ ReportOweFeeDto oldReportOweFeeDto = null;
+ for (ReportOweFeeDto tmpReportOweFeeDto : allReportOweFeeDtos) {
+ if (existsOweFee(oldReportOweFeeDtos, tmpReportOweFeeDto.getPayerObjId())) {
+ continue;
+ }
+ oldReportOweFeeDto = new ReportOweFeeDto();
+ oldReportOweFeeDto.setPayerObjId(tmpReportOweFeeDto.getPayerObjId());
+
+ oldReportOweFeeDtos.add(oldReportOweFeeDto);
+ }
+
+ for (ReportOweFeeDto tmpReportOweFeeDto : oldReportOweFeeDtos) {
+ dealItem(tmpReportOweFeeDto, allReportOweFeeDtos);
+ }
+
+ if (reportOweFeeDto.getConfigIds() == null || reportOweFeeDto.getConfigIds().length < 1) {
+ return ResultVo.createResponseEntity(oldReportOweFeeDtos);
+ }
+
+ //濡傛灉璐圭敤瀵硅薄涓婃病鏈夎繖涓垂鐢ㄩ」鏃堕粯璁ゅ啓闆�
+ for (ReportOweFeeDto tmpReportOweFeeDto : oldReportOweFeeDtos) {
+ for (String configId : reportOweFeeDto.getConfigIds()) {
+ if (hasItem(tmpReportOweFeeDto.getItems(), configId) != null) {
+ continue;
+ }
+ ReportOweFeeItemDto reportOweFeeItemDto = new ReportOweFeeItemDto();
+ reportOweFeeItemDto.setConfigId(configId);
+ reportOweFeeItemDto.setFeeName("");
+ reportOweFeeItemDto.setAmountOwed("0");
+ reportOweFeeItemDto.setPayerObjId("");
+ reportOweFeeItemDto.setPayerObjName("");
+ tmpReportOweFeeDto.getItems().add(reportOweFeeItemDto);
+ }
+ }
+ return ResultVo.createResponseEntity(oldReportOweFeeDtos);
+ }
+
+ /**
+ * exists owe fee in oldReportOweFeeDtos
+ * true is exists false is not
+ *
+ * @param oldReportOweFeeDtos
+ * @param payerObjId
+ * @return
+ */
+ private boolean existsOweFee(List<ReportOweFeeDto> oldReportOweFeeDtos, String payerObjId) {
+ for (ReportOweFeeDto tmpReportOweFeeDto : oldReportOweFeeDtos) {
+ // if equal return true
+ if (tmpReportOweFeeDto.getPayerObjId().equals(payerObjId)) {
+ return true;
+ }
+
+ }
+ //default return false
+ return false;
}
private void refreshReportOwe(List<ReportOweFeeDto> oldReportOweFeeDtos, String[] configIds) {
@@ -107,6 +181,7 @@
reportOweFeeItemDto.setAmountOwed(reportOweFeeDto.getAmountOwed());
reportOweFeeItemDto.setPayerObjId(reportOweFeeDto.getPayerObjId());
reportOweFeeItemDto.setPayerObjName(reportOweFeeDto.getPayerObjName());
+ reportOweFeeItemDto.setConfigName(reportOweFeeDto.getConfigName());
try {
reportOweFeeItemDto.setStartTime(DateUtil.getDateFromString(reportOweFeeDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
reportOweFeeItemDto.setEndTime(DateUtil.getDateFromString(reportOweFeeDto.getDeadlineTime(), DateUtil.DATE_FORMATE_STRING_A));
@@ -116,10 +191,14 @@
items.add(reportOweFeeItemDto);
} else {
BigDecimal oldAmount = new BigDecimal(Double.parseDouble(reportOweFeeItemDto.getAmountOwed()));
- oldAmount = oldAmount.add(new BigDecimal(Double.parseDouble(reportOweFeeDto.getAmountOwed())));
+ oldAmount = oldAmount.add(new BigDecimal(Double.parseDouble(reportOweFeeDto.getAmountOwed()))).setScale(2, BigDecimal.ROUND_HALF_EVEN);
reportOweFeeItemDto.setAmountOwed(oldAmount.doubleValue() + "");
}
- oldReportOweFeeDto.setOwnerName(reportOweFeeDto.getOwnerName());
+ if(!StringUtil.isEmpty(reportOweFeeDto.getOwnerName())) {
+ oldReportOweFeeDto.setOwnerName(reportOweFeeDto.getOwnerName());
+ }
+ oldReportOweFeeDto.setUpdateTime(reportOweFeeDto.getUpdateTime());
+ oldReportOweFeeDto.setConfigName(reportOweFeeDto.getConfigName());
}
//璁$畻鎬婚噾棰�
@@ -137,15 +216,16 @@
endTime = tempReportOweFeeItemDto.getEndTime();
}
if (endTime.getTime() < tempReportOweFeeItemDto.getEndTime().getTime()) {
- endTime = tempReportOweFeeItemDto.getStartTime();
+ endTime = tempReportOweFeeItemDto.getEndTime();
}
- totalAmount = totalAmount.add(new BigDecimal(Double.parseDouble(tempReportOweFeeItemDto.getAmountOwed())));
+ totalAmount = totalAmount.add(new BigDecimal(Double.parseDouble(tempReportOweFeeItemDto.getAmountOwed()))).setScale(2, BigDecimal.ROUND_HALF_EVEN);
}
oldReportOweFeeDto.setEndTime(DateUtil.getFormatTimeString(startTime, DateUtil.DATE_FORMATE_STRING_A));
oldReportOweFeeDto.setDeadlineTime(DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_A));
oldReportOweFeeDto.setItems(items);
oldReportOweFeeDto.setPayerObjName(items.get(0).getPayerObjName());
oldReportOweFeeDto.setAmountOwed(totalAmount.doubleValue() + "");
+
}
private ReportOweFeeItemDto hasItem(List<ReportOweFeeItemDto> reportOweFeeItemDtos, String configId) {
--
Gitblit v1.8.0