| | |
| | | import com.iailab.module.data.ind.item.service.IndItemService; |
| | | import com.iailab.module.data.ind.item.vo.IndItemValueVO; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | result = derItemHandler.queryValue(indItem.getId()); |
| | | break; |
| | | case CAL: |
| | | result = calItemHandler.queryValue(itemNo); |
| | | result = calItemHandler.queryValue(indItem.getId()); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | // 考虑指标精度和转换系数 |
| | | handleResult(result,indItem); |
| | | return result; |
| | | } |
| | | |
| | |
| | | result = atomItemHandler.queryValue(indItem.getId()); |
| | | break; |
| | | case DER: |
| | | result = derItemHandler.queryValue(itemNo, startTime, endTime); |
| | | result = derItemHandler.queryValue(indItem.getId(), startTime, endTime); |
| | | break; |
| | | case CAL: |
| | | result = calItemHandler.queryValue(itemNo, startTime, endTime); |
| | | result = calItemHandler.queryValue(indItem.getId(), startTime, endTime); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | // 考虑指标精度和转换系数 |
| | | handleResult(result,indItem); |
| | | return result; |
| | | } |
| | | |
| | | private void handleResult(List<IndItemValueVO> result, IndItemEntity indItem) { |
| | | if (!CollectionUtils.isEmpty(result)) { |
| | | result.forEach(e -> { |
| | | if (e != null) { |
| | | Object dataValue = e.getDataValue(); |
| | | if (dataValue != null && dataValue instanceof Number) { |
| | | BigDecimal value = new BigDecimal(dataValue.toString()); |
| | | if (indItem.getPrecision() != null) { |
| | | value = new BigDecimal(dataValue.toString()).setScale(indItem.getPrecision(), BigDecimal.ROUND_HALF_UP); |
| | | } |
| | | if (StringUtils.isNotBlank(indItem.getCoefficient())) { |
| | | value = value.multiply(new BigDecimal(indItem.getCoefficient())); |
| | | } |
| | | e.setDataValue(value.doubleValue()); |
| | | } |
| | | } |
| | | |
| | | }); |
| | | } |
| | | } |
| | | } |