From a73fc6f37200128f1ff8359023bb9c4235b5405f Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期五, 07 八月 2020 15:14:03 +0800
Subject: [PATCH] 费用导入功能开发完成
---
service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java | 150 +++++++++++++++++++++++++++++++++++++++----------
1 files changed, 118 insertions(+), 32 deletions(-)
diff --git a/service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java
index 574c543..4f7b295 100644
--- a/service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java
@@ -4,30 +4,22 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.RoomDto;
-import com.java110.dto.fee.*;
-import com.java110.dto.parking.ParkingSpaceDto;
-import com.java110.dto.repair.RepairDto;
+import com.java110.dto.fee.FeeAttrDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.fee.FeeDto;
import com.java110.entity.assetImport.ImportRoomFee;
import com.java110.fee.bmo.IImportRoomFee;
-import com.java110.fee.bmo.IPayOweFee;
import com.java110.fee.listener.fee.UpdateFeeInfoListener;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
-import com.java110.intf.community.IRepairInnerServiceSMO;
+import com.java110.intf.IImportFeeDetailInnerServiceSMO;
import com.java110.intf.community.IRoomInnerServiceSMO;
-import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
-import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
-import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.po.fee.PayFeeDetailPo;
+import com.java110.intf.fee.*;
+import com.java110.po.fee.FeeAttrPo;
+import com.java110.po.fee.PayFeeConfigPo;
import com.java110.po.fee.PayFeePo;
-import com.java110.po.owner.RepairPoolPo;
-import com.java110.utils.constant.FeeFlagTypeConstant;
-import com.java110.utils.constant.FeeStateConstant;
-import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.exception.ListenerExecuteException;
-import com.java110.utils.lock.DistributedLock;
+import com.java110.po.importFee.ImportFeePo;
+import com.java110.po.importFeeDetail.ImportFeeDetailPo;
import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.vo.ResultVo;
import org.slf4j.Logger;
@@ -36,10 +28,7 @@
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
-import java.math.BigDecimal;
-import java.text.ParseException;
-import java.util.Calendar;
-import java.util.Date;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -51,8 +40,12 @@
private static Logger logger = LoggerFactory.getLogger(UpdateFeeInfoListener.class);
+ private static final String IMPORT_FEE_NAME = "瀵煎叆璐圭敤";
+
+
@Autowired
private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
@Autowired
private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
@@ -64,18 +57,18 @@
private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
@Autowired
- private IRepairInnerServiceSMO repairInnerServiceSMOImpl;
+ private IImportFeeDetailInnerServiceSMO importFeeDetailInnerServiceSMOImpl;
@Autowired
private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
@Autowired
- private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+ private IImportFeeInnerServiceSMO importFeeInnerServiceSMOImpl;
/**
* 娆犺垂缂磋垂
*
- * @param reqJson 缂磋垂鎶ユ枃 {"communityId":"7020181217000001","fees":[{"feeId":"902020073149140091","feePrice":90},{"feeId":"902020072844020741","feePrice":1500}]}
+ * @param reqJson
* @return
*/
@Override
@@ -84,27 +77,120 @@
//灏忓尯ID
String communityId = reqJson.getString("communityId");
+ String importFeeId = reqJson.getString("importFeeId");
+ String feeTypeCd = reqJson.getString("feeTypeCd");//璐圭敤澶х被
+ String storeId = reqJson.getString("storeId");
+ String userId = reqJson.getString("userId");
+
+ FeeConfigDto feeConfigDto = new FeeConfigDto();
+ feeConfigDto.setFeeTypeCd(feeTypeCd);
+ feeConfigDto.setFeeName(IMPORT_FEE_NAME);
+ feeConfigDto.setCommunityId(communityId);
+ List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+ // 鏍规嵁璐圭敤澶х被 鍒ゆ柇鏄惁鏈夊瓨鍦� 璐圭敤瀵煎叆鏀跺叆椤�
+ if (feeConfigDtos == null || feeConfigDtos.size() < 1) {
+ //鐢熸垚瀵煎叆璐�
+ feeConfigDto.setConfigId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_configId));
+ saveFeeConfig(feeConfigDto);
+ } else {
+ feeConfigDto.setConfigId(feeConfigDtos.get(0).getConfigId());
+ }
JSONArray importRoomFees = reqJson.getJSONArray("importRoomFees");
List<ImportRoomFee> tmpImportRoomFees = importRoomFees.toJavaList(ImportRoomFee.class);
+ Assert.isNotNull(tmpImportRoomFees, "鍙傛暟閿欒锛屾湭鍖呭惈澶勭悊璐圭敤");
+
tmpImportRoomFees = roomInnerServiceSMOImpl.freshRoomIds(tmpImportRoomFees);
- JSONObject feeObj = null;
+ List<PayFeePo> payFeePos = new ArrayList<>();
+ List<FeeAttrPo> feeAttrPos = new ArrayList<>();
+ List<ImportFeeDetailPo> importFeeDetailPos = new ArrayList<>();
+ PayFeePo payFeePo = null;
+ ImportFeeDetailPo importFeeDetailPo = null;
+ for (ImportRoomFee importRoomFee : tmpImportRoomFees) {
+ payFeePo = new PayFeePo();
+ payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+ payFeePo.setEndTime(importRoomFee.getEndTime());
+ payFeePo.setState(FeeDto.STATE_DOING);
+ payFeePo.setCommunityId(communityId);
+ payFeePo.setConfigId(feeConfigDto.getConfigId());
+ payFeePo.setPayerObjId(importRoomFee.getRoomId());
+ payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+ payFeePo.setUserId(userId);
+ payFeePo.setIncomeObjId(storeId);
+ payFeePo.setFeeTypeCd(feeTypeCd);
+ payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
+ payFeePo.setAmount(importRoomFee.getAmount());
- for (int feeIndex = 0; feeIndex < importRoomFees.size(); feeIndex++) {
- feeObj = importRoomFees.getJSONObject(feeIndex);
- Assert.hasKeyAndValue(feeObj, "feeId", "鏈寘鍚垂鐢ㄩ」ID");
- Assert.hasKeyAndValue(feeObj, "feePrice", "鏈寘鍚即璐归噾棰�");
+ payFeePos.add(payFeePo);
- feeObj.put("communityId", communityId);
-
+ FeeAttrPo feeAttrPo = new FeeAttrPo();
+ feeAttrPo.setCommunityId(communityId);
+ feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_IMPORT_FEE_NAME);
+ feeAttrPo.setValue(importRoomFee.getFeeName());
+ feeAttrPos.add(feeAttrPo);
+ importFeeDetailPo = new ImportFeeDetailPo();
+ importFeeDetailPo.setAmount(importRoomFee.getAmount());
+ importFeeDetailPo.setCommunityId(communityId);
+ importFeeDetailPo.setEndTime(importRoomFee.getEndTime());
+ importFeeDetailPo.setFeeId(payFeePo.getFeeId());
+ importFeeDetailPo.setFeeName(importRoomFee.getFeeName());
+ importFeeDetailPo.setFloorNum(importRoomFee.getFloorNum());
+ importFeeDetailPo.setUnitNum(importRoomFee.getUnitNum());
+ importFeeDetailPo.setRoomNum(importRoomFee.getRoomNum());
+ importFeeDetailPo.setRoomId(importRoomFee.getRoomId());
+ importFeeDetailPo.setStartTime(importRoomFee.getStartTime());
+ importFeeDetailPo.setIfdId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+ importFeeDetailPo.setState("1000");
+ importFeeDetailPos.add(importFeeDetailPo);
}
+
+ feeInnerServiceSMOImpl.saveFee(payFeePos);
+
+ feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrPos);
+
+ //淇濆瓨鏃ュ織
+ ImportFeePo importFeePo = new ImportFeePo();
+ importFeePo.setCommunityId(communityId);
+ importFeePo.setFeeTypeCd(feeTypeCd);
+ importFeePo.setImportFeeId(importFeeId);
+ importFeeInnerServiceSMOImpl.saveImportFee(importFeePo);
+
+
+ importFeeDetailInnerServiceSMOImpl.saveImportFeeDetails(importFeeDetailPos);
+
+
return ResultVo.success();
}
+ /**
+ * 淇濆瓨淇濆瓨瀵煎叆璐圭敤閰嶇疆
+ *
+ * @param feeConfigDto
+ */
+ private void saveFeeConfig(FeeConfigDto feeConfigDto) {
+
+ PayFeeConfigPo payFeeConfigPo = BeanConvertUtil.covertBean(feeConfigDto, PayFeeConfigPo.class);
+ payFeeConfigPo.setAdditionalAmount("0");
+ payFeeConfigPo.setBillType(FeeConfigDto.BILL_TYPE_MONTH);
+ payFeeConfigPo.setComputingFormula("4004");
+ payFeeConfigPo.setEndTime(DateUtil.getLastTime());
+ payFeeConfigPo.setFeeFlag("2006012");
+ payFeeConfigPo.setIsDefault("T");
+ payFeeConfigPo.setPaymentCd("2100");
+ payFeeConfigPo.setFeeName(IMPORT_FEE_NAME);
+ payFeeConfigPo.setSquarePrice("0");
+ payFeeConfigPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ int saveFlag = feeConfigInnerServiceSMOImpl.saveFeeConfig(payFeeConfigPo);
+
+ if (saveFlag < 1) {
+ throw new IllegalArgumentException("鍒涘缓瀵煎叆璐圭敤澶辫触");
+ }
+ }
}
--
Gitblit v1.8.0