diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java index 52d7854..0cba73a 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java @@ -127,4 +127,11 @@ public class HuzhouPlaninfofileController { planinfoService.setPlaninfoIsoffline(planinfo); return Result.ok(); } + + + @GetMapping("/getUploadFileRate") + public Result getUploadFileRate(String projectId){ + Double uploadFileRate = planinfofileService.getUploadFileRate(projectId); + return Result.ok(uploadFileRate); + } } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/ProjectManagerController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/ProjectManagerController.java index a2b04e7..d0da412 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/ProjectManagerController.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/ProjectManagerController.java @@ -154,7 +154,8 @@ public class ProjectManagerController { projectInfo.getCurrentPointName(), projectInfo.getSuperiorFundPayRate(), projectInfo.getTimeOutPayCount(), - projectInfo.getTimeOutPaySituation())) + projectInfo.getTimeOutPaySituation(), + projectInfo.getUploadFileRate())) .collect(Collectors.toList()); // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dto/ProjectTimeOutInfoExportDTO.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dto/ProjectTimeOutInfoExportDTO.java index 1041626..e7193fd 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dto/ProjectTimeOutInfoExportDTO.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dto/ProjectTimeOutInfoExportDTO.java @@ -35,6 +35,9 @@ public class ProjectTimeOutInfoExportDTO { @ExcelProperty("超时支付情况") private String timeOutPaySituation; + @ExcelProperty("上传文件进度(%)") + private Double uploadFileRate; + public ProjectTimeOutInfoExportDTO(String projectName, String dutyWorkplace, String reformName, @@ -42,7 +45,8 @@ public class ProjectTimeOutInfoExportDTO { String currentPointName, Double superiorFundPayRate, int timeOutPayCount, - String timeOutPaySituation + String timeOutPaySituation, + Double uploadFileRate ) { this.projectName = projectName; this.superiorFundPayRate = superiorFundPayRate; @@ -52,6 +56,7 @@ public class ProjectTimeOutInfoExportDTO { this.reformName = reformName; this.superLeader = superLeader; this.timeOutPaySituation = timeOutPaySituation; + this.uploadFileRate = uploadFileRate; } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouProjectinfo.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouProjectinfo.java index 3f816db..c322521 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouProjectinfo.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouProjectinfo.java @@ -214,6 +214,13 @@ public class HuzhouProjectinfo extends BaseEntity { */ @TableField(exist = false) private String timeOutPaySituation; + + + @TableField(exist = false) + private Double uploadFileRate; + + + // public ProjectinfoExportDTO toDTO() { // return new ProjectinfoExportDTO( // this.projectName, diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java index ff5f162..75d40b7 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java @@ -28,4 +28,13 @@ public interface IHuzhouPlaninfofileService extends IService void planREUploadFile(MultipartFile[] files, String planinfoid) throws IOException; List> getProcessDetailByProjectTaskId(String planinfoid); + + + /** + * 文件上传占比=(当前所处节点前上传完成的材料数/当前节点前应上传的材料数)*100% + * @param projectId + * @return + */ + Double getUploadFileRate(String projectId); + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java index 318fbf5..42a29be 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java @@ -789,4 +789,55 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl planInfoList = planinfoService.getListByProjectId(projectId); + double rate =0.0; + int totalFileCount = 0; + int unFinishFileCount = 0; + if (CollectionUtil.isNotEmpty(planInfoList)) { + for (HuzhouPlaninfo planInfo : planInfoList) { + String taskFile = planInfo.getTaskFile(); + totalFileCount += countFiles(taskFile); + } + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(HuzhouPlaninfo::getProjectId,projectId) + .eq(HuzhouPlaninfo::getIsfinish,"0"); + List unFinishPlanInfoList = planinfoService.list(qw); + for (HuzhouPlaninfo planInfo : unFinishPlanInfoList) { + String taskFile = planInfo.getTaskFile(); + if (StrUtil.isNotBlank(taskFile)){ + unFinishFileCount += countFiles(taskFile); + } + } + int uploadFileCount = totalFileCount - unFinishFileCount; + rate = (double) uploadFileCount / totalFileCount * 100; + //double roundedRate = Math.round(rate * 100.0) / 100.0; + double roundedRate = Math.round(rate) ; + log.info("{}:上传文件比率为:{}---总数:{},完成:{}", projectId, roundedRate, totalFileCount, uploadFileCount); + return roundedRate; + } + return rate; + } + + + // 辅助方法:计算给定字符串中《》的数量来确定文件数 + private int countFiles(String taskFile) { + if (taskFile == null || taskFile.trim().isEmpty()) { + return 0; + } + // 去除首尾可能存在的空格和其他字符 + taskFile = taskFile.trim(); + // 将字符串按逗号分割成多个部分,然后计算每部分中书名号的数量 + String[] files = taskFile.split("》,"); + int fileCount = 0; + for (String file : files) { + file = file.trim().replace("《", "").replace("》", ""); + if (!file.isEmpty()) { + fileCount++; + } + } + return fileCount; + } } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java index 88411d4..6a4c578 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java @@ -114,6 +114,9 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl