Merge remote-tracking branch 'origin/main'

This commit is contained in:
wr
2025-12-16 15:37:53 +08:00
3 changed files with 30 additions and 8 deletions

View File

@@ -14,7 +14,6 @@ import org.springframework.context.annotation.DependsOn;
* @date 2022/11/10
*/
@Slf4j
@DependsOn("proxyMapperRegister")
@MapperScan("com.njcn.**.mapper")
@EnableFeignClients(basePackages = "com.njcn")
@SpringBootApplication(scanBasePackages = "com.njcn")

View File

@@ -161,6 +161,9 @@ public class UserReportPO extends BaseEntity {
@TableField(value = "line_id")
private String lineId;
@TableField(value = "second_assessment_id")
private String secondAssessmentId;
/**
* 审批状态1:审批中2审批通过3审批不通过4已取消
*/
@@ -176,4 +179,5 @@ public class UserReportPO extends BaseEntity {
}

View File

@@ -25,6 +25,7 @@ import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.common.pojo.enums.common.DataStateEnum;
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.FileUtil;
import com.njcn.device.pms.utils.PubUtil;
import com.njcn.device.pq.api.LineFeignClient;
@@ -63,6 +64,7 @@ import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil;
import com.njcn.web.utils.WebUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
@@ -87,6 +89,7 @@ import java.util.stream.Stream;
* @author clam
* @version V1.0.0
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, UserReportPO> implements UserReportPOService {
@@ -492,9 +495,9 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
List<String> data = deptFeignClient.getDepSonIdtByDeptId(userReportQueryParam.getOrgId()).getData();
//此处仅查询敏感及重要用户
userReportVOQueryWrapper.and(wrapper ->
wrapper.in("supervision_user_report.create_by", colleaguesIds)
.or()
.in("supervision_user_report.org_id", data)
wrapper.in("supervision_user_report.create_by", colleaguesIds)
.or()
.in("supervision_user_report.org_id", data)
)
.eq("supervision_user_report.state", DataStateEnum.ENABLE.getCode());
if (!allDataFlag) {
@@ -1013,19 +1016,35 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
params.setHeadRows(1);
//标题
params.setTitleRows(1);
params.setNeedVerify(true);
params.setNeedVerify(false); // 关闭校验,避免校验导致的性能问题
params.setStartSheetIndex(0);
params.setSheetNum(1);
List<SensitiveReportExcel> sensitiveUserExcels = new ArrayList<>();
// 限制最大读取行数防止Excel模板带下拉列表导致读取大量空行
// 如果实际数据超过此限制,需要分批导入或调整此参数
params.setReadRows(100); // 最多读取100行数据
List<SensitiveReportExcel> sensitiveUserExcels;
try {
log.info("开始解析 Excel文件名{}", file.getOriginalFilename());
ExcelImportResult<SensitiveReportExcel> sensitiveUserExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), SensitiveReportExcel.class, params);
log.info("Excel 解析完成,原始数据行数:{}", sensitiveUserExcelExcelImportResult.getList().size());
//如果存在非法数据,将不合格的数据导出
if (sensitiveUserExcelExcelImportResult.isVerifyFail()) {
log.warn("存在校验失败的数据");
PoiUtil.exportFileByWorkbook(sensitiveUserExcelExcelImportResult.getFailWorkbook(), "非法用户数据.xlsx", response);
return; // 校验失败直接返回
} else {
sensitiveUserExcels = sensitiveUserExcelExcelImportResult.getList();
// 过滤掉空行数据projectName 为空的行)
sensitiveUserExcels = sensitiveUserExcelExcelImportResult.getList().stream()
.filter(x -> StringUtils.isNotBlank(x.getProjectName()))
.collect(Collectors.toList());
log.info("过滤后有效数据:{} 条", sensitiveUserExcels.size());
if (CollectionUtil.isEmpty(sensitiveUserExcels)) {
throw new BusinessException(SupervisionResponseEnum.IMPORT_DEV_DATA_ERROR);
}
}
} catch (Exception e) {
log.error("导入失败,文件:{}", file.getOriginalFilename(), e);
throw new BusinessException(SupervisionResponseEnum.IMPORT_SENSITIVE_REPORT_ERROR);
}
//主要非线性设备类型-冀北
@@ -1182,7 +1201,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
lambdaQueryWrapper.eq(UserReportPO::getId,id).eq(UserReportPO::getState,DataStateEnum.ENABLE.getCode());
UserReportPO userReportPO = this.getById(id);
if(Objects.nonNull(userReportPO)){
return BeanUtil.copyProperties(userReportPO,UserLedgerVO.class);
return BeanUtil.copyProperties(userReportPO,UserLedgerVO.class);
}
return null;
}