From c083b87a2635d9b48dd95cb441d7a7c5c9258abe Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 21 四月 2021 18:03:15 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity
---
service-store/src/main/java/com/java110/store/bmo/contract/impl/SaveContractBMOImpl.java | 83 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 82 insertions(+), 1 deletions(-)
diff --git a/service-store/src/main/java/com/java110/store/bmo/contract/impl/SaveContractBMOImpl.java b/service-store/src/main/java/com/java110/store/bmo/contract/impl/SaveContractBMOImpl.java
index 95a001c..6615ab0 100644
--- a/service-store/src/main/java/com/java110/store/bmo/contract/impl/SaveContractBMOImpl.java
+++ b/service-store/src/main/java/com/java110/store/bmo/contract/impl/SaveContractBMOImpl.java
@@ -4,14 +4,25 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.contract.ContractDto;
import com.java110.dto.contractType.ContractTypeDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.rentingPool.RentingPoolDto;
+import com.java110.dto.store.StoreDto;
+import com.java110.intf.common.IContractApplyUserInnerServiceSMO;
import com.java110.intf.store.IContractAttrInnerServiceSMO;
+import com.java110.intf.store.IContractFileInnerServiceSMO;
import com.java110.intf.store.IContractInnerServiceSMO;
import com.java110.intf.store.IContractTypeInnerServiceSMO;
+import com.java110.intf.user.IRentingPoolInnerServiceSMO;
import com.java110.po.contract.ContractPo;
import com.java110.po.contractAttr.ContractAttrPo;
+import com.java110.po.contractFile.ContractFilePo;
+import com.java110.po.rentingPool.RentingPoolPo;
import com.java110.store.bmo.contract.ISaveContractBMO;
import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
@@ -30,6 +41,15 @@
@Autowired
private IContractTypeInnerServiceSMO contractTypeInnerServiceSMOImpl;
+
+ @Autowired
+ private IRentingPoolInnerServiceSMO rentingPoolInnerServiceSMOImpl; // 鎴垮眿绉熻祦
+
+ @Autowired
+ private IContractApplyUserInnerServiceSMO contractApplyUserInnerServiceSMOImpl;
+
+ @Autowired
+ private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl;
/**
* 娣诲姞灏忓尯淇℃伅
@@ -55,14 +75,41 @@
} else {
contractPo.setState("11");
}
+ //鏍¢獙鍚堝悓缂栧彿鏄惁閲嶅
+ ContractDto contractDto = new ContractDto();
+ contractDto.setStoreId(contractPo.getStoreId());
+ contractDto.setContractCode(contractPo.getContractCode());
+ List<ContractDto> contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
+
+ if (contractDtos != null && contractDtos.size() > 0) {
+ throw new IllegalArgumentException("鍚堝悓" + "[" + contractPo.getContractCode() + "]宸插瓨鍦�");
+ }
contractPo.setContractId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractId));
+ //闄勪欢淇濆瓨
+ List<ContractFilePo> filePos = contractPo.getContractFilePo();
int flag = contractInnerServiceSMOImpl.saveContract(contractPo);
+ for (ContractFilePo file: filePos) {
+ if (file.getFileRealName().length() > 0 && file.getFileSaveName().length() > 0){
+ file.setContractId(contractPo.getContractId());
+ contractFileInnerServiceSMOImpl.saveContractFile(file);
+ }
+ }
+ contractPo.setContractId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractId));
if (flag < 0) {
return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "淇濆瓨澶辫触");
-
}
+
+ //鎻愪氦娴佺▼
+ ContractDto tmpContractDto = BeanConvertUtil.covertBean(contractPo, ContractDto.class);
+ tmpContractDto.setCurrentUserId(reqJson.getString("userId"));
+ contractApplyUserInnerServiceSMOImpl.startProcess(tmpContractDto);
+
+ if (StoreDto.STORE_ADMIN.equals(contractPo.getStoreId())) {
+ noticeRentUpdateState(contractPo, audit);
+ }
+
if (!reqJson.containsKey("contractTypeSpecs")) {
return ResultVo.createResponseEntity(ResultVo.CODE_OK, "淇濆瓨鎴愬姛");
@@ -84,6 +131,40 @@
}
/**
+ * 淇敼 鎴垮眿绉熻祦鐘舵��
+ *
+ * @param contractPo
+ */
+ private void noticeRentUpdateState(ContractPo contractPo, String audit) {
+
+ if (!contractPo.getObjType().equals(FeeDto.PAYER_OBJ_TYPE_ROOM)
+ || StringUtil.isEmpty(contractPo.getObjId())
+ || contractPo.getObjId().startsWith("-")) {
+ return;
+ }
+ RentingPoolDto rentingPoolDto = new RentingPoolDto();
+ rentingPoolDto.setRoomId(contractPo.getObjId());
+ rentingPoolDto.setState(RentingPoolDto.STATE_APPLY_AGREE);
+ List<RentingPoolDto> rentingPoolDtos = rentingPoolInnerServiceSMOImpl.queryRentingPools(rentingPoolDto);
+
+ if (rentingPoolDtos == null || rentingPoolDtos.size() < 1) {
+ return;
+ }
+
+
+ RentingPoolPo rentingPoolPo = new RentingPoolPo();
+ rentingPoolPo.setCommunityId(rentingPoolDtos.get(0).getCommunityId());
+ rentingPoolPo.setRentingId(rentingPoolDtos.get(0).getRentingId());
+
+ if (ContractTypeDto.NO_AUDIT.equals(audit)) {
+ rentingPoolPo.setState(RentingPoolDto.STATE_FINISH);
+ } else {
+ rentingPoolPo.setState(RentingPoolDto.STATE_ADMIN_AUDIT);
+ }
+ rentingPoolInnerServiceSMOImpl.updateRentingPool(rentingPoolPo);
+ }
+
+ /**
* 淇濆瓨鍚堝悓灞炴��
*
* @param jsonObject
--
Gitblit v1.8.0