From cdd60f8c16d96d19b7bdf0ff548afee9dd767f7f Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 24 九月 2020 16:10:08 +0800
Subject: [PATCH] 加入 托收
---
service-fee/src/main/java/com/java110/fee/bmo/feeManualCollection/impl/SaveFeeManualCollectionBMOImpl.java | 139 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 136 insertions(+), 3 deletions(-)
diff --git a/service-fee/src/main/java/com/java110/fee/bmo/feeManualCollection/impl/SaveFeeManualCollectionBMOImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/feeManualCollection/impl/SaveFeeManualCollectionBMOImpl.java
index 6fab9d8..79da201 100644
--- a/service-fee/src/main/java/com/java110/fee/bmo/feeManualCollection/impl/SaveFeeManualCollectionBMOImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/feeManualCollection/impl/SaveFeeManualCollectionBMOImpl.java
@@ -2,19 +2,51 @@
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.IComputeFeeSMO;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.feeManualCollection.FeeManualCollectionDto;
+import com.java110.dto.feeManualCollectionDetail.FeeManualCollectionDetailDto;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerDto;
import com.java110.fee.bmo.feeManualCollection.ISaveFeeManualCollectionBMO;
+import com.java110.intf.IFeeManualCollectionDetailInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
import com.java110.intf.fee.IFeeManualCollectionInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
import com.java110.po.feeManualCollection.FeeManualCollectionPo;
+import com.java110.po.feeManualCollectionDetail.FeeManualCollectionDetailPo;
+import com.java110.utils.util.Assert;
+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.ResponseEntity;
import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
@Service("saveFeeManualCollectionBMOImpl")
public class SaveFeeManualCollectionBMOImpl implements ISaveFeeManualCollectionBMO {
@Autowired
private IFeeManualCollectionInnerServiceSMO feeManualCollectionInnerServiceSMOImpl;
+
+ @Autowired
+ private IFeeManualCollectionDetailInnerServiceSMO feeManualCollectionDetailInnerServiceSMOImpl;
+
+ @Autowired
+ private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+ @Autowired
+ private IComputeFeeSMO computeFeeSMOImpl;
+
+ @Autowired
+ private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+ @Autowired
+ private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
/**
* 娣诲姞灏忓尯淇℃伅
@@ -25,14 +57,115 @@
@Java110Transactional
public ResponseEntity<String> save(FeeManualCollectionPo feeManualCollectionPo) {
+ FeeDto feeDto = new FeeDto();
+ feeDto.setPayerObjId(feeManualCollectionPo.getRoomId());
+ feeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+ feeDto.setCommunityId(feeManualCollectionPo.getCommunityId());
+ //鏌ヨ璐圭敤淇℃伅arrearsEndTime
+ feeDto.setArrearsEndTime(DateUtil.getCurrentDate());
+ feeDto.setState(FeeDto.STATE_DOING);
+ List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+
+ if (feeDtos == null || feeDtos.size() < 1) {
+ feeDtos = new ArrayList<>();
+ return ResultVo.createResponseEntity(feeDtos);
+ }
+ List<FeeDto> tmpFeeDtos = new ArrayList<>();
+ for (FeeDto tmpFeeDto : feeDtos) {
+ computeFeeSMOImpl.computeOweFee(tmpFeeDto);//璁$畻娆犺垂閲戦
+
+ //濡傛灉閲戦涓�0 灏辨帓闄�
+ if (tmpFeeDto.getFeePrice() > 0) {
+ tmpFeeDtos.add(tmpFeeDto);
+ }
+ }
+
+ //鏌ヨ鍋滆溅璐�
+ OwnerDto ownerDto = new OwnerDto();
+ ownerDto.setCommunityId(feeManualCollectionPo.getCommunityId());
+ ownerDto.setRoomId(feeManualCollectionPo.getRoomId());
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
+
+ Assert.listOnlyOne(ownerDtos, "涓氫富淇℃伅 瀛樺湪澶氭潯鎴栬�呬笉瀛樺湪");
+
+ OwnerCarDto ownerCarDto = new OwnerCarDto();
+ ownerCarDto.setCommunityId(feeManualCollectionPo.getCommunityId());
+ ownerCarDto.setOwnerId(ownerDtos.get(0).getOwnerId());
+ List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+ addOwnerCarFee(ownerCarDtos, tmpFeeDtos);
+
+ if (tmpFeeDtos.size() < 1) {
+ return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "褰撳墠鎴垮眿涓嶅瓨鍦ㄦ墭鏀惰垂鐢�");
+ }
+
+ feeManualCollectionPo.setOwnerId(ownerDtos.get(0).getOwnerId());
+ feeManualCollectionPo.setLink(ownerCarDtos.get(0).getLink());
+ feeManualCollectionPo.setOwnerName(ownerCarDtos.get(0).getOwnerName());
+ feeManualCollectionPo.setState(FeeManualCollectionDto.STATE_COLLECTION);
+
feeManualCollectionPo.setCollectionId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_receiptId));
int flag = feeManualCollectionInnerServiceSMOImpl.saveFeeManualCollection(feeManualCollectionPo);
- if (flag > 0) {
- return ResultVo.createResponseEntity(ResultVo.CODE_OK, "淇濆瓨鎴愬姛");
+ if (flag < 1) {
+ return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "淇濆瓨澶辫触");
}
- return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "淇濆瓨澶辫触");
+ for (FeeDto tmpFeeDto : tmpFeeDtos) {
+ saveFeeManualCollectionDetailInfo(tmpFeeDto, feeManualCollectionPo);
+ }
+
+ return ResultVo.createResponseEntity(ResultVo.CODE_OK, "淇濆瓨鎴愬姛");
+ }
+
+ private void saveFeeManualCollectionDetailInfo(FeeDto tmpFeeDto, FeeManualCollectionPo feeManualCollectionPo) {
+
+ FeeManualCollectionDetailPo feeManualCollectionDetailPo = new FeeManualCollectionDetailPo();
+ feeManualCollectionDetailPo.setAmount(tmpFeeDto.getFeePrice() + "");
+ feeManualCollectionDetailPo.setCollectionId(feeManualCollectionPo.getCollectionId());
+ feeManualCollectionDetailPo.setCommunityId(feeManualCollectionPo.getCommunityId());
+ feeManualCollectionDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+ feeManualCollectionDetailPo.setFeeId(tmpFeeDto.getFeeId());
+ feeManualCollectionDetailPo.setEndTime(DateUtil.getFormatTimeString(tmpFeeDto.getDeadlineTime(), DateUtil.DATE_FORMATE_STRING_A));
+ feeManualCollectionDetailPo.setFeeName(StringUtil.isEmpty(tmpFeeDto.getImportFeeName()) ? tmpFeeDto.getFeeName() : tmpFeeDto.getImportFeeName());
+ feeManualCollectionDetailPo.setStartTime(DateUtil.getFormatTimeString(tmpFeeDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
+ feeManualCollectionDetailPo.setState(FeeManualCollectionDetailDto.STATE_COLLECTION);
+ feeManualCollectionDetailInnerServiceSMOImpl.saveFeeManualCollectionDetail(feeManualCollectionDetailPo);
+ }
+
+ /**
+ * 娣诲姞杞︿綅璐�
+ *
+ * @param ownerCarDtos
+ * @param tmpFeeDtos
+ */
+ private void addOwnerCarFee(List<OwnerCarDto> ownerCarDtos, List<FeeDto> tmpFeeDtos) {
+
+ if (ownerCarDtos == null || ownerCarDtos.size() < 1) {
+ return;
+ }
+ for (OwnerCarDto ownerCarDto : ownerCarDtos) {
+ FeeDto feeDto = new FeeDto();
+ feeDto.setPayerObjId(ownerCarDto.getCarId());
+ feeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_PARKING_SPACE);
+ feeDto.setCommunityId(ownerCarDto.getCommunityId());
+ //鏌ヨ璐圭敤淇℃伅arrearsEndTime
+ feeDto.setArrearsEndTime(DateUtil.getCurrentDate());
+ feeDto.setState(FeeDto.STATE_DOING);
+ List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+
+ if (feeDtos == null || feeDtos.size() < 1) {
+ return;
+ }
+ for (FeeDto tmpFeeDto : feeDtos) {
+ computeFeeSMOImpl.computeOweFee(tmpFeeDto);//璁$畻娆犺垂閲戦
+
+ //濡傛灉閲戦涓�0 灏辨帓闄�
+ if (tmpFeeDto.getFeePrice() > 0) {
+ tmpFeeDtos.add(tmpFeeDto);
+ }
+ }
+
+ }
}
}
--
Gitblit v1.8.0