Kaynağa Gözat

优化修改业主问题

java110 4 yıl önce
ebeveyn
işleme
ca3473a3e8

+ 16 - 0
java110-interface/src/main/java/com/java110/intf/fee/IFeeAttrInnerServiceSMO.java

@@ -48,4 +48,20 @@ public interface IFeeAttrInnerServiceSMO {
      */
      */
     @RequestMapping(value = "/saveFeeAttrs", method = RequestMethod.POST)
     @RequestMapping(value = "/saveFeeAttrs", method = RequestMethod.POST)
     int saveFeeAttrs(@RequestBody List<FeeAttrPo> feeAttrPos);
     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);
 }
 }

+ 15 - 0
service-fee/src/main/java/com/java110/fee/smo/impl/FeeAttrInnerServiceSMOImpl.java

@@ -71,6 +71,21 @@ public class FeeAttrInnerServiceSMOImpl extends BaseServiceSMO implements IFeeAt
         return feeAttrServiceDaoImpl.saveFeeAttrs(info);
         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() {
     public IFeeAttrServiceDao getFeeAttrServiceDaoImpl() {
         return feeAttrServiceDaoImpl;
         return feeAttrServiceDaoImpl;
     }
     }

+ 71 - 0
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);
+
+
+    }
+
+}

+ 9 - 0
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);
+}

+ 137 - 0
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;
+    }
+}

+ 0 - 1
service-order/src/main/java/com/java110/order/listener/TransactionOrderInfoToDataBusListener.java

@@ -58,7 +58,6 @@ public class TransactionOrderInfoToDataBusListener implements DataFlowListener<I
             return;
             return;
         }
         }
 
 
-
         String databusSwitch = MappingCache.getValue(DomainContant.COMMON_DOMAIN, DATABUS_SWITCH);
         String databusSwitch = MappingCache.getValue(DomainContant.COMMON_DOMAIN, DATABUS_SWITCH);
 
 
         if (!DATABUS_SWITCH_ON.equals(databusSwitch)) {
         if (!DATABUS_SWITCH_ON.equals(databusSwitch)) {