From f3244f378f35769e29b5d1caee7aec2471364931 Mon Sep 17 00:00:00 2001 From: yinq Date: Fri, 24 Oct 2025 16:58:28 +0800 Subject: [PATCH] =?UTF-8?q?1.0.20=20=E9=A1=B9=E7=9B=AE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E3=80=81=E9=A1=B9=E7=9B=AE=E4=BF=A1=E6=81=AF=E3=80=81=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=85=B3=E8=81=94=E5=90=88=E5=90=8C=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ErpProjectContractsController.java | 116 ++++++++++++ .../controller/ErpProjectInfoController.java | 116 ++++++++++++ .../controller/ErpProjectTypeController.java | 116 ++++++++++++ .../oa/erp/domain/ErpProjectContracts.java | 62 +++++++ .../dromara/oa/erp/domain/ErpProjectInfo.java | 138 +++++++++++++++ .../dromara/oa/erp/domain/ErpProjectType.java | 67 +++++++ .../erp/domain/bo/ErpProjectContractsBo.java | 54 ++++++ .../oa/erp/domain/bo/ErpProjectInfoBo.java | 135 ++++++++++++++ .../oa/erp/domain/bo/ErpProjectTypeBo.java | 59 +++++++ .../erp/domain/vo/ErpProjectContractsVo.java | 69 ++++++++ .../oa/erp/domain/vo/ErpProjectInfoVo.java | 165 ++++++++++++++++++ .../oa/erp/domain/vo/ErpProjectTypeVo.java | 76 ++++++++ .../erp/mapper/ErpProjectContractsMapper.java | 37 ++++ .../oa/erp/mapper/ErpProjectInfoMapper.java | 37 ++++ .../oa/erp/mapper/ErpProjectTypeMapper.java | 37 ++++ .../service/IErpProjectContractsService.java | 69 ++++++++ .../erp/service/IErpProjectInfoService.java | 69 ++++++++ .../erp/service/IErpProjectTypeService.java | 59 +++++++ .../impl/ErpProjectContractsServiceImpl.java | 134 ++++++++++++++ .../impl/ErpProjectInfoServiceImpl.java | 150 ++++++++++++++++ .../impl/ErpProjectTypeServiceImpl.java | 119 +++++++++++++ .../oa/erp/ErpProjectContractsMapper.xml | 14 ++ .../mapper/oa/erp/ErpProjectInfoMapper.xml | 14 ++ .../mapper/oa/erp/ErpProjectTypeMapper.xml | 14 ++ 24 files changed, 1926 insertions(+) create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectContractsController.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectInfoController.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectTypeController.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectContracts.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectInfo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectType.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectContractsBo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectInfoBo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectTypeBo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectContractsVo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectInfoVo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectTypeVo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectContractsMapper.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectInfoMapper.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectTypeMapper.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectContractsService.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectInfoService.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectTypeService.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectContractsServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectInfoServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectTypeServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectContractsMapper.xml create mode 100644 ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectInfoMapper.xml create mode 100644 ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectTypeMapper.xml diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectContractsController.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectContractsController.java new file mode 100644 index 00000000..cd107745 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectContractsController.java @@ -0,0 +1,116 @@ +package org.dromara.oa.erp.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.oa.erp.domain.vo.ErpProjectContractsVo; +import org.dromara.oa.erp.domain.bo.ErpProjectContractsBo; +import org.dromara.oa.erp.service.IErpProjectContractsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 项目关联合同 + * 前端访问路由地址为:/oa/erp/projectContracts + * + * @author Yinq + * @date 2025-10-24 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/erp/projectContracts") +public class ErpProjectContractsController extends BaseController { + + private final IErpProjectContractsService erpProjectContractsService; + + /** + * 查询项目关联合同列表 + */ + @SaCheckPermission("oa/erp:projectContracts:list") + @GetMapping("/list") + public TableDataInfo list(ErpProjectContractsBo bo, PageQuery pageQuery) { + return erpProjectContractsService.queryPageList(bo, pageQuery); + } + + /** + * 导出项目关联合同列表 + */ + @SaCheckPermission("oa/erp:projectContracts:export") + @Log(title = "项目关联合同", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ErpProjectContractsBo bo, HttpServletResponse response) { + List list = erpProjectContractsService.queryList(bo); + ExcelUtil.exportExcel(list, "项目关联合同", ErpProjectContractsVo.class, response); + } + + /** + * 获取项目关联合同详细信息 + * + * @param projectContractsId 主键 + */ + @SaCheckPermission("oa/erp:projectContracts:query") + @GetMapping("/{projectContractsId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("projectContractsId") Long projectContractsId) { + return R.ok(erpProjectContractsService.queryById(projectContractsId)); + } + + /** + * 新增项目关联合同 + */ + @SaCheckPermission("oa/erp:projectContracts:add") + @Log(title = "项目关联合同", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ErpProjectContractsBo bo) { + return toAjax(erpProjectContractsService.insertByBo(bo)); + } + + /** + * 修改项目关联合同 + */ + @SaCheckPermission("oa/erp:projectContracts:edit") + @Log(title = "项目关联合同", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ErpProjectContractsBo bo) { + return toAjax(erpProjectContractsService.updateByBo(bo)); + } + + /** + * 删除项目关联合同 + * + * @param projectContractsIds 主键串 + */ + @SaCheckPermission("oa/erp:projectContracts:remove") + @Log(title = "项目关联合同", businessType = BusinessType.DELETE) + @DeleteMapping("/{projectContractsIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("projectContractsIds") Long[] projectContractsIds) { + return toAjax(erpProjectContractsService.deleteWithValidByIds(List.of(projectContractsIds), true)); + } + + /** + * 下拉框查询项目关联合同列表 + */ + @GetMapping("/getErpProjectContractsList") + public R> getErpProjectContractsList(ErpProjectContractsBo bo) { + List list = erpProjectContractsService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectInfoController.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectInfoController.java new file mode 100644 index 00000000..42c4b82f --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectInfoController.java @@ -0,0 +1,116 @@ +package org.dromara.oa.erp.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo; +import org.dromara.oa.erp.domain.bo.ErpProjectInfoBo; +import org.dromara.oa.erp.service.IErpProjectInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 项目信息 + * 前端访问路由地址为:/oa/erp/projectInfo + * + * @author Yinq + * @date 2025-10-24 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/erp/projectInfo") +public class ErpProjectInfoController extends BaseController { + + private final IErpProjectInfoService erpProjectInfoService; + + /** + * 查询项目信息列表 + */ + @SaCheckPermission("oa/erp:projectInfo:list") + @GetMapping("/list") + public TableDataInfo list(ErpProjectInfoBo bo, PageQuery pageQuery) { + return erpProjectInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出项目信息列表 + */ + @SaCheckPermission("oa/erp:projectInfo:export") + @Log(title = "项目信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ErpProjectInfoBo bo, HttpServletResponse response) { + List list = erpProjectInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "项目信息", ErpProjectInfoVo.class, response); + } + + /** + * 获取项目信息详细信息 + * + * @param projectId 主键 + */ + @SaCheckPermission("oa/erp:projectInfo:query") + @GetMapping("/{projectId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("projectId") Long projectId) { + return R.ok(erpProjectInfoService.queryById(projectId)); + } + + /** + * 新增项目信息 + */ + @SaCheckPermission("oa/erp:projectInfo:add") + @Log(title = "项目信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ErpProjectInfoBo bo) { + return toAjax(erpProjectInfoService.insertByBo(bo)); + } + + /** + * 修改项目信息 + */ + @SaCheckPermission("oa/erp:projectInfo:edit") + @Log(title = "项目信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ErpProjectInfoBo bo) { + return toAjax(erpProjectInfoService.updateByBo(bo)); + } + + /** + * 删除项目信息 + * + * @param projectIds 主键串 + */ + @SaCheckPermission("oa/erp:projectInfo:remove") + @Log(title = "项目信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{projectIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("projectIds") Long[] projectIds) { + return toAjax(erpProjectInfoService.deleteWithValidByIds(List.of(projectIds), true)); + } + + /** + * 下拉框查询项目信息列表 + */ + @GetMapping("/getErpProjectInfoList") + public R> getErpProjectInfoList(ErpProjectInfoBo bo) { + List list = erpProjectInfoService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectTypeController.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectTypeController.java new file mode 100644 index 00000000..a75c9c4e --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/controller/ErpProjectTypeController.java @@ -0,0 +1,116 @@ +package org.dromara.oa.erp.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.oa.erp.domain.vo.ErpProjectTypeVo; +import org.dromara.oa.erp.domain.bo.ErpProjectTypeBo; +import org.dromara.oa.erp.service.IErpProjectTypeService; + +/** + * 项目类型信息 + * 前端访问路由地址为:/oa/erp/projectType + * + * @author Yinq + * @date 2025-10-24 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/erp/projectType") +public class ErpProjectTypeController extends BaseController { + + private final IErpProjectTypeService erpProjectTypeService; + + /** + * 查询项目类型信息列表 + */ + @SaCheckPermission("oa/erp:projectType:list") + @GetMapping("/list") + public R> list(ErpProjectTypeBo bo) { + List list = erpProjectTypeService.queryList(bo); + return R.ok(list); + } + + /** + * 导出项目类型信息列表 + */ + @SaCheckPermission("oa/erp:projectType:export") + @Log(title = "项目类型信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ErpProjectTypeBo bo, HttpServletResponse response) { + List list = erpProjectTypeService.queryList(bo); + ExcelUtil.exportExcel(list, "项目类型信息", ErpProjectTypeVo.class, response); + } + + /** + * 获取项目类型信息详细信息 + * + * @param projectTypeId 主键 + */ + @SaCheckPermission("oa/erp:projectType:query") + @GetMapping("/{projectTypeId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("projectTypeId") Long projectTypeId) { + return R.ok(erpProjectTypeService.queryById(projectTypeId)); + } + + /** + * 新增项目类型信息 + */ + @SaCheckPermission("oa/erp:projectType:add") + @Log(title = "项目类型信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ErpProjectTypeBo bo) { + return toAjax(erpProjectTypeService.insertByBo(bo)); + } + + /** + * 修改项目类型信息 + */ + @SaCheckPermission("oa/erp:projectType:edit") + @Log(title = "项目类型信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ErpProjectTypeBo bo) { + return toAjax(erpProjectTypeService.updateByBo(bo)); + } + + /** + * 删除项目类型信息 + * + * @param projectTypeIds 主键串 + */ + @SaCheckPermission("oa/erp:projectType:remove") + @Log(title = "项目类型信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{projectTypeIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("projectTypeIds") Long[] projectTypeIds) { + return toAjax(erpProjectTypeService.deleteWithValidByIds(List.of(projectTypeIds), true)); + } + + /** + * 下拉框查询项目类型信息列表 + */ + @GetMapping("/getErpProjectTypeList") + public R> getErpProjectTypeList(ErpProjectTypeBo bo) { + List list = erpProjectTypeService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectContracts.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectContracts.java new file mode 100644 index 00000000..457964bb --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectContracts.java @@ -0,0 +1,62 @@ +package org.dromara.oa.erp.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 项目关联合同对象 erp_project_contracts + * + * @author Yinq + * @date 2025-10-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("erp_project_contracts") +public class ErpProjectContracts extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 关联ID + */ + @TableId(value = "project_contracts_id", type = IdType.AUTO) + private Long projectContractsId; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 合同ID + */ + private Long contractId; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectInfo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectInfo.java new file mode 100644 index 00000000..891e4d52 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectInfo.java @@ -0,0 +1,138 @@ +package org.dromara.oa.erp.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 项目信息对象 erp_project_info + * + * @author Yinq + * @date 2025-10-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("erp_project_info") +public class ErpProjectInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 项目ID + */ + @TableId(value = "project_id", type = IdType.ASSIGN_ID) + private Long projectId; + + /** + * 有无合同(1有 2无) + */ + private String contractFlag; + + /** + * 项目编号 + */ + private String projectCode; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 业务方向(1智能轮胎 2轮胎工厂 3快递物流 4锂电 5工业软件 6智能制造 7新行业及零售) + */ + private String businessDirection; + + /** + * 项目类别(1销售(实施、物流) 2销售(备件) 3研发 4预投) + */ + private String projectCategory; + + /** + * 备件标识(1是 0否) + */ + private String spareFlag; + + /** + * 项目类型ID + */ + private Long projectTypeId; + + /** + * 付款方式 + */ + private String paymentMethod; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 项目经理 + */ + private Long managerId; + + /** + * 部门负责人 + */ + private Long chargeId; + + /** + * 分管副总 + */ + private Long deputyId; + + /** + * 抄送人员 + */ + private String peopleId; + + /** + * 金额 + */ + private BigDecimal amount; + + /** + * 项目状态(1暂存 2审批中 3可用) + */ + private String projectStatus; + + /** + * 流程状态 + */ + private String flowStatus; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 合同ID(预留) + */ + private Long contractId; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectType.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectType.java new file mode 100644 index 00000000..b703df23 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectType.java @@ -0,0 +1,67 @@ +package org.dromara.oa.erp.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 项目类型信息对象 erp_project_type + * + * @author Yinq + * @date 2025-10-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("erp_project_type") +public class ErpProjectType extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 项目类型ID + */ + @TableId(value = "project_type_id", type = IdType.AUTO) + private Long projectTypeId; + + /** + * 父级ID + */ + private Long parentId; + + /** + * 项目类型名称 + */ + private String typeName; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 备件标识(1是 0否) + */ + private String spareFlag; + + /** + * 备注 + */ + private String remark; + + /** + * 顶级标识(1是 0否) + */ + private String topFlag; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectContractsBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectContractsBo.java new file mode 100644 index 00000000..c89e2a5f --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectContractsBo.java @@ -0,0 +1,54 @@ +package org.dromara.oa.erp.domain.bo; + +import org.dromara.oa.erp.domain.ErpProjectContracts; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 项目关联合同业务对象 erp_project_contracts + * + * @author Yinq + * @date 2025-10-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ErpProjectContracts.class, reverseConvertGenerate = false) +public class ErpProjectContractsBo extends BaseEntity { + + /** + * 关联ID + */ + private Long projectContractsId; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 合同ID + */ + private Long contractId; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectInfoBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectInfoBo.java new file mode 100644 index 00000000..d2cdd2d7 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectInfoBo.java @@ -0,0 +1,135 @@ +package org.dromara.oa.erp.domain.bo; + +import org.dromara.oa.erp.domain.ErpProjectInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 项目信息业务对象 erp_project_info + * + * @author Yinq + * @date 2025-10-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ErpProjectInfo.class, reverseConvertGenerate = false) +public class ErpProjectInfoBo extends BaseEntity { + + /** + * 项目ID + */ + private Long projectId; + + /** + * 有无合同(1有 2无) + */ + @NotBlank(message = "有无合同(1有 2无)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractFlag; + + /** + * 项目编号 + */ + @NotBlank(message = "项目编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectCode; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectName; + + /** + * 业务方向(1智能轮胎 2轮胎工厂 3快递物流 4锂电 5工业软件 6智能制造 7新行业及零售) + */ + @NotBlank(message = "业务方向(1智能轮胎 2轮胎工厂 3快递物流 4锂电 5工业软件 6智能制造 7新行业及零售)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String businessDirection; + + /** + * 项目类别(1销售(实施、物流) 2销售(备件) 3研发 4预投) + */ + @NotBlank(message = "项目类别(1销售(实施、物流) 2销售(备件) 3研发 4预投)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectCategory; + + /** + * 备件标识(1是 0否) + */ + private String spareFlag; + + /** + * 项目类型ID + */ + private Long projectTypeId; + + /** + * 付款方式 + */ + private String paymentMethod; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 项目经理 + */ + private Long managerId; + + /** + * 部门负责人 + */ + private Long chargeId; + + /** + * 分管副总 + */ + private Long deputyId; + + /** + * 抄送人员 + */ + private String peopleId; + + /** + * 金额 + */ + private BigDecimal amount; + + /** + * 项目状态(1暂存 2审批中 3可用) + */ + private String projectStatus; + + /** + * 流程状态 + */ + private String flowStatus; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 合同ID(预留) + */ + private Long contractId; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectTypeBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectTypeBo.java new file mode 100644 index 00000000..a426e4ff --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectTypeBo.java @@ -0,0 +1,59 @@ +package org.dromara.oa.erp.domain.bo; + +import org.dromara.oa.erp.domain.ErpProjectType; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 项目类型信息业务对象 erp_project_type + * + * @author Yinq + * @date 2025-10-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ErpProjectType.class, reverseConvertGenerate = false) +public class ErpProjectTypeBo extends BaseEntity { + + /** + * 项目类型ID + */ + private Long projectTypeId; + + /** + * 父级ID + */ + private Long parentId; + + /** + * 项目类型名称 + */ + private String typeName; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 备件标识(1是 0否) + */ + private String spareFlag; + + /** + * 备注 + */ + private String remark; + + /** + * 顶级标识(1是 0否) + */ + private String topFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectContractsVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectContractsVo.java new file mode 100644 index 00000000..b49205ca --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectContractsVo.java @@ -0,0 +1,69 @@ +package org.dromara.oa.erp.domain.vo; + +import org.dromara.oa.erp.domain.ErpProjectContracts; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 项目关联合同视图对象 erp_project_contracts + * + * @author Yinq + * @date 2025-10-24 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ErpProjectContracts.class) +public class ErpProjectContractsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 关联ID + */ + @ExcelProperty(value = "关联ID") + private Long projectContractsId; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 合同ID + */ + @ExcelProperty(value = "合同ID") + private Long contractId; + + /** + * 排序号 + */ + @ExcelProperty(value = "排序号") + private Long sortOrder; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectInfoVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectInfoVo.java new file mode 100644 index 00000000..aa6ec86d --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectInfoVo.java @@ -0,0 +1,165 @@ +package org.dromara.oa.erp.domain.vo; + +import java.math.BigDecimal; +import org.dromara.oa.erp.domain.ErpProjectInfo; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 项目信息视图对象 erp_project_info + * + * @author Yinq + * @date 2025-10-24 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ErpProjectInfo.class) +public class ErpProjectInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 有无合同(1有 2无) + */ + @ExcelProperty(value = "有无合同", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "contract_flag") + private String contractFlag; + + /** + * 项目编号 + */ + @ExcelProperty(value = "项目编号") + private String projectCode; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 业务方向(1智能轮胎 2轮胎工厂 3快递物流 4锂电 5工业软件 6智能制造 7新行业及零售) + */ + @ExcelProperty(value = "业务方向", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "business_direction") + private String businessDirection; + + /** + * 项目类别(1销售(实施、物流) 2销售(备件) 3研发 4预投) + */ + @ExcelProperty(value = "项目类别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "project_category") + private String projectCategory; + + /** + * 备件标识(1是 0否) + */ + @ExcelProperty(value = "备件标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "spare_flag") + private String spareFlag; + + /** + * 项目类型ID + */ + @ExcelProperty(value = "项目类型ID") + private Long projectTypeId; + + /** + * 付款方式 + */ + @ExcelProperty(value = "付款方式") + private String paymentMethod; + + /** + * 部门ID + */ + @ExcelProperty(value = "部门ID") + private Long deptId; + + /** + * 项目经理 + */ + @ExcelProperty(value = "项目经理") + private Long managerId; + + /** + * 部门负责人 + */ + @ExcelProperty(value = "部门负责人") + private Long chargeId; + + /** + * 分管副总 + */ + @ExcelProperty(value = "分管副总") + private Long deputyId; + + /** + * 抄送人员 + */ + @ExcelProperty(value = "抄送人员") + private String peopleId; + + /** + * 金额 + */ + @ExcelProperty(value = "金额") + private BigDecimal amount; + + /** + * 项目状态(1暂存 2审批中 3可用) + */ + @ExcelProperty(value = "项目状态(1暂存 2审批中 3可用)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "project_status") + private String projectStatus; + + /** + * 流程状态 + */ + @ExcelProperty(value = "流程状态") + private String flowStatus; + + /** + * 排序号 + */ + @ExcelProperty(value = "排序号") + private Long sortOrder; + + /** + * 合同ID(预留) + */ + @ExcelProperty(value = "合同ID(预留)") + private Long contractId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectTypeVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectTypeVo.java new file mode 100644 index 00000000..f9e333b6 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectTypeVo.java @@ -0,0 +1,76 @@ +package org.dromara.oa.erp.domain.vo; + +import org.dromara.oa.erp.domain.ErpProjectType; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 项目类型信息视图对象 erp_project_type + * + * @author Yinq + * @date 2025-10-24 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ErpProjectType.class) +public class ErpProjectTypeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 项目类型ID + */ + @ExcelProperty(value = "项目类型ID") + private Long projectTypeId; + + /** + * 父级ID + */ + @ExcelProperty(value = "父级ID") + private Long parentId; + + /** + * 项目类型名称 + */ + @ExcelProperty(value = "项目类型名称") + private String typeName; + + /** + * 排序号 + */ + @ExcelProperty(value = "排序号") + private Long sortOrder; + + /** + * 备件标识(1是 0否) + */ + @ExcelProperty(value = "备件标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "spare_flag") + private String spareFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 顶级标识(1是 0否) + */ + @ExcelProperty(value = "顶级标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "top_flag") + private String topFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectContractsMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectContractsMapper.java new file mode 100644 index 00000000..6389a4e5 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectContractsMapper.java @@ -0,0 +1,37 @@ +package org.dromara.oa.erp.mapper; + +import java.util.List; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.oa.erp.domain.ErpProjectContracts; +import org.dromara.oa.erp.domain.vo.ErpProjectContractsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 项目关联合同Mapper接口 + * + * @author Yinq + * @date 2025-10-24 + */ +public interface ErpProjectContractsMapper extends BaseMapperPlus { + + /** + * 查询项目关联合同列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 项目关联合同集合 + */ + public Page selectCustomErpProjectContractsVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询项目关联合同列表 + * + * @param queryWrapper 条件 + * @return 项目关联合同集合 + */ + public List selectCustomErpProjectContractsVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectInfoMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectInfoMapper.java new file mode 100644 index 00000000..a3a7d377 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectInfoMapper.java @@ -0,0 +1,37 @@ +package org.dromara.oa.erp.mapper; + +import java.util.List; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.oa.erp.domain.ErpProjectInfo; +import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 项目信息Mapper接口 + * + * @author Yinq + * @date 2025-10-24 + */ +public interface ErpProjectInfoMapper extends BaseMapperPlus { + + /** + * 查询项目信息列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 项目信息集合 + */ + public Page selectCustomErpProjectInfoVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询项目信息列表 + * + * @param queryWrapper 条件 + * @return 项目信息集合 + */ + public List selectCustomErpProjectInfoVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectTypeMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectTypeMapper.java new file mode 100644 index 00000000..deb0c07e --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectTypeMapper.java @@ -0,0 +1,37 @@ +package org.dromara.oa.erp.mapper; + +import java.util.List; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.oa.erp.domain.ErpProjectType; +import org.dromara.oa.erp.domain.vo.ErpProjectTypeVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 项目类型信息Mapper接口 + * + * @author Yinq + * @date 2025-10-24 + */ +public interface ErpProjectTypeMapper extends BaseMapperPlus { + + /** + * 查询项目类型信息列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 项目类型信息集合 + */ + public Page selectCustomErpProjectTypeVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询项目类型信息列表 + * + * @param queryWrapper 条件 + * @return 项目类型信息集合 + */ + public List selectCustomErpProjectTypeVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectContractsService.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectContractsService.java new file mode 100644 index 00000000..0e9ce200 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectContractsService.java @@ -0,0 +1,69 @@ +package org.dromara.oa.erp.service; + +import org.dromara.oa.erp.domain.ErpProjectContracts; +import org.dromara.oa.erp.domain.vo.ErpProjectContractsVo; +import org.dromara.oa.erp.domain.bo.ErpProjectContractsBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 项目关联合同Service接口 + * + * @author Yinq + * @date 2025-10-24 + */ +public interface IErpProjectContractsService { + + /** + * 查询项目关联合同 + * + * @param projectContractsId 主键 + * @return 项目关联合同 + */ + ErpProjectContractsVo queryById(Long projectContractsId); + + /** + * 分页查询项目关联合同列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 项目关联合同分页列表 + */ + TableDataInfo queryPageList(ErpProjectContractsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的项目关联合同列表 + * + * @param bo 查询条件 + * @return 项目关联合同列表 + */ + List queryList(ErpProjectContractsBo bo); + + /** + * 新增项目关联合同 + * + * @param bo 项目关联合同 + * @return 是否新增成功 + */ + Boolean insertByBo(ErpProjectContractsBo bo); + + /** + * 修改项目关联合同 + * + * @param bo 项目关联合同 + * @return 是否修改成功 + */ + Boolean updateByBo(ErpProjectContractsBo bo); + + /** + * 校验并批量删除项目关联合同信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectInfoService.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectInfoService.java new file mode 100644 index 00000000..dd879d0f --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.oa.erp.service; + +import org.dromara.oa.erp.domain.ErpProjectInfo; +import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo; +import org.dromara.oa.erp.domain.bo.ErpProjectInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 项目信息Service接口 + * + * @author Yinq + * @date 2025-10-24 + */ +public interface IErpProjectInfoService { + + /** + * 查询项目信息 + * + * @param projectId 主键 + * @return 项目信息 + */ + ErpProjectInfoVo queryById(Long projectId); + + /** + * 分页查询项目信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 项目信息分页列表 + */ + TableDataInfo queryPageList(ErpProjectInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的项目信息列表 + * + * @param bo 查询条件 + * @return 项目信息列表 + */ + List queryList(ErpProjectInfoBo bo); + + /** + * 新增项目信息 + * + * @param bo 项目信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ErpProjectInfoBo bo); + + /** + * 修改项目信息 + * + * @param bo 项目信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ErpProjectInfoBo bo); + + /** + * 校验并批量删除项目信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectTypeService.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectTypeService.java new file mode 100644 index 00000000..3d00736a --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/IErpProjectTypeService.java @@ -0,0 +1,59 @@ +package org.dromara.oa.erp.service; + +import org.dromara.oa.erp.domain.ErpProjectType; +import org.dromara.oa.erp.domain.vo.ErpProjectTypeVo; +import org.dromara.oa.erp.domain.bo.ErpProjectTypeBo; + +import java.util.Collection; +import java.util.List; + +/** + * 项目类型信息Service接口 + * + * @author Yinq + * @date 2025-10-24 + */ +public interface IErpProjectTypeService { + + /** + * 查询项目类型信息 + * + * @param projectTypeId 主键 + * @return 项目类型信息 + */ + ErpProjectTypeVo queryById(Long projectTypeId); + + + /** + * 查询符合条件的项目类型信息列表 + * + * @param bo 查询条件 + * @return 项目类型信息列表 + */ + List queryList(ErpProjectTypeBo bo); + + /** + * 新增项目类型信息 + * + * @param bo 项目类型信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ErpProjectTypeBo bo); + + /** + * 修改项目类型信息 + * + * @param bo 项目类型信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ErpProjectTypeBo bo); + + /** + * 校验并批量删除项目类型信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectContractsServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectContractsServiceImpl.java new file mode 100644 index 00000000..0b1316be --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectContractsServiceImpl.java @@ -0,0 +1,134 @@ +package org.dromara.oa.erp.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.oa.erp.domain.bo.ErpProjectContractsBo; +import org.dromara.oa.erp.domain.vo.ErpProjectContractsVo; +import org.dromara.oa.erp.domain.ErpProjectContracts; +import org.dromara.oa.erp.mapper.ErpProjectContractsMapper; +import org.dromara.oa.erp.service.IErpProjectContractsService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 项目关联合同Service业务层处理 + * + * @author Yinq + * @date 2025-10-24 + */ +@RequiredArgsConstructor +@Service +public class ErpProjectContractsServiceImpl implements IErpProjectContractsService { + + private final ErpProjectContractsMapper baseMapper; + + /** + * 查询项目关联合同 + * + * @param projectContractsId 主键 + * @return 项目关联合同 + */ + @Override + public ErpProjectContractsVo queryById(Long projectContractsId) { + return baseMapper.selectVoById(projectContractsId); + } + + /** + * 分页查询项目关联合同列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 项目关联合同分页列表 + */ + @Override + public TableDataInfo queryPageList(ErpProjectContractsBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的项目关联合同列表 + * + * @param bo 查询条件 + * @return 项目关联合同列表 + */ + @Override + public List queryList(ErpProjectContractsBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ErpProjectContractsBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpProjectContracts.class) + .selectAll(ErpProjectContracts.class) + .eq(bo.getProjectId() != null, ErpProjectContracts::getProjectId, bo.getProjectId()) + .eq(bo.getContractId() != null, ErpProjectContracts::getContractId, bo.getContractId()) + .eq(bo.getSortOrder() != null, ErpProjectContracts::getSortOrder, bo.getSortOrder()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ErpProjectContracts::getActiveFlag, bo.getActiveFlag()); + return lqw; + } + + /** + * 新增项目关联合同 + * + * @param bo 项目关联合同 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ErpProjectContractsBo bo) { + ErpProjectContracts add = MapstructUtils.convert(bo, ErpProjectContracts.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setProjectContractsId(add.getProjectContractsId()); + } + return flag; + } + + /** + * 修改项目关联合同 + * + * @param bo 项目关联合同 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ErpProjectContractsBo bo) { + ErpProjectContracts update = MapstructUtils.convert(bo, ErpProjectContracts.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ErpProjectContracts entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除项目关联合同信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectInfoServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectInfoServiceImpl.java new file mode 100644 index 00000000..1d9ad6b1 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectInfoServiceImpl.java @@ -0,0 +1,150 @@ +package org.dromara.oa.erp.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; + import org.dromara.common.mybatis.core.page.TableDataInfo; + import org.dromara.common.mybatis.core.page.PageQuery; + import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.oa.erp.domain.bo.ErpProjectInfoBo; +import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo; +import org.dromara.oa.erp.domain.ErpProjectInfo; +import org.dromara.oa.erp.mapper.ErpProjectInfoMapper; +import org.dromara.oa.erp.service.IErpProjectInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 项目信息Service业务层处理 + * + * @author Yinq + * @date 2025-10-24 + */ +@RequiredArgsConstructor +@Service +public class ErpProjectInfoServiceImpl implements IErpProjectInfoService { + + private final ErpProjectInfoMapper baseMapper; + + /** + * 查询项目信息 + * + * @param projectId 主键 + * @return 项目信息 + */ + @Override + public ErpProjectInfoVo queryById(Long projectId){ + return baseMapper.selectVoById(projectId); + } + + /** + * 分页查询项目信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 项目信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ErpProjectInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的项目信息列表 + * + * @param bo 查询条件 + * @return 项目信息列表 + */ + @Override + public List queryList(ErpProjectInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ErpProjectInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpProjectInfo.class) + .selectAll(ErpProjectInfo.class) + .eq(StringUtils.isNotBlank(bo.getContractFlag()), ErpProjectInfo::getContractFlag, bo.getContractFlag()) + .eq(StringUtils.isNotBlank(bo.getProjectCode()), ErpProjectInfo::getProjectCode, bo.getProjectCode()) + .like(StringUtils.isNotBlank(bo.getProjectName()), ErpProjectInfo::getProjectName, bo.getProjectName()) + .eq(StringUtils.isNotBlank(bo.getBusinessDirection()), ErpProjectInfo::getBusinessDirection, bo.getBusinessDirection()) + .eq(StringUtils.isNotBlank(bo.getProjectCategory()), ErpProjectInfo::getProjectCategory, bo.getProjectCategory()) + .eq(StringUtils.isNotBlank(bo.getSpareFlag()), ErpProjectInfo::getSpareFlag, bo.getSpareFlag()) + .eq(bo.getProjectTypeId() != null, ErpProjectInfo::getProjectTypeId, bo.getProjectTypeId()) + .eq(StringUtils.isNotBlank(bo.getPaymentMethod()), ErpProjectInfo::getPaymentMethod, bo.getPaymentMethod()) + .eq(bo.getDeptId() != null, ErpProjectInfo::getDeptId, bo.getDeptId()) + .eq(bo.getManagerId() != null, ErpProjectInfo::getManagerId, bo.getManagerId()) + .eq(bo.getChargeId() != null, ErpProjectInfo::getChargeId, bo.getChargeId()) + .eq(bo.getDeputyId() != null, ErpProjectInfo::getDeputyId, bo.getDeputyId()) + .eq(StringUtils.isNotBlank(bo.getPeopleId()), ErpProjectInfo::getPeopleId, bo.getPeopleId()) + .eq(bo.getAmount() != null, ErpProjectInfo::getAmount, bo.getAmount()) + .eq(StringUtils.isNotBlank(bo.getProjectStatus()), ErpProjectInfo::getProjectStatus, bo.getProjectStatus()) + .eq(StringUtils.isNotBlank(bo.getFlowStatus()), ErpProjectInfo::getFlowStatus, bo.getFlowStatus()) + .eq(bo.getSortOrder() != null, ErpProjectInfo::getSortOrder, bo.getSortOrder()) + .eq(bo.getContractId() != null, ErpProjectInfo::getContractId, bo.getContractId()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ErpProjectInfo::getActiveFlag, bo.getActiveFlag()) +; + return lqw; + } + + /** + * 新增项目信息 + * + * @param bo 项目信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ErpProjectInfoBo bo) { + ErpProjectInfo add = MapstructUtils.convert(bo, ErpProjectInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setProjectId(add.getProjectId()); + } + return flag; + } + + /** + * 修改项目信息 + * + * @param bo 项目信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ErpProjectInfoBo bo) { + ErpProjectInfo update = MapstructUtils.convert(bo, ErpProjectInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ErpProjectInfo entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除项目信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectTypeServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectTypeServiceImpl.java new file mode 100644 index 00000000..1ee34525 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectTypeServiceImpl.java @@ -0,0 +1,119 @@ +package org.dromara.oa.erp.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.oa.erp.domain.bo.ErpProjectTypeBo; +import org.dromara.oa.erp.domain.vo.ErpProjectTypeVo; +import org.dromara.oa.erp.domain.ErpProjectType; +import org.dromara.oa.erp.mapper.ErpProjectTypeMapper; +import org.dromara.oa.erp.service.IErpProjectTypeService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 项目类型信息Service业务层处理 + * + * @author Yinq + * @date 2025-10-24 + */ +@RequiredArgsConstructor +@Service +public class ErpProjectTypeServiceImpl implements IErpProjectTypeService { + + private final ErpProjectTypeMapper baseMapper; + + /** + * 查询项目类型信息 + * + * @param projectTypeId 主键 + * @return 项目类型信息 + */ + @Override + public ErpProjectTypeVo queryById(Long projectTypeId) { + return baseMapper.selectVoById(projectTypeId); + } + + + /** + * 查询符合条件的项目类型信息列表 + * + * @param bo 查询条件 + * @return 项目类型信息列表 + */ + @Override + public List queryList(ErpProjectTypeBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ErpProjectTypeBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpProjectType.class) + .selectAll(ErpProjectType.class) + .eq(bo.getParentId() != null, ErpProjectType::getParentId, bo.getParentId()) + .like(StringUtils.isNotBlank(bo.getTypeName()), ErpProjectType::getTypeName, bo.getTypeName()) + .eq(bo.getSortOrder() != null, ErpProjectType::getSortOrder, bo.getSortOrder()) + .eq(StringUtils.isNotBlank(bo.getSpareFlag()), ErpProjectType::getSpareFlag, bo.getSpareFlag()) + .eq(StringUtils.isNotBlank(bo.getTopFlag()), ErpProjectType::getTopFlag, bo.getTopFlag()); + return lqw; + } + + /** + * 新增项目类型信息 + * + * @param bo 项目类型信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ErpProjectTypeBo bo) { + ErpProjectType add = MapstructUtils.convert(bo, ErpProjectType.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setProjectTypeId(add.getProjectTypeId()); + } + return flag; + } + + /** + * 修改项目类型信息 + * + * @param bo 项目类型信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ErpProjectTypeBo bo) { + ErpProjectType update = MapstructUtils.convert(bo, ErpProjectType.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ErpProjectType entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除项目类型信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectContractsMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectContractsMapper.xml new file mode 100644 index 00000000..d189af5d --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectContractsMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectInfoMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectInfoMapper.xml new file mode 100644 index 00000000..a5697740 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectInfoMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectTypeMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectTypeMapper.xml new file mode 100644 index 00000000..5312578b --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectTypeMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + +