diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml index d5ae7755..afc775a5 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml @@ -333,12 +333,13 @@ sse: copy: /task/taskCopyList project: /personnel-management/project violationRecord: /safety-management/ai/violationRecord + drawing: /design-management/volumeCatalog --- # websocket websocket: # 如果关闭 需要和前端开关一起关闭 - enabled: false + enabled: true # 路径 path: /resource/websocket # 设置访问源地址 diff --git a/xinnengyuan/ruoyi-common/ruoyi-common-sse/src/main/java/org/dromara/common/sse/config/SseProperties.java b/xinnengyuan/ruoyi-common/ruoyi-common-sse/src/main/java/org/dromara/common/sse/config/SseProperties.java index ad930e83..1eda5f99 100644 --- a/xinnengyuan/ruoyi-common/ruoyi-common-sse/src/main/java/org/dromara/common/sse/config/SseProperties.java +++ b/xinnengyuan/ruoyi-common/ruoyi-common-sse/src/main/java/org/dromara/common/sse/config/SseProperties.java @@ -27,6 +27,8 @@ public class SseProperties { private String violationRecord; + private String drawing; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/DesVolumeCatalogController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/DesVolumeCatalogController.java index cf73211a..1c7c9324 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/DesVolumeCatalogController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/DesVolumeCatalogController.java @@ -22,12 +22,16 @@ import org.dromara.design.domain.dto.ExcelData; import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogCreateReq; import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogQueryReq; import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogUpdateReq; +import org.dromara.design.domain.vo.CopyUserVo; import org.dromara.design.domain.vo.DesUserVo; import org.dromara.design.domain.vo.volumecatalog.DesVolumeCatalogVo; import org.dromara.design.domain.vo.volumefile.DesVolumeFileVo; import org.dromara.design.service.IDesUserService; import org.dromara.design.service.IDesVolumeCatalogService; import org.dromara.design.service.IDesVolumeFileService; +import org.dromara.system.domain.bo.SysUserBo; +import org.dromara.system.domain.vo.SysUserExportVo; +import org.dromara.system.service.ISysUserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.validation.annotation.Validated; @@ -66,6 +70,8 @@ public class DesVolumeCatalogController extends BaseController { @Resource private IDesUserService desUserService; + @Resource + private ISysUserService sysUserService; /** @@ -172,6 +178,21 @@ public class DesVolumeCatalogController extends BaseController { } + /** + * 查询抄送人员列表 + */ +// @SaCheckPermission("design:volumeCatalog:copyUserList") + @GetMapping("/copyUserList") + public R> copyUserList() { + + SysUserBo sysUserBo = new SysUserBo(); + sysUserBo.setExcludeUserIds("1"); + + List sysUserExportVos = sysUserService.selectUserExportList(sysUserBo); + List copyUserVos = BeanUtil.copyToList(sysUserExportVos, CopyUserVo.class); + return R.ok(copyUserVos); + } + /** * 查询设计人员列表 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/dto/volumefile/DesVolumeFileCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/dto/volumefile/DesVolumeFileCreateReq.java index 91ceb89e..7c2a2a95 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/dto/volumefile/DesVolumeFileCreateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/dto/volumefile/DesVolumeFileCreateReq.java @@ -32,7 +32,7 @@ public class DesVolumeFileCreateReq implements Serializable { private List cancellationIds; /** - * 查阅人id列表 + * 抄送人id列表 */ private List userIds; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/CopyUserVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/CopyUserVo.java new file mode 100644 index 00000000..e095eb76 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/CopyUserVo.java @@ -0,0 +1,14 @@ +package org.dromara.design.domain.vo; + + +import lombok.Data; + +@Data +public class CopyUserVo { + + private Long userId; + + private String nickName; + + private String phonenumber; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/IDesVolumeFileService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/IDesVolumeFileService.java index f1fb0496..da7639a4 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/IDesVolumeFileService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/IDesVolumeFileService.java @@ -90,7 +90,7 @@ public interface IDesVolumeFileService extends IService { /** - * 获取卷册文件详细信息 + * 二维码获取卷册文件详细信息 */ DesVolumeFileCodeVo getCodeInfo(Long id); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesDesignChangeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesDesignChangeServiceImpl.java index 181eb994..d7b69cea 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesDesignChangeServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesDesignChangeServiceImpl.java @@ -655,7 +655,10 @@ public class DesDesignChangeServiceImpl extends ServiceImpl existingFiles = baseMapper.selectList(new LambdaQueryWrapper() .eq(DesVolumeFile::getVolumeCatalogId, desVolumeFile.getVolumeCatalogId()) - .eq(DesVolumeFile::getType, "3") + .eq(DesVolumeFile::getType, DesVolumeFile.BLUEPRINT) .orderByDesc(DesVolumeFile::getVersion)); if(CollectionUtil.isNotEmpty(existingFiles)){ @@ -145,16 +153,16 @@ public class DesVolumeFileServiceImpl extends ServiceImpl existingFiles = baseMapper.selectList(new LambdaQueryWrapper() .eq(DesVolumeFile::getVolumeCatalogId, desVolumeFile.getVolumeCatalogId()) - .eq(DesVolumeFile::getType, "1") + .eq(DesVolumeFile::getType, DesVolumeFile.PROCESS) .orderByDesc(DesVolumeFile::getVersion)); if(!existingFiles.isEmpty()){ DesVolumeFile first = existingFiles.getFirst(); - if ("4".equals(desVolumeFile.getType())) { + if (DesVolumeFile.WASTE.equals(desVolumeFile.getType())) { SysOssVo ossVo = ossService.getById(first.getFileId()); desVolumeFileCodeVo.setFileUrl(ossVo.getUrl()); } - if ("1".equals(desVolumeFile.getType())) { + if (DesVolumeFile.PROCESS.equals(desVolumeFile.getType())) { if (!first.getId().equals(id)) { desVolumeFileCodeVo.setIsLatest(false); @@ -231,6 +239,19 @@ public class DesVolumeFileServiceImpl extends ServiceImpl"+"的蓝图已上传"); + dto.setMessage(JSONUtil.toJsonStr(contentDto)); + dto.setUserIds(req.getUserIds()); + SseMessageUtils.publishMessage(dto); + } + return true; } @@ -239,7 +260,7 @@ public class DesVolumeFileServiceImpl extends ServiceImpl existingFiles = baseMapper.selectList(new LambdaQueryWrapper() .eq(DesVolumeFile::getVolumeCatalogId, req.getVolumeCatalogId()) - .eq(DesVolumeFile::getType, "3") + .eq(DesVolumeFile::getType, DesVolumeFile.BLUEPRINT) .orderByDesc(DesVolumeFile::getVersion)); if (!existingFiles.isEmpty()) { throw new ServiceException("蓝图已上传"); @@ -249,7 +270,7 @@ public class DesVolumeFileServiceImpl extends ServiceImpl existingFiles = baseMapper.selectList(new LambdaQueryWrapper() .eq(DesVolumeFile::getVolumeCatalogId, req.getVolumeCatalogId()) - .eq(DesVolumeFile::getType, "1") + .eq(DesVolumeFile::getType, DesVolumeFile.PROCESS) .orderByDesc(DesVolumeFile::getVersion)); if (!existingFiles.isEmpty()) { DesVolumeFile first = existingFiles.getFirst(); @@ -272,7 +293,7 @@ public class DesVolumeFileServiceImpl extends ServiceImpl fileIds, String type, List desVolumeFiles) { // 用于记录同一批次中已处理的文件名及对应的版本号 - Map batchFileVersionMap = new HashMap<>(); + Map batchFileVersionMap = new HashMap<>(); for (Long fileId : fileIds) { SysOssVo ossVo = ossService.getById(fileId); @@ -292,21 +313,82 @@ public class DesVolumeFileServiceImpl extends ServiceImpl blueprintFiles = baseMapper.selectList(new LambdaQueryWrapper() + .eq(DesVolumeFile::getType, DesVolumeFile.BLUEPRINT) // 蓝图类型 +// .eq(DesVolumeFile::getFileName, fileName) + .orderByDesc(DesVolumeFile::getVersion)); + + String blueprintVersion = "1.0"; // 默认蓝图版本 + if (CollectionUtil.isNotEmpty(blueprintFiles)) { + blueprintVersion = blueprintFiles.getFirst().getVersion(); + } + + // 解析蓝图版本号 + String[] blueprintParts = blueprintVersion.split("\\."); + int blueprintMajor = Integer.parseInt(blueprintParts[0]); + + if (CollectionUtil.isNotEmpty(existingFiles)) { + // 已存在过程图纸,需要递增次版本号 + String lastVersion = existingFiles.getFirst().getVersion(); + String[] parts = lastVersion.split("\\."); + int major = Integer.parseInt(parts[0]); + int minor = Integer.parseInt(parts[1]); + + if (major == blueprintMajor) { + // 同一主版本,次版本号递增 + minor++; + versionStr = major + "." + minor; + } else { + // 不同主版本,使用蓝图的主版本并从1开始 + versionStr = blueprintMajor + ".1"; + } + } else { + // 不存在过程图纸,从蓝图版本的.1开始 + versionStr = blueprintMajor + ".1"; + } } // 检查同一批次中是否已存在同名文件 if (batchFileVersionMap.containsKey(fileName)) { - // 如果存在,则在原有版本号基础上+1 - version = Math.max(version, batchFileVersionMap.get(fileName) + 1); + String lastBatchVersion = String.valueOf(batchFileVersionMap.get(fileName)); + if ( DesVolumeFile.BLUEPRINT.equals(type)) { + // 蓝图文件批次处理 + int lastMajor = (int) Math.floor(Double.parseDouble(lastBatchVersion)); + versionStr = (lastMajor + 1) + ".0"; + } else if (DesVolumeFile.PROCESS.equals(type)) { + // 过程图纸批次处理 + String[] currentParts = versionStr.split("\\."); + String[] batchParts = lastBatchVersion.split("\\."); + + int currentMajor = Integer.parseInt(currentParts[0]); + int currentMinor = Integer.parseInt(currentParts[1]); + int batchMajor = Integer.parseInt(batchParts[0]); + int batchMinor = Integer.parseInt(batchParts[1]); + + if (currentMajor == batchMajor) { + // 同一主版本,取较大的次版本号+1 + int newMinor = Math.max(currentMinor, batchMinor) + 1; + versionStr = currentMajor + "." + newMinor; + } + } } - // 更新批次文件版本映射 - batchFileVersionMap.put(fileName, version); + // 更新批次文件版本映射(存储为字符串形式) + batchFileVersionMap.put(fileName, versionStr); - file.setVersion(String.valueOf(version)); + file.setVersion(versionStr); file.setFileName(fileName); desVolumeFiles.add(file); } @@ -341,7 +423,7 @@ public class DesVolumeFileServiceImpl extends ServiceImpl getInfoByProjectId(@NotNull(message = "项目Id不能为空") + @PathVariable Long projectId) { + return R.ok(busAttendanceRuleService.queryByProjectId(projectId)); + } + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java index e518fd6e..2509caf5 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusAttendanceAppController.java @@ -19,7 +19,7 @@ import org.springframework.web.multipart.MultipartFile; import java.util.List; /** - * 考勤app + * app考勤 * * @author lilemy * @date 2025-07-24 11:53 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusLeaveAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusLeaveAppController.java index 260eccde..4e9fea7a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusLeaveAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusLeaveAppController.java @@ -18,8 +18,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** - * 施工人员请假申请 app 接口 - * + * app请假 * @author lilemy * @date 2025-07-24 14:51 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusReissueCardAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusReissueCardAppController.java index 6aa4c5f7..c23521a3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusReissueCardAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/app/BusReissueCardAppController.java @@ -18,8 +18,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** - * 施工人员补卡申请 app 接口 - * + * app补卡 * @author lilemy * @date 2025-07-24 14:51 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceRuleService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceRuleService.java index fcbb4236..e09e6330 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceRuleService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusAttendanceRuleService.java @@ -1,5 +1,6 @@ package org.dromara.project.service; +import jakarta.validation.constraints.NotNull; import org.dromara.project.domain.vo.BusAttendanceRuleVo; import org.dromara.project.domain.bo.BusAttendanceRuleBo; import org.dromara.project.domain.BusAttendanceRule; @@ -7,6 +8,8 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.web.bind.annotation.PathVariable; + import java.util.Collection; import java.util.List; @@ -72,4 +75,5 @@ public interface IBusAttendanceRuleService extends IService{ * 根据项目id查询 */ BusAttendanceRuleVo queryByProjectId(Long projectId); + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceRuleServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceRuleServiceImpl.java index f425d4b1..cf0c57d6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceRuleServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceRuleServiceImpl.java @@ -169,8 +169,7 @@ public class BusAttendanceRuleServiceImpl extends ServiceImpl list(QltQualityConstructionLogQueryReq req, PageQuery pageQuery) { + return qualityConstructionLogService.queryPageList(req, pageQuery); + } + + /** + * 导出质量-施工日志列表 + */ + @SaCheckPermission("quality:qualityConstructionLog:export") + @Log(title = "质量-施工日志", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(QltQualityConstructionLogQueryReq req, HttpServletResponse response) { + List list = qualityConstructionLogService.queryList(req); + ExcelUtil.exportExcel(list, "质量-施工日志", QltQualityConstructionLogVo.class, response); + } + + /** + * 根据主键导出质量-施工日志 + */ + @SaCheckPermission("quality:qualityConstructionLog:exportWord") + @Log(title = "质量-施工日志", businessType = BusinessType.EXPORT) + @PostMapping("/export/word") + public void exportWordById(@NotNull(message = "主键不能为空") Long id, + HttpServletResponse response) { + qualityConstructionLogService.exportWordById(id, response); + } + + /** + * 获取质量-施工日志详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("quality:qualityConstructionLog:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(qualityConstructionLogService.queryById(id)); + } + + /** + * 新增质量-施工日志 + */ + @SaCheckPermission("quality:qualityConstructionLog:add") + @Log(title = "质量-施工日志", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody QltQualityConstructionLogCreateReq req) { + return R.ok(qualityConstructionLogService.insertByBo(req)); + } + + /** + * 修改质量-施工日志 + */ + @SaCheckPermission("quality:qualityConstructionLog:edit") + @Log(title = "质量-施工日志", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody QltQualityConstructionLogUpdateReq req) { + return toAjax(qualityConstructionLogService.updateByBo(req)); + } + + /** + * 删除质量-施工日志 + * + * @param ids 主键串 + */ + @SaCheckPermission("quality:qualityConstructionLog:remove") + @Log(title = "质量-施工日志", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(qualityConstructionLogService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/app/QltQualityInspectionAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/app/QltQualityInspectionAppController.java new file mode 100644 index 00000000..6924e38a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/app/QltQualityInspectionAppController.java @@ -0,0 +1,108 @@ +package org.dromara.quality.controller.app; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.project.domain.vo.projectteam.BusProjectTeamForemanVo; +import org.dromara.project.service.IBusProjectTeamService; +import org.dromara.quality.domain.dto.qualityinspection.QltQualityInspectionCreateReq; +import org.dromara.quality.domain.dto.qualityinspection.QltQualityInspectionGisReq; +import org.dromara.quality.domain.dto.qualityinspection.QltQualityInspectionQueryReq; +import org.dromara.quality.domain.dto.qualityinspection.QltQualityInspectionUpdateReq; +import org.dromara.quality.domain.vo.qualityinspection.QltQualityInspectionListGisVo; +import org.dromara.quality.domain.vo.qualityinspection.QltQualityInspectionVo; +import org.dromara.quality.service.IQltQualityInspectionService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 质量-APP检查工单 + * + * @author lilemy + * @date 2025-04-16 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/app/quality/qualityInspection") +public class QltQualityInspectionAppController extends BaseController { + + private final IQltQualityInspectionService qualityInspectionService; + + private final IBusProjectTeamService busProjectTeamService; + + /** + * 查询质量-检查工单列表 + */ + @GetMapping("/list") + public TableDataInfo list(QltQualityInspectionQueryReq req, PageQuery pageQuery) { + return qualityInspectionService.queryPageList(req, pageQuery); + } + + + /** + * 获取质量-检查工单详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("quality:qualityInspection:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(qualityInspectionService.queryById(id)); + } + + /** + * 新增质量-检查工单 + */ + @Log(title = "质量-检查工单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated @RequestBody QltQualityInspectionCreateReq req) { + return R.ok(qualityInspectionService.insertByBo(req)); + } + + /** + * 修改质量-检查工单 + */ + @Log(title = "质量-检查工单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated @RequestBody QltQualityInspectionUpdateReq req) { + return toAjax(qualityInspectionService.updateByBo(req)); + } + + /** + * 删除质量-检查工单 + * + * @param ids 主键串 + */ + @Log(title = "质量-检查工单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(qualityInspectionService.deleteWithValidByIds(List.of(ids), true)); + } + + + /** + * 整改人选择列表 + */ + @GetMapping("/listForeman/{projectId}") + public R> listForeman(@NotNull(message = "项目id不能为空") + @PathVariable Long projectId) { + return R.ok(busProjectTeamService.queryForemanListByProjectId(projectId)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/QltQualityInspection.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/QltQualityInspection.java index f73766da..e8995c56 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/QltQualityInspection.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/QltQualityInspection.java @@ -59,6 +59,11 @@ public class QltQualityInspection extends BaseEntity { */ private String inspectionFile; + /** + * 巡检图片附件 + */ + private String inspectionImgFile; + /** * 整改单位(1分包 2班组) */ @@ -99,6 +104,11 @@ public class QltQualityInspection extends BaseEntity { */ private String rectificationFile; + /** + * 整改图片附件 + */ + private String rectificationImgFile; + /** * 验证结果 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionCreateReq.java index df491dc3..528dd087 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionCreateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionCreateReq.java @@ -51,6 +51,12 @@ public class QltQualityInspectionCreateReq implements Serializable { */ private String inspectionFile; + + /** + * 巡检图片附件 + */ + private String inspectionImgFile; + /** * 整改单位(1分包 2班组) */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionQueryReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionQueryReq.java index 2b0104f5..f8e996e9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionQueryReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionQueryReq.java @@ -40,4 +40,12 @@ public class QltQualityInspectionQueryReq implements Serializable { */ private Long rectificationId; + /** + * 整改人 + */ + private Long correctorId; + + + private Long createBy; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionUpdateReq.java index a452f9c9..b392a56a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionUpdateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/dto/qualityinspection/QltQualityInspectionUpdateReq.java @@ -51,6 +51,12 @@ public class QltQualityInspectionUpdateReq implements Serializable { */ private String inspectionFile; + /** + * 巡检图片附件 + */ + private String inspectionImgFile; + + /** * 班组id */ @@ -86,6 +92,11 @@ public class QltQualityInspectionUpdateReq implements Serializable { */ private String rectificationFile; + /** + * 整改图片附件 + */ + private String rectificationImgFile; + /** * 验证结果 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/vo/qualityinspection/QltQualityInspectionVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/vo/qualityinspection/QltQualityInspectionVo.java index 9d1653f5..7fda01da 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/vo/qualityinspection/QltQualityInspectionVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/domain/vo/qualityinspection/QltQualityInspectionVo.java @@ -6,6 +6,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; import org.dromara.quality.domain.QltQualityInspection; import org.dromara.system.domain.vo.SysOssVo; @@ -46,6 +48,10 @@ public class QltQualityInspectionVo implements Serializable { @ExcelDictFormat(dictType = "quality_inspection_check_type") private String inspectionType; + + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "inspectionType",other = "quality_inspection_check_type") + private String inspectionTypeName; + /** * 巡检标题 */ @@ -75,6 +81,16 @@ public class QltQualityInspectionVo implements Serializable { */ private List inspectionFileList; + /** + * 巡检图片附件 + */ + private String inspectionImgFile; + + /** + * 巡检图片附件列表 + */ + private List inspectionImgFileList; + /** * 整改单位(1分包 2班组) */ @@ -125,6 +141,16 @@ public class QltQualityInspectionVo implements Serializable { */ private List rectificationFileList; + /** + * 整改图片附件 + */ + private String rectificationImgFile; + + /** + * 整改图片附件列表 + */ + private List rectificationImgFileList; + /** * 验证结果 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/impl/QltQualityInspectionServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/impl/QltQualityInspectionServiceImpl.java index aa4a59eb..c205b990 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/impl/QltQualityInspectionServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/impl/QltQualityInspectionServiceImpl.java @@ -318,11 +318,14 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl ossRectificationFileIdList = qualityInspectionList.stream().map(QltQualityInspection::getRectificationFile).filter(StringUtils::isNotBlank) .flatMap(fileId -> Arrays.stream(fileId.split(",")).map(Long::parseLong)).distinct().toList(); ossIdList.addAll(ossRectificationFileIdList); + + List ossRectificationImgFileIdList = qualityInspectionList.stream().map(QltQualityInspection::getRectificationImgFile).filter(StringUtils::isNotBlank) + .flatMap(fileId -> Arrays.stream(fileId.split(",")).map(Long::parseLong)).distinct().toList(); + + ossIdList.addAll(ossRectificationImgFileIdList); + + List ossInspectionImgFileIdList = qualityInspectionList.stream().map(QltQualityInspection::getInspectionImgFile).filter(StringUtils::isNotBlank) + .flatMap(fileId -> Arrays.stream(fileId.split(",")).map(Long::parseLong)).distinct().toList(); + ossIdList.addAll(ossInspectionImgFileIdList); + Map> ossMap = ossService.listByIds(ossIdList) .stream().collect(Collectors.groupingBy(SysOssVo::getOssId)); // 对象列表 => 封装对象列表 @@ -401,6 +414,31 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl rectificationImgFileList = new ArrayList<>(); + if (StringUtils.isNotBlank(rectificationImgFile)) { + List rectificationImgFileIdList = Arrays.stream(rectificationImgFile.split(",")).map(Long::parseLong).toList(); + for (Long id : rectificationImgFileIdList) { + if (ossMap.containsKey(id)) { + rectificationImgFileList.add(ossMap.get(id).getFirst()); + } + } + } + qualityInspectionVo.setRectificationImgFileList(rectificationImgFileList); + + String inspectionImgFile = qualityInspection.getInspectionImgFile(); + List inspectionImgFileList = new ArrayList<>(); + if (StringUtils.isNotBlank(inspectionImgFile)) { + List inspectionImgFileIdList = Arrays.stream(inspectionImgFile.split(",")).map(Long::parseLong).toList(); + for (Long id : inspectionImgFileIdList) { + if (ossMap.containsKey(id)) { + inspectionImgFileList.add(ossMap.get(id).getFirst()); + } + } + } + qualityInspectionVo.setInspectionImgFileList(inspectionImgFileList); + return qualityInspectionVo; }).toList(); qualityInspectionVoPage.setRecords(qualityInspectionVoList); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMenu.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMenu.java index 2df55962..f0d6d378 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMenu.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMenu.java @@ -106,6 +106,12 @@ public class SysMenu extends BaseEntity { @TableField(exist = false) private String parentName; + + /** + * 菜单类型(menu_source) 1-web2-app + */ + private String menuSource; + /** * 子菜单 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java index 363dd91b..3a7726bb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRole.java @@ -61,6 +61,11 @@ public class SysRole extends TenantEntity { */ private Boolean deptCheckStrictly; + /** + * 角色类型 1-web 2-app + */ + private String roleSource; + /** * 角色状态(0正常 1停用) */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java index fbaafaa6..d1b6cb5c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java @@ -107,4 +107,10 @@ public class SysMenuBo extends BaseEntity { */ private String remark; + + /** + * 菜单类型(menu_source) 1-web2-app + */ + private String menuSource; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java index 8d839ae3..f3f4ef0e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java @@ -100,5 +100,9 @@ public class SysRoleBo extends BaseEntity { public boolean isSuperAdmin() { return SystemConstants.SUPER_ADMIN_ID.equals(this.roleId); } + /** + * 角色类型 1-web 2-app + */ + private String roleSource; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java index 5214a336..e0da2ea0 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java @@ -108,6 +108,12 @@ public class SysMenuVo implements Serializable { */ private Date createTime; + + /** + * 菜单类型(menu_source) 1-web2-app + */ + private String menuSource; + /** * 子菜单 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java index 38625a09..9fd7851f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java @@ -72,6 +72,7 @@ public class SysMenuServiceImpl implements ISysMenuService { .like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName()) .eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible()) .eq(StringUtils.isNotBlank(menu.getStatus()), SysMenu::getStatus, menu.getStatus()) + .eq(StringUtils.isNotBlank(menu.getMenuSource()),SysMenu::getMenuSource, menu.getMenuSource()) .orderByAsc(SysMenu::getParentId) .orderByAsc(SysMenu::getOrderNum)); } else { @@ -80,6 +81,7 @@ public class SysMenuServiceImpl implements ISysMenuService { .like(StringUtils.isNotBlank(menu.getMenuName()), "m.menu_name", menu.getMenuName()) .eq(StringUtils.isNotBlank(menu.getVisible()), "m.visible", menu.getVisible()) .eq(StringUtils.isNotBlank(menu.getStatus()), "m.status", menu.getStatus()) + .eq(StringUtils.isNotBlank(menu.getMenuSource()),"m.menu_source", menu.getMenuSource()) .orderByAsc("m.parent_id") .orderByAsc("m.order_num"); List list = baseMapper.selectMenuListByUserId(wrapper); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java index 7cdfa7bb..2173d2bc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java @@ -83,6 +83,7 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService { Map params = bo.getParams(); QueryWrapper wrapper = Wrappers.query(); wrapper.eq("r.del_flag", SystemConstants.NORMAL) + .eq(StringUtils.isNotBlank(bo.getRoleSource()), "r.role_source", bo.getRoleSource()) .eq(ObjectUtil.isNotNull(bo.getDeptId()), "r.dept_id", bo.getDeptId()) .eq(ObjectUtil.isNotNull(bo.getIsSpecial()), "r.is_special", bo.getIsSpecial()) .eq(ObjectUtil.isNotNull(bo.getRoleId()), "r.role_id", bo.getRoleId())