| | |
| | | |
| | | @Mapper |
| | | public interface EnergyRecordMapper extends BaseMapperX<EnergyRecordDO> { |
| | | @Select(""" |
| | | <script> |
| | | SELECT COALESCE(SUM(<choose><when test="rule.metric == 'AMOUNT' or rule.metric == 'MONTH_AMOUNT'">amount</when><otherwise>quantity</otherwise></choose>),0) |
| | | FROM mes_energy_record WHERE deleted=0 AND energy_type=#{rule.energyType} |
| | | <choose><when test="rule.metric == 'MONTH_QUANTITY' or rule.metric == 'MONTH_AMOUNT'"> |
| | | AND record_date >= #{date} AND record_date < DATE_ADD(#{date}, INTERVAL 1 MONTH) |
| | | </when><otherwise>AND record_date=#{date}</otherwise></choose> |
| | | <if test="rule.usageArea != null and rule.usageArea != ''">AND usage_area=#{rule.usageArea}</if> |
| | | <if test="rule.productCategory != null and rule.productCategory != ''">AND product_category=#{rule.productCategory}</if> |
| | | </script> |
| | | """) |
| | | BigDecimal selectDailyValue(@Param("date") java.time.LocalDate date, |
| | | @Param("rule") cn.iocoder.yudao.module.mes.dal.dataobject.energy.EnergyAlertRuleDO rule); |
| | | default PageResult<EnergyRecordDO> selectPage(EnergyRecordPageReqVO req) { |
| | | return selectPage(req, new LambdaQueryWrapperX<EnergyRecordDO>() |
| | | .geIfPresent(EnergyRecordDO::getRecordDate, req.getStartDate()) |