From 3b0ddfa0b1c3490fbbf421a84e0431a60fb58387 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 01 四月 2021 12:25:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/xinghong-dev'
---
service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairFinishListener.java | 227 +++++++++++++++++++++++++++++++++++---------------------
1 files changed, 141 insertions(+), 86 deletions(-)
diff --git a/service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairFinishListener.java b/service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairFinishListener.java
index 9dcaad8..1921c78 100644
--- a/service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairFinishListener.java
+++ b/service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairFinishListener.java
@@ -13,16 +13,20 @@
import com.java110.dto.fee.FeeDto;
import com.java110.dto.file.FileDto;
import com.java110.dto.file.FileRelDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
import com.java110.dto.repair.RepairDto;
import com.java110.dto.repair.RepairUserDto;
import com.java110.intf.common.IFileInnerServiceSMO;
-import com.java110.intf.common.IFileRelInnerServiceSMO;
import com.java110.intf.community.IRepairInnerServiceSMO;
import com.java110.intf.community.IRepairUserInnerServiceSMO;
import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
import com.java110.po.fee.FeeAttrPo;
import com.java110.po.fee.PayFeePo;
import com.java110.po.file.FileRelPo;
+import com.java110.po.owner.RepairPoolPo;
import com.java110.po.owner.RepairUserPo;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.FeeTypeConstant;
@@ -30,6 +34,7 @@
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -46,7 +51,6 @@
*/
@Java110Listener("repairCloseListener")
public class RepairFinishListener extends AbstractServiceApiPlusListener {
-
private static Logger logger = LoggerFactory.getLogger(RepairFinishListener.class);
@@ -66,26 +70,42 @@
private IFileInnerServiceSMO fileInnerServiceSMOImpl;
@Autowired
- private IFileRelInnerServiceSMO fileRelInnerServiceSMO;
+ private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMO;
+
+ @Autowired
+ private IOwnerInnerServiceSMO ownerInnerServiceSMO;
@Override
protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
- //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
-
Assert.hasKeyAndValue(reqJson, "repairId", "鏈寘鍚姤淇崟淇℃伅");
Assert.hasKeyAndValue(reqJson, "context", "鏈寘鍚淳鍗曞唴瀹�");
Assert.hasKeyAndValue(reqJson, "communityId", "鏈寘鍚皬鍖轰俊鎭�");
Assert.hasKeyAndValue(reqJson, "amount", "鏈寘鍚噾棰�");
Assert.hasKeyAndValue(reqJson, "feeFlag", "鏈寘鍚垂鐢ㄦ爣璇�");
-
-
}
@Override
protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
String userId = reqJson.getString("userId");
String userName = reqJson.getString("userName");
-
+ String publicArea = reqJson.getString("publicArea");
+ //鑾峰彇鎶ヤ慨娓犻亾
+ String repairChannel = reqJson.getString("repairChannel");
+ //鑾峰彇缁翠慨绫诲瀷
+ String maintenanceType = reqJson.getString("maintenanceType");
+ if (!reqJson.getString("outLowPrice").equals(reqJson.getString("outHighPrice"))
+ && maintenanceType.equals("1001")) {
+ //鑾峰彇浠锋牸
+ Double price = Double.parseDouble(reqJson.getString("price"));
+ //鑾峰彇鏈�浣庝环
+ Double outLowPrice = Double.parseDouble(reqJson.getString("outLowPrice"));
+ //鑾峰彇鏈�楂樹环
+ Double outHighPrice = Double.parseDouble(reqJson.getString("outHighPrice"));
+ //鐗╁搧浠锋牸搴旇鍦ㄦ渶浣庝环鍜屾渶楂樹环涔嬮棿
+ if (price < outLowPrice || price > outHighPrice) {
+ throw new IllegalArgumentException("杈撳叆鐨勪环鏍间笉姝g‘锛岃閲嶆柊杈撳叆锛�");
+ }
+ }
RepairUserDto repairUserDto = new RepairUserDto();
repairUserDto.setRepairId(reqJson.getString("repairId"));
repairUserDto.setCommunityId(reqJson.getString("communityId"));
@@ -101,28 +121,58 @@
repairUserPo.setContext(reqJson.getString("context"));
repairUserPo.setCommunityId(reqJson.getString("communityId"));
super.update(context, repairUserPo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_REPAIR_USER);
- //2.0 缁欏紑濮嬭妭鐐规淳鏀粯鍗�
- repairUserDto = new RepairUserDto();
- repairUserDto.setRepairId(reqJson.getString("repairId"));
- repairUserDto.setCommunityId(reqJson.getString("communityId"));
- repairUserDto.setRepairEvent(RepairUserDto.REPAIR_EVENT_START_USER);
- repairUserDtos = repairUserInnerServiceSMOImpl.queryRepairUsers(repairUserDto);
- Assert.listOnlyOne(repairUserDtos, "鏁版嵁閿欒 璇ヨ鍗曟病鏈夊彂璧蜂汉");
- repairUserPo = new RepairUserPo();
- repairUserPo.setRuId("-1");
- repairUserPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
- repairUserPo.setState(RepairUserDto.STATE_DOING);
- repairUserPo.setRepairId(reqJson.getString("repairId"));
- repairUserPo.setStaffId(repairUserDtos.get(0).getStaffId());
- repairUserPo.setStaffName(repairUserDtos.get(0).getStaffName());
- repairUserPo.setPreStaffId(userId);
- repairUserPo.setPreStaffName(userName);
- repairUserPo.setPreRuId(repairUserDtos.get(0).getRuId());
- repairUserPo.setRepairEvent(RepairUserDto.REPAIR_EVENT_PAY_USER);
- repairUserPo.setContext("");
- repairUserPo.setCommunityId(reqJson.getString("communityId"));
- super.insert(context, repairUserPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_REPAIR_USER);
-
+ if (repairChannel.equals("Z") || (!StringUtil.isEmpty(maintenanceType) && maintenanceType.equals("1001"))) { //濡傛灉鏄笟涓绘姤淇垨鑰呮槸鏈夊伩鐨勫氨鐢熸垚涓�鏉℃柊鐘舵�侊紝鍚﹀垯涓嶅彉
+ //2.0 缁欏紑濮嬭妭鐐规淳鏀粯鍗�
+ repairUserDto = new RepairUserDto();
+ repairUserDto.setRepairId(reqJson.getString("repairId"));
+ repairUserDto.setCommunityId(reqJson.getString("communityId"));
+ repairUserDto.setRepairEvent(RepairUserDto.REPAIR_EVENT_START_USER);
+ repairUserDtos = repairUserInnerServiceSMOImpl.queryRepairUsers(repairUserDto);
+ Assert.listOnlyOne(repairUserDtos, "鏁版嵁閿欒 璇ヨ鍗曟病鏈夊彂璧蜂汉");
+ repairUserPo = new RepairUserPo();
+ repairUserPo.setRuId("-1");
+ repairUserPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ if (maintenanceType.equals("1001")) { //濡傛灉鏄湁鍋跨殑灏辫蛋涓嬮潰(涓氫富鎶ヤ慨鏈夊伩鎴栬�呯數璇濈敵璇锋湁鍋挎垨鑰呭憳宸ユ姤淇湁鍋�)
+ repairUserPo.setState(RepairUserDto.STATE_PAY_FEE);
+ } else {
+ repairUserPo.setState(RepairUserDto.STATE_EVALUATE);
+ }
+ repairUserPo.setRepairId(reqJson.getString("repairId"));
+ if (repairChannel.equals("Z")) { //濡傛灉鏄笟涓荤鎶ヤ慨鐨勮蛋涓嬮潰鐨勬柟娉�
+ repairUserPo.setStaffId(repairUserDtos.get(0).getStaffId());
+ repairUserPo.setStaffName(repairUserDtos.get(0).getStaffName());
+ } else { //濡傛灉涓嶆槸涓氫富鎶ヤ慨锛屽苟涓旀湁鍋�
+ RepairDto repairDto = new RepairDto();
+ repairDto.setRepairId(reqJson.getString("repairId"));
+ List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto);
+ Assert.listOnlyOne(repairDtos, "鏁版嵁閿欒 璇ョ敤鎴锋病鏈夋姤淇崟");
+ //姝ゆ椂鐨勬姤淇璞D鍗虫埧灞婭D
+ String roomId = repairDtos.get(0).getRepairObjId();
+ OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+ ownerRoomRelDto.setRoomId(roomId);
+ //鏌ヨ鎴垮眿涓氫富鍏崇郴琛�
+ List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMO.queryOwnerRoomRels(ownerRoomRelDto);
+ Assert.listOnlyOne(ownerRoomRelDtos, "淇℃伅閿欒");
+ //鑾峰彇涓氫富id
+ String ownerId = ownerRoomRelDtos.get(0).getOwnerId();
+ OwnerDto ownerDto = new OwnerDto();
+ ownerDto.setOwnerId(ownerId);
+ //鏍规嵁涓氫富id鏌ヨ涓氫富淇℃伅
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMO.queryOwners(ownerDto);
+ Assert.listOnlyOne(ownerDtos, "淇℃伅閿欒");
+ //鑾峰彇涓氫富濮撳悕
+ String ownerName = ownerDtos.get(0).getName();
+ repairUserPo.setStaffId(ownerId);
+ repairUserPo.setStaffName(ownerName);
+ }
+ repairUserPo.setPreStaffId(userId);
+ repairUserPo.setPreStaffName(userName);
+ repairUserPo.setPreRuId(repairUserDtos.get(0).getRuId());
+ repairUserPo.setRepairEvent(RepairUserDto.REPAIR_EVENT_PAY_USER);
+ repairUserPo.setContext("");
+ repairUserPo.setCommunityId(reqJson.getString("communityId"));
+ super.insert(context, repairUserPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_REPAIR_USER);
+ }
//缁翠慨鍓嶅浘鐗囧鐞�
if (reqJson.containsKey("beforeRepairPhotos") && !StringUtils.isEmpty(reqJson.getString("beforeRepairPhotos"))) {
JSONArray beforeRepairPhotos = reqJson.getJSONArray("beforeRepairPhotos");
@@ -144,11 +194,9 @@
businessUnit.put("fileRealName", fileName);
businessUnit.put("fileSaveName", fileName);
FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class);
- fileRelInnerServiceSMO.saveFileRel(fileRelPo);
-// super.insert(context, fileRelPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
+ super.insert(context, fileRelPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
}
}
-
//缁翠慨鍚庡浘鐗囧鐞�
if (reqJson.containsKey("afterRepairPhotos") && !StringUtils.isEmpty(reqJson.getString("afterRepairPhotos"))) {
JSONArray afterRepairPhotos = reqJson.getJSONArray("afterRepairPhotos");
@@ -170,64 +218,71 @@
businessUnit.put("fileRealName", fileName);
businessUnit.put("fileSaveName", fileName);
FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class);
- fileRelInnerServiceSMO.saveFileRel(fileRelPo);
-// super.insert(context, fileRelPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
+ super.insert(context, fileRelPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
}
}
-
- if ("200".equals(reqJson.getString("feeFlag"))) { // 娌℃湁璐圭敤
- ownerRepairBMOImpl.modifyBusinessRepairDispatch(reqJson, context, RepairDto.STATE_APPRAISE);
- ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
- context.setResponseEntity(responseEntity);
- return;
+ if (publicArea.equals("F") && "1002".equals(reqJson.getString("maintenanceType"))) { //濡傛灉涓嶆槸鍏叡鍖哄煙涓旀槸鏃犲伩鐨勮蛋涓嬮潰
+ //鏀瑰彉r_repair_pool琛╩aintenance_type缁翠慨绫诲瀷
+ RepairPoolPo repairPoolPo = new RepairPoolPo();
+ repairPoolPo.setRepairId(reqJson.getString("repairId"));
+ repairPoolPo.setMaintenanceType(reqJson.getString("maintenanceType"));
+ super.update(context, repairPoolPo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_REPAIR);
+ if (repairChannel.equals("T") || repairChannel.equals("D")) { //濡傛灉鏄數璇濇姤淇拰鍛樺伐浠e鎶ヤ慨缁撳崟鍚庣姸鎬佸彉涓哄緟鍥炶
+ ownerRepairBMOImpl.modifyBusinessRepairDispatch(reqJson, context, RepairDto.STATE_RETURN_VISIT);
+ } else if (repairChannel.equals("Z")) { //濡傛灉鏄笟涓昏嚜涓绘姤淇粨鍗曞悗鐘舵�佸彉涓哄緟璇勪环
+ ownerRepairBMOImpl.modifyBusinessRepairDispatch(reqJson, context, RepairDto.STATE_APPRAISE);
+ }
+ } else if (publicArea.equals("F") && "1001".equals(reqJson.getString("maintenanceType"))) { //濡傛灉涓嶆槸鍏叡鍖哄煙涓旀槸鏈夊伩鐨勮蛋涓嬮潰
+ //3.0 鐢熸垚鏀粯璐圭敤
+ //鏌ヨ榛樿璐圭敤椤�
+ FeeConfigDto feeConfigDto = new FeeConfigDto();
+ feeConfigDto.setCommunityId(reqJson.getString("communityId"));
+ feeConfigDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_REPAIR);
+ feeConfigDto.setIsDefault(FeeConfigDto.DEFAULT_FEE_CONFIG);
+ List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+ Assert.listOnlyOne(feeConfigDtos, "榛樿缁翠慨璐圭敤鏈夊鏉℃垨涓嶅瓨鍦�");
+ PayFeePo feePo = new PayFeePo();
+ feePo.setAmount(reqJson.getString("price"));
+ feePo.setCommunityId(reqJson.getString("communityId"));
+ feePo.setConfigId(feeConfigDtos.get(0).getConfigId());
+ feePo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ feePo.setFeeFlag(feeConfigDtos.get(0).getFeeFlag());
+ feePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+ feePo.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_REPAIR);
+ feePo.setIncomeObjId(reqJson.getString("storeId"));
+ feePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+ RepairDto repairDto = new RepairDto();
+ repairDto.setCommunityId(reqJson.getString("communityId"));
+ repairDto.setRepairId(reqJson.getString("repairId"));
+ List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto);
+ Assert.listOnlyOne(repairDtos, "缁翠慨鍗曟湁澶氭潯鎴栦笉瀛樺湪");
+ feePo.setPayerObjId(repairDtos.get(0).getRepairObjId());
+ feePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ feePo.setState(FeeDto.STATE_DOING);
+ feePo.setUserId(userId);
+ super.insert(context, feePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+ FeeAttrPo feeAttrPo = new FeeAttrPo();
+ feeAttrPo.setAttrId("-1");
+ feeAttrPo.setFeeId(feePo.getFeeId());
+ feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_REPAIR);
+ feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+ feeAttrPo.setValue(reqJson.getString("repairId"));
+ super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+ //鏀瑰彉r_repair_pool琛╩aintenance_type缁翠慨绫诲瀷
+ RepairPoolPo repairPoolPo = new RepairPoolPo();
+ repairPoolPo.setRepairId(reqJson.getString("repairId"));
+ repairPoolPo.setMaintenanceType(reqJson.getString("maintenanceType"));
+ super.update(context, repairPoolPo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_REPAIR);
+ ownerRepairBMOImpl.modifyBusinessRepairDispatch(reqJson, context, RepairDto.STATE_PAY);
+ } else if (publicArea.equals("T")) { //鍏叡鍖哄煙璧拌繖閲�
+ if (repairChannel.equals("T") || repairChannel.equals("D")) { //濡傛灉鏄數璇濇姤淇拰鍛樺伐浠e鎶ヤ慨缁撳崟鍚庣姸鎬佸彉涓哄緟鍥炶
+ ownerRepairBMOImpl.modifyBusinessRepairDispatch(reqJson, context, RepairDto.STATE_RETURN_VISIT);
+ } else if (repairChannel.equals("Z")) { //濡傛灉鏄笟涓昏嚜涓绘姤淇粨鍗曞悗鐘舵�佸彉涓哄緟璇勪环
+ ownerRepairBMOImpl.modifyBusinessRepairDispatch(reqJson, context, RepairDto.STATE_APPRAISE);
+ }
}
- //3.0 鐢熸垚鏀粯璐圭敤
- //鏌ヨ榛樿璐圭敤椤�
- FeeConfigDto feeConfigDto = new FeeConfigDto();
- feeConfigDto.setCommunityId(reqJson.getString("communityId"));
- feeConfigDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_REPAIR);
- feeConfigDto.setIsDefault(FeeConfigDto.DEFAULT_FEE_CONFIG);
- List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
-
- Assert.listOnlyOne(feeConfigDtos, "榛樿缁翠慨璐圭敤鏈夊鏉℃垨涓嶅瓨鍦�");
-
- PayFeePo feePo = new PayFeePo();
- feePo.setAmount(reqJson.getString("amount"));
- feePo.setCommunityId(reqJson.getString("communityId"));
- feePo.setConfigId(feeConfigDtos.get(0).getConfigId());
- feePo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
- feePo.setFeeFlag(feeConfigDtos.get(0).getFeeFlag());
- feePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
- feePo.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_REPAIR);
- feePo.setIncomeObjId(reqJson.getString("storeId"));
- feePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
- RepairDto repairDto = new RepairDto();
- repairDto.setCommunityId(reqJson.getString("communityId"));
- repairDto.setRepairId(reqJson.getString("repairId"));
- List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto);
- Assert.listOnlyOne(repairDtos, "缁翠慨鍗曟湁澶氭潯鎴栦笉瀛樺湪");
-
- feePo.setPayerObjId(repairDtos.get(0).getRepairObjId());
- feePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
- feePo.setState(FeeDto.STATE_DOING);
- feePo.setUserId(userId);
- super.insert(context, feePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
-
- FeeAttrPo feeAttrPo = new FeeAttrPo();
- feeAttrPo.setAttrId("-1");
- feeAttrPo.setFeeId(feePo.getFeeId());
- feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_REPAIR);
- feeAttrPo.setCommunityId(reqJson.getString("communityId"));
- feeAttrPo.setValue(reqJson.getString("repairId"));
- super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
-
- ownerRepairBMOImpl.modifyBusinessRepairDispatch(reqJson, context, RepairDto.STATE_PAY);
-
-
ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
-
context.setResponseEntity(responseEntity);
-
}
@Override
--
Gitblit v1.8.0