xiongchao 3 年之前
父節點
當前提交
58afd6ccfe
共有 17 個文件被更改,包括 387 次插入25 次删除
  1. 6 0
      platform-dao/src/main/java/com/platform/dao/dto/sb/SbInfoDTO.java
  2. 2 0
      platform-dao/src/main/java/com/platform/dao/mapper/check/CheckJobMapper.java
  3. 17 0
      platform-dao/src/main/java/com/platform/dao/mapper/sb/SbInfoMapper.java
  4. 43 0
      platform-dao/src/main/java/com/platform/dao/vo/query/check/CheckJobScreenVO.java
  5. 4 0
      platform-dao/src/main/java/com/platform/dao/vo/query/check/CheckJobVO.java
  6. 38 0
      platform-dao/src/main/java/com/platform/dao/vo/sb/SbInfoScreenDetailVO.java
  7. 28 0
      platform-dao/src/main/java/com/platform/dao/vo/sb/SbInfoScreenVO.java
  8. 10 0
      platform-dao/src/main/java/com/platform/dao/vo/sb/SbInfoVO.java
  9. 17 0
      platform-dao/src/main/resources/mapper/check/CheckJobMapper.xml
  10. 25 0
      platform-dao/src/main/resources/mapper/sb/SbInfoMapper.xml
  11. 10 0
      platform-rest/src/main/java/com/platform/rest/controller/check/CheckJobController.java
  12. 22 0
      platform-rest/src/main/java/com/platform/rest/controller/sb/SbInfoController.java
  13. 9 0
      platform-service/src/main/java/com/platform/service/check/CheckJobService.java
  14. 43 6
      platform-service/src/main/java/com/platform/service/check/impl/CheckJobServiceImpl.java
  15. 1 1
      platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java
  16. 26 0
      platform-service/src/main/java/com/platform/service/sb/SbInfoService.java
  17. 86 18
      platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

+ 6 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbInfoDTO.java

