From 1ab47ccb570471f5fcb49dd607a15aec3b4eba3b Mon Sep 17 00:00:00 2001 From: zt Date: Tue, 18 Nov 2025 19:17:08 +0800 Subject: [PATCH] =?UTF-8?q?AI=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SubContractorServiceImpl.java | 25 +- .../PgsProcessDailyReportController.java | 105 ++++++++ .../controller/PgsReportExportController.java | 233 ++++++++++-------- .../domain/PgsProcessDailyReport.java | 57 +++++ .../domain/bo/PgsProcessDailyReportBo.java | 57 +++++ .../domain/vo/PgsProcessDailyReportVo.java | 67 +++++ .../mapper/PgsProcessDailyReportMapper.java | 15 ++ .../IPgsProcessDailyReportService.java | 70 ++++++ .../PgsProcessDailyReportServiceImpl.java | 135 ++++++++++ .../HseViolationRecordController.java | 57 ++++- .../app/HseViolationRecordAppController.java | 9 + .../safety/domain/HseViolationRecord.java | 2 +- .../HseViolationRecordVersionVo.java | 11 + .../violationrecord/HseViolationRecordVo.java | 24 +- .../mapper/HseViolationRecordMapper.java | 6 + .../service/IHseViolationRecordService.java | 12 + .../impl/HseViolationRecordServiceImpl.java | 45 +++- .../service/impl/SysUserServiceImpl.java | 5 +- .../progress/PgsProcessDailyReportMapper.xml | 7 + .../safety/HseViolationRecordMapper.xml | 14 ++ 20 files changed, 825 insertions(+), 131 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProcessDailyReportController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProcessDailyReport.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/bo/PgsProcessDailyReportBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/PgsProcessDailyReportVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/mapper/PgsProcessDailyReportMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/IPgsProcessDailyReportService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProcessDailyReportServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/violationrecord/HseViolationRecordVersionVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/progress/PgsProcessDailyReportMapper.xml diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java index d87df117..5e4de48b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubContractorServiceImpl.java @@ -28,9 +28,12 @@ import org.dromara.contractor.service.ISubContractorService; import org.dromara.project.domain.BusProject; import org.dromara.project.domain.enums.SubConstructionUserRoleEnum; import org.dromara.project.service.IBusProjectService; +import org.dromara.system.domain.SysUser; +import org.dromara.system.service.ISysUserService; import org.dromara.tender.domain.TenderSupplierInput; import org.dromara.tender.service.ITenderSupplierInputService; import org.springframework.beans.BeanUtils; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -56,6 +59,10 @@ public class SubContractorServiceImpl extends ServiceImpl queryManagerListById(Long id) { - SubContractor contractor = this.getById(id); - if (contractor == null) { - throw new ServiceException("分包方不存在", HttpStatus.NOT_FOUND); - } - List adminUserList = constructionUserService.lambdaQuery() - .eq(SubConstructionUser::getContractorId, id) - .eq(SubConstructionUser::getUserRole, SubConstructionUserRoleEnum.ADMIN.getValue()) - .list(); - if (CollUtil.isEmpty(adminUserList)) { - return List.of(); - } - return adminUserList.stream().map(user -> { + List sysUsers = userService.selectUserListByContractorId(id); + return sysUsers.stream().map(user -> { SubManagerVo managerVo = new SubManagerVo(); - managerVo.setManagerId(user.getSysUserId()); - managerVo.setManagerName(user.getUserName()); + managerVo.setManagerId(user.getUserId()); + managerVo.setManagerName(user.getNickName()); return managerVo; }).distinct().toList(); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProcessDailyReportController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProcessDailyReportController.java new file mode 100644 index 00000000..ac344862 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProcessDailyReportController.java @@ -0,0 +1,105 @@ +package org.dromara.progress.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.progress.domain.vo.PgsProcessDailyReportVo; +import org.dromara.progress.domain.bo.PgsProcessDailyReportBo; +import org.dromara.progress.service.IPgsProcessDailyReportService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 进度日报 + * + * @author Lion Li + * @date 2025-11-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/progress/processDailyReport") +public class PgsProcessDailyReportController extends BaseController { + + private final IPgsProcessDailyReportService pgsProcessDailyReportService; + + /** + * 查询进度日报列表 + */ + @SaCheckPermission("progress:processDailyReport:list") + @GetMapping("/list") + public TableDataInfo list(PgsProcessDailyReportBo bo, PageQuery pageQuery) { + return pgsProcessDailyReportService.queryPageList(bo, pageQuery); + } + + /** + * 导出进度日报列表 + */ + @SaCheckPermission("progress:processDailyReport:export") + @Log(title = "进度日报", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PgsProcessDailyReportBo bo, HttpServletResponse response) { + List list = pgsProcessDailyReportService.queryList(bo); + ExcelUtil.exportExcel(list, "进度日报", PgsProcessDailyReportVo.class, response); + } + + /** + * 获取进度日报详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("progress:processDailyReport:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(pgsProcessDailyReportService.queryById(id)); + } + + /** + * 新增进度日报 + */ + @SaCheckPermission("progress:processDailyReport:add") + @Log(title = "进度日报", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PgsProcessDailyReportBo bo) { + return toAjax(pgsProcessDailyReportService.insertByBo(bo)); + } + + /** + * 修改进度日报 + */ + @SaCheckPermission("progress:processDailyReport:edit") + @Log(title = "进度日报", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PgsProcessDailyReportBo bo) { + return toAjax(pgsProcessDailyReportService.updateByBo(bo)); + } + + /** + * 删除进度日报 + * + * @param ids 主键串 + */ + @SaCheckPermission("progress:processDailyReport:remove") + @Log(title = "进度日报", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(pgsProcessDailyReportService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsReportExportController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsReportExportController.java index e397fc57..9b38f993 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsReportExportController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsReportExportController.java @@ -12,6 +12,7 @@ import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.RegionUtil; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.dromara.common.core.domain.R; import org.dromara.common.core.enums.FormatsType; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.DateUtils; @@ -22,11 +23,13 @@ import org.dromara.manager.weathermanager.WeatherManager; import org.dromara.manager.weathermanager.vo.WeatherVo; import org.dromara.mechanical.domain.BusMechanicalrewriting; import org.dromara.mechanical.service.IBusMechanicalrewritingService; +import org.dromara.progress.domain.PgsProcessDailyReport; import org.dromara.progress.domain.dto.export.ReportExportDto; import org.dromara.progress.domain.vo.export.*; import org.dromara.progress.domain.vo.progresscategory.PgsProgressCategoryByDayVo; import org.dromara.progress.domain.vo.progresscategory.PgsProgressCategoryDayTotalVo; import org.dromara.progress.domain.vo.progresscategory.PgsProgressCategoryDetailByDayVo; +import org.dromara.progress.service.IPgsProcessDailyReportService; import org.dromara.progress.service.IPgsProgressCategoryService; import org.dromara.progress.service.IPgsProgressPlanService; import org.dromara.project.domain.BusProject; @@ -44,10 +47,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; +import java.io.*; import java.net.URL; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -73,37 +73,65 @@ public class PgsReportExportController extends BaseController { private ISysOssService ossService; @Resource private IBusMechanicalrewritingService busMechanicalrewritingService; + @Resource + private IPgsProcessDailyReportService dailyReportService; @Resource private WeatherManager weatherManager; - public static final List IMAGE_SUFFIX = Arrays.asList(".png",".jpg",".jpeg"); + public static final List IMAGE_SUFFIX = Arrays.asList(".png", ".jpg", ".jpeg"); @SaIgnore @GetMapping("/dayReport") - public void getStreamData(ReportExportDto dto, HttpServletResponse response) { - try { - // 设置响应头,指定文件类型和下载文件名 - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - response.setHeader("Content-Disposition", "attachment; filename=project-report.xlsx"); + public R getStreamData(ReportExportDto dto) { + String url = ""; + LocalDate localDate = DateUtils.parseLocalDateTime(FormatsType.YYYY_MM_DD, dto.getDate()); + PgsProcessDailyReport one = dailyReportService.lambdaQuery() + .eq(PgsProcessDailyReport::getReportDate, localDate) + .eq(PgsProcessDailyReport::getProjectId, dto.getProjectId()) + .last("limit 1") + .one(); + if (one != null) { + url = one.getUrl(); + } else { + try { + // 获取数据并导出Excel + PgsProgressCategoryDayTotalVo progressCategoryByDay = pgsProgressCategoryService.getProgressCategoryByDay(dto.getProjectId(), DateUtils.parseLocalDateTime(FormatsType.YYYY_MM_DD, dto.getDate())); - // 获取数据并导出Excel - PgsProgressCategoryDayTotalVo progressCategoryByDay = pgsProgressCategoryService.getProgressCategoryByDay(dto.getProjectId(), DateUtils.parseLocalDateTime(FormatsType.YYYY_MM_DD, dto.getDate())); + // 修改数据组装方式,返回 List> + List> projectDataList = getProjectDataListAsRows(progressCategoryByDay); - // 修改数据组装方式,返回 List> - List> projectDataList = getProjectDataListAsRows(progressCategoryByDay); + ParamData paramData = getParamData(dto); - ParamData paramData = getParamData(dto); - // 导出Excel到响应输出流 - exportProjectExcel(response.getOutputStream(), projectDataList, paramData); + // 使用ByteArrayOutputStream先生成文件输入流 + try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { + // 导出Excel到字节数组输出流 + exportProjectExcel(byteArrayOutputStream, projectDataList, paramData); - response.getOutputStream().flush(); - } catch (IOException e) { - throw new RuntimeException("导出Excel失败", e); + // 将字节数组转换为输入流 + byte[] bytes = byteArrayOutputStream.toByteArray(); + try (InputStream inputStream = new ByteArrayInputStream(bytes)) { + // 上传文件到OSS系统 + SysOssVo upload = ossService.upload(inputStream, dto.getDate() + "日报.xlsx", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", -1); + PgsProcessDailyReport pgsProcessDailyReport = new PgsProcessDailyReport(); + pgsProcessDailyReport.setReportDate(localDate); + pgsProcessDailyReport.setPerson(dto.getPerson()); + pgsProcessDailyReport.setOssId(upload.getOssId()); + pgsProcessDailyReport.setUrl(upload.getUrl()); + pgsProcessDailyReport.setProjectId(dto.getProjectId()); + dailyReportService.save(pgsProcessDailyReport); + url = upload.getUrl(); + } + } + } catch (IOException e) { + throw new RuntimeException("导出Excel失败", e); + } } - } + return R.ok(url); + } // public static void main(String[] args) { @@ -121,8 +149,7 @@ public class PgsReportExportController extends BaseController { // } - - public static void exportProjectExcel(OutputStream outputStream, List> projectDataList, ParamData paramData) throws IOException { + public static void exportProjectExcel(ByteArrayOutputStream outputStream, List> projectDataList, ParamData paramData) throws IOException { try (Workbook workbook = new XSSFWorkbook()) { Sheet sheet = workbook.createSheet("项目日志"); @@ -724,7 +751,7 @@ public class PgsReportExportController extends BaseController { // C-M列合并:光伏场区工程:(左对齐) CellRangeAddress machineHeaderRegion = new CellRangeAddress(machineTitleRow, machineTitleRow, 2 + columnOffset, 12 + columnOffset); - mergeAndFill(sheet, machineHeaderRegion, processName+"工程:", leftHeaderStyle); + mergeAndFill(sheet, machineHeaderRegion, processName + "工程:", leftHeaderStyle); drawBorderForRegion(sheet, machineHeaderRegion, workbook); machineTitle.setHeightInPoints(25); @@ -958,7 +985,7 @@ public class PgsReportExportController extends BaseController { } CellRangeAddress materialSubHeaderRegion = new CellRangeAddress(materialSubTitleRow, materialSubTitleRow, 2 + columnOffset, 12 + columnOffset); - mergeAndFill(sheet, materialSubHeaderRegion, processName+"工程:", leftHeaderStyle); + mergeAndFill(sheet, materialSubHeaderRegion, processName + "工程:", leftHeaderStyle); drawBorderForRegion(sheet, materialSubHeaderRegion, workbook); materialSubTitle.setHeightInPoints(30); @@ -1280,14 +1307,14 @@ public class PgsReportExportController extends BaseController { photoRow.setHeightInPoints(200); // 设置较高行高以适应图片 // 插入图片到C-H区域 - if(paramData.getImgUrls1() != null && !paramData.getImgUrls1().isEmpty()){ + if (paramData.getImgUrls1() != null && !paramData.getImgUrls1().isEmpty()) { insertImageFromUrl(sheet, workbook, paramData.getImgUrls1().getFirst(), photoRowNum, photoRowNum + 1, 2 + columnOffset, 8 + columnOffset); } - if(paramData.getImgUrls1() != null && paramData.getImgUrls1().size()>1){ + if (paramData.getImgUrls1() != null && paramData.getImgUrls1().size() > 1) { insertImageFromUrl(sheet, workbook, paramData.getImgUrls1().getLast(), photoRowNum, photoRowNum + 1, 8 + columnOffset, 13 + columnOffset); @@ -1342,14 +1369,14 @@ public class PgsReportExportController extends BaseController { photoRow2.setHeightInPoints(200); // 设置较高行高以适应图片 // 插入图片到C-H区域 - if(paramData.getImgUrls2() != null && !paramData.getImgUrls2().isEmpty()){ + if (paramData.getImgUrls2() != null && !paramData.getImgUrls2().isEmpty()) { insertImageFromUrl(sheet, workbook, paramData.getImgUrls2().getFirst(), photoRowNum, photoRowNum2 + 1, 2 + columnOffset, 8 + columnOffset); } - if(paramData.getImgUrls2() != null && paramData.getImgUrls2().size()>1){ + if (paramData.getImgUrls2() != null && paramData.getImgUrls2().size() > 1) { insertImageFromUrl(sheet, workbook, paramData.getImgUrls2().getLast(), photoRowNum, photoRowNum2 + 1, 8 + columnOffset, 13 + columnOffset); @@ -1393,7 +1420,6 @@ public class PgsReportExportController extends BaseController { photoNameRow2.setHeightInPoints(25); // 设置行高 - // ============================================== // 49. 明天工作计划 // ============================================== @@ -1604,8 +1630,6 @@ public class PgsReportExportController extends BaseController { } - - //数据组装 public static List getProjectDataList(PgsProgressCategoryDayTotalVo totalVo) { @@ -1622,7 +1646,7 @@ public class PgsReportExportController extends BaseController { for (PgsProgressCategoryDetailByDayVo vo1 : photovoltaicArea) { ProgressData progressData = new ProgressData(); progressData.setNum(num); - progressData.setProject(vo1.getName()+"("+vo1.getUnit()+")"); + progressData.setProject(vo1.getName() + "(" + vo1.getUnit() + ")"); progressData.setDesign(vo1.getTotal().toString()); progressData.setPlan(vo1.getConstructionPlan().toString()); progressData.setComplete(vo1.getConstructionCompleted().toString()); @@ -1631,7 +1655,7 @@ public class PgsReportExportController extends BaseController { progressList.add(progressData); num++; } - if(photovoltaicArea.size() < maxPhotovoltaicAreaLength){ + if (photovoltaicArea.size() < maxPhotovoltaicAreaLength) { for (int i = 0; i < maxPhotovoltaicAreaLength - photovoltaicArea.size(); i++) { ProgressData progressData = new ProgressData(); progressData.setNum(num); @@ -1646,14 +1670,14 @@ public class PgsReportExportController extends BaseController { } projectData.setProgressList(progressList); - List participantList= new ArrayList<>(); - List equipmentEntryList= new ArrayList<>(); - List materialList= new ArrayList<>(); - List inspectionList= new ArrayList<>(); - participantList.add(new ParticipantData("", "","", "","")); - equipmentEntryList.add(new EquipmentEntryData("","","","","","","")); - materialList.add(new MaterialEntryData("","","","","")); - inspectionList.add(new MaterialInspectionData("","","","","")); + List participantList = new ArrayList<>(); + List equipmentEntryList = new ArrayList<>(); + List materialList = new ArrayList<>(); + List inspectionList = new ArrayList<>(); + participantList.add(new ParticipantData("", "", "", "", "")); + equipmentEntryList.add(new EquipmentEntryData("", "", "", "", "", "", "")); + materialList.add(new MaterialEntryData("", "", "", "", "")); + inspectionList.add(new MaterialInspectionData("", "", "", "", "")); projectData.setParticipantList(participantList); projectData.setEquipmentEntryList(equipmentEntryList); @@ -1693,8 +1717,7 @@ public class PgsReportExportController extends BaseController { } - - public ParamData getParamData(ReportExportDto dto){ + public ParamData getParamData(ReportExportDto dto) { ParamData paramData = new ParamData(); String originalDate = dto.getDate(); // 解析原始字符串为Date对象,再格式化为目标字符串 @@ -1739,10 +1762,10 @@ public class PgsReportExportController extends BaseController { } } List imgUrls1 = new ArrayList<>(); - if(CollectionUtil.isNotEmpty(qltImgList)){ + if (CollectionUtil.isNotEmpty(qltImgList)) { List sysOssVos = ossService.listByIds(qltImgList); - for (SysOssVo sysOssVo : sysOssVos){ - if(!IMAGE_SUFFIX.contains(sysOssVo.getFileSuffix())){ + for (SysOssVo sysOssVo : sysOssVos) { + if (!IMAGE_SUFFIX.contains(sysOssVo.getFileSuffix())) { continue; } imgUrls1.add(sysOssVo.getUrl()); @@ -1751,10 +1774,10 @@ public class PgsReportExportController extends BaseController { } List imgUrls2 = new ArrayList<>(); - if(CollectionUtil.isNotEmpty(hseImgList)){ + if (CollectionUtil.isNotEmpty(hseImgList)) { List sysOssVos = ossService.listByIds(hseImgList); - for (SysOssVo sysOssVo : sysOssVos){ - if(!IMAGE_SUFFIX.contains(sysOssVo.getFileSuffix())){ + for (SysOssVo sysOssVo : sysOssVos) { + if (!IMAGE_SUFFIX.contains(sysOssVo.getFileSuffix())) { continue; } imgUrls2.add(sysOssVo.getUrl()); @@ -1766,16 +1789,16 @@ public class PgsReportExportController extends BaseController { paramData.setDate(format); paramData.setRecorder(dto.getPerson()); - if(first != null){ - paramData.setTemp(first.getTempMin()+ "℃~"+ first.getTempMax() + "℃"); + if (first != null) { + paramData.setTemp(first.getTempMin() + "℃~" + first.getTempMax() + "℃"); paramData.setDayWeather(first.getDayStatus()); paramData.setNightWeather(first.getNightStatus()); } - if(CollectionUtil.isNotEmpty(list)){ + if (CollectionUtil.isNotEmpty(list)) { String collect = list.stream().map(QltQualityInspection::getInspectionResult).collect(Collectors.joining(",")); paramData.setQuality(collect); } - if(CollectionUtil.isNotEmpty(list1)){ + if (CollectionUtil.isNotEmpty(list1)) { String collect = list1.stream().map(HseSafetyInspection::getInspectionResult).collect(Collectors.joining(",")); paramData.setSafety(collect); } @@ -1789,7 +1812,6 @@ public class PgsReportExportController extends BaseController { } - // 新的数据组装方法,将数据按行组织 public static List> getProjectDataListAsRows(PgsProgressCategoryDayTotalVo totalVo) { List> result = new ArrayList<>(); @@ -1813,7 +1835,7 @@ public class PgsReportExportController extends BaseController { for (PgsProgressCategoryDetailByDayVo vo1 : photovoltaicArea) { ProgressData progressData = new ProgressData(); progressData.setNum(num); - progressData.setProject(vo1.getName()+"("+vo1.getUnit()+")"); + progressData.setProject(vo1.getName() + "(" + vo1.getUnit() + ")"); progressData.setDesign(vo1.getTotal().toString()); progressData.setPlan(vo1.getConstructionPlan().toString()); progressData.setComplete(vo1.getConstructionCompleted().toString()); @@ -1823,7 +1845,7 @@ public class PgsReportExportController extends BaseController { num++; } - if(photovoltaicArea.size() < maxPhotovoltaicAreaLength){ + if (photovoltaicArea.size() < maxPhotovoltaicAreaLength) { for (int i = 0; i < maxPhotovoltaicAreaLength - photovoltaicArea.size(); i++) { ProgressData progressData = new ProgressData(); progressData.setNum(num); @@ -1838,14 +1860,14 @@ public class PgsReportExportController extends BaseController { } projectData.setProgressList(progressList); - List participantList= new ArrayList<>(); - List equipmentEntryList= new ArrayList<>(); - List materialList= new ArrayList<>(); - List inspectionList= new ArrayList<>(); - participantList.add(new ParticipantData("", "","", "","")); - equipmentEntryList.add(new EquipmentEntryData("","","","","","","")); - materialList.add(new MaterialEntryData("","","","","")); - inspectionList.add(new MaterialInspectionData("","","","","")); + List participantList = new ArrayList<>(); + List equipmentEntryList = new ArrayList<>(); + List materialList = new ArrayList<>(); + List inspectionList = new ArrayList<>(); + participantList.add(new ParticipantData("", "", "", "", "")); + equipmentEntryList.add(new EquipmentEntryData("", "", "", "", "", "", "")); + materialList.add(new MaterialEntryData("", "", "", "", "")); + inspectionList.add(new MaterialInspectionData("", "", "", "", "")); projectData.setParticipantList(participantList); projectData.setEquipmentEntryList(equipmentEntryList); @@ -1875,7 +1897,7 @@ public class PgsReportExportController extends BaseController { for (PgsProgressCategoryDetailByDayVo vo1 : boosterStation) { ProgressData progressData = new ProgressData(); progressData.setNum(num); - progressData.setProject(vo1.getName()+"("+vo1.getUnit()+")"); + progressData.setProject(vo1.getName() + "(" + vo1.getUnit() + ")"); progressData.setDesign(vo1.getTotal().toString()); progressData.setPlan(vo1.getConstructionPlan().toString()); progressData.setComplete(vo1.getConstructionCompleted().toString()); @@ -1886,14 +1908,14 @@ public class PgsReportExportController extends BaseController { } projectData.setProgressList(progressList); - List participantList= new ArrayList<>(); - List equipmentEntryList= new ArrayList<>(); - List materialList= new ArrayList<>(); - List inspectionList= new ArrayList<>(); - participantList.add(new ParticipantData("", "","", "","")); - equipmentEntryList.add(new EquipmentEntryData("","","","","","","")); - materialList.add(new MaterialEntryData("","","","","")); - inspectionList.add(new MaterialInspectionData("","","","","")); + List participantList = new ArrayList<>(); + List equipmentEntryList = new ArrayList<>(); + List materialList = new ArrayList<>(); + List inspectionList = new ArrayList<>(); + participantList.add(new ParticipantData("", "", "", "", "")); + equipmentEntryList.add(new EquipmentEntryData("", "", "", "", "", "", "")); + materialList.add(new MaterialEntryData("", "", "", "", "")); + inspectionList.add(new MaterialInspectionData("", "", "", "", "")); projectData.setParticipantList(participantList); projectData.setEquipmentEntryList(equipmentEntryList); @@ -1904,8 +1926,8 @@ public class PgsReportExportController extends BaseController { result.add(sy); //集电线路 - List jd = new ArrayList<>(); - ProjectData jdProjectData = new ProjectData(); + List jd = new ArrayList<>(); + ProjectData jdProjectData = new ProjectData(); jdProjectData.setProjectName("集电线路"); jdProjectData.setProcessName("集电线路"); jdProjectData.setNextPlanStr(project.getNextPlanStr()); @@ -1916,7 +1938,7 @@ public class PgsReportExportController extends BaseController { for (PgsProgressCategoryDetailByDayVo vo1 : collectingLine) { ProgressData progressData = new ProgressData(); progressData.setNum(jdNum); - progressData.setProject(vo1.getName()+"("+vo1.getUnit()+")"); + progressData.setProject(vo1.getName() + "(" + vo1.getUnit() + ")"); progressData.setDesign(vo1.getTotal().toString()); progressData.setPlan(vo1.getConstructionPlan().toString()); progressData.setComplete(vo1.getConstructionCompleted().toString()); @@ -1927,14 +1949,14 @@ public class PgsReportExportController extends BaseController { } projectData.setProgressList(jdProgressList); - List jdParticipantList= new ArrayList<>(); - List jdEquipmentEntryList= new ArrayList<>(); - List jdMaterialList= new ArrayList<>(); - List jdInspectionList= new ArrayList<>(); - jdParticipantList.add(new ParticipantData("", "","", "","")); - jdEquipmentEntryList.add(new EquipmentEntryData("","","","","","","")); - jdMaterialList.add(new MaterialEntryData("","","","","")); - jdInspectionList.add(new MaterialInspectionData("","","","","")); + List jdParticipantList = new ArrayList<>(); + List jdEquipmentEntryList = new ArrayList<>(); + List jdMaterialList = new ArrayList<>(); + List jdInspectionList = new ArrayList<>(); + jdParticipantList.add(new ParticipantData("", "", "", "", "")); + jdEquipmentEntryList.add(new EquipmentEntryData("", "", "", "", "", "", "")); + jdMaterialList.add(new MaterialEntryData("", "", "", "", "")); + jdInspectionList.add(new MaterialInspectionData("", "", "", "", "")); projectData.setParticipantList(jdParticipantList); projectData.setEquipmentEntryList(jdEquipmentEntryList); @@ -1945,7 +1967,7 @@ public class PgsReportExportController extends BaseController { result.add(jd); //送出线路 - List sc = new ArrayList<>(); + List sc = new ArrayList<>(); ProjectData scProjectData = new ProjectData(); scProjectData.setProjectName("送出线路"); scProjectData.setProcessName("送出线路"); @@ -1957,7 +1979,7 @@ public class PgsReportExportController extends BaseController { for (PgsProgressCategoryDetailByDayVo vo1 : sendLine) { ProgressData progressData = new ProgressData(); progressData.setNum(scNum); - progressData.setProject(vo1.getName()+"("+vo1.getUnit()+")"); + progressData.setProject(vo1.getName() + "(" + vo1.getUnit() + ")"); progressData.setDesign(vo1.getTotal().toString()); progressData.setPlan(vo1.getConstructionPlan().toString()); progressData.setComplete(vo1.getConstructionCompleted().toString()); @@ -1968,14 +1990,14 @@ public class PgsReportExportController extends BaseController { } projectData.setProgressList(scProgressList); - List scParticipantList= new ArrayList<>(); - List scEquipmentEntryList= new ArrayList<>(); - List scMaterialList= new ArrayList<>(); - List scInspectionList= new ArrayList<>(); - scParticipantList.add(new ParticipantData("", "","", "","")); - scEquipmentEntryList.add(new EquipmentEntryData("","","","","","","")); - scMaterialList.add(new MaterialEntryData("","","","","")); - scInspectionList.add(new MaterialInspectionData("","","","","")); + List scParticipantList = new ArrayList<>(); + List scEquipmentEntryList = new ArrayList<>(); + List scMaterialList = new ArrayList<>(); + List scInspectionList = new ArrayList<>(); + scParticipantList.add(new ParticipantData("", "", "", "", "")); + scEquipmentEntryList.add(new EquipmentEntryData("", "", "", "", "", "", "")); + scMaterialList.add(new MaterialEntryData("", "", "", "", "")); + scInspectionList.add(new MaterialInspectionData("", "", "", "", "")); projectData.setParticipantList(scParticipantList); projectData.setEquipmentEntryList(scEquipmentEntryList); @@ -1986,7 +2008,7 @@ public class PgsReportExportController extends BaseController { result.add(sc); //其他工程 - List qt = new ArrayList<>(); + List qt = new ArrayList<>(); ProjectData qtProjectData = new ProjectData(); qtProjectData.setProjectName("其他工程"); qtProjectData.setProcessName("其他工程"); @@ -1999,7 +2021,7 @@ public class PgsReportExportController extends BaseController { for (PgsProgressCategoryDetailByDayVo vo1 : otherProject) { ProgressData progressData = new ProgressData(); progressData.setNum(qtNum); - progressData.setProject(vo1.getName()+"("+vo1.getUnit()+")"); + progressData.setProject(vo1.getName() + "(" + vo1.getUnit() + ")"); progressData.setDesign(vo1.getTotal().toString()); progressData.setPlan(vo1.getConstructionPlan().toString()); progressData.setComplete(vo1.getConstructionCompleted().toString()); @@ -2010,14 +2032,14 @@ public class PgsReportExportController extends BaseController { } projectData.setProgressList(qtProgressList); - List qtParticipantList= new ArrayList<>(); - List qtEquipmentEntryList= new ArrayList<>(); - List qtMaterialList= new ArrayList<>(); - List qtInspectionList= new ArrayList<>(); - qtParticipantList.add(new ParticipantData("", "","", "","")); - qtEquipmentEntryList.add(new EquipmentEntryData("","","","","","","")); - qtMaterialList.add(new MaterialEntryData("","","","","")); - qtInspectionList.add(new MaterialInspectionData("","","","","")); + List qtParticipantList = new ArrayList<>(); + List qtEquipmentEntryList = new ArrayList<>(); + List qtMaterialList = new ArrayList<>(); + List qtInspectionList = new ArrayList<>(); + qtParticipantList.add(new ParticipantData("", "", "", "", "")); + qtEquipmentEntryList.add(new EquipmentEntryData("", "", "", "", "", "", "")); + qtMaterialList.add(new MaterialEntryData("", "", "", "", "")); + qtInspectionList.add(new MaterialInspectionData("", "", "", "", "")); projectData.setParticipantList(qtParticipantList); projectData.setEquipmentEntryList(qtEquipmentEntryList); @@ -2034,5 +2056,4 @@ public class PgsReportExportController extends BaseController { } - } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProcessDailyReport.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProcessDailyReport.java new file mode 100644 index 00000000..8cf7dd12 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProcessDailyReport.java @@ -0,0 +1,57 @@ +package org.dromara.progress.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDate; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 进度日报对象 pgs_process_daily_report + * + * @author Lion Li + * @date 2025-11-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pgs_process_daily_report") +public class PgsProcessDailyReport extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + private Long projectId; + + /** + * 报告日期 + */ + private LocalDate reportDate; + + /** + * 操作人 + */ + private String person; + + /** + * 文件id + */ + private Long ossId; + + /** + * 下载路径 + */ + private String url; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/bo/PgsProcessDailyReportBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/bo/PgsProcessDailyReportBo.java new file mode 100644 index 00000000..38277e2f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/bo/PgsProcessDailyReportBo.java @@ -0,0 +1,57 @@ +package org.dromara.progress.domain.bo; + +import org.dromara.progress.domain.PgsProcessDailyReport; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.time.LocalDate; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 进度日报业务对象 pgs_process_daily_report + * + * @author Lion Li + * @date 2025-11-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PgsProcessDailyReport.class, reverseConvertGenerate = false) +public class PgsProcessDailyReportBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 报告日期 + */ + @NotNull(message = "报告日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate reportDate; + + /** + * 操作人 + */ + private String person; + + /** + * 文件id + */ + private Long ossId; + + /** + * 下载路径 + */ + private String url; + + private Long projectId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/PgsProcessDailyReportVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/PgsProcessDailyReportVo.java new file mode 100644 index 00000000..892631f5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/PgsProcessDailyReportVo.java @@ -0,0 +1,67 @@ +package org.dromara.progress.domain.vo; + +import java.time.LocalDate; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.progress.domain.PgsProcessDailyReport; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 进度日报视图对象 pgs_process_daily_report + * + * @author Lion Li + * @date 2025-11-18 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PgsProcessDailyReport.class) +public class PgsProcessDailyReportVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + private Long projectId; + + /** + * 报告日期 + */ + @ExcelProperty(value = "报告日期") + private LocalDate reportDate; + + /** + * 操作人 + */ + @ExcelProperty(value = "操作人") + private String person; + + /** + * 文件id + */ + @ExcelProperty(value = "文件id") + private Long ossId; + + /** + * 下载路径 + */ + @ExcelProperty(value = "下载路径") + private String url; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/mapper/PgsProcessDailyReportMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/mapper/PgsProcessDailyReportMapper.java new file mode 100644 index 00000000..5f915c5a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/mapper/PgsProcessDailyReportMapper.java @@ -0,0 +1,15 @@ +package org.dromara.progress.mapper; + +import org.dromara.progress.domain.PgsProcessDailyReport; +import org.dromara.progress.domain.vo.PgsProcessDailyReportVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 进度日报Mapper接口 + * + * @author Lion Li + * @date 2025-11-18 + */ +public interface PgsProcessDailyReportMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/IPgsProcessDailyReportService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/IPgsProcessDailyReportService.java new file mode 100644 index 00000000..1cd50ba6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/IPgsProcessDailyReportService.java @@ -0,0 +1,70 @@ +package org.dromara.progress.service; + +import org.dromara.progress.domain.vo.PgsProcessDailyReportVo; +import org.dromara.progress.domain.bo.PgsProcessDailyReportBo; +import org.dromara.progress.domain.PgsProcessDailyReport; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 进度日报Service接口 + * + * @author Lion Li + * @date 2025-11-18 + */ +public interface IPgsProcessDailyReportService extends IService{ + + /** + * 查询进度日报 + * + * @param id 主键 + * @return 进度日报 + */ + PgsProcessDailyReportVo queryById(Long id); + + /** + * 分页查询进度日报列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 进度日报分页列表 + */ + TableDataInfo queryPageList(PgsProcessDailyReportBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的进度日报列表 + * + * @param bo 查询条件 + * @return 进度日报列表 + */ + List queryList(PgsProcessDailyReportBo bo); + + /** + * 新增进度日报 + * + * @param bo 进度日报 + * @return 是否新增成功 + */ + Boolean insertByBo(PgsProcessDailyReportBo bo); + + /** + * 修改进度日报 + * + * @param bo 进度日报 + * @return 是否修改成功 + */ + Boolean updateByBo(PgsProcessDailyReportBo bo); + + /** + * 校验并批量删除进度日报信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProcessDailyReportServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProcessDailyReportServiceImpl.java new file mode 100644 index 00000000..84688c95 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProcessDailyReportServiceImpl.java @@ -0,0 +1,135 @@ +package org.dromara.progress.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.progress.domain.bo.PgsProcessDailyReportBo; +import org.dromara.progress.domain.vo.PgsProcessDailyReportVo; +import org.dromara.progress.domain.PgsProcessDailyReport; +import org.dromara.progress.mapper.PgsProcessDailyReportMapper; +import org.dromara.progress.service.IPgsProcessDailyReportService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 进度日报Service业务层处理 + * + * @author Lion Li + * @date 2025-11-18 + */ +@RequiredArgsConstructor +@Service +public class PgsProcessDailyReportServiceImpl extends ServiceImpl implements IPgsProcessDailyReportService { + + private final PgsProcessDailyReportMapper baseMapper; + + /** + * 查询进度日报 + * + * @param id 主键 + * @return 进度日报 + */ + @Override + public PgsProcessDailyReportVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询进度日报列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 进度日报分页列表 + */ + @Override + public TableDataInfo queryPageList(PgsProcessDailyReportBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的进度日报列表 + * + * @param bo 查询条件 + * @return 进度日报列表 + */ + @Override + public List queryList(PgsProcessDailyReportBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PgsProcessDailyReportBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(PgsProcessDailyReport::getId); + lqw.eq(bo.getReportDate() != null, PgsProcessDailyReport::getReportDate, bo.getReportDate()); + lqw.eq(StringUtils.isNotBlank(bo.getPerson()), PgsProcessDailyReport::getPerson, bo.getPerson()); + lqw.eq(bo.getOssId() != null, PgsProcessDailyReport::getOssId, bo.getOssId()); + lqw.eq(StringUtils.isNotBlank(bo.getUrl()), PgsProcessDailyReport::getUrl, bo.getUrl()); + lqw.eq(bo.getProjectId() != null, PgsProcessDailyReport::getProjectId, bo.getProjectId()); + return lqw; + } + + /** + * 新增进度日报 + * + * @param bo 进度日报 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PgsProcessDailyReportBo bo) { + PgsProcessDailyReport add = MapstructUtils.convert(bo, PgsProcessDailyReport.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改进度日报 + * + * @param bo 进度日报 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PgsProcessDailyReportBo bo) { + PgsProcessDailyReport update = MapstructUtils.convert(bo, PgsProcessDailyReport.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PgsProcessDailyReport entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除进度日报信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/HseViolationRecordController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/HseViolationRecordController.java index ec80dd55..ae3a79bb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/HseViolationRecordController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/HseViolationRecordController.java @@ -13,10 +13,16 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; import org.dromara.contractor.domain.SubContractor; import org.dromara.contractor.service.ISubContractorService; +import org.dromara.project.domain.BusProjectTeam; +import org.dromara.project.domain.dto.projectteammember.BusProjectTeamMemberQueryReq; +import org.dromara.project.domain.vo.projectteammember.BusProjectTeamMemberVo; +import org.dromara.project.service.IBusProjectTeamMemberService; +import org.dromara.project.service.IBusProjectTeamService; import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateHandlerReq; import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordQueryReq; import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordRectificationReq; import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordReviewReq; +import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVersionVo; import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo; import org.dromara.safety.service.IHseViolationRecordService; import org.dromara.system.domain.SysUser; @@ -43,6 +49,11 @@ public class HseViolationRecordController extends BaseController { private ISubContractorService contractorService; @Resource private ISysUserService userService; + @Resource + private IBusProjectTeamService projectTeamService; + @Resource + private IBusProjectTeamMemberService projectTeamMemberService; + /** * 查询违规记录列表 @@ -100,7 +111,6 @@ public class HseViolationRecordController extends BaseController { /** * 删除违规记录 - * * @param ids 主键串 */ @SaCheckPermission("safety:violationRecord:remove") @@ -111,7 +121,10 @@ public class HseViolationRecordController extends BaseController { return toAjax(hseViolationRecordService.deleteWithValidByIds(List.of(ids))); } - + /** + * 分包单位列表 + * @param projectId 项目ID + */ @GetMapping("/contractorList") public R> contractorList(Long projectId) { List list = contractorService.lambdaQuery() @@ -121,10 +134,48 @@ public class HseViolationRecordController extends BaseController { return R.ok(list); } - + /** + * 分包人员列表 + * @param contractorId 分包ID + */ @GetMapping("/contractorUserList") public R> contractorUserList(Long contractorId) { List sysUsers = userService.selectUserListByContractorId(contractorId); return R.ok(sysUsers); } + + /** + * 班组列表 + * @param projectId 项目ID + */ + @GetMapping("/teamList") + public R> teamList(Long projectId) { + List list = projectTeamService.lambdaQuery() + .select(BusProjectTeam::getId, BusProjectTeam::getTeamName) + .eq(BusProjectTeam::getProjectId, projectId) + .list(); + return R.ok(list); + } + + /** + * 班组列表 + * @param teamId 班组ID + */ + @GetMapping("/teamUserList") + public R> teamUserList(Long teamId) { + BusProjectTeamMemberQueryReq req = new BusProjectTeamMemberQueryReq(); + req.setTeamId(teamId); + req.setPostId("1"); + List busProjectTeamMemberVos = projectTeamMemberService.queryList(req); + return R.ok(busProjectTeamMemberVos); + } + + /** + * 获取版本列表 + */ + @GetMapping("/versionList") + public R> getVersionList(String jobKey, Long projectId) { + return R.ok(hseViolationRecordService.getVersionList(jobKey,projectId)); + } + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/app/HseViolationRecordAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/app/HseViolationRecordAppController.java index ed2cfb30..05fb44c7 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/app/HseViolationRecordAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/controller/app/HseViolationRecordAppController.java @@ -15,6 +15,7 @@ import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateHan import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordQueryReq; import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordRectificationReq; import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordReviewReq; +import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVersionVo; import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo; import org.dromara.safety.service.IHseViolationRecordService; import org.dromara.system.domain.SysUser; @@ -117,4 +118,12 @@ public class HseViolationRecordAppController extends BaseController { return R.ok(list); } + + /** + * 获取版本列表 + */ + @GetMapping("/versionList") + public R> getVersionList(String jobKey, Long projectId) { + return R.ok(violationRecordService.getVersionList(jobKey,projectId)); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/HseViolationRecord.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/HseViolationRecord.java index 52fd80eb..42f3a21f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/HseViolationRecord.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/HseViolationRecord.java @@ -132,7 +132,7 @@ public class HseViolationRecord extends BaseEntity { private String jobKey; /** - * 任务批号 + * 版本号 */ private Integer version; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/violationrecord/HseViolationRecordVersionVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/violationrecord/HseViolationRecordVersionVo.java new file mode 100644 index 00000000..59c73a70 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/violationrecord/HseViolationRecordVersionVo.java @@ -0,0 +1,11 @@ +package org.dromara.safety.domain.vo.violationrecord; + +import lombok.Data; + +@Data +public class HseViolationRecordVersionVo { + + private Long id; + + private Integer version; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/violationrecord/HseViolationRecordVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/violationrecord/HseViolationRecordVo.java index a2bae526..3737c7e9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/violationrecord/HseViolationRecordVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/violationrecord/HseViolationRecordVo.java @@ -10,6 +10,7 @@ import org.dromara.safety.domain.vo.violationlevel.HseViolationLevelVo; import java.io.Serial; import java.io.Serializable; +import java.time.LocalDate; import java.util.Date; @@ -89,7 +90,7 @@ public class HseViolationRecordVo implements Serializable { /** * 处理期限 */ - private Date disposeDeadline; + private LocalDate disposeDeadline; /** * 处理时间 @@ -163,4 +164,25 @@ public class HseViolationRecordVo implements Serializable { */ private String remark; + + /** + * 任务批号 + */ + private String jobKey; + + /** + * 版本号 + */ + private Integer version; + + /** + * 验证人id + */ + private Long validatorId; + + /** + * 验证人名字 + */ + private String validatorName; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/mapper/HseViolationRecordMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/mapper/HseViolationRecordMapper.java index 263e5027..4f1d71f6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/mapper/HseViolationRecordMapper.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/mapper/HseViolationRecordMapper.java @@ -1,8 +1,13 @@ package org.dromara.safety.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.safety.domain.HseViolationRecord; import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo; +import org.dromara.system.domain.SysUser; /** * 违规记录Mapper接口 @@ -12,4 +17,5 @@ import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo; */ public interface HseViolationRecordMapper extends BaseMapperPlus { + Page selectPageList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseViolationRecordService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseViolationRecordService.java index c2de4007..be53f3c1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseViolationRecordService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseViolationRecordService.java @@ -7,6 +7,7 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.safety.domain.HseViolationRecord; import org.dromara.safety.domain.dto.violationrecord.*; +import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVersionVo; import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo; import java.util.Collection; @@ -107,4 +108,15 @@ public interface IHseViolationRecordService extends IService * @return 是否新增成功 */ Boolean insertReview(HseViolationRecordReviewReq req); + + + /** + * 获取过往版本 + */ + HseViolationRecordVo getHistory(String jobKey,Integer version); + + /** + * 获取版本列表 + */ + List getVersionList(String jobKey, Long projectId); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseViolationRecordServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseViolationRecordServiceImpl.java index 36a5463c..a53026fe 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseViolationRecordServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseViolationRecordServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.safety.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; @@ -19,6 +20,7 @@ import org.dromara.common.sse.config.SseProperties; import org.dromara.common.sse.dto.SeeMessageContentDto; import org.dromara.common.sse.dto.SseMessageDto; import org.dromara.common.sse.utils.SseMessageUtils; +import org.dromara.gps.domain.GpsEquipmentSonToGpsEquipmentSonVoMapperImpl; import org.dromara.project.domain.BusProjectTeamMember; import org.dromara.project.service.IBusProjectTeamMemberService; import org.dromara.safety.domain.HseRecognizeRecord; @@ -28,6 +30,7 @@ import org.dromara.safety.domain.HseViolationRecord; import org.dromara.safety.domain.dto.violationrecord.*; import org.dromara.safety.domain.enums.HseSafetyInspectionReviewTypeEnum; import org.dromara.safety.domain.enums.HseSafetyInspectionStatusEnum; +import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVersionVo; import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo; import org.dromara.safety.mapper.HseViolationRecordMapper; import org.dromara.safety.service.IHseRecognizeRecordService; @@ -116,8 +119,8 @@ public class HseViolationRecordServiceImpl extends ServiceImpl violationRecordPage = this.page(pageQuery.build(), lqw); - return TableDataInfo.build(this.getVoPage(violationRecordPage)); + Page hseViolationRecordPage = this.getBaseMapper().selectPageList(pageQuery.build(), lqw); + return TableDataInfo.build(this.getVoPage(hseViolationRecordPage)); } /** @@ -195,6 +198,8 @@ public class HseViolationRecordServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(HseViolationRecord::getJobKey,jobKey).eq(HseViolationRecord::getVersion,version).last("limit 1"); + HseViolationRecord one = getOne(wrapper); + return getVo(one); + } + @Override + public List getVersionList(String jobKey, Long projectId) { + List list = list(new LambdaQueryWrapper() + .eq(HseViolationRecord::getJobKey, jobKey) + .eq(HseViolationRecord::getProjectId, projectId)); - - - + return list.stream().map(record -> { + HseViolationRecordVersionVo vo = new HseViolationRecordVersionVo(); + BeanUtils.copyProperties(record, vo); + return vo; + }).toList(); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java index 0ecdbeab..97b5baf1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -1526,6 +1526,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService { public List selectUserListByContractorId(Long contractorId) { return baseMapper.selectList(Wrappers.lambdaQuery() - .select(SysUser::getUserId, SysUser::getNickName)); + .select(SysUser::getUserId, SysUser::getNickName) + .eq(SysUser::getContractorId, contractorId) + .eq(SysUser::getAppUserType, "2") + ); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/progress/PgsProcessDailyReportMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/progress/PgsProcessDailyReportMapper.xml new file mode 100644 index 00000000..b2666ff5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/progress/PgsProcessDailyReportMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/safety/HseViolationRecordMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/safety/HseViolationRecordMapper.xml index 7a4610aa..d9fa99b3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/safety/HseViolationRecordMapper.xml +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/safety/HseViolationRecordMapper.xml @@ -3,5 +3,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +