Commit 6092e7da by zhangkb

数据项加上机构编码code代码提交

parent 696664af
...@@ -125,7 +125,7 @@ public class DriveIndIdCalActor extends AbstractActor{ ...@@ -125,7 +125,7 @@ public class DriveIndIdCalActor extends AbstractActor{
//算组内平均数 //算组内平均数
String average = driveIndDefService.calGroupAverage( String average = driveIndDefService.calGroupAverage(
calIndAverageAndRankMsg.getIndFormula(), compareObjs, calIndAverageAndRankMsg.getIndFormula(), compareObjs,
calIndAverageAndRankMsg.getDate()); calIndAverageAndRankMsg.getDate(),code);
//算组内排名 //算组内排名
Map<String,Integer> rankValue = CalculateUtils.rankValue(valueMap, indType); Map<String,Integer> rankValue = CalculateUtils.rankValue(valueMap, indType);
List<DriveIndCalResultDef> dataList = new ArrayList<>(); List<DriveIndCalResultDef> dataList = new ArrayList<>();
......
...@@ -124,7 +124,8 @@ public class DriveIndIdObjCalActor extends AbstractActor{ ...@@ -124,7 +124,8 @@ public class DriveIndIdObjCalActor extends AbstractActor{
if(!indIdList.isEmpty()) { if(!indIdList.isEmpty()) {
for(String indId : indIdList) { for(String indId : indIdList) {
GetBaseIndValueMsg getBaseIndValueMsg = new GetBaseIndValueMsg( GetBaseIndValueMsg getBaseIndValueMsg = new GetBaseIndValueMsg(
indId,driveIndIdObjCalMsg.getDimValues()); indId,driveIndIdObjCalMsg.getDimValues(),
driveIndIdObjCalMsg.getCode());
ActorRef getBaseIndValueActor = this.getContext() ActorRef getBaseIndValueActor = this.getContext()
.actorOf(Props.create(GetBaseIndValueActor.class, .actorOf(Props.create(GetBaseIndValueActor.class,
()->new GetBaseIndValueActor())); ()->new GetBaseIndValueActor()));
......
...@@ -19,7 +19,8 @@ public class GetBaseIndValueActor extends AbstractActor{ ...@@ -19,7 +19,8 @@ public class GetBaseIndValueActor extends AbstractActor{
.match(GetBaseIndValueMsg.class,getBaseIndValueMsg -> { .match(GetBaseIndValueMsg.class,getBaseIndValueMsg -> {
//根据维度值和基础指标id获取指标值 //根据维度值和基础指标id获取指标值
Map<String,Object> indValueMap = indicatorsValueService.getIndicatorsValue( Map<String,Object> indValueMap = indicatorsValueService.getIndicatorsValue(
getBaseIndValueMsg.getIndId(), getBaseIndValueMsg.getDimValue()); getBaseIndValueMsg.getIndId(), getBaseIndValueMsg.getDimValue(),
getBaseIndValueMsg.getCode());
if(indValueMap!=null) { if(indValueMap!=null) {
if(indValueMap.get("value")==null) {//如果指标值为空,返回失败结果 if(indValueMap.get("value")==null) {//如果指标值为空,返回失败结果
//返回指标值结果 //返回指标值结果
......
...@@ -16,9 +16,12 @@ public class GetBaseIndValueMsg implements Serializable{ ...@@ -16,9 +16,12 @@ public class GetBaseIndValueMsg implements Serializable{
private List<DimValue> dimValue = new ArrayList<>();//维度值 private List<DimValue> dimValue = new ArrayList<>();//维度值
public GetBaseIndValueMsg(String indId,List<DimValue> dimValue) { private String code;
public GetBaseIndValueMsg(String indId,List<DimValue> dimValue,String code) {
this.indId = indId; this.indId = indId;
this.dimValue.addAll(dimValue); this.dimValue.addAll(dimValue);
this.code = code;
} }
public List<DimValue> getDimValue() { public List<DimValue> getDimValue() {
...@@ -36,4 +39,12 @@ public class GetBaseIndValueMsg implements Serializable{ ...@@ -36,4 +39,12 @@ public class GetBaseIndValueMsg implements Serializable{
public void setIndId(String indId) { public void setIndId(String indId) {
this.indId = indId; this.indId = indId;
} }
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
} }
...@@ -27,4 +27,5 @@ public class IndicatorsData { ...@@ -27,4 +27,5 @@ public class IndicatorsData {
private String dim1Desc; private String dim1Desc;
private Integer dim2; private Integer dim2;
private String value; private String value;
private String code;//添加机构编码
} }
...@@ -21,5 +21,5 @@ public interface IndicatorsDataMapper extends BaseMapper<IndicatorsData>{ ...@@ -21,5 +21,5 @@ public interface IndicatorsDataMapper extends BaseMapper<IndicatorsData>{
void deleteData(@Param("indId") String indId, @Param("dim1")String dim1, @Param("dim2")Integer dim2); void deleteData(@Param("indId") String indId, @Param("dim1")String dim1, @Param("dim2")Integer dim2);
public IndicatorsData getIndData(@Param("indId")String indId, public IndicatorsData getIndData(@Param("indId")String indId,
@Param("date")Integer date,@Param("compareObj")String compareObj); @Param("date")Integer date,@Param("compareObj")String compareObj,@Param("code")String code);
} }
...@@ -21,15 +21,16 @@ public class BaseIndDataService { ...@@ -21,15 +21,16 @@ public class BaseIndDataService {
@Autowired @Autowired
private IndicatorsDataMapper indicatorsDataMapper; private IndicatorsDataMapper indicatorsDataMapper;
public IndicatorsData getSingleIndData(String indId,int date,String compareObj) { public IndicatorsData getSingleIndData(String indId,int date,String compareObj,String code) {
return indicatorsDataMapper.getIndData(indId, date, compareObj); return indicatorsDataMapper.getIndData(indId, date, compareObj,code);
} }
public List<String> getIndData(String indId,int date,List<String> compareObjs){ public List<String> getIndData(String indId,int date,List<String> compareObjs,String code){
List<String> result = new ArrayList<>(); List<String> result = new ArrayList<>();
Map<String,Object> paramMap = new HashMap<>(); Map<String,Object> paramMap = new HashMap<>();
paramMap.put("indId", indId); paramMap.put("indId", indId);
paramMap.put("date", date); paramMap.put("date", date);
paramMap.put("code", code);
paramMap.put("compareObjs", compareObjs); paramMap.put("compareObjs", compareObjs);
List<IndicatorsData> resultData = indicatorsDataMapper.getIndDataByParam(paramMap); List<IndicatorsData> resultData = indicatorsDataMapper.getIndDataByParam(paramMap);
if(!resultData.isEmpty()) { if(!resultData.isEmpty()) {
...@@ -40,10 +41,11 @@ public class BaseIndDataService { ...@@ -40,10 +41,11 @@ public class BaseIndDataService {
return result; return result;
} }
public List<IndicatorsData> getIndDataByParam(Integer date,List<String> compareObjs){ public List<IndicatorsData> getIndDataByParam(Integer date,List<String> compareObjs,String code){
Map<String,Object> paramMap = new HashMap<>(); Map<String,Object> paramMap = new HashMap<>();
paramMap.put("indId", null); paramMap.put("indId", null);
paramMap.put("date", date); paramMap.put("date", date);
paramMap.put("code", code);
if(compareObjs.isEmpty()) { if(compareObjs.isEmpty()) {
paramMap.put("compareObjs", null); paramMap.put("compareObjs", null);
}else { }else {
......
...@@ -169,7 +169,8 @@ public class DriveIndDefService { ...@@ -169,7 +169,8 @@ public class DriveIndDefService {
return resultMap; return resultMap;
} }
public String calGroupAverage(String driveIndFormula,List<String> compareObjs,int date) throws Exception{ public String calGroupAverage(String driveIndFormula,List<String> compareObjs,
int date,String code) throws Exception{
String result = "0.0"; String result = "0.0";
List<String> indIdList = new ArrayList<>(); List<String> indIdList = new ArrayList<>();
if(StringUtils.isNotBlank(driveIndFormula)) { if(StringUtils.isNotBlank(driveIndFormula)) {
...@@ -182,12 +183,14 @@ public class DriveIndDefService { ...@@ -182,12 +183,14 @@ public class DriveIndDefService {
int indIdSize =indIdList.size(); int indIdSize =indIdList.size();
if(indIdSize!=0) { if(indIdSize!=0) {
if(indIdSize==1) { if(indIdSize==1) {
List<String> indDateList = baseIndDataService.getIndData(indIdList.get(0), date, compareObjs); List<String> indDateList = baseIndDataService.getIndData(indIdList.get(0),
date, compareObjs, code);
result = CalculateUtils.averageValue(indDateList,0); result = CalculateUtils.averageValue(indDateList,0);
}else { }else {
Map<String, Object> env = Maps.newHashMap(); Map<String, Object> env = Maps.newHashMap();
for(String indId : indIdList) { for(String indId : indIdList) {
List<String> indDateList = baseIndDataService.getIndData(indId,date,compareObjs); List<String> indDateList = baseIndDataService.getIndData(indId,
date,compareObjs,code);
String sumValue = CalculateUtils.sumValue(indDateList); String sumValue = CalculateUtils.sumValue(indDateList);
env.put(indId, Double.valueOf(sumValue)); env.put(indId, Double.valueOf(sumValue));
driveIndFormula = driveIndFormula.replace("["+indId+"]", sumValue); driveIndFormula = driveIndFormula.replace("["+indId+"]", sumValue);
......
...@@ -740,9 +740,10 @@ public class IndicatorsValueService { ...@@ -740,9 +740,10 @@ public class IndicatorsValueService {
logger.info("填充完成"); logger.info("填充完成");
} }
public Map<String,Object> getIndicatorsValue(String indId,List<DimValue> dimValues) { public Map<String,Object> getIndicatorsValue(String indId,List<DimValue> dimValues,String code) {
Map<String,Object> paramMap = new HashMap<>(); Map<String,Object> paramMap = new HashMap<>();
paramMap.put("indId", indId); paramMap.put("indId", indId);
paramMap.put("code", code);
for(DimValue dimValue : dimValues) { for(DimValue dimValue : dimValues) {
if("number".equals(dimValue.getDimvalueType())) { if("number".equals(dimValue.getDimvalueType())) {
paramMap.put("dim2", Integer.parseInt(dimValue.getDimvalue().toString())); paramMap.put("dim2", Integer.parseInt(dimValue.getDimvalue().toString()));
......
...@@ -433,7 +433,7 @@ public class IndicatorsReportService { ...@@ -433,7 +433,7 @@ public class IndicatorsReportService {
public void dealBaseIndReportOneData(Integer date,List<String> compareObjs,String code) { public void dealBaseIndReportOneData(Integer date,List<String> compareObjs,String code) {
String type = this.getCompareType(date); String type = this.getCompareType(date);
//根据条件获取基础项数据 //根据条件获取基础项数据
List<IndicatorsData> indiDatas = baseIndDataService.getIndDataByParam(date, compareObjs); List<IndicatorsData> indiDatas = baseIndDataService.getIndDataByParam(date, compareObjs,code);
List<IndicatorsReportOne> datas = new ArrayList<>(); List<IndicatorsReportOne> datas = new ArrayList<>();
for(IndicatorsData indiData : indiDatas) { for(IndicatorsData indiData : indiDatas) {
//判断是否存在 //判断是否存在
...@@ -445,7 +445,7 @@ public class IndicatorsReportService { ...@@ -445,7 +445,7 @@ public class IndicatorsReportService {
indReportData.setCompareType(type); indReportData.setCompareType(type);
indReportData.setUnit(indiData.getUnit()); indReportData.setUnit(indiData.getUnit());
indReportData.setCode(code); indReportData.setCode(code);
indReportData = fillBaseIndiReportOneData(indiData,indReportData); indReportData = fillBaseIndiReportOneData(indiData,indReportData,code);
datas.add(indReportData); datas.add(indReportData);
} }
...@@ -843,7 +843,7 @@ public class IndicatorsReportService { ...@@ -843,7 +843,7 @@ public class IndicatorsReportService {
} }
public IndicatorsReportOne fillBaseIndiReportOneData(IndicatorsData indiData, public IndicatorsReportOne fillBaseIndiReportOneData(IndicatorsData indiData,
IndicatorsReportOne indReportData) { IndicatorsReportOne indReportData,String code) {
indReportData.setIndId(indiData.getIndId()); indReportData.setIndId(indiData.getIndId());
//根据基础项id获取基础项信息 //根据基础项id获取基础项信息
BaseIndDef baseIndDef = baseIndDefMapper.selectByPrimaryKey(indiData.getIndId()); BaseIndDef baseIndDef = baseIndDefMapper.selectByPrimaryKey(indiData.getIndId());
...@@ -860,7 +860,7 @@ public class IndicatorsReportService { ...@@ -860,7 +860,7 @@ public class IndicatorsReportService {
} }
//查找同期基础项 //查找同期基础项
IndicatorsData sameIndData = baseIndDataService.getSingleIndData(indiData.getIndId(), IndicatorsData sameIndData = baseIndDataService.getSingleIndData(indiData.getIndId(),
(indiData.getDim2()-100), indiData.getDim1()); (indiData.getDim2()-100), indiData.getDim1(), code);
if(sameIndData!=null) { if(sameIndData!=null) {
if(StringUtils.isNotBlank(sameIndData.getValue())) { if(StringUtils.isNotBlank(sameIndData.getValue())) {
indReportData.setLastSameValue(new BigDecimal(sameIndData.getValue())); indReportData.setLastSameValue(new BigDecimal(sameIndData.getValue()));
......
...@@ -7,14 +7,16 @@ ...@@ -7,14 +7,16 @@
where where
ind_id=#{indId} and ind_id=#{indId} and
dim1 = #{dim1} and dim1 = #{dim1} and
dim2= #{dim2} dim2= #{dim2} and
code = #{code}
</select> </select>
<select id="getIndDataByParam" parameterType="map" resultType="com.keymobile.indicators.model.entity.indicators.IndicatorsData" > <select id="getIndDataByParam" parameterType="map" resultType="com.keymobile.indicators.model.entity.indicators.IndicatorsData" >
select * select *
from indi_data_def from indi_data_def
where where
dim2= #{date} dim2= #{date} and
code = #{code}
<if test="indId!=null"> <if test="indId!=null">
and ind_id=#{indId} and ind_id=#{indId}
</if> </if>
...@@ -40,17 +42,18 @@ ...@@ -40,17 +42,18 @@
where where
dim2 = #{date} dim2 = #{date}
and ind_id = #{indId} and ind_id = #{indId}
and dim1 = #{compareObj} and dim1 = #{compareObj}
and code = #{code}
</select> </select>
<insert id="batchCreateIndData" parameterType="list"> <insert id="batchCreateIndData" parameterType="list">
insert into indi_data_def( insert into indi_data_def(
ind_id, ind_desc, type, batch_no, data_type, unit, dim1, dim2, value, dim1_desc) ind_id, ind_desc, type, batch_no, data_type, unit, dim1, dim2, value, dim1_desc, code)
values values
<foreach collection="datas" item="val" separator=","> <foreach collection="datas" item="val" separator=",">
( (
#{val.indId}, #{val.indDesc}, #{val.type}, #{val.batchNo}, #{val.dataType},#{val.unit}, #{val.indId}, #{val.indDesc}, #{val.type}, #{val.batchNo}, #{val.dataType},#{val.unit},
#{val.dim1},#{val.dim2},#{val.value},#{val.dim1Desc} #{val.dim1},#{val.dim2},#{val.value},#{val.dim1Desc},#{val.code}
) )
</foreach> </foreach>
</insert> </insert>
......
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