From 177fcd5f059fc6790c4c2125e18c0e2e9888519b Mon Sep 17 00:00:00 2001 From: lcj <2331845269@qq.com> Date: Fri, 1 Aug 2025 19:50:56 +0800 Subject: [PATCH] =?UTF-8?q?[add]=20=E5=B7=A5=E5=8D=95=E5=9B=9E=E5=A4=8D?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=86=E5=8C=85=E6=96=B9=EF=BC=8C=E6=96=BD?= =?UTF-8?q?=E5=B7=A5=E8=BF=9B=E5=BA=A6=E8=AE=A1=E5=88=92=20[update]=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9app=E8=AF=86=E5=88=AB=E3=80=81=E5=AE=9E?= =?UTF-8?q?=E5=90=8D=EF=BC=8C=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InspectionRectificationUnitType.java | 24 +++ .../utils/baiduUtil/entity/ocr/BankData.java | 5 - .../baiduUtil/entity/ocr/WordsResult.java | 13 +- .../controller/SubContractorController.java | 11 ++ .../app/SubConstructionUserAppController.java | 12 +- .../SubConstructionUserAuthenticationReq.java | 15 -- .../SubConstructionUserOrcBankVo.java | 50 ++++++ .../SubConstructionUserOrcIdCardVo.java | 68 ++++++++ .../vo/contractor/SubContractorManagerVo.java | 39 +++++ .../domain/vo/contractor/SubManagerVo.java | 27 ++++ .../service/ISubConstructionUserService.java | 16 +- .../service/ISubContractorService.java | 8 + .../impl/SubConstructionUserServiceImpl.java | 52 ++++-- .../impl/SubContractorServiceImpl.java | 19 +++ .../impl/OutConstructionValueServiceImpl.java | 42 ++--- ...PgsConstructionSchedulePlanController.java | 107 +++++++++++++ .../PgsProgressCategoryController.java | 5 +- .../domain/PgsConstructionSchedulePlan.java | 82 ++++++++++ .../progress/domain/PgsProgressCategory.java | 8 +- .../domain/PgsProgressCategoryTemplate.java | 2 +- .../PgsConstructionSchedulePlanCreateReq.java | 77 +++++++++ .../PgsConstructionSchedulePlanQueryReq.java | 32 ++++ .../PgsConstructionSchedulePlanUpdateReq.java | 58 +++++++ .../PgsProgressCategoryCreatePriceReq.java | 9 +- .../PgsProgressCategoryUpdateReq.java | 2 +- .../PgsProgressCategoryTemplateCreateReq.java | 2 +- .../PgsProgressCategoryTemplateQueryReq.java | 2 +- .../PgsProgressCategoryTemplateUpdateReq.java | 2 +- .../PgsConstructionSchedulePlanVo.java | 103 ++++++++++++ .../PgsProgressCategoryVo.java | 2 +- .../PgsProgressCategoryTemplateVo.java | 2 +- .../PgsConstructionSchedulePlanMapper.java | 15 ++ .../IPgsConstructionSchedulePlanService.java | 85 ++++++++++ ...gsConstructionSchedulePlanServiceImpl.java | 149 ++++++++++++++++++ .../impl/PgsProgressCategoryServiceImpl.java | 42 +++-- ...gsProgressCategoryTemplateServiceImpl.java | 10 +- .../impl/BusProjectTeamServiceImpl.java | 33 +++- .../QltQualityInspectionController.java | 8 +- .../quality/domain/QltQualityInspection.java | 13 +- .../QltQualityInspectionCreateReq.java | 23 ++- .../QltQualityInspectionQueryReq.java | 9 +- .../QltQualityInspectionVo.java | 20 ++- .../service/IQltQualityInspectionService.java | 1 - .../impl/QltQualityInspectionServiceImpl.java | 84 ++++------ .../HseSafetyInspectionController.java | 10 +- .../safety/domain/HseSafetyInspection.java | 26 +-- .../safety/domain/HseViolationRecord.java | 14 +- .../HseSafetyInspectionCreateReq.java | 45 ++---- .../HseSafetyInspectionQueryReq.java | 13 +- .../HseViolationRecordCreateHandlerReq.java | 18 ++- .../HseViolationRecordQueryReq.java | 10 ++ .../HseSafetyInspectionVo.java | 55 ++----- .../violationrecord/HseViolationRecordVo.java | 18 ++- .../service/IHseSafetyInspectionService.java | 9 +- .../impl/HseSafetyInspectionServiceImpl.java | 127 +++++++++------ .../impl/HseViolationRecordServiceImpl.java | 22 +-- .../PgsConstructionSchedulePlanMapper.xml | 7 + xinnengyuan/script/sql/menuInitValue.sql | 60 +++++++ xinnengyuan/script/sql/xinnengyuan.sql | 23 +++ 59 files changed, 1466 insertions(+), 379 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/enums/InspectionRectificationUnitType.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/constructionuser/SubConstructionUserOrcBankVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/constructionuser/SubConstructionUserOrcIdCardVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/contractor/SubContractorManagerVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/contractor/SubManagerVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsConstructionSchedulePlanController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsConstructionSchedulePlan.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanCreateReq.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanQueryReq.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanUpdateReq.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/constructionscheduleplan/PgsConstructionSchedulePlanVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/mapper/PgsConstructionSchedulePlanMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/IPgsConstructionSchedulePlanService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsConstructionSchedulePlanServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/progress/PgsConstructionSchedulePlanMapper.xml diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/enums/InspectionRectificationUnitType.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/enums/InspectionRectificationUnitType.java new file mode 100644 index 00000000..0399a2b6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/enums/InspectionRectificationUnitType.java @@ -0,0 +1,24 @@ +package org.dromara.common.enums; + +import lombok.Getter; + +/** + * @author lilemy + * @date 2025-08-01 10:47 + */ +@Getter +public enum InspectionRectificationUnitType { + + CONTRACTOR("分包方", "1"), + TEAM("班组", "2"); + + private final String text; + + private final String value; + + InspectionRectificationUnitType(String text, String value) { + this.text = text; + this.value = value; + } + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/utils/baiduUtil/entity/ocr/BankData.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/utils/baiduUtil/entity/ocr/BankData.java index 8732c05d..9d3a8f49 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/utils/baiduUtil/entity/ocr/BankData.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/utils/baiduUtil/entity/ocr/BankData.java @@ -2,7 +2,6 @@ package org.dromara.common.utils.baiduUtil.entity.ocr; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; -import org.dromara.system.domain.vo.SysOssVo; /** * @Author 铁憨憨 @@ -38,8 +37,4 @@ public class BankData { @JSONField(name = "holder_name", label = "持卡人姓名,不能识别时为空") private String holderName; - /** - * 银行卡图片信息 - */ - private SysOssVo image; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/utils/baiduUtil/entity/ocr/WordsResult.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/utils/baiduUtil/entity/ocr/WordsResult.java index 482c2372..0769bf9d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/utils/baiduUtil/entity/ocr/WordsResult.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/common/utils/baiduUtil/entity/ocr/WordsResult.java @@ -2,7 +2,6 @@ package org.dromara.common.utils.baiduUtil.entity.ocr; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; -import org.dromara.system.domain.vo.SysOssVo; /** * @Author 铁憨憨 @@ -31,8 +30,12 @@ public class WordsResult { @JSONField(name = "性别") private Field gender; - /** - * 身份证图片信息 - */ - private SysOssVo image; + @JSONField(name = "失效日期") + private Field expiryDate; + + @JSONField(name = "签发机关") + private Field issuingAuthority; + + @JSONField(name = "签发日期") + private Field issuingDate; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/controller/SubContractorController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/controller/SubContractorController.java index 3962724c..4b0867ec 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/controller/SubContractorController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/controller/SubContractorController.java @@ -18,6 +18,7 @@ import org.dromara.common.web.core.BaseController; import org.dromara.contractor.domain.dto.contractor.SubContractorCreateReq; import org.dromara.contractor.domain.dto.contractor.SubContractorQueryReq; import org.dromara.contractor.domain.dto.contractor.SubContractorUpdateReq; +import org.dromara.contractor.domain.vo.contractor.SubContractorManagerVo; import org.dromara.contractor.domain.vo.contractor.SubContractorVo; import org.dromara.contractor.service.ISubContractorService; import org.springframework.validation.annotation.Validated; @@ -58,6 +59,16 @@ public class SubContractorController extends BaseController { return contractorService.queryListNoDept(projectId); } + /** + * 根据项目id查询分包方管理人员信息列表 + */ + @SaCheckPermission("contractor:contractor:listManager") + @GetMapping("/listManager/{projectId}") + public R> listManager(@NotNull(message = "项目id不能为空") + @PathVariable Long projectId) { + return R.ok(contractorService.queryManagerList(projectId)); + } + /** * 导出分包单位列表 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/controller/app/SubConstructionUserAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/controller/app/SubConstructionUserAppController.java index b6deda7d..a50979db 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/controller/app/SubConstructionUserAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/controller/app/SubConstructionUserAppController.java @@ -5,10 +5,10 @@ import org.dromara.common.core.domain.R; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.satoken.utils.LoginHelper; -import org.dromara.common.utils.baiduUtil.entity.ocr.BankData; -import org.dromara.common.utils.baiduUtil.entity.ocr.WordsResult; import org.dromara.contractor.domain.SubConstructionUser; import org.dromara.contractor.domain.dto.constructionuser.SubConstructionUserAuthenticationReq; +import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserOrcBankVo; +import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserOrcIdCardVo; import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserVo; import org.dromara.contractor.service.ISubConstructionUserService; import org.springframework.validation.annotation.Validated; @@ -43,7 +43,7 @@ public class SubConstructionUserAppController { */ @Log(title = "施工人员", businessType = BusinessType.OTHER) @PostMapping("/idCard") - public R getIdCardMessage(@RequestParam("file") MultipartFile file, String idCardSide) { + public R getIdCardMessage(@RequestParam("file") MultipartFile file, String idCardSide) { return R.ok(constructionUserService.getIdCardMessageByPic(file, idCardSide)); } @@ -52,7 +52,7 @@ public class SubConstructionUserAppController { */ @Log(title = "施工人员", businessType = BusinessType.OTHER) @PostMapping("/bankCard") - public R getBankCardMessage(@RequestParam("file") MultipartFile file) { + public R getBankCardMessage(@RequestParam("file") MultipartFile file) { return R.ok(constructionUserService.getBankCardMessageByPic(file)); } @@ -61,8 +61,8 @@ public class SubConstructionUserAppController { */ @Log(title = "施工人员", businessType = BusinessType.INSERT) @PostMapping("/authentication") - public R insertByAuthentication(@RequestParam("file") MultipartFile file, @Validated SubConstructionUserAuthenticationReq req) { - return R.ok(constructionUserService.insertByAuthentication(file, req)); + public R insertByAuthentication(@Validated @RequestBody SubConstructionUserAuthenticationReq req) { + return R.ok(constructionUserService.insertByAuthentication(req)); } /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/dto/constructionuser/SubConstructionUserAuthenticationReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/dto/constructionuser/SubConstructionUserAuthenticationReq.java index 60d72f19..dffbf9fc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/dto/constructionuser/SubConstructionUserAuthenticationReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/dto/constructionuser/SubConstructionUserAuthenticationReq.java @@ -1,7 +1,6 @@ package org.dromara.contractor.domain.dto.constructionuser; import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import lombok.Data; import org.dromara.common.core.constant.RegexConstants; @@ -25,23 +24,9 @@ public class SubConstructionUserAuthenticationReq implements Serializable { @NotBlank(message = "人员姓名不能为空") private String userName; - /** - * 项目id - */ - @NotNull(message = "项目id不能为空") - private Long projectId; - - /** - * 分包公司id - */ - @NotNull(message = "分包公司id不能为空") - private Long contractorId; - /** * 联系电话 */ - @NotBlank(message = "联系电话不能为空") - @Pattern(regexp = RegexConstants.MOBILE, message = "手机号格式不正确") private String phone; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/constructionuser/SubConstructionUserOrcBankVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/constructionuser/SubConstructionUserOrcBankVo.java new file mode 100644 index 00000000..26943bca --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/constructionuser/SubConstructionUserOrcBankVo.java @@ -0,0 +1,50 @@ +package org.dromara.contractor.domain.vo.constructionuser; + +import lombok.Data; +import org.dromara.system.domain.vo.SysOssVo; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lilemy + * @date 2025-08-01 18:42 + */ +@Data +public class SubConstructionUserOrcBankVo implements Serializable { + + @Serial + private static final long serialVersionUID = 6307930658427321172L; + + /** + * 银行卡号 + */ + private String bankCardNumber; + + /** + * 银行卡有效期 + */ + private String validDate; + + /** + * 银行卡类型 + * 0:不能识别; 1:借记卡; 2:贷记卡(原信用卡大部分为贷记卡); 3:准贷记卡; 4:预付费卡 + */ + private int bankCardType; + + /** + * 银行名称 + */ + private String bankName; + + /** + * 银行卡的持卡人姓名 + */ + private String holderName; + + /** + * 银行卡图片信息 + */ + private SysOssVo image; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/constructionuser/SubConstructionUserOrcIdCardVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/constructionuser/SubConstructionUserOrcIdCardVo.java new file mode 100644 index 00000000..ded2ff69 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/constructionuser/SubConstructionUserOrcIdCardVo.java @@ -0,0 +1,68 @@ +package org.dromara.contractor.domain.vo.constructionuser; + +import lombok.Data; +import org.dromara.system.domain.vo.SysOssVo; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lilemy + * @date 2025-08-01 18:35 + */ +@Data +public class SubConstructionUserOrcIdCardVo implements Serializable { + + @Serial + private static final long serialVersionUID = -569979905442550651L; + + /** + * 姓名 + */ + private String name; + + /** + * 民族 + */ + private String nation; + + /** + * 地址 + */ + private String address; + + /** + * 身份证号码 + */ + private String citizenIdentification; + + /** + * 出生日期 + */ + private String birth; + + /** + * 性别 + */ + private String gender; + + /** + * 失效日期 + */ + private String expiryDate; + + /** + * 签发机关 + */ + private String issuingAuthority; + + /** + * 签发日期 + */ + private String issuingDate; + + /** + * 身份证图片信息 + */ + private SysOssVo image; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/contractor/SubContractorManagerVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/contractor/SubContractorManagerVo.java new file mode 100644 index 00000000..f584fa98 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/contractor/SubContractorManagerVo.java @@ -0,0 +1,39 @@ +package org.dromara.contractor.domain.vo.contractor; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * @author lilemy + * @date 2025-08-01 14:55 + */ +@Data +public class SubContractorManagerVo implements Serializable { + + @Serial + private static final long serialVersionUID = -7901062489097101251L; + + /** + * 主键id + */ + private Long id; + + /** + * 项目id + */ + private Long projectId; + + /** + * 公司名称 + */ + private String name; + + /** + * 管理人员列表 + */ + private List managerList; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/contractor/SubManagerVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/contractor/SubManagerVo.java new file mode 100644 index 00000000..4379eddd --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/vo/contractor/SubManagerVo.java @@ -0,0 +1,27 @@ +package org.dromara.contractor.domain.vo.contractor; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lilemy + * @date 2025-08-01 14:56 + */ +@Data +public class SubManagerVo implements Serializable { + + @Serial + private static final long serialVersionUID = -7929841464664698275L; + + /** + * 管理员id + */ + private Long managerId; + + /** + * 管理员名称 + */ + private String managerName; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/ISubConstructionUserService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/ISubConstructionUserService.java index b2a9d7f0..0d0f7a09 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/ISubConstructionUserService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/ISubConstructionUserService.java @@ -5,15 +5,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.utils.baiduUtil.entity.ocr.BankData; -import org.dromara.common.utils.baiduUtil.entity.ocr.WordsResult; import org.dromara.contractor.domain.SubConstructionUser; import org.dromara.contractor.domain.dto.constructionuser.*; -import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserVo; import org.dromara.contractor.domain.exportvo.BusConstructionUserExportVo; -import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserAttendanceMonthVo; -import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserAttendanceTotalVo; -import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserGisVo; +import org.dromara.contractor.domain.vo.constructionuser.*; import org.springframework.web.multipart.MultipartFile; import java.util.Collection; @@ -182,7 +177,7 @@ public interface ISubConstructionUserService extends IService { */ Page getVoPage(Page contractorPage); + /** + * 获取分包公司管理员列表 + * + * @param projectId 项目id + * @return 分包公司经理列表 + */ + List queryManagerList(Long projectId); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java index 5d02acad..9def1202 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/service/impl/SubConstructionUserServiceImpl.java @@ -54,6 +54,7 @@ import org.dromara.project.service.*; import org.dromara.system.domain.vo.SysOssVo; import org.dromara.system.service.ISysDictTypeService; import org.dromara.system.service.ISysOssService; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -985,7 +986,7 @@ public class SubConstructionUserServiceImpl extends ServiceImpl queryManagerList(Long projectId) { + List contractorList = this.lambdaQuery() + .eq(SubContractor::getProjectId, projectId) + .list(); + if (CollUtil.isEmpty(contractorList)) { + return List.of(); + } + Set contractorIds = contractorList.stream().map(SubContractor::getId).collect(Collectors.toSet()); + return List.of(); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueServiceImpl.java index abfe66ae..9777b75a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueServiceImpl.java @@ -1,7 +1,11 @@ package org.dromara.out.service.impl; import cn.hutool.core.convert.Convert; +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 lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.event.ProcessDeleteEvent; import org.dromara.common.core.domain.event.ProcessEvent; @@ -9,14 +13,15 @@ import org.dromara.common.core.domain.event.ProcessTaskEvent; import org.dromara.common.core.enums.BusinessStatusEnum; 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.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.facility.domain.vo.matrix.FacMatrixVo; import org.dromara.facility.service.IFacMatrixService; +import org.dromara.out.domain.OutConstructionValue; +import org.dromara.out.domain.bo.OutConstructionValueBo; +import org.dromara.out.domain.vo.OutConstructionValueVo; +import org.dromara.out.mapper.OutConstructionValueMapper; +import org.dromara.out.service.IOutConstructionValueService; import org.dromara.progress.domain.PgsProgressCategory; import org.dromara.progress.domain.vo.progresscategory.PgsProgressCategoryVo; import org.dromara.progress.service.IPgsProgressCategoryService; @@ -24,16 +29,11 @@ import org.dromara.project.domain.vo.project.BusProjectVo; import org.dromara.project.service.IBusProjectService; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service; -import org.dromara.out.domain.bo.OutConstructionValueBo; -import org.dromara.out.domain.vo.OutConstructionValueVo; -import org.dromara.out.domain.OutConstructionValue; -import org.dromara.out.mapper.OutConstructionValueMapper; -import org.dromara.out.service.IOutConstructionValueService; import java.math.BigDecimal; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * 施工产值Service业务层处理 @@ -61,7 +61,7 @@ public class OutConstructionValueServiceImpl extends ServiceImpl lqw = buildQueryWrapper(bo); List outConstructionValueVos = baseMapper.selectVoList(lqw); supplementaryData(outConstructionValueVos); - return outConstructionValueVos; + return outConstructionValueVos; } private LambdaQueryWrapper buildQueryWrapper(OutConstructionValueBo bo) { @@ -123,10 +123,10 @@ public class OutConstructionValueServiceImpl extends ServiceImpl ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; @@ -176,8 +176,8 @@ public class OutConstructionValueServiceImpl extends ServiceImpl list){ - for (OutConstructionValueVo vo : list){ + public void supplementaryData(List list) { + for (OutConstructionValueVo vo : list) { //查询项目 BusProjectVo busProjectVo = busProjectService.queryById(vo.getProjectId()); vo.setProjectName(busProjectVo.getProjectName()); @@ -194,7 +194,7 @@ public class OutConstructionValueServiceImpl extends ServiceImpl> list(PgsConstructionSchedulePlanQueryReq req) { + List list = pgsConstructionSchedulePlanService.queryList(req); + return R.ok(list); + } + + /** + * 导出施工进度计划列表 + */ + @SaCheckPermission("progress:constructionSchedulePlan:export") + @Log(title = "施工进度计划", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PgsConstructionSchedulePlanQueryReq req, HttpServletResponse response) { + List list = pgsConstructionSchedulePlanService.queryList(req); + ExcelUtil.exportExcel(list, "施工进度计划", PgsConstructionSchedulePlanVo.class, response); + } + + /** + * 获取施工进度计划详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("progress:constructionSchedulePlan:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(pgsConstructionSchedulePlanService.queryById(id)); + } + + /** + * 新增施工进度计划 + */ + @SaCheckPermission("progress:constructionSchedulePlan:add") + @Log(title = "施工进度计划", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PgsConstructionSchedulePlanCreateReq req) { + return R.ok(pgsConstructionSchedulePlanService.insertByBo(req)); + } + + /** + * 修改施工进度计划 + */ + @SaCheckPermission("progress:constructionSchedulePlan:edit") + @Log(title = "施工进度计划", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PgsConstructionSchedulePlanUpdateReq req) { + return toAjax(pgsConstructionSchedulePlanService.updateByBo(req)); + } + + /** + * 删除施工进度计划 + * + * @param ids 主键串 + */ + @SaCheckPermission("progress:constructionSchedulePlan:remove") + @Log(title = "施工进度计划", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(pgsConstructionSchedulePlanService.deleteByIds(List.of(ids))); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProgressCategoryController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProgressCategoryController.java index 28e19e3e..520cd2d4 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProgressCategoryController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProgressCategoryController.java @@ -6,7 +6,6 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import org.dromara.common.core.domain.R; -import org.dromara.common.core.validate.EditGroup; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; @@ -111,7 +110,7 @@ public class PgsProgressCategoryController extends BaseController { /** * 新增分项工程单价 */ - @SaCheckPermission("progress:progressCategory:add") + @SaCheckPermission("progress:progressCategory:price") @Log(title = "进度类别", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/price") @@ -126,7 +125,7 @@ public class PgsProgressCategoryController extends BaseController { @Log(title = "进度类别", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody PgsProgressCategoryUpdateReq req) { + public R edit(@Validated @RequestBody PgsProgressCategoryUpdateReq req) { return toAjax(pgsProgressCategoryService.updateByBo(req)); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsConstructionSchedulePlan.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsConstructionSchedulePlan.java new file mode 100644 index 00000000..43e937d9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsConstructionSchedulePlan.java @@ -0,0 +1,82 @@ +package org.dromara.progress.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.io.Serial; +import java.util.Date; + +/** + * 施工进度计划对象 pgs_construction_schedule_plan + * + * @author lilemy + * @date 2025-08-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pgs_construction_schedule_plan") +public class PgsConstructionSchedulePlan extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 父ID + */ + private Long parentId; + + /** + * 节点名称 + */ + private String nodeName; + + /** + * 对应项目结构 + */ + private Long projectStructure; + + /** + * 预计开始时间 + */ + private Date planStartDate; + + /** + * 预计结束时间 + */ + private Date planEndDate; + + /** + * 实际开始时间 + */ + private Date practicalStartDate; + + /** + * 实际结束时间 + */ + private Date practicalEndDate; + + /** + * 状态 + */ + private String status; + + /** + * 备注 + */ + private String remark; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProgressCategory.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProgressCategory.java index 73574b5a..dfe8e9f7 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProgressCategory.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProgressCategory.java @@ -32,7 +32,7 @@ public class PgsProgressCategory extends BaseEntity { /** * 父类别id */ - private Long pid; + private Long parentId; /** * 项目id @@ -75,17 +75,17 @@ public class PgsProgressCategory extends BaseEntity { private BigDecimal outputValue; /** - * 总数量/百分比 + * 总数量 */ private BigDecimal total; /** - * 已完成数量/百分比 + * 已完成数量 */ private BigDecimal completed; /** - * 计划总数量/百分比 + * 计划总数量 */ private BigDecimal planTotal; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProgressCategoryTemplate.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProgressCategoryTemplate.java index 07c686c2..a8606911 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProgressCategoryTemplate.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/PgsProgressCategoryTemplate.java @@ -30,7 +30,7 @@ public class PgsProgressCategoryTemplate implements Serializable { /** * 父类别id */ - private Long pid; + private Long parentId; /** * 类别名称 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanCreateReq.java new file mode 100644 index 00000000..55b17a5d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanCreateReq.java @@ -0,0 +1,77 @@ +package org.dromara.progress.domain.dto.constructionscheduleplan; + +import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * @author lilemy + * @date 2025-08-01 14:05 + */ +@Data +public class PgsConstructionSchedulePlanCreateReq implements Serializable { + + @Serial + private static final long serialVersionUID = 4060838737379600701L; + + /** + * 项目ID + */ + @NotNull(message = "项目ID不能为空") + private Long projectId; + + /** + * 父ID + */ + private Long parentId; + + /** + * 节点名称 + */ + @NotBlank(message = "节点名称不能为空") + private String nodeName; + + /** + * 对应项目结构 + */ + private Long projectStructure; + + /** + * 预计开始时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date planStartDate; + + /** + * 预计结束时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date planEndDate; + + /** + * 实际开始时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date practicalStartDate; + + /** + * 实际结束时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date practicalEndDate; + + /** + * 状态 + */ + private String status; + + /** + * 备注 + */ + private String remark; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanQueryReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanQueryReq.java new file mode 100644 index 00000000..c8dac87a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanQueryReq.java @@ -0,0 +1,32 @@ +package org.dromara.progress.domain.dto.constructionscheduleplan; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lilemy + * @date 2025-08-01 14:05 + */ +@Data +public class PgsConstructionSchedulePlanQueryReq implements Serializable { + + @Serial + private static final long serialVersionUID = 9021370369055688811L; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 节点名称 + */ + private String nodeName; + + /** + * 状态 + */ + private String status; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanUpdateReq.java new file mode 100644 index 00000000..70c3a41b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/constructionscheduleplan/PgsConstructionSchedulePlanUpdateReq.java @@ -0,0 +1,58 @@ +package org.dromara.progress.domain.dto.constructionscheduleplan; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * @author lilemy + * @date 2025-08-01 14:06 + */ +@Data +public class PgsConstructionSchedulePlanUpdateReq implements Serializable { + + @Serial + private static final long serialVersionUID = 6955873817030428268L; + + /** + * 主键ID + */ + private Long id; + + /** + * 节点名称 + */ + private String nodeName; + + /** + * 对应项目结构 + */ + private Long projectStructure; + + /** + * 实际开始时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date practicalStartDate; + + /** + * 实际结束时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private Date practicalEndDate; + + /** + * 状态 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + private String status; + + /** + * 备注 + */ + private String remark; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategory/PgsProgressCategoryCreatePriceReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategory/PgsProgressCategoryCreatePriceReq.java index f7d9d286..492257d3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategory/PgsProgressCategoryCreatePriceReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategory/PgsProgressCategoryCreatePriceReq.java @@ -27,13 +27,8 @@ public class PgsProgressCategoryCreatePriceReq { private BigDecimal unitPrice; /** - * 产值金额 + * 总数量 */ - private BigDecimal outputValue; - - /** - * 备注 - */ - private String remark; + private BigDecimal total; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategory/PgsProgressCategoryUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategory/PgsProgressCategoryUpdateReq.java index e4b28eff..50d7c104 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategory/PgsProgressCategoryUpdateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategory/PgsProgressCategoryUpdateReq.java @@ -19,7 +19,7 @@ public class PgsProgressCategoryUpdateReq { /** * 父类别id */ - private Long pid; + private Long parentId; /** * 项目id diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateCreateReq.java index ac08290b..ffddbe71 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateCreateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateCreateReq.java @@ -18,7 +18,7 @@ public class PgsProgressCategoryTemplateCreateReq implements Serializable { /** * 父类别id */ - private Long pid; + private Long parentId; /** * 类别名称 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateQueryReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateQueryReq.java index aa2eaaa3..8e3c3943 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateQueryReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateQueryReq.java @@ -17,7 +17,7 @@ public class PgsProgressCategoryTemplateQueryReq implements Serializable { /** * 父类别id */ - private Long pid; + private Long parentId; /** * 类别名称 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateUpdateReq.java index fd8a9c2c..0a1d241e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateUpdateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/dto/progresscategorytemplate/PgsProgressCategoryTemplateUpdateReq.java @@ -23,7 +23,7 @@ public class PgsProgressCategoryTemplateUpdateReq implements Serializable { /** * 父类别id */ - private Long pid; + private Long parentId; /** * 类别名称 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/constructionscheduleplan/PgsConstructionSchedulePlanVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/constructionscheduleplan/PgsConstructionSchedulePlanVo.java new file mode 100644 index 00000000..21465d84 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/constructionscheduleplan/PgsConstructionSchedulePlanVo.java @@ -0,0 +1,103 @@ +package org.dromara.progress.domain.vo.constructionscheduleplan; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +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.progress.domain.PgsConstructionSchedulePlan; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 施工进度计划视图对象 pgs_construction_schedule_plan + * + * @author lilemy + * @date 2025-08-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PgsConstructionSchedulePlan.class) +public class PgsConstructionSchedulePlanVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 父ID + */ + @ExcelProperty(value = "父ID") + private Long parentId; + + /** + * 节点名称 + */ + @ExcelProperty(value = "节点名称") + private String nodeName; + + /** + * 对应项目结构 + */ + @ExcelProperty(value = "对应项目结构") + private Long projectStructure; + + /** + * 预计开始时间 + */ + @ExcelProperty(value = "预计开始时间") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date planStartDate; + + /** + * 预计结束时间 + */ + @ExcelProperty(value = "预计结束时间") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date planEndDate; + + /** + * 实际开始时间 + */ + @ExcelProperty(value = "实际开始时间") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date practicalStartDate; + + /** + * 实际结束时间 + */ + @ExcelProperty(value = "实际结束时间") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date practicalEndDate; + + /** + * 状态 + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "project_construction_status") + private String status; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/progresscategory/PgsProgressCategoryVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/progresscategory/PgsProgressCategoryVo.java index 7c3dab1c..24317a9d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/progresscategory/PgsProgressCategoryVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/progresscategory/PgsProgressCategoryVo.java @@ -39,7 +39,7 @@ public class PgsProgressCategoryVo implements Serializable { * 父类别id */ @ExcelProperty(value = "父类别id") - private Long pid; + private Long parentId; /** * 项目id diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/progresscategorytemplate/PgsProgressCategoryTemplateVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/progresscategorytemplate/PgsProgressCategoryTemplateVo.java index 28b5de5a..bc0e6b91 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/progresscategorytemplate/PgsProgressCategoryTemplateVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/domain/vo/progresscategorytemplate/PgsProgressCategoryTemplateVo.java @@ -36,7 +36,7 @@ public class PgsProgressCategoryTemplateVo implements Serializable { * 父类别id */ @ExcelProperty(value = "父类别id") - private Long pid; + private Long parentId; /** * 类别名称 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/mapper/PgsConstructionSchedulePlanMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/mapper/PgsConstructionSchedulePlanMapper.java new file mode 100644 index 00000000..6b173c6d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/mapper/PgsConstructionSchedulePlanMapper.java @@ -0,0 +1,15 @@ +package org.dromara.progress.mapper; + +import org.dromara.progress.domain.PgsConstructionSchedulePlan; +import org.dromara.progress.domain.vo.constructionscheduleplan.PgsConstructionSchedulePlanVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 施工进度计划Mapper接口 + * + * @author lilemy + * @date 2025-08-01 + */ +public interface PgsConstructionSchedulePlanMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/IPgsConstructionSchedulePlanService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/IPgsConstructionSchedulePlanService.java new file mode 100644 index 00000000..e0e55ac4 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/IPgsConstructionSchedulePlanService.java @@ -0,0 +1,85 @@ +package org.dromara.progress.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.dromara.progress.domain.PgsConstructionSchedulePlan; +import org.dromara.progress.domain.dto.constructionscheduleplan.PgsConstructionSchedulePlanCreateReq; +import org.dromara.progress.domain.dto.constructionscheduleplan.PgsConstructionSchedulePlanQueryReq; +import org.dromara.progress.domain.dto.constructionscheduleplan.PgsConstructionSchedulePlanUpdateReq; +import org.dromara.progress.domain.vo.constructionscheduleplan.PgsConstructionSchedulePlanVo; + +import java.util.Collection; +import java.util.List; + +/** + * 施工进度计划Service接口 + * + * @author lilemy + * @date 2025-08-01 + */ +public interface IPgsConstructionSchedulePlanService extends IService { + + /** + * 查询施工进度计划 + * + * @param id 主键 + * @return 施工进度计划 + */ + PgsConstructionSchedulePlanVo queryById(Long id); + + /** + * 查询符合条件的施工进度计划列表 + * + * @param req 查询条件 + * @return 施工进度计划列表 + */ + List queryList(PgsConstructionSchedulePlanQueryReq req); + + /** + * 新增施工进度计划 + * + * @param req 施工进度计划 + * @return 新增施工进度计划封装 + */ + PgsConstructionSchedulePlanVo insertByBo(PgsConstructionSchedulePlanCreateReq req); + + /** + * 修改施工进度计划 + * + * @param req 施工进度计划 + * @return 是否修改成功 + */ + Boolean updateByBo(PgsConstructionSchedulePlanUpdateReq req); + + /** + * 批量删除施工进度计划信息 + * + * @param ids 待删除的主键集合 + * @return 是否删除成功 + */ + Boolean deleteByIds(Collection ids); + + /** + * 获取施工进度计划视图对象 + * + * @param constructionSchedulePlan 施工进度计划对象 + * @return 施工进度计划视图对象 + */ + PgsConstructionSchedulePlanVo getVo(PgsConstructionSchedulePlan constructionSchedulePlan); + + /** + * 获取施工进度计划查询条件封装 + * + * @param req 查询条件 + * @return 查询条件封装 + */ + LambdaQueryWrapper buildQueryWrapper(PgsConstructionSchedulePlanQueryReq req); + + /** + * 获取施工进度计划分页对象视图 + * + * @param constructionSchedulePlanList 施工进度计划分页对象 + * @return 施工进度计划分页对象视图 + */ + List getVoList(List constructionSchedulePlanList); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsConstructionSchedulePlanServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsConstructionSchedulePlanServiceImpl.java new file mode 100644 index 00000000..599de90e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsConstructionSchedulePlanServiceImpl.java @@ -0,0 +1,149 @@ +package org.dromara.progress.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.constant.HttpStatus; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.ObjectUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.progress.domain.PgsConstructionSchedulePlan; +import org.dromara.progress.domain.dto.constructionscheduleplan.PgsConstructionSchedulePlanCreateReq; +import org.dromara.progress.domain.dto.constructionscheduleplan.PgsConstructionSchedulePlanQueryReq; +import org.dromara.progress.domain.dto.constructionscheduleplan.PgsConstructionSchedulePlanUpdateReq; +import org.dromara.progress.domain.vo.constructionscheduleplan.PgsConstructionSchedulePlanVo; +import org.dromara.progress.mapper.PgsConstructionSchedulePlanMapper; +import org.dromara.progress.service.IPgsConstructionSchedulePlanService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collection; +import java.util.List; + +/** + * 施工进度计划Service业务层处理 + * + * @author lilemy + * @date 2025-08-01 + */ +@Service +public class PgsConstructionSchedulePlanServiceImpl extends ServiceImpl implements IPgsConstructionSchedulePlanService { + + /** + * 查询施工进度计划 + * + * @param id 主键 + * @return 施工进度计划 + */ + @Override + public PgsConstructionSchedulePlanVo queryById(Long id) { + PgsConstructionSchedulePlan constructionSchedulePlan = this.getById(id); + if (constructionSchedulePlan == null) { + throw new ServiceException("施工进度计划信息不存在", HttpStatus.NOT_FOUND); + } + return this.getVo(constructionSchedulePlan); + } + + /** + * 查询符合条件的施工进度计划列表 + * + * @param req 查询条件 + * @return 施工进度计划列表 + */ + @Override + public List queryList(PgsConstructionSchedulePlanQueryReq req) { + List result = this.list(this.buildQueryWrapper(req)); + return this.getVoList(result); + } + + /** + * 新增施工进度计划 + * + * @param req 施工进度计划 + * @return 新增施工进度计划封装 + */ + @Override + public PgsConstructionSchedulePlanVo insertByBo(PgsConstructionSchedulePlanCreateReq req) { + PgsConstructionSchedulePlan constructionSchedulePlan = new PgsConstructionSchedulePlan(); + BeanUtils.copyProperties(req, constructionSchedulePlan); + boolean save = this.save(constructionSchedulePlan); + if (!save) { + throw new ServiceException("新增施工进度计划信息异常", HttpStatus.ERROR); + } + PgsConstructionSchedulePlan newConstructionSchedulePlan = this.getById(constructionSchedulePlan.getId()); + return this.getVo(newConstructionSchedulePlan); + } + + /** + * 修改施工进度计划 + * + * @param req 施工进度计划 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PgsConstructionSchedulePlanUpdateReq req) { + PgsConstructionSchedulePlan constructionSchedulePlan = new PgsConstructionSchedulePlan(); + BeanUtils.copyProperties(req, constructionSchedulePlan); + return this.updateById(constructionSchedulePlan); + } + + /** + * 批量删除施工进度计划信息 + * + * @param ids 待删除的主键集合 + * @return 是否删除成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteByIds(Collection ids) { + return this.removeBatchByIds(ids); + } + + /** + * 获取施工进度计划视图对象 + * + * @param constructionSchedulePlan 施工进度计划对象 + * @return 施工进度计划视图对象 + */ + @Override + public PgsConstructionSchedulePlanVo getVo(PgsConstructionSchedulePlan constructionSchedulePlan) { + PgsConstructionSchedulePlanVo vo = new PgsConstructionSchedulePlanVo(); + if (constructionSchedulePlan == null) { + return vo; + } + BeanUtils.copyProperties(constructionSchedulePlan, vo); + return vo; + } + + /** + * 获取施工进度计划查询条件封装 + * + * @param req 查询条件 + * @return 查询条件封装 + */ + @Override + public LambdaQueryWrapper buildQueryWrapper(PgsConstructionSchedulePlanQueryReq req) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + if (req == null) { + return lqw; + } + Long projectId = req.getProjectId(); + String nodeName = req.getNodeName(); + String status = req.getStatus(); + lqw.eq(ObjectUtils.isNotEmpty(projectId), PgsConstructionSchedulePlan::getProjectId, projectId); + lqw.like(StringUtils.isNotBlank(nodeName), PgsConstructionSchedulePlan::getNodeName, nodeName); + lqw.eq(StringUtils.isNotBlank(status), PgsConstructionSchedulePlan::getStatus, status); + return lqw; + } + + /** + * 获取施工进度计划分页对象视图 + * + * @param constructionSchedulePlanList 施工进度计划分页对象 + * @return 施工进度计划分页对象视图 + */ + @Override + public List getVoList(List constructionSchedulePlanList) { + return constructionSchedulePlanList.stream().map(this::getVo).toList(); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressCategoryServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressCategoryServiceImpl.java index 641978ca..786df3ae 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressCategoryServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressCategoryServiceImpl.java @@ -168,11 +168,19 @@ public class PgsProgressCategoryServiceImpl extends ServiceImpl 子节点列表的映射 Map> parentIdToChildrenMap = progressCategoryList.stream() - .filter(item -> item.getPid() != 0) - .collect(Collectors.groupingBy(PgsProgressCategory::getPid)); + .filter(item -> item.getParentId() != 0) + .collect(Collectors.groupingBy(PgsProgressCategory::getParentId)); // 对象列表 => 封装对象列表 return progressCategoryList.stream().map(progressCategory -> { PgsProgressCategoryVo vo = new PgsProgressCategoryVo(); BeanUtils.copyProperties(progressCategory, vo); // 如果是父节点,计算其子节点的总和 - if (progressCategory.getPid() == 0) { + if (progressCategory.getParentId() == 0) { List children = parentIdToChildrenMap.getOrDefault(progressCategory.getId(), Collections.emptyList()); // 获取父节点状态 String pidStatus = getPidStatus(children); @@ -356,7 +364,7 @@ public class PgsProgressCategoryServiceImpl extends ServiceImpl oldPercentageCategoryList = this.lambdaQuery() .in(PgsProgressCategory::getMatrixId, oldMatrixIdList) - .ne(PgsProgressCategory::getPid, PgsProgressCategoryConstant.TOP_PARENT_ID) + .ne(PgsProgressCategory::getParentId, PgsProgressCategoryConstant.TOP_PARENT_ID) .eq(PgsProgressCategory::getUnitType, PgsProgressUnitTypeEnum.PERCENTAGE.getValue()) .list(); oldPercentageCategoryMap = oldPercentageCategoryList.stream() @@ -404,10 +412,10 @@ public class PgsProgressCategoryServiceImpl extends ServiceImpl ids, Boolean isValid) { List categoryTemplateList = this.listByIds(ids); if (isValid) { - categoryTemplateList.forEach(template->{ + categoryTemplateList.forEach(template -> { Long projectId = template.getProjectId(); if (projectId != null && projectId == 0) { throw new ServiceException("通用模版,无法删除", HttpStatus.CONFLICT); @@ -208,7 +208,7 @@ public class PgsProgressCategoryTemplateServiceImpl extends ServiceImpl implements IBusProjectTeamService { + @Resource + private ISysUserService userService; + @Resource private IBusProjectService projectService; @@ -226,8 +228,14 @@ public class BusProjectTeamServiceImpl extends ServiceImpl> foremanMap = constructionUserService.listByIds(foremanIdList).stream() + List foremanList = constructionUserService.listByIds(foremanIdList); + Map> foremanMap = foremanList.stream() .collect(Collectors.groupingBy(SubConstructionUser::getTeamId)); + // 获取系统用户信息 + List sysUserIds = foremanList.stream().map(SubConstructionUser::getSysUserId).filter(Objects::nonNull).distinct().toList(); + List sysUserList = userService.selectUserByIds(sysUserIds, null); + Map sysUserMap = sysUserList.stream() + .collect(Collectors.toMap(SysUserVo::getUserId, SysUserVo::getNickName)); // 封装数据 return projectTeamList.stream().map(projectTeam -> { BusProjectTeamForemanVo projectTeamForemanResp = new BusProjectTeamForemanVo(); @@ -237,7 +245,16 @@ public class BusProjectTeamServiceImpl extends ServiceImpl constructionUserList = foremanMap.get(projectTeam.getId()); List foremanVoList = constructionUserList.stream() - .map(constructionUser -> new BusForemanVo(constructionUser.getId(), constructionUser.getUserName())) + .map(constructionUser -> { + BusForemanVo foremanVo = new BusForemanVo(); + Long sysUserId = constructionUser.getSysUserId(); + if (sysUserId != null) { + String userName = sysUserMap.get(sysUserId); + foremanVo.setForemanId(sysUserId); + foremanVo.setForemanName(userName); + } + return foremanVo; + }) .toList(); projectTeamForemanResp.setForemanList(foremanVoList); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/QltQualityInspectionController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/QltQualityInspectionController.java index 0c41863f..9b3a0664 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/QltQualityInspectionController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/QltQualityInspectionController.java @@ -6,8 +6,6 @@ import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; 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.excel.utils.ExcelUtil; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; @@ -19,8 +17,8 @@ import org.dromara.quality.domain.dto.qualityinspection.QltQualityInspectionCrea 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.QltQualityInspectionVo; 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.*; @@ -99,7 +97,7 @@ public class QltQualityInspectionController extends BaseController { @Log(title = "质量-检查工单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody QltQualityInspectionCreateReq req) { + public R add(@Validated @RequestBody QltQualityInspectionCreateReq req) { return R.ok(qualityInspectionService.insertByBo(req)); } @@ -110,7 +108,7 @@ public class QltQualityInspectionController extends BaseController { @Log(title = "质量-检查工单", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody QltQualityInspectionUpdateReq req) { + public R edit(@Validated @RequestBody QltQualityInspectionUpdateReq req) { return toAjax(qualityInspectionService.updateByBo(req)); } 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 27d3600d..f73766da 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 @@ -60,14 +60,19 @@ public class QltQualityInspection extends BaseEntity { private String inspectionFile; /** - * 班组id + * 整改单位(1分包 2班组) */ - private Long teamId; + private String rectificationUnit; /** - * 整改人(班组长) + * 整改单位id */ - private Long corrector; + private Long rectificationId; + + /** + * 整改人 + */ + private Long correctorId; /** * 是否回复(1回复 2不回复) 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 c30cc22d..df491dc3 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 @@ -1,5 +1,7 @@ package org.dromara.quality.domain.dto.qualityinspection; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import java.io.Serial; @@ -19,8 +21,15 @@ public class QltQualityInspectionCreateReq implements Serializable { /** * 项目id */ + @NotNull(message = "项目id不能为空") private Long projectId; + /** + * 是否回复(1回复 2不回复) + */ + @NotBlank(message = "是否回复不能为空") + private String isReply; + /** * 巡检类型 */ @@ -29,6 +38,7 @@ public class QltQualityInspectionCreateReq implements Serializable { /** * 巡检标题 */ + @NotBlank(message = "巡检标题不能为空") private String inspectionHeadline; /** @@ -42,14 +52,19 @@ public class QltQualityInspectionCreateReq implements Serializable { private String inspectionFile; /** - * 班组id + * 整改单位(1分包 2班组) */ - private Long teamId; + private String rectificationUnit; /** - * 整改人(班组长) + * 整改单位id */ - private Long corrector; + private Long rectificationId; + + /** + * 整改人 + */ + private Long corrector_id; /** * 回复期限日期 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 e2736c03..2b0104f5 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 @@ -31,8 +31,13 @@ public class QltQualityInspectionQueryReq implements Serializable { private String inspectionStatus; /** - * 班组id + * 整改单位(1分包 2班组) */ - private Long teamId; + private String rectificationUnit; + + /** + * 整改单位id + */ + private Long rectificationId; } 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 efed9a57..9d1653f5 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 @@ -76,14 +76,19 @@ public class QltQualityInspectionVo implements Serializable { private List inspectionFileList; /** - * 班组id + * 整改单位(1分包 2班组) */ - private Long teamId; + private String rectificationUnit; /** - * 整改人(班组长) + * 整改单位id */ - private Long corrector; + private Long rectificationId; + + /** + * 整改人 + */ + private Long correctorId; /** * 整改人姓名 @@ -145,7 +150,12 @@ public class QltQualityInspectionVo implements Serializable { * 创建者 */ @ExcelProperty(value = "创建者") - private String createBy; + private Long createBy; + + /** + * 创建者名称 + */ + private String createByName; /** * 创建时间 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/IQltQualityInspectionService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/IQltQualityInspectionService.java index 5d5144e5..ffc24aed 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/IQltQualityInspectionService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/IQltQualityInspectionService.java @@ -111,7 +111,6 @@ public interface IQltQualityInspectionService extends IService projectIdList = qualityInspectionList.stream().map(QltQualityInspection::getProjectId).distinct().toList(); - if (projectIdList.size() != 1) { - throw new ServiceException("仅能查询单个项目下的施工日志", HttpStatus.BAD_REQUEST); - } - BusProject project = projectService.getById(projectIdList.get(0)); - if (project == null) { - throw new ServiceException("项目不存在", HttpStatus.NOT_FOUND); - } - // 获取整改人信息 - List correctorList = qualityInspectionList.stream().map(QltQualityInspection::getCorrector).distinct().toList(); - Map correctorMap = constructionUserService.listByIds(correctorList) - .stream().collect(Collectors.toMap(SubConstructionUser::getId, SubConstructionUser::getUserName)); - // 获取创建用户信息 - List createByList = qualityInspectionList.stream().map(QltQualityInspection::getCreateBy).distinct().toList(); - List userVoList = userService.selectUserByIds(createByList, null); + // 获取整改人、创建用户信息 + List userIdList = Stream.concat( + qualityInspectionList.stream().map(QltQualityInspection::getCorrectorId), + qualityInspectionList.stream().map(QltQualityInspection::getCreateBy) + ).distinct().toList(); + List userVoList = userService.selectUserByIds(userIdList, null); Map userMap = userVoList.stream().collect(Collectors.toMap(SysUserVo::getUserId, SysUserVo::getNickName)); // 获取附件信息 List ossInspectionFileIdList = qualityInspectionList.stream().map(QltQualityInspection::getInspectionFile).filter(StringUtils::isNotBlank) @@ -382,12 +364,11 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl qualityInspectionVoList = qualityInspectionList.stream().map(qualityInspection -> { QltQualityInspectionVo qualityInspectionVo = new QltQualityInspectionVo(); BeanUtils.copyProperties(qualityInspection, qualityInspectionVo); - qualityInspectionVo.setProjectName(project.getProjectName()); // 关联整改人信息 - Long corrector = qualityInspection.getCorrector(); + Long correctorId = qualityInspection.getCorrectorId(); String correctorName = null; - if (correctorMap.containsKey(corrector)) { - correctorName = correctorMap.get(corrector); + if (userMap.containsKey(correctorId)) { + correctorName = userMap.get(correctorId); } qualityInspectionVo.setCorrectorName(correctorName); // 关联创建用户信息 @@ -396,7 +377,7 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl inspectionFileList = new ArrayList<>(); @@ -404,7 +385,7 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl inspectionFileIdList = Arrays.stream(inspectionFile.split(",")).map(Long::parseLong).toList(); for (Long id : inspectionFileIdList) { if (ossMap.containsKey(id)) { - inspectionFileList.add(ossMap.get(id).get(0)); + inspectionFileList.add(ossMap.get(id).getFirst()); } } } @@ -415,7 +396,7 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl rectificationFileIdList = Arrays.stream(rectificationFile.split(",")).map(Long::parseLong).toList(); for (Long id : rectificationFileIdList) { if (ossMap.containsKey(id)) { - rectificationFileList.add(ossMap.get(id).get(0)); + rectificationFileList.add(ossMap.get(id).getFirst()); } } } @@ -429,8 +410,7 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl add(@Validated(AddGroup.class) @RequestBody HseSafetyInspectionCreateReq req) { + public R add(@Validated @RequestBody HseSafetyInspectionCreateReq req) { return R.ok(safetyInspectionService.insertByBo(req)); } @@ -110,7 +108,7 @@ public class HseSafetyInspectionController extends BaseController { @Log(title = "安全巡检工单", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody HseSafetyInspectionUpdateReq req) { + public R edit(@Validated @RequestBody HseSafetyInspectionUpdateReq req) { return toAjax(safetyInspectionService.updateByBo(req)); } @@ -124,6 +122,6 @@ public class HseSafetyInspectionController extends BaseController { @DeleteMapping("/{ids}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { - return toAjax(safetyInspectionService.deleteWithValidByIds(List.of(ids), true)); + return toAjax(safetyInspectionService.deleteByIds(List.of(ids))); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/HseSafetyInspection.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/HseSafetyInspection.java index 6e34a8f4..c8fef3bc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/HseSafetyInspection.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/HseSafetyInspection.java @@ -29,11 +29,6 @@ public class HseSafetyInspection extends BaseEntity { @TableId(value = "id") private Long id; - /** - * 父id(默认为0) - */ - private Long pid; - /** * 项目ID */ @@ -55,12 +50,22 @@ public class HseSafetyInspection extends BaseEntity { private String inspectionResult; /** - * 整改班组id + * 是否回复(1回复 2不回复) */ - private Long teamId; + private String isReply; /** - * 整改人(班组长)id + * 整改单位(1分包 2班组) + */ + private String rectificationUnit; + + /** + * 整改单位id + */ + private Long rectificationId; + + /** + * 整改人 */ private Long correctorId; @@ -69,11 +74,6 @@ public class HseSafetyInspection extends BaseEntity { */ private Date rectificationDeadline; - /** - * 是否回复(1回复 2不回复) - */ - private String isReply; - /** * 回复日期 */ 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 443aca9b..5947d703 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 @@ -55,9 +55,19 @@ public class HseViolationRecord extends BaseEntity { private Date violationTime; /** - * 违章处理人id + * 整改单位(1分包 2班组) */ - private Long handlerId; + private String rectificationUnit; + + /** + * 整改单位id + */ + private Long rectificationId; + + /** + * 整改人id + */ + private Long correctorId; /** * 处理期限 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/safetyinspection/HseSafetyInspectionCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/safetyinspection/HseSafetyInspectionCreateReq.java index c88b599f..97b5df25 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/safetyinspection/HseSafetyInspectionCreateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/safetyinspection/HseSafetyInspectionCreateReq.java @@ -1,6 +1,8 @@ package org.dromara.safety.domain.dto.safetyinspection; import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import java.io.Serial; @@ -17,14 +19,10 @@ public class HseSafetyInspectionCreateReq implements Serializable { @Serial private static final long serialVersionUID = 5355703238184894846L; - /** - * 父id(默认为0) - */ - private Long pid; - /** * 项目ID */ + @NotNull(message = "项目id不能为空") private Long projectId; /** @@ -43,12 +41,17 @@ public class HseSafetyInspectionCreateReq implements Serializable { private String inspectionResult; /** - * 整改班组id + * 整改单位(1分包 2班组) */ - private Long teamId; + private String rectificationUnit; /** - * 整改人(班组长)id + * 整改单位id + */ + private Long rectificationId; + + /** + * 整改人 */ private Long correctorId; @@ -61,6 +64,7 @@ public class HseSafetyInspectionCreateReq implements Serializable { /** * 是否回复(1回复 2不回复) */ + @NotBlank(message = "是否回复不能为空") private String isReply; /** @@ -78,21 +82,6 @@ public class HseSafetyInspectionCreateReq implements Serializable { */ private String hiddenDanger; - /** - * 整改措施 - */ - private String measure; - - /** - * 复查情况 - */ - private String review; - - /** - * 复查状态(1通过 2未通过) - */ - private String reviewType; - /** * 检查时间 */ @@ -103,21 +92,11 @@ public class HseSafetyInspectionCreateReq implements Serializable { */ private Date rectificationTime; - /** - * 复查时间 - */ - private Date reviewTime; - /** * 检查附件 */ private String checkFile; - /** - * 整改附件 - */ - private String rectificationFile; - /** * 备注 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/safetyinspection/HseSafetyInspectionQueryReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/safetyinspection/HseSafetyInspectionQueryReq.java index 04ecf793..d9e9b9f6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/safetyinspection/HseSafetyInspectionQueryReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/safetyinspection/HseSafetyInspectionQueryReq.java @@ -15,11 +15,6 @@ public class HseSafetyInspectionQueryReq implements Serializable { @Serial private static final long serialVersionUID = 8880866939746311233L; - /** - * 父id(默认为0) - */ - private Long pid; - /** * 项目ID */ @@ -36,14 +31,14 @@ public class HseSafetyInspectionQueryReq implements Serializable { private String violationType; /** - * 整改班组id + * 整改单位(1分包 2班组) */ - private Long teamId; + private String rectificationUnit; /** - * 整改人(班组长)id + * 整改单位id */ - private Long correctorId; + private Long rectificationId; /** * 工单状态(1通知 2整改 3复查) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/violationrecord/HseViolationRecordCreateHandlerReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/violationrecord/HseViolationRecordCreateHandlerReq.java index a3c01299..8fa956ac 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/violationrecord/HseViolationRecordCreateHandlerReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/violationrecord/HseViolationRecordCreateHandlerReq.java @@ -2,6 +2,7 @@ package org.dromara.safety.domain.dto.violationrecord; import com.fasterxml.jackson.annotation.JsonFormat; import jakarta.validation.constraints.Future; +import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -27,10 +28,21 @@ public class HseViolationRecordCreateHandlerReq implements Serializable { private Long id; /** - * 违章处理人id + * 整改单位(1分包 2班组) */ - @NotNull(message = "处理人不能为空") - private Long handlerId; + @NotBlank(message = "整改单位为空") + private String rectificationUnit; + + /** + * 整改单位id + */ + @NotNull(message = "整改单位id不能为空") + private Long rectificationId; + + /** + * 整改人id + */ + private Long correctorId; /** * 处理期限 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/violationrecord/HseViolationRecordQueryReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/violationrecord/HseViolationRecordQueryReq.java index 3d913380..160850bc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/violationrecord/HseViolationRecordQueryReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/dto/violationrecord/HseViolationRecordQueryReq.java @@ -38,4 +38,14 @@ public class HseViolationRecordQueryReq implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd") private Date violationTime; + /** + * 整改单位(1分包 2班组) + */ + private String rectificationUnit; + + /** + * 整改单位id + */ + private Long rectificationId; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/safetyinspection/HseSafetyInspectionVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/safetyinspection/HseSafetyInspectionVo.java index 7ce69d38..8e58d9cc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/safetyinspection/HseSafetyInspectionVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/vo/safetyinspection/HseSafetyInspectionVo.java @@ -1,11 +1,7 @@ package org.dromara.safety.domain.vo.safetyinspection; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; 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.safety.domain.HseSafetyInspection; import java.io.Serial; @@ -20,7 +16,6 @@ import java.util.Date; * @date 2025-03-20 */ @Data -@ExcelIgnoreUnannotated @AutoMapper(target = HseSafetyInspection.class) public class HseSafetyInspectionVo implements Serializable { @@ -30,154 +25,126 @@ public class HseSafetyInspectionVo implements Serializable { /** * 主键ID */ - @ExcelProperty(value = "主键ID") private Long id; - /** - * 父id(默认为0) - */ - @ExcelProperty(value = "父id") - private Long pid; - /** * 项目ID */ - @ExcelProperty(value = "项目ID") private Long projectId; /** * 检查类型 */ - @ExcelProperty(value = "检查类型", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "safety_inspection_check_type") private String checkType; /** * 违章类型 */ - @ExcelProperty(value = "违章类型", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "safety_inspection_violation_type") private String violationType; /** * 巡检结果 */ - @ExcelProperty(value = "巡检结果") private String inspectionResult; /** - * 整改班组id + * 整改单位(1分包 2班组) */ - @ExcelProperty(value = "整改班组id") - private Long teamId; + private String rectificationUnit; /** - * 整改班组名字 + * 整改单位id */ - private String teamName; + private Long rectificationId; /** - * 整改人(班组长)id + * 整改单位名称 + */ + private String rectificationName; + + /** + * 整改人 */ - @ExcelProperty(value = "整改人") private Long correctorId; /** - * 整改人(班组长)名字 + * 整改人名字 */ private String correctorName; /** * 整改期限 */ - @ExcelProperty(value = "整改期限") private Date rectificationDeadline; /** * 是否回复(1回复 2不回复) */ - @ExcelProperty(value = "是否回复", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "reply_type") private String isReply; /** * 回复日期 */ - @ExcelProperty(value = "回复日期") private String replyDate; /** * 工单状态(1通知 2整改 3复查) */ - @ExcelProperty(value = "工单状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "safety_inspection_type") private String status; /** * 问题隐患 */ - @ExcelProperty(value = "问题隐患") private String hiddenDanger; /** * 整改措施 */ - @ExcelProperty(value = "整改措施") private String measure; /** * 复查情况 */ - @ExcelProperty(value = "复查情况") private String review; /** * 复查状态(1通过 2未通过) */ - @ExcelProperty(value = "复查状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "review_type") private String reviewType; /** * 检查时间 */ - @ExcelProperty(value = "检查时间") private Date checkTime; /** * 整改时间 */ - @ExcelProperty(value = "整改时间") private Date rectificationTime; /** * 复查时间 */ - @ExcelProperty(value = "复查时间") private Date reviewTime; /** * 检查附件 */ - @ExcelProperty(value = "检查附件") private String checkFile; /** * 整改附件 */ - @ExcelProperty(value = "整改附件") private String rectificationFile; /** * 备注 */ - @ExcelProperty(value = "备注") private String remark; /** * 创建时间 */ - @ExcelProperty(value = "创建时间") private Date createTime; /** 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 27c08b58..31af5339 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 @@ -67,14 +67,24 @@ public class HseViolationRecordVo implements Serializable { private Date violationTime; /** - * 违章处理人id + * 整改单位(1分包 2班组) */ - private Long handlerId; + private String rectificationUnit; /** - * 违章处理人名称 + * 整改单位id */ - private String handlerName; + private Long rectificationId; + + /** + * 整改人id + */ + private Long correctorId; + + /** + * 整改人名称 + */ + private String correctorName; /** * 处理期限 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseSafetyInspectionService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseSafetyInspectionService.java index ce733f07..d202e2aa 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseSafetyInspectionService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/IHseSafetyInspectionService.java @@ -11,8 +11,8 @@ import org.dromara.safety.domain.dto.safetyinspection.HseSafetyInspectionCreateR import org.dromara.safety.domain.dto.safetyinspection.HseSafetyInspectionGisReq; import org.dromara.safety.domain.dto.safetyinspection.HseSafetyInspectionQueryReq; import org.dromara.safety.domain.dto.safetyinspection.HseSafetyInspectionUpdateReq; -import org.dromara.safety.domain.vo.safetyinspection.HseSafetyInspectionVo; import org.dromara.safety.domain.vo.safetyinspection.HseSafetyInspectionListGisVo; +import org.dromara.safety.domain.vo.safetyinspection.HseSafetyInspectionVo; import java.util.Collection; import java.util.List; @@ -75,13 +75,12 @@ public interface IHseSafetyInspectionService extends IService ids, Boolean isValid); + Boolean deleteByIds(Collection ids); /** * 获取安全巡检工单视图对象 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseSafetyInspectionServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseSafetyInspectionServiceImpl.java index 97b3f3af..0bbcacc8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseSafetyInspectionServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseSafetyInspectionServiceImpl.java @@ -16,25 +16,27 @@ import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.ObjectUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.file.FileUtils; +import org.dromara.common.enums.InspectionRectificationUnitType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.oss.core.OssClient; import org.dromara.common.oss.exception.OssException; import org.dromara.common.oss.factory.OssFactory; -import org.dromara.contractor.domain.SubConstructionUser; +import org.dromara.common.utils.DocumentUtil; +import org.dromara.contractor.domain.SubContractor; +import org.dromara.contractor.service.ISubContractorService; import org.dromara.project.domain.BusProjectTeam; -import org.dromara.contractor.service.ISubConstructionUserService; import org.dromara.project.service.IBusProjectService; import org.dromara.project.service.IBusProjectTeamService; import org.dromara.safety.constant.HseSafetyConstant; import org.dromara.safety.domain.HseSafetyInspection; import org.dromara.safety.domain.HseTeamMeeting; -import org.dromara.safety.domain.enums.HseSafetyInspectionReviewTypeEnum; -import org.dromara.safety.domain.enums.HseSafetyInspectionStatusEnum; import org.dromara.safety.domain.dto.safetyinspection.HseSafetyInspectionCreateReq; import org.dromara.safety.domain.dto.safetyinspection.HseSafetyInspectionGisReq; import org.dromara.safety.domain.dto.safetyinspection.HseSafetyInspectionQueryReq; import org.dromara.safety.domain.dto.safetyinspection.HseSafetyInspectionUpdateReq; +import org.dromara.safety.domain.enums.HseSafetyInspectionReviewTypeEnum; +import org.dromara.safety.domain.enums.HseSafetyInspectionStatusEnum; import org.dromara.safety.domain.vo.safetyinspection.HseSafetyInspectionListGisVo; import org.dromara.safety.domain.vo.safetyinspection.HseSafetyInspectionVo; import org.dromara.safety.domain.vo.teammeeting.HseTeamMeetingGis; @@ -46,7 +48,6 @@ import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.service.ISysDictDataService; import org.dromara.system.service.ISysOssService; import org.dromara.system.service.ISysUserService; -import org.dromara.common.utils.DocumentUtil; import org.springframework.beans.BeanUtils; import org.springframework.http.MediaType; import org.springframework.stereotype.Service; @@ -60,6 +61,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; import java.util.zip.ZipOutputStream; /** @@ -74,10 +76,10 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl teamMeetings = teamMeetingService.lambdaQuery() .eq(HseTeamMeeting::getProjectId, projectId) .list(); - if (CollUtil.isEmpty(teamMeetings)){ + if (CollUtil.isEmpty(teamMeetings)) { return gisVo; } // 获取最新的班组列表 @@ -167,7 +169,7 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl ids, Boolean isValid) { - if (isValid) { - // TODO 做一些业务上的校验,判断是否需要校验 - Long count = this.lambdaQuery().in(HseSafetyInspection::getPid, ids).count(); - if (count > 0) { - throw new ServiceException("所选安全巡检工单包含子数据,不允许删除", HttpStatus.BAD_REQUEST); - } - } + public Boolean deleteByIds(Collection ids) { return this.removeBatchByIds(ids); } @@ -299,24 +293,22 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl teamLambdaQueryWrapper = Wrappers.lambdaQuery(BusProjectTeam.class) - .select(BusProjectTeam::getId, BusProjectTeam::getTeamName) - .eq(BusProjectTeam::getId, teamId); - BusProjectTeam projectTeam = projectTeamService.getOne(teamLambdaQueryWrapper); - safetyInspectionVo.setTeamId(projectTeam.getId()); - safetyInspectionVo.setTeamName(projectTeam.getTeamName()); + // 关联整改单位信息 + Long rectificationId = safetyInspection.getRectificationId(); + String rectificationUnit = safetyInspection.getRectificationUnit(); + if (rectificationId != null && rectificationUnit != null) { + if (rectificationUnit.equals(InspectionRectificationUnitType.CONTRACTOR.getValue())) { + SubContractor contractor = contractorService.getById(rectificationId); + safetyInspectionVo.setRectificationName(contractor.getName()); + } else if (rectificationUnit.equals(InspectionRectificationUnitType.TEAM.getValue())) { + BusProjectTeam team = projectTeamService.getById(rectificationId); + safetyInspectionVo.setRectificationName(team.getTeamName()); + } } // 关联整改人信息 Long correctorId = safetyInspection.getCorrectorId(); if (correctorId != null) { - LambdaQueryWrapper constructionUserLambdaQueryWrapper = Wrappers.lambdaQuery(SubConstructionUser.class) - .select(SubConstructionUser::getId, SubConstructionUser::getUserName) - .eq(SubConstructionUser::getId, correctorId); - SubConstructionUser constructionUser = constructionUserService.getOne(constructionUserLambdaQueryWrapper); - safetyInspectionVo.setCorrectorId(constructionUser.getId()); + SysUserVo constructionUser = userService.selectUserById(correctorId); safetyInspectionVo.setCorrectorName(constructionUser.getUserName()); } // 关联创建用户信息 @@ -341,23 +333,21 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl userIdList = Stream.concat( + safetyInspectionList.stream().map(HseSafetyInspection::getCorrectorId), + safetyInspectionList.stream().map(HseSafetyInspection::getCreateBy) + ).distinct().toList(); + List userVoList = userService.selectUserByIds(userIdList, null); + Map userMap = userVoList.stream().collect(Collectors.toMap(SysUserVo::getUserId, SysUserVo::getNickName)); // 对象列表 => 封装对象列表 - List safetyInspectionVoList = safetyInspectionList.stream().map(this::getVo).toList(); + List safetyInspectionVoList = safetyInspectionList.stream().map(inspection -> { + HseSafetyInspectionVo qualityInspectionVo = new HseSafetyInspectionVo(); + BeanUtils.copyProperties(inspection, qualityInspectionVo); + // 关联整改人信息 + Long correctorId = inspection.getCorrectorId(); + String correctorName = null; + if (userMap.containsKey(correctorId)) { + correctorName = userMap.get(correctorId); + } + qualityInspectionVo.setCorrectorName(correctorName); + // 关联创建用户信息 + Long createBy = inspection.getCreateBy(); + String createByName = null; + if (userMap.containsKey(createBy)) { + createByName = userMap.get(createBy); + } + qualityInspectionVo.setCreatorName(createByName); + return qualityInspectionVo; + }).toList(); safetyInspectionVoPage.setRecords(safetyInspectionVoList); return safetyInspectionVoPage; } @@ -476,15 +491,29 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl recognizeIdRecognizeMap = recognizeRecordService.listByIds(recognizeIds).stream() .collect(Collectors.toMap(HseRecognizeRecord::getId, recognize -> recognize)); // 关联违章人信息 - List handlerIds = violationRecordList.stream().map(HseViolationRecord::getHandlerId).distinct().toList(); - Map handlerIdUserMap = userService.selectUserByIds(handlerIds, null).stream() + List correctorIds = violationRecordList.stream().map(HseViolationRecord::getCorrectorId).distinct().toList(); + Map correctorMap = userService.selectUserByIds(correctorIds, null).stream() .collect(Collectors.toMap(SysUserVo::getUserId, user -> user)); List violationRecordVoList = violationRecordList.stream().map(violationLevel -> { HseViolationRecordVo vo = new HseViolationRecordVo(); @@ -350,8 +350,8 @@ public class HseViolationRecordServiceImpl extends ServiceImpl + + + + diff --git a/xinnengyuan/script/sql/menuInitValue.sql b/xinnengyuan/script/sql/menuInitValue.sql index 52b9b447..497751de 100644 --- a/xinnengyuan/script/sql/menuInitValue.sql +++ b/xinnengyuan/script/sql/menuInitValue.sql @@ -1854,3 +1854,63 @@ values(1950489109817548805, '卷册文件查阅人删除', 1950489109817548801, insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) values(1950489109817548806, '卷册文件查阅人导出', 1950489109817548801, '5', '#', '', 1, 0, 'F', '0', '0', 'design:volumeFileViewer:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951130197151113217, '施工进度计划', '1913133014288699393', '1', 'constructionSchedulePlan', 'progress/constructionSchedulePlan/index', 1, 0, 'C', '0', '0', 'progress:constructionSchedulePlan:list', '#', 103, 1, sysdate(), null, null, '施工进度计划菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951130197151113218, '施工进度计划查询', 1951130197151113217, '1', '#', '', 1, 0, 'F', '0', '0', 'progress:constructionSchedulePlan:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951130197151113219, '施工进度计划新增', 1951130197151113217, '2', '#', '', 1, 0, 'F', '0', '0', 'progress:constructionSchedulePlan:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951130197151113220, '施工进度计划修改', 1951130197151113217, '3', '#', '', 1, 0, 'F', '0', '0', 'progress:constructionSchedulePlan:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951130197151113221, '施工进度计划删除', 1951130197151113217, '4', '#', '', 1, 0, 'F', '0', '0', 'progress:constructionSchedulePlan:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951130197151113222, '施工进度计划导出', 1951130197151113217, '5', '#', '', 1, 0, 'F', '0', '0', 'progress:constructionSchedulePlan:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951204439405707265, '分项工程单价', '1913133014288699393', '1', 'progressCategory', 'progress/progressCategory/index', 1, 0, 'C', '0', '0', 'progress:progressCategory:list', '#', 103, 1, sysdate(), null, null, '分项工程单价菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951204439405707266, '分项工程单价查询', 1951204439405707265, '1', '#', '', 1, 0, 'F', '0', '0', 'progress:progressCategory:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951204439405707267, '分项工程单价新增', 1951204439405707265, '2', '#', '', 1, 0, 'F', '0', '0', 'progress:progressCategory:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951204439405707268, '分项工程单价修改', 1951204439405707265, '3', '#', '', 1, 0, 'F', '0', '0', 'progress:progressCategory:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951204439405707269, '分项工程单价删除', 1951204439405707265, '4', '#', '', 1, 0, 'F', '0', '0', 'progress:progressCategory:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951204439405707270, '分项工程单价导出', 1951204439405707265, '5', '#', '', 1, 0, 'F', '0', '0', 'progress:progressCategory:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951230902137835522, '物资-材料设备', '3', '1', 'cailiaoshebei', 'cailiaoshebei/cailiaoshebei/index', 1, 0, 'C', '0', '0', 'cailiaoshebei:cailiaoshebei:list', '#', 103, 1, sysdate(), null, null, '物资-材料设备菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951230902137835523, '物资-材料设备查询', 1951230902137835522, '1', '#', '', 1, 0, 'F', '0', '0', 'cailiaoshebei:cailiaoshebei:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951230902137835524, '物资-材料设备新增', 1951230902137835522, '2', '#', '', 1, 0, 'F', '0', '0', 'cailiaoshebei:cailiaoshebei:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951230902137835525, '物资-材料设备修改', 1951230902137835522, '3', '#', '', 1, 0, 'F', '0', '0', 'cailiaoshebei:cailiaoshebei:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951230902137835526, '物资-材料设备删除', 1951230902137835522, '4', '#', '', 1, 0, 'F', '0', '0', 'cailiaoshebei:cailiaoshebei:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1951230902137835527, '物资-材料设备导出', 1951230902137835522, '5', '#', '', 1, 0, 'F', '0', '0', 'cailiaoshebei:cailiaoshebei:export', '#', 103, 1, sysdate(), null, null, ''); diff --git a/xinnengyuan/script/sql/xinnengyuan.sql b/xinnengyuan/script/sql/xinnengyuan.sql index 43369904..7babcec4 100644 --- a/xinnengyuan/script/sql/xinnengyuan.sql +++ b/xinnengyuan/script/sql/xinnengyuan.sql @@ -1695,3 +1695,26 @@ create table des_volume_file_Viewer primary key (`id`) using btree, unique index `uk_volume_user` (`volume_catalog_id`, `user_id`) ) comment '卷册查阅人' collate = utf8mb4_unicode_ci; + +drop table if exists pgs_construction_schedule_plan; +create table pgs_construction_schedule_plan +( + `id` bigint not null auto_increment comment '主键ID', + `project_id` bigint not null comment '项目ID', + `p_id` bigint default 0 not null comment '父ID', + `node_name` varchar(255) not null comment '节点名称', + `project_structure` bigint null comment '对应项目结构', + `plan_start_date` date not null comment '预计开始时间', + `plan_end_date` date not null comment '预计结束时间', + `practical_start_date` date null comment '实际开始时间', + `practical_end_date` date null comment '实际结束时间', + `status` varchar(64) null comment '状态', + `remark` varchar(255) null comment '备注', + `create_by` bigint null comment '创建者', + `update_by` bigint null comment '更新者', + `create_dept` bigint null comment '创建部门', + `create_time` datetime default CURRENT_TIMESTAMP null comment '创建时间', + `update_time` datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间', + primary key (`id`) using btree, + index `idx_project_id` (`project_id` asc) using btree comment '项目ID' +) comment '施工进度计划' collate = utf8mb4_unicode_ci;