Browse Source

项目合同基础接口

ops-management-platform-backend-dev
gjh 1 month ago
parent
commit
809abcfddc
  1. 13
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ProjectInfoController.java
  2. 43
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ProjectInfo.java
  3. 58
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/ProjectInfoBo.java
  4. 3
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ContractInfoVo.java
  5. 58
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ProjectInfoVo.java
  6. 10
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/ProjectInfoMapper.java
  7. 9
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IProjectInfoService.java
  8. 28
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ProjectInfoServiceImpl.java

13
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ProjectInfoController.java

@ -1,7 +1,6 @@
package org.dromara.platform.controller; package org.dromara.platform.controller;
import java.util.List; import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
@ -27,7 +26,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
* 项目信息 * 项目信息
* *
* @author gejunhao * @author gejunhao
* @date 2025-02-20 * @date 2025-03-27
*/ */
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor
@ -103,14 +102,4 @@ public class ProjectInfoController extends BaseController {
@PathVariable String[] ids) { @PathVariable String[] ids) {
return toAjax(projectInfoService.deleteWithValidByIds(List.of(ids), true)); return toAjax(projectInfoService.deleteWithValidByIds(List.of(ids), true));
} }
/**
* 查询项目名称列表
*/
@SaCheckPermission("platform:projectInfo:projectNames")
@GetMapping("/projectNames")
public R<List<String>> list() {
return R.ok(projectInfoService.queryProjectNames());
}
} }

43
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ProjectInfo.java

@ -11,7 +11,7 @@ import java.io.Serial;
* 项目信息对象 project_info * 项目信息对象 project_info
* *
* @author gejunhao * @author gejunhao
* @date 2025-02-20 * @date 2025-03-27
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ -22,30 +22,30 @@ public class ProjectInfo extends TenantEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键ID * 唯一标识符
*/ */
@TableId(value = "id") @TableId(value = "id")
private String id; private String id;
/** /**
* 所属合同 * 项目名称
*/ */
private String associatedContract; private String projectName;
/** /**
* 项目名称 * 合同名称
*/ */
private String projectName; private String contractName;
/** /**
* 项目编号 * 项目编号
*/ */
private String projectId; private String projectCode;
/** /**
* 项目类别 * 项目类别
*/ */
private String projectCategory; private String projectType;
/** /**
* 故障大类 * 故障大类
@ -53,39 +53,44 @@ public class ProjectInfo extends TenantEntity {
private String faultCategory; private String faultCategory;
/** /**
* 接单超期时间(小时) * 接单超期时间
*/
private String orderTakingOverTime;
/**
* 接单超期扣款
*/ */
private String orderOvertimeHours; private String orderTakingCost;
/** /**
* 接单超期扣款(/小时) * 处理超期时间
*/ */
private String orderOvertimePenalty; private String handleOverTime;
/** /**
* 处理超期时间(小时) * 处理超期扣款
*/ */
private String processingOvertimeHours; private String handleCost;
/** /**
* 处理超期扣款(/小时) * 关联项目数量
*/ */
private String processingOvertimePenalty; private Long relatedProjectAmount;
/** /**
* 项目概要 * 项目概要
*/ */
private String projectSummary; private String projectContent;
/** /**
* 项目图标 * 项目图标
*/ */
private String projectIcon; private String icon;
/** /**
* 附件 * 附件
*/ */
private String attachments; private String attachment;
/** /**
* 当前状态 * 当前状态

58
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/ProjectInfoBo.java

@ -13,7 +13,7 @@ import jakarta.validation.constraints.*;
* 项目信息业务对象 project_info * 项目信息业务对象 project_info
* *
* @author gejunhao * @author gejunhao
* @date 2025-02-20 * @date 2025-03-27
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ -21,34 +21,34 @@ import jakarta.validation.constraints.*;
public class ProjectInfoBo extends BaseEntity { public class ProjectInfoBo extends BaseEntity {
/** /**
* 主键ID * 唯一标识符
*/ */
@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class }) @NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class })
private String id; private String id;
/**
* 所属合同
*/
@NotBlank(message = "所属合同不能为空", groups = { AddGroup.class, EditGroup.class })
private String associatedContract;
/** /**
* 项目名称 * 项目名称
*/ */
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectName; private String projectName;
/**
* 合同名称
*/
@NotBlank(message = "合同名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String contractName;
/** /**
* 项目编号 * 项目编号
*/ */
@NotBlank(message = "项目编号不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "项目编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectId; private String projectCode;
/** /**
* 项目类别 * 项目类别
*/ */
@NotBlank(message = "项目类别不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "项目类别不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectCategory; private String projectType;
/** /**
* 故障大类 * 故障大类
@ -57,46 +57,52 @@ public class ProjectInfoBo extends BaseEntity {
private String faultCategory; private String faultCategory;
/** /**
* 接单超期时间(小时) * 接单超期时间
*/
@NotBlank(message = "接单超期时间不能为空", groups = { AddGroup.class, EditGroup.class })
private String orderTakingOverTime;
/**
* 接单超期扣款
*/ */
@NotBlank(message = "接单超期时间(小时)不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "接单超期扣款不能为空", groups = { AddGroup.class, EditGroup.class })
private String orderOvertimeHours; private String orderTakingCost;
/** /**
* 接单超期扣款(/小时) * 处理超期时间
*/ */
@NotBlank(message = "接单超期扣款(元/小时)不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "处理超期时间不能为空", groups = { AddGroup.class, EditGroup.class })
private String orderOvertimePenalty; private String handleOverTime;
/** /**
* 处理超期时间(小时) * 处理超期扣款
*/ */
@NotBlank(message = "处理超期时间(小时)不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "处理超期扣款不能为空", groups = { AddGroup.class, EditGroup.class })
private String processingOvertimeHours; private String handleCost;
/** /**
* 处理超期扣款(/小时) * 关联项目数量
*/ */
@NotBlank(message = "处理超期扣款(元/小时)不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "关联项目数量不能为空", groups = { AddGroup.class, EditGroup.class })
private String processingOvertimePenalty; private Long relatedProjectAmount;
/** /**
* 项目概要 * 项目概要
*/ */
@NotBlank(message = "项目概要不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "项目概要不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectSummary; private String projectContent;
/** /**
* 项目图标 * 项目图标
*/ */
@NotBlank(message = "项目图标不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "项目图标不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectIcon; private String icon;
/** /**
* 附件 * 附件
*/ */
@NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class })
private String attachments; private String attachment;
/** /**
* 当前状态 * 当前状态

3
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ContractInfoVo.java

@ -89,18 +89,21 @@ public class ContractInfoVo implements Serializable {
* 签订日期 * 签订日期
*/ */
@ExcelProperty(value = "签订日期") @ExcelProperty(value = "签订日期")
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
private Date signDate; private Date signDate;
/** /**
* 开始时间 * 开始时间
*/ */
@ExcelProperty(value = "开始时间") @ExcelProperty(value = "开始时间")
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
private Date startDate; private Date startDate;
/** /**
* 结束时间 * 结束时间
*/ */
@ExcelProperty(value = "结束时间") @ExcelProperty(value = "结束时间")
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
private Date endDate; private Date endDate;
/** /**

58
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ProjectInfoVo.java

@ -18,7 +18,7 @@ import java.util.Date;
* 项目信息视图对象 project_info * 项目信息视图对象 project_info
* *
* @author gejunhao * @author gejunhao
* @date 2025-02-20 * @date 2025-03-27
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@ -29,34 +29,34 @@ public class ProjectInfoVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键ID * 唯一标识符
*/ */
@ExcelProperty(value = "主键ID") @ExcelProperty(value = "唯一标识符")
private String id; private String id;
/**
* 所属合同
*/
@ExcelProperty(value = "所属合同")
private String associatedContract;
/** /**
* 项目名称 * 项目名称
*/ */
@ExcelProperty(value = "项目名称") @ExcelProperty(value = "项目名称")
private String projectName; private String projectName;
/**
* 合同名称
*/
@ExcelProperty(value = "合同名称")
private String contractName;
/** /**
* 项目编号 * 项目编号
*/ */
@ExcelProperty(value = "项目编号") @ExcelProperty(value = "项目编号")
private String projectId; private String projectCode;
/** /**
* 项目类别 * 项目类别
*/ */
@ExcelProperty(value = "项目类别") @ExcelProperty(value = "项目类别")
private String projectCategory; private String projectType;
/** /**
* 故障大类 * 故障大类
@ -65,46 +65,52 @@ public class ProjectInfoVo implements Serializable {
private String faultCategory; private String faultCategory;
/** /**
* 接单超期时间(小时) * 接单超期时间
*/
@ExcelProperty(value = "接单超期时间")
private String orderTakingOverTime;
/**
* 接单超期扣款
*/ */
@ExcelProperty(value = "接单超期时间(小时)") @ExcelProperty(value = "接单超期扣款")
private String orderOvertimeHours; private String orderTakingCost;
/** /**
* 接单超期扣款(/小时) * 处理超期时间
*/ */
@ExcelProperty(value = "接单超期扣款(元/小时)") @ExcelProperty(value = "处理超期时间")
private String orderOvertimePenalty; private String handleOverTime;
/** /**
* 处理超期时间(小时) * 处理超期扣款
*/ */
@ExcelProperty(value = "处理超期时间(小时)") @ExcelProperty(value = "处理超期扣款")
private String processingOvertimeHours; private String handleCost;
/** /**
* 处理超期扣款(/小时) * 关联项目数量
*/ */
@ExcelProperty(value = "处理超期扣款(元/小时)") @ExcelProperty(value = "关联项目数量")
private String processingOvertimePenalty; private Long relatedProjectAmount;
/** /**
* 项目概要 * 项目概要
*/ */
@ExcelProperty(value = "项目概要") @ExcelProperty(value = "项目概要")
private String projectSummary; private String projectContent;
/** /**
* 项目图标 * 项目图标
*/ */
@ExcelProperty(value = "项目图标") @ExcelProperty(value = "项目图标")
private String projectIcon; private String icon;
/** /**
* 附件 * 附件
*/ */
@ExcelProperty(value = "附件") @ExcelProperty(value = "附件")
private String attachments; private String attachment;
/** /**
* 当前状态 * 当前状态

10
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/ProjectInfoMapper.java

@ -1,19 +1,17 @@
package org.dromara.platform.mapper; package org.dromara.platform.mapper;
import org.apache.ibatis.annotations.Select;
import org.dromara.platform.domain.ProjectInfo; import org.dromara.platform.domain.ProjectInfo;
import org.dromara.platform.domain.vo.ProjectInfoVo; import org.dromara.platform.domain.vo.ProjectInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/** /**
* 项目信息Mapper接口 * 项目信息Mapper接口
* *
* @author gejunhao * @author gejunhao
* @date 2025-02-20 * @date 2025-03-27
*/ */
public interface ProjectInfoMapper extends BaseMapperPlus<ProjectInfo, ProjectInfoVo> { public interface ProjectInfoMapper extends BaseMapperPlus<ProjectInfo, ProjectInfoVo> {
@Select("SELECT project_name FROM project_info") // @Select("SELECT project_name FROM project_info")
List<String> queryProjectNames(); // List<String> queryProjectNames();
} }

9
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IProjectInfoService.java

@ -7,13 +7,12 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 项目信息Service接口 * 项目信息Service接口
* *
* @author gejunhao * @author gejunhao
* @date 2025-02-20 * @date 2025-03-27
*/ */
public interface IProjectInfoService { public interface IProjectInfoService {
@ -66,10 +65,4 @@ public interface IProjectInfoService {
* @return 是否删除成功 * @return 是否删除成功
*/ */
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
/**
* 获取项目名称列表 (用于下拉框查询)
* @return
*/
List<String> queryProjectNames();
} }

28
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ProjectInfoServiceImpl.java

@ -23,7 +23,7 @@ import java.util.Collection;
* 项目信息Service业务层处理 * 项目信息Service业务层处理
* *
* @author gejunhao * @author gejunhao
* @date 2025-02-20 * @date 2025-03-27
*/ */
@RequiredArgsConstructor @RequiredArgsConstructor
@Service @Service
@ -71,18 +71,19 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
private LambdaQueryWrapper<ProjectInfo> buildQueryWrapper(ProjectInfoBo bo) { private LambdaQueryWrapper<ProjectInfo> buildQueryWrapper(ProjectInfoBo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<ProjectInfo> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<ProjectInfo> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getAssociatedContract()), ProjectInfo::getAssociatedContract, bo.getAssociatedContract());
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), ProjectInfo::getProjectName, bo.getProjectName()); lqw.like(StringUtils.isNotBlank(bo.getProjectName()), ProjectInfo::getProjectName, bo.getProjectName());
lqw.eq(StringUtils.isNotBlank(bo.getProjectId()), ProjectInfo::getProjectId, bo.getProjectId()); lqw.like(StringUtils.isNotBlank(bo.getContractName()), ProjectInfo::getContractName, bo.getContractName());
lqw.eq(StringUtils.isNotBlank(bo.getProjectCategory()), ProjectInfo::getProjectCategory, bo.getProjectCategory()); lqw.eq(StringUtils.isNotBlank(bo.getProjectCode()), ProjectInfo::getProjectCode, bo.getProjectCode());
lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), ProjectInfo::getProjectType, bo.getProjectType());
lqw.eq(StringUtils.isNotBlank(bo.getFaultCategory()), ProjectInfo::getFaultCategory, bo.getFaultCategory()); lqw.eq(StringUtils.isNotBlank(bo.getFaultCategory()), ProjectInfo::getFaultCategory, bo.getFaultCategory());
lqw.eq(StringUtils.isNotBlank(bo.getOrderOvertimeHours()), ProjectInfo::getOrderOvertimeHours, bo.getOrderOvertimeHours()); lqw.eq(StringUtils.isNotBlank(bo.getOrderTakingOverTime()), ProjectInfo::getOrderTakingOverTime, bo.getOrderTakingOverTime());
lqw.eq(StringUtils.isNotBlank(bo.getOrderOvertimePenalty()), ProjectInfo::getOrderOvertimePenalty, bo.getOrderOvertimePenalty()); lqw.eq(StringUtils.isNotBlank(bo.getOrderTakingCost()), ProjectInfo::getOrderTakingCost, bo.getOrderTakingCost());
lqw.eq(StringUtils.isNotBlank(bo.getProcessingOvertimeHours()), ProjectInfo::getProcessingOvertimeHours, bo.getProcessingOvertimeHours()); lqw.eq(StringUtils.isNotBlank(bo.getHandleOverTime()), ProjectInfo::getHandleOverTime, bo.getHandleOverTime());
lqw.eq(StringUtils.isNotBlank(bo.getProcessingOvertimePenalty()), ProjectInfo::getProcessingOvertimePenalty, bo.getProcessingOvertimePenalty()); lqw.eq(StringUtils.isNotBlank(bo.getHandleCost()), ProjectInfo::getHandleCost, bo.getHandleCost());
lqw.eq(StringUtils.isNotBlank(bo.getProjectSummary()), ProjectInfo::getProjectSummary, bo.getProjectSummary()); lqw.eq(bo.getRelatedProjectAmount() != null, ProjectInfo::getRelatedProjectAmount, bo.getRelatedProjectAmount());
lqw.eq(StringUtils.isNotBlank(bo.getProjectIcon()), ProjectInfo::getProjectIcon, bo.getProjectIcon()); lqw.eq(StringUtils.isNotBlank(bo.getProjectContent()), ProjectInfo::getProjectContent, bo.getProjectContent());
lqw.eq(StringUtils.isNotBlank(bo.getAttachments()), ProjectInfo::getAttachments, bo.getAttachments()); lqw.eq(StringUtils.isNotBlank(bo.getIcon()), ProjectInfo::getIcon, bo.getIcon());
lqw.eq(StringUtils.isNotBlank(bo.getAttachment()), ProjectInfo::getAttachment, bo.getAttachment());
lqw.eq(bo.getStatus() != null, ProjectInfo::getStatus, bo.getStatus()); lqw.eq(bo.getStatus() != null, ProjectInfo::getStatus, bo.getStatus());
return lqw; return lqw;
} }
@ -138,9 +139,4 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
} }
return baseMapper.deleteByIds(ids) > 0; return baseMapper.deleteByIds(ids) > 0;
} }
@Override
public List<String> queryProjectNames() {
return baseMapper.queryProjectNames();
}
} }

Loading…
Cancel
Save