huangpeng 1 år sedan
förälder
incheckning
f96728e59b

+ 27 - 7
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/dao/EquEnergyRecordDao.java

@@ -10,28 +10,48 @@ import java.util.List;
 
 public interface EquEnergyRecordDao extends BaseMapper<EquEnergyRecordDo> {
 
+
     @Select("SELECT\n" +
-            "\ta.METERID,a.OWNEDFACTORY,a.TENANTID,DATE_FORMAT( a.CBDATE, '%Y-%m-%d' ) 'CENTERDAY',\n" +
-            "  CASE WHEN a.VALUEZ IS NOT NULL AND b.a.VALUEZ IS NOT NULL THEN b.VALUEZ - a.VALUEZ ELSE 0 END 'DOSAGE' \n" +
+            "\ta.METERID,\n" +
+            "\ta.OWNEDFACTORY,\n" +
+            "\ta.TENANTID,\n" +
+            "\tDATE_FORMAT( a.CBDATE, '%Y-%m-%d' ) 'CENTERDAY',\n" +
+            "CASE\n" +
+            "\t\t\n" +
+            "\t\tWHEN a.VALUEZ IS NOT NULL \n" +
+            "\t\tAND b.a.VALUEZ IS NOT NULL THEN\n" +
+            "\t\tc.DBBB *(b.VALUEZ - a.VALUEZ)\t ELSE 0 \n" +
+            "\t\tEND 'DOSAGE' \n" +
             "FROM\n" +
             "\t(\n" +
-            "\tSELECT METERID,VALUEZ,TENANTID,OWNEDFACTORY,CBDATE,\n" +
+            "\tSELECT\n" +
+            "\t\tMETERID,\n" +
+            "\t\tVALUEZ,\n" +
+            "\t\tTENANTID,\n" +
+            "\t\tOWNEDFACTORY,\n" +
+            "\t\tCBDATE,\n" +
             "\t\tROW_NUMBER() OVER ( PARTITION BY METERID, DATE_FORMAT( CBDATE, '%Y-%m-%d' ) ORDER BY CBDATE DESC ) AS 'rank' \n" +
             "\tFROM\n" +
             "\t\tequ_energy_record \n" +
             "\tWHERE\n" +
-            "\t\tCBDATE <= #{endTime} AND CBDATE >= #{startTime}  and DELETED='0' \n" +
+            "\t\tCBDATE <= #{endTime} AND CBDATE >= #{startTime} \n" +
+            "\t\tAND DELETED = '0' \n" +
             "\t) a\n" +
             "\tLEFT JOIN (\n" +
-            "\tSELECT METERID,VALUEZ,CBDATE,\n" +
-            "\tROW_NUMBER() OVER ( PARTITION BY METERID, DATE_FORMAT( CBDATE, '%Y-%m-%d' ) ORDER BY CBDATE DESC ) AS 'rank' \n" +
+            "\tSELECT\n" +
+            "\t\tMETERID,\n" +
+            "\t\tVALUEZ,\n" +
+            "\t\tCBDATE,\n" +
+            "\t\tROW_NUMBER() OVER ( PARTITION BY METERID, DATE_FORMAT( CBDATE, '%Y-%m-%d' ) ORDER BY CBDATE DESC ) AS 'rank' \n" +
             "\tFROM\n" +
             "\t\tequ_energy_record \n" +
             "\tWHERE\n" +
-            "\t\tCBDATE <= #{endTime} AND CBDATE >= #{startTime} AND DELETED = '0'  \n" +
+            "\t\tCBDATE <= #{endTime}  AND CBDATE >= #{startTime} \n" +
+            "\t\tAND DELETED = '0' \n" +
             "\t) b ON a.METERID = b.METERID \n" +
             "\tAND b.rank = '1' \n" +
             "\tAND DATE_FORMAT( a.CBDATE, '%Y-%m-%d' ) = DATE_FORMAT( DATE_SUB( b.CBDATE, INTERVAL 1 DAY ), '%Y-%m-%d' ) \n" +
+            "\tLEFT JOIN equ_energy_meter c ON c.ID =a.METERID and c.DELETED ='0'\n" +
             "WHERE\n" +
             "\ta.rank = '1'")
     List<EquEnergyMeterDosageDayDo> calRecordDataToDosageDay(@Param("startTime") String startTime,@Param("endTime") String endTime);