Browse Source

增加设备运行统计
增加设备效率统计
prod配置文件修改

dongjh 6 months ago
parent
commit
19e2122957

+ 1 - 1
jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml

@@ -12,7 +12,7 @@ spring:
       datasource:
         master:
           type: com.alibaba.druid.pool.DruidDataSource
-          url: jdbc:mysql://119.3.168.55:3306/ems_new?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+          url: jdbc:mysql://127.0.0.1:3306/phm?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
           username: itdm-boot
           password: itdm-boot@2023
           driver-class-name: com.mysql.cj.jdbc.Driver

+ 29 - 6
module_tpm/src/main/java/org/jeecg/modules/equipmentOnoffSection/controller/EquipmentOnoffSectionController.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.equipmentOnoffSection.controller;
 
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -53,7 +54,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
 public class EquipmentOnoffSectionController extends JeecgController<EquipmentOnoffSection, IEquipmentOnoffSectionService> {
 	@Autowired
 	private IEquipmentOnoffSectionService equipmentOnoffSectionService;
-	
+
 	/**
 	 * 分页列表查询
 	 *
@@ -75,7 +76,7 @@ public class EquipmentOnoffSectionController extends JeecgController<EquipmentOn
 		IPage<EquipmentOnoffSection> pageList = equipmentOnoffSectionService.page(page, queryWrapper);
 		return Result.OK(pageList);
 	}
-	
+
 	/**
 	 *   添加
 	 *
@@ -90,7 +91,7 @@ public class EquipmentOnoffSectionController extends JeecgController<EquipmentOn
 		equipmentOnoffSectionService.save(equipmentOnoffSection);
 		return Result.OK("添加成功!");
 	}
-	
+
 	/**
 	 *  编辑
 	 *
@@ -105,7 +106,7 @@ public class EquipmentOnoffSectionController extends JeecgController<EquipmentOn
 		equipmentOnoffSectionService.updateById(equipmentOnoffSection);
 		return Result.OK("编辑成功!");
 	}
-	
+
 	/**
 	 *   通过id删除
 	 *
@@ -120,7 +121,7 @@ public class EquipmentOnoffSectionController extends JeecgController<EquipmentOn
 		equipmentOnoffSectionService.removeById(id);
 		return Result.OK("删除成功!");
 	}
-	
+
 	/**
 	 *  批量删除
 	 *
@@ -135,7 +136,7 @@ public class EquipmentOnoffSectionController extends JeecgController<EquipmentOn
 		this.equipmentOnoffSectionService.removeByIds(Arrays.asList(ids.split(",")));
 		return Result.OK("批量删除成功!");
 	}
-	
+
 	/**
 	 * 通过id查询
 	 *
@@ -205,4 +206,26 @@ public class EquipmentOnoffSectionController extends JeecgController<EquipmentOn
 		 List<EquipmentOnoffSection> list = equipmentOnoffSectionService.selectOnoffTransverse(params.get("day_begin")[0], params.get("day_end")[0]);
 		 return Result.OK(list);
 	 }
+
+	 /**
+	  * 获取设备运行时间段信息(按照设备统计开机时长、所有信息等)
+	  */
+//	 @RequiresPermissions("@ss.hasPermi('tpm:tpmequipmentonoffsection:list')")
+	 @GetMapping("/getEfficiency")
+	 public Result getEfficiency(EquipmentOnoffSection equipmentOnoffSection, HttpServletRequest req) {
+		 java.util.Map<java.lang.String,java.lang.String[]> params = req.getParameterMap();
+		 Result list = equipmentOnoffSectionService.selectEfficiency(params.get("equipmentids[]"), params.get("day_begin")[0], params.get("day_end")[0]);
+		 return list;
+	 }
+
+	 /**
+	  * 获取设备运行时间段信息(按照设备统计开机时长、所有信息等)
+	  */
+//	 @RequiresPermissions("@ss.hasPermi('tpm:tpmequipmentonoffsection:list')")
+	 @GetMapping("/getEfficiencyTotal")
+	 public Result getEfficiencyTotal(EquipmentOnoffSection equipmentOnoffSection, HttpServletRequest req) {
+		 java.util.Map<java.lang.String,java.lang.String[]> params = req.getParameterMap();
+		 List<EquipmentOnoffSection> sectionList = equipmentOnoffSectionService.selectEfficiencyTotal(params.get("equipmentids[]"), params.get("day_begin")[0], params.get("day_end")[0]);
+		 return Result.OK(sectionList);
+	 }
 }

+ 4 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentOnoffSection/entity/EquipmentOnoffSection.java

