瀏覽代碼

Merge remote-tracking branch 'origin/master'

zhangcl 2 月之前
父節點
當前提交
36b544b7b2
共有 14 個文件被更改,包括 72 次插入28 次删除
  1. 8 0
      yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java
  2. 1 1
      yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/PageUtils.java
  3. 9 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportRespVO.java
  4. 2 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportSaveReqVO.java
  5. 15 9
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java
  6. 7 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillSaveReqVO.java
  7. 2 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/vo/IotDeviceRespVO.java
  8. 4 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/failure/IotFailureReportDO.java
  9. 1 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/IotDeviceMapper.java
  10. 2 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotopeationfill/IotOpeationFillMapper.java
  11. 6 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/failure/IotFailureReportServiceImpl.java
  12. 1 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillService.java
  13. 5 2
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillServiceImpl.java
  14. 9 12
      yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

+ 8 - 0
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java

@@ -3,6 +3,8 @@ package cn.iocoder.yudao.framework.common.util.date;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableMap;
 
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.*;
 import java.time.*;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Calendar;
@@ -236,4 +238,10 @@ public class DateUtils {
         }
         }
 
 
     }
     }
+
+    public static BigDecimal calculateHoursDiff(LocalDateTime start, LocalDateTime end) {
+        Duration duration = Duration.between(start, end);
+        double hoursDiff = duration.toHours() + (duration.toMinutes() % 60) / 60.0;
+        return new BigDecimal(hoursDiff).setScale(1, RoundingMode.HALF_UP);
+    }
 }
 }

+ 1 - 1
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/PageUtils.java