@@ -307,6 +307,12 @@ public class SbInfoDTO extends BaseDTO implements Serializable {
      */
     private Integer status;
 
+    /**
+     * 维修单状态
+     */
+    @Transient
+    private Integer repairStatus;
+
     /**
      * 备注
      */

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/mapper/check/CheckJobMapper.java

@@ -41,4 +41,6 @@ public interface CheckJobMapper extends MyMapper<CheckJob> {
     CheckJobVO selectLastJob(CheckJobDTO job);
 
     Integer getNumByDTO(CheckJob checkJob);
+
+    CheckJobVO  getScreenCountByTime(CheckJobDTO model);
 }

+ 17 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbInfoMapper.java

@@ -3,6 +3,7 @@ package com.platform.dao.mapper.sb;
 import com.platform.dao.config.MyMapper;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.entity.sb.SbInfo;
+import com.platform.dao.vo.sb.SbInfoScreenDetailVO;
 import com.platform.dao.vo.sb.SbInfoVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
@@ -25,6 +26,13 @@ public interface SbInfoMapper extends MyMapper<SbInfo> {
      * @return
      */
     List<SbInfoVO> selectVOList(SbInfoDTO dto);
+    /**
+     * 分页查询
+     *
+     * @param dto
+     * @return
+     */
+    List<SbInfoScreenDetailVO> selectScreenDetailVOList(SbInfoDTO dto);
     /**
      * 分页查询
      *
@@ -65,6 +73,14 @@ public interface SbInfoMapper extends MyMapper<SbInfo> {
      */
     SbInfoVO getById(Object id);
 
+    /**
+     * 根据编号查询
+     *
+     * @param no
+     * @return
+     */
+    SbInfoVO getByNo(String no);
+
     /**
      * 根据主键查询
      *
@@ -112,4 +128,5 @@ public interface SbInfoMapper extends MyMapper<SbInfo> {
     void updateBatchValue(List<SbInfo> list);
 
     List selectPageInfoForWarn(SbInfoDTO record);
+
 }

+ 43 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/check/CheckJobScreenVO.java

@@ -0,0 +1,43 @@
+package com.platform.dao.vo.query.check;
+
+import com.platform.dao.entity.upms.SysFile;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Description 点检记录VO结果类
+ * @Author liuyu
+ * @Date 2020-05-29 10:39:40
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class CheckJobScreenVO implements Serializable{
+
+    /**
+     * 本月计划数
+     */
+    private Integer monthNum;
+    /**
+     * 本月完成数
+     */
+    private Integer finishNum;
+    /**
+     * 本月未完成数
+     */
+    private Integer waitNum;
+    /**
+     * 本月未完成率:waitNum/monthNum
+     */
+    private BigDecimal rate;
+    /**
+     * 本周任务
+     */
+    private List<CheckJobVO> weekList;
+}

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/check/CheckJobVO.java

@@ -32,6 +32,10 @@ public class CheckJobVO implements Serializable{
      * 检查类型: 1-点检 2-保养 3-润滑
      */
     private Integer type;
+    /**
+     * 数量统计
+     */
+    private Integer countNum;
     /**
      * 任务名称
      */

+ 38 - 0
platform-dao/src/main/java/com/platform/dao/vo/sb/SbInfoScreenDetailVO.java

@@ -0,0 +1,38 @@
+package com.platform.dao.vo.sb;
+
+import com.platform.common.bean.BaseVO;
+import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.entity.upms.SysFile;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Transient;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author chenli
+ * @Date 2019/8/5
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbInfoScreenDetailVO extends BaseVO implements Serializable {
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 设备编号
+     */
+    private String no;
+    private String zjm;//x 轴
+    private String jbdh;//y轴
+}

+ 28 - 0
platform-dao/src/main/java/com/platform/dao/vo/sb/SbInfoScreenVO.java

@@ -0,0 +1,28 @@
+package com.platform.dao.vo.sb;
+
+import com.platform.common.bean.BaseVO;
+import com.platform.dao.entity.upms.SysFile;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Transient;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Description 大屏显示需要的数据
+ * @Author chenli
+ * @Date 2019/8/5
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbInfoScreenVO extends BaseVO implements Serializable {
+    private List<SbInfoScreenDetailVO> normalSbInfoList;
+    private List<SbInfoScreenDetailVO> repairSbInfoList;
+}

+ 10 - 0
platform-dao/src/main/java/com/platform/dao/vo/sb/SbInfoVO.java

@@ -27,6 +27,16 @@ public class SbInfoVO extends BaseVO implements Serializable {
      * 验收单id
      */
     private String checkId;
+    /**
+     * 维修单状态
+     */
+    @Transient
+    private Integer repairStatus;
+    /**
+     * 报修时间
+     */
+    @Transient
+    private LocalDateTime repairApplyTime;
     /**
      * 保养数目
      */

+ 17 - 0
platform-dao/src/main/resources/mapper/check/CheckJobMapper.xml

@@ -168,6 +168,23 @@
         </where>
     </select>
 
+    <select id="getScreenCountByTime" parameterType="com.platform.dao.dto.check.CheckJobDTO"
+            resultType="com.platform.dao.vo.query.check.CheckJobVO">
+        select count(checkjob.id) as countNum
+        from t_check_job as checkjob
+        <where>
+            <if test="searchStartTime != null">
+                and checkjob.start_time <![CDATA[ >= ]]> #{searchStartTime}
+            </if>
+            <if test="searchEndTime != null">
+                and checkjob.start_time <![CDATA[ <= ]]> #{searchEndTime}
+            </if>
+            <if test="status != null">
+                and checkjob.status = #{status}
+            </if>
+        </where>
+    </select>
+
     <select id="selectDetail" resultType="com.platform.dao.vo.query.check.CheckJobVO">
         select checkjob.*, u.real_name as checkUserName,
                sbinfo.name sbName, sbinfo.no sbNo,

+ 25 - 0
platform-dao/src/main/resources/mapper/sb/SbInfoMapper.xml

@@ -374,6 +374,22 @@ sb.scrap_user_name
         group by sb.id
     </select>
 
+    <select id="selectScreenDetailVOList"
+            parameterType="com.platform.dao.dto.sb.SbInfoDTO"
+            resultType="com.platform.dao.vo.sb.SbInfoScreenDetailVO">
+        select
+        sb.id, sb.no, sb.zjm, sb.jbdh
+        from t_sb_info sb
+        <where>
+            <if test="status != null">
+                and sb.status = #{status}
+            </if>
+            <if test="isShow != null">
+                and sb.is_show = #{isShow}
+            </if>
+        </where>
+    </select>
+
     <select id="selectPageInfoForWarn" parameterType="com.platform.dao.dto.sb.SbInfoDTO"
             resultType="com.platform.dao.vo.sb.SbInfoVO">
         select
@@ -490,6 +506,15 @@ sb.scrap_user_name
         left join t_sb_position position on sb.position_id = position.id
         where sb.id = #{value}
     </select>
+    <select id="getByNo" parameterType="java.lang.Object" resultType="com.platform.dao.vo.sb.SbInfoVO">
+        select
+        <include refid="Left_Column"/>
+        from t_sb_info sb
+        left join t_sb_type sbType on sb.type_id = sbType.id
+        left join t_firm_producer producer on sb.producer_id = producer.id
+        left join t_sb_position position on sb.position_id = position.id
+        where sb.no = #{value}
+    </select>
 
     <select id="getByIds" parameterType="java.util.List" resultType="com.platform.dao.vo.sb.SbInfoVO">
         select

+ 10 - 0
platform-rest/src/main/java/com/platform/rest/controller/check/CheckJobController.java

@@ -135,6 +135,16 @@ public class CheckJobController {
         return new R<>(checkJobService.getCountByDTO(checkJobDTO));
     }
 
+    /**
+     * 大屏数据任务数量
+     *
+     * @param checkJobDTO 点检任务DTO
+     * @return R
+     */
+    @GetMapping("/screen")
+    public R getScreenVO(CheckJobDTO checkJobDTO) {
+        return new R<>(checkJobService.getScreenCountByTime(checkJobDTO));
+    }
   /**
      * 任务导出
      *

+ 22 - 0
platform-rest/src/main/java/com/platform/rest/controller/sb/SbInfoController.java

@@ -53,6 +53,17 @@ public class SbInfoController {
         return new R<>(sbInfoService.getById(id));
     }
 
+    /**
+     * 通过id查询单条记录
+     *
+     * @param no 主键
+     * @return R
+     */
+    @GetMapping("/no/{no}")
+    public R<SbInfoVO> getByNo(@PathVariable("no") String no) {
+        return new R<>(sbInfoService.getScreenDetailByNo(no));
+    }
+
     /**
      * 通过id查询单条记录
      *
@@ -185,6 +196,17 @@ public class SbInfoController {
         return new R<>(sbInfoService.selectVOPage(sbInfoDTO, pageNum, pageSize));
     }
 
+    /**
+     * 获取大屏数据分页
+     *
+     * @param sbInfoDTO 设备基础信息DTO
+     * @return R
+     */
+    @GetMapping("/screen")
+    public R queryScreen(SbInfoDTO sbInfoDTO) {
+        return new R<>(sbInfoService.getModelListRepairAndShowByDTO(sbInfoDTO));
+    }
+
     /**
      * 获取分页:显示保养项目条数,可以直接跳转到保养内容里面,进行新增和查看页面
      *

+ 9 - 0
platform-service/src/main/java/com/platform/service/check/CheckJobService.java

@@ -3,6 +3,7 @@ package com.platform.service.check;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.dao.dto.check.CheckJobDTO;
 import com.platform.dao.entity.check.CheckJob;
+import com.platform.dao.vo.query.check.CheckJobScreenVO;
 import com.platform.dao.vo.query.check.CheckJobVO;
 import com.platform.service.base.IBaseService;
 
@@ -34,6 +35,14 @@ public interface CheckJobService extends IBaseService<CheckJob, CheckJobDTO> {
      */
     AbstractPageResultBean<CheckJobVO> selectPageList(CheckJobDTO record, int pageNum, int pageSize);
 
+    /**
+     * 统计数量
+     *
+     * @param model
+     * @return
+     */
+    CheckJobScreenVO getScreenCountByTime(CheckJobDTO model);
+
     public List<CheckJobVO> getVOListByDTO(CheckJobDTO model);
     /**
      * 生成任务

+ 43 - 6
platform-service/src/main/java/com/platform/service/check/impl/CheckJobServiceImpl.java

@@ -20,10 +20,7 @@ import com.platform.dao.enums.*;
 import com.platform.dao.mapper.check.*;
 import com.platform.dao.mapper.upms.SysFileMapper;
 import com.platform.dao.vo.SysUserVO;
-import com.platform.dao.vo.query.check.CheckJobVO;
-import com.platform.dao.vo.query.check.CheckPlanVO;
-import com.platform.dao.vo.query.check.CheckProjectVO;
-import com.platform.dao.vo.query.check.CheckStandardVO;
+import com.platform.dao.vo.query.check.*;
 import com.platform.dao.vo.sb.SbInfoVO;
 import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.check.CheckJobService;
@@ -36,6 +33,8 @@ import org.springframework.util.CollectionUtils;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
+import java.math.BigDecimal;
+import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -104,7 +103,7 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
             //获取月的第一天0时0分0秒
             LocalDateTime firstDayTime = LocalDateTime.of(model.getSearchDay(), LocalTime.of(0,0,0));
             //获取月的第一天0时0分0秒
-            LocalDateTime lastDayTime = LocalDateTime.of(model.getSearchDay(), LocalTime.of(59,59,59));
+            LocalDateTime lastDayTime = LocalDateTime.of(model.getSearchDay(), LocalTime.of(23,59,59));
             model.setSearchStartTime(firstDayTime);
             model.setSearchEndTime(lastDayTime);
         }
@@ -112,6 +111,44 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
          return BeanConverterUtil.copyListProperties(voList, CheckJob.class);
     }
 
+    @Override
+    public CheckJobScreenVO getScreenCountByTime( CheckJobDTO model) {
+        LocalDate now = LocalDate.now();
+        // 当前月份所有任务+已完成任务
+        LocalDate firstDay = now.with(TemporalAdjusters.firstDayOfMonth());
+        LocalDate lastDay = now.with(TemporalAdjusters.lastDayOfMonth());
+        LocalDateTime firstDayTime = LocalDateTime.of(firstDay, LocalTime.of(0, 0, 0));
+        LocalDateTime lastDayTime = LocalDateTime.of(lastDay, LocalTime.of(23, 59, 59));
+        model.setSearchStartTime(firstDayTime);
+        model.setSearchEndTime(lastDayTime);
+        CheckJobVO allVO = mapper.getScreenCountByTime(model);
+        model.setStatus(CheckJobStatusEnum.FINISHED.getValue());
+        CheckJobVO finishVO = mapper.getScreenCountByTime(model);
+
+        // 本周的待执行任务
+        LocalDate monday = now.with(TemporalAdjusters.previous(DayOfWeek.SUNDAY)).plusDays(1);
+        LocalDate sunday = now.with(TemporalAdjusters.next(DayOfWeek.MONDAY)).minusDays(1);
+        firstDayTime = LocalDateTime.of(monday, LocalTime.of(0,0,0));
+        lastDayTime = LocalDateTime.of(sunday, LocalTime.of(23,59,59));
+        model.setSearchStartTime(firstDayTime);
+        model.setSearchEndTime(lastDayTime);
+        model.setStatus(CheckJobStatusEnum.NOT_EXECUTE.getValue());
+        List<CheckJobVO> voList = mapper.selectList(model);
+        List<CheckJobVO> tenList = mapper.selectList(model);
+        if (voList.size()<=10){
+            tenList =  voList;
+        }
+        tenList = voList.subList(0,10);
+        // 返回
+        CheckJobScreenVO vo = new CheckJobScreenVO();
+        vo.setMonthNum(allVO.getCountNum());
+        vo.setFinishNum(finishVO.getCountNum());
+        vo.setWaitNum(allVO.getCountNum() - finishVO.getCountNum());
+        vo.setRate(BigDecimalUtil.div(new BigDecimal(vo.getWaitNum()*100) , new BigDecimal(vo.getMonthNum()), 2));
+        vo.setWeekList(tenList);
+        return vo;
+    }
+
     @Override
     public List<CheckJobVO> getVOListByDTO(CheckJobDTO model) {
         if (model.getFilter() != null && DataFilterTypeEnum.SELF.getValue() == model.getFilter().intValue()) {
@@ -133,7 +170,7 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
             //获取月的第一天0时0分0秒
             LocalDateTime firstDayTime = LocalDateTime.of(model.getSearchDay(), LocalTime.of(0,0,0));
             //获取月的第一天0时0分0秒
-            LocalDateTime lastDayTime = LocalDateTime.of(model.getSearchDay(), LocalTime.of(59,59,59));
+            LocalDateTime lastDayTime = LocalDateTime.of(model.getSearchDay(), LocalTime.of(23,59,59));
             model.setSearchStartTime(firstDayTime);
             model.setSearchEndTime(lastDayTime);
         }

+ 1 - 1
platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java

@@ -489,7 +489,7 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
             applicationForm.setUpdateTime(LocalDateTime.now());
             super.modModelByPrimaryKey(applicationForm);
 
-            // 如果选择了设备停机,则要修改设备状态
+            // 如果选择了设备停机,则要修改设备状态为启动
             SbInfo info = new SbInfo();
             info.setId(applicationForm.getSbId());
             info.setStatus(SbInfoStatusEnum.IN_USE.getValue());

+ 26 - 0
platform-service/src/main/java/com/platform/service/sb/SbInfoService.java

@@ -4,6 +4,8 @@ import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.entity.sb.SbInfo;
+import com.platform.dao.vo.sb.SbInfoScreenDetailVO;
+import com.platform.dao.vo.sb.SbInfoScreenVO;
 import com.platform.dao.vo.sb.SbInfoVO;
 import com.platform.service.base.IBaseService;
 import org.springframework.web.multipart.MultipartFile;
@@ -25,6 +27,14 @@ public interface SbInfoService extends IBaseService<SbInfo, SbInfoDTO> {
      * @return
      */
     public List<SbInfo> getModelListTreeByDTO(SbInfoDTO model);
+
+    /**
+     * 选择在报修状态的设备、显示的设备
+     *
+     * @param model
+     * @return
+     */
+    public SbInfoScreenVO getModelListRepairAndShowByDTO(SbInfoDTO model);
     /**
      * 批量删除
      *
@@ -57,6 +67,14 @@ public interface SbInfoService extends IBaseService<SbInfo, SbInfoDTO> {
      */
     List<SbInfoVO> selectVOList(SbInfoDTO dto);
 
+    /**
+     * 分页查询
+     *
+     * @param dto
+     * @return
+     */
+    List<SbInfoScreenDetailVO> selectScreenDetailVOList(SbInfoDTO dto);
+
     /**
      * 导出查询
      *
@@ -103,6 +121,14 @@ public interface SbInfoService extends IBaseService<SbInfo, SbInfoDTO> {
      */
     SbInfoVO getById(Object id);
 
+    /**
+     * 根据编号查询
+     *
+     * @param id :
+     * @return :
+     */
+    SbInfoVO getScreenDetailByNo(String no);
+
     /**
      * 分页查询
      *

+ 86 - 18
platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

@@ -27,6 +27,7 @@ import com.platform.dao.dto.workplace.WorkplaceBacklogUserDTO;
 import com.platform.dao.entity.firm.FirmProducer;
 import com.platform.dao.entity.repair.RepairApplicationForm;
 import com.platform.dao.entity.sb.*;
+import com.platform.dao.entity.store.InStoreDetail;
 import com.platform.dao.entity.store.SpareRestoreDetail;
 import com.platform.dao.entity.upms.SysDept;
 import com.platform.dao.entity.upms.SysFile;
@@ -34,6 +35,7 @@ import com.platform.dao.entity.upms.SysUser;
 import com.platform.dao.entity.upms.SysUserDept;
 import com.platform.dao.enums.*;
 import com.platform.dao.mapper.firm.FirmProducerMapper;
+import com.platform.dao.mapper.repair.RepairApplicationFormMapper;
 import com.platform.dao.mapper.sb.*;
 import com.platform.dao.mapper.upms.SysDeptMapper;
 import com.platform.dao.mapper.upms.SysFileMapper;
@@ -48,6 +50,8 @@ import com.platform.dao.vo.SysUserVO;
 import com.platform.dao.vo.export.sb.ExportSbInfoVO;
 import com.platform.dao.vo.export.store.ExportInStoreFormVO;
 import com.platform.dao.vo.query.upms.SysDeptVO;
+import com.platform.dao.vo.sb.SbInfoScreenDetailVO;
+import com.platform.dao.vo.sb.SbInfoScreenVO;
 import com.platform.dao.vo.sb.SbInfoVO;
 import com.platform.dao.vo.sb.SbModelVO;
 import com.platform.service.base.impl.BaseServiceImpl;
@@ -105,7 +109,7 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
     private final SysUserMapper sysUserMapper;
     private final SbTypeMapper sbTypeMapper;
     private final SbPositionMapper sbPositionMapper;
-
+    private final RepairApplicationFormMapper repairApplicationFormMapper;
     private final SysFileMapper sysFileMapper;
 
     private final SysUserDeptService sysUserDeptService;
@@ -203,6 +207,55 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         return mapper.selectByExample(weekend);
     }
 
+    /**
+     * 获取大屏显示的有异常的设备
+     *
+     * @param model
+     * @return
+     */
+    @Override
+    public SbInfoScreenVO getModelListRepairAndShowByDTO(SbInfoDTO model) {
+
+        // 选择所有显示的设备
+        model.setIsShow(SbInfoShowEnum.IS_SHOWING.getValue());
+        List<SbInfoScreenDetailVO> sbInfoList = selectScreenDetailVOList(model);
+
+        // 判断是否有待分配的报修记录,也就是新增的报修
+        List<String> ids = sbInfoList.stream().map(SbInfoScreenDetailVO::getId).collect(Collectors.toList());
+        Weekend<RepairApplicationForm> weekendRepair = new Weekend<>(RepairApplicationForm.class);
+        WeekendCriteria<RepairApplicationForm, Object> weekendCriteria = weekendRepair.weekendCriteria();
+        weekendCriteria.andIn(RepairApplicationForm::getSbId, ids).andEqualTo(RepairApplicationForm::getStatus, RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue());
+        List<RepairApplicationForm> repairList = repairApplicationFormMapper.selectByExample(weekendRepair);
+        List<SbInfoScreenDetailVO> normalSbInfoList = new ArrayList<SbInfoScreenDetailVO>();
+        List<SbInfoScreenDetailVO> repairSbInfoList = new ArrayList<SbInfoScreenDetailVO>();
+        if(CollectionUtil.isNotEmpty(sbInfoList)) {
+            for (SbInfoScreenDetailVO sbInfo : sbInfoList) {
+                boolean find = false;
+                if(CollectionUtil.isNotEmpty(repairList)) {
+                    for (RepairApplicationForm repair : repairList) {
+                        if (repair.getSbId().equals(sbInfo.getId())) {
+                            find = true;
+                            break;
+                        }
+                    }
+                }
+                if (find) {
+                    repairSbInfoList.add(sbInfo);
+                } else {
+                    normalSbInfoList.add(sbInfo);
+                }
+            }
+        }
+        SbInfoScreenVO vo = new SbInfoScreenVO();
+        if(CollectionUtil.isNotEmpty(repairSbInfoList)){
+            vo.setRepairSbInfoList(repairSbInfoList);
+        }
+        if(CollectionUtil.isNotEmpty(normalSbInfoList)){
+            vo.setNormalSbInfoList(normalSbInfoList);
+        }
+        return vo;
+    }
+
     /**
      * 设置查询条件
      */
@@ -546,6 +599,11 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         }
     }
 
+    @Override
+    public List<SbInfoScreenDetailVO> selectScreenDetailVOList(SbInfoDTO model) {
+        return mapper.selectScreenDetailVOList(model);
+    }
+
     @Override
     public List<SbInfoVO> selectVOList(SbInfoDTO model) {
         return mapper.selectVOList(model);
@@ -776,24 +834,7 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
             SbInfoVO parentVo = mapper.getById(vo.getParentId());
             vo.setParentSbName(parentVo.getName());
         }
-        if(StringUtils.isNotBlank(vo.getProducerId())){
-            FirmProducer producer = firmProducerMapper.selectByPrimaryKey(vo.getProducerId());
-            if (producer != null) {
-                vo.setProducerName(producer.getName());
-            }
-        }
 
-        /*vo.setUnit(modelVO.getUnit());
-        vo.setLevel(modelVO.getLevel());
-        vo.setUseType(modelVO.getUseType());
-        vo.setModel(modelVO.getModel());
-        vo.setName(modelVO.getName());
-        vo.setNameModel(modelVO.getNameModel());
-        vo.setTypeId(modelVO.getTypeId());
-        vo.setTypeName(modelVO.getTypeName());
-        vo.setProducerName(modelVO.getProducerName());*/
-        //vo.setInitialValue(modelVO.getValue());
-        //vo.setModelVO(modelVO);
         Weekend<SysFile> weekend = new Weekend<>(SysFile.class);
         weekend.weekendCriteria().andEqualTo(SysFile::getTargetId, vo.getId());
         List<SysFile> sysFiles = sysFileMapper.selectByExample(weekend);
@@ -914,6 +955,33 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         return vo;
     }
 
