|
@@ -8,24 +8,25 @@ import com.macro.mall.tiny.common.exception.ApiException;
|
|
import com.macro.mall.tiny.common.exception.Asserts;
|
|
import com.macro.mall.tiny.common.exception.Asserts;
|
|
import com.macro.mall.tiny.common.util.CommonUtils;
|
|
import com.macro.mall.tiny.common.util.CommonUtils;
|
|
import com.macro.mall.tiny.config.UploadConfig;
|
|
import com.macro.mall.tiny.config.UploadConfig;
|
|
-import com.macro.mall.tiny.domain.AdminUserDetails;
|
|
|
|
import com.macro.mall.tiny.modules.business.enums.DirectoryEnum;
|
|
import com.macro.mall.tiny.modules.business.enums.DirectoryEnum;
|
|
import com.macro.mall.tiny.modules.business.model.*;
|
|
import com.macro.mall.tiny.modules.business.model.*;
|
|
import com.macro.mall.tiny.modules.business.service.*;
|
|
import com.macro.mall.tiny.modules.business.service.*;
|
|
-import com.macro.mall.tiny.modules.ums.model.UmsAdmin;
|
|
|
|
-import com.macro.mall.tiny.modules.ums.service.UmsAdminService;
|
|
|
|
-import com.macro.mall.tiny.security.util.AuthUtil;
|
|
|
|
|
|
+import com.macro.mall.tiny.security.util.ShiroAuthUtil;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.compress.archivers.ArchiveEntry;
|
|
import org.apache.commons.compress.archivers.ArchiveEntry;
|
|
import org.apache.commons.compress.archivers.ArchiveInputStream;
|
|
import org.apache.commons.compress.archivers.ArchiveInputStream;
|
|
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
|
|
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
|
|
import org.apache.commons.compress.utils.IOUtils;
|
|
import org.apache.commons.compress.utils.IOUtils;
|
|
|
|
+import org.apache.shiro.subject.Subject;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.io.*;
|
|
|
|
|
|
+import java.io.BufferedInputStream;
|
|
|
|
+import java.io.File;
|
|
|
|
+import java.io.InputStream;
|
|
|
|
+import java.io.OutputStream;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Path;
|
|
@@ -43,9 +44,6 @@ import java.util.stream.Collectors;
|
|
public class AsyncHandler {
|
|
public class AsyncHandler {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private UmsAdminService adminService;
|
|
|
|
-
|
|
|
|
- @Autowired
|
|
|
|
private KrBRegionProvinceServiceImpl krBRegionProvinceService;
|
|
private KrBRegionProvinceServiceImpl krBRegionProvinceService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
@@ -65,23 +63,24 @@ public class AsyncHandler {
|
|
|
|
|
|
@Async
|
|
@Async
|
|
@Transactional
|
|
@Transactional
|
|
- public void handleDocument(String provinceId, String cityId, String fileSource, String lineName, String voltage, String lineStatus, Long serviceBegintimeTs, Integer beginTower, Integer endTower, AdminUserDetails userDetails, String charset) {
|
|
|
|
|
|
+ public void handleDocument(String provinceId, String cityId, String fileSource, String lineName, String voltage, String lineStatus, Long serviceBegintimeTs, Integer beginTower, Integer endTower, String username, Subject subject, String charset) {
|
|
StringBuilder warnMsg = new StringBuilder();
|
|
StringBuilder warnMsg = new StringBuilder();
|
|
KrBLine line = null;
|
|
KrBLine line = null;
|
|
- Long userId = null;
|
|
|
|
try {
|
|
try {
|
|
if (provinceId == null) Asserts.fail("上传失败,省份不能为空,provinceId:" + provinceId);
|
|
if (provinceId == null) Asserts.fail("上传失败,省份不能为空,provinceId:" + provinceId);
|
|
if (cityId == null) Asserts.fail("上传失败,城市不能为空,cityId:" + cityId);
|
|
if (cityId == null) Asserts.fail("上传失败,城市不能为空,cityId:" + cityId);
|
|
- if (userDetails == null) Asserts.fail("上传失败,未获取到当前用户");
|
|
|
|
|
|
+ if (username == null) Asserts.fail("上传失败,未获取到当前用户");
|
|
|
|
|
|
LambdaQueryWrapper<KrBRegionProvince> provinceWrapper = new QueryWrapper<KrBRegionProvince>().lambda().eq(KrBRegionProvince::getProvinceId, provinceId);
|
|
LambdaQueryWrapper<KrBRegionProvince> provinceWrapper = new QueryWrapper<KrBRegionProvince>().lambda().eq(KrBRegionProvince::getProvinceId, provinceId);
|
|
KrBRegionProvince province = krBRegionProvinceService.getOne(provinceWrapper);
|
|
KrBRegionProvince province = krBRegionProvinceService.getOne(provinceWrapper);
|
|
String provinceName = province.getName();
|
|
String provinceName = province.getName();
|
|
|
|
|
|
- String username = userDetails.getUsername();
|
|
|
|
- UmsAdmin umsAdmin = adminService.getAdminByUsername(username);
|
|
|
|
- userId = umsAdmin.getId();
|
|
|
|
- boolean canCover = AuthUtil.checkAccess(userDetails, AuthUtil.COVER);
|
|
|
|
|
|
+// String username = userDetails.getUsername();
|
|
|
|
+// UmsAdmin umsAdmin = adminService.getAdminByUsername(username);
|
|
|
|
+// userId = umsAdmin.getId();
|
|
|
|
+// boolean canCover = AuthUtil.checkAccess(userDetails, AuthUtil.COVER);
|
|
|
|
+// username = UserContextHolder.getInstance().getUsername();
|
|
|
|
+ boolean canCover = ShiroAuthUtil.checkAccess(subject, ShiroAuthUtil.EDIT);
|
|
// 查看是否为线路创建者
|
|
// 查看是否为线路创建者
|
|
QueryWrapper<KrBLine> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<KrBLine> wrapper = new QueryWrapper<>();
|
|
wrapper.lambda().eq(KrBLine::getLineName, lineName);
|
|
wrapper.lambda().eq(KrBLine::getLineName, lineName);
|
|
@@ -98,13 +97,13 @@ public class AsyncHandler {
|
|
newLine.setServiceBegintime(new Date(serviceBegintimeTs));
|
|
newLine.setServiceBegintime(new Date(serviceBegintimeTs));
|
|
newLine.setBeginTower(beginTower);
|
|
newLine.setBeginTower(beginTower);
|
|
newLine.setEndTower(endTower);
|
|
newLine.setEndTower(endTower);
|
|
- newLine.setCreatorId(userId);
|
|
|
|
|
|
+ newLine.setCreatorName(username);
|
|
newLine.setCreateTime(new Date());
|
|
newLine.setCreateTime(new Date());
|
|
krBLineService.save(newLine);
|
|
krBLineService.save(newLine);
|
|
line = newLine;
|
|
line = newLine;
|
|
|
|
|
|
canCover = true;
|
|
canCover = true;
|
|
- } else if (line.getCreatorId().equals(userId)) {
|
|
|
|
|
|
+ } else if (line.getCreatorName().equals(username)) {
|
|
canCover = true;
|
|
canCover = true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -144,7 +143,7 @@ public class AsyncHandler {
|
|
} else if ("杆塔信息录入.xlsx".equals(SecDirectoryName) || "杆塔信息录入.xls".equals(SecDirectoryName)) {
|
|
} else if ("杆塔信息录入.xlsx".equals(SecDirectoryName) || "杆塔信息录入.xls".equals(SecDirectoryName)) {
|
|
List<TowerExcelModel> modelArrayList = EasyExcel.read(ais, TowerExcelModel.class, null).sheet().doReadSync();
|
|
List<TowerExcelModel> modelArrayList = EasyExcel.read(ais, TowerExcelModel.class, null).sheet().doReadSync();
|
|
KrBLine finalLine = line;
|
|
KrBLine finalLine = line;
|
|
- Long finalUserId = userId;
|
|
|
|
|
|
+ String finalUserName = username;
|
|
towerList = modelArrayList.stream().map(model -> {
|
|
towerList = modelArrayList.stream().map(model -> {
|
|
KrBTower tower = new KrBTower();
|
|
KrBTower tower = new KrBTower();
|
|
tower.setLineId(finalLine.getId());
|
|
tower.setLineId(finalLine.getId());
|
|
@@ -171,7 +170,7 @@ public class AsyncHandler {
|
|
tower.setServiceBegintime(model.getServiceBegintime());
|
|
tower.setServiceBegintime(model.getServiceBegintime());
|
|
tower.setRemark(model.getRemark());
|
|
tower.setRemark(model.getRemark());
|
|
tower.setHasFile(0);
|
|
tower.setHasFile(0);
|
|
- tower.setCreatorId(finalUserId);
|
|
|
|
|
|
+ tower.setCreatorName(finalUserName);
|
|
tower.setCreateTime(new Date());
|
|
tower.setCreateTime(new Date());
|
|
return tower;
|
|
return tower;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
@@ -209,7 +208,7 @@ public class AsyncHandler {
|
|
KrBLineUploadLog lineUploadLog = new KrBLineUploadLog();
|
|
KrBLineUploadLog lineUploadLog = new KrBLineUploadLog();
|
|
lineUploadLog.setLineId(line.getId());
|
|
lineUploadLog.setLineId(line.getId());
|
|
lineUploadLog.setStatus(1);
|
|
lineUploadLog.setStatus(1);
|
|
- lineUploadLog.setUploaderId(userId);
|
|
|
|
|
|
+ lineUploadLog.setUploaderName(username);
|
|
lineUploadLog.setUploadTime(new Date());
|
|
lineUploadLog.setUploadTime(new Date());
|
|
lineUploadLog.setWarnMsg(warnMsg.toString());
|
|
lineUploadLog.setWarnMsg(warnMsg.toString());
|
|
lineUploadLogService.save(lineUploadLog);
|
|
lineUploadLogService.save(lineUploadLog);
|
|
@@ -220,7 +219,7 @@ public class AsyncHandler {
|
|
List<KrBTower> oriTowerList = krBTowerService.list(towerWrapper);
|
|
List<KrBTower> oriTowerList = krBTowerService.list(towerWrapper);
|
|
HashSet<KrBTower> towerSet = new HashSet<>(oriTowerList);
|
|
HashSet<KrBTower> towerSet = new HashSet<>(oriTowerList);
|
|
towerSet.addAll(towerList);
|
|
towerSet.addAll(towerList);
|
|
- krBTowerService.setHasFile(new ArrayList<>(towerSet), userDetails);
|
|
|
|
|
|
+ krBTowerService.setHasFile(new ArrayList<>(towerSet), subject);
|
|
|
|
|
|
// 后续清楚缓存处理
|
|
// 后续清楚缓存处理
|
|
krBLineCacheService.delLineList();
|
|
krBLineCacheService.delLineList();
|
|
@@ -229,12 +228,12 @@ public class AsyncHandler {
|
|
log.error("上传文件抛出业务异常", e);
|
|
log.error("上传文件抛出业务异常", e);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("上传文件抛出异常", e);
|
|
log.error("上传文件抛出异常", e);
|
|
- if (line != null && userId != null) {
|
|
|
|
|
|
+ if (line != null && username != null) {
|
|
// 存储上传记录
|
|
// 存储上传记录
|
|
KrBLineUploadLog lineUploadLog = new KrBLineUploadLog();
|
|
KrBLineUploadLog lineUploadLog = new KrBLineUploadLog();
|
|
lineUploadLog.setLineId(line.getId());
|
|
lineUploadLog.setLineId(line.getId());
|
|
lineUploadLog.setStatus(0);
|
|
lineUploadLog.setStatus(0);
|
|
- lineUploadLog.setUploaderId(userId);
|
|
|
|
|
|
+ lineUploadLog.setUploaderName(username);
|
|
lineUploadLog.setUploadTime(new Date());
|
|
lineUploadLog.setUploadTime(new Date());
|
|
lineUploadLog.setWarnMsg(e.getMessage());
|
|
lineUploadLog.setWarnMsg(e.getMessage());
|
|
lineUploadLogService.save(lineUploadLog);
|
|
lineUploadLogService.save(lineUploadLog);
|