@@ -32,7 +32,7 @@ public class PageUtils {
      * @return 排序字段
      * @return 排序字段
      */
      */
     public static <T> SortingField buildSortingField(Func1<T, ?> func) {
     public static <T> SortingField buildSortingField(Func1<T, ?> func) {
-        return buildSortingField(func, SortingField.ORDER_DESC);
+        return buildSortingField(func, SortingField.ORDER_ASC);
     }
     }
 
 
     /**
     /**

+ 9 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportRespVO.java

@@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.pms.controller.admin.failure.vo;
 
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import lombok.*;
+
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.*;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -46,6 +48,13 @@ public class IotFailureReportRespVO {
     @ExcelProperty("故障时间")
     @ExcelProperty("故障时间")
     private LocalDateTime failureTime;
     private LocalDateTime failureTime;
 
 
+    @Schema(description = "解决时间")
+    @ExcelProperty("解决时间")
+    private LocalDateTime dealTime;
+
+    @Schema(description = "处理小时")
+    private BigDecimal dealHour;
+
     @Schema(description = "故障影响")
     @Schema(description = "故障影响")
     @ExcelProperty("故障影响")
     @ExcelProperty("故障影响")
     private String failureInfluence;
     private String failureInfluence;

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/failure/vo/IotFailureReportSaveReqVO.java

@@ -35,6 +35,8 @@ public class IotFailureReportSaveReqVO {
 
 
     @Schema(description = "故障时间")
     @Schema(description = "故障时间")
     private LocalDateTime failureTime;
     private LocalDateTime failureTime;
+    @Schema(description = "解决时间")
+    private LocalDateTime dealTime;
 
 
     @Schema(description = "故障影响")
     @Schema(description = "故障影响")
     private String failureInfluence;
     private String failureInfluence;

+ 15 - 9
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java

@@ -99,12 +99,21 @@ public class IotOpeationFillController {
             deviceRunLogDO.setCreateTime(LocalDateTime.of(fill.getCreateTime(),localTime));
             deviceRunLogDO.setCreateTime(LocalDateTime.of(fill.getCreateTime(),localTime));
             deviceRunLogDO.setPointName(fill.getPointName());
             deviceRunLogDO.setPointName(fill.getPointName());
             if(logList.size()>0){
             if(logList.size()>0){
-                BigDecimal num1 = logList.get(0).getTotalRunTime();
-                BigDecimal num2 = new BigDecimal(fill.getFillContent());
-                deviceRunLogDO.setTotalRunTime(num1.add(num2));
+                if(createReqVO.get(0).getIsCollection()==1){
+                    deviceRunLogDO.setTotalRunTime(createReqVO.get(0).getTotalRunTime());
+                }else{
+                    BigDecimal num1 = logList.get(0).getTotalRunTime();
+                    BigDecimal num2 = new BigDecimal(fill.getFillContent());
+                    deviceRunLogDO.setTotalRunTime(num1.add(num2));
+                }
             }else{
             }else{
-                BigDecimal num2 = new BigDecimal(fill.getFillContent());
-                deviceRunLogDO.setTotalRunTime(num2);
+                if(createReqVO.get(0).getIsCollection()==1){
+                    deviceRunLogDO.setTotalRunTime(createReqVO.get(0).getTotalRunTime());
+                }else{
+                    BigDecimal num2 = new BigDecimal(fill.getFillContent());
+                    deviceRunLogDO.setTotalRunTime(num2);
+                }
+
             }
             }
 
 
             logDO.add(deviceRunLogDO);
             logDO.add(deviceRunLogDO);
@@ -221,10 +230,7 @@ public class IotOpeationFillController {
     @Operation(summary = "获得运行记录填报分页")
     @Operation(summary = "获得运行记录填报分页")
     public CommonResult<PageResult<IotOpeationFillOrderDO>> getFillRecords(@Valid IotOpeationFillPageReqVO pageReqVO) {
     public CommonResult<PageResult<IotOpeationFillOrderDO>> getFillRecords(@Valid IotOpeationFillPageReqVO pageReqVO) {
 
 
-        List<IotOpeationFillOrderDO> list =  iotOpeationFillService.fillRecords(pageReqVO);
-        PageResult<IotOpeationFillOrderDO> fillList = new PageResult(list,Long.valueOf(list.size()));
-
-        return success(BeanUtils.toBean(fillList, IotOpeationFillOrderDO.class));
+        return success(BeanUtils.toBean( iotOpeationFillService.fillRecords(pageReqVO), IotOpeationFillOrderDO.class));
     }
     }
 
 
 
 

+ 7 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/vo/IotOpeationFillSaveReqVO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import lombok.*;
 
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDate;
 import java.util.*;
 import java.util.*;
 import javax.validation.constraints.*;
 import javax.validation.constraints.*;
@@ -73,4 +74,10 @@ public class IotOpeationFillSaveReqVO {
     private LocalDate createTime;
     private LocalDate createTime;
 
 
     private Integer userId;
     private Integer userId;
+
+    private Integer isCollection;
+
+    private BigDecimal totalRunTime;
+
+    private Long orderId;
 }
 }

+ 2 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/vo/IotDeviceRespVO.java

@@ -170,5 +170,6 @@ public class IotDeviceRespVO {
 
 
     @Schema(description = "负责人姓名 逗号分隔")
     @Schema(description = "负责人姓名 逗号分隔")
     private String responsibleNames;
     private String responsibleNames;
-
+    @Schema(description = "排序字段")
+    private Integer sortColumn;
 }
 }

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/failure/IotFailureReportDO.java

@@ -1,6 +1,8 @@
 package cn.iocoder.yudao.module.pms.dal.dataobject.failure;
 package cn.iocoder.yudao.module.pms.dal.dataobject.failure;
 
 
 import lombok.*;
 import lombok.*;
+
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.*;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -60,6 +62,8 @@ public class IotFailureReportDO extends BaseDO {
      * 故障时间
      * 故障时间
      */
      */
     private LocalDateTime failureTime;
     private LocalDateTime failureTime;
+    private LocalDateTime dealTime;
+    private BigDecimal dealHour;
     /**
     /**
      * 故障影响
      * 故障影响
      */
      */

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/IotDeviceMapper.java

@@ -53,7 +53,7 @@ public interface IotDeviceMapper extends BaseMapperX<IotDeviceDO> {
                 .eqIfPresent(IotDeviceDO::getInfoRemark, reqVO.getInfoRemark())
                 .eqIfPresent(IotDeviceDO::getInfoRemark, reqVO.getInfoRemark())
                 .eqIfPresent(IotDeviceDO::getInfoUrl, reqVO.getInfoUrl())
                 .eqIfPresent(IotDeviceDO::getInfoUrl, reqVO.getInfoUrl())
                 .eqIfPresent(IotDeviceDO::getTemplateJson, reqVO.getTemplateJson())
                 .eqIfPresent(IotDeviceDO::getTemplateJson, reqVO.getTemplateJson())
-                .orderByDesc(IotDeviceDO::getId));
+                .orderByAsc(IotDeviceDO::getSortColumn));
     }
     }
 
 
     default List<IotDeviceDO> selectSimpleList(Collection<Long> deptIds) {
     default List<IotDeviceDO> selectSimpleList(Collection<Long> deptIds) {

+ 2 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotopeationfill/IotOpeationFillMapper.java

@@ -57,6 +57,7 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
     List<IotOpeationFillDO> fillList(IotOpeationFillPageReqVO vo);
     List<IotOpeationFillDO> fillList(IotOpeationFillPageReqVO vo);
     @TenantIgnore
     @TenantIgnore
     List<IotOpeationFillDO> fillListByUserId(IotOpeationFillRespVO vo);
     List<IotOpeationFillDO> fillListByUserId(IotOpeationFillRespVO vo);
+    @TenantIgnore
     List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillRespVO vo);
     List<IotOpeationFillDO> fillListByDeptId(IotOpeationFillRespVO vo);
     @TenantIgnore
     @TenantIgnore
     List<IotOpeationFillDO> rdList();
     List<IotOpeationFillDO> rdList();
@@ -90,5 +91,5 @@ public interface IotOpeationFillMapper extends BaseMapperX<IotOpeationFillDO> {
     @TenantIgnore
     @TenantIgnore
     int updateFillOrder2(IotDeviceRunLogDO vo);
     int updateFillOrder2(IotDeviceRunLogDO vo);
     @TenantIgnore
     @TenantIgnore
-    List<IotOpeationFillOrderDO> fillRecords(IotOpeationFillPageReqVO vo);
+    IPage<IotOpeationFillOrderDO> fillRecords(IPage<IotOpeationFillPageReqVO> page, @Param("deviceId") Long deviceId, @Param("orderName") String orderName,@Param("orderStatus") Integer orderStatus);
 }
 }

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/failure/IotFailureReportServiceImpl.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.pms.service.failure;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.date.DateUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
 import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
