From ca877877847d6ddbcde340b61deab85f00edcf51 Mon Sep 17 00:00:00 2001 From: gaoxiong Date: Tue, 6 May 2025 22:29:29 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90=EF=BC=8C=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=BE=85=E6=98=8E=E7=A1=AE=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dite/znpt/constant/Message.java | 1 + .../java/com/dite/znpt/converts/Converts.java | 10 ++- ...PersonnelEntity.java => PersonEntity.java} | 6 +- .../znpt/domain/entity/ProjectEntity.java | 8 +- ...rsonnelListReq.java => PersonListReq.java} | 2 +- .../{PersonnelResp.java => PersonResp.java} | 4 +- .../dite/znpt/domain/vo/ProjectListReq.java | 10 +-- .../com/dite/znpt/domain/vo/ProjectReq.java | 16 ++-- .../com/dite/znpt/domain/vo/ProjectResp.java | 16 ++++ .../com/dite/znpt/mapper/PersonnelMapper.java | 11 ++- .../com/dite/znpt/mapper/ProjectMapper.java | 3 +- ...rsonnelService.java => PersonService.java} | 20 ++--- ...erviceImpl.java => PersonServiceImpl.java} | 30 +++---- .../znpt/service/impl/ProjectServiceImpl.java | 81 ++++++++++++++----- .../main/resources/mapper/PersonnelMapper.xml | 2 +- .../main/resources/mapper/ProjectMapper.xml | 42 ++++------ ...lController.java => PersonController.java} | 38 ++++----- .../web/controller/ProjectController.java | 14 +++- web/src/main/resources/application-dev.yml | 6 +- 19 files changed, 191 insertions(+), 129 deletions(-) rename core/src/main/java/com/dite/znpt/domain/entity/{PersonnelEntity.java => PersonEntity.java} (87%) rename core/src/main/java/com/dite/znpt/domain/vo/{PersonnelListReq.java => PersonListReq.java} (93%) rename core/src/main/java/com/dite/znpt/domain/vo/{PersonnelResp.java => PersonResp.java} (74%) rename core/src/main/java/com/dite/znpt/service/{PersonnelService.java => PersonService.java} (67%) rename core/src/main/java/com/dite/znpt/service/impl/{PersonnelServiceImpl.java => PersonServiceImpl.java} (67%) rename web/src/main/java/com/dite/znpt/web/controller/{PersonnelController.java => PersonController.java} (63%) diff --git a/core/src/main/java/com/dite/znpt/constant/Message.java b/core/src/main/java/com/dite/znpt/constant/Message.java index 7529768..6f5babc 100644 --- a/core/src/main/java/com/dite/znpt/constant/Message.java +++ b/core/src/main/java/com/dite/znpt/constant/Message.java @@ -16,4 +16,5 @@ public class Message implements Serializable { public static final String IMAGE_PATH_IS_NOT_EXIST = "图像地址不存在"; public static final String IMAGE_ID_IS_NOT_EXIST = "图像id不存在"; public static final String DEFECT_ID_IS_NOT_EXIST = "缺陷id不存在"; + public static final String PROJECT_ID_IS_NOT_EXIST = "项目id不存在"; } diff --git a/core/src/main/java/com/dite/znpt/converts/Converts.java b/core/src/main/java/com/dite/znpt/converts/Converts.java index 55a918b..d3c3905 100644 --- a/core/src/main/java/com/dite/znpt/converts/Converts.java +++ b/core/src/main/java/com/dite/znpt/converts/Converts.java @@ -3,10 +3,8 @@ package com.dite.znpt.converts; import com.dite.znpt.domain.entity.DefectEntity; import com.dite.znpt.domain.entity.ImageCollectEntity; import com.dite.znpt.domain.entity.ImageEntity; -import com.dite.znpt.domain.vo.DefectReq; -import com.dite.znpt.domain.vo.DefectResp; -import com.dite.znpt.domain.vo.ImageCollectReq; -import com.dite.znpt.domain.vo.ImageReq; +import com.dite.znpt.domain.entity.ProjectEntity; +import com.dite.znpt.domain.vo.*; import org.mapstruct.Mapper; import org.mapstruct.NullValuePropertyMappingStrategy; import org.mapstruct.factory.Mappers; @@ -29,4 +27,8 @@ public interface Converts { DefectEntity toDefectEntity(DefectReq req); DefectResp toDefectResp(DefectEntity entity); + + ProjectResp toProjectResp(ProjectEntity entity); + + ProjectEntity toProjectEntity(ProjectReq req); } diff --git a/core/src/main/java/com/dite/znpt/domain/entity/PersonnelEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/PersonEntity.java similarity index 87% rename from core/src/main/java/com/dite/znpt/domain/entity/PersonnelEntity.java rename to core/src/main/java/com/dite/znpt/domain/entity/PersonEntity.java index b1ac0d4..730480e 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/PersonnelEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/PersonEntity.java @@ -17,9 +17,9 @@ import com.alibaba.excel.annotation.ExcelProperty; */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("personnel") -@ApiModel(value="PersonnelEntity对象", description="人员信息表") -public class PersonnelEntity extends AuditableEntity implements Serializable { +@TableName("person") +@ApiModel(value="PersonEntity对象", description="人员信息表") +public class PersonEntity extends AuditableEntity implements Serializable { private static final long serialVersionUID = -62273861742734411L; 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..36d3d07 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 @@ -83,12 +83,12 @@ public class ProjectEntity extends AuditableEntity implements Serializable { private String turbineModel; @ApiModelProperty("施工人员") - @TableField("construction_personnel") - private String constructionPersonnel; + @TableField("construction_person") + private String constructionPerson; @ApiModelProperty("施工人员id") - @TableField("construction_personnel_id") - private String constructionPersonnelId; + @TableField("construction_person_id") + private String constructionPersonId; @ApiModelProperty("安全员id") @TableField("auditor_id") diff --git a/core/src/main/java/com/dite/znpt/domain/vo/PersonnelListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/PersonListReq.java similarity index 93% rename from core/src/main/java/com/dite/znpt/domain/vo/PersonnelListReq.java rename to core/src/main/java/com/dite/znpt/domain/vo/PersonListReq.java index 5ab3c92..8cf43c2 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/PersonnelListReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/PersonListReq.java @@ -13,7 +13,7 @@ import lombok.Data; */ @Data @ApiModel("人员信息列表请求实体") -public class PersonnelListReq implements Serializable { +public class PersonListReq implements Serializable { private static final long serialVersionUID = -10363935468256543L; diff --git a/core/src/main/java/com/dite/znpt/domain/vo/PersonnelResp.java b/core/src/main/java/com/dite/znpt/domain/vo/PersonResp.java similarity index 74% rename from core/src/main/java/com/dite/znpt/domain/vo/PersonnelResp.java rename to core/src/main/java/com/dite/znpt/domain/vo/PersonResp.java index c66e1fa..587c10c 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/PersonnelResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/PersonResp.java @@ -3,7 +3,7 @@ package com.dite.znpt.domain.vo; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; -import com.dite.znpt.domain.entity.PersonnelEntity; +import com.dite.znpt.domain.entity.PersonEntity; /** * @author huise23 @@ -13,6 +13,6 @@ import com.dite.znpt.domain.entity.PersonnelEntity; @Data @EqualsAndHashCode(callSuper = true) @ApiModel("人员信息响应实体") -public class PersonnelResp extends PersonnelEntity { +public class PersonResp extends PersonEntity { } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java index 6f7343c..46ad94b 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectListReq.java @@ -1,6 +1,7 @@ package com.dite.znpt.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -19,9 +20,6 @@ public class ProjectListReq implements Serializable { private static final long serialVersionUID = -74121355744234753L; - @ApiModelProperty("查询关键字") - private String keyword; - @ApiModelProperty("项目名称") private String projectName; @@ -37,11 +35,13 @@ public class ProjectListReq implements Serializable { @ApiModelProperty("项目状态,枚举:ProjectStatusEnum") private String status; + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("创建日期-起") - private LocalDate createDateBegin; + private String createDateBegin; + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("创建日期-讫") - private LocalDate createDateEnd; + private String createDateEnd; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java index 67a517f..c59c45e 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectReq.java @@ -1,5 +1,6 @@ package com.dite.znpt.domain.vo; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -19,15 +20,18 @@ public class ProjectReq implements Serializable { @Serial private static final long serialVersionUID = 740685592879189406L; + @ExcelProperty("项目名称") @ApiModelProperty("项目名称") private String projectName; @ApiModelProperty("项目封面") private String coverUrl; + @ExcelProperty("风场名称") @ApiModelProperty("风场名称") private String farmName; + @ExcelProperty("风场地址") @ApiModelProperty("风场地址") private String farmAddress; @@ -49,17 +53,19 @@ public class ProjectReq implements Serializable { @ApiModelProperty("检查单位联系电话") private String inspectionPhone; + @ExcelProperty("项目规模") @ApiModelProperty("项目规模") private String scale; + @ExcelProperty("风机型号") @ApiModelProperty("风机型号") private String turbineModel; - @ApiModelProperty("施工人员") - private String constructionPersonnel; - @ApiModelProperty("施工人员id") - private String constructionPersonnelId; + private String constructionPersonId; + + @ApiModelProperty("施工人员") + private String constructionPersonName; @ApiModelProperty("安全员id") private String auditorId; @@ -89,7 +95,7 @@ public class ProjectReq implements Serializable { private String discloseContent; @ApiModelProperty("状态:0待施工,1施工中,2已完工,3已审核,4已验收") - private Integer status; + private String status; @ApiModelProperty("项目工作类型 可能有多项,逗号分隔") private String workType; diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ProjectResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ProjectResp.java index eff73b7..8bdfd18 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ProjectResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ProjectResp.java @@ -26,7 +26,23 @@ public class ProjectResp extends ProjectReq implements Serializable { @Serial private static final long serialVersionUID = -1883901559600186726L; + @ExcelProperty("项目id") @ApiModelProperty("项目id") private String projectId; + + @ApiModelProperty("安全员") + private String auditorName; + + @ApiModelProperty("质量员") + private String qualityOfficerName; + + @ApiModelProperty("项目经理") + private String projectManagerName; + + @ApiModelProperty("施工组长") + private String constructionTeamLeaderName; + + @ApiModelProperty("状态:0待施工,1施工中,2已完工,3已审核,4已验收") + private String statusLabel; } diff --git a/core/src/main/java/com/dite/znpt/mapper/PersonnelMapper.java b/core/src/main/java/com/dite/znpt/mapper/PersonnelMapper.java index dbe7318..5a8d6d7 100644 --- a/core/src/main/java/com/dite/znpt/mapper/PersonnelMapper.java +++ b/core/src/main/java/com/dite/znpt/mapper/PersonnelMapper.java @@ -1,10 +1,9 @@ package com.dite.znpt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.dite.znpt.domain.entity.PersonnelEntity; -import com.dite.znpt.domain.vo.PersonnelListReq; -import com.dite.znpt.domain.vo.PersonnelResp; -import org.apache.ibatis.annotations.Param; +import com.dite.znpt.domain.entity.PersonEntity; +import com.dite.znpt.domain.vo.PersonListReq; +import com.dite.znpt.domain.vo.PersonResp; import java.util.List; @@ -13,7 +12,7 @@ import java.util.List; * @date 2025/04/11 23:17 * @Description: 人员信息表数据库访问层 */ -public interface PersonnelMapper extends BaseMapper { - List queryBySelective(PersonnelListReq personnelReq); +public interface PersonnelMapper extends BaseMapper { + List queryBySelective(PersonListReq personnelReq); } diff --git a/core/src/main/java/com/dite/znpt/mapper/ProjectMapper.java b/core/src/main/java/com/dite/znpt/mapper/ProjectMapper.java index 5616a49..c1bebbf 100644 --- a/core/src/main/java/com/dite/znpt/mapper/ProjectMapper.java +++ b/core/src/main/java/com/dite/znpt/mapper/ProjectMapper.java @@ -3,6 +3,7 @@ package com.dite.znpt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dite.znpt.domain.entity.ProjectEntity; import com.dite.znpt.domain.vo.ProjectListReq; +import com.dite.znpt.domain.vo.ProjectListResp; import com.dite.znpt.domain.vo.ProjectResp; import org.apache.ibatis.annotations.Param; @@ -14,6 +15,6 @@ import java.util.List; * @Description: 项目信息表数据库访问层 */ public interface ProjectMapper extends BaseMapper { - List queryBySelective(ProjectListReq projectReq); + List queryBySelective(ProjectListReq projectReq); } diff --git a/core/src/main/java/com/dite/znpt/service/PersonnelService.java b/core/src/main/java/com/dite/znpt/service/PersonService.java similarity index 67% rename from core/src/main/java/com/dite/znpt/service/PersonnelService.java rename to core/src/main/java/com/dite/znpt/service/PersonService.java index 2717734..6a7ac97 100644 --- a/core/src/main/java/com/dite/znpt/service/PersonnelService.java +++ b/core/src/main/java/com/dite/znpt/service/PersonService.java @@ -1,9 +1,9 @@ package com.dite.znpt.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.dite.znpt.domain.entity.PersonnelEntity; -import com.dite.znpt.domain.vo.PersonnelListReq; -import com.dite.znpt.domain.vo.PersonnelResp; +import com.dite.znpt.domain.entity.PersonEntity; +import com.dite.znpt.domain.vo.PersonListReq; +import com.dite.znpt.domain.vo.PersonResp; import java.util.List; @@ -12,27 +12,27 @@ import java.util.List; * @date 2025/04/11 23:17 * @Description: 人员信息表服务接口 */ -public interface PersonnelService extends IService { +public interface PersonService extends IService { /** * 功能描述:查询人员信息列表 * * @param personnelReq 人员信息 - * @return {@link List }<{@link PersonnelEntity }> + * @return {@link List }<{@link PersonEntity }> * @author huise23 * @date 2025/04/11 23:17 **/ - List selectList(PersonnelListReq personnelReq); + List selectList(PersonListReq personnelReq); /** * 功能描述:查询单条人员信息 * * @param personId 人员信息Id - * @return {@link PersonnelResp } + * @return {@link PersonResp } * @author huise23 * @date 2025/04/11 23:17 **/ - PersonnelResp selectById(String personId); + PersonResp selectById(String personId); /** * 功能描述:新增人员信息 @@ -41,7 +41,7 @@ public interface PersonnelService extends IService { * @author huise23 * @date 2025/04/11 23:17 **/ - void saveData(PersonnelEntity personnel); + void saveData(PersonEntity personnel); /** * 功能描述:更新人员信息 @@ -50,7 +50,7 @@ public interface PersonnelService extends IService { * @author huise23 * @date 2025/04/11 23:17 **/ - void updateData(PersonnelEntity personnel); + void updateData(PersonEntity personnel); /** * 功能描述:删除人员信息 diff --git a/core/src/main/java/com/dite/znpt/service/impl/PersonnelServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/PersonServiceImpl.java similarity index 67% rename from core/src/main/java/com/dite/znpt/service/impl/PersonnelServiceImpl.java rename to core/src/main/java/com/dite/znpt/service/impl/PersonServiceImpl.java index f352d90..e28061c 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/PersonnelServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/PersonServiceImpl.java @@ -1,10 +1,10 @@ package com.dite.znpt.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dite.znpt.domain.entity.PersonnelEntity; -import com.dite.znpt.domain.vo.PersonnelListReq; -import com.dite.znpt.domain.vo.PersonnelResp; -import com.dite.znpt.service.PersonnelService; +import com.dite.znpt.domain.entity.PersonEntity; +import com.dite.znpt.domain.vo.PersonListReq; +import com.dite.znpt.domain.vo.PersonResp; +import com.dite.znpt.service.PersonService; import com.dite.znpt.mapper.PersonnelMapper; import org.springframework.stereotype.Service; import cn.hutool.core.collection.CollUtil; @@ -20,20 +20,20 @@ import java.util.List; */ @Service @RequiredArgsConstructor -public class PersonnelServiceImpl extends ServiceImpl implements PersonnelService { +public class PersonServiceImpl extends ServiceImpl implements PersonService { /** * 功能描述:查询人员信息列表 * * @param personnelReq 人员信息信息 - * @return {@link List }<{@link PersonnelResp }> + * @return {@link List }<{@link PersonResp }> * @author huise23 * @date 2025/04/11 23:17 **/ @Override - public List selectList(PersonnelListReq personnelReq) { + public List selectList(PersonListReq personnelReq) { PageUtil.startPage(); - List personnelList= this.baseMapper.queryBySelective(personnelReq); + List personnelList= this.baseMapper.queryBySelective(personnelReq); personnelList.forEach(resp -> { }); @@ -44,17 +44,17 @@ public class PersonnelServiceImpl extends ServiceImpl list = selectList(personnelReq); - return list.isEmpty() ? CollUtil.getFirst(list) : new PersonnelResp(); + List list = selectList(personnelReq); + return list.isEmpty() ? CollUtil.getFirst(list) : new PersonResp(); } /** @@ -65,7 +65,7 @@ public class PersonnelServiceImpl extends ServiceImpl implements ProjectService { + @Resource + private PersonService personService; /** * 功能描述:查询项目信息列表 * - * @param projectReq 项目信息信息 + * @param req 项目信息信息 * @return {@link List }<{@link ProjectResp }> * @author huise23 * @date 2025/04/11 23:17 **/ @Override - public List page(ProjectListReq projectReq) { + public List page(ProjectListReq req) { PageUtil.startPage(); - List projectList= this.baseMapper.queryBySelective(projectReq); - projectList.forEach(resp -> { - - }); - return null; + return this.list(req); } @Override - public List list(ProjectListReq projectReq) { - List projectList= this.baseMapper.queryBySelective(projectReq); - projectList.forEach(resp -> { - + public List list(ProjectListReq req) { + List list= this.baseMapper.queryBySelective(req); + list.forEach(resp -> { + resp.setStatusLabel(ProjectStatusEnum.getDescByCode(resp.getStatus())); }); - return null; + return list; } /** @@ -62,8 +73,35 @@ public class ProjectServiceImpl extends ServiceImpl personIds = new ArrayList<>(); + if(StrUtil.isNotEmpty(resp.getAuditorId())){ + personIds.add(resp.getAuditorId()); + } + if(StrUtil.isNotEmpty(resp.getQualityOfficerId())){ + personIds.add(resp.getQualityOfficerId()); + } + if(StrUtil.isNotEmpty(resp.getConstructionTeamLeaderId())){ + personIds.add(resp.getConstructionTeamLeaderId()); + } + if(StrUtil.isNotEmpty(resp.getProjectManagerId())){ + personIds.add(resp.getProjectManagerId()); + } + if(CollUtil.isNotEmpty(personIds)){ + Map personIdMap = personService.listByIds(personIds).stream().collect(Collectors.toMap(k->k.getPersonId(), Function.identity())); + if(CollUtil.isNotEmpty(personIdMap)){ + resp.setAuditorName(personIdMap.containsKey(resp.getAuditorId()) ? personIdMap.get(resp.getAuditorId()).getName() : null); + resp.setProjectManagerName(personIdMap.containsKey(resp.getProjectManagerId()) ? personIdMap.get(resp.getProjectManagerId()).getName() : null); + resp.setConstructionTeamLeaderName(personIdMap.containsKey(resp.getConstructionTeamLeaderId()) ? personIdMap.get(resp.getConstructionTeamLeaderId()).getName() : null); + resp.setQualityOfficerName(personIdMap.containsKey(resp.getQualityOfficerId()) ? personIdMap.get(resp.getQualityOfficerId()).getName() : null); + } + } + return resp; } /** @@ -76,8 +114,8 @@ public class ProjectServiceImpl extends ServiceImpl - select from personnel a diff --git a/core/src/main/resources/mapper/ProjectMapper.xml b/core/src/main/resources/mapper/ProjectMapper.xml index d3b28cc..76d66a5 100644 --- a/core/src/main/resources/mapper/ProjectMapper.xml +++ b/core/src/main/resources/mapper/ProjectMapper.xml @@ -2,42 +2,32 @@ - - a.project_id, a.project_name, a.farm_name, a.farm_address, - a.method_id, a.scale, a.turbine_model, a.status - - + SELECT + prj.project_id, prj.project_name, prj.farm_name, prj.status, prj.cover_url, prj.farm_address, prj.client, prj.client_contact, prj.client_phone, prj.inspection_unit, + prj.inspection_contact, prj.inspection_phone, prj.scale, prj.turbine_model, prj.project_manager_id, pm.name AS project_manager_name, prj.construction_person_id, prj.construction_person_name , prj.create_time + FROM project prj + LEFT JOIN person pm ON pm.person_id = prj.project_manager_id - -# and (a.TODO like concat('%', #{keyword,jdbcType=VARCHAR}, '%') or a.TODO like concat('%', #{keyword,jdbcType=VARCHAR}, '%')) - - - and a.project_id like concat ('%', #{projectId}, '%') - - and a.project_name like concat ('%', #{projectName}, '%') + AND prj.project_name LIKE concat ('%', #{projectName}, '%') - and a.farm_name like concat ('%', #{farmName}, '%') + AND prj.farm_name LIKE concat ('%', #{farmName}, '%') - and a.farm_address like concat ('%', #{farmAddress}, '%') + AND prj.farm_address LIKE concat ('%', #{farmAddress}, '%') - - and a.method_id like concat ('%', #{methodId}, '%') - - - and a.scale like concat ('%', #{scale}, '%') - - - and a.turbine_model like concat ('%', #{turbineModel}, '%') + + AND prj.client LIKE concat ('%', #{client}, '%') - and a.status like concat ('%', #{status}, '%') + AND prj.status = #{status} + + + AND prj.create_time BETWEEN #{createDateBegin} AND #{createDateEnd} diff --git a/web/src/main/java/com/dite/znpt/web/controller/PersonnelController.java b/web/src/main/java/com/dite/znpt/web/controller/PersonController.java similarity index 63% rename from web/src/main/java/com/dite/znpt/web/controller/PersonnelController.java rename to web/src/main/java/com/dite/znpt/web/controller/PersonController.java index 6b83171..f1d82f8 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/PersonnelController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/PersonController.java @@ -2,10 +2,10 @@ package com.dite.znpt.web.controller; import com.dite.znpt.domain.Constants; -import com.dite.znpt.domain.vo.PersonnelListReq; -import com.dite.znpt.domain.vo.PersonnelResp; -import com.dite.znpt.domain.entity.PersonnelEntity; -import com.dite.znpt.service.PersonnelService; +import com.dite.znpt.domain.vo.PersonListReq; +import com.dite.znpt.domain.vo.PersonResp; +import com.dite.znpt.domain.entity.PersonEntity; +import com.dite.znpt.service.PersonService; import com.dite.znpt.domain.Result; import com.dite.znpt.domain.PageResult; import com.pig4cloud.plugin.excel.annotation.RequestExcel; @@ -25,54 +25,54 @@ import java.util.List; */ @Api(tags = "人员信息") @RestController -@RequestMapping("/personnel") -public class PersonnelController { +@RequestMapping("/person") +public class PersonController { @Resource - private PersonnelService personnelService; + private PersonService personService; @ApiOperation(value = "获取人员信息列表", httpMethod = "GET") @GetMapping("/list") - public PageResult list(PersonnelListReq personnelReq) { - return PageResult.ok(personnelService.selectList(personnelReq)); + public PageResult list(PersonListReq personnelReq) { + return PageResult.ok(personService.selectList(personnelReq)); } @ApiOperation(value = "根据人员信息Id获取详细信息", httpMethod = "GET") @GetMapping("/{personId}") - public Result getInfo(@PathVariable String personId) { - return Result.ok(personnelService.selectById(personId)); + public Result getInfo(@PathVariable String personId) { + return Result.ok(personService.selectById(personId)); } @ApiOperation(value = "新增人员信息", httpMethod = "POST") @PostMapping - public Result add(@RequestBody PersonnelEntity personnel) { - personnelService.saveData(personnel); + public Result add(@RequestBody PersonEntity personnel) { + personService.saveData(personnel); return Result.ok(); } @ApiOperation(value = "修改人员信息", httpMethod = "PUT") @PutMapping - public Result edit(@RequestBody PersonnelEntity personnel) { - personnelService.updateData(personnel); + public Result edit(@RequestBody PersonEntity personnel) { + personService.updateData(personnel); return Result.ok(); } @ApiOperation(value = "删除人员信息", httpMethod = "DELETE") @DeleteMapping("/{personId}") public Result remove(@PathVariable String personId) { - personnelService.deleteById(personId); + personService.deleteById(personId); return Result.ok(); } @ApiOperation(value = "导出人员信息", httpMethod = "GET") @GetMapping("/export") @ResponseExcel(name = "人员信息") - public List export(PersonnelListReq personnelReq) { - return personnelService.selectList(personnelReq); + public List export(PersonListReq personnelReq) { + return personService.selectList(personnelReq); } @ApiOperation(value = "导入人员信息", httpMethod = "POST") @PostMapping("/import") - public Result importData(@RequestExcel List dataList, BindingResult bindingResult) { + public Result importData(@RequestExcel List dataList, BindingResult bindingResult) { // JSR 303 校验通用校验获取失败的数据 List errorMessageList = (List) bindingResult.getTarget(); if (errorMessageList != null && !errorMessageList.isEmpty()) { diff --git a/web/src/main/java/com/dite/znpt/web/controller/ProjectController.java b/web/src/main/java/com/dite/znpt/web/controller/ProjectController.java index 7061609..182e0b1 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/ProjectController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/ProjectController.java @@ -32,12 +32,18 @@ public class ProjectController { @Resource private ProjectService projectService; - @ApiOperation(value = "获取项目信息列表", httpMethod = "GET") + @ApiOperation(value = "分页查询项目信息列表", httpMethod = "GET") @GetMapping("/page") - public PageResult page(@RequestBody ProjectListReq req) { + public PageResult page(ProjectListReq req) { return PageResult.ok(projectService.page(req)); } + @ApiOperation(value = "查询项目信息列表", httpMethod = "GET") + @GetMapping("/list") + public Result> list(ProjectListReq req) { + return Result.ok(projectService.list(req)); + } + @ApiOperation(value = "查询项目信息详细信息", httpMethod = "GET") @GetMapping("/detail/{projectId}") public Result detail(@PathVariable String projectId) { @@ -65,14 +71,14 @@ public class ProjectController { return Result.ok(); } - @ApiOperation(value = "导出项目信息", httpMethod = "GET") + @ApiOperation(value = "导出项目信息-需求待明确", httpMethod = "GET") @GetMapping("/export") @ResponseExcel(name = "项目信息") public List export(ProjectListReq req) { return null; } - @ApiOperation(value = "导入项目信息", httpMethod = "POST") + @ApiOperation(value = "导入项目信息-需求待明确", httpMethod = "POST") @PostMapping("/import") public Result importData(@RequestExcel List dataList, BindingResult bindingResult) { // JSR 303 校验通用校验获取失败的数据 diff --git a/web/src/main/resources/application-dev.yml b/web/src/main/resources/application-dev.yml index f4933c6..e2663b3 100644 --- a/web/src/main/resources/application-dev.yml +++ b/web/src/main/resources/application-dev.yml @@ -84,7 +84,7 @@ spring: sip-config: name: 信令服务 - ip: 192.168.0.207 + ip: 192.168.0.112 port: 1074 charset: gb2312 domain: 3402000000 @@ -100,7 +100,7 @@ zlm-config: # 公网ip publicHost: # 接口ip - apiHost: 192.168.0.207 + apiHost: 192.168.0.112 # 接口端口 apiPort: 8080 # 密钥 @@ -108,7 +108,7 @@ zlm-config: # 流id前缀 streamPrefix: # rtp ip - rtpHost: 192.168.0.207 + rtpHost: 192.168.0.112 # rtp 端口 rtpPort: 8080 # 动态端口起始值 From 47a3e7e76422cd1dd40396a3a3077d5c973384a2 Mon Sep 17 00:00:00 2001 From: gaoxiong Date: Tue, 6 May 2025 22:37:02 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=97=B6=E5=85=A5=E5=8F=82=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dite/znpt/web/controller/DefectController.java | 4 ++-- .../java/com/dite/znpt/web/controller/ImageController.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/web/src/main/java/com/dite/znpt/web/controller/DefectController.java b/web/src/main/java/com/dite/znpt/web/controller/DefectController.java index 1654703..67e5c19 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/DefectController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/DefectController.java @@ -33,13 +33,13 @@ public class DefectController { @ApiOperation(value = "分页查询缺陷记录列表", httpMethod = "GET") @GetMapping("/page") - public PageResult page(@RequestBody DefectListReq req) { + public PageResult page(DefectListReq req) { return PageResult.ok(defectService.page(req)); } @ApiOperation(value = "查询缺陷记录列表", httpMethod = "GET") @GetMapping("/list") - public Result> list(@RequestBody DefectListReq req) { + public Result> list(DefectListReq req) { return Result.ok(defectService.list(req)); } diff --git a/web/src/main/java/com/dite/znpt/web/controller/ImageController.java b/web/src/main/java/com/dite/znpt/web/controller/ImageController.java index 773713f..609b0c9 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/ImageController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/ImageController.java @@ -32,13 +32,13 @@ public class ImageController { @ApiOperation(value = "分页查询图像列表", httpMethod = "GET") @GetMapping("/page") - public PageResult page(@RequestBody ImageListReq req) { + public PageResult page(ImageListReq req) { return PageResult.ok(imageService.page(req)); } @ApiOperation(value = "查询图像列表", httpMethod = "GET") @GetMapping("/list") - public Result> list(@RequestBody ImageListReq req){ + public Result> list(ImageListReq req){ return Result.ok(imageService.list(req)); } From bd28cd577a3027d1e0ae03ebf77267f5bbd433b9 Mon Sep 17 00:00:00 2001 From: gaoxiong Date: Thu, 8 May 2025 00:16:08 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=9C=BA=E7=BB=84=E5=92=8C=E9=83=A8?= =?UTF-8?q?=E4=BB=B6=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=9070%?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dite/znpt/constant/Message.java | 2 + .../java/com/dite/znpt/converts/Converts.java | 13 +- .../dite/znpt/domain/entity/PartEntity.java | 17 +- .../znpt/domain/entity/TurbineEntity.java | 17 +- .../com/dite/znpt/domain/vo/PartListReq.java | 24 +-- .../com/dite/znpt/domain/vo/PartListResp.java | 48 ++++++ .../java/com/dite/znpt/domain/vo/PartReq.java | 42 +++++ .../com/dite/znpt/domain/vo/PartResp.java | 50 +++++- .../dite/znpt/domain/vo/TurbineInfoResp.java | 25 +++ .../dite/znpt/domain/vo/TurbineListReq.java | 18 +-- .../dite/znpt/domain/vo/TurbineListResp.java | 57 +++++++ .../com/dite/znpt/domain/vo/TurbineReq.java | 45 ++++++ .../com/dite/znpt/domain/vo/TurbineResp.java | 67 ++++---- .../com/dite/znpt/enums/PartTypeEnum.java | 53 +++++++ .../java/com/dite/znpt/mapper/PartMapper.java | 3 +- .../com/dite/znpt/mapper/TurbineMapper.java | 8 +- .../com/dite/znpt/service/PartService.java | 38 ++++- .../com/dite/znpt/service/TurbineService.java | 73 +++++++-- .../znpt/service/impl/PartServiceImpl.java | 119 ++++++++++---- .../znpt/service/impl/TurbineServiceImpl.java | 149 ++++++++++++++---- core/src/main/resources/mapper/PartMapper.xml | 43 ++--- .../main/resources/mapper/TurbineMapper.xml | 91 ++++++++--- .../znpt/web/controller/PartController.java | 40 +++-- .../web/controller/TurbineController.java | 73 +++++---- 24 files changed, 834 insertions(+), 281 deletions(-) create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/PartListResp.java create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/PartReq.java create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/TurbineInfoResp.java create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/TurbineListResp.java create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/TurbineReq.java create mode 100644 core/src/main/java/com/dite/znpt/enums/PartTypeEnum.java diff --git a/core/src/main/java/com/dite/znpt/constant/Message.java b/core/src/main/java/com/dite/znpt/constant/Message.java index 6f5babc..f1ed7a3 100644 --- a/core/src/main/java/com/dite/znpt/constant/Message.java +++ b/core/src/main/java/com/dite/znpt/constant/Message.java @@ -17,4 +17,6 @@ public class Message implements Serializable { public static final String IMAGE_ID_IS_NOT_EXIST = "图像id不存在"; public static final String DEFECT_ID_IS_NOT_EXIST = "缺陷id不存在"; public static final String PROJECT_ID_IS_NOT_EXIST = "项目id不存在"; + public static final String TURBINE_ID_IS_NOT_EXIST = "机组id不存在"; + public static final String PART_ID_IS_NOT_EXIST = "部件id不存在"; } diff --git a/core/src/main/java/com/dite/znpt/converts/Converts.java b/core/src/main/java/com/dite/znpt/converts/Converts.java index d3c3905..3998a5d 100644 --- a/core/src/main/java/com/dite/znpt/converts/Converts.java +++ b/core/src/main/java/com/dite/znpt/converts/Converts.java @@ -1,9 +1,6 @@ package com.dite.znpt.converts; -import com.dite.znpt.domain.entity.DefectEntity; -import com.dite.znpt.domain.entity.ImageCollectEntity; -import com.dite.znpt.domain.entity.ImageEntity; -import com.dite.znpt.domain.entity.ProjectEntity; +import com.dite.znpt.domain.entity.*; import com.dite.znpt.domain.vo.*; import org.mapstruct.Mapper; import org.mapstruct.NullValuePropertyMappingStrategy; @@ -31,4 +28,12 @@ public interface Converts { ProjectResp toProjectResp(ProjectEntity entity); ProjectEntity toProjectEntity(ProjectReq req); + + TurbineEntity toTurbineEntity(TurbineReq req); + + TurbineResp toTurbineResp(TurbineEntity entity); + + PartEntity toPartEntity(PartReq req); + + PartResp toPartResp(PartEntity entity); } diff --git a/core/src/main/java/com/dite/znpt/domain/entity/PartEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/PartEntity.java index 032b56c..f602cbf 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/PartEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/PartEntity.java @@ -28,11 +28,6 @@ public class PartEntity extends AuditableEntity implements Serializable { @TableId(value = "part_id", type = IdType.ASSIGN_UUID) private String partId; - @ExcelProperty("项目id") - @ApiModelProperty("项目id") - @TableField("project_id") - private String projectId; - @ExcelProperty("机组id") @ApiModelProperty("机组id") @TableField("turbine_id") @@ -48,8 +43,8 @@ public class PartEntity extends AuditableEntity implements Serializable { @TableField("part_code") private String partCode; - @ExcelProperty("类型,字典part_type") - @ApiModelProperty("类型,字典part_type") + @ExcelProperty("类型,枚举PartTypeEnum") + @ApiModelProperty("类型,枚举PartTypeEnum") @TableField("part_type") private String partType; @@ -60,12 +55,12 @@ public class PartEntity extends AuditableEntity implements Serializable { @ExcelProperty("厂商") @ApiModelProperty("厂商") - @TableField("manufacturer") - private String manufacturer; + @TableField("part_manufacturer") + private String partManufacturer; @ExcelProperty("型号") @ApiModelProperty("型号") - @TableField("model") - private String model; + @TableField("part_model") + private String partModel; } diff --git a/core/src/main/java/com/dite/znpt/domain/entity/TurbineEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/TurbineEntity.java index 2be3ef6..4be4628 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/TurbineEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/TurbineEntity.java @@ -38,6 +38,11 @@ public class TurbineEntity extends AuditableEntity implements Serializable { @TableField("turbine_name") private String turbineName; + @ExcelProperty("机组编码") + @ApiModelProperty("机组编码") + @TableField("turbine_code") + private String turbineCode; + @ExcelProperty("机组描述") @ApiModelProperty("机组描述") @TableField("turbine_desc") @@ -45,17 +50,17 @@ public class TurbineEntity extends AuditableEntity implements Serializable { @ExcelProperty("机组厂商") @ApiModelProperty("机组厂商") - @TableField("manufacturer") - private String manufacturer; + @TableField("turbine_manufacturer") + private String turbineManufacturer; @ExcelProperty("机组型号") @ApiModelProperty("机组型号") - @TableField("model") - private String model; + @TableField("turbine_model") + private String turbineModel; @ApiModelProperty("封面图") - @TableField("cover_url") - private String coverUrl; + @TableField("turbine_cover_url") + private String turbineCoverUrl; @ApiModelProperty("状态:0待施工,1施工中,2已完工,3已审核,4已验收") @TableField("status") diff --git a/core/src/main/java/com/dite/znpt/domain/vo/PartListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/PartListReq.java index 8f69872..d209d6d 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/PartListReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/PartListReq.java @@ -12,7 +12,7 @@ import lombok.Data; * @Description: 请求实体 */ @Data -@ApiModel("列表请求实体") +@ApiModel("部件列表请求实体") public class PartListReq implements Serializable { private static final long serialVersionUID = 118135700439578757L; @@ -20,32 +20,20 @@ public class PartListReq implements Serializable { @ApiModelProperty("查询关键字") private String keyword; - @ApiModelProperty("Id") - private String partId; - - @ApiModelProperty("项目id") + @ApiModelProperty(name = "项目id", required = true) private String projectId; - @ApiModelProperty("机组id") + @ApiModelProperty(name = "机组id", required = true) private String turbineId; - @ApiModelProperty("名称") - private String partName; - - @ApiModelProperty("编号") - private String partCode; - - @ApiModelProperty("类型,字典part_type") + @ApiModelProperty("类型,枚举PartTypeEnum") private String partType; - @ApiModelProperty("描述") - private String partDesc; - @ApiModelProperty("厂商") - private String manufacturer; + private String partManufacturer; @ApiModelProperty("型号") - private String model; + private String partModel; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/PartListResp.java b/core/src/main/java/com/dite/znpt/domain/vo/PartListResp.java new file mode 100644 index 0000000..84bd689 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/PartListResp.java @@ -0,0 +1,48 @@ +package com.dite.znpt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @Author: gaoxiong + * @Date: 2025/5/7 21:50 + * @Description: + */ +@Data +@ApiModel("部件列表响应实体") +public class PartListResp implements Serializable { + + @Serial + private static final long serialVersionUID = -8081226536055269084L; + + @ApiModelProperty("部件id") + private String partId; + + @ApiModelProperty("项目id") + private String projectId; + + @ApiModelProperty("项目名称") + private String projectName; + + @ApiModelProperty("机组id") + private String turbineId; + + @ApiModelProperty("机组名称") + private String turbineName; + + @ApiModelProperty("名称") + private String partName; + + @ApiModelProperty("编号") + private String partCode; + + @ApiModelProperty("类型,枚举PartTypeEnum") + private String partType; + + @ApiModelProperty("类型,枚举PartTypeEnum") + private String partTypeLabel; +} diff --git a/core/src/main/java/com/dite/znpt/domain/vo/PartReq.java b/core/src/main/java/com/dite/znpt/domain/vo/PartReq.java new file mode 100644 index 0000000..7357675 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/PartReq.java @@ -0,0 +1,42 @@ +package com.dite.znpt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @Author: gaoxiong + * @Date: 2025/5/7 21:51 + * @Description: + */ +@Data +@ApiModel("部件请求实体") +public class PartReq implements Serializable { + + @Serial + private static final long serialVersionUID = -585044340118904985L; + + @ApiModelProperty("机组id") + private String turbineId; + + @ApiModelProperty("名称") + private String partName; + + @ApiModelProperty("编号") + private String partCode; + + @ApiModelProperty("类型,枚举PartTypeEnum") + private String partType; + + @ApiModelProperty("描述") + private String partDesc; + + @ApiModelProperty("厂商") + private String PartManufacturer; + + @ApiModelProperty("型号") + private String PartModel; +} diff --git a/core/src/main/java/com/dite/znpt/domain/vo/PartResp.java b/core/src/main/java/com/dite/znpt/domain/vo/PartResp.java index 92a5f7b..0112d0b 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/PartResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/PartResp.java @@ -1,9 +1,11 @@ package com.dite.znpt.domain.vo; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.EqualsAndHashCode; -import com.dite.znpt.domain.entity.PartEntity; + +import java.io.Serial; +import java.io.Serializable; /** * @author huise23 @@ -11,8 +13,46 @@ import com.dite.znpt.domain.entity.PartEntity; * @Description: 响应实体 */ @Data -@EqualsAndHashCode(callSuper = true) -@ApiModel("响应实体") -public class PartResp extends PartEntity { +@ApiModel("部件响应实体") +public class PartResp implements Serializable { + + @Serial + private static final long serialVersionUID = -4457194361289992312L; + + @ApiModelProperty("部件id") + private String partId; + + @ApiModelProperty("项目id") + private String projectId; + + @ApiModelProperty("机组") + private String projectName; + + @ApiModelProperty("机组id") + private String turbineId; + + @ApiModelProperty("机组名称") + private String turbineName; + + @ApiModelProperty("名称") + private String partName; + + @ApiModelProperty("编号") + private String partCode; + + @ApiModelProperty("类型,枚举PartTypeEnum") + private String partType; + + @ApiModelProperty("类型描述") + private String partTypeLabel; + + @ApiModelProperty("描述") + private String partDesc; + + @ApiModelProperty("厂商") + private String partManufacturer; + + @ApiModelProperty("型号") + private String partModel; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TurbineInfoResp.java b/core/src/main/java/com/dite/znpt/domain/vo/TurbineInfoResp.java new file mode 100644 index 0000000..4a4a668 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/TurbineInfoResp.java @@ -0,0 +1,25 @@ +package com.dite.znpt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * @Author: gaoxiong + * @Date: 2025/5/7 22:17 + * @Description: + */ +@Data +@ApiModel("机组明细响应实体") +public class TurbineInfoResp extends TurbineResp implements Serializable { + + @Serial + private static final long serialVersionUID = 5493448541358665068L; + + @ApiModelProperty("部件信息") + private List partRespList; +} diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TurbineListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/TurbineListReq.java index 3fd3947..ddffeaa 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/TurbineListReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/TurbineListReq.java @@ -12,31 +12,25 @@ import lombok.Data; * @Description: 机组-项目关联请求实体 */ @Data -@ApiModel("机组-项目关联列表请求实体") +@ApiModel("机组列表请求实体") public class TurbineListReq implements Serializable { private static final long serialVersionUID = 141552424945497346L; - @ApiModelProperty("查询关键字") - private String keyword; - - @ApiModelProperty("机组-项目关联Id") - private String turbineId; - - @ApiModelProperty("项目id") + @ApiModelProperty(name = "项目id", required = true) private String projectId; - @ApiModelProperty("机组名称") - private String turbineName; + @ApiModelProperty("查询关键字") + private String keyword; @ApiModelProperty("机组描述") private String turbineDesc; @ApiModelProperty("机组厂商") - private String manufacturer; + private String turbineManufacturer; @ApiModelProperty("机组型号") - private String model; + private String turbineModel; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TurbineListResp.java b/core/src/main/java/com/dite/znpt/domain/vo/TurbineListResp.java new file mode 100644 index 0000000..8c5af4f --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/TurbineListResp.java @@ -0,0 +1,57 @@ +package com.dite.znpt.domain.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.dite.znpt.domain.entity.PartEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.dite.znpt.domain.entity.TurbineEntity; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * @author huise23 + * @date 2025/04/11 23:17 + * @Description: 机组-项目关联响应实体 + */ +@Data +@ApiModel("机组列表响应实体") +public class TurbineListResp implements Serializable { + + @Serial + private static final long serialVersionUID = 8391079826638511248L; + + @ApiModelProperty("机组号") + private String turbineId; + + @ApiModelProperty("项目id") + private String projectId; + + @ApiModelProperty("项目名称") + private String projectName; + + @ApiModelProperty("机组名称") + private String turbineName; + + @ApiModelProperty("机组编码") + private String turbineCode; + + @ApiModelProperty("机组描述") + private String turbineDesc; + + @ApiModelProperty("机组厂商") + private String turbineManufacturer; + + @ApiModelProperty("机组型号") + private String turbineModel; + + @ApiModelProperty("封面图") + private String turbineCoverUrl; +} + diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TurbineReq.java b/core/src/main/java/com/dite/znpt/domain/vo/TurbineReq.java new file mode 100644 index 0000000..6d3e107 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/TurbineReq.java @@ -0,0 +1,45 @@ +package com.dite.znpt.domain.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @Author: gaoxiong + * @Date: 2025/5/7 21:44 + * @Description: + */ +@Data +@ApiModel("机组请求实体") +public class TurbineReq implements Serializable { + + @Serial + private static final long serialVersionUID = 115092978850852080L; + + @ApiModelProperty("项目id") + private String projectId; + + @ApiModelProperty("机组名称") + private String turbineName; + + @ApiModelProperty("机组编码") + private String turbineCode; + + @ApiModelProperty("机组描述") + private String turbineDesc; + + @ApiModelProperty("机组厂商") + private String turbineManufacturer; + + @ApiModelProperty("机组型号") + private String turbineModel; + + @ApiModelProperty("封面图") + private String turbineCoverUrl; + +} diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TurbineResp.java b/core/src/main/java/com/dite/znpt/domain/vo/TurbineResp.java index ebc5c48..beb18d9 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/TurbineResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/TurbineResp.java @@ -1,61 +1,48 @@ package com.dite.znpt.domain.vo; -import com.dite.znpt.domain.entity.PartEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.EqualsAndHashCode; -import com.dite.znpt.domain.entity.TurbineEntity; -import java.util.List; +import java.io.Serial; +import java.io.Serializable; /** - * @author huise23 - * @date 2025/04/11 23:17 - * @Description: 机组-项目关联响应实体 + * @Author: gaoxiong + * @Date: 2025/5/7 21:44 + * @Description: */ @Data -@EqualsAndHashCode(callSuper = true) -@ApiModel("机组-项目关联响应实体") -public class TurbineResp extends TurbineEntity { +@ApiModel("机组响应实体") +public class TurbineResp implements Serializable { + @Serial + private static final long serialVersionUID = -1403719853347580858L; - @ApiModelProperty("部件") - private List partsList; + @ApiModelProperty("机组号") + private String turbineId; - @ApiModelProperty("内部工作状态, -1不存在,0未开始、1开始施工、2已提交报告、3审核通过") - private String antiThunderWorkStatus; + @ApiModelProperty("项目id") + private String projectId; - @ApiModelProperty("外部工作状态, -1不存在,0未开始、1开始施工、2已提交报告、3审核通过") - private String inWorkStatus; + @ApiModelProperty("项目名称") + private String projectName; - @ApiModelProperty("防雷工作状态, -1不存在,0未开始、1开始施工、2已提交报告、3审核通过") - private String outWorkStatus; + @ApiModelProperty("机组名称") + private String turbineName; - @ApiModelProperty("数据报告工作状态, -1不存在,0未开始、1开始施工、2已提交报告、3审核通过") - private String summaryWorkStatus; + @ApiModelProperty("机组编码") + private String turbineCode; - @ApiModelProperty("内部工作安全员审核状态, -1不存在,0未审核、1审核通过") - private String antiThunderWorkSafetyStatus; + @ApiModelProperty("机组描述") + private String turbineDesc; - @ApiModelProperty("外部工作安全员审核状态, -1不存在,0未审核、1审核通过") - private String inWorkSafetyStatus; + @ApiModelProperty("机组厂商") + private String turbineManufacturer; - @ApiModelProperty("防雷工作安全员审核状态, -1不存在,0未审核、1审核通过") - private String outWorkSafetyStatus; + @ApiModelProperty("机组型号") + private String turbineModel; - @ApiModelProperty("内部工作质量员审核状态, -1不存在,0未审核、1审核通过") - private String antiThunderWorkQualityStatus; + @ApiModelProperty("封面图") + private String turbineCoverUrl; - @ApiModelProperty("外部工作质量员审核状态, -1不存在,0未审核、1审核通过") - private String inWorkQualityStatus; - - @ApiModelProperty("防雷工作质量员审核状态, -1不存在,0未审核、1审核通过") - private String outWorkQualityStatus; - - @ApiModelProperty("防雷是否不合格,1不合格,0合格") - private Boolean lightningUnqualified; - - @ApiModelProperty("来源, app,backend后台,不传参默认后台") - private String source; } - diff --git a/core/src/main/java/com/dite/znpt/enums/PartTypeEnum.java b/core/src/main/java/com/dite/znpt/enums/PartTypeEnum.java new file mode 100644 index 0000000..3f7d86a --- /dev/null +++ b/core/src/main/java/com/dite/znpt/enums/PartTypeEnum.java @@ -0,0 +1,53 @@ +package com.dite.znpt.enums; + +import cn.hutool.json.JSONObject; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: gaoxiong + * @Date: 2025/5/7 21:22 + * @Description: + */ +@Getter +public enum PartTypeEnum { + CABIN("CABIN", "机舱"), + VANE_1("VANE-1", "叶片1"), + VANE_2("VANE-2", "叶片2"), + VANE_3("VANE-3", "叶片3"), + TOWER("TOWER", "塔筒"); + + private final String code; + private final String desc; + + PartTypeEnum(String code, String desc){ + this.code = code; + this.desc = desc; + } + + public static PartTypeEnum getByCode(String code){ + for (PartTypeEnum e : PartTypeEnum.values() ) { + if(e.code.equals(code)){ + return e; + } + } + return null; + } + + public static String getDescByCode(String code){ + PartTypeEnum e = getByCode(code); + return null == e ? null : e.desc; + } + + public static List listAll(){ + List list = new ArrayList<>(PartTypeEnum.values().length); + for (PartTypeEnum e : PartTypeEnum.values() ) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set(e.code, e.desc); + list.add(jsonObject); + } + return list; + } +} diff --git a/core/src/main/java/com/dite/znpt/mapper/PartMapper.java b/core/src/main/java/com/dite/znpt/mapper/PartMapper.java index 5027739..efcb3fa 100644 --- a/core/src/main/java/com/dite/znpt/mapper/PartMapper.java +++ b/core/src/main/java/com/dite/znpt/mapper/PartMapper.java @@ -3,6 +3,7 @@ package com.dite.znpt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dite.znpt.domain.entity.PartEntity; import com.dite.znpt.domain.vo.PartListReq; +import com.dite.znpt.domain.vo.PartListResp; import com.dite.znpt.domain.vo.PartResp; import org.apache.ibatis.annotations.Param; @@ -14,6 +15,6 @@ import java.util.List; * @Description: 表数据库访问层 */ public interface PartMapper extends BaseMapper { - List queryBySelective(PartListReq partReq); + List queryBySelective(PartListReq partReq); } diff --git a/core/src/main/java/com/dite/znpt/mapper/TurbineMapper.java b/core/src/main/java/com/dite/znpt/mapper/TurbineMapper.java index c4cb3be..e834f23 100644 --- a/core/src/main/java/com/dite/znpt/mapper/TurbineMapper.java +++ b/core/src/main/java/com/dite/znpt/mapper/TurbineMapper.java @@ -2,9 +2,9 @@ package com.dite.znpt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dite.znpt.domain.entity.TurbineEntity; +import com.dite.znpt.domain.vo.TurbineInfoResp; import com.dite.znpt.domain.vo.TurbineListReq; -import com.dite.znpt.domain.vo.TurbineResp; -import org.apache.ibatis.annotations.Param; +import com.dite.znpt.domain.vo.TurbineListResp; import java.util.List; @@ -14,6 +14,8 @@ import java.util.List; * @Description: 机组-项目关联表数据库访问层 */ public interface TurbineMapper extends BaseMapper { - List queryBySelective(TurbineListReq turbineReq); + List queryBySelective(TurbineListReq turbineReq); + List listTurbineInfo(TurbineListReq turbineReq); + TurbineInfoResp getTurbineInfo(String turbineId); } diff --git a/core/src/main/java/com/dite/znpt/service/PartService.java b/core/src/main/java/com/dite/znpt/service/PartService.java index 9bbe22f..1c7c4ed 100644 --- a/core/src/main/java/com/dite/znpt/service/PartService.java +++ b/core/src/main/java/com/dite/znpt/service/PartService.java @@ -3,6 +3,8 @@ package com.dite.znpt.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dite.znpt.domain.entity.PartEntity; import com.dite.znpt.domain.vo.PartListReq; +import com.dite.znpt.domain.vo.PartListResp; +import com.dite.znpt.domain.vo.PartReq; import com.dite.znpt.domain.vo.PartResp; import java.util.List; @@ -15,14 +17,24 @@ import java.util.List; public interface PartService extends IService { /** - * 功能描述:查询列表 + * 功能描述:分页查询列表 * * @param partReq - * @return {@link List }<{@link PartEntity }> + * @return {@link List }<{@link PartListResp }> * @author huise23 * @date 2025/04/11 23:17 **/ - List selectList(PartListReq partReq); + List page(PartListReq partReq); + + /** + * 功能描述:查询列表 + * + * @param partReq + * @return {@link List }<{@link PartListResp }> + * @author huise23 + * @date 2025/04/11 23:17 + **/ + List list(PartListReq partReq); /** * 功能描述:查询单条 @@ -32,25 +44,25 @@ public interface PartService extends IService { * @author huise23 * @date 2025/04/11 23:17 **/ - PartResp selectById(String partId); + PartResp detail(String partId); /** * 功能描述:新增 * - * @param part + * @param req * @author huise23 * @date 2025/04/11 23:17 **/ - void saveData(PartEntity part); + void save(PartReq req); /** * 功能描述:更新 * - * @param part + * @param req * @author huise23 * @date 2025/04/11 23:17 **/ - void updateData(PartEntity part); + void update(String partId, PartReq req); /** * 功能描述:删除 @@ -60,5 +72,15 @@ public interface PartService extends IService { * @date 2025/04/11 23:17 **/ void deleteById(String partId); + + /** + * 功能描述:删除 + * + * @param turbineIds 机组id + * @author huise23 + * @date 2025/04/11 23:17 + **/ + void deleteByTurbineIds(List turbineIds); + } diff --git a/core/src/main/java/com/dite/znpt/service/TurbineService.java b/core/src/main/java/com/dite/znpt/service/TurbineService.java index beffffa..4dd8990 100644 --- a/core/src/main/java/com/dite/znpt/service/TurbineService.java +++ b/core/src/main/java/com/dite/znpt/service/TurbineService.java @@ -2,8 +2,7 @@ package com.dite.znpt.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dite.znpt.domain.entity.TurbineEntity; -import com.dite.znpt.domain.vo.TurbineListReq; -import com.dite.znpt.domain.vo.TurbineResp; +import com.dite.znpt.domain.vo.*; import java.util.List; @@ -15,50 +14,90 @@ import java.util.List; public interface TurbineService extends IService { /** - * 功能描述:查询机组-项目关联列表 + * 功能描述:分页查询机组列表 * - * @param turbineReq 机组-项目关联 - * @return {@link List }<{@link TurbineEntity }> + * @param req + * @return {@link List }<{@link TurbineListResp }> * @author huise23 * @date 2025/04/11 23:17 **/ - List selectList(TurbineListReq turbineReq); + List page(TurbineListReq req); /** - * 功能描述:查询单条机组-项目关联 + * 功能描述:查询机组列表 * - * @param turbineId 机组-项目关联Id + * @param req + * @return {@link List }<{@link TurbineListResp }> + * @author huise23 + * @date 2025/04/11 23:17 + **/ + List list(TurbineListReq req); + + /** + * 功能描述:查询机组明细列表 + * + * @param req + * @return {@link List }<{@link TurbineInfoResp }> + * @author huise23 + * @date 2025/04/11 23:17 + **/ + List listInfo(TurbineListReq req); + + /** + * 功能描述:查询指定机组详情 + * + * @param turbineId 机组Id * @return {@link TurbineResp } * @author huise23 * @date 2025/04/11 23:17 **/ - TurbineResp selectById(String turbineId); + TurbineResp detail(String turbineId); /** - * 功能描述:新增机组-项目关联 + * 功能描述:查询指定机组明细内信息 * - * @param turbine 机组-项目关联 + * @param turbineId 机组Id + * @return {@link TurbineListResp } * @author huise23 * @date 2025/04/11 23:17 **/ - void saveData(TurbineEntity turbine); + TurbineInfoResp info(String turbineId); /** - * 功能描述:更新机组-项目关联 + * 功能描述:新增机组 * - * @param turbine 机组-项目关联 + * @param req * @author huise23 * @date 2025/04/11 23:17 **/ - void updateData(TurbineEntity turbine); + void save(TurbineReq req); /** - * 功能描述:删除机组-项目关联 + * 功能描述:更新机组 * - * @param turbineId 机组-项目关联Id + * @param turbineId + * @param req + * @author huise23 + * @date 2025/04/11 23:17 + **/ + void update(String turbineId, TurbineReq req); + + /** + * 功能描述:删除机组 + * + * @param turbineId 机组Id * @author huise23 * @date 2025/04/11 23:17 **/ void deleteById(String turbineId); + + /** + * 功能描述:删除机组 + * + * @param projectId 项目id + * @author huise23 + * @date 2025/04/11 23:17 + **/ + void deleteByProjectId(String projectId); } diff --git a/core/src/main/java/com/dite/znpt/service/impl/PartServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/PartServiceImpl.java index b28b9c4..5f4d64e 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/PartServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/PartServiceImpl.java @@ -1,16 +1,29 @@ package com.dite.znpt.service.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dite.znpt.constant.Message; +import com.dite.znpt.converts.Converts; import com.dite.znpt.domain.entity.PartEntity; +import com.dite.znpt.domain.entity.ProjectEntity; +import com.dite.znpt.domain.entity.TurbineEntity; import com.dite.znpt.domain.vo.PartListReq; +import com.dite.znpt.domain.vo.PartListResp; +import com.dite.znpt.domain.vo.PartReq; import com.dite.znpt.domain.vo.PartResp; -import com.dite.znpt.service.PartService; +import com.dite.znpt.enums.PartTypeEnum; +import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.PartMapper; -import org.springframework.stereotype.Service; -import cn.hutool.core.collection.CollUtil; -import lombok.RequiredArgsConstructor; +import com.dite.znpt.service.PartService; +import com.dite.znpt.service.ProjectService; +import com.dite.znpt.service.TurbineService; import com.dite.znpt.util.PageUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.List; /** @@ -22,22 +35,42 @@ import java.util.List; @RequiredArgsConstructor public class PartServiceImpl extends ServiceImpl implements PartService { + @Resource + private ProjectService projectService; + + @Resource + private TurbineService turbineService; + /** - * 功能描述:查询列表 + * 功能描述:分页查询列表 * - * @param partReq 信息 - * @return {@link List }<{@link PartResp }> + * @param req 信息 + * @return {@link List }<{@link PartListResp }> * @author huise23 * @date 2025/04/11 23:17 **/ @Override - public List selectList(PartListReq partReq) { + public List page(PartListReq req) { PageUtil.startPage(); - List partList= this.baseMapper.queryBySelective(partReq); - partList.forEach(resp -> { - + return this.list(req); + } + + /** + * 功能描述:查询列表 + * + * @param req 信息 + * @return {@link List }<{@link PartListResp }> + * @author huise23 + * @date 2025/04/11 23:17 + **/ + @Override + public List list(PartListReq req) { + PageUtil.startPage(); + List list= this.baseMapper.queryBySelective(req); + list.forEach(resp -> { + resp.setPartTypeLabel(PartTypeEnum.getDescByCode(resp.getPartType())); }); - return partList; + return list; } /** @@ -49,38 +82,55 @@ public class PartServiceImpl extends ServiceImpl impleme * @date 2025/04/11 23:17 **/ @Override - public PartResp selectById(String partId) { - PartListReq partReq = new PartListReq(); - partReq.setPartId(partId); - - List list = selectList(partReq); - return list.isEmpty() ? CollUtil.getFirst(list) : new PartResp(); + public PartResp detail(String partId) { + PartEntity entity = this.baseMapper.selectById(partId); + PartResp resp = Converts.INSTANCE.toPartResp(entity); + if(StrUtil.isNotEmpty(resp.getTurbineId())){ + TurbineEntity turbine = turbineService.getById(resp.getTurbineId()); + if(null != turbine){ + resp.setTurbineId(turbine.getTurbineName()); + if(StrUtil.isNotEmpty(turbine.getProjectId())){ + ProjectEntity project = projectService.getById(turbine.getProjectId()); + if(null != project){ + resp.setProjectName(project.getProjectName()); + } + } + } + } + return resp; } /** * 功能描述:新增 * - * @param part + * @param req * @author huise23 * @date 2025/04/11 23:17 **/ + @Transactional(rollbackFor = Exception.class) @Override - public void saveData(PartEntity part) { -// todo 校验 - save(part); + public void save(PartReq req) { + PartEntity entity = Converts.INSTANCE.toPartEntity(req); + this.save(entity); } /** * 功能描述:更新 * - * @param part + * @param partId + * @param req * @author huise23 * @date 2025/04/11 23:17 **/ + @Transactional(rollbackFor = Exception.class) @Override - public void updateData(PartEntity part) { -// todo 校验 - updateById(part); + public void update(String partId, PartReq req) { + if(null == this.baseMapper.selectById(partId)){ + throw new ServiceException(Message.PART_ID_IS_NOT_EXIST); + } + PartEntity entity = Converts.INSTANCE.toPartEntity(req); + entity.setPartId(partId); + this.updateById(entity); } /** @@ -90,10 +140,25 @@ public class PartServiceImpl extends ServiceImpl impleme * @author huise23 * @date 2025/04/11 23:17 **/ + + @Transactional(rollbackFor = Exception.class) @Override public void deleteById(String partId) { -// todo 校验 removeById(partId); } + /** + * 功能描述:删除 + * + * @param turbineIds 机组id + * @author huise23 + * @date 2025/04/11 23:17 + **/ + @Transactional(rollbackFor = Exception.class) + @Override + public void deleteByTurbineIds(List turbineIds) { + this.baseMapper.delete(Wrappers.lambdaQuery().in(PartEntity::getTurbineId, turbineIds)); + } + + } diff --git a/core/src/main/java/com/dite/znpt/service/impl/TurbineServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/TurbineServiceImpl.java index 024b28d..0ad42e3 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/TurbineServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/TurbineServiceImpl.java @@ -1,17 +1,27 @@ package com.dite.znpt.service.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dite.znpt.constant.Message; +import com.dite.znpt.converts.Converts; +import com.dite.znpt.domain.entity.ProjectEntity; import com.dite.znpt.domain.entity.TurbineEntity; -import com.dite.znpt.domain.vo.TurbineListReq; -import com.dite.znpt.domain.vo.TurbineResp; -import com.dite.znpt.service.TurbineService; +import com.dite.znpt.domain.vo.*; +import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.TurbineMapper; -import org.springframework.stereotype.Service; -import cn.hutool.core.collection.CollUtil; -import lombok.RequiredArgsConstructor; +import com.dite.znpt.service.PartService; +import com.dite.znpt.service.ProjectService; +import com.dite.znpt.service.TurbineService; import com.dite.znpt.util.PageUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * @author huise23 @@ -22,78 +32,147 @@ import java.util.List; @RequiredArgsConstructor public class TurbineServiceImpl extends ServiceImpl implements TurbineService { + @Resource + private ProjectService projectService; + + @Resource + private PartService partService; + /** - * 功能描述:查询机组-项目关联列表 + * 功能描述:分页查询机组列表 * - * @param turbineReq 机组-项目关联信息 - * @return {@link List }<{@link TurbineResp }> + * @param req + * @return {@link List }<{@link TurbineListResp }> * @author huise23 * @date 2025/04/11 23:17 **/ @Override - public List selectList(TurbineListReq turbineReq) { + public List page(TurbineListReq req) { PageUtil.startPage(); - List turbineList= this.baseMapper.queryBySelective(turbineReq); - turbineList.forEach(resp -> { - - }); - return turbineList; + return this.list(req); } /** - * 功能描述:查询单条机组-项目关联 + * 功能描述:查询机组列表 * - * @param turbineId 机组-项目关联Id + * @param req + * @return {@link List }<{@link TurbineEntity }> + * @author huise23 + * @date 2025/04/11 23:17 + **/ + @Override + public List list(TurbineListReq req) { + List list= this.baseMapper.queryBySelective(req); + return list; + } + + /** + * 功能描述:查询机组明细列表 + * + * @param req + * @return {@link List }<{@link TurbineInfoResp }> + * @author huise23 + * @date 2025/04/11 23:17 + **/ + @Override + public List listInfo(TurbineListReq req) { + List list= this.baseMapper.listTurbineInfo(req); + return list; + } + + /** + * 功能描述:查询单条机组 + * + * @param turbineId 机组Id * @return {@link TurbineResp } * @author huise23 * @date 2025/04/11 23:17 **/ @Override - public TurbineResp selectById(String turbineId) { - TurbineListReq turbineReq = new TurbineListReq(); - turbineReq.setTurbineId(turbineId); - - List list = selectList(turbineReq); - return list.isEmpty() ? CollUtil.getFirst(list) : new TurbineResp(); + public TurbineResp detail(String turbineId) { + TurbineEntity entity = this.baseMapper.selectById(turbineId); + TurbineResp resp = Converts.INSTANCE.toTurbineResp(entity); + if(null != resp && StrUtil.isNotEmpty(resp.getProjectId())){ + ProjectEntity project = projectService.getById(resp.getProjectId()); + resp.setProjectName(project.getProjectName()); + } + return resp; } /** - * 功能描述:新增机组-项目关联 + * 功能描述:查询指定机组明细内信息 * - * @param turbine 机组-项目关联 + * @param turbineId 机组Id + * @return {@link TurbineListResp } * @author huise23 * @date 2025/04/11 23:17 **/ @Override - public void saveData(TurbineEntity turbine) { -// todo 校验 - save(turbine); + public TurbineInfoResp info(String turbineId) { + return this.baseMapper.getTurbineInfo(turbineId); } /** - * 功能描述:更新机组-项目关联 + * 功能描述:新增机组 * - * @param turbine 机组-项目关联 + * @param req * @author huise23 * @date 2025/04/11 23:17 **/ + @Transactional(rollbackFor = Exception.class) @Override - public void updateData(TurbineEntity turbine) { -// todo 校验 - updateById(turbine); + public void save(TurbineReq req) { + TurbineEntity entity = Converts.INSTANCE.toTurbineEntity(req); + this.save(entity); } /** - * 功能描述:删除机组-项目关联 + * 功能描述:更新机组 + * + * @param turbineId + * @param req + * @author huise23 + * @date 2025/04/11 23:17 + **/ + @Transactional(rollbackFor = Exception.class) + @Override + public void update(String turbineId, TurbineReq req) { + if(null == this.baseMapper.selectById(turbineId)){ + throw new ServiceException(Message.TURBINE_ID_IS_NOT_EXIST); + } + TurbineEntity entity = Converts.INSTANCE.toTurbineEntity(req); + entity.setTurbineId(turbineId); + this.updateById(entity); + } + + /** + * 功能描述:删除机组 * * @param turbineId 机组-项目关联Id * @author huise23 * @date 2025/04/11 23:17 **/ + @Transactional(rollbackFor = Exception.class) @Override public void deleteById(String turbineId) { -// todo 校验 removeById(turbineId); + partService.deleteByTurbineIds(Arrays.asList(turbineId)); + } + + /** + * 功能描述:删除机组 + * + * @param projectId 项目id + * @author huise23 + * @date 2025/04/11 23:17 + **/ + @Transactional(rollbackFor = Exception.class) + @Override + public void deleteByProjectId(String projectId) { + List turbineList = this.baseMapper.selectList(Wrappers.lambdaQuery().eq(TurbineEntity::getProjectId, projectId)); + List turbineIds = turbineList.stream().map(TurbineEntity::getTurbineId).collect(Collectors.toList()); + this.baseMapper.deleteByIds(turbineIds); + partService.deleteByTurbineIds(turbineIds); } } diff --git a/core/src/main/resources/mapper/PartMapper.xml b/core/src/main/resources/mapper/PartMapper.xml index 3aac7d4..c50f4fa 100644 --- a/core/src/main/resources/mapper/PartMapper.xml +++ b/core/src/main/resources/mapper/PartMapper.xml @@ -2,46 +2,31 @@ - - a.part_id, a.project_id, a.turbine_id, a.part_name, - a.part_code, a.part_type, a.part_desc, a.manufacturer, - a.model - - + SELECT + pa.part_id, t.project_id, pr.project_name, t.turbine_id, t.turbine_name, pa.part_name, pa.part_code, pa.part_type, pa.part_desc + FROM part pa + LEFT JOIN turbine t ON pa.turbine_id = t.turbine_id + LEFT JOIN project pr ON t.project_id = pr.project_id -# and (a.TODO like concat('%', #{keyword,jdbcType=VARCHAR}, '%') or a.TODO like concat('%', #{keyword,jdbcType=VARCHAR}, '%')) - - - and a.part_id like concat ('%', #{partId}, '%') +# and (pa.part_name like concat('%', #{keyword,jdbcType=VARCHAR}, '%') or pa.part_code like concat('%', #{keyword,jdbcType=VARCHAR}, '%')) - and a.project_id like concat ('%', #{projectId}, '%') + and t.project_id = #{projectId} - and a.turbine_id like concat ('%', #{turbineId}, '%') - - - and a.part_name like concat ('%', #{partName}, '%') - - - and a.part_code like concat ('%', #{partCode}, '%') + and t.turbine_id = #{turbineId} - and a.part_type like concat ('%', #{partType}, '%') + and a.part_type = #{partType} - - and a.part_desc like concat ('%', #{partDesc}, '%') + + and a.part_manufacturer like concat ('%', #{partManufacturer}, '%') - - and a.manufacturer like concat ('%', #{manufacturer}, '%') - - - and a.model like concat ('%', #{model}, '%') + + and a.part_model like concat ('%', #{partModel}, '%') diff --git a/core/src/main/resources/mapper/TurbineMapper.xml b/core/src/main/resources/mapper/TurbineMapper.xml index dc23a95..a7b2ab2 100644 --- a/core/src/main/resources/mapper/TurbineMapper.xml +++ b/core/src/main/resources/mapper/TurbineMapper.xml @@ -2,38 +2,89 @@ - - a.turbine_id, a.project_id, a.turbine_name, a.turbine_desc, - a.manufacturer, a.model - - - + SELECT + t.turbine_id, t.project_id, p.project_name, t.turbine_name, t.turbine_code, t.turbine_desc, t.turbine_manufacturer, t.turbine_model, t.turbine_cover_url + FROM turbine t + LEFT JOIN project p ON t.project_id = p.project_id -# and (a.TODO like concat('%', #{keyword,jdbcType=VARCHAR}, '%') or a.TODO like concat('%', #{keyword,jdbcType=VARCHAR}, '%')) - - - and a.turbine_id like concat ('%', #{turbineId}, '%') + and (t.turbine_name like concat('%', #{keyword,jdbcType=VARCHAR}, '%') or t.turbine_code like concat('%', #{keyword,jdbcType=VARCHAR}, '%')) - and a.project_id like concat ('%', #{projectId}, '%') - - - and a.turbine_name like concat ('%', #{turbineName}, '%') + and t.project_id = #{projectId} - and a.turbine_desc like concat ('%', #{turbineDesc}, '%') + and t.turbine_desc like concat ('%', #{turbineDesc}, '%') - and a.manufacturer like concat ('%', #{manufacturer}, '%') + and t.turbine_manufacturer like concat ('%', #{manufacturer}, '%') - and a.model like concat ('%', #{model}, '%') + and t.turbine_model like concat ('%', #{model}, '%') + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/src/main/java/com/dite/znpt/web/controller/PartController.java b/web/src/main/java/com/dite/znpt/web/controller/PartController.java index f46d8a0..f9586f6 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/PartController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/PartController.java @@ -3,6 +3,8 @@ package com.dite.znpt.web.controller; import com.dite.znpt.domain.Constants; import com.dite.znpt.domain.vo.PartListReq; +import com.dite.znpt.domain.vo.PartListResp; +import com.dite.znpt.domain.vo.PartReq; import com.dite.znpt.domain.vo.PartResp; import com.dite.znpt.domain.entity.PartEntity; import com.dite.znpt.service.PartService; @@ -30,29 +32,35 @@ public class PartController { @Resource private PartService partService; - @ApiOperation(value = "获取列表", httpMethod = "GET") + @ApiOperation(value = "分页获取部件列表", httpMethod = "GET") + @GetMapping("/page") + public PageResult page(PartListReq partReq) { + return PageResult.ok(partService.page(partReq)); + } + + @ApiOperation(value = "获取部件列表", httpMethod = "GET") @GetMapping("/list") - public PageResult list(PartListReq partReq) { - return PageResult.ok(partService.selectList(partReq)); + public Result> list(PartListReq partReq) { + return Result.ok(partService.list(partReq)); } @ApiOperation(value = "根据Id获取详细信息", httpMethod = "GET") - @GetMapping("/{partId}") - public Result getInfo(@PathVariable String partId) { - return Result.ok(partService.selectById(partId)); + @GetMapping("/detail/{partId}") + public Result detail(@PathVariable String partId) { + return Result.ok(partService.detail(partId)); } @ApiOperation(value = "新增", httpMethod = "POST") @PostMapping - public Result add(@RequestBody PartEntity part) { - partService.saveData(part); + public Result add(@RequestBody PartReq req) { + partService.save(req); return Result.ok(); } @ApiOperation(value = "修改", httpMethod = "PUT") - @PutMapping - public Result edit(@RequestBody PartEntity part) { - partService.updateData(part); + @PutMapping("/{partId}") + public Result edit(@PathVariable String partId, @RequestBody PartReq req) { + partService.update(partId, req); return Result.ok(); } @@ -63,14 +71,14 @@ public class PartController { return Result.ok(); } - @ApiOperation(value = "导出", httpMethod = "GET") + @ApiOperation(value = "导出部件-需求待明确", httpMethod = "GET") @GetMapping("/export") - @ResponseExcel(name = "") - public List export(PartListReq partReq) { - return partService.selectList(partReq); + @ResponseExcel(name = "部件") + public List export(PartListReq partReq) { + return partService.list(partReq); } - @ApiOperation(value = "导入", httpMethod = "POST") + @ApiOperation(value = "导入部件-需求待明确", httpMethod = "POST") @PostMapping("/import") public Result importData(@RequestExcel List dataList, BindingResult bindingResult) { // JSR 303 校验通用校验获取失败的数据 diff --git a/web/src/main/java/com/dite/znpt/web/controller/TurbineController.java b/web/src/main/java/com/dite/znpt/web/controller/TurbineController.java index 2b970bd..5929d14 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/TurbineController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/TurbineController.java @@ -2,10 +2,8 @@ package com.dite.znpt.web.controller; import com.dite.znpt.domain.Constants; -import com.dite.znpt.domain.vo.TurbineListReq; -import com.dite.znpt.domain.vo.TurbineResp; +import com.dite.znpt.domain.vo.*; import com.dite.znpt.domain.entity.TurbineEntity; -import com.dite.znpt.exception.ServiceException; import com.dite.znpt.service.TurbineService; import com.dite.znpt.domain.Result; import com.dite.znpt.domain.PageResult; @@ -18,61 +16,78 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.validation.Valid; import java.util.List; /** * @author huise23 * @date 2025/04/11 23:17 */ -@Api(tags = "机组-项目关联") +@Api(tags = "机组信息") @RestController @RequestMapping("/turbine") public class TurbineController { @Resource private TurbineService turbineService; - @ApiOperation(value = "获取机组-项目关联列表", httpMethod = "GET") - @GetMapping({"/list", "/getByProjectId"}) - public PageResult list(TurbineListReq turbineReq) { - return PageResult.ok(turbineService.selectList(turbineReq)); + @ApiOperation(value = "分页查询机组列表", httpMethod = "GET") + @GetMapping("/page") + public PageResult page(TurbineListReq req) { + return PageResult.ok(turbineService.page(req)); } - @ApiOperation(value = "根据机组-项目关联Id获取详细信息", httpMethod = "GET") - @GetMapping("/{turbineCode}") - public Result getInfo(@PathVariable String turbineCode) { - return Result.ok(turbineService.selectById(turbineCode)); + @ApiOperation(value = "查询机组列表", httpMethod = "GET") + @GetMapping("/list") + public Result> list(TurbineListReq req) { + return Result.ok(turbineService.list(req)); } - @ApiOperation(value = "新增机组-项目关联", httpMethod = "POST") + @ApiOperation(value = "查询机组明细列表", httpMethod = "GET") + @GetMapping("/list/info") + public Result> listInfo( TurbineListReq req) { + return Result.ok(turbineService.listInfo(req)); + } + + @ApiOperation(value = "获取指定机组详情", httpMethod = "GET") + @GetMapping("/detail/{turbineId}") + public Result detail(@PathVariable String turbineId) { + return Result.ok(turbineService.detail(turbineId)); + } + + @ApiOperation(value = "获取指定机组明细详情", httpMethod = "GET") + @GetMapping("/info/{turbineId}") + public Result info(@PathVariable String turbineId) { + return Result.ok(turbineService.info(turbineId)); + } + + @ApiOperation(value = "新增机组", httpMethod = "POST") @PostMapping - public Result add(@RequestBody TurbineEntity turbine) { - turbineService.saveData(turbine); + public Result add(@RequestBody TurbineReq req) { + turbineService.save(req); return Result.ok(); } - @ApiOperation(value = "修改机组-项目关联", httpMethod = "PUT") - @PutMapping - public Result edit(@RequestBody TurbineEntity turbine) { - turbineService.updateData(turbine); + @ApiOperation(value = "修改机组", httpMethod = "PUT") + @PutMapping("/{turbineId}") + public Result edit(@PathVariable String turbineId, @RequestBody TurbineReq req) { + turbineService.update(turbineId, req); return Result.ok(); } - @ApiOperation(value = "删除机组-项目关联", httpMethod = "DELETE") - @DeleteMapping("/{turbineCode}") - public Result remove(@PathVariable String turbineCode) { - turbineService.deleteById(turbineCode); + @ApiOperation(value = "删除机组", httpMethod = "DELETE") + @DeleteMapping("/{turbineId}") + public Result remove(@PathVariable String turbineId) { + turbineService.deleteById(turbineId); return Result.ok(); } - @ApiOperation(value = "导出机组-项目关联", httpMethod = "GET") + @ApiOperation(value = "导出机组-需求待明确", httpMethod = "GET") @GetMapping("/export") - @ResponseExcel(name = "机组-项目关联") - public List export(TurbineListReq turbineReq) { - return turbineService.selectList(turbineReq); + @ResponseExcel(name = "机组") + public List export(TurbineListReq turbineReq) { + return turbineService.list(turbineReq); } - @ApiOperation(value = "导入机组-项目关联", httpMethod = "POST") + @ApiOperation(value = "导入机组-需求待明确", httpMethod = "POST") @PostMapping("/import") public Result importData(@RequestExcel List dataList, BindingResult bindingResult) { // JSR 303 校验通用校验获取失败的数据 From a819d1e9ad3d4dda173e8c0ee1b6a255da6203a3 Mon Sep 17 00:00:00 2001 From: gaoxiong Date: Mon, 12 May 2025 00:19:07 +0800 Subject: [PATCH 4/4] =?UTF-8?q?1=E3=80=81=E6=9C=BA=E7=BB=84=E5=92=8C?= =?UTF-8?q?=E9=83=A8=E4=BB=B6=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90100%=202?= =?UTF-8?q?=E3=80=81=E9=85=8D=E5=90=88app=E7=AB=AF=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=9B=BE=E5=83=8F=E5=92=8C=E7=BC=BA=E9=99=B7=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dite/znpt/constant/Message.java | 1 + .../java/com/dite/znpt/converts/Converts.java | 2 + .../domain/entity/ImageCollectEntity.java | 4 - .../dite/znpt/domain/entity/ImageEntity.java | 4 + .../dite/znpt/domain/vo/ImageSimpleReq.java | 29 +++++++ .../dite/znpt/domain/vo/OutWorkDefectReq.java | 27 +++++++ .../com/dite/znpt/enums/DefectSourceEnum.java | 3 +- .../com/dite/znpt/enums/ImageSourceEnum.java | 55 +++++++++++++ .../com/dite/znpt/service/DefectService.java | 10 +++ .../znpt/service/ImageCollectService.java | 2 +- .../com/dite/znpt/service/ImageService.java | 12 +-- .../znpt/service/impl/DefectServiceImpl.java | 37 ++++++++- .../service/impl/ImageCollectServiceImpl.java | 14 +++- .../znpt/service/impl/ImageServiceImpl.java | 78 ++++++++++++++++--- .../src/main/resources/mapper/ImageMapper.xml | 4 +- .../znpt/web/controller/CommonController.java | 23 +++++- .../znpt/web/controller/ImageController.java | 20 +++-- web/src/main/resources/application-dev.yml | 4 +- 18 files changed, 286 insertions(+), 43 deletions(-) create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/ImageSimpleReq.java create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/OutWorkDefectReq.java create mode 100644 core/src/main/java/com/dite/znpt/enums/ImageSourceEnum.java diff --git a/core/src/main/java/com/dite/znpt/constant/Message.java b/core/src/main/java/com/dite/znpt/constant/Message.java index f1ed7a3..da8d4db 100644 --- a/core/src/main/java/com/dite/znpt/constant/Message.java +++ b/core/src/main/java/com/dite/znpt/constant/Message.java @@ -19,4 +19,5 @@ public class Message implements Serializable { public static final String PROJECT_ID_IS_NOT_EXIST = "项目id不存在"; public static final String TURBINE_ID_IS_NOT_EXIST = "机组id不存在"; public static final String PART_ID_IS_NOT_EXIST = "部件id不存在"; + public static final String IMAGE_SOURCE_I_NOT_EXIST_OR_ILLEGAL = "部件id不存在"; } diff --git a/core/src/main/java/com/dite/znpt/converts/Converts.java b/core/src/main/java/com/dite/znpt/converts/Converts.java index 3998a5d..699c4ab 100644 --- a/core/src/main/java/com/dite/znpt/converts/Converts.java +++ b/core/src/main/java/com/dite/znpt/converts/Converts.java @@ -19,6 +19,8 @@ public interface Converts { List toImageEntity(List list); + List toImageSimpleReq(List list); + ImageCollectEntity toImageCollectEntity(ImageCollectReq req); DefectEntity toDefectEntity(DefectReq req); diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ImageCollectEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ImageCollectEntity.java index b87a04c..dbd7331 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/ImageCollectEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/ImageCollectEntity.java @@ -32,10 +32,6 @@ public class ImageCollectEntity extends AuditableEntity implements Serializable @TableId(value = "collect_id", type = IdType.ASSIGN_UUID) private String collectId; - @ApiModelProperty("部件id") - @TableField("part_id") - private String partId; - @ApiModelProperty("拍摄时间-起") @TableField("shooting_time_begin") private LocalDateTime shootingTimeBegin; diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java index 8a87c8c..2955ab4 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java @@ -33,6 +33,10 @@ public class ImageEntity extends AuditableEntity implements Serializable { @TableId(value = "image_id", type = IdType.ASSIGN_UUID) private String imageId; + @ApiModelProperty("部件id") + @TableField("part_id") + private String partId; + @ApiModelProperty("图像采集id") @TableField("collect_id") private String collectId; diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageSimpleReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageSimpleReq.java new file mode 100644 index 0000000..e0000d0 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageSimpleReq.java @@ -0,0 +1,29 @@ +package com.dite.znpt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @Author: gaoxiong + * @Date: 2025/5/11 22:29 + * @Description: + */ +@Data +@ApiModel("图像简要信息请求实体") +public class ImageSimpleReq implements Serializable { + @Serial + private static final long serialVersionUID = 4813411833253078204L; + + @ApiModelProperty(name = "部件id", required = true) + private String partId; + + @ApiModelProperty(name = "图像来源,枚举:ImageSourceEnum", required = true) + private String imageSource; + + @ApiModelProperty(name = "图像路径", required = true) + private String imagePath; +} diff --git a/core/src/main/java/com/dite/znpt/domain/vo/OutWorkDefectReq.java b/core/src/main/java/com/dite/znpt/domain/vo/OutWorkDefectReq.java new file mode 100644 index 0000000..4b910e7 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/OutWorkDefectReq.java @@ -0,0 +1,27 @@ +package com.dite.znpt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @Author: gaoxiong + * @Date: 2025/5/11 21:20 + * @Description: + */ +@Data +@ApiModel("外部工作上报缺陷请求实体") +public class OutWorkDefectReq extends DefectReq implements Serializable { + + @Serial + private static final long serialVersionUID = -9109852601298547208L; + + @ApiModelProperty(name = "图像路径", required = true) + private String imagePath; + + @ApiModelProperty(name = "部件id", required = true) + private String partId; +} diff --git a/core/src/main/java/com/dite/znpt/enums/DefectSourceEnum.java b/core/src/main/java/com/dite/znpt/enums/DefectSourceEnum.java index e05bcdd..92d59b6 100644 --- a/core/src/main/java/com/dite/znpt/enums/DefectSourceEnum.java +++ b/core/src/main/java/com/dite/znpt/enums/DefectSourceEnum.java @@ -14,7 +14,8 @@ import java.util.List; @Getter public enum DefectSourceEnum { AI("AI", "智能识别"), - MANUAL("MANUAL", "人工标注"); + MANUAL("MANUAL", "人工标注"), + OUT_WORK("MANUAL", "外部工作"); private final String code; private final String desc; diff --git a/core/src/main/java/com/dite/znpt/enums/ImageSourceEnum.java b/core/src/main/java/com/dite/znpt/enums/ImageSourceEnum.java new file mode 100644 index 0000000..9532d99 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/enums/ImageSourceEnum.java @@ -0,0 +1,55 @@ +package com.dite.znpt.enums; + +import cn.hutool.json.JSONObject; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: gaoxiong + * @Date: 2025/5/11 23:35 + * @Description: + */ +@Getter +public enum ImageSourceEnum { + COLLECT("collect", "图像采集", Boolean.TRUE), + OUT_WORK("out-work", "外部工作", Boolean.TRUE), + LIGHTNING_PROTECTING_WORK("lightning-protection-work", "防雷工作", Boolean.FALSE); + + private final String code; + private final String desc; + private final boolean isDefectImage; + + ImageSourceEnum(String code, String desc, boolean isDefectImage){ + this.code = code; + this.desc = desc; + this.isDefectImage = isDefectImage; + } + + public static ImageSourceEnum getByCode(String code){ + for (ImageSourceEnum e : ImageSourceEnum.values() ) { + if(e.code.equals(code)){ + return e; + } + } + return null; + } + + public static String getDescByCode(String code){ + ImageSourceEnum e = getByCode(code); + return null == e ? null : e.desc; + } + + public static List list(Boolean isDefectImage){ + List list = new ArrayList<>(ImageSourceEnum.values().length); + for (ImageSourceEnum e : ImageSourceEnum.values() ) { + if(isDefectImage.equals(e.isDefectImage)){ + JSONObject jsonObject = new JSONObject(); + jsonObject.set(e.code, e.desc); + list.add(jsonObject); + } + } + return list; + } +} diff --git a/core/src/main/java/com/dite/znpt/service/DefectService.java b/core/src/main/java/com/dite/znpt/service/DefectService.java index b29c40d..1a0fdb1 100644 --- a/core/src/main/java/com/dite/znpt/service/DefectService.java +++ b/core/src/main/java/com/dite/znpt/service/DefectService.java @@ -5,6 +5,7 @@ import com.dite.znpt.domain.entity.DefectEntity; import com.dite.znpt.domain.vo.DefectListReq; import com.dite.znpt.domain.vo.DefectReq; import com.dite.znpt.domain.vo.DefectResp; +import com.dite.znpt.domain.vo.OutWorkDefectReq; import java.util.List; @@ -47,6 +48,15 @@ public interface DefectService extends IService { **/ void save(String imageId, DefectReq req); + /** + * 功能描述:新增外部工作缺陷记录 + * + * @param list + * @author huise23 + * @date 2025/04/11 23:17 + **/ + List saveOutWorkDefect(List list); + /** * 功能描述:更新缺陷记录 * diff --git a/core/src/main/java/com/dite/znpt/service/ImageCollectService.java b/core/src/main/java/com/dite/znpt/service/ImageCollectService.java index 9c6819c..1c961bf 100644 --- a/core/src/main/java/com/dite/znpt/service/ImageCollectService.java +++ b/core/src/main/java/com/dite/znpt/service/ImageCollectService.java @@ -10,5 +10,5 @@ import com.dite.znpt.domain.vo.ImageCollectReq; * @Description: */ public interface ImageCollectService extends IService { - void save(String departId, ImageCollectReq req); + void save(String partId, ImageCollectReq req); } diff --git a/core/src/main/java/com/dite/znpt/service/ImageService.java b/core/src/main/java/com/dite/znpt/service/ImageService.java index cd24553..d4e1115 100644 --- a/core/src/main/java/com/dite/znpt/service/ImageService.java +++ b/core/src/main/java/com/dite/znpt/service/ImageService.java @@ -2,12 +2,10 @@ package com.dite.znpt.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dite.znpt.domain.entity.ImageEntity; -import com.dite.znpt.domain.vo.ImageListReq; -import com.dite.znpt.domain.vo.ImageListResp; -import com.dite.znpt.domain.vo.ImageReq; -import com.dite.znpt.domain.vo.ImageResp; +import com.dite.znpt.domain.vo.*; import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -21,9 +19,13 @@ public interface ImageService extends IService { List page(ImageListReq req); + List batchSaveByImageSimpleReq(List list); + ImageResp detail(String imageId); - List batchUpload(String departId, MultipartFile[] files); + List batchUploadDefectImage(String partId, String imageSource, MultipartFile[] files); + + String uploadCommonImage(String imageSource, MultipartFile file) throws IOException; void delete(String imageId); } diff --git a/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java index ac08810..b2cd108 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java @@ -1,12 +1,12 @@ package com.dite.znpt.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.constant.Message; import com.dite.znpt.converts.Converts; import com.dite.znpt.domain.entity.DefectEntity; -import com.dite.znpt.domain.vo.DefectListReq; -import com.dite.znpt.domain.vo.DefectReq; -import com.dite.znpt.domain.vo.DefectResp; +import com.dite.znpt.domain.entity.ImageEntity; +import com.dite.znpt.domain.vo.*; import com.dite.znpt.enums.DefectSourceEnum; import com.dite.znpt.enums.DefectTypeEnum; import com.dite.znpt.enums.RepairStatusEnum; @@ -15,13 +15,16 @@ import com.dite.znpt.service.DefectService; import com.dite.znpt.mapper.DefectMapper; import com.dite.znpt.service.ImageService; import org.springframework.stereotype.Service; -import cn.hutool.core.collection.CollUtil; import lombok.RequiredArgsConstructor; import com.dite.znpt.util.PageUtil; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @author huise23 @@ -87,9 +90,35 @@ public class DefectServiceImpl extends ServiceImpl i throw new ServiceException(Message.IMAGE_ID_IS_NOT_EXIST); } DefectEntity defectEntity = Converts.INSTANCE.toDefectEntity(req); + defectEntity.setImageId(imageId); this.save(defectEntity); } + /** + * 功能描述:新增外部工作缺陷记录 + * + * @param list + * @author huise23 + * @date 2025/04/11 23:17 + **/ + @Override + public List saveOutWorkDefect(List list) { + List imageSimpleReqList = Converts.INSTANCE.toImageSimpleReq(list); + List imageEntityList = imageService.batchSaveByImageSimpleReq(imageSimpleReqList); + Map imageMap = imageEntityList.stream().collect(Collectors.toMap(k->k.getPartId().concat(StrUtil.COLON).concat(k.getImagePath()), Function.identity())); + List defectEntityList = new ArrayList<>(); + list.stream().forEach(req -> { + String key = req.getPartId().concat(StrUtil.COLON).concat(req.getImagePath()); + if(imageMap.containsKey(key)){ + DefectEntity defectEntity = Converts.INSTANCE.toDefectEntity(req); + defectEntity.setImageId(imageMap.get(key).getImageId()); + defectEntityList.add(defectEntity); + } + }); + this.saveBatch(defectEntityList); + return defectEntityList; + } + /** * 功能描述:更新缺陷记录 * diff --git a/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java index 8fbe3d3..9f8f85c 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java @@ -9,10 +9,12 @@ import com.dite.znpt.converts.Converts; import com.dite.znpt.domain.entity.ImageCollectEntity; import com.dite.znpt.domain.entity.ImageEntity; import com.dite.znpt.domain.vo.ImageCollectReq; +import com.dite.znpt.enums.ImageSourceEnum; import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.ImageCollectMapper; import com.dite.znpt.service.ImageCollectService; import com.dite.znpt.service.ImageService; +import com.dite.znpt.service.PartService; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -35,26 +37,32 @@ public class ImageCollectServiceImpl extends ServiceImpl imageList = Converts.INSTANCE.toImageEntity(req.getImageList()); - String path_prefix = permPath.concat(StrUtil.BACKSLASH).concat(partId).concat(StrUtil.BACKSLASH); + String path_prefix = permPath.concat(StrUtil.BACKSLASH).concat(ImageSourceEnum.COLLECT.getCode()).concat(StrUtil.BACKSLASH).concat(partId).concat(StrUtil.BACKSLASH); imageList.stream().forEach(image -> { + image.setPartId(partId); image.setCollectId(imageCollect.getCollectId()); String path = path_prefix + image.getImageName(); File file = new File(image.getImagePath()); if (file.exists()) { byte[] bytes = FileUtil.readBytes(file); FileUtil.writeBytes(bytes, path); - FileUtil.del(file); image.setImagePath(path); + FileUtil.del(file); }else { imageList.remove(image); } diff --git a/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java index 3f6b053..de2a2e2 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java @@ -8,19 +8,17 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.constant.Message; import com.dite.znpt.domain.entity.ImageEntity; -import com.dite.znpt.domain.vo.ImageListReq; -import com.dite.znpt.domain.vo.ImageListResp; -import com.dite.znpt.domain.vo.ImageReq; -import com.dite.znpt.domain.vo.ImageResp; -import com.dite.znpt.enums.ImageTypeEnum; -import com.dite.znpt.enums.ShootingMethodEnum; -import com.dite.znpt.enums.WeatherEnum; +import com.dite.znpt.domain.entity.PartEntity; +import com.dite.znpt.domain.vo.*; +import com.dite.znpt.enums.*; import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.ImageMapper; import com.dite.znpt.service.ImageCollectService; import com.dite.znpt.service.ImageService; +import com.dite.znpt.service.PartService; import com.dite.znpt.util.EXIFUtil; import com.dite.znpt.util.PageUtil; +import lombok.Getter; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,14 +26,19 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; +import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; /** * @author Bear.G @@ -48,9 +51,14 @@ public class ImageServiceImpl extends ServiceImpl impl @Resource private ImageCollectService imageCollectService; + @Resource + private PartService partService; + @Value("${upload.temp-path}") private String tempPath; + @Value("${upload.perm-path}") + private String permPath; @Override public List list(ImageListReq req) { List partList= this.baseMapper.queryImageList(req); @@ -68,22 +76,54 @@ public class ImageServiceImpl extends ServiceImpl impl return this.list(req); } + @Override + public List batchSaveByImageSimpleReq(List list){ + List imageList = new ArrayList<>(); + List partIds = list.stream().map(ImageSimpleReq::getPartId).collect(Collectors.toList()); + Map partIdMap= partService.listByIds(partIds).stream().collect(Collectors.toMap(PartEntity::getPartId, Function.identity())); + list.stream().forEach(req -> { + if(partIdMap.containsKey(req.getPartId())){ + String path_prefix = permPath.concat(StrUtil.BACKSLASH).concat(req.getImageSource()).concat(StrUtil.BACKSLASH).concat(req.getPartId()).concat(StrUtil.BACKSLASH); + String temp_path_prefix = tempPath.concat(StrUtil.BACKSLASH).concat(req.getImageSource()).concat(StrUtil.BACKSLASH).concat(req.getPartId()).concat(StrUtil.BACKSLASH); + File file = new File(req.getImagePath()); + if(file.exists() && req.getImagePath().contains(temp_path_prefix)){ + ImageEntity entity = new ImageEntity(); + entity.setPartId(req.getPartId()); + String path = path_prefix + StrUtil.removePrefix(req.getImagePath(), temp_path_prefix); + byte[] bytes = FileUtil.readBytes(file); + FileUtil.writeBytes(bytes, path); + FileUtil.del(file); + entity.setImagePath(path); + imageList.add(entity); + } + } + }); + this.saveBatch(imageList); + return imageList; + } + @Override public ImageResp detail(String imageId) { ImageResp imageResp = this.baseMapper.detail(imageId); - imageResp.getImageCollectInfo().setWeatherLabel(WeatherEnum.getDescByCode(imageResp.getImageCollectInfo().getWeather())); - imageResp.getImageCollectInfo().setShootingMethodLabel(ShootingMethodEnum.getDescByCode(imageResp.getImageCollectInfo().getShootingMethodLabel())); + if(null != imageResp && null != imageResp.getImageCollectInfo()){ + imageResp.getImageCollectInfo().setWeatherLabel(WeatherEnum.getDescByCode(imageResp.getImageCollectInfo().getWeather())); + imageResp.getImageCollectInfo().setShootingMethodLabel(ShootingMethodEnum.getDescByCode(imageResp.getImageCollectInfo().getShootingMethodLabel())); + } + return imageResp; } @Transactional(rollbackFor = Exception.class) @Override - public List batchUpload(String departId, MultipartFile[] files) { + public List batchUploadDefectImage(String partId, String imageSource, MultipartFile[] files) { + if(null == partService.getById(partId)){ + throw new ServiceException(Message.PART_ID_IS_NOT_EXIST); + } if(null == files || files.length == 0){ throw new ServiceException(Message.IMAGE_IS_EMPTY); } List list = new ArrayList<>(files.length); - String path_prefix = tempPath.concat(StrUtil.BACKSLASH).concat(departId).concat(StrUtil.BACKSLASH); + String path_prefix = tempPath.concat(StrUtil.BACKSLASH).concat(imageSource).concat(StrUtil.BACKSLASH).concat(partId).concat(StrUtil.BACKSLASH); for (MultipartFile file : files) { if (!file.isEmpty()) { try { @@ -98,6 +138,22 @@ public class ImageServiceImpl extends ServiceImpl impl return list; } + @Override + public String uploadCommonImage(String imageSource, MultipartFile file) throws IOException { + if(null == file){ + throw new ServiceException(Message.IMAGE_IS_EMPTY); + } + ImageSourceEnum imageSourceEnum = ImageSourceEnum.getByCode(imageSource); + if(null == imageSourceEnum || imageSourceEnum.isDefectImage()){ + throw new ServiceException(Message.IMAGE_SOURCE_I_NOT_EXIST_OR_ILLEGAL); + } + String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + String path_prefix = permPath.concat(StrUtil.BACKSLASH).concat(imageSource).concat(StrUtil.BACKSLASH).concat(dateStr).concat(StrUtil.BACKSLASH); + String path = path_prefix + file.getOriginalFilename(); + FileUtil.writeBytes(file.getBytes(),path); + return path; + } + @Transactional(rollbackFor = Exception.class) @Override public void delete(String imageId) { diff --git a/core/src/main/resources/mapper/ImageMapper.xml b/core/src/main/resources/mapper/ImageMapper.xml index 231499c..9800029 100644 --- a/core/src/main/resources/mapper/ImageMapper.xml +++ b/core/src/main/resources/mapper/ImageMapper.xml @@ -3,12 +3,12 @@