From 6f372b9d09a4b3519a3966a62d58d95805d261c2 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期四, 29 五月 2025 22:49:48 +0800
Subject: [PATCH] 下载字段status

---
 guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java |  113 +++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 82 insertions(+), 31 deletions(-)

diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java
index f356efa..5ac589e 100644
--- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java
+++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java
@@ -8,10 +8,7 @@
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.dao.TaskDetailMapper;
-import com.stylefeng.guns.modular.system.model.PatrolTask;
-import com.stylefeng.guns.modular.system.model.TaskDetail;
-import com.stylefeng.guns.modular.system.model.TaskDetailVehicles;
-import com.stylefeng.guns.modular.system.model.TaskDetailVehiclesChannel;
+import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.model.enums.VideoChannelEnum;
 import com.stylefeng.guns.modular.system.model.vo.*;
 import com.stylefeng.guns.modular.system.service.*;
@@ -36,6 +33,7 @@
 import java.net.URLConnection;
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -63,6 +61,9 @@
 	@Autowired
 	private IUserService userService;
 	
+	@Autowired
+	private IIconService iconService;
+	
 	
 	
 	
@@ -85,11 +86,12 @@
 	 */
 	@Override
 	public void delTaskDetail(List<String> ids) {
-		this.baseMapper.deleteBatchIds(ids);
 		List<TaskDetail> taskDetails = this.selectBatchIds(ids);
 		for (TaskDetail taskDetail : taskDetails) {
 			JobKey jobKey = new JobKey(taskDetail.getId().toString());
 			quartzUtil.deleteQuartzTask(jobKey);
+			taskDetail.setDelFlag(1);
+			this.updateById(taskDetail);
 		}
 	}
 	
@@ -156,25 +158,46 @@
 			}
 			wrapper.in("vehicleIdUnique", vehicleIdList);
 		}
