From 764d883b5ea3bdc06abbec548b6df0511e567978 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Tue, 03 Sep 2024 09:46:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/binlog' into binlog
---
src/main/java/org/springblade/modules/task/service/impl/TaskNoFraudReportingServiceImpl.java | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 222 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/modules/task/service/impl/TaskNoFraudReportingServiceImpl.java b/src/main/java/org/springblade/modules/task/service/impl/TaskNoFraudReportingServiceImpl.java
new file mode 100644
index 0000000..aa7e45d
--- /dev/null
+++ b/src/main/java/org/springblade/modules/task/service/impl/TaskNoFraudReportingServiceImpl.java
@@ -0,0 +1,222 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.task.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springblade.common.constant.CommonConstant;
+import org.springblade.common.constant.DictConstant;
+import org.springblade.common.exception.CustomException;
+import org.springblade.common.param.CommonParamSet;
+import org.springblade.common.param.GridSet;
+import org.springblade.common.utils.SpringUtils;
+import org.springblade.common.utils.WordToPdfUtils;
+import org.springblade.core.oss.model.BladeFile;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.modules.resource.builder.oss.OssBuilder;
+import org.springblade.modules.task.entity.TaskNoFraudReportingEntity;
+import org.springblade.modules.task.entity.TaskPlaceRecordEntity;
+import org.springblade.modules.task.excel.TaskNoExplosionExcel;
+import org.springblade.modules.task.mapper.TaskNoFraudReportingMapper;
+import org.springblade.modules.task.service.ITaskNoFraudReportingService;
+import org.springblade.modules.task.service.ITaskPlaceRecordService;
+import org.springblade.modules.task.service.ITaskService;
+import org.springblade.modules.task.vo.TaskNoFraudReportingVO;
+import org.springblade.modules.task.vo.TaskPlaceRecordVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 无炸上报任务表 服务实现类
+ *
+ * @author BladeX
+ * @since 2024-04-10
+ */
+@Service
+public class TaskNoFraudReportingServiceImpl extends ServiceImpl<TaskNoFraudReportingMapper, TaskNoFraudReportingEntity> implements ITaskNoFraudReportingService {
+
+
+ private static final Logger logger = LoggerFactory.getLogger(TaskNoFraudReportingServiceImpl.class);
+
+ /**
+ * 对象存储构建类
+ */
+ @Autowired
+ private OssBuilder ossBuilder;
+
+ @Override
+ public IPage<TaskNoFraudReportingVO> selectTaskNoFraudReportingPage(IPage<TaskNoFraudReportingVO> page, TaskNoFraudReportingVO taskNoFraudReporting) {
+ CommonParamSet commonParamSet = new CommonParamSet().invoke(TaskNoFraudReportingVO.class, taskNoFraudReporting);
+ List<TaskNoFraudReportingVO> taskNoFraudReportingVOS = baseMapper.selectTaskNoFraudReportingPage(page,
+ taskNoFraudReporting,
+ commonParamSet.getIsAdministrator(),
+ commonParamSet.getRegionChildCodesList(),
+ commonParamSet.getGridCodeList());
+ return page.setRecords(taskNoFraudReportingVOS);
+ }
+
+ @Override
+ public Integer selectTaskNoFraudReportingCount(TaskNoFraudReportingVO taskNoFraudReporting) {
+ CommonParamSet commonParamSet = new CommonParamSet().invoke(TaskNoFraudReportingVO.class, taskNoFraudReporting);
+ Integer count = baseMapper.selectTaskNoFraudReportingCount(
+ taskNoFraudReporting,
+ commonParamSet.getIsAdministrator(),
+ commonParamSet.getRegionChildCodesList(),
+ commonParamSet.getGridCodeList());
+ return count;
+ }
+
+ @Override
+ public TaskNoFraudReportingVO selectTaskNoFraudReportingById(TaskNoFraudReportingEntity taskNoFraudReporting) {
+ return this.baseMapper.selectTaskNoFraudReportingById(taskNoFraudReporting);
+ }
+
+ @Override
+ public Boolean saveNoFraudReporting(TaskNoFraudReportingVO taskNoFraudReporting) {
+ taskNoFraudReporting.setCreateUser(AuthUtil.getUserId());
+ // 1.保存任务表
+ ITaskService bean2 = SpringUtils.getBean(ITaskService.class);
+ Long aLong = bean2.saveTask(CommonConstant.NUMBER_ONE, DictConstant.NO_FRAUD_REPORTING, 1,
+ "", AuthUtil.getUserId(), taskNoFraudReporting.getHouseCode(), CommonConstant.NUMBER_SIX, 1);
+ if (aLong <= 0) {
+ return false;
+ }
+ taskNoFraudReporting.setTaskId(aLong);
+ // 计算网格
+ if (StringUtils.isNotBlank(taskNoFraudReporting.getLng()) && StringUtils.isNotBlank(taskNoFraudReporting.getLat())) {
+ // 点落面计算警格,网格,警格
+ GridSet invoke = new GridSet().invoke(TaskNoFraudReportingVO.class, taskNoFraudReporting,
+ "lng", "lat", "gridCode", "jwGridCode");
+ }
+ // 2.保存任务详情
+ boolean save = save(taskNoFraudReporting);
+ if (save) {
+ // 3.保存题目记录
+ List<TaskPlaceRecordVO> taskPlaceRecordList = taskNoFraudReporting.getTaskPlaceRecordVOList();
+ ITaskPlaceRecordService bean = SpringUtil.getBean(ITaskPlaceRecordService.class);
+ taskPlaceRecordList.stream().forEach(item -> {
+ item.setTaskPlaceSelfCheckId(taskNoFraudReporting.getId());
+ item.setCreateUser(AuthUtil.getUserId());
+ item.setType("2");
+ // 判断是否有生成pdf
+ if (StringUtils.isBlank(item.getPdfPath()) && StringUtils.isNotBlank(item.getImageUrls())) {
+ // 生成pdf
+ String filePath;
+ FileInputStream file = null;
+ try {
+ // filePath = WordToPdfUtils.wordToPdf(item.getOriginalName(), item.getImageUrls());
+ // file = new FileInputStream(filePath);
+ // BladeFile bladeFile = ossBuilder.template().putFile(item.getOriginalName(), file);
+ // item.setPdfPath(bladeFile.getLink());
+ } catch (Exception e) {
+ logger.error("生成pdf失败", e);
+ // throw new RuntimeException(e);
+ } finally {
+ if (file != null) {
+ try {
+ file.close();
+ } catch (IOException e) {
+ logger.error("关闭流异常", e);
+ /* 异常处理 */
+ }
+ }
+ }
+ }
+ });
+ List<TaskPlaceRecordEntity> collect = taskPlaceRecordList.stream().collect(Collectors.toList());
+ if (collect.size() > 0) {
+ bean.saveBatch(collect);
+ }
+ updateById(taskNoFraudReporting);
+ return save;
+ }
+ return false;
+ }
+
+ @Override
+ public List<TaskNoExplosionExcel> exportTaskNoFraudReporting(TaskNoFraudReportingVO taskNoFraudReportingVO) {
+ CommonParamSet commonParamSet = new CommonParamSet().invoke(TaskNoFraudReportingVO.class, taskNoFraudReportingVO);
+ List<TaskNoExplosionExcel> taskNoExplosionExcels = baseMapper.selectTaskNoFraudReporting(
+ taskNoFraudReportingVO,
+ commonParamSet.getIsAdministrator(),
+ commonParamSet.getRegionChildCodesList(),
+ commonParamSet.getGridCodeList());
+ return taskNoExplosionExcels;
+ }
+
+ /**
+ * 更新
+ *
+ * @param taskNoFraudReporting
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean updateTaskNoFraudReporting(TaskNoFraudReportingVO taskNoFraudReporting) {
+ // 1.更新任务表
+ ITaskService taskService = SpringUtils.getBean(ITaskService.class);
+ Long aLong = taskService.updateTask(null, null, null, taskNoFraudReporting.getReasonFailure(), AuthUtil.getUserId(), taskNoFraudReporting.getTaskId(), taskNoFraudReporting.getStatus());
+ if (aLong <= 0) {
+ return false;
+ }
+ // 2.更新任务详情
+ boolean save = updateById(taskNoFraudReporting);
+ if (save) {
+ // 3.更新或新增题目记录
+ List<TaskPlaceRecordVO> taskPlaceRecordList = taskNoFraudReporting.getTaskPlaceRecordVOList();
+ if (taskPlaceRecordList != null && taskPlaceRecordList.size() > 0) {
+ ITaskPlaceRecordService bean = SpringUtil.getBean(ITaskPlaceRecordService.class);
+ List<TaskPlaceRecordEntity> recordEntityList = BeanUtil.copy(taskPlaceRecordList, TaskPlaceRecordEntity.class);
+ for (TaskPlaceRecordEntity taskPlaceRecordEntity : recordEntityList) {
+ taskPlaceRecordEntity.setType("2");
+ // 判断是否有生成pdf
+ if (StringUtils.isBlank(taskPlaceRecordEntity.getPdfPath()) && StringUtils.isNotBlank(taskPlaceRecordEntity.getImageUrls())) {
+ // 生成pdf
+ String filePath;
+ try {
+ // filePath = WordToPdfUtils.wordToPdf(taskPlaceRecordEntity.getOriginalName(), taskPlaceRecordEntity.getImageUrls());
+ // FileInputStream file = new FileInputStream(filePath);
+ // BladeFile bladeFile = ossBuilder.template().putFile(taskPlaceRecordEntity.getOriginalName(), file);
+ // taskPlaceRecordEntity.setPdfPath(bladeFile.getLink());
+ } catch (Exception e) {
+ logger.error("生成pdf失败", e);
+ // throw new RuntimeException(e);
+ }
+ }
+ }
+ boolean result = bean.saveOrUpdateBatch(recordEntityList);
+ if (result) {
+ return result;
+ }
+ throw new CustomException("保存失败!");
+ }
+ return save;
+ }
+ throw new CustomException("保存失败!");
+ }
+}
--
Gitblit v1.9.3