From a4bfa94e3d97406c410e6975d9ab1b625ed05fe1 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期三, 28 五月 2025 18:00:22 +0800
Subject: [PATCH] 新增任务管理、任务记录等搜索字段,可重复审核,添加导出任务记录字段

---
 guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java |   90 +++++++++++++++++++++++++++++++++------------
 1 files changed, 66 insertions(+), 24 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 69a226d..98702f1 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.*;
@@ -64,6 +61,9 @@
 	@Autowired
 	private IUserService userService;
 	
+	@Autowired
+	private IIconService iconService;
+	
 	
 	
 	
@@ -86,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);
 		}
 	}
 	
@@ -157,21 +158,38 @@
 			}
 			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()));
+
+		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()));
+		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);
@@ -220,19 +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());
 		if(collect.size() > 0){
 			collect.add(-1);
 		}
-		List<PictureDetails> pictureDetails = taskDetailVehiclesChannelService.getPictureDetails(pageInfo, collect, vo.getSysStatus(), vo.getArtificialStatus());
+		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;
 	}
@@ -247,14 +277,15 @@
 	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());
 			taskDetailVehiclesChannel.setArtificialCreateTime(LocalDateTime.now());
 			taskDetailVehiclesChannel.setArtificialUserId(Integer.valueOf(userId));
-			taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel);
+//			taskDetailVehiclesChannelService.updateById(taskDetailVehiclesChannel);
+			taskDetailVehiclesChannelService.updateAudit(taskDetailVehiclesChannel);//需要将Remark字段设置为null
 		}
 		return ResultUtil.success();
 	}
@@ -268,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, 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();
@@ -310,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);
@@ -354,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);
@@ -426,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