Commit 6092e7da by zhangkb

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

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