Commit 1cb93cac by MMF

MMF 2026-04-17 项目组帮扶统计分析

parent c2258864
...@@ -2,6 +2,7 @@ package com.qianhe.zqbf.controller; ...@@ -2,6 +2,7 @@ package com.qianhe.zqbf.controller;
import com.qianhe.common.core.controller.BaseController; import com.qianhe.common.core.controller.BaseController;
import com.qianhe.common.core.domain.AjaxResult; import com.qianhe.common.core.domain.AjaxResult;
import com.qianhe.common.core.page.TableDataInfo;
import com.qianhe.common.exception.BusinessException; import com.qianhe.common.exception.BusinessException;
import com.qianhe.zqbf.domain.ZqczTjfxQuery; import com.qianhe.zqbf.domain.ZqczTjfxQuery;
import com.qianhe.zqbf.service.ZqbfXmzTjfxService; import com.qianhe.zqbf.service.ZqbfXmzTjfxService;
...@@ -65,4 +66,28 @@ public class ZqbfXmzTjfxController extends BaseController { ...@@ -65,4 +66,28 @@ public class ZqbfXmzTjfxController extends BaseController {
return error(e.getMessage()); return error(e.getMessage());
} }
} }
/**
* 帮扶专家统计排名
*/
@GetMapping("/bfzjtjpm")
public TableDataInfo bfzjtjpm(ZqczTjfxQuery zqczTjfxQuery){
startPage();
return getDataTable(zqbfXmzTjfxService.bfzjtjpm(zqczTjfxQuery));
}
/**
* 帮扶专家统计排名 Echarts
*/
@GetMapping("/bfzjtjpm_echarts")
public AjaxResult bfzjtjpm_echarts(ZqczTjfxQuery zqczTjfxQuery){
try {
return success(zqbfXmzTjfxService.bfzjtjpm_echarts(zqczTjfxQuery));
} catch (BusinessException e) {
log.warn("最强帮扶-统计分析-帮扶项目统计排名-查询失败:" + e.getMessage());
return warn(e.getMessage());
} catch (Exception e) {
log.error(e.getMessage());
return error(e.getMessage());
}
}
} }
package com.qianhe.zqbf.domain;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BfzjtjpmVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 单位ID
*/
private Long dwid;
/**
* 单位名称
*/
private String dwmc;
/**
* 专家ID
*/
private Long zjid;
/**
* 专家名称
*/
private String zjmc;
/**
* 专家祖籍
*/
private String zjzj;
/**
* 帮扶次数
*/
private Integer bfcs;
/**
* 项目ID
*/
private String xmids;
/**
* 项目名称
*/
private String xmmcs;
}
package com.qianhe.zqbf.mapper; package com.qianhe.zqbf.mapper;
import com.qianhe.zqbf.domain.BfxmtjpmVo; import com.qianhe.zqbf.domain.*;
import com.qianhe.zqbf.domain.BfxmtjzbVo;
import com.qianhe.zqbf.domain.GlqsbslVo;
import com.qianhe.zqbf.domain.ZqczTjfxQuery;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
...@@ -25,4 +22,9 @@ public interface ZqbfXmzTjfxMapper { ...@@ -25,4 +22,9 @@ public interface ZqbfXmzTjfxMapper {
* 帮扶项目统计排名 * 帮扶项目统计排名
*/ */
List<BfxmtjpmVo> bfxmtjpm(ZqczTjfxQuery zqczTjfxQuery); List<BfxmtjpmVo> bfxmtjpm(ZqczTjfxQuery zqczTjfxQuery);
/**
* 帮扶专家统计排名
*/
List<BfzjtjpmVo> bfzjtjpm(ZqczTjfxQuery zqczTjfxQuery);
} }
package com.qianhe.zqbf.service; package com.qianhe.zqbf.service;
import com.qianhe.zqbf.domain.BfxmtjpmVo;
import com.qianhe.zqbf.domain.BfzjtjpmVo;
import com.qianhe.zqbf.domain.ChartBaseModel; import com.qianhe.zqbf.domain.ChartBaseModel;
import com.qianhe.zqbf.domain.ZqczTjfxQuery; import com.qianhe.zqbf.domain.ZqczTjfxQuery;
import java.util.List;
public interface ZqbfXmzTjfxService { public interface ZqbfXmzTjfxService {
/** /**
* 管理区上报数量 * 管理区上报数量
...@@ -18,4 +22,14 @@ public interface ZqbfXmzTjfxService { ...@@ -18,4 +22,14 @@ public interface ZqbfXmzTjfxService {
* 帮扶项目统计排名 * 帮扶项目统计排名
*/ */
ChartBaseModel bfxmtjpm(ZqczTjfxQuery zqczTjfxQuery); ChartBaseModel bfxmtjpm(ZqczTjfxQuery zqczTjfxQuery);
/**
* 帮扶专家统计排名
*/
List<BfzjtjpmVo> bfzjtjpm(ZqczTjfxQuery zqczTjfxQuery);
/**
* 帮扶专家统计排名 Echarts
*/
ChartBaseModel bfzjtjpm_echarts(ZqczTjfxQuery zqczTjfxQuery);
} }
...@@ -57,6 +57,7 @@ public class ZqbfXmzTjfxServiceImpl implements ZqbfXmzTjfxService { ...@@ -57,6 +57,7 @@ public class ZqbfXmzTjfxServiceImpl implements ZqbfXmzTjfxService {
/** /**
* 帮扶项目统计排名 * 帮扶项目统计排名
*/ */
@DataScope(deptAlias = "dept")
@Override @Override
public ChartBaseModel bfxmtjpm(ZqczTjfxQuery zqczTjfxQuery) { public ChartBaseModel bfxmtjpm(ZqczTjfxQuery zqczTjfxQuery) {
List<BfxmtjpmVo> dataList = xmzTjfxMapper.bfxmtjpm(zqczTjfxQuery); List<BfxmtjpmVo> dataList = xmzTjfxMapper.bfxmtjpm(zqczTjfxQuery);
...@@ -82,6 +83,42 @@ public class ZqbfXmzTjfxServiceImpl implements ZqbfXmzTjfxService { ...@@ -82,6 +83,42 @@ public class ZqbfXmzTjfxServiceImpl implements ZqbfXmzTjfxService {
} }
/** /**
* 帮扶专家统计排名
*/
@Override
public List<BfzjtjpmVo> bfzjtjpm(ZqczTjfxQuery zqczTjfxQuery) {
List<BfzjtjpmVo> dataList = xmzTjfxMapper.bfzjtjpm(zqczTjfxQuery);
return dataList;
}
/**
* 帮扶专家统计排名 Echarts
*/
@Override
public ChartBaseModel bfzjtjpm_echarts(ZqczTjfxQuery zqczTjfxQuery) {
List<BfzjtjpmVo> dataList = xmzTjfxMapper.bfzjtjpm(zqczTjfxQuery);
List<Map<String, Object>> legendData = new ArrayList<>();
List<String> xAxisData = new ArrayList<>();
List<Object> data = new ArrayList<>();
for (BfzjtjpmVo bfzjtjpmVo : dataList) {
HashMap<String, Object> legendMap = new HashMap<>();
legendMap.put("label", bfzjtjpmVo.getZjmc());
legendMap.put("value", bfzjtjpmVo.getZjid());
legendData.add(legendMap);
xAxisData.add(bfzjtjpmVo.getZjmc());
data.add(bfzjtjpmVo.getBfcs());
}
ChartBaseModel chartBaseModel = new ChartBaseModel();
chartBaseModel.setLegendData(legendData);
chartBaseModel.setXAxisData(xAxisData);
chartBaseModel.setData(data);
return chartBaseModel;
}
/**
* 将 GlqsbslVo 列表转换为 ChartBaseModel * 将 GlqsbslVo 列表转换为 ChartBaseModel
* @param voList 原始数据列表 * @param voList 原始数据列表
* @return ChartBaseModel 对象 * @return ChartBaseModel 对象
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
</select> </select>
<!-- 新增 --> <!-- 新增 -->
<insert id="batchAdd" parameterType="ZqbfXmzBfxqxm"> <insert id="batchAdd" parameterType="ZqbfXmzBfxqxm">
INSERT INTO ZqbfXmzBfxqxm (xqid, xmid) VALUES INSERT INTO zqbf_xmz_bfxq_bfxm (xqid, xmid) VALUES
<foreach collection="dataList" item="item" separator=","> <foreach collection="dataList" item="item" separator=",">
(#{item.xqid}, #{item.xmid}) (#{item.xqid}, #{item.xmid})
</foreach> </foreach>
......
...@@ -21,6 +21,16 @@ ...@@ -21,6 +21,16 @@
<result property="xmmc" column="xmmc"/> <result property="xmmc" column="xmmc"/>
<result property="bfcs" column="bfcs"/> <result property="bfcs" column="bfcs"/>
</resultMap> </resultMap>
<resultMap id="BfzjtjpmResult" type="BfzjtjpmVo">
<result property="dwid" column="dwid"/>
<result property="dwmc" column="dwmc"/>
<result property="zjid" column="zjid"/>
<result property="zjmc" column="zjmc"/>
<result property="zjzj" column="zjzj"/>
<result property="bfcs" column="bfcs"/>
<result property="xmids" column="xmids"/>
<result property="xmmcs" column="xmmcs"/>
</resultMap>
<!-- 管理区上报数量 --> <!-- 管理区上报数量 -->
<select id="glqsbsl" parameterType="ZqczTjfxQuery" resultMap="GlqsbslResult"> <select id="glqsbsl" parameterType="ZqczTjfxQuery" resultMap="GlqsbslResult">
WITH RECURSIVE child_tree AS ( WITH RECURSIVE child_tree AS (
...@@ -194,4 +204,37 @@ ...@@ -194,4 +204,37 @@
ORDER BY ORDER BY
count( bfxqxm.xmid ) DESC count( bfxqxm.xmid ) DESC
</select> </select>
<select id="bfzjtjpm" parameterType="ZqczTjfxQuery" resultMap="BfzjtjpmResult">
SELECT
bfzj.dwid,
CONCAT_WS('/', NULLIF(dept.create_by, ''), dept.dept_name) AS dwmc,
bfzj.zjid,
bfzj.zjmc,
bfzj.zjzj,
count( bfxqxm.xqxmid ) AS bfcs,
GROUP_CONCAT(DISTINCT bfxm.xmid ) xmids,
GROUP_CONCAT(DISTINCT bfxm.xmmc ) xmmcs
FROM
zqbf_xmz_bfzj bfzj
LEFT JOIN zqcz_xmz_ddzj ddzj ON ddzj.ddzj = bfzj.zjid
LEFT JOIN zqbf_xmz_bfxq bfxq ON ddzj.xqid = bfxq.xqid
LEFT JOIN zqbf_xmz_bfxq_bfxm bfxqxm ON bfxq.xqid = bfxqxm.xqid
LEFT JOIN zqbf_xmz_bfxm bfxm ON bfxqxm.xmid = bfxm.xmid
LEFT JOIN sys_dept dept ON bfzj.dwid = dept.dept_id
<where>
<if test="xmzb != null and xmzb != ''">AND bfxm.xmzb = #{xmzb}</if>
<if test="kssj != null and jssj != null">AND NOT (bfxq.bfjssj &lt; #{kssj} OR bfxq.bfkssj &gt; #{jssj})</if>
<if test="kssj != null and jssj == null">AND bfxq.bfkssj &gt;= #{kssj}</if>
<if test="jssj != null and kssj == null">AND bfxq.bfjssj &lt;= #{jssj}</if>
${params.dataScope}
</where>
GROUP BY
bfzj.dwid,
CONCAT_WS('/', NULLIF(dept.create_by, ''), dept.dept_name),
bfzj.zjid,
bfzj.zjmc,
bfzj.zjzj
ORDER BY
count( bfxqxm.xqxmid ) DESC
</select>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment