机组和部件功能完成70%

This commit is contained in:
gaoxiong 2025-05-08 00:16:08 +08:00
parent 47a3e7e764
commit bd28cd577a
24 changed files with 834 additions and 281 deletions

View File

@ -17,4 +17,6 @@ public class Message implements Serializable {
public static final String IMAGE_ID_IS_NOT_EXIST = "图像id不存在"; public static final String IMAGE_ID_IS_NOT_EXIST = "图像id不存在";
public static final String DEFECT_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 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不存在";
} }

View File

@ -1,9 +1,6 @@
package com.dite.znpt.converts; package com.dite.znpt.converts;
import com.dite.znpt.domain.entity.DefectEntity; import com.dite.znpt.domain.entity.*;
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.vo.*; import com.dite.znpt.domain.vo.*;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.NullValuePropertyMappingStrategy; import org.mapstruct.NullValuePropertyMappingStrategy;
@ -31,4 +28,12 @@ public interface Converts {
ProjectResp toProjectResp(ProjectEntity entity); ProjectResp toProjectResp(ProjectEntity entity);
ProjectEntity toProjectEntity(ProjectReq req); ProjectEntity toProjectEntity(ProjectReq req);
TurbineEntity toTurbineEntity(TurbineReq req);
TurbineResp toTurbineResp(TurbineEntity entity);
PartEntity toPartEntity(PartReq req);
PartResp toPartResp(PartEntity entity);
} }

View File

@ -28,11 +28,6 @@ public class PartEntity extends AuditableEntity implements Serializable {
@TableId(value = "part_id", type = IdType.ASSIGN_UUID) @TableId(value = "part_id", type = IdType.ASSIGN_UUID)
private String partId; private String partId;
@ExcelProperty("项目id")
@ApiModelProperty("项目id")
@TableField("project_id")
private String projectId;
@ExcelProperty("机组id") @ExcelProperty("机组id")
@ApiModelProperty("机组id") @ApiModelProperty("机组id")
@TableField("turbine_id") @TableField("turbine_id")
@ -48,8 +43,8 @@ public class PartEntity extends AuditableEntity implements Serializable {
@TableField("part_code") @TableField("part_code")
private String partCode; private String partCode;
@ExcelProperty("类型,字典part_type") @ExcelProperty("类型,枚举PartTypeEnum")
@ApiModelProperty("类型,字典part_type") @ApiModelProperty("类型,枚举PartTypeEnum")
@TableField("part_type") @TableField("part_type")
private String partType; private String partType;
@ -60,12 +55,12 @@ public class PartEntity extends AuditableEntity implements Serializable {
@ExcelProperty("厂商") @ExcelProperty("厂商")
@ApiModelProperty("厂商") @ApiModelProperty("厂商")
@TableField("manufacturer") @TableField("part_manufacturer")
private String manufacturer; private String partManufacturer;
@ExcelProperty("型号") @ExcelProperty("型号")
@ApiModelProperty("型号") @ApiModelProperty("型号")
@TableField("model") @TableField("part_model")
private String model; private String partModel;
} }

View File

@ -38,6 +38,11 @@ public class TurbineEntity extends AuditableEntity implements Serializable {
@TableField("turbine_name") @TableField("turbine_name")
private String turbineName; private String turbineName;
@ExcelProperty("机组编码")
@ApiModelProperty("机组编码")
@TableField("turbine_code")
private String turbineCode;
@ExcelProperty("机组描述") @ExcelProperty("机组描述")
@ApiModelProperty("机组描述") @ApiModelProperty("机组描述")
@TableField("turbine_desc") @TableField("turbine_desc")
@ -45,17 +50,17 @@ public class TurbineEntity extends AuditableEntity implements Serializable {
@ExcelProperty("机组厂商") @ExcelProperty("机组厂商")
@ApiModelProperty("机组厂商") @ApiModelProperty("机组厂商")
@TableField("manufacturer") @TableField("turbine_manufacturer")
private String manufacturer; private String turbineManufacturer;
@ExcelProperty("机组型号") @ExcelProperty("机组型号")
@ApiModelProperty("机组型号") @ApiModelProperty("机组型号")
@TableField("model") @TableField("turbine_model")
private String model; private String turbineModel;
@ApiModelProperty("封面图") @ApiModelProperty("封面图")
@TableField("cover_url") @TableField("turbine_cover_url")
private String coverUrl; private String turbineCoverUrl;
@ApiModelProperty("状态0待施工1施工中2已完工3已审核4已验收") @ApiModelProperty("状态0待施工1施工中2已完工3已审核4已验收")
@TableField("status") @TableField("status")

View File

@ -12,7 +12,7 @@ import lombok.Data;
* @Description: 请求实体 * @Description: 请求实体
*/ */
@Data @Data
@ApiModel("列表请求实体") @ApiModel("部件列表请求实体")
public class PartListReq implements Serializable { public class PartListReq implements Serializable {
private static final long serialVersionUID = 118135700439578757L; private static final long serialVersionUID = 118135700439578757L;
@ -20,32 +20,20 @@ public class PartListReq implements Serializable {
@ApiModelProperty("查询关键字") @ApiModelProperty("查询关键字")
private String keyword; private String keyword;
@ApiModelProperty("Id") @ApiModelProperty(name = "项目id", required = true)
private String partId;
@ApiModelProperty("项目id")
private String projectId; private String projectId;
@ApiModelProperty("机组id") @ApiModelProperty(name = "机组id", required = true)
private String turbineId; private String turbineId;
@ApiModelProperty("名称") @ApiModelProperty("类型枚举PartTypeEnum")
private String partName;
@ApiModelProperty("编号")
private String partCode;
@ApiModelProperty("类型字典part_type")
private String partType; private String partType;
@ApiModelProperty("描述")
private String partDesc;
@ApiModelProperty("厂商") @ApiModelProperty("厂商")
private String manufacturer; private String partManufacturer;
@ApiModelProperty("型号") @ApiModelProperty("型号")
private String model; private String partModel;
} }

View File

@ -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;
}

View File

@ -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;
}

View File

@ -1,9 +1,11 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import com.dite.znpt.domain.entity.PartEntity; import java.io.Serial;
import java.io.Serializable;
/** /**
* @author huise23 * @author huise23
@ -11,8 +13,46 @@ import com.dite.znpt.domain.entity.PartEntity;
* @Description: 响应实体 * @Description: 响应实体
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @ApiModel("部件响应实体")
@ApiModel("响应实体") public class PartResp implements Serializable {
public class PartResp extends PartEntity {
@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;
} }

View File

@ -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<PartResp> partRespList;
}

View File

@ -12,31 +12,25 @@ import lombok.Data;
* @Description: 机组-项目关联请求实体 * @Description: 机组-项目关联请求实体
*/ */
@Data @Data
@ApiModel("机组-项目关联列表请求实体") @ApiModel("机组列表请求实体")
public class TurbineListReq implements Serializable { public class TurbineListReq implements Serializable {
private static final long serialVersionUID = 141552424945497346L; private static final long serialVersionUID = 141552424945497346L;
@ApiModelProperty("查询关键字") @ApiModelProperty(name = "项目id", required = true)
private String keyword;
@ApiModelProperty("机组-项目关联Id")
private String turbineId;
@ApiModelProperty("项目id")
private String projectId; private String projectId;
@ApiModelProperty("机组名称") @ApiModelProperty("查询关键字")
private String turbineName; private String keyword;
@ApiModelProperty("机组描述") @ApiModelProperty("机组描述")
private String turbineDesc; private String turbineDesc;
@ApiModelProperty("机组厂商") @ApiModelProperty("机组厂商")
private String manufacturer; private String turbineManufacturer;
@ApiModelProperty("机组型号") @ApiModelProperty("机组型号")
private String model; private String turbineModel;
} }

View File

@ -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;
}

View File

@ -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;
}

View File

@ -1,61 +1,48 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import com.dite.znpt.domain.entity.PartEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; 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 * @Author: gaoxiong
* @date 2025/04/11 23:17 * @Date: 2025/5/7 21:44
* @Description: 机组-项目关联响应实体 * @Description:
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @ApiModel("机组响应实体")
@ApiModel("机组-项目关联响应实体") public class TurbineResp implements Serializable {
public class TurbineResp extends TurbineEntity { @Serial
private static final long serialVersionUID = -1403719853347580858L;
@ApiModelProperty("部件") @ApiModelProperty("机组号")
private List<PartEntity> partsList; private String turbineId;
@ApiModelProperty("内部工作状态, -1不存在0未开始、1开始施工、2已提交报告、3审核通过") @ApiModelProperty("项目id")
private String antiThunderWorkStatus; private String projectId;
@ApiModelProperty("外部工作状态, -1不存在0未开始、1开始施工、2已提交报告、3审核通过") @ApiModelProperty("项目名称")
private String inWorkStatus; private String projectName;
@ApiModelProperty("防雷工作状态, -1不存在0未开始、1开始施工、2已提交报告、3审核通过") @ApiModelProperty("机组名称")
private String outWorkStatus; private String turbineName;
@ApiModelProperty("数据报告工作状态, -1不存在0未开始、1开始施工、2已提交报告、3审核通过") @ApiModelProperty("机组编码")
private String summaryWorkStatus; private String turbineCode;
@ApiModelProperty("内部工作安全员审核状态, -1不存在0未审核、1审核通过") @ApiModelProperty("机组描述")
private String antiThunderWorkSafetyStatus; private String turbineDesc;
@ApiModelProperty("外部工作安全员审核状态, -1不存在0未审核、1审核通过") @ApiModelProperty("机组厂商")
private String inWorkSafetyStatus; private String turbineManufacturer;
@ApiModelProperty("防雷工作安全员审核状态, -1不存在0未审核、1审核通过") @ApiModelProperty("机组型号")
private String outWorkSafetyStatus; private String turbineModel;
@ApiModelProperty("内部工作质量员审核状态, -1不存在0未审核、1审核通过") @ApiModelProperty("封面图")
private String antiThunderWorkQualityStatus; private String turbineCoverUrl;
@ApiModelProperty("外部工作质量员审核状态, -1不存在0未审核、1审核通过")
private String inWorkQualityStatus;
@ApiModelProperty("防雷工作质量员审核状态, -1不存在0未审核、1审核通过")
private String outWorkQualityStatus;
@ApiModelProperty("防雷是否不合格1不合格0合格")
private Boolean lightningUnqualified;
@ApiModelProperty("来源, appbackend后台不传参默认后台")
private String source;
} }

View File

@ -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<JSONObject> listAll(){
List<JSONObject> 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;
}
}

View File

@ -3,6 +3,7 @@ package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.PartEntity; import com.dite.znpt.domain.entity.PartEntity;
import com.dite.znpt.domain.vo.PartListReq; import com.dite.znpt.domain.vo.PartListReq;
import com.dite.znpt.domain.vo.PartListResp;
import com.dite.znpt.domain.vo.PartResp; import com.dite.znpt.domain.vo.PartResp;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -14,6 +15,6 @@ import java.util.List;
* @Description: 表数据库访问层 * @Description: 表数据库访问层
*/ */
public interface PartMapper extends BaseMapper<PartEntity> { public interface PartMapper extends BaseMapper<PartEntity> {
List<PartResp> queryBySelective(PartListReq partReq); List<PartListResp> queryBySelective(PartListReq partReq);
} }

View File

@ -2,9 +2,9 @@ package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.TurbineEntity; 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.TurbineListReq;
import com.dite.znpt.domain.vo.TurbineResp; import com.dite.znpt.domain.vo.TurbineListResp;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -14,6 +14,8 @@ import java.util.List;
* @Description: 机组-项目关联表数据库访问层 * @Description: 机组-项目关联表数据库访问层
*/ */
public interface TurbineMapper extends BaseMapper<TurbineEntity> { public interface TurbineMapper extends BaseMapper<TurbineEntity> {
List<TurbineResp> queryBySelective(TurbineListReq turbineReq); List<TurbineListResp> queryBySelective(TurbineListReq turbineReq);
List<TurbineInfoResp> listTurbineInfo(TurbineListReq turbineReq);
TurbineInfoResp getTurbineInfo(String turbineId);
} }

View File

@ -3,6 +3,8 @@ package com.dite.znpt.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.PartEntity; import com.dite.znpt.domain.entity.PartEntity;
import com.dite.znpt.domain.vo.PartListReq; 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.vo.PartResp;
import java.util.List; import java.util.List;
@ -15,14 +17,24 @@ import java.util.List;
public interface PartService extends IService<PartEntity> { public interface PartService extends IService<PartEntity> {
/** /**
* 功能描述查询列表 * 功能描述分页查询列表
* *
* @param partReq * @param partReq
* @return {@link List }<{@link PartEntity }> * @return {@link List }<{@link PartListResp }>
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
List<PartResp> selectList(PartListReq partReq); List<PartListResp> page(PartListReq partReq);
/**
* 功能描述查询列表
*
* @param partReq
* @return {@link List }<{@link PartListResp }>
* @author huise23
* @date 2025/04/11 23:17
**/
List<PartListResp> list(PartListReq partReq);
/** /**
* 功能描述查询单条 * 功能描述查询单条
@ -32,25 +44,25 @@ public interface PartService extends IService<PartEntity> {
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
PartResp selectById(String partId); PartResp detail(String partId);
/** /**
* 功能描述新增 * 功能描述新增
* *
* @param part * @param req
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
void saveData(PartEntity part); void save(PartReq req);
/** /**
* 功能描述更新 * 功能描述更新
* *
* @param part * @param req
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @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<PartEntity> {
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
void deleteById(String partId); void deleteById(String partId);
/**
* 功能描述删除
*
* @param turbineIds 机组id
* @author huise23
* @date 2025/04/11 23:17
**/
void deleteByTurbineIds(List<String> turbineIds);
} }

View File

@ -2,8 +2,7 @@ package com.dite.znpt.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.TurbineEntity; import com.dite.znpt.domain.entity.TurbineEntity;
import com.dite.znpt.domain.vo.TurbineListReq; import com.dite.znpt.domain.vo.*;
import com.dite.znpt.domain.vo.TurbineResp;
import java.util.List; import java.util.List;
@ -15,50 +14,90 @@ import java.util.List;
public interface TurbineService extends IService<TurbineEntity> { public interface TurbineService extends IService<TurbineEntity> {
/** /**
* 功能描述查询机组-项目关联列表 * 功能描述分页查询机组列表
* *
* @param turbineReq 机组-项目关联 * @param req
* @return {@link List }<{@link TurbineEntity }> * @return {@link List }<{@link TurbineListResp }>
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
List<TurbineResp> selectList(TurbineListReq turbineReq); List<TurbineListResp> page(TurbineListReq req);
/** /**
* 功能描述查询单条机组-项目关联 * 功能描述查询机组列表
* *
* @param turbineId 机组-项目关联Id * @param req
* @return {@link List }<{@link TurbineListResp }>
* @author huise23
* @date 2025/04/11 23:17
**/
List<TurbineListResp> list(TurbineListReq req);
/**
* 功能描述查询机组明细列表
*
* @param req
* @return {@link List }<{@link TurbineInfoResp }>
* @author huise23
* @date 2025/04/11 23:17
**/
List<TurbineInfoResp> listInfo(TurbineListReq req);
/**
* 功能描述查询指定机组详情
*
* @param turbineId 机组Id
* @return {@link TurbineResp } * @return {@link TurbineResp }
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
TurbineResp selectById(String turbineId); TurbineResp detail(String turbineId);
/** /**
* 功能描述新增机组-项目关联 * 功能描述查询指定机组明细内信息
* *
* @param turbine 机组-项目关联 * @param turbineId 机组Id
* @return {@link TurbineListResp }
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
void saveData(TurbineEntity turbine); TurbineInfoResp info(String turbineId);
/** /**
* 功能描述更新机组-项目关联 * 功能描述机组
* *
* @param turbine 机组-项目关联 * @param req
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @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 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
void deleteById(String turbineId); void deleteById(String turbineId);
/**
* 功能描述删除机组
*
* @param projectId 项目id
* @author huise23
* @date 2025/04/11 23:17
**/
void deleteByProjectId(String projectId);
} }

View File

@ -1,16 +1,29 @@
package com.dite.znpt.service.impl; 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.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.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.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.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 com.dite.znpt.mapper.PartMapper;
import org.springframework.stereotype.Service; import com.dite.znpt.service.PartService;
import cn.hutool.core.collection.CollUtil; import com.dite.znpt.service.ProjectService;
import lombok.RequiredArgsConstructor; import com.dite.znpt.service.TurbineService;
import com.dite.znpt.util.PageUtil; 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; import java.util.List;
/** /**
@ -22,22 +35,42 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class PartServiceImpl extends ServiceImpl<PartMapper, PartEntity> implements PartService { public class PartServiceImpl extends ServiceImpl<PartMapper, PartEntity> implements PartService {
@Resource
private ProjectService projectService;
@Resource
private TurbineService turbineService;
/** /**
* 功能描述查询列表 * 功能描述分页查询列表
* *
* @param partReq 信息 * @param req 信息
* @return {@link List }<{@link PartResp }> * @return {@link List }<{@link PartListResp }>
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
@Override @Override
public List<PartResp> selectList(PartListReq partReq) { public List<PartListResp> page(PartListReq req) {
PageUtil.startPage(); PageUtil.startPage();
List<PartResp> partList= this.baseMapper.queryBySelective(partReq); return this.list(req);
partList.forEach(resp -> { }
/**
* 功能描述查询列表
*
* @param req 信息
* @return {@link List }<{@link PartListResp }>
* @author huise23
* @date 2025/04/11 23:17
**/
@Override
public List<PartListResp> list(PartListReq req) {
PageUtil.startPage();
List<PartListResp> 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<PartMapper, PartEntity> impleme
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
@Override @Override
public PartResp selectById(String partId) { public PartResp detail(String partId) {
PartListReq partReq = new PartListReq(); PartEntity entity = this.baseMapper.selectById(partId);
partReq.setPartId(partId); PartResp resp = Converts.INSTANCE.toPartResp(entity);
if(StrUtil.isNotEmpty(resp.getTurbineId())){
List<PartResp> list = selectList(partReq); TurbineEntity turbine = turbineService.getById(resp.getTurbineId());
return list.isEmpty() ? CollUtil.getFirst(list) : new PartResp(); 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 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void saveData(PartEntity part) { public void save(PartReq req) {
// todo 校验 PartEntity entity = Converts.INSTANCE.toPartEntity(req);
save(part); this.save(entity);
} }
/** /**
* 功能描述更新 * 功能描述更新
* *
* @param part * @param partId
* @param req
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void updateData(PartEntity part) { public void update(String partId, PartReq req) {
// todo 校验 if(null == this.baseMapper.selectById(partId)){
updateById(part); 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<PartMapper, PartEntity> impleme
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void deleteById(String partId) { public void deleteById(String partId) {
// todo 校验
removeById(partId); removeById(partId);
} }
/**
* 功能描述删除
*
* @param turbineIds 机组id
* @author huise23
* @date 2025/04/11 23:17
**/
@Transactional(rollbackFor = Exception.class)
@Override
public void deleteByTurbineIds(List<String> turbineIds) {
this.baseMapper.delete(Wrappers.<PartEntity>lambdaQuery().in(PartEntity::getTurbineId, turbineIds));
}
} }

View File

@ -1,17 +1,27 @@
package com.dite.znpt.service.impl; 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.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.entity.TurbineEntity;
import com.dite.znpt.domain.vo.TurbineListReq; import com.dite.znpt.domain.vo.*;
import com.dite.znpt.domain.vo.TurbineResp; import com.dite.znpt.exception.ServiceException;
import com.dite.znpt.service.TurbineService;
import com.dite.znpt.mapper.TurbineMapper; import com.dite.znpt.mapper.TurbineMapper;
import org.springframework.stereotype.Service; import com.dite.znpt.service.PartService;
import cn.hutool.core.collection.CollUtil; import com.dite.znpt.service.ProjectService;
import lombok.RequiredArgsConstructor; import com.dite.znpt.service.TurbineService;
import com.dite.znpt.util.PageUtil; 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.List;
import java.util.stream.Collectors;
/** /**
* @author huise23 * @author huise23
@ -22,78 +32,147 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class TurbineServiceImpl extends ServiceImpl<TurbineMapper, TurbineEntity> implements TurbineService { public class TurbineServiceImpl extends ServiceImpl<TurbineMapper, TurbineEntity> implements TurbineService {
@Resource
private ProjectService projectService;
@Resource
private PartService partService;
/** /**
* 功能描述查询机组-项目关联列表 * 功能描述分页查询机组列表
* *
* @param turbineReq 机组-项目关联信息 * @param req
* @return {@link List }<{@link TurbineResp }> * @return {@link List }<{@link TurbineListResp }>
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
@Override @Override
public List<TurbineResp> selectList(TurbineListReq turbineReq) { public List<TurbineListResp> page(TurbineListReq req) {
PageUtil.startPage(); PageUtil.startPage();
List<TurbineResp> turbineList= this.baseMapper.queryBySelective(turbineReq); return this.list(req);
turbineList.forEach(resp -> {
});
return turbineList;
} }
/** /**
* 功能描述查询单条机组-项目关联 * 功能描述查询机组列表
* *
* @param turbineId 机组-项目关联Id * @param req
* @return {@link List }<{@link TurbineEntity }>
* @author huise23
* @date 2025/04/11 23:17
**/
@Override
public List<TurbineListResp> list(TurbineListReq req) {
List<TurbineListResp> 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<TurbineInfoResp> listInfo(TurbineListReq req) {
List<TurbineInfoResp> list= this.baseMapper.listTurbineInfo(req);
return list;
}
/**
* 功能描述查询单条机组
*
* @param turbineId 机组Id
* @return {@link TurbineResp } * @return {@link TurbineResp }
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
@Override @Override
public TurbineResp selectById(String turbineId) { public TurbineResp detail(String turbineId) {
TurbineListReq turbineReq = new TurbineListReq(); TurbineEntity entity = this.baseMapper.selectById(turbineId);
turbineReq.setTurbineId(turbineId); TurbineResp resp = Converts.INSTANCE.toTurbineResp(entity);
if(null != resp && StrUtil.isNotEmpty(resp.getProjectId())){
List<TurbineResp> list = selectList(turbineReq); ProjectEntity project = projectService.getById(resp.getProjectId());
return list.isEmpty() ? CollUtil.getFirst(list) : new TurbineResp(); resp.setProjectName(project.getProjectName());
}
return resp;
} }
/** /**
* 功能描述新增机组-项目关联 * 功能描述查询指定机组明细内信息
* *
* @param turbine 机组-项目关联 * @param turbineId 机组Id
* @return {@link TurbineListResp }
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
@Override @Override
public void saveData(TurbineEntity turbine) { public TurbineInfoResp info(String turbineId) {
// todo 校验 return this.baseMapper.getTurbineInfo(turbineId);
save(turbine);
} }
/** /**
* 功能描述更新机组-项目关联 * 功能描述机组
* *
* @param turbine 机组-项目关联 * @param req
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void updateData(TurbineEntity turbine) { public void save(TurbineReq req) {
// todo 校验 TurbineEntity entity = Converts.INSTANCE.toTurbineEntity(req);
updateById(turbine); 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 * @param turbineId 机组-项目关联Id
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
**/ **/
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void deleteById(String turbineId) { public void deleteById(String turbineId) {
// todo 校验
removeById(turbineId); 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<TurbineEntity> turbineList = this.baseMapper.selectList(Wrappers.<TurbineEntity>lambdaQuery().eq(TurbineEntity::getProjectId, projectId));
List<String> turbineIds = turbineList.stream().map(TurbineEntity::getTurbineId).collect(Collectors.toList());
this.baseMapper.deleteByIds(turbineIds);
partService.deleteByTurbineIds(turbineIds);
} }
} }

View File

@ -2,46 +2,31 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dite.znpt.mapper.PartMapper"> <mapper namespace="com.dite.znpt.mapper.PartMapper">
<sql id="Base_Column_List">
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
</sql>
<select id="queryBySelective" resultType="com.dite.znpt.domain.vo.PartResp"> <select id="queryBySelective" resultType="com.dite.znpt.domain.vo.PartListResp">
select SELECT
<include refid="Base_Column_List"/> 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 a 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
<where> <where>
<if test="keyword != null and keyword != ''"> <if test="keyword != null and keyword != ''">
# and (a.TODO like concat('%', #{keyword,jdbcType=VARCHAR}, '%') or a.TODO like concat('%', #{keyword,jdbcType=VARCHAR}, '%')) # and (pa.part_name like concat('%', #{keyword,jdbcType=VARCHAR}, '%') or pa.part_code like concat('%', #{keyword,jdbcType=VARCHAR}, '%'))
</if>
<if test="partId != null and partId != ''">
and a.part_id like concat ('%', #{partId}, '%')
</if> </if>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
and a.project_id like concat ('%', #{projectId}, '%') and t.project_id = #{projectId}
</if> </if>
<if test="turbineId != null and turbineId != ''"> <if test="turbineId != null and turbineId != ''">
and a.turbine_id like concat ('%', #{turbineId}, '%') and t.turbine_id = #{turbineId}
</if>
<if test="partName != null and partName != ''">
and a.part_name like concat ('%', #{partName}, '%')
</if>
<if test="partCode != null and partCode != ''">
and a.part_code like concat ('%', #{partCode}, '%')
</if> </if>
<if test="partType != null and partType != ''"> <if test="partType != null and partType != ''">
and a.part_type like concat ('%', #{partType}, '%') and a.part_type = #{partType}
</if> </if>
<if test="partDesc != null and partDesc != ''"> <if test="partManufacturer != null and partManufacturer != ''">
and a.part_desc like concat ('%', #{partDesc}, '%') and a.part_manufacturer like concat ('%', #{partManufacturer}, '%')
</if> </if>
<if test="manufacturer != null and manufacturer != ''"> <if test="partModel != null and partModel != ''">
and a.manufacturer like concat ('%', #{manufacturer}, '%') and a.part_model like concat ('%', #{partModel}, '%')
</if>
<if test="model != null and model != ''">
and a.model like concat ('%', #{model}, '%')
</if> </if>
</where> </where>
</select> </select>

View File

@ -2,38 +2,89 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dite.znpt.mapper.TurbineMapper"> <mapper namespace="com.dite.znpt.mapper.TurbineMapper">
<sql id="Base_Column_List"> <select id="queryBySelective" resultType="com.dite.znpt.domain.vo.TurbineListResp">
a.turbine_id, a.project_id, a.turbine_name, a.turbine_desc, SELECT
a.manufacturer, a.model 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
</sql> FROM turbine t
LEFT JOIN project p ON t.project_id = p.project_id
<select id="queryBySelective" resultType="com.dite.znpt.domain.vo.TurbineResp">
select
<include refid="Base_Column_List"/>
from turbine a
<where> <where>
<if test="keyword != null and keyword != ''"> <if test="keyword != null and keyword != ''">
# and (a.TODO like concat('%', #{keyword,jdbcType=VARCHAR}, '%') or a.TODO like concat('%', #{keyword,jdbcType=VARCHAR}, '%')) and (t.turbine_name like concat('%', #{keyword,jdbcType=VARCHAR}, '%') or t.turbine_code like concat('%', #{keyword,jdbcType=VARCHAR}, '%'))
</if>
<if test="turbineId != null and turbineId != ''">
and a.turbine_id like concat ('%', #{turbineId}, '%')
</if> </if>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
and a.project_id like concat ('%', #{projectId}, '%') and t.project_id = #{projectId}
</if>
<if test="turbineName != null and turbineName != ''">
and a.turbine_name like concat ('%', #{turbineName}, '%')
</if> </if>
<if test="turbineDesc != null and turbineDesc != ''"> <if test="turbineDesc != null and turbineDesc != ''">
and a.turbine_desc like concat ('%', #{turbineDesc}, '%') and t.turbine_desc like concat ('%', #{turbineDesc}, '%')
</if> </if>
<if test="manufacturer != null and manufacturer != ''"> <if test="manufacturer != null and manufacturer != ''">
and a.manufacturer like concat ('%', #{manufacturer}, '%') and t.turbine_manufacturer like concat ('%', #{manufacturer}, '%')
</if> </if>
<if test="model != null and model != ''"> <if test="model != null and model != ''">
and a.model like concat ('%', #{model}, '%') and t.turbine_model like concat ('%', #{model}, '%')
</if> </if>
</where> </where>
</select> </select>
<resultMap id="turbineInfoMap" type="com.dite.znpt.domain.vo.TurbineInfoResp">
<id property="turbineId" column="turbine_id"></id>
<result property="projectId" column="project_id"></result>
<result property="projectName" column="project_name"></result>
<result property="turbineName" column="turbine_name"></result>
<result property="turbineCode" column="turbine_code"></result>
<result property="turbineDesc" column="turbine_desc"></result>
<result property="turbineManufacturer" column="turbine_manufacturer"></result>
<result property="turbineModel" column="turbine_model"></result>
<result property="turbineCoverUrl" column="turbine_coverUrl"></result>
<collection property="partRespList" ofType="com.dite.znpt.domain.vo.PartResp">
<id property="partId" column="part_id"></id>
<result property="projectId" column="project_id"></result>
<result property="projectName" column="project_name"></result>
<result property="turbineId" column="turbine_id"></result>
<result property="turbineName" column="turbine_name"></result>
<result property="partName" column="part_name"></result>
<result property="partCode" column="part_code"></result>
<result property="partType" column="part_type"></result>
<result property="partDesc" column="part_desc"></result>
<result property="partManufacturer" column="part_manufacturer"></result>
<result property="partModel" column="part_model"></result>
</collection>
</resultMap>
<select id="listTurbineInfo" resultMap="turbineInfoMap">
SELECT
t.turbine_id, t.project_id, pr.project_name, t.turbine_name, t.turbine_code, t.turbine_desc, t.turbine_manufacturer, t.turbine_model, t.turbine_cover_url,
pa.part_id, pa.part_name, pa.part_code, pa.part_type, pa.part_desc, pa.part_manufacturer, pa.part_model
FROM turbine t
LEFT JOIN project pr ON t.project_id = pr.project_id
LEFT JOIN part pa ON t.turbine_id = pa.turbine_id
<where>
<if test="keyword != null and keyword != ''">
and (t.turbine_name like concat('%', #{keyword,jdbcType=VARCHAR}, '%') or t.turbine_code like concat('%', #{keyword,jdbcType=VARCHAR}, '%'))
</if>
<if test="projectId != null and projectId != ''">
and t.project_id = #{projectId}
</if>
<if test="turbineDesc != null and turbineDesc != ''">
and t.turbine_desc like concat ('%', #{turbineDesc}, '%')
</if>
<if test="turbineManufacturer != null and turbineManufacturer != ''">
and t.turbine_manufacturer like concat ('%', #{manufacturer}, '%')
</if>
<if test="turbineModel != null and turbineModel != ''">
and t.turbine_model like concat ('%', #{model}, '%')
</if>
</where>
</select>
<select id="getTurbineInfo" resultMap="turbineInfoMap">
SELECT
t.turbine_id, t.project_id, pr.project_name, t.turbine_name, t.turbine_code, t.turbine_desc, t.turbine_manufacturer, t.turbine_model, t.turbine_cover_url,
pa.part_id, pa.part_name, pa.part_code, pa.part_type, pa.part_desc, pa.part_manufacturer, pa.part_model
FROM turbine t
LEFT JOIN project pr ON t.project_id = pr.project_id
LEFT JOIN part pa ON t.turbine_id = pa.turbine_id
WHERE t.turbine_id = #{turbineId}
</select>
</mapper> </mapper>

View File

@ -3,6 +3,8 @@ package com.dite.znpt.web.controller;
import com.dite.znpt.domain.Constants; import com.dite.znpt.domain.Constants;
import com.dite.znpt.domain.vo.PartListReq; 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.vo.PartResp;
import com.dite.znpt.domain.entity.PartEntity; import com.dite.znpt.domain.entity.PartEntity;
import com.dite.znpt.service.PartService; import com.dite.znpt.service.PartService;
@ -30,29 +32,35 @@ public class PartController {
@Resource @Resource
private PartService partService; private PartService partService;
@ApiOperation(value = "获取列表", httpMethod = "GET") @ApiOperation(value = "分页获取部件列表", httpMethod = "GET")
@GetMapping("/page")
public PageResult<PartListResp> page(PartListReq partReq) {
return PageResult.ok(partService.page(partReq));
}
@ApiOperation(value = "获取部件列表", httpMethod = "GET")
@GetMapping("/list") @GetMapping("/list")
public PageResult<PartResp> list(PartListReq partReq) { public Result<List<PartListResp>> list(PartListReq partReq) {
return PageResult.ok(partService.selectList(partReq)); return Result.ok(partService.list(partReq));
} }
@ApiOperation(value = "根据Id获取详细信息", httpMethod = "GET") @ApiOperation(value = "根据Id获取详细信息", httpMethod = "GET")
@GetMapping("/{partId}") @GetMapping("/detail/{partId}")
public Result<PartResp> getInfo(@PathVariable String partId) { public Result<PartResp> detail(@PathVariable String partId) {
return Result.ok(partService.selectById(partId)); return Result.ok(partService.detail(partId));
} }
@ApiOperation(value = "新增", httpMethod = "POST") @ApiOperation(value = "新增", httpMethod = "POST")
@PostMapping @PostMapping
public Result<Object> add(@RequestBody PartEntity part) { public Result<Object> add(@RequestBody PartReq req) {
partService.saveData(part); partService.save(req);
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "修改", httpMethod = "PUT") @ApiOperation(value = "修改", httpMethod = "PUT")
@PutMapping @PutMapping("/{partId}")
public Result<Object> edit(@RequestBody PartEntity part) { public Result<Object> edit(@PathVariable String partId, @RequestBody PartReq req) {
partService.updateData(part); partService.update(partId, req);
return Result.ok(); return Result.ok();
} }
@ -63,14 +71,14 @@ public class PartController {
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "导出", httpMethod = "GET") @ApiOperation(value = "导出部件-需求待明确", httpMethod = "GET")
@GetMapping("/export") @GetMapping("/export")
@ResponseExcel(name = "") @ResponseExcel(name = "部件")
public List<PartResp> export(PartListReq partReq) { public List<PartListResp> export(PartListReq partReq) {
return partService.selectList(partReq); return partService.list(partReq);
} }
@ApiOperation(value = "导入", httpMethod = "POST") @ApiOperation(value = "导入部件-需求待明确", httpMethod = "POST")
@PostMapping("/import") @PostMapping("/import")
public Result<Object> importData(@RequestExcel List<PartEntity> dataList, BindingResult bindingResult) { public Result<Object> importData(@RequestExcel List<PartEntity> dataList, BindingResult bindingResult) {
// JSR 303 校验通用校验获取失败的数据 // JSR 303 校验通用校验获取失败的数据

View File

@ -2,10 +2,8 @@ package com.dite.znpt.web.controller;
import com.dite.znpt.domain.Constants; import com.dite.znpt.domain.Constants;
import com.dite.znpt.domain.vo.TurbineListReq; import com.dite.znpt.domain.vo.*;
import com.dite.znpt.domain.vo.TurbineResp;
import com.dite.znpt.domain.entity.TurbineEntity; import com.dite.znpt.domain.entity.TurbineEntity;
import com.dite.znpt.exception.ServiceException;
import com.dite.znpt.service.TurbineService; import com.dite.znpt.service.TurbineService;
import com.dite.znpt.domain.Result; import com.dite.znpt.domain.Result;
import com.dite.znpt.domain.PageResult; import com.dite.znpt.domain.PageResult;
@ -18,61 +16,78 @@ import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List; import java.util.List;
/** /**
* @author huise23 * @author huise23
* @date 2025/04/11 23:17 * @date 2025/04/11 23:17
*/ */
@Api(tags = "机组-项目关联") @Api(tags = "机组信息")
@RestController @RestController
@RequestMapping("/turbine") @RequestMapping("/turbine")
public class TurbineController { public class TurbineController {
@Resource @Resource
private TurbineService turbineService; private TurbineService turbineService;
@ApiOperation(value = "获取机组-项目关联列表", httpMethod = "GET") @ApiOperation(value = "分页查询机组列表", httpMethod = "GET")
@GetMapping({"/list", "/getByProjectId"}) @GetMapping("/page")
public PageResult<TurbineResp> list(TurbineListReq turbineReq) { public PageResult<TurbineListResp> page(TurbineListReq req) {
return PageResult.ok(turbineService.selectList(turbineReq)); return PageResult.ok(turbineService.page(req));
} }
@ApiOperation(value = "根据机组-项目关联Id获取详细信息", httpMethod = "GET") @ApiOperation(value = "查询机组列表", httpMethod = "GET")
@GetMapping("/{turbineCode}") @GetMapping("/list")
public Result<TurbineResp> getInfo(@PathVariable String turbineCode) { public Result<List<TurbineListResp>> list(TurbineListReq req) {
return Result.ok(turbineService.selectById(turbineCode)); return Result.ok(turbineService.list(req));
} }
@ApiOperation(value = "新增机组-项目关联", httpMethod = "POST") @ApiOperation(value = "查询机组明细列表", httpMethod = "GET")
@GetMapping("/list/info")
public Result<List<TurbineInfoResp>> listInfo( TurbineListReq req) {
return Result.ok(turbineService.listInfo(req));
}
@ApiOperation(value = "获取指定机组详情", httpMethod = "GET")
@GetMapping("/detail/{turbineId}")
public Result<TurbineResp> detail(@PathVariable String turbineId) {
return Result.ok(turbineService.detail(turbineId));
}
@ApiOperation(value = "获取指定机组明细详情", httpMethod = "GET")
@GetMapping("/info/{turbineId}")
public Result<TurbineInfoResp> info(@PathVariable String turbineId) {
return Result.ok(turbineService.info(turbineId));
}
@ApiOperation(value = "新增机组", httpMethod = "POST")
@PostMapping @PostMapping
public Result<Object> add(@RequestBody TurbineEntity turbine) { public Result<Object> add(@RequestBody TurbineReq req) {
turbineService.saveData(turbine); turbineService.save(req);
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "修改机组-项目关联", httpMethod = "PUT") @ApiOperation(value = "修改机组", httpMethod = "PUT")
@PutMapping @PutMapping("/{turbineId}")
public Result<Object> edit(@RequestBody TurbineEntity turbine) { public Result edit(@PathVariable String turbineId, @RequestBody TurbineReq req) {
turbineService.updateData(turbine); turbineService.update(turbineId, req);
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "删除机组-项目关联", httpMethod = "DELETE") @ApiOperation(value = "删除机组", httpMethod = "DELETE")
@DeleteMapping("/{turbineCode}") @DeleteMapping("/{turbineId}")
public Result<Object> remove(@PathVariable String turbineCode) { public Result<Object> remove(@PathVariable String turbineId) {
turbineService.deleteById(turbineCode); turbineService.deleteById(turbineId);
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "导出机组-项目关联", httpMethod = "GET") @ApiOperation(value = "导出机组-需求待明确", httpMethod = "GET")
@GetMapping("/export") @GetMapping("/export")
@ResponseExcel(name = "机组-项目关联") @ResponseExcel(name = "机组")
public List<TurbineResp> export(TurbineListReq turbineReq) { public List<TurbineListResp> export(TurbineListReq turbineReq) {
return turbineService.selectList(turbineReq); return turbineService.list(turbineReq);
} }
@ApiOperation(value = "导入机组-项目关联", httpMethod = "POST") @ApiOperation(value = "导入机组-需求待明确", httpMethod = "POST")
@PostMapping("/import") @PostMapping("/import")
public Result<Object> importData(@RequestExcel List<TurbineEntity> dataList, BindingResult bindingResult) { public Result<Object> importData(@RequestExcel List<TurbineEntity> dataList, BindingResult bindingResult) {
// JSR 303 校验通用校验获取失败的数据 // JSR 303 校验通用校验获取失败的数据