peng
2026-03-24 73d124ce71e60685b19cc74a44e21dc080f7bfb6
调整
6个文件已修改
78 ■■■■■ 已修改文件
jyz-base-start/src/main/java/com/tievd/jyz/controller/DataTableController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jyz-base-start/src/main/java/com/tievd/jyz/entity/vo/DataStatisReqVo.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jyz-base-start/src/main/java/com/tievd/jyz/mapper/OilRecordMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jyz-base-start/src/main/java/com/tievd/jyz/service/IOilRecordService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jyz-base-start/src/main/java/com/tievd/jyz/service/impl/OilRecordServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jyz-base-start/src/main/resources/xml/OilRecordMapper.xml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jyz-base-start/src/main/java/com/tievd/jyz/controller/DataTableController.java
@@ -66,6 +66,15 @@
        StatDataTableVo total = oilRecordService.statisTotal(param);
        return Result.ok(total);
    }
    @PostMapping("/statisOilFreqCompare")
    @Operation(summary = "活动前后车辆加油频次统计")
    public Result<?> statisOilFreqCompare(@RequestBody DataStatisReqVo param) {
        LoginUser user = SystemContextUtil.currentLoginUser();
        param.setOrgCodeIfnull(user.getOrgCode());
        List<Map> list = oilRecordService.statisOilFreqCompare(param);
        return Result.ok(list);
    }
    
    @GetMapping("/clientTop")
    @Operation(summary = "客户类型top10")
jyz-base-start/src/main/java/com/tievd/jyz/entity/vo/DataStatisReqVo.java
@@ -28,6 +28,18 @@
    @Schema(description = "结束时间")
    private String endTime;
    @Schema(description = "活动前开始时间")
    private String beforeStartTime;
    @Schema(description = "活动前结束时间")
    private String beforeEndTime;
    @Schema(description = "活动后开始时间")
    private String afterStartTime;
    @Schema(description = "活动后结束时间")
    private String afterEndTime;
    
    public void setOrgCodeIfnull(String orgCode) {
        if (this.orgCode == null || this.orgCode.equals("")){
jyz-base-start/src/main/java/com/tievd/jyz/mapper/OilRecordMapper.java
@@ -100,6 +100,8 @@
    List<Map> statisOrgTopOil(DataStatisReqVo param);
    
    List<Map> statisOrgTopVolume(DataStatisReqVo param);
    List<Map> statisOilFreqCompare(DataStatisReqVo param);
    
    List<StatDataTableVo> statFanByModel(DataStatisReqVo param);
    
jyz-base-start/src/main/java/com/tievd/jyz/service/IOilRecordService.java
@@ -40,6 +40,8 @@
    List<Map> statisOrgTopOil(DataStatisReqVo param);
    
    List<Map> statisOrgTopVolume(DataStatisReqVo param);
    List<Map> statisOilFreqCompare(DataStatisReqVo param);
    
    JSONObject statFan(DataStatisReqVo param);
    
jyz-base-start/src/main/java/com/tievd/jyz/service/impl/OilRecordServiceImpl.java
@@ -154,6 +154,11 @@
    public List<Map> statisOrgTopVolume(DataStatisReqVo param) {
        return oilRecordMapper.statisOrgTopVolume(param);
    }
    @Override
    public List<Map> statisOilFreqCompare(DataStatisReqVo param) {
        return oilRecordMapper.statisOilFreqCompare(param);
    }
    
    @Override
    public JSONObject statFan(DataStatisReqVo param) {
jyz-base-start/src/main/resources/xml/OilRecordMapper.xml
@@ -90,6 +90,22 @@
            <if test="orgCode != null and orgCode != ''">and org_code like concat(#{orgCode}, '%')</if>
        </where>
    </sql>
    <sql id="statBeforeOilFreqCondition">
        <where>
            and behavior = 1
            <if test="beforeStartTime != null and beforeStartTime != ''">and start_time >= #{beforeStartTime}</if>
            <if test="beforeEndTime != null and beforeEndTime != ''">and start_time &lt; #{beforeEndTime}</if>
            <if test="orgCode != null and orgCode != ''">and org_code like concat(#{orgCode}, '%')</if>
        </where>
    </sql>
    <sql id="statAfterOilFreqCondition">
        <where>
            and behavior = 1
            <if test="afterStartTime != null and afterStartTime != ''">and start_time >= #{afterStartTime}</if>
            <if test="afterEndTime != null and afterEndTime != ''">and start_time &lt; #{afterEndTime}</if>
            <if test="orgCode != null and orgCode != ''">and org_code like concat(#{orgCode}, '%')</if>
        </where>
    </sql>
    <select id="statisTotal" parameterType="com.tievd.jyz.entity.vo.DataStatisReqVo" resultType="com.tievd.jyz.entity.vo.StatDataTableVo">
        select
        *,
@@ -183,6 +199,38 @@
        GROUP BY org_code
        limit 10
    </select>
    <select id="statisOilFreqCompare" resultType="java.util.Map" parameterType="com.tievd.jyz.entity.vo.DataStatisReqVo">
        select
        l.licenseNum licenseNum,
        ifnull(b.beforeOilCount, 0) beforeOilCount,
        ifnull(a.afterOilCount, 0) afterOilCount,
        ifnull(a.afterOilCount, 0) - ifnull(b.beforeOilCount, 0) diffOilCount,
        case
            when ifnull(b.beforeOilCount, 0) = 0 then null
            else round((ifnull(a.afterOilCount, 0) - ifnull(b.beforeOilCount, 0)) * 100 / ifnull(b.beforeOilCount, 0), 2)
        end diffRate
        from (
            select license_num licenseNum from t_oil_record
            <include refid="statBeforeOilFreqCondition"/>
            union
            select license_num licenseNum from t_oil_record
            <include refid="statAfterOilFreqCondition"/>
        ) l
        left join (
            select license_num licenseNum, count(1) beforeOilCount
            from t_oil_record
            <include refid="statBeforeOilFreqCondition"/>
            group by license_num
        ) b on l.licenseNum = b.licenseNum
        left join (
            select license_num licenseNum, count(1) afterOilCount
            from t_oil_record
            <include refid="statAfterOilFreqCondition"/>
            group by license_num
        ) a on l.licenseNum = a.licenseNum
        order by afterOilCount desc, beforeOilCount desc, licenseNum asc
        limit 200
    </select>
    <select id="statFanByModel" resultType="com.tievd.jyz.entity.vo.StatDataTableVo" parameterType="com.tievd.jyz.entity.vo.DataStatisReqVo">
        select
        count(if(behavior=1,1,null)) oilCount,