@@ -93,6 +93,10 @@ public class EquipmentOnoffSection implements Serializable {
     @TableField(exist = false)
     @ApiModelProperty(value = "设备编号")
     private String equipmentcode;
+    /**设备名称*/
+    @TableField(exist = false)
+    @ApiModelProperty(value = "设备名称")
+    private String equipmentname;
     /**运行时长(分钟)*/
     @TableField(exist = false)
     @ApiModelProperty(value = "运行时长(分钟)")

+ 20 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentOnoffSection/mapper/EquipmentOnoffSectionMapper.java

@@ -36,4 +36,24 @@ public interface EquipmentOnoffSectionMapper extends BaseMapper<EquipmentOnoffSe
      */
     public List<EquipmentOnoffSection> selectOnoffTransverse(String begintime, String endtime);
 
+    /**
+     * 获取设备运行时间段信息(按照设备统计开机时长、所有信息等)
+     * @param equipmentids 设备id
+     * @param begintime 开始日期
+     * @param endtime 结束日期
+     * @return
+     */
+    public List<EquipmentOnoffSection> selectEfficiency(@Param("equipmentids") List<String> equipmentids,
+                                                        @Param("begintime") String begintime, @Param("endtime") String endtime);
+
+    /**
+     * 获取设备运行时间段信息(按照设备统计开机时长、所有信息等)
+     * @param equipmentids 设备id
+     * @param begintime 开始日期
+     * @param endtime 结束日期
+     * @return
+     */
+    public List<EquipmentOnoffSection> selectEfficiencyTotal(@Param("equipmentids") List<String> equipmentids,
+                                                        @Param("begintime") String begintime, @Param("endtime") String endtime);
+
 }

+ 51 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentOnoffSection/mapper/xml/EquipmentOnoffSectionMapper.xml

@@ -63,4 +63,55 @@
         order by o.equipmentid asc
     </select>
 
+    <!--获取设备运行时间段信息(开机)-->
+    <select id="selectEfficiency" resultMap="EquipmentOnoffSectionResult">
+        select max(o.id) as id,e.id as equipmentid,e.equipmentname, e.equipmentcode, day,
+        sum( CASE o.status WHEN "1" THEN o.duration ELSE 0 END ) as onduration,
+        sum( CASE o.status WHEN "2" THEN o.duration ELSE 0 END ) as pauseduration,
+        sum( CASE o.status WHEN "3" THEN o.duration ELSE 0 END ) as offduration
+        from tpm_equipment_onoff_section as o
+        left join tpm_equipment as e
+        on o.equipmentid=e.id
+        where 1=1
+        <if test="equipmentids != null and equipmentids.size() > 0"><!-- 开始时间检索 -->
+            and o.equipmentid IN
+            <foreach item="id" collection="equipmentids" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="begintime != null and begintime != ''"><!-- 开始时间检索 -->
+            and o.day &gt;= #{begintime}
+        </if>
+        <if test="endtime != null and endtime != ''"><!-- 结束时间检索 -->
+            and o.day &lt;= #{endtime}
+        </if>
+        group by o.equipmentid, o.day
+        order by o.equipmentid asc, o.day asc
+    </select>
+
+    <select id="selectEfficiencyTotal" resultMap="EquipmentOnoffSectionResult">
+        select max(o.id) as id,e.id as equipmentid,e.equipmentname, e.equipmentcode,
+        sum( CASE o.status WHEN "1" THEN o.duration ELSE 0 END ) as onduration,
+        sum( CASE o.status WHEN "2" THEN o.duration ELSE 0 END ) as pauseduration,
+        sum( CASE o.status WHEN "3" THEN o.duration ELSE 0 END ) as offduration
+        from tpm_equipment_onoff_section as o
+        left join tpm_equipment as e
+        on o.equipmentid=e.id
+        where 1=1
+        <if test="equipmentids != null and equipmentids.size() > 0"><!-- 开始时间检索 -->
+            and o.equipmentid IN
+            <foreach item="id" collection="equipmentids" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="begintime != null and begintime != ''"><!-- 开始时间检索 -->
+            and o.day &gt;= #{begintime}
+        </if>
+        <if test="endtime != null and endtime != ''"><!-- 结束时间检索 -->
+            and o.day &lt;= #{endtime}
+        </if>
+        group by o.equipmentid
+        order by o.equipmentid asc
+    </select>
+
 </mapper>

+ 20 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentOnoffSection/service/IEquipmentOnoffSectionService.java

@@ -2,10 +2,12 @@ package org.jeecg.modules.equipmentOnoffSection.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.equipmentOnoffSection.entity.EquipmentOnoffSection;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.system.entity.SysUser;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -34,4 +36,22 @@ public interface IEquipmentOnoffSectionService extends IService<EquipmentOnoffSe
      */
     public List<EquipmentOnoffSection> selectOnoffTransverse(String begintime, String endtime);
 
+    /**
+     * 获取设备运行时间段信息(按照设备统计开机时长、所有信息等)
+     * @param equipmentid 设备id
+     * @param begintime 开始日期
+     * @param endtime 结束日期
+     * @return
+     */
+    public Result selectEfficiency(String[] equipmentid, String begintime, String endtime);
+
+    /**
+     * 获取设备运行时间段汇总信息(按照设备统计开机时长、所有信息等)
+     * @param equipmentid 设备id
+     * @param begintime 开始日期
+     * @param endtime 结束日期
+     * @return
+     */
+    public List<EquipmentOnoffSection> selectEfficiencyTotal(String[] equipmentid, String begintime, String endtime);
+
 }

