Browse Source

算费调整以及抄表统计接口增加

lihaoli 11 months ago
parent
commit
03d8f53c14

+ 46 - 2
collect-fees/collect-fees-api/src/main/java/com/tofly/feesapi/sfgl/controller/ZnbCsjsLogController.java

@@ -1,8 +1,24 @@
 package com.tofly.feesapi.sfgl.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.tofly.common.core.entity.ResultRespone;
+import com.tofly.feesapi.common.entity.dto.PageDto;
+import com.tofly.feesapi.common.entity.vo.PageResult;
+import com.tofly.feesapi.sfgl.entity.ZnbCsjsLog;
+import com.tofly.feesapi.sfgl.entity.dto.ZnbCsjsFilter;
+import com.tofly.feesapi.sfgl.entity.dto.ZnbCsjsListFilter;
+import com.tofly.feesapi.sfgl.entity.vo.ZnbCsjsSelect;
+import com.tofly.feesapi.sfgl.service.IZnbCsjsLogService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  * 智能表抄收结算明细 前端控制器
@@ -11,8 +27,36 @@ import org.springframework.web.bind.annotation.RestController;
  * @author decai
  * @since 2024-04-10
  */
-//@RestController
-//@RequestMapping("/api/sfgl/znbCsjsLog")
+@RestController
+@AllArgsConstructor
+@RequestMapping("/api/sfgl/znbCsjsLog")
+@Api(tags = "智能表结算")
 public class ZnbCsjsLogController {
 
+    private final IZnbCsjsLogService znbCsjsLogService;
+
+    /**
+     * 智能表抄表统计列表
+     *
+     * @param pageDto 分页对象
+     * @param filter  智能表抄表统计列表
+     * @return
+     */
+    @GetMapping("/page")
+    @ApiOperation(value = "智能表抄表统计列表")
+    public ResultRespone<PageResult<ZnbCsjsSelect>> getPage(@ModelAttribute PageDto pageDto, @ModelAttribute ZnbCsjsFilter filter) {
+        return ResultRespone.success(znbCsjsLogService.getPage(pageDto, filter));
+    }
+
+    /**
+     * 用户用水明细
+     *
+     * @param filter 智能表抄用户用水明细表参数DTO
+     * @return
+     */
+    @GetMapping("/yhysmx")
+    @ApiOperation(value = "用户用水明细")
+    public ResultRespone<List<ZnbCsjsLog>> getYhysmxList(@ModelAttribute ZnbCsjsListFilter filter) {
+        return ResultRespone.success(znbCsjsLogService.getYhysmxList(filter));
+    }
 }

+ 28 - 0
collect-fees/collect-fees-api/src/main/java/com/tofly/feesapi/sfgl/entity/dto/ZnbCsjsFilter.java

@@ -0,0 +1,28 @@
+package com.tofly.feesapi.sfgl.entity.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lihaoli
+ * @date 2024/4/28
+ */
+@Data
+@ApiModel("智能表抄表统计列表参数DTO")
+public class ZnbCsjsFilter {
+    @ApiModelProperty(value = "关键字(用户编号、用户姓名、用户地址、联系电话)")
+    private String searchText;
+
+    @ApiModelProperty(value = "所属公司编码")
+    private String ssgs;
+
+    @ApiModelProperty(value = "所属抄表片区编码")
+    private String sscbpq;
+
+    @ApiModelProperty("所属抄表本(册)编码")
+    private String sscbb;
+
+    @ApiModelProperty("财务日期")
+    private String cwrq;
+}

+ 22 - 0
collect-fees/collect-fees-api/src/main/java/com/tofly/feesapi/sfgl/entity/dto/ZnbCsjsListFilter.java

@@ -0,0 +1,22 @@
+package com.tofly.feesapi.sfgl.entity.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lihaoli
+ * @date 2024/4/28
+ */
+@Data
+@ApiModel("智能表抄用户用水明细表参数DTO")
+public class ZnbCsjsListFilter {
+    @ApiModelProperty("财务日期")
+    private String cwrq;
+
+    @ApiModelProperty("用户编号")
+    private String yhbh;
+
+    @ApiModelProperty("抄表卡ID")
+    private String cbkid;
+}

