Просмотр исходного кода

优化代码加入 费用生成时加入 业主信息至属性 方便 商铺 转租 但是费用没有缴清的问题

java110 лет назад: 5
Родитель
Сommit
238d0f309e

+ 5 - 0
java110-bean/src/main/java/com/java110/dto/fee/FeeAttrDto.java

@@ -23,6 +23,9 @@ public class FeeAttrDto extends PageDto implements Serializable {
     public static final String SPEC_CD_TOTAL_DEGREES = "390004";//公摊总用量
     public static final String SPEC_CD_SHARE_FORMULA = "390005";//公摊公式
     public static final String SPEC_CD_PROXY_CONSUMPTION = "390006";//用量
+    public static final String SPEC_CD_OWNER_ID = "390007";//业主ID
+    public static final String SPEC_CD_OWNER_NAME = "390008";//业主名称
+    public static final String SPEC_CD_OWNER_LINK = "390009";//业主联系方式
 
     private String attrId;
     private String specCd;
@@ -101,4 +104,6 @@ public class FeeAttrDto extends PageDto implements Serializable {
     public void setSpecCdName(String specCdName) {
         this.specCdName = specCdName;
     }
+
+
 }

+ 27 - 0
java110-bean/src/main/java/com/java110/entity/assetImport/ImportRoomFee.java

@@ -31,6 +31,9 @@ public class ImportRoomFee {
 
     private String cycle;
     private String remark;
+    private String ownerId;
+    private String ownerName;
+    private String ownerLink;
 
 
     public String getFloorNum() {
@@ -144,4 +147,28 @@ public class ImportRoomFee {
     public void setCarId(String carId) {
         this.carId = carId;
     }
+
+    public String getOwnerId() {
+        return ownerId;
+    }
+
+    public void setOwnerId(String ownerId) {
+        this.ownerId = ownerId;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    public String getOwnerLink() {
+        return ownerLink;
+    }
+
+    public void setOwnerLink(String ownerLink) {
+        this.ownerLink = ownerLink;
+    }
 }

+ 11 - 0
service-api/src/main/java/com/java110/api/bmo/fee/IFeeBMO.java

@@ -145,6 +145,17 @@ public interface IFeeBMO extends IApiBaseBMO {
      */
     public JSONObject addFee(OwnerCarDto ownerCarDto, JSONObject paramInJson, DataFlowContext dataFlowContext);
 
+
+    /**
+     * 添加物业费用
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    public JSONObject addFeeAttr( JSONObject paramInJson, DataFlowContext dataFlowContext,String specCd,String value);
+
+
     /**
      * 添加费用
      *

+ 22 - 2
service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java

@@ -7,6 +7,7 @@ import com.java110.core.context.DataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.smo.IComputeFeeSMO;
 import com.java110.dto.RoomDto;
+import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.machine.CarInoutDto;
@@ -17,8 +18,8 @@ import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.po.car.CarInoutPo;
+import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeeConfigPo;
 import com.java110.po.fee.PayFeeDetailPo;
 import com.java110.po.fee.PayFeePo;
@@ -675,7 +676,7 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
         business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
         JSONObject businessUnit = new JSONObject();
-        businessUnit.put("feeId", "-1");
+        businessUnit.put("feeId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
         businessUnit.put("configId", paramInJson.getString("configId"));
         businessUnit.put("feeTypeCd", paramInJson.getString("feeTypeCd"));
         businessUnit.put("incomeObjId", paramInJson.getString("storeId"));
@@ -689,7 +690,26 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         businessUnit.put("state", "2008001");
         businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessUnit);
+        paramInJson.put("feeId", businessUnit.getString("feeId"));
+        return business;
+    }
+
+    @Override
+    public JSONObject addFeeAttr(JSONObject paramInJson, DataFlowContext dataFlowContext,String specCd,String value) {
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        FeeAttrPo feeAttrPo = new FeeAttrPo();
+        feeAttrPo.setCommunityId(paramInJson.getString("communityId"));
+        feeAttrPo.setSpecCd(specCd);
+        feeAttrPo.setValue(value);
+        feeAttrPo.setFeeId(paramInJson.getString("feeId"));
+        feeAttrPo.setAttrId("-1");
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(FeeAttrPo.class.getSimpleName(), JSONObject.parseObject(JSONObject.toJSONString(feeAttrPo)));
         return business;
+
     }
 
     /**

+ 32 - 1
service-api/src/main/java/com/java110/api/listener/fee/SaveRoomCreateFeeListener.java

@@ -8,13 +8,17 @@ import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.dto.RoomDto;
+import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.owner.OwnerDto;
 import com.java110.entity.center.AppService;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.ServiceCodeConstant;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +27,7 @@ import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -48,6 +53,9 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
     @Autowired
     private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
 
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
     @Override
     public String getServiceCode() {
         return ServiceCodeConstant.SERVICE_CODE_SAVE_ROOM_CREATE_FEE;
@@ -131,6 +139,25 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
 
         AppService service = event.getAppService();
 
+        List<String> roomIds = new ArrayList<>();
+        for (RoomDto roomDto : roomDtos) {
+            roomIds.add(roomDto.getRoomId());
+        }
+
+        //房屋刷入业主信息
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(roomDtos.get(0).getCommunityId());
+        ownerDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
+        for (RoomDto roomDto : roomDtos) {
+            for (OwnerDto tmpOwnerDto : ownerDtos) {
+                if (roomDto.getRoomId().equals(tmpOwnerDto.getRoomId())) {
+                    roomDto.setOwnerId(tmpOwnerDto.getOwnerId());
+                    roomDto.setOwnerName(tmpOwnerDto.getName());
+                    roomDto.setLink(tmpOwnerDto.getLink());
+                }
+            }
+        }
 
         HttpHeaders header = new HttpHeaders();
         context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
@@ -142,7 +169,11 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
         for (int roomIndex = 0; roomIndex < roomDtos.size(); roomIndex++) {
 
             businesses.add(feeBMOImpl.addRoomFee(roomDtos.get(roomIndex), reqJson, context));
-
+            if (!StringUtil.isEmpty(roomDtos.get(roomIndex).getOwnerId())) {
+                businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_ID, roomDtos.get(roomIndex).getOwnerId()));
+                businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_LINK, roomDtos.get(roomIndex).getLink()));
+                businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_NAME, roomDtos.get(roomIndex).getOwnerName()));
+            }
             if (roomIndex % DEFAULT_ADD_FEE_COUNT == 0 && roomIndex != 0) {
 
                 responseEntity = feeBMOImpl.callService(context, service.getServiceCode(), businesses);

+ 77 - 0
service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java

@@ -8,12 +8,14 @@ import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.importFee.ImportFeeDto;
+import com.java110.dto.owner.OwnerDto;
 import com.java110.entity.assetImport.ImportRoomFee;
 import com.java110.fee.bmo.IImportRoomFee;
 import com.java110.fee.listener.fee.UpdateFeeInfoListener;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.*;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeeConfigPo;
 import com.java110.po.fee.PayFeePo;
@@ -70,6 +72,9 @@ public class ImportRoomFeeImpl implements IImportRoomFee {
     @Autowired
     private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
 
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
     /**
      * 欠费缴费
      *
@@ -117,6 +122,24 @@ public class ImportRoomFeeImpl implements IImportRoomFee {
 
         tmpImportRoomFees = roomInnerServiceSMOImpl.freshRoomIds(tmpImportRoomFees);
 
+        List<String> roomIds = new ArrayList<>();
+        for (ImportRoomFee importRoomFee : tmpImportRoomFees) {
+            roomIds.add(importRoomFee.getRoomId());
+        }
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(tmpImportRoomFees.get(0).getCommunityId());
+        ownerDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
+        for (ImportRoomFee importRoomFee : tmpImportRoomFees) {
+            for (OwnerDto tmpOwnerDto : ownerDtos) {
+                if (importRoomFee.getRoomId().equals(tmpOwnerDto.getRoomId())) {
+                    importRoomFee.setOwnerId(tmpOwnerDto.getOwnerId());
+                    importRoomFee.setOwnerName(tmpOwnerDto.getName());
+                    importRoomFee.setOwnerLink(tmpOwnerDto.getLink());
+                }
+            }
+        }
+
         List<PayFeePo> payFeePos = new ArrayList<>();
         List<FeeAttrPo> feeAttrPos = new ArrayList<>();
         List<ImportFeeDetailPo> importFeeDetailPos = new ArrayList<>();
@@ -156,6 +179,33 @@ public class ImportRoomFeeImpl implements IImportRoomFee {
             feeAttrPo.setValue(importRoomFee.getFeeName());
             feeAttrPo.setFeeId(payFeePo.getFeeId());
             feeAttrPos.add(feeAttrPo);
+
+            if (!StringUtil.isEmpty(importRoomFee.getOwnerId())) {
+                feeAttrPo = new FeeAttrPo();
+                feeAttrPo.setCommunityId(communityId);
+                feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID);
+                feeAttrPo.setValue(importRoomFee.getOwnerId());
+                feeAttrPo.setFeeId(payFeePo.getFeeId());
+                feeAttrPos.add(feeAttrPo);
+
+                feeAttrPo = new FeeAttrPo();
+                feeAttrPo.setCommunityId(communityId);
+                feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME);
+                feeAttrPo.setValue(importRoomFee.getOwnerName());
+                feeAttrPo.setFeeId(payFeePo.getFeeId());
+                feeAttrPos.add(feeAttrPo);
+
+                feeAttrPo = new FeeAttrPo();
+                feeAttrPo.setCommunityId(communityId);
+                feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK);
+                feeAttrPo.setValue(importRoomFee.getOwnerLink());
+                feeAttrPo.setFeeId(payFeePo.getFeeId());
+                feeAttrPos.add(feeAttrPo);
+            }
+
             importFeeDetailPo = new ImportFeeDetailPo();
             importFeeDetailPo.setAmount(importRoomFee.getAmount());
             importFeeDetailPo.setCommunityId(communityId);
@@ -294,6 +344,33 @@ public class ImportRoomFeeImpl implements IImportRoomFee {
             feeAttrPo.setValue(importCarFee.getFeeName());
             feeAttrPo.setFeeId(payFeePo.getFeeId());
             feeAttrPos.add(feeAttrPo);
+
+            if (!StringUtil.isEmpty(importCarFee.getOwnerId())) {
+                feeAttrPo = new FeeAttrPo();
+                feeAttrPo.setCommunityId(communityId);
+                feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID);
+                feeAttrPo.setValue(importCarFee.getOwnerId());
+                feeAttrPo.setFeeId(payFeePo.getFeeId());
+                feeAttrPos.add(feeAttrPo);
+
+                feeAttrPo = new FeeAttrPo();
+                feeAttrPo.setCommunityId(communityId);
+                feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME);
+                feeAttrPo.setValue(importCarFee.getOwnerName());
+                feeAttrPo.setFeeId(payFeePo.getFeeId());
+                feeAttrPos.add(feeAttrPo);
+
+                feeAttrPo = new FeeAttrPo();
+                feeAttrPo.setCommunityId(communityId);
+                feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK);
+                feeAttrPo.setValue(importCarFee.getOwnerLink());
+                feeAttrPo.setFeeId(payFeePo.getFeeId());
+                feeAttrPos.add(feeAttrPo);
+            }
+
             importFeeDetailPo = new ImportFeeDetailPo();
             importFeeDetailPo.setAmount(importCarFee.getAmount());
             importFeeDetailPo.setCommunityId(communityId);

+ 51 - 0
service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java

@@ -9,10 +9,12 @@ import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.feeFormula.FeeFormulaDto;
+import com.java110.dto.owner.OwnerDto;
 import com.java110.fee.bmo.importFee.IFeeSharingBMO;
 import com.java110.intf.community.ICommunityInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.*;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeeConfigPo;
 import com.java110.po.fee.PayFeePo;
@@ -21,6 +23,7 @@ import com.java110.po.importFeeDetail.ImportFeeDetailPo;
 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.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
@@ -63,6 +66,9 @@ public class FeeSharingBMOImpl implements IFeeSharingBMO {
     @Autowired
     private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
 
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
     /**
      * 添加小区信息
      *
@@ -108,6 +114,25 @@ public class FeeSharingBMOImpl implements IFeeSharingBMO {
             throw new IllegalArgumentException("未找到相应房屋公摊费用");
         }
 
+        //房屋刷入业主信息
+        List<String> roomIds = new ArrayList<>();
+        for (RoomDto tmpRoomDto : roomDtos) {
+            roomIds.add(tmpRoomDto.getRoomId());
+        }
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(roomDtos.get(0).getCommunityId());
+        ownerDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
+        for (RoomDto tmpRoomDto : roomDtos) {
+            for (OwnerDto tmpOwnerDto : ownerDtos) {
+                if (tmpRoomDto.getRoomId().equals(tmpOwnerDto.getRoomId())) {
+                    tmpRoomDto.setOwnerId(tmpOwnerDto.getOwnerId());
+                    tmpRoomDto.setOwnerName(tmpOwnerDto.getName());
+                    tmpRoomDto.setLink(tmpOwnerDto.getLink());
+                }
+            }
+        }
+
         FeeConfigDto feeConfigDto = new FeeConfigDto();
         feeConfigDto.setFeeTypeCd(reqJson.getString("feeTypeCd"));
         feeConfigDto.setFeeName(IMPORT_FEE_NAME);
@@ -299,6 +324,32 @@ public class FeeSharingBMOImpl implements IFeeSharingBMO {
         feeAttrPo.setFeeId(payFeePo.getFeeId());
         feeAttrPos.add(feeAttrPo);
 
+        if (!StringUtil.isEmpty(roomDto.getOwnerId())) {
+            feeAttrPo = new FeeAttrPo();
+            feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID);
+            feeAttrPo.setValue(roomDto.getOwnerId());
+            feeAttrPo.setFeeId(payFeePo.getFeeId());
+            feeAttrPos.add(feeAttrPo);
+
+            feeAttrPo = new FeeAttrPo();
+            feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME);
+            feeAttrPo.setValue(roomDto.getOwnerName());
+            feeAttrPo.setFeeId(payFeePo.getFeeId());
+            feeAttrPos.add(feeAttrPo);
+
+            feeAttrPo = new FeeAttrPo();
+            feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK);
+            feeAttrPo.setValue(roomDto.getLink());
+            feeAttrPo.setFeeId(payFeePo.getFeeId());
+            feeAttrPos.add(feeAttrPo);
+        }
+
         String formulaValueRemark = orgFormulaValue.replace("T", reqJson.getString("totalDegrees") + "<总用量>")
                 .replace("F", roomDto.getFloorArea() + "<" + roomDto.getFloorNum() + "栋面积>")
                 .replace("U", roomDto.getUnitArea() + "<" + roomDto.getUnitNum() + "单元面积>")

+ 3 - 0
service-user/src/main/java/com/java110/user/smo/impl/OwnerCarInnerServiceSMOImpl.java

@@ -109,6 +109,9 @@ public class OwnerCarInnerServiceSMOImpl extends BaseServiceSMO implements IOwne
             for (ImportRoomFee importRoomFee : tmpImportCarFees) {
                 if (ownerCarDto.getCarNum().equals(importRoomFee.getCarNum())) {
                     importRoomFee.setCarId(ownerCarDto.getCarId());
+                    importRoomFee.setOwnerId(ownerCarDto.getOwnerId());
+                    importRoomFee.setOwnerName(ownerCarDto.getOwnerName());
+                    importRoomFee.setOwnerLink(ownerCarDto.getLink());
                 }
             }
         }