drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdTaskResultController.java
@@ -156,6 +156,17 @@ } /** * 成果表批量新增并返回ID列表,不关联任务-对外接口 */ // @PostMapping("/batchSaveWithIds") // @ApiOperationSupport(order = 8) // @ApiOperation(value = "批量新增并返回ID", notes = "传入gdTaskResult") // public R<List<Long>> batchSaveWithIds(@Valid @RequestBody List<GdTaskResultDTO> gdTaskResults) { // log.info("批量新增并返回ID-对外接口{}", JSON.toJSONString(gdTaskResults)); // return R.data(gdTaskResultService.batchSaveWithIds(gdTaskResults)); // } /** * 成果表 删除 */ @PostMapping("/remove") drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdClueEventEntity.java
@@ -80,5 +80,26 @@ */ @ApiModelProperty(value = "事件编号") private String eventNum; /** * 事件名称 */ @ApiModelProperty(value = "事件名称") private String eventName; /** * 附件类型:1媒体文件; 2ai文件; 3主视频 */ @ApiModelProperty(value = "附件类型:1媒体文件; 2ai文件; 3主视频") private Integer attachmentType; /** * 附件URL */ @ApiModelProperty(value = "附件URL") private String attachUrl; /** * AI图片的画框数据 */ @ApiModelProperty(value = "AI图片的画框数据") private String geojson; } drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml
@@ -59,6 +59,7 @@ <result column="create_time" property="createTime"/> <result column="geojson" property="geojson"/> <result column="attachment_type" property="attachmentType"/> <result column="event_name" property="eventName"/> </resultMap> <resultMap id="gdClueEventCountVoResultMap" type="org.sxkj.gd.workorder.vo.GdClueEventCountVO"> @@ -98,11 +99,13 @@ </select> <select id="selectGdClueEventSimpleList" resultMap="gdClueEventListVoResultMap"> select ce.id as id, tr.result_url as event_image_url, tr.geojson as geojson, tr.attachment_type, ce.create_time as create_time select ce.id as id, ce.event_name, tr.result_url as event_image_url, tr.geojson as geojson, tr.attachment_type, ce.create_time as create_time from ja_gd_clue_event ce left join ja_gd_task_result tr on tr.id::VARCHAR = ce.result_id::VARCHAR and tr.is_deleted = 0 <include refid="gdClueEventDeptWhere"/> drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdClueEventDistributeParam.java
@@ -56,4 +56,7 @@ */ @ApiModelProperty(value = "区域编码") private String areaCode; @ApiModelProperty(value = "事件名称", required = true) private String eventName; } drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdTaskResultService.java
@@ -17,12 +17,12 @@ package org.sxkj.gd.workorder.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import org.sxkj.gd.workorder.dto.GdTaskResultDTO; import org.sxkj.gd.workorder.entity.GdTaskResultEntity; import org.sxkj.gd.workorder.vo.GdTaskResultVO; import org.sxkj.gd.workorder.excel.GdTaskResultExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.sxkj.gd.workorder.dto.GdTaskResultDTO; import org.sxkj.gd.workorder.entity.GdTaskResultEntity; import org.sxkj.gd.workorder.excel.GdTaskResultExcel; import org.sxkj.gd.workorder.vo.GdTaskResultVO; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -62,9 +62,10 @@ List<GdTaskResultExcel> exportGdTaskResult(Wrapper<GdTaskResultEntity> queryWrapper); /** * 批量保存成果数据 * * @param gdTaskResults * @return * @param gdTaskResults 成果DTO列表 * @return 保存成功后的成果ID列表 */ boolean saveBatchTaskResult(List<GdTaskResultDTO> gdTaskResults); @@ -83,4 +84,13 @@ * @param response HTTP响应 */ void downloadResultFiles(String ids, HttpServletResponse response); /** * 批量保存成果数据(包含ID) * * @param gdTaskResults 成果DTO列表 * @return 保存成功后的成果ID列表 * @return */ List<Long> batchSaveWithIds(List<GdTaskResultDTO> gdTaskResults); } drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdClueEventServiceImpl.java
@@ -135,6 +135,7 @@ clueEvent.setCreateUser(AuthUtil.getUserId()); clueEvent.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); clueEvent.setCreateTime(new Date()); clueEvent.setEventName(distributeParam.getEventName()); if (!save(clueEvent)) { throw new RuntimeException("事件分发失败"); } drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdTaskResultServiceImpl.java
@@ -20,6 +20,7 @@ import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.extern.slf4j.Slf4j; import org.springblade.core.secure.utils.AuthUtil; import org.sxkj.gd.workorder.dto.GdTaskResultDTO; import org.sxkj.gd.workorder.entity.GdDeviceCallDetailEntity; import org.sxkj.gd.workorder.entity.GdDeviceCallEntity; @@ -147,6 +148,47 @@ * 保存普通成果数据(dateType != 4) * * @param gdTaskResults 成果DTO列表 * @return 保存成功后的成果ID列表 */ @Override public List<Long> batchSaveWithIds(List<GdTaskResultDTO> gdTaskResults) { // 步骤1:转换DTO为实体 List<GdTaskResultEntity> gdTaskResultEntities = GdTaskResultWrapper.build().listEntity(gdTaskResults); // 步骤2:处理每个实体的属性 gdTaskResultEntities.forEach(gdTaskResult -> { String processedAreaCode = HeaderUtils.processAreaCode(gdTaskResult.getAreaCode()); gdTaskResult.setAreaCode(processedAreaCode); // 如果resultCode为空,生成时间戳作为默认值 if (StringUtil.isEmpty(gdTaskResult.getResultCode())) { gdTaskResult.setResultCode(String.valueOf(System.currentTimeMillis())); } if (gdTaskResult.getShootTime() == null) { gdTaskResult.setShootTime(new Date()); } gdTaskResult.setStatus(0); gdTaskResult.setUpdateTime(new Date()); gdTaskResult.setCreateTime(new Date()); gdTaskResult.setIsDeleted(0); gdTaskResult.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); gdTaskResult.setUpdateUser(AuthUtil.getUserId()); gdTaskResult.setDistributeStatus(0); }); // 步骤3:批量插入数据 int insertCount = baseMapper.insertBatch(gdTaskResultEntities); // 步骤4:收集并返回保存后的ID列表 return gdTaskResultEntities.stream() .map(GdTaskResultEntity::getId) .filter(Objects::nonNull) .collect(Collectors.toList()); } /** * 保存普通成果数据(dateType != 4) * * @param gdTaskResults 成果DTO列表 */ private void saveNormalTaskResults(List<GdTaskResultDTO> gdTaskResults) { List<GdTaskResultEntity> gdTaskResultEntities = GdTaskResultWrapper.build().listEntity(gdTaskResults); drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdClueEventListVO.java
@@ -49,4 +49,9 @@ @ApiModelProperty(value = "事件附件类型") private Integer attachmentType; /** * 事件名称 */ @ApiModelProperty(value = "事件名称") private String eventName; }