1.台账管理干扰源用户和敏感用户模板调整,解决批量导入bug

This commit is contained in:
wr
2024-06-24 16:32:43 +08:00
parent e140ba4fe3
commit 8db6ddaeb5
7 changed files with 67 additions and 72 deletions

View File

@@ -6,12 +6,8 @@ import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.poi.util.PoiUtil;
import com.njcn.supervision.enums.SupervisionResponseEnum;
import com.njcn.supervision.pojo.dto.SensitiveUserExcel;
import com.njcn.supervision.pojo.param.user.UserReportParam;
import com.njcn.supervision.pojo.vo.user.UserReportVO;
import com.njcn.supervision.service.user.UserReportPOService;
@@ -30,7 +26,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Objects;
/**
* 干扰源用户管理
@@ -187,14 +182,12 @@ public class UserReportManageController extends BaseController {
}
@PostMapping(value = "/importSensitiveReportData", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@PostMapping(value = "/importSensitiveReportData")
@ApiOperation("批量导入干扰源用户")
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
public HttpResult<String> importSensitiveReportData(@ApiParam(value = "文件", required = true) @RequestPart("file") MultipartFile file, HttpServletResponse response) {
public HttpResult<String> importSensitiveReportData(@ApiParam(value = "文件", required = true) @RequestPart("file") MultipartFile file, HttpServletResponse response) {
String methodDescribe = getMethodDescribe("importSensitiveReportData");
if (Objects.isNull(userReportPOService.importSensitiveReportData(file, response))) {
return null;
}
userReportPOService.importSensitiveReportData(file, response);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@@ -211,10 +204,7 @@ public class UserReportManageController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
public HttpResult<String> importSensitiveUserData(@ApiParam(value = "文件", required = true) @RequestPart("file") MultipartFile file, HttpServletResponse response) {
String methodDescribe = getMethodDescribe("importSensitiveUserData");
//批量录入暂降数据
if (Objects.isNull(userReportPOService.importSensitiveUserData(file, response))) {
return null;
}
userReportPOService.importSensitiveUserData(file, response);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}

View File

@@ -49,9 +49,9 @@ public interface UserReportPOService extends IBpmService<UserReportPO> {
void downloadSensitiveUserTemplate();
String importSensitiveUserData(MultipartFile file, HttpServletResponse response);
void importSensitiveUserData(MultipartFile file, HttpServletResponse response);
void downloadSensitiveReportTemplate();
String importSensitiveReportData(MultipartFile file, HttpServletResponse response);
void importSensitiveReportData(MultipartFile file, HttpServletResponse response);
}

View File

@@ -67,6 +67,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.beans.PropertyDescriptor;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@@ -119,8 +120,14 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
userReportPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
}
userReportPO.setDataType(0);
if(ObjectUtil.isNotNull(userReportParam.getDataType())){
userReportPO.setDataType(userReportParam.getDataType());
if(userReportParam.getDataType()==1){
userReportPO.setStatus(FlowStatusEnum.APPROVE.getCode());
}
}else{
userReportPO.setDataType(0);
}
this.saveOrUpdate(userReportPO);
if (
CollectionUtil.newArrayList(
@@ -564,92 +571,90 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
pullDown.setStrings(Stream.of("可研", "建设", "运行", "退运").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(5);
pullDown.setLastCol(5);
pullDown.setStrings(loadLevel.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(6);
pullDown.setLastCol(6);
pullDown.setStrings(supplyCondition.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(8);
pullDown.setLastCol(8);
pullDown.setStrings(devVoltage.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(7);
pullDown.setLastCol(7);
pullDown.setFirstCol(9);
pullDown.setLastCol(9);
pullDown.setStrings(evaluationDept.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(12);
pullDown.setLastCol(12);
pullDown.setStrings(evaluationType.stream().map(DictData::getName).collect(Collectors.toList()));
pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(13);
pullDown.setLastCol(13);
pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(14);
pullDown.setLastCol(14);
pullDown.setStrings(evaluationType.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(15);
pullDown.setLastCol(15);
pullDown.setStrings(industryType.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(16);
pullDown.setLastCol(16);
pullDown.setFirstCol(18);
pullDown.setLastCol(18);
pullDown.setStrings(indicatorType.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(19);
pullDown.setLastCol(19);
pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(22);
pullDown.setLastCol(22);
pullDown.setStrings(supplyCondition.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(20);
pullDown.setLastCol(20);
pullDown.setStrings(devVoltage.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(21);
pullDown.setLastCol(21);
pullDown.setStrings(loadLevel.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(10);
pullDown.setLastCol(10);
pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(11);
pullDown.setLastCol(11);
pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(17);
pullDown.setLastCol(17);
pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown);
ExcelUtil.exportExcelPullDown(exportParams, "敏感及重要用户模板.xlsx", pullDowns, SensitiveUserSExcel.class, new ArrayList<>());
}
@Override
@Transactional(rollbackFor = Exception.class)
public String importSensitiveUserData(MultipartFile file, HttpServletResponse response) {
public void importSensitiveUserData(MultipartFile file, HttpServletResponse response) {
ImportParams params = new ImportParams();
params.setHeadRows(1);//表头
params.setTitleRows(1);//标题
params.setNeedVerify(true);
params.setStartSheetIndex(0);
params.setSheetNum(1);
List<SensitiveUserSExcel> sensitiveUserExcels;
List<SensitiveUserSExcel> sensitiveUserExcels=new ArrayList<>();
try {
ExcelImportResult<SensitiveUserSExcel> sensitiveUserExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), SensitiveUserSExcel.class, params);
//如果存在非法数据,将不合格的数据导出
if (sensitiveUserExcelExcelImportResult.isVerifyFail()) {
PoiUtil.exportFileByWorkbook(sensitiveUserExcelExcelImportResult.getFailWorkbook(), "非法用户数据.xlsx", response);
return null;
} else {
sensitiveUserExcels = sensitiveUserExcelExcelImportResult.getList();
}
@@ -748,9 +753,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
//判断有没有错误信息
if (CollectionUtil.isNotEmpty(sensitiveUserExcelMsgs)) {
ExcelUtil.exportExcel("失败列表.xlsx", SensitiveUserSExcel.SensitiveUserExcelMsg.class, sensitiveUserExcelMsgs);
return null;
}
return CommonResponseEnum.SUCCESS.getCode();
}
@Override
@@ -831,25 +834,24 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
@Override
@Transactional(rollbackFor = Exception.class)
public String importSensitiveReportData(MultipartFile file, HttpServletResponse response) {
public void importSensitiveReportData(MultipartFile file, HttpServletResponse response) {
ImportParams params = new ImportParams();
params.setHeadRows(1);//表头
params.setTitleRows(1);//标题
params.setNeedVerify(true);
params.setStartSheetIndex(0);
params.setSheetNum(1);
List<SensitiveReportExcel> sensitiveUserExcels;
List<SensitiveReportExcel> sensitiveUserExcels=new ArrayList<>();
try {
ExcelImportResult<SensitiveReportExcel> sensitiveUserExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), SensitiveReportExcel.class, params);
//如果存在非法数据,将不合格的数据导出
if (sensitiveUserExcelExcelImportResult.isVerifyFail()) {
PoiUtil.exportFileByWorkbook(sensitiveUserExcelExcelImportResult.getFailWorkbook(), "非法用户数据.xlsx", response);
return null;
} else {
sensitiveUserExcels = sensitiveUserExcelExcelImportResult.getList();
}
} catch (Exception e) {
throw new BusinessException(SupervisionResponseEnum.IMPORT_SENSITIVE_USER_ERROR);
throw new BusinessException(SupervisionResponseEnum.IMPORT_SENSITIVE_REPORT_ERROR);
}
//主要非线性设备类型-冀北
List<SysDicTreePO> treeVOS = dictTreeFeignClient.queryByCodeList(DicDataTypeEnum.Major_Nonlinear_Device.getCode()).getData();
@@ -954,10 +956,8 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
}
//判断有没有错误信息
if (CollectionUtil.isNotEmpty(sensitiveUserExcelMsgs)) {
ExcelUtil.exportExcel("失败列表.xlsx", SensitiveUserExcel.SensitiveUserExcelMsg.class, sensitiveUserExcelMsgs);
return null;
ExcelUtil.exportExcel("失败列表.xlsx", SensitiveReportExcel.SensitiveReportExcelMsg.class, sensitiveUserExcelMsgs);
}
return CommonResponseEnum.SUCCESS.getCode();
}
public Map<String, String> getTreeString(String name, List<SysDicTreePO> treeVOS) {
@@ -983,10 +983,10 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
*/
public String[] getNullPropertyNames(Object source) {
final BeanWrapper src = new BeanWrapperImpl(source);
java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();
PropertyDescriptor[] pds = src.getPropertyDescriptors();
Set<String> emptyNames = new HashSet<>();
for (java.beans.PropertyDescriptor pd : pds) {
for (PropertyDescriptor pd : pds) {
Object srcValue = src.getPropertyValue(pd.getName());
if (srcValue == null) {
emptyNames.add(pd.getName());