@@ -33,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletableFuture;
 
 
@@ -116,6 +118,10 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
         iotFailureReport.setDeleted(false);
         iotFailureReport.setDeleted(false);
         if (iotFailureReport.getIfDeal()) {
         if (iotFailureReport.getIfDeal()) {
             iotFailureReport.setStatus("finished");
             iotFailureReport.setStatus("finished");
+            if (Objects.nonNull(iotFailureReport.getDealTime())) {
+                BigDecimal v = DateUtils.calculateHoursDiff(iotFailureReport.getFailureTime(), iotFailureReport.getDealTime());
+                iotFailureReport.setDealHour(v);
+            }
             iotFailureReportMapper.insert(iotFailureReport);
             iotFailureReportMapper.insert(iotFailureReport);
             sendMessage(iotFailureReport);
             sendMessage(iotFailureReport);
         } else {
         } else {

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillService.java

@@ -104,6 +104,6 @@ public interface IotOpeationFillService {
 
 
     int updateFillOrder2(IotDeviceRunLogDO vo);
     int updateFillOrder2(IotDeviceRunLogDO vo);
 
 
-    List<IotOpeationFillOrderDO> fillRecords(IotOpeationFillPageReqVO vo);
+    PageResult<IotOpeationFillOrderDO> fillRecords(IotOpeationFillPageReqVO vo);
 
 
 }
 }

+ 5 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotopeationfill/IotOpeationFillServiceImpl.java

@@ -10,6 +10,8 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFil
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotopeationfill.IotOpeationFillOrderDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillOrderMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotopeationfill.IotOpeationFillOrderMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
@@ -174,8 +176,9 @@ public class IotOpeationFillServiceImpl implements IotOpeationFillService {
     }
     }
 
 
     @Override
     @Override
-    public List<IotOpeationFillOrderDO> fillRecords(IotOpeationFillPageReqVO vo) {
-        return iotOpeationFillMapper.fillRecords(vo);
+    public PageResult<IotOpeationFillOrderDO> fillRecords(IotOpeationFillPageReqVO vo) {
+        IPage<IotOpeationFillOrderDO> fillOrderDOIPage = iotOpeationFillMapper.fillRecords(Page.of(vo.getPageNo(), vo.getPageSize()),vo.getDeviceId(),vo.getOrderName(),vo.getOrderStatus());
+        return new PageResult<>(fillOrderDOIPage.getRecords(),fillOrderDOIPage.getTotal());
     }
     }
 
 
 }
 }

+ 9 - 12
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotOpeationFillMapper.xml

@@ -149,6 +149,12 @@
                a.id = b.order_id
                a.id = b.order_id
           and
           and
                b.device_id = #{deviceId}
                b.device_id = #{deviceId}
+          <if test="orderName != null  and orderName != ''">
+               and a.order_name like #{orderName}
+          </if>
+          <if test="orderStatus != null  and orderStatus != ''">
+              and a.order_status like #{orderStatus}
+          </if>
     </select>
     </select>
 
 
     <select id="rhList"
     <select id="rhList"
@@ -255,18 +261,9 @@
     <select id="getFillList" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
     <select id="getFillList" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO"
             resultType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO">
             resultType="cn.iocoder.yudao.module.pms.controller.admin.iotopeationfill.vo.IotOpeationFillRespVO">
         select distinct b.* from
         select distinct b.* from
-                                rq_iot_opeation_fill_order a,
-                                rq_iot_opeation_fill b,
-                                rq_iot_device_person c,
-                                rq_iot_model_template_attrs d
+            rq_iot_opeation_fill b
         where
         where
-            a.user_id = c.person_id
-          and
-            c.device_id = b.device_id
-          and
-            a.user_id = #{userId}
-          and
-            b.device_category_id = d.device_category_id
+            b.order_id = #{orderId}
           and
           and
             DATE(b.create_time)=DATE(#{createTime})
             DATE(b.create_time)=DATE(#{createTime})
         order by b.create_time desc
         order by b.create_time desc
@@ -290,7 +287,7 @@
         device_id = #{deviceId}
         device_id = #{deviceId}
         and
         and
         DATE(create_time)  = DATE(#{createTime})
         DATE(create_time)  = DATE(#{createTime})
-        order by create_time
+        order by id
         desc
         desc
         limit 1
         limit 1
     </select>
     </select>