+ 24 - 3
collect-fees/collect-fees-api/src/main/java/com/tofly/feesapi/sfgl/entity/vo/SfJsJg.java

@@ -245,6 +245,16 @@ public class SfJsJg {
     @ApiModelProperty(value = "垃圾费4")
     private BigDecimal ljf3;
 
+    @ApiModelProperty(value = "水价阶梯标志(0为非阶梯,1为阶梯)")
+    private String sjjtbz;
+    @ApiModelProperty(value = "水价阶梯标志1(0为非阶梯,1为阶梯)")
+    private String sjjtbz1;
+    @ApiModelProperty(value = "水价阶梯标志2(0为非阶梯,1为阶梯)")
+    private String sjjtbz2;
+    @ApiModelProperty(value = "水价阶梯标志3(0为非阶梯,1为阶梯)")
+    private String sjjtbz3;
+
+
     @ApiModelProperty(value = "阶梯1水量", position = 151)
     private BigDecimal jt1sl;
 
@@ -438,6 +448,7 @@ public class SfJsJg {
 
     /**
      * 计算水量、水费增量
+     *
      * @param scJg 上次计算结果
      */
     public void subtract(SfJsJg scJg) {
@@ -487,8 +498,19 @@ public class SfJsJg {
         try {
             for (int i = 0; i < 3; i++) {
                 BigDecimal zsf = BigDecimal.ZERO;
-                for (int j = 1; j < 5; j++) {
-                    String name = i == 0 ? String.format("jt%ssf", j) : String.format("sj%sJt%ssf", i, j);
+                String sjjtbzname = i == 0 ? String.format("sjjtbz") : String.format("sjjtbz", i);
+                if (PropertyUtils.getProperty(this, sjjtbzname).equals("1")){
+                    for (int j = 1; j < 5; j++) {
+                        String name = i == 0 ? String.format("jt%ssf", j) : String.format("sj%sJt%ssf", i, j);
+                        BigDecimal sf = (BigDecimal) PropertyUtils.getProperty(this, name);
+                        if (sf != null) {
+                            zsf = zsf.add(sf);
+                        }
+                    }
+                }
+                else
+                {
+                    String name = i == 0 ? "sf" : "sf" + i;
                     BigDecimal sf = (BigDecimal) PropertyUtils.getProperty(this, name);
                     if (sf != null) {
                         zsf = zsf.add(sf);
@@ -497,7 +519,6 @@ public class SfJsJg {
                 String name = i == 0 ? "sf" : "sf" + i;
                 PropertyUtils.setProperty(this, name, zsf);
             }
-
             BigDecimal yssl0 = BigDecimal.ZERO;
             for (int i = 0; i < 4; i++) {
                 String name = i == 0 ? "sl" : "sl" + i;

+ 47 - 0
collect-fees/collect-fees-api/src/main/java/com/tofly/feesapi/sfgl/entity/vo/ZnbCsjsSelect.java

@@ -0,0 +1,47 @@
+package com.tofly.feesapi.sfgl.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.tofly.feesapi.common.constant.FmztEnum;
+import com.tofly.feesapi.common.constant.TbbzEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author lihaoli
+ * @date 2024/4/28
+ */
+@Getter
+@Setter
+@ApiModel(value = "智能表统计水量")
+public class ZnbCsjsSelect {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "用户编号", position = 1)
+    private String yhbh;
+
+    @ApiModelProperty(value = "用户姓名", position = 2)
+    private String yhxm;
+
+    @ApiModelProperty(value = "用户地址", position = 3, example = "13-1-8(29号)")
+    private String yhdz;
+
+    @ApiModelProperty(value = "所属抄表册名称", position = 4)
+    private String sscbbmc;
+
+    @ApiModelProperty(value = "所属抄表片区名称", position = 5)
+    private String sscbpqmc;
+
+    @ApiModelProperty(value = "联系电话", position = 6)
+    private String lxdh;
+
+    @ApiModelProperty(value = "水表编号", position = 7)
+    private String sbbh;
+
+    @ApiModelProperty(value = "月用水量", position = 8)
+    private String yysl;
+}

+ 9 - 0
collect-fees/collect-fees-api/src/main/java/com/tofly/feesapi/sfgl/mapper/ZnbCsjsLogMapper.java

@@ -1,7 +1,14 @@
 package com.tofly.feesapi.sfgl.mapper;
 
+import com.tofly.feesapi.common.entity.dto.PageDto;
 import com.tofly.feesapi.sfgl.entity.ZnbCsjsLog;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.tofly.feesapi.sfgl.entity.dto.ZnbCsjsFilter;
+import com.tofly.feesapi.sfgl.entity.dto.ZnbCsjsListFilter;
+import com.tofly.feesapi.sfgl.entity.vo.ZnbCsjsSelect;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +19,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2024-04-10
  */
 public interface ZnbCsjsLogMapper extends BaseMapper<ZnbCsjsLog> {
+    PageDto<ZnbCsjsSelect> getPage(PageDto pageDto, @Param("filter") ZnbCsjsFilter filter);
 
+    List<ZnbCsjsLog> getYhysmxList(@Param("filter") ZnbCsjsListFilter filter);
 }

+ 11 - 0
collect-fees/collect-fees-api/src/main/java/com/tofly/feesapi/sfgl/service/IZnbCsjsLogService.java

@@ -1,11 +1,17 @@
 package com.tofly.feesapi.sfgl.service;
 
 import com.tofly.feesapi.bjgl.entity.YhCbkxx;
+import com.tofly.feesapi.common.entity.dto.PageDto;
+import com.tofly.feesapi.common.entity.vo.PageResult;
 import com.tofly.feesapi.sfgl.entity.ZnbCsjsLog;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.tofly.feesapi.sfgl.entity.dto.ZnbCsjsFilter;
+import com.tofly.feesapi.sfgl.entity.dto.ZnbCsjsListFilter;
+import com.tofly.feesapi.sfgl.entity.vo.ZnbCsjsSelect;
 import com.tofly.feesapi.yhgl.entity.YhKhjbxx;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * <p>
@@ -31,4 +37,9 @@ public interface IZnbCsjsLogService extends IService<ZnbCsjsLog> {
     ZnbCsjsLog csjs(YhCbkxx cbkxx, YhKhjbxx khjbxx, String cwrq, BigDecimal scds, BigDecimal bcds, String cbLogId);
 
     ZnbCsjsLog getByCbLogId(String cbLogId);
+
+    PageResult<ZnbCsjsSelect> getPage(PageDto pageDto, ZnbCsjsFilter filter);
+
+    List<ZnbCsjsLog> getYhysmxList(ZnbCsjsListFilter filter);
+
 }

+ 21 - 17
collect-fees/collect-fees-api/src/main/java/com/tofly/feesapi/sfgl/service/impl/YyQfmxServiceImpl.java

@@ -502,7 +502,9 @@ public class YyQfmxServiceImpl extends ServiceImpl<YyQfmxMapper, YyQfmx> impleme
             map.put(String.format("%s%s%s", prefix, "sl", suffix), jtmx.getSl());
             map.put(String.format("%s%s%s", prefix, "sj", suffix), jtmx.getSj());
             map.put(String.format("%s%s%s", prefix, "sf", suffix), jtmx.getSf());
+            map.put(String.format("%s%s", "sjjtbz", suffix), "0");
         } else {//阶梯水价
+            map.put(String.format("%s%s", "sjjtbz", suffix), "1");
             Sjmx.Jtmx jtmx1 = sjmx.getJtmx1();
             BigDecimal zsl = BigDecimal.ZERO;
             BigDecimal zsf = BigDecimal.ZERO;
@@ -604,8 +606,10 @@ public class YyQfmxServiceImpl extends ServiceImpl<YyQfmxMapper, YyQfmx> impleme
                         (u1, u2) -> u1,
                         LinkedHashMap::new));//用户实际水量
         if (cblrMap.isEmpty()) return 0;
-        List<YhCbkxx> cbkxxes = cbkxxService.lambdaQuery().select(YhCbkxx::getYhbh, YhCbkxx::getCbkid,
-                        YhCbkxx::getYbdjbz, YhCbkxx::getSjbm,
+        List<YhCbkxx> cbkxxes = cbkxxService.lambdaQuery().select(
+                        YhCbkxx::getYhbh, YhCbkxx::getCbkid,
+                        YhCbkxx::getYbdjbz,
+                        YhCbkxx::getSjbm, YhCbkxx::getSlbl,
                         YhCbkxx::getSjbm1, YhCbkxx::getSlbl1,
                         YhCbkxx::getSjbm2, YhCbkxx::getSlbl2,
                         YhCbkxx::getSjbm3, YhCbkxx::getSlbl3,
@@ -744,12 +748,6 @@ public class YyQfmxServiceImpl extends ServiceImpl<YyQfmxMapper, YyQfmx> impleme
         TreeMap<String, String> slMap = new TreeMap<>();
 
         String cbkid = cbkxx.getCbkid();
-        String sjbm1 = cbkxx.getSjbm1();
-        BigDecimal slbl1 = cbkxx.getSlbl1();
-        String sjbm2 = cbkxx.getSjbm2();
-        BigDecimal slbl2 = cbkxx.getSlbl2();
-        String sjbm3 = cbkxx.getSjbm3();
-        BigDecimal slbl3 = cbkxx.getSlbl3();
         String ybdjbz = cbkxx.getYbdjbz();
         if (StringUtils.isBlank(ybdjbz) || "0".equals(ybdjbz)) {
             String sjbm = cbkxx.getSjbm();
@@ -758,13 +756,19 @@ public class YyQfmxServiceImpl extends ServiceImpl<YyQfmxMapper, YyQfmx> impleme
             slMap.put("L0", String.format("%s_%s", sjbm, ljsl));
             return slMap;
         } else {
+            String sjbm1 = cbkxx.getSjbm();
+            String sjbm2 = cbkxx.getSjbm1();
+            String sjbm3 = cbkxx.getSjbm2();
+            BigDecimal slbl1 = cbkxx.getSlbl();
+            BigDecimal slbl2 = cbkxx.getSlbl1();
+            BigDecimal slbl3 = cbkxx.getSlbl2();
             //定量
             BigDecimal sl1 = null;
             BigDecimal sl2 = null;
             BigDecimal sl3 = null;
             //BigDecimal sl4 = null;
             BigDecimal sysl = ljsl;//剩余水量
-            if (slbl1 != null && slbl1.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotBlank(sjbm1)) {
+            if (slbl1 != null && slbl1.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotEmpty(sjbm1)) {
                 if (slbl1.compareTo(BigDecimal.ONE) > 0) {//按量
                     if (sysl.compareTo(slbl1) >= 0) {
                         sl1 = slbl1;
@@ -778,7 +782,7 @@ public class YyQfmxServiceImpl extends ServiceImpl<YyQfmxMapper, YyQfmx> impleme
 
             }
 
-            if (slbl2 != null && slbl2.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotBlank(sjbm2)) {
+            if (slbl2 != null && slbl2.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotEmpty(sjbm2)) {
                 if (slbl2.compareTo(BigDecimal.ONE) > 0) {//按量
                     if (sysl.compareTo(slbl2) >= 0) {
                         sl2 = slbl2;
@@ -791,7 +795,7 @@ public class YyQfmxServiceImpl extends ServiceImpl<YyQfmxMapper, YyQfmx> impleme
                 }
             }
 
-            if (slbl3 != null && slbl3.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotBlank(sjbm3)) {
+            if (slbl3 != null && slbl3.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotEmpty(sjbm3)) {
                 if (slbl3.compareTo(BigDecimal.ONE) > 0) {//按量
                     if (sysl.compareTo(slbl3) >= 0) {
                         sl3 = slbl3;
@@ -805,7 +809,7 @@ public class YyQfmxServiceImpl extends ServiceImpl<YyQfmxMapper, YyQfmx> impleme
             }
 
             BigDecimal sysl2 = sysl;//按量以外的剩余水量
-            if (slbl1 != null && slbl1.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotBlank(sjbm1)) {
+            if (slbl1 != null && slbl1.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotEmpty(sjbm1)) {
                 if (slbl1.compareTo(BigDecimal.ONE) <= 0) {//按比例
                     sl1 = sysl2.multiply(slbl1);
                     sysl = sysl.subtract(sl1);
@@ -813,7 +817,7 @@ public class YyQfmxServiceImpl extends ServiceImpl<YyQfmxMapper, YyQfmx> impleme
                 }
             }
 
-            if (slbl2 != null && slbl2.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotBlank(sjbm2)) {
+            if (slbl2 != null && slbl2.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotEmpty(sjbm2)) {
                 if (slbl2.compareTo(BigDecimal.ONE) <= 0) {//按比例
                     sl2 = sysl2.multiply(slbl2);
                     sysl = sysl.subtract(sl2);
@@ -821,7 +825,7 @@ public class YyQfmxServiceImpl extends ServiceImpl<YyQfmxMapper, YyQfmx> impleme
                 }
             }
 
-            if (slbl3 != null && slbl3.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotBlank(sjbm3)) {
+            if (slbl3 != null && slbl3.compareTo(BigDecimal.ZERO) > 0 && StringUtils.isNotEmpty(sjbm3)) {
                 if (slbl3.compareTo(BigDecimal.ONE) <= 0) {//按比例
                     sl3 = sysl2.multiply(slbl3);
                     sysl = sysl.subtract(sl3);
@@ -829,18 +833,18 @@ public class YyQfmxServiceImpl extends ServiceImpl<YyQfmxMapper, YyQfmx> impleme
                 }
             }
 
-            if (slbl1 != null && slbl1.compareTo(BigDecimal.ZERO) == 0) {
+            if (slbl1 != null && slbl1.compareTo(BigDecimal.ZERO) == 0 && StringUtils.isNotEmpty(sjbm1)) {
                 sl1 = sysl;
                 sysl = BigDecimal.ZERO;
                 slMap.put("L1", String.format("%s_%s", sjbm1, sl1));
 
             }
-            if (slbl2 != null && slbl2.compareTo(BigDecimal.ZERO) == 0) {
+            if (slbl2 != null && slbl2.compareTo(BigDecimal.ZERO) == 0 && StringUtils.isNotEmpty(sjbm2)) {
                 sl2 = sysl;
                 sysl = BigDecimal.ZERO;
                 slMap.put("L2", String.format("%s_%s", sjbm2, sl2));
             }
-            if (slbl3 != null && slbl3.compareTo(BigDecimal.ZERO) == 0) {
+            if (slbl3 != null && slbl3.compareTo(BigDecimal.ZERO) == 0 && StringUtils.isNotEmpty(sjbm3)) {
                 sl3 = sysl;
                 sysl = BigDecimal.ZERO;
                 slMap.put("L3", String.format("%s_%s", sjbm3, sl3));

+ 19 - 0
collect-fees/collect-fees-api/src/main/java/com/tofly/feesapi/sfgl/service/impl/ZnbCsjsLogServiceImpl.java

@@ -3,8 +3,13 @@ package com.tofly.feesapi.sfgl.service.impl;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.tofly.feesapi.bjgl.entity.YhCbkxx;
+import com.tofly.feesapi.common.entity.dto.PageDto;
+import com.tofly.feesapi.common.entity.vo.PageResult;
 import com.tofly.feesapi.sfgl.entity.ZnbCsjsLog;
+import com.tofly.feesapi.sfgl.entity.dto.ZnbCsjsFilter;
+import com.tofly.feesapi.sfgl.entity.dto.ZnbCsjsListFilter;
 import com.tofly.feesapi.sfgl.entity.vo.SfJsJg;
+import com.tofly.feesapi.sfgl.entity.vo.ZnbCsjsSelect;
 import com.tofly.feesapi.sfgl.mapper.ZnbCsjsLogMapper;
 import com.tofly.feesapi.sfgl.service.IZnbCsjsLogService;
 import com.tofly.feesapi.sfgl.service.YyQfmxService;
@@ -18,6 +23,7 @@ import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
+import java.util.List;
 
 /**
  * <p>
@@ -64,4 +70,17 @@ public class ZnbCsjsLogServiceImpl extends ServiceImpl<ZnbCsjsLogMapper, ZnbCsjs
     public ZnbCsjsLog getByCbLogId(String cbLogId) {
         return this.getOne(Wrappers.lambdaQuery(ZnbCsjsLog.class).eq(ZnbCsjsLog::getCbLogId, cbLogId));
     }
+
+    @Override
+    public PageResult<ZnbCsjsSelect> getPage(PageDto pageDto, ZnbCsjsFilter filter) {
+        PageDto<ZnbCsjsSelect> page = this.baseMapper.getPage(pageDto, filter);
+        PageResult<ZnbCsjsSelect> pageResult = page.toVo();
+        return pageResult;
+    }
+
+    @Override
+    public List<ZnbCsjsLog> getYhysmxList(ZnbCsjsListFilter filter) {
+        List<ZnbCsjsLog> list = this.baseMapper.getYhysmxList(filter);
+        return list;
+    }
 }

+ 54 - 0
collect-fees/collect-fees-api/src/main/resources/mapper/sfgl/ZnbCsjsLogMapper.xml

@@ -1,5 +1,59 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.tofly.feesapi.sfgl.mapper.ZnbCsjsLogMapper">
+    <!--自定义智能表档案分页查询 -->
+    <select id="getPage" resultType="com.tofly.feesapi.sfgl.entity.vo.ZnbCsjsSelect">
+        SELECT a.yhbh, a.yhxm, a.yhdz,a.lxdh,
+        a.bjbh as sbbh,l.cwrq,l.yysl,
+        f.cbbmc AS sscbbmc,
+        g.cbpqmc AS sscbpqmc
+        FROM znb_yhda a
+        LEFT JOIN (select yhbh,cbkid,cwrq,sum(nvl(yssl,0))yysl from znb_csjs_log
+        group by cwrq,cbkid,yhbh) l ON a.yhbh=l.yhbh
+        LEFT JOIN bm_cbb f ON a.sscbb = f.cbbbm
+        LEFT JOIN bm_cbpq g ON a.sspq = g.cbpqbm
+        WHERE 1=1
+        <!--模糊查询 -->
+        <if test="filter.searchText!=null">
+            AND (c.yhbh like '%${filter.searchText}%'
+            OR c.yhxm like '%${filter.searchText}%'
+            OR c.yhdz like '%${filter.searchText}%'
+            OR c.lxdh like '%${filter.searchText}%')
+        </if>
+        <!--所属公司-->
+        <if test="filter.ssgs!=null">
+            AND c.ssgs=#{filter.ssgs}
+        </if>
+        <!--所属片区-->
+        <if test="filter.sscbpq!=null">
+            AND c.sscbpq=#{filter.sscbpq}
+        </if>
+        <!--所属抄表本-->
+        <if test="filter.sscbb!=null">
+            AND c.sscbb=#{filter.sscbb}
+        </if>
+        <if test="filter.cwrq!=null">
+            AND l.cwrq=#{filter.cwrq}
+        </if>
+    </select>
+    <!--    select yhbh,cbkid,cwrq,sum(nvl(BCDS,0)-nvl(SCDS,0))yysl from znb_csjs_log-->
+    <!--    where cwrq in ('202402','202403','202404')-->
+    <!--    group by cwrq,cbkid,yhbh-->
+    <select id="getYhysmxList" resultType="com.tofly.feesapi.sfgl.entity.ZnbCsjsLog">
+        select * from (
+        select a.*,row_number() over (partition by cbkid,cwrq,to_char(jsrq,'yyyy-mm-dd') order by jsrq desc) as rn from
+        znb_csjs_log a
+        WHERE 1=1
+        <if test="filter.cwrq!=null">
+            AND a.cwrq=#{filter.cwrq}
+        </if>
+        <if test="filter.yhbh!=null">
+            AND a.yhbh=#{filter.yhbh}
+        </if>
+        <if test="filter.cbkid!=null">
+            AND a.cbkid=#{filter.cbkid}
+        </if>
+        ) where rn = 1
+    </select>
 
 </mapper>