From ca3473a3e803c5c77e93f6671f36637813f5c951 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 07 十月 2021 21:18:18 +0800
Subject: [PATCH] 优化修改业主问题
---
java110-interface/src/main/java/com/java110/intf/fee/IFeeAttrInnerServiceSMO.java | 16 +++
service-job/src/main/java/com/java110/job/adapt/fee/asyn/IUpdateFeeOwnerInfo.java | 9 +
service-fee/src/main/java/com/java110/fee/smo/impl/FeeAttrInnerServiceSMOImpl.java | 15 +++
service-order/src/main/java/com/java110/order/listener/TransactionOrderInfoToDataBusListener.java | 1
service-job/src/main/java/com/java110/job/adapt/fee/asyn/impl/UpdateFeeOwnerInfoImpl.java | 137 +++++++++++++++++++++++++++
service-job/src/main/java/com/java110/job/adapt/fee/UpdateFeeOwnerInfoAdapt.java | 71 ++++++++++++++
6 files changed, 248 insertions(+), 1 deletions(-)
diff --git a/java110-interface/src/main/java/com/java110/intf/fee/IFeeAttrInnerServiceSMO.java b/java110-interface/src/main/java/com/java110/intf/fee/IFeeAttrInnerServiceSMO.java
index 2cb65d7..8f65dd1 100755
--- a/java110-interface/src/main/java/com/java110/intf/fee/IFeeAttrInnerServiceSMO.java
+++ b/java110-interface/src/main/java/com/java110/intf/fee/IFeeAttrInnerServiceSMO.java
@@ -48,4 +48,20 @@
*/
@RequestMapping(value = "/saveFeeAttrs", method = RequestMethod.POST)
int saveFeeAttrs(@RequestBody List<FeeAttrPo> feeAttrPos);
+
+ /**
+ * 淇濆瓨璐圭敤灞炴��
+ * @param feeAttrPo
+ * @return
+ */
+ @RequestMapping(value = "/saveFeeAttr", method = RequestMethod.POST)
+ int saveFeeAttr(@RequestBody FeeAttrPo feeAttrPo);
+
+ /**
+ * 淇敼璐圭敤灞炴��
+ * @param feeAttrPo
+ * @return
+ */
+ @RequestMapping(value = "/updateFeeAttr", method = RequestMethod.POST)
+ int updateFeeAttr(@RequestBody FeeAttrPo feeAttrPo);
}
diff --git a/service-fee/src/main/java/com/java110/fee/smo/impl/FeeAttrInnerServiceSMOImpl.java b/service-fee/src/main/java/com/java110/fee/smo/impl/FeeAttrInnerServiceSMOImpl.java
index b889bd2..038d903 100755
--- a/service-fee/src/main/java/com/java110/fee/smo/impl/FeeAttrInnerServiceSMOImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/smo/impl/FeeAttrInnerServiceSMOImpl.java
@@ -71,6 +71,21 @@
return feeAttrServiceDaoImpl.saveFeeAttrs(info);
}
+ @Override
+ public int saveFeeAttr(@RequestBody FeeAttrPo feeAttrPo) {
+ List<Map> feeAttrs = new ArrayList<>();
+ feeAttrs.add(BeanConvertUtil.beanCovertMap(feeAttrPo));
+ Map info = new HashMap();
+ info.put("feeAttrPos", feeAttrs);
+ return feeAttrServiceDaoImpl.saveFeeAttrs(info);
+ }
+
+ @Override
+ public int updateFeeAttr(@RequestBody FeeAttrPo feeAttrPo) {
+ feeAttrServiceDaoImpl.updateFeeAttrInfoInstance(BeanConvertUtil.beanCovertMap(feeAttrPo));
+ return 1;
+ }
+
public IFeeAttrServiceDao getFeeAttrServiceDaoImpl() {
return feeAttrServiceDaoImpl;
}
diff --git a/service-job/src/main/java/com/java110/job/adapt/fee/UpdateFeeOwnerInfoAdapt.java b/service-job/src/main/java/com/java110/job/adapt/fee/UpdateFeeOwnerInfoAdapt.java
new file mode 100644
index 0000000..3a82011
--- /dev/null
+++ b/service-job/src/main/java/com/java110/job/adapt/fee/UpdateFeeOwnerInfoAdapt.java
@@ -0,0 +1,71 @@
+package com.java110.job.adapt.fee;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.entity.order.Business;
+import com.java110.job.adapt.DatabusAdaptImpl;
+import com.java110.job.adapt.fee.asyn.IUpdateFeeOwnerInfo;
+import com.java110.po.owner.OwnerPo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 淇敼涓氫富鏃� 鍒锋柊璐圭敤淇℃伅
+ *
+ * @ClassName UpdateFeeOwnerInfoAdapt
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2021/10/7 20:50
+ * @Version 1.0
+ * add by wuxw 2021/10/7
+ **/
+@Component(value = "updateFeeOwnerInfoAdapt")
+public class UpdateFeeOwnerInfoAdapt extends DatabusAdaptImpl {
+
+
+ @Autowired
+ private IUpdateFeeOwnerInfo updateFeeOwnerInfoImpl;
+
+ /**
+ * accessToken={access_token}
+ * &extCommunityUuid=01000
+ * &extCommunityId=1
+ * &devSn=111111111
+ * &name=璁惧鍚嶇О
+ * &positionType=0
+ * &positionUuid=1
+ *
+ * @param business 褰撳墠澶勭悊涓氬姟
+ * @param businesses 鎵�鏈変笟鍔′俊鎭�
+ */
+ @Override
+ public void execute(Business business, List<Business> businesses) {
+ JSONObject data = business.getData();
+ if (data.containsKey(OwnerPo.class.getSimpleName())) {
+ Object bObj = data.get(OwnerPo.class.getSimpleName());
+ JSONArray businessMachines = null;
+ if (bObj instanceof JSONObject) {
+ businessMachines = new JSONArray();
+ businessMachines.add(bObj);
+ } else if (bObj instanceof List) {
+ businessMachines = JSONArray.parseArray(JSONObject.toJSONString(bObj));
+ } else {
+ businessMachines = (JSONArray) bObj;
+ }
+ for (int bOwnerIndex = 0; bOwnerIndex < businessMachines.size(); bOwnerIndex++) {
+ JSONObject businessOwner = businessMachines.getJSONObject(bOwnerIndex);
+ doOwnerInfo(business, businessOwner);
+ }
+ }
+ }
+
+ private void doOwnerInfo(Business business, JSONObject businessOwner) {
+
+ updateFeeOwnerInfoImpl.doUpdate(business, businessOwner);
+
+
+ }
+
+}
diff --git a/service-job/src/main/java/com/java110/job/adapt/fee/asyn/IUpdateFeeOwnerInfo.java b/service-job/src/main/java/com/java110/job/adapt/fee/asyn/IUpdateFeeOwnerInfo.java
new file mode 100644
index 0000000..0998aed
--- /dev/null
+++ b/service-job/src/main/java/com/java110/job/adapt/fee/asyn/IUpdateFeeOwnerInfo.java
@@ -0,0 +1,9 @@
+package com.java110.job.adapt.fee.asyn;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.entity.order.Business;
+
+public interface IUpdateFeeOwnerInfo {
+
+ void doUpdate(Business business, JSONObject businessOwner);
+}
diff --git a/service-job/src/main/java/com/java110/job/adapt/fee/asyn/impl/UpdateFeeOwnerInfoImpl.java b/service-job/src/main/java/com/java110/job/adapt/fee/asyn/impl/UpdateFeeOwnerInfoImpl.java
new file mode 100644
index 0000000..e3e74bb
--- /dev/null
+++ b/service-job/src/main/java/com/java110/job/adapt/fee/asyn/impl/UpdateFeeOwnerInfoImpl.java
@@ -0,0 +1,137 @@
+package com.java110.job.adapt.fee.asyn.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.RoomDto;
+import com.java110.dto.fee.FeeAttrDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.entity.order.Business;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.job.adapt.fee.asyn.IUpdateFeeOwnerInfo;
+import com.java110.po.fee.FeeAttrPo;
+import com.java110.po.owner.OwnerPo;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class UpdateFeeOwnerInfoImpl implements IUpdateFeeOwnerInfo {
+
+ @Autowired
+ private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+ @Autowired
+ private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+ @Autowired
+ private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
+
+
+ @Autowired
+ private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+
+ @Override
+ @Async
+ public void doUpdate(Business business, JSONObject businessOwner) {
+ OwnerPo ownerPo = BeanConvertUtil.covertBean(businessOwner, OwnerPo.class);
+
+ RoomDto roomDto = new RoomDto();
+ roomDto.setOwnerId(ownerPo.getOwnerId());
+ //杩欑鎯呭喌璇存槑 涓氫富宸茬粡鍒犳帀浜� 闇�瑕佹煡璇㈢姸鎬佷负 1 鐨勬暟鎹�
+ List<RoomDto> rooms = roomInnerServiceSMOImpl.queryRoomsByOwner(roomDto);
+
+ //娌℃湁鎴垮眿鏃惰繑鍥�
+ if (rooms == null || rooms.size() < 1) {
+ return;
+ }
+
+ OwnerDto ownerDto = new OwnerDto();
+ ownerDto.setMemberId(ownerPo.getMemberId());
+ ownerDto.setCommunityId(ownerPo.getCommunityId());
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+ Assert.listOnlyOne(ownerDtos, "涓氫富涓嶅瓨鍦�");
+
+ //鎷垮埌灏忓尯ID
+ String communityId = ownerPo.getCommunityId();
+
+ List<String> payerObjIds = new ArrayList<>();
+ for (RoomDto tRoomDto : rooms) {
+ payerObjIds.add(tRoomDto.getUnitId());
+ payerObjIds.add(tRoomDto.getRoomId());
+ payerObjIds.add(tRoomDto.getFloorId());
+ }
+
+ FeeDto feeDto = new FeeDto();
+ feeDto.setCommunityId(communityId);
+ feeDto.setPayerObjIds(payerObjIds.toArray(new String[payerObjIds.size()]));
+ feeDto.setState(FeeDto.STATE_DOING);
+ List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+
+ for (FeeDto tmpFeeDto : feeDtos) {
+ doDealFeeDto(tmpFeeDto, ownerDtos.get(0));
+ }
+
+ }
+
+ private void doDealFeeDto(FeeDto tmpFeeDto, OwnerDto ownerDto) {
+
+ //鍒ゆ柇鏄惁瀛樺湪 涓氫富鍚嶇О
+
+ FeeAttrDto ownerNameAttr = getOwnerFeeAttr(tmpFeeDto, FeeAttrDto.SPEC_CD_OWNER_NAME);
+ FeeAttrPo tmpFeeAttrPo = new FeeAttrPo();
+ if (ownerNameAttr == null) {
+ tmpFeeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ tmpFeeAttrPo.setCommunityId(ownerDto.getCommunityId());
+ tmpFeeAttrPo.setFeeId(tmpFeeDto.getFeeId());
+ tmpFeeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME);
+ tmpFeeAttrPo.setValue(ownerDto.getName());
+ feeAttrInnerServiceSMOImpl.saveFeeAttr(tmpFeeAttrPo);
+ } else {
+ tmpFeeAttrPo.setAttrId(ownerNameAttr.getAttrId());
+ tmpFeeAttrPo.setValue(ownerDto.getName());
+ feeAttrInnerServiceSMOImpl.updateFeeAttr(tmpFeeAttrPo);
+ }
+
+ //鍒ゆ柇鏄惁瀛樺湪涓氫富鑱旂郴鐢佃瘽
+ ownerNameAttr = getOwnerFeeAttr(tmpFeeDto, FeeAttrDto.SPEC_CD_OWNER_LINK);
+ tmpFeeAttrPo = new FeeAttrPo();
+ if (ownerNameAttr == null) {
+ tmpFeeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ tmpFeeAttrPo.setCommunityId(ownerDto.getCommunityId());
+ tmpFeeAttrPo.setFeeId(tmpFeeDto.getFeeId());
+ tmpFeeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME);
+ tmpFeeAttrPo.setValue(ownerDto.getName());
+ feeAttrInnerServiceSMOImpl.saveFeeAttr(tmpFeeAttrPo);
+ } else {
+ tmpFeeAttrPo.setAttrId(ownerNameAttr.getAttrId());
+ tmpFeeAttrPo.setValue(ownerDto.getName());
+ feeAttrInnerServiceSMOImpl.updateFeeAttr(tmpFeeAttrPo);
+ }
+
+ }
+
+ private FeeAttrDto getOwnerFeeAttr(FeeDto tmpFeeDto, String specCd) {
+ List<FeeAttrDto> feeAttrDtos = tmpFeeDto.getFeeAttrDtos();
+ if (feeAttrDtos == null || feeAttrDtos.size() < 1) {
+ return null;
+ }
+
+ for (FeeAttrDto feeAttrDto : feeAttrDtos) {
+ if (!specCd.equals(feeAttrDto.getSpecCd())) {
+ continue;
+ }
+ return feeAttrDto;
+ }
+ return null;
+ }
+}
diff --git a/service-order/src/main/java/com/java110/order/listener/TransactionOrderInfoToDataBusListener.java b/service-order/src/main/java/com/java110/order/listener/TransactionOrderInfoToDataBusListener.java
index 985a8b1..8254295 100755
--- a/service-order/src/main/java/com/java110/order/listener/TransactionOrderInfoToDataBusListener.java
+++ b/service-order/src/main/java/com/java110/order/listener/TransactionOrderInfoToDataBusListener.java
@@ -58,7 +58,6 @@
return;
}
-
String databusSwitch = MappingCache.getValue(DomainContant.COMMON_DOMAIN, DATABUS_SWITCH);
if (!DATABUS_SWITCH_ON.equals(databusSwitch)) {
--
Gitblit v1.8.0