From 2c783432245859f3ee745e4e9d8cc98dfa7c0865 Mon Sep 17 00:00:00 2001
From: 邱宇豪 <qyh123230312>
Date: 星期二, 21 十一月 2023 11:28:46 +0800
Subject: [PATCH] 20231121_qiuyh_调整巡检打卡、防患举报导出

---
 hd/pipe/secure/src/main/resources/mapping/RegionInspectionRecordMapper.xml                                                    |   58 ++++++++++++++++--
 hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/controller/RegionInspectionRecordController.java    |   11 +++
 hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/service/RegionInspectionRecordService.java          |    4 +
 hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/service/impl/RegionInspectionRecordServiceImpl.java |   52 +++++++++++++++--
 hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/hiddenDanger/service/impl/HiddenDangerServiceImpl.java               |    7 +
 hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/entity/RegionInspectionRecordEntity.java            |   10 ++
 hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/mapper/RegionInspectionRecordMapper.java            |    2 
 7 files changed, 125 insertions(+), 19 deletions(-)

diff --git a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/hiddenDanger/service/impl/HiddenDangerServiceImpl.java b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/hiddenDanger/service/impl/HiddenDangerServiceImpl.java
index 4792e49..cc10f59 100644
--- a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/hiddenDanger/service/impl/HiddenDangerServiceImpl.java
+++ b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/hiddenDanger/service/impl/HiddenDangerServiceImpl.java
@@ -89,7 +89,10 @@
 		map.put("companyId",sysUserInfo.getCompanyId());
 		int pageNum = (int) map.get("pageNum");
 		int pageSize = (int) map.get("pageSize");
-		int type = (int) map.get("type");//type =1 小程序来的
+		int type = 0;
+		if( map.get("type")!= null){
+			type = (int) map.get("type");//type =1 小程序来的
+		}
 		PageHelper.startPage(pageNum,pageSize);
 		List<HiddenDangerEntity> hiddenDangerEntities = new ArrayList<>();
 		if(type == 1){
@@ -119,7 +122,7 @@
 					obj.setAuditStatusName("未审核");
 					break;
 				case 1:
-					obj.setAuditStatusName("审核通过");
+					obj.setAuditStatusName("已审核");
 					break;
 				case 2:
 					obj.setAuditStatusName("审核失败");
diff --git a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/controller/RegionInspectionRecordController.java b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/controller/RegionInspectionRecordController.java
index 5e9f923..9c48252 100644
--- a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/controller/RegionInspectionRecordController.java
+++ b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/controller/RegionInspectionRecordController.java
@@ -8,6 +8,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.Map;
 
 /**
@@ -98,4 +99,14 @@
 		return regionInspectionRecordService.selectAppList(map);
 	}
 
+	/**
+	 * web导出
+	 * @param map
+	 * @return
+	 */
+	@PostMapping("export")
+	void export(@RequestBody Map map, HttpServletResponse response){
+		regionInspectionRecordService.export(map,response);
+	}
+
 }
diff --git a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/entity/RegionInspectionRecordEntity.java b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/entity/RegionInspectionRecordEntity.java
index c604fda..aa3a6b5 100644
--- a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/entity/RegionInspectionRecordEntity.java
+++ b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/entity/RegionInspectionRecordEntity.java
@@ -1,5 +1,6 @@
 package com.thhy.secure.modules.biz.regionInspection.entity;
 
+import com.thhy.general.annotations.Excel;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -24,12 +25,15 @@
 	private String userId;//用户id
 
 	private Integer status;//0未完成 1完成
-	private String statusName;//状态名称 0未完成 1完成
+	@Excel(sort = 5,title = "巡检状态")
+	private String statusName;//状态名称 0已完成 1待巡检
 
 	private String regionHazardInformId;//区域id
+	@Excel(sort = 3,title = "巡检路线")
 	private String region;//区域
 
 	private String location;//当前位置
+	@Excel(sort = 1,title = "巡检时间")
 	private Date inspectionTime;//巡检时间
 	private String createUser;
 	private Date createTime;
@@ -37,13 +41,15 @@
 	private Date updateTime;
 	private String result;//巡检结果
 	//下面这些不是本表字段
+	@Excel(sort = 4,title = "巡检人")
 	private String realName;
+	@Excel(sort = 2,title = "任务")
 	private String task;//任务
 	private String standard;//巡检标准
 	private String regions;
 	private String regionIds;
 
-	private String[] imgPaths;
+	private String imgPaths;
 
 	List<RegionInspectionRecordImgEntity> imgList;
 }
diff --git a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/mapper/RegionInspectionRecordMapper.java b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/mapper/RegionInspectionRecordMapper.java
index 681d6b9..b9be0e3 100644
--- a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/mapper/RegionInspectionRecordMapper.java
+++ b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/mapper/RegionInspectionRecordMapper.java
@@ -26,7 +26,7 @@
 	void deleteByRegionInspectionId(String regionInspectionId);
 	//任务打卡web端查询列表 或者 判断主任务完成未完成的标准
 	List<RegionInspectionRecordEntity> selectPageList(Map map);
