Преглед на файлове

加入商城根据手机号查询欠费

wuxw преди 1 година
родител
ревизия
f2df1bf346

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/reportFee/ReportOweFeeDto.java

@@ -22,6 +22,7 @@ public class ReportOweFeeDto extends PageDto implements Serializable {
     private String updateTime;
     private String oweId;
     private String ownerId;
+    private String[] ownerIds;
     private String feeId;
     private String[] feeIds;
     private String amountOwed;
@@ -282,4 +283,12 @@ public class ReportOweFeeDto extends PageDto implements Serializable {
     public void setFeeIds(String[] feeIds) {
         this.feeIds = feeIds;
     }
+
+    public String[] getOwnerIds() {
+        return ownerIds;
+    }
+
+    public void setOwnerIds(String[] ownerIds) {
+        this.ownerIds = ownerIds;
+    }
 }

+ 81 - 7
java110-db/src/main/resources/mapper/report/ReportOweFeeServiceDaoImplMapper.xml

@@ -6,11 +6,11 @@
     <!-- 保存欠费统计信息 add by wuxw 2018-07-03 -->
     <insert id="saveReportOweFeeInfo" parameterType="Map">
         insert into report_owe_fee(config_name, deadline_time, owner_tel, update_time, owe_id, owner_id, fee_id,
-                                   amount_owed, payer_obj_name, owner_name, config_id, fee_name, end_time, community_id,
-                                   payer_obj_type, payer_obj_id)
+        amount_owed, payer_obj_name, owner_name, config_id, fee_name, end_time, community_id,
+        payer_obj_type, payer_obj_id)
         values (#{configName}, #{deadlineTime}, #{ownerTel}, #{updateTime}, #{oweId}, #{ownerId}, #{feeId},
-                #{amountOwed}, #{payerObjName}, #{ownerName}, #{configId}, #{feeName}, #{endTime}, #{communityId},
-                #{payerObjType}, #{payerObjId})
+        #{amountOwed}, #{payerObjName}, #{ownerName}, #{configId}, #{feeName}, #{endTime}, #{communityId},
+        #{payerObjType}, #{payerObjId})
     </insert>
 
     <!-- 查询欠费统计信息 add by wuxw 2018-07-03 -->
@@ -764,10 +764,10 @@
     <select id="queryInvalidOweFee" parameterType="Map" resultType="Map">
         select t.fee_id feeId
         from pay_fee t
-                 inner join pay_fee_config pfc on t.config_id = pfc.config_id
-                 inner join report_owe_fee rof on t.fee_id = rof.fee_id
+        inner join pay_fee_config pfc on t.config_id = pfc.config_id
+        inner join report_owe_fee rof on t.fee_id = rof.fee_id
         where (t.status_cd = '1' or pfc.status_cd = '1')
-          and t.community_id = #{communityId}
+        and t.community_id = #{communityId}
     </select>
 
     <update id="deleteInvalidFee" parameterType="Map">
@@ -800,4 +800,78 @@
         </foreach>
         group by t.payer_obj_id
     </select>
+
+    <!-- 查询业主欠费信息 add by wuxw 2018-07-03 t.owner_tel,t.owner_tel ownerTel,-->
+    <select id="queryOwnerOweFee" parameterType="Map" resultType="Map">
+        select t.config_name configName,t.deadline_time deadlineTime,t.update_time updateTime,t.owe_id,t.owe_id
+        oweId,t.fee_id,t.fee_id feeId,t.amount_owed,t.amount_owed amountOwed,t.payer_obj_name,t.payer_obj_name
+        payerObjName,t.config_id,t.config_id configId,t.fee_name,t.fee_name
+        feeName,t.end_time,t.end_time endTime,t.community_id,t.community_id
+        communityId,t.payer_obj_type,t.payer_obj_type payerObjType,t.payer_obj_id,t.payer_obj_id payerObjId
+        from report_owe_fee t
+        where 1 =1
+        and t.amount_owed &gt; 0
+        <if test="configName !=null and configName != ''">
+            and t.config_name= #{configName}
+        </if>
+        <if test="ownerTel !=null and ownerTel != ''">
+            and t.owner_tel= #{ownerTel}
+        </if>
+
+        <if test="oweId !=null and oweId != ''">
+            and t.owe_id= #{oweId}
+        </if>
+        <if test="ownerId !=null and ownerId != ''">
+            and t.owner_id= #{ownerId}
+        </if>
+
+        <if test="ownerIds !=null">
+            and t.owner_id in
+            <foreach collection="ownerIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="feeId !=null and feeId != ''">
+            and t.fee_id= #{feeId}
+        </if>
+
+        <if test="payerObjName !=null and payerObjName != ''">
+            and t.payer_obj_name= #{payerObjName}
+        </if>
+        <if test="ownerName !=null and ownerName != ''">
+            and bo.name= #{ownerName}
+        </if>
+        <if test="configId !=null and configId != ''">
+            and t.config_id= #{configId}
+        </if>
+        <if test="configIds !=null">
+            and t.config_id in
+            <foreach collection="configIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="feeName !=null and feeName != ''">
+            and t.fee_name= #{feeName}
+        </if>
+
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        <if test="payerObjType !=null and payerObjType != ''">
+            and t.payer_obj_type= #{payerObjType}
+        </if>
+        <if test="payerObjId !=null and payerObjId != ''">
+            and t.payer_obj_id= #{payerObjId}
+        </if>
+        <if test="payerObjIds !=null">
+            and t.payer_obj_id in
+            <foreach collection="payerObjIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        order by t.create_time desc
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+    </select>
 </mapper>

+ 3 - 0
java110-interface/src/main/java/com/java110/intf/report/IReportOweFeeInnerServiceSMO.java

@@ -105,4 +105,7 @@ public interface IReportOweFeeInnerServiceSMO {
 
     @RequestMapping(value = "/queryOweFeesByRoomIds", method = RequestMethod.POST)
     List<Map> queryOweFeesByRoomIds(@RequestBody Map info);
+
+    @RequestMapping(value = "/queryOwnerOweFee", method = RequestMethod.POST)
+    List<ReportOweFeeDto> queryOwnerOweFee(@RequestBody ReportOweFeeDto reportOweFeeDto);
 }

+ 108 - 0
service-common/src/main/java/com/java110/common/bmo/mall/impl/GetOwnerFeeImpl.java

@@ -0,0 +1,108 @@
+package com.java110.common.bmo.mall.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.bmo.mall.IMallCommonApiBmo;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.log.LoggerFactory;
+import com.java110.core.smo.IComputeFeeSMO;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.reportFee.ReportOweFeeDto;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.report.IReportOweFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.ListUtil;
+import com.java110.utils.util.MoneyUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 查询业主费用
+ */
+@Service("getOwnerFeeImpl")
+public class GetOwnerFeeImpl implements IMallCommonApiBmo {
+    private final static Logger logger = LoggerFactory.getLogger(GetOwnerFeeImpl.class);
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IReportOweFeeInnerServiceSMO reportOweFeeInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IComputeFeeSMO computeFeeSMOImpl;
+
+
+    @Override
+    public void validate(ICmdDataFlowContext context, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "tel", "未包含手机号");
+    }
+
+    @Override
+    public void doCmd(ICmdDataFlowContext context, JSONObject reqJson) {
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setLink(reqJson.getString("tel"));
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+        if (ListUtil.isNull(ownerDtos)) {
+            throw new CmdException("业主不存在");
+        }
+
+        List<String> ownerIds = new ArrayList<>();
+        for (OwnerDto tmpOwnerDto : ownerDtos) {
+            ownerIds.add(tmpOwnerDto.getOwnerId());
+        }
+
+        ReportOweFeeDto reportOweFeeDto = new ReportOweFeeDto();
+        reportOweFeeDto.setOwnerIds(ownerIds.toArray(new String[ownerIds.size()]));
+        List<ReportOweFeeDto> reportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryOwnerOweFee(reportOweFeeDto);
+        if (ListUtil.isNull(reportOweFeeDtos)) {
+            throw new CmdException("未包含费用");
+        }
+        // todo 这里取一个房屋欠费即可
+        String roomId = reportOweFeeDtos.get(0).getPayerObjId();
+        String communityId = reportOweFeeDtos.get(0).getCommunityId();
+
+        FeeDto feeDto = new FeeDto();
+        feeDto.setState(FeeDto.STATE_DOING);
+        feeDto.setPayerObjId(roomId);
+        feeDto.setCommunityId(communityId);
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+        if (ListUtil.isNull(feeDtos)) {
+            throw new CmdException("未包含费用");
+        }
+        List<FeeDto> tmpFeeDtos = new ArrayList<>();
+
+        for (FeeDto tmpFeeDto : feeDtos) {
+            try {
+                computeFeeSMOImpl.computeEveryOweFee(tmpFeeDto);//计算欠费金额
+                //如果金额为0 就排除
+                tmpFeeDto.setFeeTotalPrice(
+                        MoneyUtil.computePriceScale(
+                                tmpFeeDto.getFeeTotalPrice(),
+                                tmpFeeDto.getScale(),
+                                Integer.parseInt(tmpFeeDto.getDecimalPlace())
+                        )
+                );
+
+                if (tmpFeeDto.getFeeTotalPrice() != 0) {
+                    tmpFeeDtos.add(tmpFeeDto);
+                }
+            } catch (Exception e) {
+                logger.error("可能费用资料有问题导致算费失败", e);
+            }
+        }
+
+        context.setResponseEntity(ResultVo.createResponseEntity(tmpFeeDtos));
+    }
+}

