Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

hecheng 3 lat temu
rodzic
commit
da18b19b7c
27 zmienionych plików z 431 dodań i 17 usunięć
  1. 14 0
      zd-api/zd-api-system/src/main/java/com/zd/system/api/laboratory/domain/SensorFunctionStatus.java
  2. 7 0
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/domain/vo/ActAuditconfigInfoVo.java
  3. 8 2
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/ActApplytaskServiceImpl.java
  4. 8 0
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/ActHxpapplyServiceImpl.java
  5. 8 2
      zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpChemicalServiceImpl.java
  6. 3 1
      zd-modules/zd-chemical/src/main/resources/mapper/chemical/ActApplytaskNodeMapper.xml
  7. 46 7
      zd-modules/zd-chemical/src/main/resources/mapper/chemical/ActHxpapplyMapper.xml
  8. 1 1
      zd-modules/zd-chemical/src/main/resources/mapper/chemical/HxpChemicalJoinCabinetMapper.xml
  9. 12 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabHazardController.java
  10. 2 2
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabNotifyplanController.java
  11. 17 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabSubjectController.java
  12. 14 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabHazard.java
  13. 23 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabNotifyplan.java
  14. 14 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/dto/LabHazardNewVo.java
  15. 21 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabClassifiedVo.java
  16. 21 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabClasstypeVo.java
  17. 33 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabHazardBigViewVO.java
  18. 3 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabHazardMapper.java
  19. 20 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabSubjectMapper.java
  20. 3 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabHazardService.java
  21. 19 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabSubjectService.java
  22. 11 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabHazardServiceImpl.java
  23. 1 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectManagerService.java
  24. 28 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectServiceImpl.java
  25. 67 1
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabHazardMapper.xml
  26. 5 1
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabNotifyplanMapper.xml
  27. 22 0
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectMapper.xml

+ 14 - 0
zd-api/zd-api-system/src/main/java/com/zd/system/api/laboratory/domain/SensorFunctionStatus.java