+    @Override
+    public SbInfoVO getScreenDetailByNo(String no) {
+        SbInfoVO vo = mapper.getByNo(no);
+        if(StringUtils.isNotBlank(vo.getParentId())){
+            SbInfoVO parentVo = mapper.getById(vo.getParentId());
+            vo.setParentSbName(parentVo.getName());
+        }
+
+        if (vo.getSaveUser() != null) {
+            Weekend<SysUser> weekend2 = new Weekend<>(SysUser.class);
+            weekend2.weekendCriteria().andEqualTo(SysUser::getUserId, vo.getSaveUser());
+            SysUser saveUser = sysUserMapper.selectOneByExample(weekend2);
+            if(saveUser!=null){
+                vo.setSaveUserName(saveUser.getRealName());
+            }
+        }
+        if (vo.getRepairUser() != null) {
+            Weekend<SysUser> weekend2 = new Weekend<>(SysUser.class);
+            weekend2.weekendCriteria().andEqualTo(SysUser::getUserId, vo.getRepairUser());
+            SysUser repairUser = sysUserMapper.selectOneByExample(weekend2);
+            if(repairUser!=null){
+                vo.setRepairUserName(repairUser.getRealName());
+            }
+        }
+        return vo;
+    }
+
     @Override
     public MyVOPage<SbInfoVO> selectVOPageByPosition(SbInfoDTO dto, int pageNum, int pageSize) {
         String positionId = dto.getPositionId();