Bladeren bron

feat(property): 新增欠费信息查询功能

- 在控制器中添加获取欠费信息的接口
- 扩展Mapper接口,增加欠费数据查询方法
- 更新XML映射文件,实现欠费信息的SQL查询逻辑
-优化房屋列表查询条件,支持楼宇名称模糊匹配- 在服务层添加欠费信息查询接口及实现
林仔 7 maanden geleden
bovenliggende
commit
b01cee0513

+ 5 - 0
src/main/java/com/zksy/controller/property/ASimplifiedHouseInfoController.java

@@ -68,4 +68,9 @@ public class ASimplifiedHouseInfoController {
         return AjaxResult.success(service.getHouseDetailInfo(houseId));
     }
 
+    @GetMapping("/getArrears")
+    @ApiOperation(value = "欠费信息")
+    public AjaxResult getArrears(){
+        return AjaxResult.success(service.getArrears());
+    }
 }

+ 2 - 0
src/main/java/com/zksy/property/mapper/ASimplifiedHouseInfoMapper.java

@@ -7,6 +7,7 @@ import com.zksy.property.domain.vo.ASimplifiedHouseInfoVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
 * @author Administrator
@@ -17,6 +18,7 @@ import java.util.List;
 public interface ASimplifiedHouseInfoMapper extends BaseMapper<ASimplifiedHouseInfo> {
     public List<ASimplifiedHouseInfoVo> getListPage(@Param("entity") ASimplifiedHouseInfoDto entity,Integer offset,Integer limit,String sortClause);
     Long getListPageTotal(@Param("entity") ASimplifiedHouseInfoDto entity);
+    List<Map<String,Object>> getArrears();
 }
 
 

+ 2 - 0
src/main/java/com/zksy/property/service/ASimplifiedHouseInfoService.java

@@ -8,6 +8,7 @@ import com.zksy.property.domain.vo.ASimplifiedHouseInfoVo;
 import com.zksy.property.domain.vo.HouseInfoVo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
 * @author Administrator
@@ -22,4 +23,5 @@ public interface ASimplifiedHouseInfoService extends IService<ASimplifiedHouseIn
     HouseInfoVo getHouseDetailInfo(String simplifiedHouseId);
 
     boolean removeBatchId(String[] ids);
+    List<Map<String,Object>> getArrears();
 }

+ 6 - 0
src/main/java/com/zksy/property/service/impl/ASimplifiedHouseInfoServiceImpl.java

@@ -17,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -173,6 +174,11 @@ public class ASimplifiedHouseInfoServiceImpl extends ServiceImpl<ASimplifiedHous
         return false;
     }
 
+    @Override
+    public List<Map<String, Object>> getArrears() {
+        return houseInfoMapper.getArrears();
+    }
+
     // 构建房屋详细信息
     private HouseInfoVo.HouseInfo buildHouseInfo(ASimplifiedHouseInfo houseInfo, AHouseInfoDetail detail) {
         HouseInfoVo.HouseInfo info = new HouseInfoVo.HouseInfo();

+ 34 - 1
src/main/resources/mapper/property/ASimplifiedHouseInfoMapper.xml

@@ -32,7 +32,7 @@
                 AND a.asset_type = #{entity.assetType}
             </if>
             <if test="entity.building != null and entity.building != ''">
-                AND a.building = #{entity.building}
+                AND a.building LIKE CONCAT(#{entity.building}, '%')
             </if>
             <if test="entity.floor != null and entity.floor != ''">
                 AND a.floor LIKE CONCAT(#{entity.floor}, '%')
@@ -90,4 +90,37 @@
             </if>
         </where>
     </select>
+    <select id="getArrears" resultType="java.util.Map">
+        SELECT
+        h.id AS id,
+        h.house_name AS houseName,
+        h.address AS address,
+        c.contract_number AS contractNumber,
+        c.contract_expiration_date AS contractExpirationDate,
+        r.end_date AS endDate,
+        NOW() AS nowAndDate
+        FROM
+        a_simplified_house_info h
+        JOIN
+        a_contract_info c ON h.id = c.simplified_house_id
+        JOIN (
+        -- 子查询:对每个合同,取最新一条“开始时间、结束时间非空”的收据
+        SELECT
+        contract_id,
+        end_date,
+        -- 按生成时间倒序,取第一条
+        ROW_NUMBER() OVER (PARTITION BY contract_id ORDER BY generation_date DESC) AS rn
+        FROM
+        a_receipt_info
+        WHERE
+        start_date IS NOT NULL
+        AND end_date IS NOT NULL
+        ) r ON c.id = r.contract_id AND r.rn = 1
+        WHERE
+        h.status = '已租'
+        AND c.contract_status = '有效'
+        AND r.end_date &lt; c.contract_expiration_date AND r.end_date &lt; NOW()
+        ORDER BY
+        h.id;
+    </select>
 </mapper>