Преглед изворни кода

Merge branch 'master' of https://e.coding.net/chuanghaikeji/smartCampus/backend_code

夏文涛 пре 2 година
родитељ
комит
cef1673c01

+ 4 - 0
src/main/java/com/template/api/DriverStockControllerAPI.java

@@ -33,6 +33,10 @@ public interface DriverStockControllerAPI {
     @ResponseBody
     public CommonResult getEnergyMonth(Integer type);
 
+    @RequestMapping(value = "/getEnergyDay")
+    @ResponseBody
+    public CommonResult getEnergyDay(Integer type);
+
     @RequestMapping(value = "/getDeviceT")
     @ResponseBody
     public CommonResult getDeviceT();

+ 20 - 0
src/main/java/com/template/controller/DriverStockController.java

@@ -21,6 +21,7 @@ import com.template.services.SmartWarningService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 
+import java.sql.Time;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -159,6 +160,25 @@ public class DriverStockController implements DriverStockControllerAPI {
     @Override
     @PassToken
     @DESRespondSecret(validated = false)
+    public CommonResult getEnergyDay(Integer type) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        List<JSONObject> jList = new ArrayList<>();
+        for (int i = -11; i <= 0; i++) {
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.DATE, i);
+            String date = simpleDateFormat.format(calendar.getTime());
+            List<TjFloat> list = driverStockService.getEnergyDay(date, type);
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("date", date);
+            jsonObject.put("data", list);
+            jList.add(jsonObject);
+        }
+        return CommonResult.ok(jList);
+    }
+
+    @Override
+    @PassToken
+    @DESRespondSecret(validated = false)
     public CommonResult getDeviceT() {
         List<JSONObject> list = new ArrayList<>();
         JSONObject jsonObject1 = new JSONObject();

+ 3 - 0
src/main/java/com/template/mapper/DriverStockMapper.java

@@ -25,6 +25,9 @@ public interface DriverStockMapper extends BaseMapper<T> {
     // 每栋楼电费月统计
     public List<TjFloat> getEnergyMonth(@Param("date") String date,@Param("type") Integer type);
 
+    // 近12天水电统计
+    public List<TjFloat> getEnergyDay(@Param("date") String date,@Param("type") Integer type);
+
     // 总设备数
     public List<TjFloat> getTotalDevice();
 

+ 2 - 2
src/main/java/com/template/mapper/WechatScanLoginMapper.java

@@ -30,7 +30,7 @@ public interface WechatScanLoginMapper extends BaseMapper<SmartUser> {
     public List<EnergyTj> getElcTjByMonAndBuild(String month);
 
     // 每个月每个楼栋查询
-    public EnergyTj getTjByMon(String name,String month,String type);
+    public EnergyTj getTjByMon(String name,String meterName,String month,String type);
 
     public void insertMonthMeter(EnergyTj energyTj);
 
@@ -42,7 +42,7 @@ public interface WechatScanLoginMapper extends BaseMapper<SmartUser> {
     // 每天各电表数据统计
     public List<EnergyTj> getElcTjByDayAndBuild(String day);
 
-    public EnergyTj getTjByDay(String name,String day,String type);
+    public EnergyTj getTjByDay(String name,String meterName,String day,String type);
 
     public void insertDayMeter(EnergyTj energyTj);
 

+ 9 - 0
src/main/java/com/template/model/tongji/EnergyTj.java

@@ -6,6 +6,7 @@ public class EnergyTj {
 
     public Integer id;
     public String name;
+    public String meterName;
     public Integer type;
     public String date;
     public Double num;
@@ -26,6 +27,14 @@ public class EnergyTj {
         this.name = name;
     }
 
+    public String getMeterName() {
+        return meterName;
+    }
+
+    public void setMeterName(String meterName) {
+        this.meterName = meterName;
+    }
+
     public Integer getType() {
         return type;
     }

+ 9 - 0
src/main/java/com/template/model/tongji/MeterPage.java

@@ -5,6 +5,7 @@ import com.template.common.utils.DataBliu;
 public class MeterPage {
 
     public String build;
+    public String meterName;
     public String meterId;
     public Double num;
     public String createTime;
@@ -17,6 +18,14 @@ public class MeterPage {
         this.build = build;
     }
 
+    public String getMeterName() {
+        return meterName;
+    }
+
+    public void setMeterName(String meterName) {
+        this.meterName = meterName;
+    }
+
     public String getMeterId() {
         return meterId;
     }

+ 9 - 0
src/main/java/com/template/model/tongji/TjFloat.java

@@ -6,6 +6,7 @@ public class TjFloat {
 
     public String date;
     public String name;
+    public String meterName;
     public Double num;
 
     public String getDate() {
@@ -24,6 +25,14 @@ public class TjFloat {
         this.name = name;
     }
 
+    public String getMeterName() {
+        return meterName;
+    }
+
+    public void setMeterName(String meterName) {
+        this.meterName = meterName;
+    }
+
     public Double getNum() {
         return DataBliu.getTwo(num);
     }

+ 3 - 0
src/main/java/com/template/services/DriverStockService.java

@@ -24,6 +24,9 @@ public interface DriverStockService {
     // 每栋楼电费月统计
     public List<TjFloat> getEnergyMonth(@Param("date") String date, @Param("type") Integer type);
 
+    // 近12天水电统计
+    public List<TjFloat> getEnergyDay(@Param("date") String date,@Param("type") Integer type);
+
     // 总设备数
     public List<TjFloat> getTotalDevice();
 

+ 5 - 0
src/main/java/com/template/services/impl/DriverStockServiceImpl.java

@@ -38,6 +38,11 @@ public class DriverStockServiceImpl implements DriverStockService {
         return driverStockMapper.getEnergyMonth(date,type);
     }
 
+    // 近12天水电统计
+    public List<TjFloat> getEnergyDay(@Param("date") String date,@Param("type") Integer type){
+        return driverStockMapper.getEnergyDay(date, type);
+    }
+
     // 总设备数
     public List<TjFloat> getTotalDevice(){
         return driverStockMapper.getTotalDevice();

+ 12 - 8
src/main/java/com/template/services/impl/WechatScanLoginServiceImpl.java

@@ -190,9 +190,10 @@ public class WechatScanLoginServiceImpl implements WechatScanLoginService {
 		List<EnergyTj> waterl = wechatScanLoginMapper.getWaterTjByMonAndBuild(month);
 		List<EnergyTj> elcl = wechatScanLoginMapper.getElcTjByMonAndBuild(month);
 		for (int i = 0; i < waterl.size(); i++) {
-			EnergyTj e = wechatScanLoginMapper.getTjByMon(waterl.get(i).getName(),month,"0");
+			EnergyTj e = wechatScanLoginMapper.getTjByMon(waterl.get(i).getName(),waterl.get(i).getMeterName(),month,"0");
 			if (e==null){
-				waterl.get(i).setType(0);waterl.get(i).setDate(month);
+				waterl.get(i).setType(0);
+				waterl.get(i).setDate(month);
 				wechatScanLoginMapper.insertMonthMeter(waterl.get(i));
 			} else {
 				waterl.get(i).setId(e.getId());
@@ -200,9 +201,10 @@ public class WechatScanLoginServiceImpl implements WechatScanLoginService {
 			}
 		}
 		for (int j = 0; j < elcl.size(); j++) {
-			EnergyTj w = wechatScanLoginMapper.getTjByMon(elcl.get(j).getName(),month,"1");
+			EnergyTj w = wechatScanLoginMapper.getTjByMon(elcl.get(j).getName(),elcl.get(j).getMeterName(),month,"1");
 			if (w==null){
-				elcl.get(j).setType(1);elcl.get(j).setDate(month);
+				elcl.get(j).setType(1);
+				elcl.get(j).setDate(month);
 				wechatScanLoginMapper.insertMonthMeter(elcl.get(j));
 			} else {
 				elcl.get(j).setId(w.getId());
@@ -216,9 +218,10 @@ public class WechatScanLoginServiceImpl implements WechatScanLoginService {
 		List<EnergyTj> waterl = wechatScanLoginMapper.getWaterTjByDayAndBuild(day);
 		List<EnergyTj> elcl = wechatScanLoginMapper.getElcTjByDayAndBuild(day);
 		for (int i = 0; i < waterl.size(); i++) {
-			EnergyTj w = wechatScanLoginMapper.getTjByDay(waterl.get(i).getName(),day,"0");
+			EnergyTj w = wechatScanLoginMapper.getTjByDay(waterl.get(i).getName(),waterl.get(i).getMeterName(),day,"0");
 			if (w==null){
-				waterl.get(i).setType(0);waterl.get(i).setDate(day);
+				waterl.get(i).setType(0);
+				waterl.get(i).setDate(day);
 				wechatScanLoginMapper.insertDayMeter(waterl.get(i));
 			} else {
 				waterl.get(i).setId(w.getId());
@@ -226,9 +229,10 @@ public class WechatScanLoginServiceImpl implements WechatScanLoginService {
 			}
 		}
 		for (int j = 0; j < elcl.size(); j++) {
-			EnergyTj e = wechatScanLoginMapper.getTjByDay(elcl.get(j).getName(),day,"1");
+			EnergyTj e = wechatScanLoginMapper.getTjByDay(elcl.get(j).getName(),elcl.get(j).getMeterName(),day,"1");
 			if (e==null){
-				elcl.get(j).setType(1);elcl.get(j).setDate(day);
+				elcl.get(j).setType(1);
+				elcl.get(j).setDate(day);
 				wechatScanLoginMapper.insertDayMeter(elcl.get(j));
 			} else {
 				elcl.get(j).setId(e.getId());

+ 18 - 4
src/main/resources/mapper/template/DriverStockMapper.xml

@@ -9,11 +9,13 @@
 
     <resultMap id="TjF" type="com.template.model.tongji.TjFloat">
         <result property="name" column="name"/>
+        <result property="meterName" column="meter_name"/>
         <result property="num" column="num"/>
     </resultMap>
 
     <resultMap id="MeterPage" type="com.template.model.tongji.MeterPage">
         <result property="build" column="build"/>
+        <result property="meterName" column="meter_name"/>
         <result property="meterId" column="meter_id"/>
         <result property="num" column="num"/>
         <result property="createTime" column="create_time"/>
@@ -52,6 +54,13 @@
             group by name ) a right join `smart_build` b on a.name=b.name
     </select>
 
+    <!--近12天水电统计-->
+    <select id="getEnergyDay" resultMap="TjF">
+        select IFNULL(a.num,0) num,#{date} as name from (
+            select IFNULL(SUM(num),0) as num from `day_meter_detail`
+            where date=#{date} and type=#{type} ) a
+    </select>
+
     <!--总设备数-->
     <select id="getTotalDevice" resultMap="TjF">
         select case meter_type when 1 then '电表' when 0 then '水表' end as `name`,
@@ -68,10 +77,15 @@
 
     <!--设备实时记录数据-->
     <select id="getMeterDetail" resultMap="MeterPage">
-        select c.meter_id,c.meter_power num,d.`name` build,c.create_time from (select a.`meter_id`,a.`meter_power`,a.`create_time`,
-              b.`build_id` from `smart_meter_detail` a left join `smart_build_meter` b
-              on a.`meter_id`=b.`meter_id` where a.meter_type=#{meterType}) c
-              left join `smart_build` d on c.`build_id`=d.`id` order by create_time desc
+        select e.name meter_name,c.meter_power num,d.`name` build,c.create_time from
+            (select a.`meter_id`,a.`meter_power`,a.`create_time`,
+                    b.`build_id` from `smart_meter_detail` a left join `smart_build_meter` b
+                    on a.`meter_id`=b.`meter_id` where a.meter_type=#{meterType} and b.`meter_type`=#{meterType}
+                    and a.`deleted`=0 and b.`deleted`=0) c
+                left join `smart_build` d on c.`build_id`=d.`id`
+                left join `smart_meter` e on c.meter_id=e.id
+            where d.deleted=0 and e.`deleted`=0 and e.`meter_type`=#{meterType}
+            order by create_time desc
     </select>
 
     <!--设备实时记录数据-->

+ 47 - 26
src/main/resources/mapper/template/WechatScanLoginMapper.xml

@@ -17,6 +17,7 @@
 
     <resultMap id="Energy" type="com.template.model.tongji.EnergyTj">
         <result property="name" column="name"/>
+        <result property="meterName" column="meter_name"/>
         <result property="num" column="num"/>
     </resultMap>
 
@@ -70,39 +71,49 @@
 
     <!--每个月各水表数据统计-->
     <select id="getWaterTjByMonAndBuild" parameterType="String" resultMap="Energy">
-        select a.name,SUM(IFNULL(b.num,0)) as num from `smart_build` a left join (
-            select a.`build_id`,IFNULL(b.num,0) as num from `smart_build_meter` a left join (
-            select meter_id,IFNULL(SUM(meter_power),0) as num from `smart_meter_detail`
-            where deleted=0 and meter_type=0 and update_time like concat(#{month}, '%')
-            group by meter_id ) b on a.`meter_id`=b.`meter_id`) b on a.id=b.build_id
-        group by a.`name`
+        select e.name,d.name as meter_name,d.num from (
+              select c.name,b.build_id,a.num from (
+              select meter_id,IFNULL(SUM(meter_power),0) as num from `smart_meter_detail`
+              where deleted=0 and meter_type=0 and update_time like concat(#{month}, '%')
+              group by meter_id ) a left join `smart_build_meter` b
+                                              on a.meter_id=b.meter_id
+                                    left join `smart_meter` c on a.meter_id=c.id
+              where b.meter_type=0 and c.meter_type=0 and b.`deleted`=0 and c.`deleted`=0 ) d
+              left join `smart_build` e on d.build_id=e.id
+        where e.deleted=0
     </select>
 
     <!--每个月各电表数据统计-->
     <select id="getElcTjByMonAndBuild" parameterType="String" resultMap="Energy">
-        select a.name,SUM(IFNULL(b.num,0)) as num from `smart_build` a left join (
-            select a.`build_id`,IFNULL(b.num,0) as num from `smart_build_meter` a left join (
-                select meter_id,IFNULL(SUM(meter_power),0) as num from `smart_meter_detail`
-                where deleted=0 and meter_type=1 and update_time like concat(#{month}, '%')
-                group by meter_id ) b on a.`meter_id`=b.`meter_id`) b on a.id=b.build_id
-        group by a.`name`
+        select e.name,d.name as meter_name,d.num from (
+          select c.name,b.build_id,a.num from (
+          select meter_id,IFNULL(SUM(meter_power),0) as num from `smart_meter_detail`
+          where deleted=0 and meter_type=1 and update_time like concat(#{month}, '%')
+          group by meter_id ) a left join `smart_build_meter` b
+                                          on a.meter_id=b.meter_id
+                                left join `smart_meter` c on a.meter_id=c.id
+          where b.meter_type=1 and c.meter_type=1 and b.`deleted`=0 and c.`deleted`=0 ) d
+          left join `smart_build` e on d.build_id=e.id
+        where e.deleted=0
     </select>
 
     <!--每个月每个楼栋查询-->
     <select id="getTjByMon" parameterType="String" resultMap="MonthT">
-        select * from `month_meter_detail` where `name`=#{name} and `date`=#{month} and `type`=#{type}
+        select * from `month_meter_detail` where `name`=#{name} and `meter_name`=#{meterName} and `date`=#{month} and `type`=#{type}
     </select>
 
     <insert id="insertMonthMeter" parameterType="com.template.model.tongji.EnergyTj" useGeneratedKeys="true">
         INSERT INTO `month_meter_detail`
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="name != null">`name`,</if>
+            <if test="meterName != null">`meter_name`,</if>
             <if test="type != null">`type`,</if>
             <if test="date != null">`date`,</if>
             <if test="num != null">`num`,</if>
         </trim>
         <trim prefix="VALUES (" suffix=")" suffixOverrides=",">
             <if test="name != null">#{name},</if>
+            <if test="meterName != null">#{meterName},</if>
             <if test="type != null">#{type},</if>
             <if test="date != null">#{date},</if>
             <if test="num != null">#{num},</if>
@@ -121,38 +132,48 @@
 
     <!--每天各水表数据统计-->
     <select id="getWaterTjByDayAndBuild" parameterType="String" resultMap="Energy">
-        select a.name,SUM(IFNULL(b.num,0)) as num from `smart_build` a left join (
-            select a.`build_id`,IFNULL(b.num,0) as num from `smart_build_meter` a left join (
-                select meter_id,IFNULL(SUM(meter_power),0) as num from `smart_meter_detail`
-                where deleted=0 and meter_type=0 and update_time like concat(#{day}, '%')
-                group by meter_id ) b on a.`meter_id`=b.`meter_id`) b on a.id=b.build_id
-        group by a.`name`
+        select e.name,d.name as meter_name,d.num from (
+            select c.name,b.build_id,a.num from (
+              select meter_id,IFNULL(SUM(meter_power),0) as num from `smart_meter_detail`
+              where deleted=0 and meter_type=0 and update_time like concat(#{day}, '%')
+              group by meter_id ) a left join `smart_build_meter` b
+              on a.meter_id=b.meter_id
+              left join `smart_meter` c on a.meter_id=c.id
+              where b.meter_type=0 and c.meter_type=0 and b.`deleted`=0 and c.`deleted`=0 ) d
+              left join `smart_build` e on d.build_id=e.id
+            where e.deleted=0
     </select>
 
     <!--每天各电表数据统计-->
     <select id="getElcTjByDayAndBuild" parameterType="String" resultMap="Energy">
-        select a.name,SUM(IFNULL(b.num,0)) as num from `smart_build` a left join (
-            select a.`build_id`,IFNULL(b.num,0) as num from `smart_build_meter` a left join (
-                select meter_id,IFNULL(SUM(meter_power),0) as num from `smart_meter_detail`
-                where deleted=0 and meter_type=1 and update_time like concat(#{day}, '%')
-                group by meter_id ) b on a.`meter_id`=b.`meter_id`) b on a.id=b.build_id
-        group by a.`name`
+        select e.name,d.name as meter_name,d.num from (
+          select c.name,b.build_id,a.num from (
+          select meter_id,IFNULL(SUM(meter_power),0) as num from `smart_meter_detail`
+          where deleted=0 and meter_type=1 and update_time like concat(#{day}, '%')
+          group by meter_id ) a left join `smart_build_meter` b
+                  on a.meter_id=b.meter_id
+          left join `smart_meter` c on a.meter_id=c.id
+          where b.meter_type=1 and c.meter_type=1 and b.`deleted`=0 and c.`deleted`=0 ) d
+          left join `smart_build` e on d.build_id=e.id
+        where e.deleted=0
     </select>
 
     <select id="getTjByDay" parameterType="String" resultMap="DayT">
-        select * from `day_meter_detail` where `name`=#{name} and `date`=#{day} and `type`=#{type}
+        select * from `day_meter_detail` where `name`=#{name} and `meter_name`=#{meterName} and `date`=#{day} and `type`=#{type}
     </select>
 
     <insert id="insertDayMeter" parameterType="com.template.model.tongji.EnergyTj" useGeneratedKeys="true">
         INSERT INTO `day_meter_detail`
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="name != null">`name`,</if>
+            <if test="meterName != null">`meter_name`,</if>
             <if test="type != null">`type`,</if>
             <if test="date != null">`date`,</if>
             <if test="num != null">`num`,</if>
         </trim>
         <trim prefix="VALUES (" suffix=")" suffixOverrides=",">
             <if test="name != null">#{name},</if>
+            <if test="meterName != null">#{meterName},</if>
             <if test="type != null">#{type},</if>
             <if test="date != null">#{date},</if>
             <if test="num != null">#{num},</if>