@@ -23,6 +23,12 @@ public class SensorFunctionStatus extends BasicFunctionStatus {
 
     private static final String format_val ="{}{}";
     /**
+     * 传感器id,用于区分多个一样的设备。
+     */
+    @ApiModelProperty("传感器id")
+    private Long id;
+
+    /**
      * 传感器功能值
      */
     @ApiModelProperty("传感器功能值")
@@ -146,4 +152,12 @@ public class SensorFunctionStatus extends BasicFunctionStatus {
     public void setSendDate(String sendDate) {
         this.sendDate = sendDate;
     }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
 }

+ 7 - 0
zd-modules/zd-chemical/src/main/java/com/zd/chemical/domain/vo/ActAuditconfigInfoVo.java

@@ -1,5 +1,6 @@
 package com.zd.chemical.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zd.chemical.domain.ActApplytaskNode;
 import com.zd.common.core.annotation.Excel;
 import com.zd.common.core.web.domain.BaseEntity;
@@ -11,6 +12,7 @@ import lombok.ToString;
 import lombok.experimental.Accessors;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -37,6 +39,11 @@ public class ActAuditconfigInfoVo
     @ApiModelProperty(value = "审批类型")
     private Integer applyTaskStatus;
 
+    /** 获取环节审批的最后一个人审批的时间  */
+    @ApiModelProperty(value = "审批时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date applyTaskTime;
+
     /** 审批拒绝原因 */
     @ApiModelProperty(value = "审批拒绝原因")
     private String refuseContent;

+ 8 - 2
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/ActApplytaskServiceImpl.java

@@ -222,9 +222,15 @@ public class ActApplytaskServiceImpl implements IActApplytaskService
         ActHxpapplyDetail actHxpapplyDetail = new ActHxpapplyDetail();
         actHxpapplyDetail.setHxpapplyId(actApplytaskVo.getTaskId());
         List <ActHxpapplyDetail> actHxpapplyDetails = actHxpapplyDetailMapper.selectActHxpapplyDetailList(actHxpapplyDetail);
-        Map <Long, Long> collect = actApplytaskVo.getActHxpapplyDetailList().stream().collect(Collectors.toMap(ActHxpapplyDetail::getChemicalId, ActHxpapplyDetail::getChemicalId));
+
+//        Map<String, String> collect = new HashMap <>();
+        Map<Long, Long> collect = actApplytaskVo.getActHxpapplyDetailList().stream()
+                .collect(Collectors.toMap(ActHxpapplyDetail::getId,ActHxpapplyDetail::getId));
+//                .forEach(a->{
+//                    collect.put(a.getChemicalId()+"@"+a.getCabinetId(),a.getChemicalId()+"@"+a.getCabinetId());
+//                });
         Consumer <List <ActHxpapplyDetail>> comparator = x->x.stream().forEach(p->{
-            Predicate<Map <Long, Long>> pre = pt -> StringUtils.isNotNull(pt.get(p.getChemicalId()));
+            Predicate<Map <Long, Long>> pre = pt -> StringUtils.isNotNull(pt.get(p.getId()));
             if(pre.test(collect)){
                 p.setTickStatus(1);
                 actHxpapplyDetailMapper.updateActHxpapplyDetail(p);

+ 8 - 0
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/ActHxpapplyServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zd.chemical.service.impl;
 
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -111,11 +112,17 @@ public class ActHxpapplyServiceImpl implements IActHxpapplyService
                     .map(c -> {
                         ActAuditconfigInfoVo actAuditconfigInfoVo = new ActAuditconfigInfoVo();
                         BeanUtils.copyProperties(c, actAuditconfigInfoVo);
+                        //判断审批的环节状态
                         Map<String,Integer> applyTaskStatus = new HashMap <>();
                         applyTaskStatus.put("applyTaskStatus",0);
+                        //获取环节审批的最后一个人审批的时间
+                        Map<String,Date> applyTaskTime = new HashMap <>();
                         List <ActApplytaskNodeVo> collect = Optional.ofNullable(actApplytaskNodes).orElseGet(Collections::emptyList)
                                 .stream().filter(n -> n.getAuditconfigId() == c.getId())
                                 .map(n->{
+                                    if(StringUtils.isNotNull(n.getUpdateTime())){
+                                        applyTaskTime.put("applyTaskTime",n.getUpdateTime());
+                                    }
                                     if(n.getNodeStatus()==1){
                                         applyTaskStatus.put("applyTaskStatus",n.getNodeStatus());
                                     }else if(n.getNodeStatus()==2){
@@ -141,6 +148,7 @@ public class ActHxpapplyServiceImpl implements IActHxpapplyService
                                 .collect(Collectors.toList());
                         actAuditconfigInfoVo.setActApplytaskNodeList(collect);
                         actAuditconfigInfoVo.setApplyTaskStatus(applyTaskStatus.get("applyTaskStatus"));
+                        actAuditconfigInfoVo.setApplyTaskTime(applyTaskTime.get("applyTaskTime"));
                         return actAuditconfigInfoVo;
                     }).collect(Collectors.toList());
             actHxpapplyInfoVo.setConfigInfoList(configInfoList);

+ 8 - 2
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/HxpChemicalServiceImpl.java

@@ -30,6 +30,7 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
 import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
 import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -497,8 +498,13 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
 
     @Override
     public List<Map<String, Object>> queryCriticaliBySubId(List<Long> subIds) {
-        List<Map<String, Object>> map = hxpChemicalMapper.queryCriticaliBySubId(subIds);
-        return map;
+        List<Map<String, Object>> list = hxpChemicalMapper.queryCriticaliBySubId(subIds);
+        if(CollectionUtils.isNotEmpty(list)){
+            if(list.get(0) == null){
+                list.remove(0);
+            }
+        }
+        return list;
     }
 
     @Override

+ 3 - 1
zd-modules/zd-chemical/src/main/resources/mapper/chemical/ActApplytaskNodeMapper.xml

@@ -39,7 +39,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectActApplytaskNodeInfoList" parameterType="com.zd.chemical.domain.ActApplytaskNode" resultType="com.zd.chemical.domain.vo.ActApplytaskNodeVo">
         SELECT an.id, an.node_name, an.applytask_id, an.auditconfig_id, an.apply_user_ids, an.node_status, an.node_content, an.node_order, an.apply_userid,
         (SELECT GROUP_CONCAT(su.user_id,',',su.nick_name,',',IFNULL(su.avatar,''),',',IFNULL(pt.post_name,'')
-        SEPARATOR ';') FROM sys_user su LEFT JOIN sys_post pt ON pt.`post_id` = su.`position` WHERE FIND_IN_SET(su.user_id, an.apply_user_ids)) applyUserInfo
+        SEPARATOR ';') FROM sys_user su LEFT JOIN sys_post pt ON pt.`post_id` = su.`position` WHERE FIND_IN_SET(su.user_id, an.apply_user_ids)) applyUserInfo,
+        an.`update_time`
         FROM act_applytask_node an
         <where>
             <if test="nodeName != null  and nodeName != ''"> and an.node_name like concat('%', #{nodeName}, '%')</if>
@@ -110,6 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="nodeContent != null">node_content = #{nodeContent},</if>
             <if test="nodeOrder != null">node_order = #{nodeOrder},</if>
             <if test="applyUserid != null">apply_userid = #{applyUserid},</if>
+            update_time = SYSDATE(),
         </trim>
         where id = #{id}
     </update>

+ 46 - 7
zd-modules/zd-chemical/src/main/resources/mapper/chemical/ActHxpapplyMapper.xml

@@ -91,11 +91,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT xx1.* FROM (
             SELECT xx.id,xx.applyNum,xx.subscriber,xx.subName,xx.chemicalNames,xx.createTime,xx.overTime,xx.approvalContent,xx.approvalStatus,
             CASE WHEN xx.approvalStatus = 0 THEN
-            (SELECT GROUP_CONCAT(ur.user_id,';',ur.nick_name) FROM sys_user ur WHERE FIND_IN_SET(ur.user_id,xx.currentApprover))
+            (SELECT GROUP_CONCAT(ur.user_id,';',ur.nick_name) FROM sys_user ur
+                WHERE ur.`user_id`
+                IN (
+                SELECT
+                SUBSTRING_INDEX(SUBSTRING_INDEX(xx.currentApprover,',', b.help_topic_id + 1), ',', -1) result
+                FROM
+                mysql.help_topic b
+                WHERE
+                b.help_topic_id &lt; (LENGTH(xx.currentApprover) - LENGTH(REPLACE(xx.currentApprover, ',', '')) + 1)
+                )
+            )
             ELSE ''
             END currentApprover,
             CASE WHEN xx.approvalStatus = 3 THEN ''
-            ELSE (SELECT GROUP_CONCAT(ur.user_id,';',ur.nick_name) FROM sys_user ur WHERE FIND_IN_SET(ur.user_id,xx.historyApprover))
+            ELSE (SELECT GROUP_CONCAT(ur.user_id,';',ur.nick_name) FROM sys_user ur
+                WHERE ur.`user_id`
+                IN (
+                SELECT
+                SUBSTRING_INDEX(SUBSTRING_INDEX(xx.historyApprover,',', b.help_topic_id + 1), ',', -1) result
+                FROM
+                mysql.help_topic b
+                WHERE
+                b.help_topic_id &lt; (LENGTH(xx.historyApprover) - LENGTH(REPLACE(xx.historyApprover, ',', '')) + 1)
+                )
+            )
             END historyApprover,
             xx.currentApprover currentApproverIds,xx.userId
             FROM (
@@ -103,7 +123,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             SELECT ah.id,ah.`apply_num` applyNum,
             su.nick_name subscriber,
             st.`name` subName,
-            GROUP_CONCAT(hd.chemical_name ORDER BY hd.chemical_name DESC,'-申购量:',hd.apply_num,'g' SEPARATOR '; ') chemicalNames,
+            GROUP_CONCAT(CONCAT(hd.chemical_name,'-申购量:' ,hd.apply_num ,'g') ORDER BY hd.chemical_name DESC,hd.apply_num DESC  SEPARATOR '; ') chemicalNames,
             ah.`create_time` createTime,
             ak.`over_time` overTime,
             CASE WHEN ak.approval_status=0 THEN '审批中'
@@ -168,11 +188,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT xx1.* FROM (
             SELECT xx.id,xx.applyNum,xx.subscriber,xx.subName,xx.chemicalNames,xx.createTime,xx.overTime,xx.approvalContent,xx.approvalStatus,
             CASE WHEN xx.approvalStatus = 0 THEN
-            (SELECT GROUP_CONCAT(ur.user_id,';',ur.nick_name) FROM sys_user ur WHERE FIND_IN_SET(ur.user_id,xx.currentApprover))
+            (SELECT GROUP_CONCAT(ur.user_id,';',ur.nick_name) FROM sys_user ur
+                WHERE ur.`user_id`
+                IN (
+                SELECT
+                SUBSTRING_INDEX(SUBSTRING_INDEX(xx.currentApprover,',', b.help_topic_id + 1), ',', -1) result
+                FROM
+                mysql.help_topic b
+                WHERE
+                b.help_topic_id &lt; (LENGTH(xx.currentApprover) - LENGTH(REPLACE(xx.currentApprover, ',', '')) + 1)
+                )
+            )
             ELSE ''
             END currentApprover,
             CASE WHEN xx.approvalStatus = 3 THEN ''
-            ELSE (SELECT GROUP_CONCAT(ur.user_id,';',ur.nick_name) FROM sys_user ur WHERE FIND_IN_SET(ur.user_id,xx.historyApprover))
+            ELSE (SELECT GROUP_CONCAT(ur.user_id,';',ur.nick_name) FROM sys_user ur
+                WHERE ur.`user_id`
+                IN (
+                SELECT
+                SUBSTRING_INDEX(SUBSTRING_INDEX(xx.historyApprover,',', b.help_topic_id + 1), ',', -1) result
+                FROM
+                mysql.help_topic b
+                WHERE
+                b.help_topic_id &lt; (LENGTH(xx.historyApprover) - LENGTH(REPLACE(xx.historyApprover, ',', '')) + 1)
+                )
+            )
             END historyApprover,
             xx.currentApprover currentApproverIds,xx.userId
             FROM (
@@ -180,7 +220,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             SELECT ah.id,ah.`apply_num` applyNum,
             su.nick_name subscriber,
             st.`name` subName,
-            GROUP_CONCAT(hd.chemical_name ORDER BY hd.chemical_name DESC,'-申购量:',hd.apply_num,'g' SEPARATOR '; ') chemicalNames,
+            GROUP_CONCAT(CONCAT(hd.chemical_name,'-申购量:' ,hd.apply_num ,'g') ORDER BY hd.chemical_name DESC,hd.apply_num DESC  SEPARATOR '; ') chemicalNames,
             ah.`create_time` createTime,
             ak.`over_time` overTime,
             CASE WHEN ak.approval_status=0 THEN '审批中'
@@ -283,7 +323,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="searchValue != null ">
             and (
             ah.apply_num like concat('%', #{searchValue}, '%') or
-            su.nick_name like concat('%', #{searchValue}, '%') or
             hd.chemical_name like concat('%', #{searchValue}, '%') or
             st.name like concat('%', #{searchValue}, '%')
             )

+ 1 - 1
zd-modules/zd-chemical/src/main/resources/mapper/chemical/HxpChemicalJoinCabinetMapper.xml

@@ -38,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         END
         END cabinetStatus,
         cjc.create_time createTime,
-        (SELECT ur.nick_name FROM sys_user ur WHERE ur.user_id = ct.user_id) createBy,cjc.status,
+        (SELECT ur.nick_name FROM sys_user ur WHERE ur.user_id = cjc.user_id) createBy,cjc.status,
         IFNULL(CONCAT(cjc.tare,cl.chemical_unit),'') tare
         FROM hxp_chemical_join_cabinet cjc LEFT JOIN hxp_cabinet ct ON ct.id = cjc.cabinet_id
         LEFT JOIN hxp_chemical cl ON cjc.chemical_id = cl.id

+ 12 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabHazardController.java

@@ -16,6 +16,7 @@ import com.zd.laboratory.domain.LabQpSubjectRelation;
 import com.zd.laboratory.domain.dto.LabHazardDTO;
 import com.zd.laboratory.domain.dto.LabHazardJoinSubDTO;
 import com.zd.laboratory.domain.dto.LabHazardNewVo;
+import com.zd.laboratory.domain.vo.LabHazardBigViewVO;
 import com.zd.laboratory.domain.vo.LabHazardColumnarVO;
 import com.zd.laboratory.domain.vo.LabHazardSubVO;
 import com.zd.laboratory.domain.vo.LabHazardVO;
@@ -291,4 +292,15 @@ public class LabHazardController extends BaseController {
         List<LabHazardColumnarVO> list = labHazardService.queryHazardList(labHazardVO);
         return getDataTable(list);
     }
+
+
+
+    /**
+     * 危险源统计列表(大屏用)
+     */
+    @GetMapping("/queryBigViewHazardList")
+    @ApiOperation(value = "危险源统计列表(大屏用)")
+    public AjaxResult queryBigViewHazardList(LabHazardVO labHazardVO) {
+        return AjaxResult.success(labHazardService.queryBigViewHazardList(labHazardVO));
+    }
 }

+ 2 - 2
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabNotifyplanController.java

@@ -105,8 +105,8 @@ public class LabNotifyplanController extends BaseController
     public TableDataInfo<LabNotifyplanVO> listCollegeTz(LabNotifyplanVO labNotifyplan, HttpServletRequest request)
     {
         startPage();
-        labNotifyplan.setType(1);//1大屏通知
-        labNotifyplan.setNotifyType(2);//2院校通知
+//        labNotifyplan.setType(1);//1大屏通知
+//        labNotifyplan.setNotifyType(2);//2院校通知
         List<LabNotifyplanVO> list = labNotifyplanService.selectLabNotifyplanListVO(labNotifyplan,request);
         return getDataTable(list);
     }

+ 17 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabSubjectController.java

@@ -18,6 +18,7 @@ import com.zd.laboratory.domain.LabHazard;
 import com.zd.laboratory.domain.LabHazardSubjectRelation;
 import com.zd.laboratory.domain.LabQpSubjectRelation;
 import com.zd.laboratory.domain.LabSubject;
+import com.zd.laboratory.domain.vo.LabClasstypeVo;
 import com.zd.laboratory.domain.vo.LabHazardSubjectRelationVO;
 import com.zd.laboratory.domain.vo.LabSubjectVO;
 import com.zd.laboratory.mapper.LabSubjectMapper;
@@ -398,4 +399,20 @@ public class LabSubjectController extends BaseController {
         }
         return AjaxResult.success(labQpSubjectRelation);
     }
+
+    /**
+     * 查询首页分类统计
+     */
+    @GetMapping("/getTypeCount")
+    public AjaxResult getTypeCount(LabSubjectVO labSubject) {
+        return AjaxResult.success(labSubjectService.getTypeCount(labSubject));
+    }
+
+    /**
+     * 查询首页分级统计
+     */
+    @GetMapping("/getFiedCount")
+    public AjaxResult getFiedCount(LabSubjectVO labSubject) {
+        return AjaxResult.success(labSubjectService.getFiedCount(labSubject));
+    }
 }

+ 14 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabHazard.java

@@ -170,6 +170,12 @@ public class LabHazard extends BaseEntity implements HazardTypeInterface {
     private Integer scanCount = 0;
 
     /**
+     * 危险源类型(查看字典表lab_hazard_type)
+     */
+    @ApiModelProperty(value = "危险源类型(查看字典表lab_hazard_type)")
+    private Integer hazardTypeMode;
+
+    /**
      * 危险源和实验室关联信息
      */
     private List<LabHazardSubjectRelation> labHazardSubjectRelationList;
@@ -362,4 +368,12 @@ public class LabHazard extends BaseEntity implements HazardTypeInterface {
     public HazardTypeEnum azardType() {
         return HazardTypeEnum.HAZARD;
     }
+
+    public Integer getHazardTypeMode() {
+        return hazardTypeMode;
+    }
+
+    public void setHazardTypeMode(Integer hazardTypeMode) {
+        this.hazardTypeMode = hazardTypeMode;
+    }
 }

+ 23 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabNotifyplan.java

@@ -1,5 +1,7 @@
 package com.zd.laboratory.domain;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.hibernate.validator.constraints.Length;
@@ -8,6 +10,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.zd.common.core.web.domain.BaseEntity;
 
+import java.util.Date;
+
 /**
  * 大屏通知计划对象 lab_notifyplan
  *
@@ -82,6 +86,15 @@ public class LabNotifyplan extends BaseEntity
     @Length(message = "修改人姓名长度不能超过50")
     @ApiModelProperty(value = "修改人姓名")
     private String updateUsername;
+
+    /**
+     * 执行时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "执行时间")
+    private Date executionTime;
+
+
     public void setId(Long id)
     {
         this.id = id;
@@ -197,6 +210,15 @@ public class LabNotifyplan extends BaseEntity
     public String getConAbstract() {        return conAbstract;    }
 
     public void setConAbstract(String conAbstract) {        this.conAbstract = conAbstract;    }
+
+    public Date getExecutionTime() {
+        return executionTime;
+    }
+
+    public void setExecutionTime(Date executionTime) {
+        this.executionTime = executionTime;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -216,6 +238,7 @@ public class LabNotifyplan extends BaseEntity
                 .append("updateUserid", getUpdateUserid())
                 .append("updateUsername", getUpdateUsername())
                 .append("updateTime", getUpdateTime())
+                .append("executionTime", getExecutionTime())
                 .toString();
     }
 }

+ 14 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/dto/LabHazardNewVo.java

@@ -51,6 +51,12 @@ public class LabHazardNewVo implements QCInterface {
      */
     private String anotherCode;
 
+    /**
+     * 危险源类型(查看字典表lab_hazard_type)
+     */
+    @ApiModelProperty(value = "危险源类型(查看字典表lab_hazard_type)")
+    private Integer hazardTypeMode;
+
     public Long getId() {
         return id;
     }
@@ -123,4 +129,12 @@ public class LabHazardNewVo implements QCInterface {
     public String getQrCodeUrl() {
         return StrUtil.format(SysProperties.getQrcodeFormat(),id, 3) ;
     }
+
+    public Integer getHazardTypeMode() {
+        return hazardTypeMode;
+    }
+
+    public void setHazardTypeMode(Integer hazardTypeMode) {
+        this.hazardTypeMode = hazardTypeMode;
+    }
 }

+ 21 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabClassifiedVo.java

@@ -0,0 +1,21 @@
+package com.zd.laboratory.domain.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2022/8/29
+ */
+@Data
+public class LabClassifiedVo {
+
+    private Long id;
+
+    private String classifiedName;
+
+    private BigDecimal totalNum;
+}

+ 21 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabClasstypeVo.java

@@ -0,0 +1,21 @@
+package com.zd.laboratory.domain.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2022/8/29
+ */
+@Data
+public class LabClasstypeVo {
+
+    private Long id;
+
+    private String typeName;
+
+    private BigDecimal totalNum;
+}

+ 33 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabHazardBigViewVO.java

@@ -0,0 +1,33 @@
+package com.zd.laboratory.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 危险源VO
+ *
+ * @Author: cyl
+ * @Date: 2022/08/29/15:17
+ * @Description:
+ */
+@ApiModel("危险源")
+@Data
+public class LabHazardBigViewVO {
+
+    @ApiModelProperty("字典名字")
+    private String dictLabel;
+
+    @ApiModelProperty("字典值")
+    private String dictValue;
+
+    @ApiModelProperty("危险源总量")
+    private BigDecimal totalNum;
+
+    @ApiModelProperty("危险源单位")
+    private String unit;
+
+
+}

+ 3 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabHazardMapper.java

@@ -4,6 +4,7 @@ import com.zd.laboratory.domain.LabHazard;
 import com.zd.laboratory.domain.LabHazardSubjectRelation;
 import com.zd.laboratory.domain.dto.LabHazardDTO;
 import com.zd.laboratory.domain.dto.LabHazardNewVo;
+import com.zd.laboratory.domain.vo.LabHazardBigViewVO;
 import com.zd.laboratory.domain.vo.LabHazardColumnarVO;
 import com.zd.laboratory.domain.vo.LabHazardVO;
 
@@ -135,5 +136,7 @@ public interface LabHazardMapper {
 
     List<LabHazardColumnarVO> queryHazardList(LabHazardVO labHazardVO);
 
+    List<LabHazardBigViewVO> queryBigViewHazardList(LabHazardVO labHazardVO);
+
     int queryNameCount(LabHazard labHazard);
 }

+ 20 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabSubjectMapper.java

@@ -1,6 +1,8 @@
 package com.zd.laboratory.mapper;
 
 import com.zd.laboratory.domain.LabSubject;
+import com.zd.laboratory.domain.vo.LabClassifiedVo;
+import com.zd.laboratory.domain.vo.LabClasstypeVo;
 import com.zd.laboratory.domain.vo.LabSubjectDetailVO;
 import com.zd.laboratory.domain.vo.LabSubjectVO;
 import com.zd.system.api.laboratory.domain.TotalByID;
@@ -248,4 +250,22 @@ public interface LabSubjectMapper {
 
     List<LabSubject> getByIds(List<Long> ids);
 
+
+    /**
+     * 查询首页分类统计
+     *
+     * @param labSubject 实验室
+     * @return 实验室集合
+     */
+    public List<LabClasstypeVo> getTypeCount(LabSubjectVO labSubject);
+
+
+    /**
+     * 查询首页分类统计
+     *
+     * @param labSubject 实验室
+     * @return 实验室集合
+     */
+    public List<LabClassifiedVo> getFiedCount(LabSubjectVO labSubject);
+
 }

+ 3 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabHazardService.java

@@ -3,6 +3,7 @@ package com.zd.laboratory.service;
 import com.zd.laboratory.domain.LabHazard;
 import com.zd.laboratory.domain.dto.LabHazardDTO;
 import com.zd.laboratory.domain.dto.LabHazardNewVo;
+import com.zd.laboratory.domain.vo.LabHazardBigViewVO;
 import com.zd.laboratory.domain.vo.LabHazardColumnarVO;
 import com.zd.laboratory.domain.vo.LabHazardVO;
 
@@ -83,5 +84,7 @@ public interface ILabHazardService {
 
     List<LabHazardColumnarVO> queryHazardList(LabHazardVO labHazardVO);
 
+    List<LabHazardBigViewVO> queryBigViewHazardList(LabHazardVO labHazardVO);
+
     int updateLabHazardLook(LabHazard labHazard);
 }

+ 19 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabSubjectService.java

@@ -1,6 +1,8 @@
 package com.zd.laboratory.service;
 
 import com.zd.laboratory.domain.LabSubject;
+import com.zd.laboratory.domain.vo.LabClassifiedVo;
+import com.zd.laboratory.domain.vo.LabClasstypeVo;
 import com.zd.laboratory.domain.vo.LabSubjectVO;
 import com.zd.system.api.laboratory.domain.TotalByID;
 import com.zd.system.api.laboratory.domain.vo.LabSubClassVO;
@@ -224,4 +226,21 @@ public interface ILabSubjectService {
     public List<LabSubject> multipleDetpBysubList(Long[] ids);
 
     List<LabSubject> getByIds(List<Long> ids);
+
+
+    /**
+     * 查询首页分类统计
+     *
+     * @param labSubject 实验室
+     * @return 实验室集合
+     */
+    public List<LabClasstypeVo> getTypeCount(LabSubjectVO labSubject);
+
+    /**
+     * 查询首页分级统计
+     *
+     * @param labSubject 实验室
+     * @return 实验室集合
+     */
+    public List<LabClassifiedVo> getFiedCount(LabSubjectVO labSubject);
 }

+ 11 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabHazardServiceImpl.java

@@ -12,6 +12,7 @@ import com.zd.laboratory.domain.LabRiskPlan;
 import com.zd.laboratory.domain.LabSafeClassified;
 import com.zd.laboratory.domain.dto.LabHazardDTO;
 import com.zd.laboratory.domain.dto.LabHazardNewVo;
+import com.zd.laboratory.domain.vo.LabHazardBigViewVO;
 import com.zd.laboratory.domain.vo.LabHazardColumnarVO;
 import com.zd.laboratory.domain.vo.LabHazardVO;
 import com.zd.laboratory.mapper.*;
@@ -265,6 +266,16 @@ public class LabHazardServiceImpl implements ILabHazardService {
         return datas;
     }
 
+    /**
+     * 危险源统计列表
+     */
+    @Override
+    @DataScope(deptAlias = "st", permi = PerPrefix.LABORATORY_HAZARD)
+    public List<LabHazardBigViewVO> queryBigViewHazardList(LabHazardVO labHazardVO) {
+        List<LabHazardBigViewVO> datas = labHazardMapper.queryBigViewHazardList(labHazardVO);
+        return datas;
+    }
+
     @Transactional
     @Override
     @DataScope(deptAlias = "h")

+ 1 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectManagerService.java

@@ -794,6 +794,7 @@ public class LabSubjectManagerService {
                         sensorFunctionStatus.setUnit(c.getUnit());
                         sensorFunctionStatus.setNumberDecimal(c.getNumberDecimal());
                         sensorFunctionStatus.setRouteNum(a.getRouteNum());
+                        sensorFunctionStatus.setId(a.getId());
                         if (wran != null && wran.contains(c.getFunNum())) {
                             sensorFunctionStatus.setHasWarn(true);
                         }

+ 28 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectServiceImpl.java

@@ -14,6 +14,8 @@ import com.zd.laboratory.domain.LabHazardSubjectRelation;
 import com.zd.laboratory.domain.LabQpSubjectRelation;
 import com.zd.laboratory.domain.LabSubject;
 import com.zd.laboratory.domain.dto.LabHazardJoinSubDTO;
+import com.zd.laboratory.domain.vo.LabClassifiedVo;
+import com.zd.laboratory.domain.vo.LabClasstypeVo;
 import com.zd.laboratory.domain.vo.LabSubjectVO;
 import com.zd.laboratory.mapper.LabHazardSubjectRelationMapper;
 import com.zd.laboratory.mapper.LabQpSubjectRelationMapper;
@@ -441,4 +443,30 @@ public class LabSubjectServiceImpl implements ILabSubjectService {
         }
         return labSubjectMapper.getByIds(ids);
     }
+
+
+    /**
+     * 查询首页分类统计
+     *
+     * @param labSubject 实验室
+     * @return 实验室
+     */
+    @Override
+    @DataScope(deptAlias = "st", permi = PerPrefix.LABORATORY_SUBJECT)
+    public List<LabClasstypeVo> getTypeCount(LabSubjectVO labSubject) {
+        return labSubjectMapper.getTypeCount(labSubject);
+    }
+
+
+    /**
+     * 查询首页分级统计
+     *
+     * @param labSubject 实验室
+     * @return 实验室
+     */
+    @Override
+    @DataScope(deptAlias = "st", permi = PerPrefix.LABORATORY_SUBJECT)
+    public List<LabClassifiedVo> getFiedCount(LabSubjectVO labSubject) {
+        return labSubjectMapper.getFiedCount(labSubject);
+    }
 }

+ 67 - 1
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabHazardMapper.xml

@@ -35,6 +35,7 @@
         <result property="content"    column="content"    />
         <result property="qrCodeUrl"    column="qr_code_url"    />
         <result property="scanCount"    column="scan_count"    />
+        <result property="hazardTypeMode"    column="hazard_type_mode"    />
     </resultMap>
 
     <resultMap type="com.zd.laboratory.domain.vo.LabHazardVO" id="LabHazardVoResult">
@@ -185,7 +186,8 @@
                b.id          as sub_id,
                b.hazard_id   as sub_hazard_id,
                b.subject_id  as sub_subject_id,
-               b.create_time as sub_create_time
+               b.create_time as sub_create_time,
+               a.hazard_type_mode
         from lab_hazard a
                  left join lab_hazard_subject_relation b on b.hazard_id = a.id
         where a.id = #{id}
@@ -262,6 +264,7 @@
             <if test="code != null">code,</if>
             <if test="content != null">content,</if>
             <if test="scanCount != null">scan_count,</if>
+            <if test="hazardTypeMode != null">hazard_type_mode,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="chName != null">#{chName},</if>
@@ -292,6 +295,7 @@
             <if test="code != null">#{code},</if>
             <if test="content != null">#{content},</if>
             <if test="scanCount != null">#{scanCount},</if>
+            <if test="hazardTypeMode != null">#{hazardTypeMode},</if>
         </trim>
     </insert>
 
@@ -326,6 +330,7 @@
             <if test="code != null">code = #{code},</if>
             <if test="content != null">content = #{content},</if>
             <if test="scanCount != null">scan_count = #{scanCount},</if>
+            <if test="hazardTypeMode != null">hazard_type_mode = #{hazardTypeMode},</if>
         </trim>
         where id = #{id}
     </update>
@@ -536,6 +541,67 @@
 
     </select>
 
+
+    <select id="queryBigViewHazardList" resultType="com.zd.laboratory.domain.vo.LabHazardBigViewVO" parameterType="com.zd.laboratory.domain.vo.LabHazardVO">
+
+        <!--SELECT sd.`dict_label` dictLabel,sd.`dict_value` dictValue,ROUND((SUM(IFNULL(sk.usages,0)-IFNULL(sk.tare,0)))/1000,2) totalNum,'kg' unit
+        FROM sys_dict_data sd
+        LEFT JOIN lab_hazard hd  ON sd.`dict_value` = hd.`hazard_type_mode`
+        LEFT JOIN lab_hazard_subject_relation hsr ON hsr.hazard_id = hd.`id`
+        LEFT JOIN hxp_stock sk ON sk.`sub_id` = hsr.`subject_id` AND sk.`status`=1
+        LEFT JOIN lab_subject st ON sk.`sub_id` = st.`id`
+        WHERE sd.`dict_type` = 'lab_hazard_type' AND sd.`dict_value`=1
+        -->
+        SELECT sd.`dict_label` dictLabel,sd.`dict_value` dictValue,SUM(CASE WHEN hsr.id IS NULL THEN 0 ELSE 1 END) totalNum,'kg' unit FROM sys_dict_data sd
+        LEFT JOIN lab_hazard hd  ON sd.`dict_value` = hd.`hazard_type_mode`
+        LEFT JOIN lab_hazard_subject_relation hsr ON hsr.hazard_id = hd.`id`
+        LEFT JOIN lab_subject st ON hsr.`subject_id` = st.`id`
+        WHERE sd.`dict_type` = 'lab_hazard_type' AND sd.`dict_value`=1
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+
+        UNION ALL
+
+        SELECT sd.`dict_label` dictLabel,sd.`dict_value` dictValue,SUM(CASE WHEN hsr.id IS NULL THEN 0 ELSE 1 END) totalNum,'瓶' unit FROM sys_dict_data sd
+        LEFT JOIN lab_hazard hd  ON sd.`dict_value` = hd.`hazard_type_mode`
+        LEFT JOIN lab_hazard_subject_relation hsr ON hsr.hazard_id = hd.`id`
+        LEFT JOIN lab_subject st ON hsr.`subject_id` = st.`id`
+        WHERE sd.`dict_type` = 'lab_hazard_type' AND sd.`dict_value`=2
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+
+        UNION ALL
+
+        SELECT sd.`dict_label` dictLabel,sd.`dict_value` dictValue,SUM(CASE WHEN hd.id IS NULL THEN 0 ELSE 1 END) totalNum,'台' unit FROM sys_dict_data sd
+        LEFT JOIN lab_hazard hd  ON sd.`dict_value` = hd.`hazard_type_mode`
+        LEFT JOIN lab_hazard_subject_relation hsr ON hsr.hazard_id = hd.`id`
+        LEFT JOIN lab_subject st ON hsr.`subject_id` = st.`id`
+        WHERE sd.`dict_type` = 'lab_hazard_type' AND sd.`dict_value`=3
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+
+        UNION ALL
+
+        SELECT sd.`dict_label` dictLabel,sd.`dict_value` dictValue,SUM(CASE WHEN hsr.id IS NULL THEN 0 ELSE 1 END) totalNum,'台' unit FROM sys_dict_data sd
+        LEFT JOIN lab_hazard hd  ON sd.`dict_value` = hd.`hazard_type_mode`
+        LEFT JOIN lab_hazard_subject_relation hsr ON hsr.hazard_id = hd.`id`
+        LEFT JOIN lab_subject st ON hsr.`subject_id` = st.`id`
+        WHERE sd.`dict_type` = 'lab_hazard_type' AND sd.`dict_value`=4
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+
+        UNION ALL
+
+        SELECT sd.`dict_label` dictLabel,sd.`dict_value` dictValue,SUM(CASE WHEN hsr.id IS NULL THEN 0 ELSE 1 END) totalNum,NULL unit FROM sys_dict_data sd
+        LEFT JOIN lab_hazard hd  ON sd.`dict_value` = hd.`hazard_type_mode`
+        LEFT JOIN lab_hazard_subject_relation hsr ON hsr.hazard_id = hd.`id`
+        LEFT JOIN lab_subject st ON hsr.`subject_id` = st.`id`
+        WHERE sd.`dict_type` = 'lab_hazard_type' AND sd.`dict_value`=5
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+
+    </select>
+
     <select id="queryNameCount" resultType="java.lang.Integer">
         select count(*) from lab_hazard h
         where ch_name = #{chName}

+ 5 - 1
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabNotifyplanMapper.xml

@@ -44,6 +44,7 @@
         <result property="updateUserid"    column="update_userid"    />
         <result property="updateUsername"    column="update_username"    />
         <result property="updateTime"    column="update_time"    />
+        <result property="executionTime"    column="execution_time"    />
     </resultMap>
 
     <sql id="selectLabNotifyplanVo">
@@ -55,7 +56,8 @@
     <sql id="selectLabNotifyplanListVo">
         select t.id, t.title, t.notify_type, t.type, t.content_name, t.content_url, t.content,
                t.company,t.con_abstract, t.status,t.dept_id,t.dept_name, t.user_id,
-               t.create_by, t.create_time, t.update_userid, t.update_username, t.update_time ,DATE_FORMAT(t.create_time,'%Y-%m-%d %H:%i') time
+               t.create_by, t.create_time, t.update_userid, t.update_username, t.update_time ,DATE_FORMAT(t.create_time,'%Y-%m-%d %H:%i') time,
+               t.execution_time
         from  lab_notifyplan  t
         left join   sys_dept d on   t.dept_id=d.dept_id
         left join   sys_user u on  t.user_id=u.user_id
@@ -161,6 +163,7 @@
 
             <if test="updateTime != null">update_time,</if>
 
+            <if test="executionTime != null">execution_time,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="title != null">#{title},</if>
@@ -180,6 +183,7 @@
             <if test="updateUserid != null">#{updateUserid},</if>
             <if test="updateUsername != null">#{updateUsername},</if>
             <if test="updateTime != null">#{updateTime},</if>
+            <if test="executionTime != null">#{executionTime},</if>
         </trim>
     </insert>
 

+ 22 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectMapper.xml

@@ -718,6 +718,28 @@
     </select>
 
 
+    <select id="getTypeCount" parameterType="com.zd.laboratory.domain.vo.LabSubjectVO" resultType="com.zd.laboratory.domain.vo.LabClasstypeVo">
+        SELECT sc.id,sc.type_name typeName,SUM(CASE WHEN st.id IS NULL THEN 0 ELSE 1 END) totalNum FROM lab_safe_classtype sc
+        LEFT JOIN lab_subject st ON sc.id = st.type_id
+        <where>
+            1=1
+            <!-- 数据范围过滤 -->
+            ${params.dataScope}
+        </where>
+        GROUP BY sc.id,sc.type_name
+    </select>
+
+    <select id="getFiedCount" parameterType="com.zd.laboratory.domain.vo.LabSubjectVO" resultType="com.zd.laboratory.domain.vo.LabClassifiedVo">
+        SELECT sc.id,sc.classified_name classifiedName,SUM(CASE WHEN st.id IS NULL THEN 0 ELSE 1 END) totalNum FROM lab_safe_classified sc
+        LEFT JOIN lab_subject st ON sc.id = st.level
+        <where>
+            1=1
+            <!-- 数据范围过滤 -->
+            ${params.dataScope}
+        </where>
+        GROUP BY sc.id,sc.classified_name
+    </select>
+
     <!--   根据实验室IDs 查询危险等级  -->
     <select id="querySubClassesByIds" resultType="com.zd.system.api.laboratory.domain.vo.LabSubClassVO">
         <!--SELECT-->