-		if(null != vo.getStatus()){
-			wrapper.eq("status", vo.getStatus());
+		if(null != vo.getStatus() && !vo.getStatus().isEmpty()){
+			wrapper.in("status", vo.getStatus());
 		}
-		if(null != vo.getSysStatus()){
-			List<TaskDetailVehiclesChannel> sys_status = taskDetailVehiclesChannelService.selectList(new EntityWrapper<TaskDetailVehiclesChannel>().eq("sys_status", vo.getSysStatus()));
-			List<Integer> collect = sys_status.stream().map(TaskDetailVehiclesChannel::getTaskDetailVehiclesId).collect(Collectors.toList());
-			if(collect.size() > 0){
-				wrapper.in("id", collect);
+
+		if(null != vo.getSysStatus() && !vo.getSysStatus().isEmpty()){
+			Wrapper<TaskDetailVehiclesChannel> channelWrapper = new EntityWrapper<TaskDetailVehiclesChannel>()
+					.in("sys_status", vo.getSysStatus());
+			if (null != vo.getHavePic()){
+				if(vo.getHavePic()==0){
+					channelWrapper.isNull("image_url");
+				}else if(vo.getHavePic()==1){
+					channelWrapper.isNotNull("image_url");
+				}
 			}
+			List<TaskDetailVehiclesChannel> sys_status = taskDetailVehiclesChannelService.selectList(channelWrapper);
+			List<Integer> collect = sys_status.stream().map(TaskDetailVehiclesChannel::getTaskDetailVehiclesId).collect(Collectors.toList());
+			if(collect.size() == 0){
+				collect.add(-1);
+			}
+			wrapper.in("id", collect);
 		}
-		if(null != vo.getArtificialStatus()){
-			List<TaskDetailVehiclesChannel> sys_status = taskDetailVehiclesChannelService.selectList(new EntityWrapper<TaskDetailVehiclesChannel>().eq("artificial_status", vo.getArtificialStatus()));
-			List<Integer> collect = sys_status.stream().map(TaskDetailVehiclesChannel::getTaskDetailVehiclesId).collect(Collectors.toList());
-			if(collect.size() > 0){
-				wrapper.in("id", collect);
+		if(null != vo.getArtificialStatus()&& !vo.getArtificialStatus().isEmpty()){
+			Wrapper<TaskDetailVehiclesChannel> channelWrapper = new EntityWrapper<TaskDetailVehiclesChannel>()
+					.in("artificial_status", vo.getArtificialStatus());
+			if (null != vo.getHavePic()){
+				if(vo.getHavePic()==0){
+					channelWrapper.isNull("image_url");
+				}else if(vo.getHavePic()==1){
+					channelWrapper.isNotNull("image_url");
+				}
 			}
+			List<TaskDetailVehiclesChannel> sys_status = taskDetailVehiclesChannelService.selectList(channelWrapper);
+			List<Integer> collect = sys_status.stream().map(TaskDetailVehiclesChannel::getTaskDetailVehiclesId).collect(Collectors.toList());
+			if(collect.size() == 0){
+				collect.add(-1);
+			}
+			wrapper.in("id", collect);
 		}
 		
-		List<TaskDetailVehicles> taskDetailVehiclesList = taskDetailVehiclesService.selectList(wrapper);
+		List<TaskDetailVehicles> taskDetailVehiclesList = taskDetailVehiclesService.selectList(wrapper.groupBy("vehicleIdUnique"));
 		List<TaskDetailVehicles> vehiclesList = taskDetailVehiclesList.stream().filter(s -> s.getVehicleType() == 1).collect(Collectors.toList());
 		List<VehicleVo> vehicle = new ArrayList<>();
 		for (TaskDetailVehicles taskDetailVehicles : vehiclesList) {
@@ -215,17 +238,31 @@
 			}
 			wrapper.in("vehicleIdUnique", vehicleIdList);
 		}
-		if(null != vo.getStatus()){
-			wrapper.eq("status", vo.getStatus());
+		if(null != vo.getStatus() && !vo.getStatus().isEmpty()){
+			wrapper.in("status", vo.getStatus());
 		}
 		List<TaskDetailVehicles> taskDetailVehiclesList = taskDetailVehiclesService.selectList(wrapper);
 		List<Integer> collect = taskDetailVehiclesList.stream().map(TaskDetailVehicles::getId).collect(Collectors.toList());
-		
-		List<PictureDetails> pictureDetails = taskDetailVehiclesChannelService.getPictureDetails(pageInfo, collect, vo.getSysStatus(), vo.getArtificialStatus());
+		if(collect.size() > 0){
+			collect.add(-1);
+		}
+		List<PictureDetails> pictureDetails = taskDetailVehiclesChannelService.getPictureDetails(pageInfo, collect, vo.getSysStatus(), vo.getArtificialStatus(),vo.getHavePic());
+		List<Icon> icons = iconService.selectList(null);
 		for (PictureDetails pictureDetail : pictureDetails) {
 			String videoChannel = pictureDetail.getVideoChannel();
 			String name = VideoChannelEnum.getName(Integer.valueOf(videoChannel));
 			pictureDetail.setVideoChannel(name);
+			//异常
+			if(pictureDetail.getStatus() == 5){
+				pictureDetail.setImageUrl(icons.stream().filter(s->s.getType() == 2).findFirst().get().getUrl());
+			}else if(ToolUtil.isEmpty(pictureDetail.getImageUrl())){
+				//没有图片返回
+				pictureDetail.setImageUrl(icons.stream().filter(s->s.getType() == 3).findFirst().get().getUrl());
+			}
+			//离线
+			if(pictureDetail.getStatus() == 4){
+				pictureDetail.setImageUrl(icons.stream().filter(s->s.getType() == 1).findFirst().get().getUrl());
+			}
 		}
 		return pictureDetails;
 	}
@@ -237,15 +274,18 @@
 	 * @return
 	 */
 	@Override
-	public ResultUtil manualAudit(ManualAuditVo vo) {
+	public ResultUtil manualAudit(ManualAuditVo vo, String userId) {
 		List<TaskDetailVehiclesChannel> taskDetailVehiclesChannels = taskDetailVehiclesChannelService.selectBatchIds(vo.getId());
 		for (TaskDetailVehiclesChannel taskDetailVehiclesChannel : taskDetailVehiclesChannels) {
-			if(null != taskDetailVehiclesChannel.getArtificialStatus() && 1 != taskDetailVehiclesChannel.getArtificialStatus()){
+			/*if(null != taskDetailVehiclesChannel.getArtificialStatus() && 1 != taskDetailVehiclesChannel.getArtificialStatus()){
 				return ResultUtil.error("不能重复审核");
-			}
+			}*/
 			taskDetailVehiclesChannel.setArtificialStatus(vo.getStatus());
 			taskDetailVehiclesChannel.setRemark(vo.getRemark());
-			taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel);
+			taskDetailVehiclesChannel.setArtificialCreateTime(LocalDateTime.now());
+			taskDetailVehiclesChannel.setArtificialUserId(Integer.valueOf(userId));
+//			taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel);
+			taskDetailVehiclesChannelService.updateAudit(taskDetailVehiclesChannel);//需要将Remark字段设置为null
 		}
 		return ResultUtil.success();
 	}
@@ -259,8 +299,8 @@
 	 * @param response
 	 */
 	@Override
-	public void downloadTaskRecord(List<String> ids, String code, Integer status, HttpServletResponse response) {
-		List<Map<String, Object>> mapList = this.baseMapper.getDownloadTaskRecord(ids, code, status);
+	public void downloadTaskRecord(List<String> ids, String code, List<Integer> status,Integer sysStatus, HttpServletResponse response) {
+		List<Map<String, Object>> mapList = this.baseMapper.getDownloadTaskRecord(ids, code, status,sysStatus);
 		try {
 			HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
 			HSSFSheet hssfSheet = hssfWorkbook.createSheet();
@@ -301,7 +341,7 @@
 				hssfCell.setCellStyle(style);
 				hssfCell.setCellValue(titles.get(l));
 			}
-			
+			List<Icon> icons = iconService.selectList(null);
 			HSSFPatriarch patriarch = hssfSheet.createDrawingPatriarch();
 			for (int i = 0; i < mapList.size(); i++) {
 				hssfRow = hssfSheet.createRow(i + 2);
@@ -345,6 +385,17 @@
 					Integer status1 = Integer.valueOf(map.get("status").toString());
 					//执行状态(1=待执行,2=进行中,3=成功,4=失败)
 					hssfCell4.setCellValue(1 == status1 ? "待执行" : 2 == status1 ? "进行中" : 3 == status1 ? "成功" : "失败");
+					//异常
+					if(status1 == 5){
+						map.put("imageUrl", icons.stream().filter(s->s.getType() == 2).findFirst().get().getUrl());
+					}else if(ToolUtil.isEmpty(map.get("imageUrl"))){
+						//没有图片返回
+						map.put("imageUrl", icons.stream().filter(s->s.getType() == 3).findFirst().get().getUrl());
+					}
+					//离线
+					if(status1 == 4){
+						map.put("imageUrl", icons.stream().filter(s->s.getType() == 1).findFirst().get().getUrl());
+					}
 				}
 				//车牌号
 				HSSFCell hssfCell5 = hssfRow.createCell(5);
@@ -417,8 +468,8 @@
 				hssfCell11.setCellValue("");
 				if(null != map.get("sysStatus")){
 					//系统审核状态(1=未执行,2=正常,3=异常)
-					Integer sysStatus = Integer.valueOf(map.get("sysStatus").toString());
-					hssfCell11.setCellValue(1 == sysStatus ? "未执行" : 2 == sysStatus ? "正常" : "异常");
+					Integer sysStatus1 = Integer.valueOf(map.get("sysStatus").toString());
+					hssfCell11.setCellValue(1 == sysStatus1 ? "未执行" : 2 == sysStatus1 ? "正常" : "异常");
 				}
 				//系统审核时间
 				HSSFCell hssfCell12 = hssfRow.createCell(12);

--
Gitblit v1.7.1