+ 107 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentOnoffSection/service/impl/EquipmentOnoffSectionServiceImpl.java

@@ -2,16 +2,24 @@ package org.jeecg.modules.equipmentOnoffSection.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.equipmentOnoffSection.entity.EquipmentOnoffSection;
 import org.jeecg.modules.equipmentOnoffSection.mapper.EquipmentOnoffSectionMapper;
 import org.jeecg.modules.equipmentOnoffSection.service.IEquipmentOnoffSectionService;
+import org.jeecg.modules.jmreport.desreport.util.p;
 import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.tpmEquipment.entity.TpmEquipment;
+import org.jeecg.modules.tpmEquipment.mapper.TpmEquipmentMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description: tpm_equipment_onoff_section
@@ -25,6 +33,9 @@ public class EquipmentOnoffSectionServiceImpl extends ServiceImpl<EquipmentOnoff
     @Autowired
     private EquipmentOnoffSectionMapper onoffSectionMapper;
 
+    @Autowired
+    private TpmEquipmentMapper equipmentMapper;
+
     /**
      * 获取设备运行时间段信息(状态横向)
      * @param page
@@ -49,4 +60,100 @@ public class EquipmentOnoffSectionServiceImpl extends ServiceImpl<EquipmentOnoff
         return onoffSectionMapper.selectOnoffTransverse(begintime, endtime);
     }
 
+    /**
+     * 获取设备运行时间段信息(按照设备统计开机时长、所有信息等)
+     * @param equipmentids 设备id
+     * @param begintime 开始日期
+     * @param endtime 结束日期
+     * @return
+     */
+    @Override
+    public Result selectEfficiency(String[] equipmentids, String begintime, String endtime) {
+        List<String> eqs = Arrays.stream(equipmentids).collect(Collectors.toList());
+        List<EquipmentOnoffSection> sectionList = onoffSectionMapper.selectEfficiency(eqs, begintime, endtime);
+
+        HashMap map = new HashMap();
+        List<SectionCls> sectionClsList = new ArrayList<>();
+        int i = 0;
+        List<String> times = new ArrayList<>();
+        for (String equipmentid : equipmentids) {
+            List<EquipmentOnoffSection> subList = sectionList.stream().filter(p -> p.getEquipmentid().equals(equipmentid)).
+                    collect(Collectors.toList());
+            TpmEquipment equipment = equipmentMapper.selectById(equipmentid);
+
+            SectionCls sectionCls = new SectionCls();
+            sectionCls.setEquipmentid(equipmentid);
+            sectionCls.setEquipmentcode(equipment.getEquipmentcode());
+            sectionCls.setEquipmentname(equipment.getEquipmentname());
+
+            List<EquipmentOnoffSection> sections = new ArrayList<>();
+            for (EquipmentOnoffSection section : subList) {
+                if (i == 0) {
+                    times.add(section.getDay());
+                }
+                sections.add(section);
+            }
+            sectionCls.setSectionList(sections);
+            sectionClsList.add(sectionCls);
+            i++;
+        }
+        map.put("times", times);
+        map.put("equipments", sectionClsList);
+
+        return Result.OK(map);
+    }
+
+    /**
+     * 获取设备运行时间段信息(按照设备统计开机时长、所有信息等)
+     * @param equipmentids 设备id
+     * @param begintime 开始日期
+     * @param endtime 结束日期
+     * @return
+     */
+    @Override
+    public List<EquipmentOnoffSection> selectEfficiencyTotal(String[] equipmentids, String begintime, String endtime) {
+        List<String> eqs = Arrays.stream(equipmentids).collect(Collectors.toList());
+        List<EquipmentOnoffSection> sectionList = onoffSectionMapper.selectEfficiencyTotal(eqs, begintime, endtime);
+
+        return sectionList;
+    }
+
+    class SectionCls {
+        private String equipmentid;
+        private String equipmentname;
+        private String equipmentcode;
+        private List<EquipmentOnoffSection>  sectionList;
+
+        public String getEquipmentid() {
+            return equipmentid;
+        }
+
+        public void setEquipmentid(String equipmentid) {
+            this.equipmentid = equipmentid;
+        }
+
+        public String getEquipmentname() {
+            return equipmentname;
+        }
+
+        public void setEquipmentname(String equipmentname) {
+            this.equipmentname = equipmentname;
+        }
+
+        public String getEquipmentcode() {
+            return equipmentcode;
+        }
+
+        public void setEquipmentcode(String equipmentcode) {
+            this.equipmentcode = equipmentcode;
+        }
+
+        public List<EquipmentOnoffSection> getSectionList() {
+            return sectionList;
+        }
+
+        public void setSectionList(List<EquipmentOnoffSection> sectionList) {
+            this.sectionList = sectionList;
+        }
+    }
 }