+ 0 - 1
service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java

@@ -78,7 +78,6 @@ public class QueryOweFeeImpl implements IQueryOweFee {
 
         //查询费用信息arrearsEndTime
         // todo 这里考虑预付期的费用 所以查询全量再用费用
-        //feeDto.setArrearsEndTime(DateUtil.getCurrentDate());
         feeDto.setState(FeeDto.STATE_DOING);
         List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
 

+ 2 - 0
service-report/src/main/java/com/java110/report/dao/IReportOweFeeServiceDao.java

@@ -92,4 +92,6 @@ public interface IReportOweFeeServiceDao {
     List<Map> queryOweFeesByOwnerIds(Map info);
 
     List<Map> queryOweFeesByRoomIds(Map info);
+
+    List<Map> queryOwnerOweFee(Map info);
 }

+ 24 - 18
service-report/src/main/java/com/java110/report/dao/impl/ReportOweFeeServiceDaoImpl.java

@@ -51,9 +51,9 @@ public class ReportOweFeeServiceDaoImpl extends BaseServiceDao implements IRepor
     public List<Map> getReportOweFeeInfo(Map info) throws DAOException {
         logger.debug("查询欠费统计信息 入参 info : {}", info);
 
-        List<Map> businessReportOweFeeInfos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.getReportOweFeeInfo", info);
+        List<Map> infos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.getReportOweFeeInfo", info);
 
-        return businessReportOweFeeInfos;
+        return infos;
     }
 
 
@@ -100,21 +100,21 @@ public class ReportOweFeeServiceDaoImpl extends BaseServiceDao implements IRepor
     public int queryReportOweFeesCount(Map info) {
         logger.debug("查询欠费统计数据 入参 info : {}", info);
 
-        List<Map> businessReportOweFeeInfos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryReportOweFeesCount", info);
-        if (businessReportOweFeeInfos.size() < 1) {
+        List<Map> infos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryReportOweFeesCount", info);
+        if (infos.size() < 1) {
             return 0;
         }
 
-        return Integer.parseInt(businessReportOweFeeInfos.get(0).get("count").toString());
+        return Integer.parseInt(infos.get(0).get("count").toString());
     }
 
     @Override
     public List<Map> queryReportAllOweFees(Map info) {
         logger.debug("queryReportAllOweFees 入参 info : {}", info);
 
-        List<Map> businessReportOweFeeInfos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryReportAllOweFees", info);
+        List<Map> infos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryReportAllOweFees", info);
 
-        return businessReportOweFeeInfos;
+        return infos;
     }
 
     @Override
@@ -147,17 +147,17 @@ public class ReportOweFeeServiceDaoImpl extends BaseServiceDao implements IRepor
 
     @Override
     public double computeReportOweFeeTotalAmount(Map info) {
-        List<Map> businessReportOweFeeInfos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.computeReportOweFeeTotalAmount", info);
-        if (businessReportOweFeeInfos.size() < 1) {
+        List<Map> infos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.computeReportOweFeeTotalAmount", info);
+        if (infos.size() < 1) {
             return 0;
         }
-        return Double.parseDouble(businessReportOweFeeInfos.get(0).get("total").toString());
+        return Double.parseDouble(infos.get(0).get("total").toString());
     }
 
     @Override
     public List<Map> computeReportOweFeeItemAmount(Map info) {
-        List<Map> businessReportOweFeeInfos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.computeReportOweFeeItemAmount", info);
-        return businessReportOweFeeInfos;
+        List<Map> infos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.computeReportOweFeeItemAmount", info);
+        return infos;
     }
 
     @Override
@@ -171,20 +171,26 @@ public class ReportOweFeeServiceDaoImpl extends BaseServiceDao implements IRepor
 
     @Override
     public List<Map> queryInvalidOweFee(Map info) {
-        List<Map> businessReportOweFeeInfos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryInvalidOweFee", info);
-        return businessReportOweFeeInfos;
+        List<Map> infos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryInvalidOweFee", info);
+        return infos;
     }
 
     @Override
     public List<Map> queryOweFeesByOwnerIds(Map info) {
-        List<Map> businessReportOweFeeInfos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryOweFeesByOwnerIds", info);
-        return businessReportOweFeeInfos;
+        List<Map> infos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryOweFeesByOwnerIds", info);
+        return infos;
     }
 
     @Override
     public List<Map> queryOweFeesByRoomIds(Map info) {
-        List<Map> businessReportOweFeeInfos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryOweFeesByRoomIds", info);
-        return businessReportOweFeeInfos;
+        List<Map> infos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryOweFeesByRoomIds", info);
+        return infos;
+    }
+
+    @Override
+    public List<Map> queryOwnerOweFee(Map info) {
+        List<Map> infos = sqlSessionTemplate.selectList("reportOweFeeServiceDaoImpl.queryOwnerOweFee", info);
+        return infos;
     }
 
 

+ 18 - 2
service-report/src/main/java/com/java110/report/smo/impl/ReportOweFeeInnerServiceSMOImpl.java

@@ -59,7 +59,7 @@ public class ReportOweFeeInnerServiceSMOImpl extends BaseServiceSMO implements I
      * @param reportOweFeeDto 数据对象分享
      * @return 小区下的小区楼记录数
      */
-    public int deleteInvalidFee(@RequestBody Map reportOweFeeDto){
+    public int deleteInvalidFee(@RequestBody Map reportOweFeeDto) {
         return reportOweFeeServiceDaoImpl.deleteInvalidFee(reportOweFeeDto);
     }
 
@@ -73,6 +73,23 @@ public class ReportOweFeeInnerServiceSMOImpl extends BaseServiceSMO implements I
         return reportOweFeeServiceDaoImpl.queryOweFeesByRoomIds(info);
     }
 
+    @Override
+    public List<ReportOweFeeDto> queryOwnerOweFee(@RequestBody ReportOweFeeDto reportOweFeeDto) {
+        //校验是否传了 分页信息
+
+        int page = reportOweFeeDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            reportOweFeeDto.setPage((page - 1) * reportOweFeeDto.getRow());
+        }
+
+        List<ReportOweFeeDto> reportOweFees = BeanConvertUtil.covertBeanList(
+                reportOweFeeServiceDaoImpl.queryOwnerOweFee(BeanConvertUtil.beanCovertMap(reportOweFeeDto)),
+                ReportOweFeeDto.class);
+
+        return reportOweFees;
+    }
+
     @Override
     public List<ReportOweFeeDto> queryReportOweFees(@RequestBody ReportOweFeeDto reportOweFeeDto) {
 
@@ -138,7 +155,6 @@ public class ReportOweFeeInnerServiceSMOImpl extends BaseServiceSMO implements I
     }
 
 
-
     @Override
     public double computeReportOweFeeTotalAmount(@RequestBody ReportOweFeeDto reportOweFeeDto) {
         return reportOweFeeServiceDaoImpl.computeReportOweFeeTotalAmount(BeanConvertUtil.beanCovertMap(reportOweFeeDto));