Commit 7a2e0dd5 by zhangkb

台账报表数据生成接口代码

parent 17356083
...@@ -136,4 +136,12 @@ public class ParameterCtrl { ...@@ -136,4 +136,12 @@ public class ParameterCtrl {
@RequestParam(defaultValue = "0") int page,@RequestParam(defaultValue = "10") int rows) throws Exception{ @RequestParam(defaultValue = "0") int page,@RequestParam(defaultValue = "10") int rows) throws Exception{
return parameterService.getByPageAndKeyword(catalogId, keyword, page, rows); return parameterService.getByPageAndKeyword(catalogId, keyword, page, rows);
} }
@ApiOperation(value = "根据台账目录统计台账数据报表", notes = "根据台账目录统计台账数据报表")
@PostMapping(value = "/statisticalData")
public String statisticalData(@RequestParam String user,@RequestParam Integer catalogId,
@RequestParam String code) throws Exception{
parameterService.statisticalParameterDataReport(user, catalogId, code);
return "台账数据报表统计中......";
}
} }
package com.keymobile.indicators.model.entity.parameter;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Data;
/**
*author:zhangkb time:2020-9-24 desc:台账数据报表统计
*/
@Data
@Table(name="parameter_data_report")
public class ParameterDataReport {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private Integer catalogId;//台账目录id
private String catalogName;//台账目录名称
private String parameterName;//台账对象名称
private String parameterObj;//台账对象
private Double sumScore;//总积分
private Integer rank;//排名
private String code;//机构编码
private String reportUser;//报告人
private String reportDate;//报告日期
public ParameterDataReport(Integer id,Integer catalogId,String catalogName,String parameterName,
String parameterObj,Double sumScore,Integer rank,String code,String reportUser,String reportDate){
this.id = id;
this.catalogId = catalogId;
this.catalogName = catalogName;
this.parameterName = parameterName;
this.parameterObj = parameterObj;
this.sumScore = sumScore;
this.rank = rank;
this.code = code;
this.reportUser = reportUser;
this.reportDate = reportDate;
}
}
...@@ -21,4 +21,6 @@ public interface ParameterDataMapper extends BaseMapper<ParameterData>{ ...@@ -21,4 +21,6 @@ public interface ParameterDataMapper extends BaseMapper<ParameterData>{
public List<ParameterData> getPageByKeyword(Map<String,Object> param); public List<ParameterData> getPageByKeyword(Map<String,Object> param);
public List<ParameterData> getByIdList(@Param("ids")List<Integer> ids); public List<ParameterData> getByIdList(@Param("ids")List<Integer> ids);
public List<Map<String,Object>> statisticalParameterData(@Param("catalogId")Integer catalogId);
} }
package com.keymobile.indicators.model.mapper.parameter;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.keymobile.indicators.model.entity.parameter.ParameterDataReport;
import tk.mybatis.mapper.common.BaseMapper;
@Mapper
public interface ParameterDataReportMapper extends BaseMapper<ParameterDataReport>{
public void deleteByCatalogId(@Param("catalogId")Integer catalogId);
public void batchSave(@Param("datas")List<ParameterDataReport> datas);
}
...@@ -10,12 +10,15 @@ import org.apache.commons.lang.StringUtils; ...@@ -10,12 +10,15 @@ import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.keymobile.indicators.model.entity.parameter.ParameterCatalog; import com.keymobile.indicators.model.entity.parameter.ParameterCatalog;
import com.keymobile.indicators.model.entity.parameter.ParameterData; import com.keymobile.indicators.model.entity.parameter.ParameterData;
import com.keymobile.indicators.model.entity.parameter.ParameterDataReport;
import com.keymobile.indicators.model.mapper.parameter.ParameterCatalogMapper; import com.keymobile.indicators.model.mapper.parameter.ParameterCatalogMapper;
import com.keymobile.indicators.model.mapper.parameter.ParameterDataMapper; import com.keymobile.indicators.model.mapper.parameter.ParameterDataMapper;
import com.keymobile.indicators.model.mapper.parameter.ParameterDataReportMapper;
import com.keymobile.indicators.utils.DateUtils; import com.keymobile.indicators.utils.DateUtils;
@Service @Service
...@@ -26,6 +29,8 @@ public class ParameterService { ...@@ -26,6 +29,8 @@ public class ParameterService {
private ParameterCatalogMapper parameterCatalogMapper; private ParameterCatalogMapper parameterCatalogMapper;
@Autowired @Autowired
private ParameterDataMapper parameterDataMapper; private ParameterDataMapper parameterDataMapper;
@Autowired
private ParameterDataReportMapper parameterDataReportMapper;
public ParameterCatalog saveOrUpdateCatalog(ParameterCatalog paramCatalog) throws Exception{ public ParameterCatalog saveOrUpdateCatalog(ParameterCatalog paramCatalog) throws Exception{
if(paramCatalog.getId()==null) {//新增 if(paramCatalog.getId()==null) {//新增
...@@ -195,4 +200,34 @@ public class ParameterService { ...@@ -195,4 +200,34 @@ public class ParameterService {
return resultMap; return resultMap;
} }
/**--------------台账统计操作----------------**/
@Async
public void statisticalParameterDataReport(String user,Integer catalogId,String code) throws Exception{
int rank = 1;
//根据台账目录id获取台账目录实体
ParameterCatalog catalog = parameterCatalogMapper.selectByPrimaryKey(catalogId);
if(catalog!=null) {
//统计台账数据表数据
List<Map<String,Object>> statisticalData = parameterDataMapper.statisticalParameterData(catalogId);
List<ParameterDataReport> reportData = new ArrayList<>();
if(!statisticalData.isEmpty()) {
for(Map<String,Object> map : statisticalData) {
ParameterDataReport data = new ParameterDataReport(null,catalogId,
catalog.getCatalogName(),catalog.getParameterObjName(),
map.get("parameterObj").toString(),Double.parseDouble(map.get("sumScore").toString()),
rank++,code,user,DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"));
reportData.add(data);
}
if(!reportData.isEmpty()) {
//清除历史数据
parameterDataReportMapper.deleteByCatalogId(catalogId);
//批量保存
parameterDataReportMapper.batchSave(reportData);
}
}
}else {
throw new Exception("台账目录不存在");
}
}
} }
...@@ -52,4 +52,15 @@ ...@@ -52,4 +52,15 @@
#{id} #{id}
</foreach> </foreach>
</select> </select>
<select id="statisticalParameterData" parameterType="java.lang.Integer" resultType="java.util.Map">
select
distinct(parameter_obj) as parameterObj,
sum(score) as sumScore
from parameter_data
where
catalog_id=#{catalogId}
GROUP BY parameter_obj
order by sumScore desc
</select>
</mapper> </mapper>
\ No newline at end of file
<?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.keymobile.indicators.model.mapper.parameter.ParameterDataReportMapper">
<delete id="deleteByCatalogId" parameterType="java.lang.Integer">
delete
from parameter_data_report
where catalog_id = #{catalogId}
</delete>
<insert id="batchSave" parameterType="list">
insert into parameter_data_report(
catalog_id, catalog_name, parameter_name, parameter_obj, sum_score, rank,
code, report_user, report_date)
values
<foreach collection="datas" item="val" separator=",">
(
#{val.catalogId},#{val.catalogName},#{val.parameterName},#{val.parameterObj},
#{val.sumScore},#{val.rank},#{val.code},#{val.reportUser},#{val.reportDate}
)
</foreach>
</insert>
</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