-
+	Integer selectCount(Map map);
 	//通过任务id查询打卡详情#{regionInspectionId} and b.user_id = #{userId}
 	RegionInspectionEntity selectInfo(
 			@Param("regionInspectionId") String regionInspectionId,
diff --git a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/service/RegionInspectionRecordService.java b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/service/RegionInspectionRecordService.java
index 0fe4abe..001abb0 100644
--- a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/service/RegionInspectionRecordService.java
+++ b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/service/RegionInspectionRecordService.java
@@ -4,6 +4,7 @@
 import com.thhy.secure.modules.biz.regionInspection.entity.RegionInspectionRecordEntity;
 import org.apache.ibatis.annotations.Param;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.Map;
 
 /**
@@ -35,4 +36,7 @@
 
 	//小程序打卡列表
 	BasicResult selectAppList(Map map);
+
+	//web导出
+	void export(Map map, HttpServletResponse response);
 }
diff --git a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/service/impl/RegionInspectionRecordServiceImpl.java b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/service/impl/RegionInspectionRecordServiceImpl.java
index dec4ea5..b12d1b6 100644
--- a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/service/impl/RegionInspectionRecordServiceImpl.java
+++ b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/regionInspection/service/impl/RegionInspectionRecordServiceImpl.java
@@ -4,6 +4,7 @@
 import com.github.pagehelper.PageInfo;
 import com.thhy.general.common.BasicResult;
 import com.thhy.general.config.SysUserInfo;
+import com.thhy.general.utils.ExcelUtils;
 import com.thhy.general.utils.UUIDUtils;
 import com.thhy.general.utils.UserInfoUtils;
 import com.thhy.secure.modules.biz.regionInspection.entity.*;
@@ -15,6 +16,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -77,7 +79,7 @@
 			if (!recordEntities.isEmpty()){
 				recordEntities.forEach(obj->{
 					String statusName = obj.getStatusName();
-					if("完成".equals(statusName)){
+					if("已完成".equals(statusName)){
 						atomicInteger.incrementAndGet();
 					}
 				});
@@ -109,11 +111,28 @@
 		String companyId = sysUserInfo.getCompanyId();
 		int pageNum = (int) map.get("pageNum");
 		int pageSize = (int) map.get("pageSize");
-		PageHelper.startPage(pageNum,pageSize);
+		String startHour = " 00:00:00";
+		String endHour = " 23:59:59";
+		String startTime = map.get("startTime").toString();
+		String endTime = map.get("endTime").toString();
+		if(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)){
+			startTime = startTime+startHour;
+			endTime = endTime +endHour;
+			map.put("startTime",startTime);
+			map.put("endTime",endTime);
+		}
+		if (StringUtils.isNotBlank(map.get("status").toString())){
+			int intStatus = Integer.valueOf(map.get("status").toString());
+			map.put("intStatus",intStatus);
+		}
 		map.put("companyId",companyId);
-		return BasicResult.success(new PageInfo<>(
-				regionInspectionRecordMapper.selectPageList(map)
-		));
+		map.put("page",(pageNum-1)*10);
+		map.put("limit",pageSize);
+		List<RegionInspectionRecordEntity> recordEntities = regionInspectionRecordMapper.selectPageList(map);
+		Integer integer = regionInspectionRecordMapper.selectCount(map);
+		map.put("list",recordEntities);
+		map.put("total",integer);
+		return BasicResult.success(map);
 	}
 
 	@Override
@@ -185,5 +204,26 @@
 		return BasicResult.success(new PageInfo<>(regionInspectionRecordMapper.selectAppList(map)));
 	}
 
-
+	@Override
+	public void export(Map map, HttpServletResponse response) {
+		SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
+		String companyId = sysUserInfo.getCompanyId();
+		String startHour = " 00:00:00";
+		String endHour = " 23:59:59";
+		String startTime = map.get("startTime").toString();
+		String endTime = map.get("endTime").toString();
+		if(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)){
+			startTime = startTime+startHour;
+			endTime = endTime +endHour;
+			map.put("startTime",startTime);
+			map.put("endTime",endTime);
+		}
+		if (StringUtils.isNotBlank(map.get("status").toString())){
+			int intStatus = Integer.valueOf(map.get("status").toString());
+			map.put("intStatus",intStatus);
+		}
+		map.put("companyId",companyId);
+		List<RegionInspectionRecordEntity> recordEntities = regionInspectionRecordMapper.selectPageList(map);
+		ExcelUtils.downExcel(recordEntities,RegionInspectionRecordEntity.class,response,"打卡导出");
+	}
 }
diff --git a/hd/pipe/secure/src/main/resources/mapping/RegionInspectionRecordMapper.xml b/hd/pipe/secure/src/main/resources/mapping/RegionInspectionRecordMapper.xml
index 988783d..0bae3bf 100644
--- a/hd/pipe/secure/src/main/resources/mapping/RegionInspectionRecordMapper.xml
+++ b/hd/pipe/secure/src/main/resources/mapping/RegionInspectionRecordMapper.xml
@@ -165,7 +165,7 @@
                 a.task,
                 a.region,
                 a.realName,
-                IF(a.completeRegionNum = a.needRegionNum,"完成","未完成") statusName,
+                IF(a.completeRegionNum = a.needRegionNum,"已完成","待巡检") statusName,
                 IF(a.completeRegionNum = a.needRegionNum,1,0) status
         FROM (
                      SELECT
@@ -193,21 +193,63 @@
                         <if test="regionInspectionId !=null and regionInspectionId !=''">
                             and t.regionInspectionId = #{regionInspectionId}
                         </if>
+                        <if test="startTime != null and endTime != null and startTime !='' and endTime != ''">
+                            and t.inspectionTime BETWEEN str_to_date(#{startTime}, "%Y-%m-%d %H:%i:%s") and str_to_date(#{endTime}, "%Y-%m-%d %H:%i:%s")
+                        </if>
         GROUP BY t.regionInspectionId,t.userId
                      )a
-
         WHERE 1=1
-        <if test="status !=null and status !='' and status ==0">
+        <if test="intStatus!=null and intStatus ==0">
             and a.completeRegionNum != a.needRegionNum
         </if>
-        <if test="status !=null and status !='' and status ==1">
+        <if test="intStatus!=null and intStatus ==1">
             and a.completeRegionNum = a.needRegionNum
         </if>
-        <if test="startTime != null and endTime != null and startTime !='' and endTime != ''">
-            and a.inspectionTime BETWEEN #{startTime} and #{endTime}
+        <if test="page != null and limit != null">
+            limit #{page},#{limit}
         </if>
     </select>
-
+    <select id="selectCount" resultType="java.lang.Integer">
+        SELECT  count(0)
+        FROM (
+                SELECT
+                    t.userId ,
+                    t.regionInspectionId,
+                    MIN(t.inspectionTime) inspectionTime,
+                    tri.task task,
+                    GROUP_CONCAT(DISTINCT trhi.region) region,
+                    spu.real_name realName,
+                    SUM(t.`status`)/(SELECT count(regionInspectionId) FROM t_region_inspection_hazard_inform WHERE regionInspectionId =  t.regionInspectionId) completeRegionNum,
+                    (SELECT count(regionInspectionId) FROM t_region_inspection_hazard_inform WHERE regionInspectionId =  t.regionInspectionId) needRegionNum
+                from
+                t_region_inspection_record t
+                LEFT JOIN t_region_inspection tri on tri.id = t.regionInspectionId
+                LEFT JOIN t_region_inspection_hazard_inform trihi on trihi.regionInspectionId = t.regionInspectionId
+                LEFT JOIN t_region_hazard_inform trhi on trhi.id = trihi.regionHazardInformId
+                LEFT JOIN sys_plat_user spu on spu.user_id = t.userId
+                WHERE 1=1
+                <if test="realName !=null and realName !=''">
+                    and spu.real_name REGEXP #{realName}
+                </if>
+                <if test="companyId !=null and companyId !=''">
+                    and tri.companyId = #{companyId}
+                </if>
+                <if test="regionInspectionId !=null and regionInspectionId !=''">
+                    and t.regionInspectionId = #{regionInspectionId}
+                </if>
+                <if test="startTime != null and endTime != null and startTime !='' and endTime != ''">
+                    and t.inspectionTime BETWEEN str_to_date(#{startTime}, "%Y-%m-%d %H:%i:%s") and str_to_date(#{endTime}, "%Y-%m-%d %H:%i:%s")
+                </if>
+                GROUP BY t.regionInspectionId,t.userId
+        )a
+        WHERE 1=1
+        <if test="intStatus!=null and intStatus ==0">
+            and a.completeRegionNum != a.needRegionNum
+        </if>
+        <if test="intStatus!=null and intStatus ==1">
+            and a.completeRegionNum = a.needRegionNum
+        </if>
+    </select>
     <select id="selectInfo" resultType="com.thhy.secure.modules.biz.regionInspection.entity.RegionInspectionEntity">
         SELECT
                 t.id regionInspectionId,
@@ -263,7 +305,7 @@
             and a.status = #{status}
         </if>
         <if test="startTime != null and endTime != null and startTime !='' and endTime != ''">
-            and b.inspectionTime BETWEEN #{startTime} and #{endTime}
+            and t.inspectionTime BETWEEN str_to_date(#{startTime}, "%Y-%m-%d %H:%i:%s") and str_to_date(#{endTime}, "%Y-%m-%d %H:%i:%s")
         </if>
         GROUP BY
                 a.id

--
Gitblit v1.9.3