From 061ed776f180aa3b17a8555fa2e9a5b2e345c159 Mon Sep 17 00:00:00 2001 From: cuizhibin Date: Wed, 30 Apr 2025 17:29:42 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E3=80=81=E6=9C=BA=E7=BB=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../znpt/domain/dto/OutWorkDefectDTO.java | 34 +++ .../dite/znpt/domain/entity/DefectEntity.java | 14 +- .../domain/entity/OutWorkDefectEntity.java | 46 ++++ .../znpt/domain/entity/ProjectEntity.java | 4 - .../znpt/domain/entity/job/DefectDTO.java | 58 ++++ .../znpt/domain/entity/job/JobOutWork.java | 8 +- .../dite/znpt/mapper/OutWorkDefectMapper.java | 13 + .../znpt/service/OutWorkDefectService.java | 13 + .../impl/OutWorkDefectServiceImpl.java | 18 ++ .../znpt/service/job/JobOutWorkService.java | 3 +- .../impl/JobAntiThunderWorkServiceImpl.java | 6 +- .../job/impl/JobInWorkServiceImpl.java | 6 +- .../job/impl/JobOutWorkServiceImpl.java | 256 ++++++++++-------- .../job/impl/JobSummaryWorkServiceImpl.java | 67 ++--- .../resources/mapper/OutWorkDefectMapper.xml | 9 + .../media/zlm/impl/ZlmServiceImpl.java | 2 +- .../web/controller/JobOutWorkController.java | 9 +- 17 files changed, 396 insertions(+), 170 deletions(-) create mode 100644 core/src/main/java/com/dite/znpt/domain/dto/OutWorkDefectDTO.java create mode 100644 core/src/main/java/com/dite/znpt/domain/entity/OutWorkDefectEntity.java create mode 100644 core/src/main/java/com/dite/znpt/domain/entity/job/DefectDTO.java create mode 100644 core/src/main/java/com/dite/znpt/mapper/OutWorkDefectMapper.java create mode 100644 core/src/main/java/com/dite/znpt/service/OutWorkDefectService.java create mode 100644 core/src/main/java/com/dite/znpt/service/impl/OutWorkDefectServiceImpl.java create mode 100644 core/src/main/resources/mapper/OutWorkDefectMapper.xml diff --git a/core/src/main/java/com/dite/znpt/domain/dto/OutWorkDefectDTO.java b/core/src/main/java/com/dite/znpt/domain/dto/OutWorkDefectDTO.java new file mode 100644 index 0000000..c4bfd9f --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/dto/OutWorkDefectDTO.java @@ -0,0 +1,34 @@ +package com.dite.znpt.domain.dto; + +import com.dite.znpt.annotations.MatchType; +import com.dite.znpt.annotations.QueryCondition; +import com.dite.znpt.domain.entity.DefectEntity; +import com.dite.znpt.domain.entity.OutWorkDefectEntity; +import com.dite.znpt.domain.entity.job.DefectDTO; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@Data +public class OutWorkDefectDTO extends OutWorkDefectEntity { + + @ApiModelProperty(value = "部件编号", example = "GG1", notes = "部件编号") + @QueryCondition(func = MatchType.like) + private String code; + + @ApiModelProperty("图片地址") + @QueryCondition(func = MatchType.like) + @JsonIgnore + private String urls; + + @ApiModelProperty("是否有缺陷:1有,0无") + @QueryCondition(func = MatchType.equal) + private Integer status; + + @ApiModelProperty("缺陷列表") + private List defectList; +} diff --git a/core/src/main/java/com/dite/znpt/domain/entity/DefectEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/DefectEntity.java index e412486..37e26bd 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/DefectEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/DefectEntity.java @@ -78,12 +78,12 @@ public class DefectEntity extends AuditableEntity implements Serializable { @ExcelProperty("弦向") @ApiModelProperty("弦向") @TableField("chordwise") - private Integer chordwise; + private String chordwise; @ExcelProperty("轴向") @ApiModelProperty("轴向") @TableField("axial") - private Integer axial; + private String axial; @ExcelProperty("标注信息") @ApiModelProperty("标注信息") @@ -100,5 +100,15 @@ public class DefectEntity extends AuditableEntity implements Serializable { @TableField("repair_idea") private String repairIdea; + @ExcelProperty("距离叶根/叶尖") + @ApiModelProperty("距离叶根/叶尖") + @TableField("with_leaf") + private String withLeaf; + + @ExcelProperty("距离叶根/叶尖xx米") + @ApiModelProperty("距离叶根/叶尖xx米") + @TableField("with_leaf_distance") + private String withLeafDistance; + } diff --git a/core/src/main/java/com/dite/znpt/domain/entity/OutWorkDefectEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/OutWorkDefectEntity.java new file mode 100644 index 0000000..ba16a77 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/entity/OutWorkDefectEntity.java @@ -0,0 +1,46 @@ +package com.dite.znpt.domain.entity; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.*; +import com.dite.znpt.domain.AuditableEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.alibaba.excel.annotation.ExcelProperty; + +/** + * @author huise23 + * @date 2025/04/30 15:54 + * @Description: 外部工作-缺陷关联表实体类 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("gaea_out_work_defect") +@ApiModel(value="OutWorkDefectEntity对象", description="外部工作-缺陷关联表") +public class OutWorkDefectEntity extends AuditableEntity implements Serializable { + + private static final long serialVersionUID = 869306338404475124L; + + @ExcelProperty("id") + @ApiModelProperty("id") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ExcelProperty("外部工作id") + @ApiModelProperty("外部工作id") + @TableField("out_work_id") + private String outWorkId; + + @ExcelProperty("缺陷id") + @ApiModelProperty("缺陷id") + @TableField("defect_ids") + private String defectIds; + + @ExcelProperty("岗位类型") + @ApiModelProperty("岗位类型") + @TableField("job_code") + private String jobCode; +} + diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ProjectEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ProjectEntity.java index fd346ad..a818bd4 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/ProjectEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/ProjectEntity.java @@ -139,9 +139,5 @@ public class ProjectEntity extends AuditableEntity implements Serializable { @ApiModelProperty("项目工作岗位 可能有多项,json对象保存") @TableField("job") private String job; - - @ApiModelProperty(value = "项目安全风险点", example = "1", notes = "项目安全风险点 可能有多项,逗号分隔") - @TableField("safety_risk_point") - private String safetyRiskPoint; } diff --git a/core/src/main/java/com/dite/znpt/domain/entity/job/DefectDTO.java b/core/src/main/java/com/dite/znpt/domain/entity/job/DefectDTO.java new file mode 100644 index 0000000..583377e --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/entity/job/DefectDTO.java @@ -0,0 +1,58 @@ +package com.dite.znpt.domain.entity.job; + +import com.dite.znpt.annotations.MatchType; +import com.dite.znpt.annotations.QueryCondition; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@Deprecated +public class DefectDTO { + + @ApiModelProperty(value = "缺陷详情", example = "缺陷详情", notes = "缺陷详情") + @QueryCondition(func = MatchType.like) + private String content; + + @ApiModelProperty(value = "缺陷图片", example = "123.png", notes = "缺陷图片") + @QueryCondition(func = MatchType.like) + @JsonIgnore + private String flawUrl; + + @ApiModelProperty(value = "封面图片", example = "123.png", notes = "封面图片") + @QueryCondition(func = MatchType.like) + private String coverUrl; + + @ApiModelProperty(value = "缺陷类型编码", example = "A123", notes = "缺陷类型编码") + @QueryCondition(func = MatchType.like) + private String defectTypeCode; + + @ApiModelProperty(value = "缺陷位置1", example = "GG1", notes = "缺陷位置1") + @QueryCondition(func = MatchType.like) + private String defectLocation1; + + @ApiModelProperty(value = "缺陷位置1尺寸", example = "1.5", notes = "缺陷位置1尺寸") + @QueryCondition(func = MatchType.like) + private String defectLocation1Size; + + @ApiModelProperty(value = "缺陷位置2", example = "GG1", notes = "缺陷位置2") + @QueryCondition(func = MatchType.like) + private String defectLocation2; + + @ApiModelProperty(value = "缺陷尺寸", example = "10", notes = "缺陷尺寸") + @QueryCondition(func = MatchType.like) + private String defectSize; + + @ApiModelProperty(value = "缺陷尺寸2", example = "10", notes = "缺陷尺寸2") + @QueryCondition(func = MatchType.like) + private String defectSize2; + + @ApiModelProperty(value = "缺陷等级编码", example = "aa", notes = "缺陷等级编码") + @QueryCondition(func = MatchType.equal) + private String criticalityLevelCode; + + @ApiModelProperty(value = "缺陷图片,多个逗号隔开", example = "[https://123.png]", notes = "缺陷图片,多个逗号隔开") + private List flawUrlList; +} diff --git a/core/src/main/java/com/dite/znpt/domain/entity/job/JobOutWork.java b/core/src/main/java/com/dite/znpt/domain/entity/job/JobOutWork.java index 7a77dfd..60e449c 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/job/JobOutWork.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/job/JobOutWork.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.dite.znpt.annotations.MatchType; import com.dite.znpt.annotations.QueryCondition; import com.dite.znpt.domain.AuditableEntity; -import com.dite.znpt.domain.entity.PartEntity; +import com.dite.znpt.domain.dto.OutWorkDefectDTO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -110,7 +110,7 @@ public class JobOutWork extends AuditableEntity implements Serializable { @ApiModelProperty(value = "飞手部件列表", example = "[]", notes = "部件列表") @TableField(exist = false) - private List droneFlyerPartsList; + private List droneFlyerPartsList; @ApiModelProperty(value = "飞助工作描述", example = "工作描述工作描述", notes = "飞助工作描述") private String flyAidJobDesc; @@ -144,7 +144,7 @@ public class JobOutWork extends AuditableEntity implements Serializable { @ApiModelProperty(value = "飞助部件列表", example = "[]", notes = "部件列表") @TableField(exist = false) - private List flyAidPartsList; + private List flyAidPartsList; @ApiModelProperty(value = "登高工作描述", example = "工作描述工作描述", notes = "登高工作描述") private String ascendingJobDesc; @@ -182,7 +182,7 @@ public class JobOutWork extends AuditableEntity implements Serializable { @ApiModelProperty(value = "登高部件列表", example = "[]", notes = "部件列表") @TableField(exist = false) - private List ascendingPartsList; + private List ascendingPartsList; @ApiModelProperty(value = "状态", example = "0草稿 1已提交 2组长提交 3项目经理审批通过", notes = "状态") @QueryCondition(func = MatchType.equal) diff --git a/core/src/main/java/com/dite/znpt/mapper/OutWorkDefectMapper.java b/core/src/main/java/com/dite/znpt/mapper/OutWorkDefectMapper.java new file mode 100644 index 0000000..895d666 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/mapper/OutWorkDefectMapper.java @@ -0,0 +1,13 @@ +package com.dite.znpt.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dite.znpt.domain.entity.OutWorkDefectEntity; + +/** + * @author huise23 + * @date 2025/04/30 15:54 + * @Description: 外部工作-缺陷关联表数据库访问层 + */ +public interface OutWorkDefectMapper extends BaseMapper { +} + diff --git a/core/src/main/java/com/dite/znpt/service/OutWorkDefectService.java b/core/src/main/java/com/dite/znpt/service/OutWorkDefectService.java new file mode 100644 index 0000000..1d99715 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/service/OutWorkDefectService.java @@ -0,0 +1,13 @@ +package com.dite.znpt.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dite.znpt.domain.entity.OutWorkDefectEntity; + +/** + * @author huise23 + * @date 2025/04/30 15:54 + * @Description: 外部工作-缺陷关联表服务接口 + */ +public interface OutWorkDefectService extends IService { +} + diff --git a/core/src/main/java/com/dite/znpt/service/impl/OutWorkDefectServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/OutWorkDefectServiceImpl.java new file mode 100644 index 0000000..cb14b5d --- /dev/null +++ b/core/src/main/java/com/dite/znpt/service/impl/OutWorkDefectServiceImpl.java @@ -0,0 +1,18 @@ +package com.dite.znpt.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dite.znpt.domain.entity.OutWorkDefectEntity; +import com.dite.znpt.mapper.OutWorkDefectMapper; +import com.dite.znpt.service.OutWorkDefectService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * @author huise23 + * @date 2025/04/30 15:54 + * @Description: 外部工作-缺陷关联表服务实现类 + */ +@Service +@RequiredArgsConstructor +public class OutWorkDefectServiceImpl extends ServiceImpl implements OutWorkDefectService { +} diff --git a/core/src/main/java/com/dite/znpt/service/job/JobOutWorkService.java b/core/src/main/java/com/dite/znpt/service/job/JobOutWorkService.java index 161e8a1..7afced1 100644 --- a/core/src/main/java/com/dite/znpt/service/job/JobOutWorkService.java +++ b/core/src/main/java/com/dite/znpt/service/job/JobOutWorkService.java @@ -2,7 +2,6 @@ package com.dite.znpt.service.job; import com.baomidou.mybatisplus.extension.service.IService; import com.dite.znpt.domain.entity.job.JobOutWork; -import com.dite.znpt.domain.entity.job.JobOutWork; import com.dite.znpt.domain.vo.job.req.JobInfoReq; import com.dite.znpt.domain.vo.job.req.JobOutWorkReq; @@ -38,5 +37,5 @@ public interface JobOutWorkService extends IService { **/ public void reject(JobInfoReq request); - List listByJobId(JobOutWorkReq dto); + JobOutWork getByJobId(JobOutWorkReq dto); } diff --git a/core/src/main/java/com/dite/znpt/service/job/impl/JobAntiThunderWorkServiceImpl.java b/core/src/main/java/com/dite/znpt/service/job/impl/JobAntiThunderWorkServiceImpl.java index 8ef09ea..dc4fecb 100644 --- a/core/src/main/java/com/dite/znpt/service/job/impl/JobAntiThunderWorkServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/job/impl/JobAntiThunderWorkServiceImpl.java @@ -45,7 +45,7 @@ public class JobAntiThunderWorkServiceImpl extends ServiceImpl linkList = outWorkDefectService.lambdaQuery().eq(OutWorkDefectEntity::getOutWorkId, entity.getId()).list(); + if (CollUtil.isNotEmpty(linkList)) { + defectService.lambdaUpdate().in(DefectEntity::getDefectId, linkList.stream().map(OutWorkDefectEntity::getDefectIds) + .flatMap(s -> StrUtil.split(s, ",").stream()).collect(Collectors.toList())).remove(); + } // 飞手部件列表 if (CollUtil.isNotEmpty(entity.getDroneFlyerPartsList())) { - List idList = entity.getDroneFlyerPartsList().stream().map(Parts::getId).filter(StringUtils::isNotEmpty).distinct().collect(Collectors.toList()); - if (CollUtil.isEmpty(idList)) { -// partService.lambdaUpdate(). - partService.delByReportIdAndJobCode(entity.getId(), Enums.EOutWorkType.DRONE_FLYER.getValue()); - } else { - partService.delByReportIdAndIdNotInAndJobCode(entity.getId(), idList, Enums.EOutWorkType.DRONE_FLYER.getValue()); - } - JobInfo job = jobService.findByIdAndS(entity.getJobId(), Enums.S.Yes.getValue()); - entity.getDroneFlyerPartsList().forEach(item -> { - item.setProjectId(job.getProjectId()); - item.setCrewId(job.getCrewId()); - item.setReportId(entity.getId()); - item.setJobCode(Enums.EOutWorkType.DRONE_FLYER.getValue()); - }); - partService.save(entity.getDroneFlyerPartsList()); - } else { - partService.delByReportIdAndJobCode(entity.getId(), Enums.EOutWorkType.DRONE_FLYER.getValue()); + saveDefect(entity.getDroneFlyerPartsList(), entity.getId(), Enums.EOutWorkType.DRONE_FLYER); } // 飞助部件列表 if (CollUtil.isNotEmpty(entity.getFlyAidPartsList())) { - List idList = entity.getFlyAidPartsList().stream().map(Parts::getId).filter(StringUtils::isNotEmpty).distinct().collect(Collectors.toList()); - if (CollUtil.isEmpty(idList)) { - partService.delByReportIdAndJobCode(entity.getId(), Enums.EOutWorkType.FLYAID.getValue()); - } else { - partService.delByReportIdAndIdNotInAndJobCode(entity.getId(), idList, Enums.EOutWorkType.FLYAID.getValue()); - } - Job job = jobService.findByIdAndS(entity.getJobId(), Enums.S.Yes.getValue()); - entity.getFlyAidPartsList().forEach(item -> { - item.setProjectId(job.getProjectId()); - item.setCrewId(job.getCrewId()); - item.setReportId(entity.getId()); - item.setJobCode(Enums.EOutWorkType.FLYAID.getValue()); - }); - partService.save(entity.getFlyAidPartsList()); - } else { - partService.delByReportIdAndJobCode(entity.getId(), Enums.EOutWorkType.FLYAID.getValue()); + saveDefect(entity.getFlyAidPartsList(), entity.getId(), Enums.EOutWorkType.FLYAID); } // 登高部件列表 if (CollUtil.isNotEmpty(entity.getAscendingPartsList())) { - List idList = entity.getAscendingPartsList().stream().map(Parts::getId).filter(StringUtils::isNotEmpty).distinct().collect(Collectors.toList()); - if (CollUtil.isEmpty(idList)) { - partService.delByReportIdAndJobCode(entity.getId(), Enums.EOutWorkType.ASCEND_HEIGHT.getValue()); - } else { - partService.delByReportIdAndIdNotInAndJobCode(entity.getId(), idList, Enums.EOutWorkType.ASCEND_HEIGHT.getValue()); - } - Job job = jobService.findByIdAndS(entity.getJobId(), Enums.S.Yes.getValue()); - entity.getAscendingPartsList().forEach(item -> { - item.setProjectId(job.getProjectId()); - item.setCrewId(job.getCrewId()); - item.setReportId(entity.getId()); - item.setJobCode(Enums.EOutWorkType.ASCEND_HEIGHT.getValue()); - }); - partService.save(entity.getAscendingPartsList()); - } else { - partService.delByReportIdAndJobCode(entity.getId(), Enums.EOutWorkType.ASCEND_HEIGHT.getValue()); + saveDefect(entity.getAscendingPartsList(), entity.getId(), Enums.EOutWorkType.ASCEND_HEIGHT); } - Job job = jobService.findByIdAndS(entity.getJobId(), 1); - crewService.updateStatusNew(job.getCrewId()); + JobInfo jobInfo = jobService.getById(entity.getJobId()); + turbineService.updateStatus(jobInfo.getCrewId()); // 施工人员提交后更新该工作类型状态及提交时间 if (entity.getStatus().equals(Enums.EWorkStatus.SUBMITTED.getValue())) { - job.setStatus(Enums.EWorkStatus.SUBMITTED.getValue()); - job.setSubmitTime(new Date()); - jobService.save(job); + jobInfo.setStatus(Enums.EWorkStatus.SUBMITTED.getValue()); + jobInfo.setSubmitTime(new Date()); + jobService.updateById(jobInfo); + } + return entity; + } + + /** + * 功能描述:保存缺陷 + * + * @param defectDTOList 实体 + * @param outWorkId outWorkId + * @param workType 无人机飞行 + * @author cuizhibin + * @date 2025/04/30 16:37 + **/ + private void saveDefect(List defectDTOList, String outWorkId, Enums.EOutWorkType workType) { + List defectList = new ArrayList<>(); + List list = defectDTOList.stream().filter(defectDTO -> CollUtil.isNotEmpty(defectDTO.getDefectList())).map(item -> { + List defectIds = new ArrayList<>(); + item.getDefectList().forEach(defectDTO -> { + DefectEntity defect = new DefectEntity(); + defect.setDefectId(IdUtil.simpleUUID()); + defect.setDescription(defectDTO.getContent()); + defect.setDefectType(defectDTO.getDefectTypeCode()); + defect.setDefectLevel(defectDTO.getCriticalityLevelCode()); + defect.setDefectPosition(defectDTO.getDefectLocation2()); + defect.setAxial(defectDTO.getDefectSize()); + defect.setChordwise(defectDTO.getDefectSize2()); +// todo 若部件不存在,还需要创建部件或查询第一个部件,此处只有叶片的 + defectList.add(defect); + defectIds.add(defect.getDefectId()); + }); + + OutWorkDefectEntity workDefect = BeanUtil.copyProperties(item, OutWorkDefectEntity.class); + workDefect.setOutWorkId(outWorkId); + workDefect.setJobCode(workType.getValue()); + workDefect.setDefectIds(StrUtil.join(",", defectIds)); + return workDefect; + }).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(defectList)) { + outWorkDefectService.saveBatch(list); + defectService.saveBatch(defectList); + } + } + + @Override + public JobOutWork getByJobId(JobOutWorkReq dto) { + List list = lambdaQuery().eq(JobOutWork::getJobId, dto.getJobId()).list(); + if (CollUtil.isEmpty(list)) { + return new JobOutWork(); + } else { + JobOutWork work = list.get(0); + getDefectList(work); + return work; + } + } + + /** + * 功能描述:查询缺陷 + * + * @author cuizhibin + * @date 2025/04/30 16:37 + **/ + private void getDefectList(JobOutWork outWork) { + List linkList = outWorkDefectService.lambdaQuery().eq(OutWorkDefectEntity::getOutWorkId, outWork.getId()).list(); + Map defectMap = defectService.listByIds(linkList.stream().flatMap(outWorkDefect -> StrUtil.split(outWorkDefect.getDefectIds(), ",").stream()) + .collect(Collectors.toList())) + .stream().collect(Collectors.toMap(DefectEntity::getDefectId, Function.identity())); + outWork.setAscendingPartsList(new ArrayList<>()); + outWork.setFlyAidPartsList(new ArrayList<>()); + outWork.setAscendingPartsList(new ArrayList<>()); + for (OutWorkDefectEntity workDefect : linkList) { + OutWorkDefectDTO dto = BeanUtil.copyProperties(workDefect, OutWorkDefectDTO.class); + dto.setCode(""); + dto.setUrls(""); + dto.setStatus(0); + dto.setDefectList(new ArrayList<>()); + + if (workDefect.getJobCode().equals(Enums.EOutWorkType.DRONE_FLYER.getValue())) { + + } else if (workDefect.getJobCode().equals(Enums.EOutWorkType.FLYAID.getValue())) { + + } else if (workDefect.getJobCode().equals(Enums.EOutWorkType.ASCEND_HEIGHT.getValue())) { + + } } - return outWork; } /** @@ -133,38 +188,19 @@ public class JobOutWorkServiceImpl extends ServiceImpl jobIds = jobList.stream().map(Job::getId).collect(Collectors.toList()); - Map jobId2Job = jobList.stream().collect(Collectors.toMap(Job::getId, i -> i)); - List list = this.repository.findByJobIdInAndStatusIn(jobIds, statusList); - list.forEach(work -> { - Job job = jobId2Job.get(work.getJobId()); + List jobIds = jobList.stream().map(JobInfo::getId).collect(Collectors.toList()); + Map jobId2Job = jobList.stream().collect(Collectors.toMap(JobInfo::getId, i -> i)); + List workList = lambdaQuery().in(JobOutWork::getStatus, statusList).in(JobOutWork::getJobId, jobList.stream().map(JobInfo::getId).collect(Collectors.toList())).list(); + workList.forEach(work -> { + JobInfo job = jobId2Job.get(work.getJobId()); work.setConstructionPersonnel(job.getConstructionPersonnel()); work.setJobCode(job.getJobCode()); - - work.setDroneFlyerPartsList(partService.getByReportIdAndJobCode(IdVo.builder().id(work.getId()).build(), Enums.EOutWorkType.DRONE_FLYER.getValue())); - work.setFlyAidPartsList(partService.getByReportIdAndJobCode(IdVo.builder().id(work.getId()).build(), Enums.EOutWorkType.FLYAID.getValue())); - work.setAscendingPartsList(partService.getByReportIdAndJobCode(IdVo.builder().id(work.getId()).build(), Enums.EOutWorkType.ASCEND_HEIGHT.getValue())); }); - return list; + return workList; } return new ArrayList<>(); } - /** - * @param vo - * @return {@link Page}<{@link JobOutWork}> - */ - @Override - public Page list(JobOutWorkReq vo) { - Page page = super.page(vo); - page.getContent().forEach(work -> { - work.setDroneFlyerPartsList(partService.getByReportIdAndJobCode(IdVo.builder().id(work.getId()).build(), Enums.EOutWorkType.DRONE_FLYER.getValue())); - work.setFlyAidPartsList(partService.getByReportIdAndJobCode(IdVo.builder().id(work.getId()).build(), Enums.EOutWorkType.FLYAID.getValue())); - work.setAscendingPartsList(partService.getByReportIdAndJobCode(IdVo.builder().id(work.getId()).build(), Enums.EOutWorkType.ASCEND_HEIGHT.getValue())); - }); - return page; - } - /** * 功能描述:组长提交/项目经理审批 * @@ -179,9 +215,9 @@ public class JobOutWorkServiceImpl extends ServiceImpl workList = this.repository.findByJobIdIn(jobList.stream().map(Job::getId).collect(Collectors.toList())); + JobInfo jobInfo = jobList.get(0); + ProjectEntity project = projectService.getById(jobInfo.getProjectId()); + List workList = lambdaQuery().in(JobOutWork::getJobId, jobList.stream().map(JobInfo::getId).collect(Collectors.toList())).list(); // 如果是项目经理 if (Enums.ERoleCode.ProjectManager.getName().equals(UserContext.getRoleCode())) { if (StrUtil.isNotBlank(project.getAuditorId())) { @@ -197,20 +233,20 @@ public class JobOutWorkServiceImpl extends ServiceImpl item.setStatus(Enums.EWorkStatus.MANAGER_APPROVAL.getValue())); - job.setStatus(Enums.EWorkStatus.MANAGER_APPROVAL.getValue()); + jobInfo.setStatus(Enums.EWorkStatus.MANAGER_APPROVAL.getValue()); } else if (Enums.ERoleCode.SafetyOfficer.getName().equals(UserContext.getRoleCode())) { workList.forEach(item -> item.setSafetyOfficerStatus(Enums.EAuthStatus.APPROVAL.getVal())); - job.setSafetyOfficerStatus(Enums.EAuthStatus.APPROVAL.getVal()); + jobInfo.setSafetyOfficerStatus(Enums.EAuthStatus.APPROVAL.getVal()); } else if (Enums.ERoleCode.QualityOfficer.getName().equals(UserContext.getRoleCode())) { workList.forEach(item -> item.setQualityOfficerStatus(Enums.EAuthStatus.APPROVAL.getVal())); - job.setQualityOfficerStatus(Enums.EAuthStatus.APPROVAL.getVal()); - } else if (project.getConstructionTeamLeaderId().equals(this.getCurrentUserId())) { + jobInfo.setQualityOfficerStatus(Enums.EAuthStatus.APPROVAL.getVal()); + } else if (project.getConstructionTeamLeaderId().equals(UserContext.getUserInfo().getPersonId())) { workList.forEach(item -> item.setStatus(Enums.EWorkStatus.LEADER_SUBMITTED.getValue())); - job.setStatus(Enums.EWorkStatus.LEADER_SUBMITTED.getValue()); + jobInfo.setStatus(Enums.EWorkStatus.LEADER_SUBMITTED.getValue()); } - this.repository.saveAll(workList); - crewService.updateStatusNew(job.getCrewId()); - jobService.save(job); + saveOrUpdateBatch(workList); + turbineService.updateStatus(jobInfo.getCrewId()); + jobService.save(jobInfo); } /** @@ -227,26 +263,22 @@ public class JobOutWorkServiceImpl extends ServiceImpl workList = this.repository.findByJobIdIn(jobList.stream().map(Job::getId).collect(Collectors.toList())); + JobInfo jobInfo = jobList.get(0); + ProjectEntity project = projectService.getById(jobInfo.getProjectId()); + List workList = lambdaQuery().in(JobOutWork::getJobId, jobList.stream().map(JobInfo::getId).collect(Collectors.toList())).list(); // 如果是项目经理 if (Enums.ERoleCode.ProjectManager.getName().equals(UserContext.getRoleCode())) { workList.forEach(item -> item.setStatus(Enums.EWorkStatus.SUBMITTED.getValue())); - job.setStatus(Enums.EWorkStatus.SUBMITTED.getValue()); + jobInfo.setStatus(Enums.EWorkStatus.SUBMITTED.getValue()); } else if (Enums.ERoleCode.SafetyOfficer.getName().equals(UserContext.getRoleCode()) || Enums.ERoleCode.QualityOfficer.getName().equals(UserContext.getRoleCode()) - || project.getConstructionTeamLeaderId().equals(this.getCurrentUserId())) { + || project.getConstructionTeamLeaderId().equals(UserContext.getUserInfo().getPersonId())) { workList.forEach(item -> item.setStatus(Enums.EWorkStatus.DRAFT.getValue())); - job.setStatus(Enums.EWorkStatus.DRAFT.getValue()); + jobInfo.setStatus(Enums.EWorkStatus.DRAFT.getValue()); } - this.repository.saveAll(workList); - crewService.updateStatusNew(job.getCrewId()); - jobService.save(job); + saveOrUpdateBatch(workList); + turbineService.updateStatus(jobInfo.getCrewId()); + jobService.save(jobInfo); } - @Override - public List listByJobId(JobOutWorkReq dto) { - return lambdaQuery().eq(JobOutWork::getJobId, dto.getJobId()).list(); - } } diff --git a/core/src/main/java/com/dite/znpt/service/job/impl/JobSummaryWorkServiceImpl.java b/core/src/main/java/com/dite/znpt/service/job/impl/JobSummaryWorkServiceImpl.java index eaa9146..0bd2650 100644 --- a/core/src/main/java/com/dite/znpt/service/job/impl/JobSummaryWorkServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/job/impl/JobSummaryWorkServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.context.UserContext; import com.dite.znpt.domain.QueryWrapperBuilder; +import com.dite.znpt.domain.entity.ProjectEntity; import com.dite.znpt.domain.entity.job.*; import com.dite.znpt.domain.entity.job.JobSummaryWork; import com.dite.znpt.domain.entity.job.JobSummaryWork; @@ -13,6 +14,8 @@ import com.dite.znpt.domain.vo.job.req.JobSummaryWorkReq; import com.dite.znpt.enums.Enums; import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.JobSummaryWorkMapper; +import com.dite.znpt.service.ProjectService; +import com.dite.znpt.service.TurbineService; import com.dite.znpt.service.job.JobService; import com.dite.znpt.service.job.JobSummaryWorkService; import org.springframework.beans.factory.annotation.Autowired; @@ -26,9 +29,11 @@ import java.util.stream.Collectors; @Transactional(rollbackFor = Exception.class) public class JobSummaryWorkServiceImpl extends ServiceImpl implements JobSummaryWorkService { @Autowired - private CrewService crewService; + private TurbineService turbineService; @Autowired private JobService jobService; + @Autowired + private ProjectService projectService; @Override public JobSummaryWork saveInfo(JobSummaryWork entity) { @@ -39,15 +44,15 @@ public class JobSummaryWorkServiceImpl extends ServiceImpl jobIds = jobList.stream().map(Job::getId).collect(Collectors.toList()); - Map jobId2Job = jobList.stream().collect(Collectors.toMap(Job::getId, i -> i)); - List list = this.repository.findByJobIdInAndStatusIn(jobIds, statusList); - list.forEach(work -> { - Job job = jobId2Job.get(work.getJobId()); + List jobIds = jobList.stream().map(JobInfo::getId).collect(Collectors.toList()); + Map jobId2Job = jobList.stream().collect(Collectors.toMap(JobInfo::getId, i -> i)); + List workList = lambdaQuery().in(JobSummaryWork::getStatus, statusList).in(JobSummaryWork::getJobId, jobIds).list(); + workList.forEach(work -> { + JobInfo job = jobId2Job.get(work.getJobId()); work.setConstructionPersonnel(job.getConstructionPersonnel()); work.setJobCode(job.getJobCode()); }); - return list; + return workList; } return new ArrayList<>(); } @@ -92,20 +97,20 @@ public class JobSummaryWorkServiceImpl extends ServiceImpl workList = this.repository.findByJobIdIn(jobList.stream().map(Job::getId).collect(Collectors.toList())); + JobInfo jobInfo = jobList.get(0); + ProjectEntity project = projectService.getById(jobInfo.getProjectId()); + List workList = lambdaQuery().in(JobSummaryWork::getJobId, jobList.stream().map(JobInfo::getId).collect(Collectors.toList())).list(); // 如果是项目经理 if (Enums.ERoleCode.ProjectManager.getName().equals(UserContext.getRoleCode())) { workList.forEach(item -> item.setStatus(Enums.EWorkStatus.MANAGER_APPROVAL.getValue())); - job.setStatus(Enums.EWorkStatus.MANAGER_APPROVAL.getValue()); - } else if (project.getConstructionTeamLeaderId().equals(this.getCurrentUserId())) { + jobInfo.setStatus(Enums.EWorkStatus.MANAGER_APPROVAL.getValue()); + } else if (project.getConstructionTeamLeaderId().equals(UserContext.getUserInfo().getPersonId())) { workList.forEach(item -> item.setStatus(Enums.EWorkStatus.LEADER_SUBMITTED.getValue())); - job.setStatus(Enums.EWorkStatus.LEADER_SUBMITTED.getValue()); + jobInfo.setStatus(Enums.EWorkStatus.LEADER_SUBMITTED.getValue()); } - this.repository.saveAll(workList); - crewService.updateStatusNew(job.getCrewId()); - jobRepository.save(job); + saveOrUpdateBatch(workList); + turbineService.updateStatus(jobInfo.getCrewId()); + jobService.save(jobInfo); } /** @@ -122,20 +127,20 @@ public class JobSummaryWorkServiceImpl extends ServiceImpl workList = this.repository.findByJobIdIn(jobList.stream().map(Job::getId).collect(Collectors.toList())); + JobInfo jobInfo = jobList.get(0); + ProjectEntity project = projectService.getById(jobInfo.getProjectId()); + List workList = lambdaQuery().in(JobSummaryWork::getJobId, jobList.stream().map(JobInfo::getId).collect(Collectors.toList())).list(); // 如果是项目经理 if (Enums.ERoleCode.ProjectManager.getName().equals(UserContext.getRoleCode())) { workList.forEach(item -> item.setStatus(Enums.EWorkStatus.SUBMITTED.getValue())); - job.setStatus(Enums.EWorkStatus.SUBMITTED.getValue()); - } else if (project.getConstructionTeamLeaderId().equals(this.getCurrentUserId())) { + jobInfo.setStatus(Enums.EWorkStatus.SUBMITTED.getValue()); + } else if (project.getConstructionTeamLeaderId().equals(UserContext.getUserInfo().getPersonId())) { workList.forEach(item -> item.setStatus(Enums.EWorkStatus.DRAFT.getValue())); - job.setStatus(Enums.EWorkStatus.DRAFT.getValue()); + jobInfo.setStatus(Enums.EWorkStatus.DRAFT.getValue()); } - this.repository.saveAll(workList); - crewService.updateStatusNew(job.getCrewId()); - jobRepository.save(job); + saveOrUpdateBatch(workList); + turbineService.updateStatus(jobInfo.getCrewId()); + jobService.save(jobInfo); } @Override diff --git a/core/src/main/resources/mapper/OutWorkDefectMapper.xml b/core/src/main/resources/mapper/OutWorkDefectMapper.xml new file mode 100644 index 0000000..3fe4c0e --- /dev/null +++ b/core/src/main/resources/mapper/OutWorkDefectMapper.xml @@ -0,0 +1,9 @@ + + + + + + a.id, a.out_work_id, a.defect_id, a.out_work_type + + + diff --git a/sip/src/main/java/com/dite/znpt/monitor/media/zlm/impl/ZlmServiceImpl.java b/sip/src/main/java/com/dite/znpt/monitor/media/zlm/impl/ZlmServiceImpl.java index aa27940..b4b52de 100644 --- a/sip/src/main/java/com/dite/znpt/monitor/media/zlm/impl/ZlmServiceImpl.java +++ b/sip/src/main/java/com/dite/znpt/monitor/media/zlm/impl/ZlmServiceImpl.java @@ -87,7 +87,7 @@ public class ZlmServiceImpl implements ZlmService, ApplicationRunner { serverCache.putLoad(item); } - @Scheduled(cron = "*/10 * * * * ?") +// @Scheduled(cron = "*/10 * * * * ?") public void heartbeat1() { log.debug("开始心跳检查..."); ServerItem item = serverCache.getLoad(); diff --git a/web/src/main/java/com/dite/znpt/web/controller/JobOutWorkController.java b/web/src/main/java/com/dite/znpt/web/controller/JobOutWorkController.java index e93c077..638c180 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/JobOutWorkController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/JobOutWorkController.java @@ -2,17 +2,14 @@ package com.dite.znpt.web.controller; import com.dite.znpt.domain.Result; import com.dite.znpt.domain.TableData; -import com.dite.znpt.domain.entity.job.JobInWork; import com.dite.znpt.domain.entity.job.JobOutWork; import com.dite.znpt.domain.vo.job.req.JobInfoReq; import com.dite.znpt.domain.vo.job.req.JobOutWorkReq; import com.dite.znpt.exception.ServiceException; -import com.dite.znpt.service.job.JobInWorkService; import com.dite.znpt.service.job.JobOutWorkService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @@ -35,11 +32,7 @@ public class JobOutWorkController { @ApiOperation(value = "根据jobId查询岗位内容,未查到返回空对象") @ResponseBody public Result getJob(@Valid @RequestBody JobOutWorkReq dto) throws ServiceException { - List list = this.service.listByJobId(dto); - if (list.isEmpty()) { - return Result.ok(new JobOutWork()); - } - return Result.ok(list.get(0)); + return Result.ok(this.service.getByJobId(dto)); } @PostMapping(value = "save")