parent
3ba19aa3ed
commit
38f4d4c0ab
@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>2.5.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>hwbm-common-workflow</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-api-workflow</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-bus</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,88 @@
|
||||
package org.dromara.workflow.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.dromara.common.core.enums.OAStatusEnum;
|
||||
|
||||
/**
|
||||
* @description
|
||||
* 流程配置枚举
|
||||
* 定义流程编码与业务实体的映射关系
|
||||
* @author xins
|
||||
* @date 2025/11/4 9:41
|
||||
*/
|
||||
@Getter
|
||||
public enum FlowConfigEnum {
|
||||
|
||||
/**
|
||||
* 预算流程
|
||||
*/
|
||||
BUDGET("HWOABudget", "erp_budget_info", "budget_status", OAStatusEnum.COMPLETED.getStatus(), "flow_status","预算审批","budget_id");
|
||||
|
||||
|
||||
/**
|
||||
* 流程编码
|
||||
*/
|
||||
private final String flowCode;
|
||||
|
||||
/**
|
||||
* 数据库表名
|
||||
*/
|
||||
private final String tableName;
|
||||
|
||||
/**
|
||||
* 业务状态字段名
|
||||
*/
|
||||
private final String businessStatusField;
|
||||
|
||||
/**
|
||||
* 流程完成时的业务状态值
|
||||
*/
|
||||
private final String completedBusinessStatus;
|
||||
|
||||
/**
|
||||
* 流程状态字段名
|
||||
*/
|
||||
private final String flowStatusField;
|
||||
|
||||
|
||||
/**
|
||||
* 业务标题
|
||||
*/
|
||||
private final String businessTitle;
|
||||
|
||||
/**
|
||||
* 业务主键名称
|
||||
*/
|
||||
private final String businessPk;
|
||||
|
||||
|
||||
FlowConfigEnum(String flowCode, String tableName, String businessStatusField,
|
||||
String completedBusinessStatus, String flowStatusField, String businessTitle, String businessPk) {
|
||||
this.flowCode = flowCode;
|
||||
this.tableName = tableName;
|
||||
this.businessStatusField = businessStatusField;
|
||||
this.completedBusinessStatus = completedBusinessStatus;
|
||||
this.flowStatusField = flowStatusField;
|
||||
this.businessTitle = businessTitle;
|
||||
this.businessPk = businessPk;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据流程编码获取配置
|
||||
*/
|
||||
public static FlowConfigEnum getByFlowCode(String flowCode) {
|
||||
for (FlowConfigEnum config : values()) {
|
||||
if (config.getFlowCode().equals(flowCode)) {
|
||||
return config;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否支持该流程编码
|
||||
*/
|
||||
public static boolean supports(String flowCode) {
|
||||
return getByFlowCode(flowCode) != null;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package org.dromara.workflow.event;
|
||||
|
||||
import org.dromara.workflow.api.event.ProcessEvent;
|
||||
|
||||
/**
|
||||
* @Author xins
|
||||
* @Date 2025/11/10 10:14
|
||||
* @Description:
|
||||
*/
|
||||
public interface IProcessEventHandler {
|
||||
|
||||
/**
|
||||
* 通用的流程事件监听器
|
||||
*/
|
||||
public int handleProcessEvent(ProcessEvent processEvent);
|
||||
|
||||
}
|
||||
@ -0,0 +1,103 @@
|
||||
package org.dromara.common.mybatis.utils;
|
||||
|
||||
/**
|
||||
* @Author xins
|
||||
* @Date 2025/11/3 16:27
|
||||
* @Description:
|
||||
*/
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.jdbc.SQL;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 通用SQL提供者
|
||||
* 动态构建SQL语句
|
||||
*/
|
||||
public class UniversalSqlProvider {
|
||||
|
||||
/**
|
||||
* 构建动态更新SQL
|
||||
*/
|
||||
public String buildDynamicUpdate(@Param("tableName") String tableName,
|
||||
@Param("setFields") Map<String, Object> setFields,
|
||||
@Param("conditions") Map<String, Object> conditions) {
|
||||
return new SQL() {{
|
||||
UPDATE(tableName);
|
||||
|
||||
// 设置更新字段
|
||||
if (setFields != null && !setFields.isEmpty()) {
|
||||
for (Map.Entry<String, Object> entry : setFields.entrySet()) {
|
||||
SET(entry.getKey() + " = #{setFields." + entry.getKey() + "}");
|
||||
}
|
||||
}
|
||||
|
||||
// 设置条件
|
||||
if (conditions != null && !conditions.isEmpty()) {
|
||||
for (Map.Entry<String, Object> entry : conditions.entrySet()) {
|
||||
WHERE(entry.getKey() + " = #{conditions." + entry.getKey() + "}");
|
||||
}
|
||||
}
|
||||
}}.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建带操作符的动态更新SQL
|
||||
*/
|
||||
public String buildDynamicUpdateWithOperator(@Param("tableName") String tableName,
|
||||
@Param("setFields") Map<String, Object> setFields,
|
||||
@Param("conditions") Map<String, Object> conditions) {
|
||||
return new SQL() {{
|
||||
UPDATE(tableName);
|
||||
|
||||
// 设置更新字段
|
||||
if (setFields != null && !setFields.isEmpty()) {
|
||||
for (Map.Entry<String, Object> entry : setFields.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Object value = entry.getValue();
|
||||
|
||||
if (value instanceof String && ((String) value).startsWith("+")) {
|
||||
// 增量更新,如: set quantity = quantity + 1
|
||||
SET(key + " = " + key + " + " + ((String) value).substring(1));
|
||||
} else if (value instanceof String && ((String) value).startsWith("-")) {
|
||||
// 减量更新
|
||||
SET(key + " = " + key + " - " + ((String) value).substring(1));
|
||||
} else {
|
||||
// 普通赋值更新
|
||||
SET(key + " = #{setFields." + key + "}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 设置条件
|
||||
if (conditions != null && !conditions.isEmpty()) {
|
||||
for (Map.Entry<String, Object> entry : conditions.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Object value = entry.getValue();
|
||||
|
||||
if (value instanceof String) {
|
||||
String strValue = (String) value;
|
||||
if (strValue.startsWith(">=")) {
|
||||
WHERE(key + " >= " + strValue.substring(2));
|
||||
} else if (strValue.startsWith("<=")) {
|
||||
WHERE(key + " <= " + strValue.substring(2));
|
||||
} else if (strValue.startsWith(">")) {
|
||||
WHERE(key + " > " + strValue.substring(1));
|
||||
} else if (strValue.startsWith("<")) {
|
||||
WHERE(key + " < " + strValue.substring(1));
|
||||
} else if (strValue.startsWith("!=")) {
|
||||
WHERE(key + " != " + strValue.substring(2));
|
||||
} else if (strValue.startsWith("LIKE ")) {
|
||||
WHERE(key + " LIKE '%" + strValue.substring(5) + "%'");
|
||||
} else {
|
||||
WHERE(key + " = #{conditions." + key + "}");
|
||||
}
|
||||
} else {
|
||||
WHERE(key + " = #{conditions." + key + "}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}}.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,145 @@
|
||||
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.dromara.oa.base.domain.bo.BaseMaterialInfoBo;
|
||||
import org.dromara.oa.base.domain.vo.BaseMaterialInfoVo;
|
||||
import org.dromara.oa.base.service.IBaseMaterialInfoService;
|
||||
import org.dromara.oa.erp.domain.bo.ErpProjectInfoBo;
|
||||
import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo;
|
||||
import org.dromara.oa.erp.service.IErpProjectInfoService;
|
||||
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.ErpBudgetInfoVo;
|
||||
import org.dromara.oa.erp.domain.bo.ErpBudgetInfoBo;
|
||||
import org.dromara.oa.erp.service.IErpBudgetInfoService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 项目预算
|
||||
* 前端访问路由地址为:/oa/erp/budgetInfo
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/erp/budgetInfo")
|
||||
public class ErpBudgetInfoController extends BaseController {
|
||||
|
||||
private final IErpBudgetInfoService erpBudgetInfoService;
|
||||
|
||||
private final IErpProjectInfoService erpProjectInfoService;
|
||||
|
||||
private final IBaseMaterialInfoService baseMaterialInfoService;
|
||||
|
||||
/**
|
||||
* 查询项目预算列表
|
||||
*/
|
||||
@SaCheckPermission("oa:erp/budgetInfo:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<ErpBudgetInfoVo> list(ErpBudgetInfoBo bo, PageQuery pageQuery) {
|
||||
return erpBudgetInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出项目预算列表
|
||||
*/
|
||||
@SaCheckPermission("oa:erp/budgetInfo:export")
|
||||
@Log(title = "项目预算", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(ErpBudgetInfoBo bo, HttpServletResponse response) {
|
||||
List<ErpBudgetInfoVo> list = erpBudgetInfoService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "项目预算", ErpBudgetInfoVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目预算详细信息
|
||||
*
|
||||
* @param budgetId 主键
|
||||
*/
|
||||
@SaCheckPermission("oa:erp/budgetInfo:query")
|
||||
@GetMapping("/{budgetId}")
|
||||
public R<ErpBudgetInfoVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable("budgetId") Long budgetId) {
|
||||
return R.ok(erpBudgetInfoService.queryById(budgetId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目预算
|
||||
*/
|
||||
@SaCheckPermission("oa:erp/budgetInfo:add")
|
||||
@Log(title = "项目预算", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody ErpBudgetInfoBo bo) {
|
||||
return toAjax(erpBudgetInfoService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目预算
|
||||
*/
|
||||
@SaCheckPermission("oa:erp/budgetInfo:edit")
|
||||
@Log(title = "项目预算", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ErpBudgetInfoBo bo) {
|
||||
return toAjax(erpBudgetInfoService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除项目预算
|
||||
*
|
||||
* @param budgetIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("oa:erp/budgetInfo:remove")
|
||||
@Log(title = "项目预算", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{budgetIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable("budgetIds") Long[] budgetIds) {
|
||||
return toAjax(erpBudgetInfoService.deleteWithValidByIds(List.of(budgetIds), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 下拉框查询项目预算列表
|
||||
*/
|
||||
@GetMapping("/getErpBudgetInfoList")
|
||||
public R<List<ErpBudgetInfoVo>> getErpBudgetInfoList(ErpBudgetInfoBo bo) {
|
||||
List<ErpBudgetInfoVo> list = erpBudgetInfoService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询项目信息列表
|
||||
*/
|
||||
@SaCheckPermission("oa:erp/budgetInfo:list")
|
||||
@GetMapping("/listProjectInfo")
|
||||
public TableDataInfo<ErpProjectInfoVo> listProjectInfo(ErpProjectInfoBo bo, PageQuery pageQuery) {
|
||||
return erpProjectInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询SAP物料信息列表
|
||||
*/
|
||||
@SaCheckPermission("oa:erp/budgetInfo:list")
|
||||
@GetMapping("/listMaterialInfo")
|
||||
public TableDataInfo<BaseMaterialInfoVo> listMaterialInfo(BaseMaterialInfoBo bo, PageQuery pageQuery) {
|
||||
return baseMaterialInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,65 @@
|
||||
package org.dromara.oa.erp.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 项目预算详情对象 erp_budget_detail
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
@Data
|
||||
@TableName("erp_budget_detail")
|
||||
public class ErpBudgetDetail{
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 预算详情ID
|
||||
*/
|
||||
@TableId(value = "budget_detail_id", type = IdType.AUTO)
|
||||
private Long budgetDetailId;
|
||||
|
||||
/**
|
||||
* 预算ID
|
||||
*/
|
||||
private Long budgetId;
|
||||
|
||||
/**
|
||||
* 排序号
|
||||
*/
|
||||
private Long sortOrder;
|
||||
|
||||
/**
|
||||
* 预算科目
|
||||
*/
|
||||
private String budgetItem;
|
||||
|
||||
/**
|
||||
* 预算成本(元)
|
||||
*/
|
||||
private Long budgetCost;
|
||||
|
||||
/**
|
||||
* 降成本预算成本(元)
|
||||
*/
|
||||
private Long reduceBudgetCost;
|
||||
|
||||
/**
|
||||
* 参考项目ID
|
||||
*/
|
||||
private Long referenceProjectId;
|
||||
|
||||
/**
|
||||
* 参考项目名称
|
||||
*/
|
||||
private String referenceProjectName;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
package org.dromara.oa.erp.domain.bo;
|
||||
|
||||
import org.dromara.oa.erp.domain.ErpBudgetDetail;
|
||||
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_budget_detail
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
@Data
|
||||
@AutoMapper(target = ErpBudgetDetail.class, reverseConvertGenerate = false)
|
||||
public class ErpBudgetDetailBo {
|
||||
|
||||
/**
|
||||
* 预算详情ID
|
||||
*/
|
||||
@NotNull(message = "预算详情ID不能为空", groups = { EditGroup.class })
|
||||
private Long budgetDetailId;
|
||||
|
||||
/**
|
||||
* 预算ID
|
||||
*/
|
||||
@NotNull(message = "预算ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long budgetId;
|
||||
|
||||
/**
|
||||
* 排序号
|
||||
*/
|
||||
@NotNull(message = "排序号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long sortOrder;
|
||||
|
||||
/**
|
||||
* 预算科目
|
||||
*/
|
||||
@NotBlank(message = "预算科目不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String budgetItem;
|
||||
|
||||
/**
|
||||
* 预算成本(元)
|
||||
*/
|
||||
private Long budgetCost;
|
||||
|
||||
/**
|
||||
* 降成本预算成本(元)
|
||||
*/
|
||||
private Long reduceBudgetCost;
|
||||
|
||||
/**
|
||||
* 参考项目ID
|
||||
*/
|
||||
private Long referenceProjectId;
|
||||
|
||||
/**
|
||||
* 参考项目名称
|
||||
*/
|
||||
private String referenceProjectName;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
package org.dromara.oa.erp.domain.vo;
|
||||
|
||||
import org.dromara.oa.erp.domain.ErpBudgetDetail;
|
||||
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_budget_detail
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ErpBudgetDetail.class)
|
||||
public class ErpBudgetDetailVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 预算详情ID
|
||||
*/
|
||||
@ExcelProperty(value = "预算详情ID")
|
||||
private Long budgetDetailId;
|
||||
|
||||
/**
|
||||
* 预算ID
|
||||
*/
|
||||
@ExcelProperty(value = "预算ID")
|
||||
private Long budgetId;
|
||||
|
||||
/**
|
||||
* 排序号
|
||||
*/
|
||||
@ExcelProperty(value = "排序号")
|
||||
private Long sortOrder;
|
||||
|
||||
/**
|
||||
* 预算科目
|
||||
*/
|
||||
@ExcelProperty(value = "预算科目")
|
||||
private String budgetItem;
|
||||
|
||||
/**
|
||||
* 预算成本(元)
|
||||
*/
|
||||
@ExcelProperty(value = "预算成本(元)")
|
||||
private Long budgetCost;
|
||||
|
||||
/**
|
||||
* 降成本预算成本(元)
|
||||
*/
|
||||
@ExcelProperty(value = "降成本预算成本(元)")
|
||||
private Long reduceBudgetCost;
|
||||
|
||||
/**
|
||||
* 参考项目ID
|
||||
*/
|
||||
@ExcelProperty(value = "参考项目ID")
|
||||
private Long referenceProjectId;
|
||||
|
||||
/**
|
||||
* 参考项目名称
|
||||
*/
|
||||
@ExcelProperty(value = "参考项目名称")
|
||||
private String referenceProjectName;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package org.dromara.oa.erp.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
|
||||
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.ErpBudgetDetail;
|
||||
import org.dromara.oa.erp.domain.vo.ErpBudgetDetailVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 项目预算详情Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
@InterceptorIgnore(dataPermission = "true", tenantLine = "true")
|
||||
public interface ErpBudgetDetailMapper extends BaseMapperPlus<ErpBudgetDetail, ErpBudgetDetailVo> {
|
||||
|
||||
/**
|
||||
* 查询项目预算详情列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 项目预算详情集合
|
||||
*/
|
||||
public Page<ErpBudgetDetailVo> selectCustomErpBudgetDetailVoList(@Param("page") Page<ErpBudgetDetailVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetDetail> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询项目预算详情列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 项目预算详情集合
|
||||
*/
|
||||
public List<ErpBudgetDetailVo> selectCustomErpBudgetDetailVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetDetail> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpBudgetInfo;
|
||||
import org.dromara.oa.erp.domain.vo.ErpBudgetInfoVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 项目预算Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpBudgetInfoMapper extends BaseMapperPlus<ErpBudgetInfo, ErpBudgetInfoVo> {
|
||||
|
||||
/**
|
||||
* 查询项目预算列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 项目预算集合
|
||||
*/
|
||||
public Page<ErpBudgetInfoVo> selectCustomErpBudgetInfoVoList(@Param("page") Page<ErpBudgetInfoVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetInfo> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询项目预算列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 项目预算集合
|
||||
*/
|
||||
public List<ErpBudgetInfoVo> selectCustomErpBudgetInfoVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetInfo> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpBudgetInstallCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpBudgetInstallCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 预算安装费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpBudgetInstallCostMapper extends BaseMapperPlus<ErpBudgetInstallCost, ErpBudgetInstallCostVo> {
|
||||
|
||||
/**
|
||||
* 查询预算安装费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 预算安装费集合
|
||||
*/
|
||||
public Page<ErpBudgetInstallCostVo> selectCustomErpBudgetInstallCostVoList(@Param("page") Page<ErpBudgetInstallCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetInstallCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询预算安装费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 预算安装费集合
|
||||
*/
|
||||
public List<ErpBudgetInstallCostVo> selectCustomErpBudgetInstallCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetInstallCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpBudgetLaborCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpBudgetLaborCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 预算人工费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpBudgetLaborCostMapper extends BaseMapperPlus<ErpBudgetLaborCost, ErpBudgetLaborCostVo> {
|
||||
|
||||
/**
|
||||
* 查询预算人工费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 预算人工费集合
|
||||
*/
|
||||
public Page<ErpBudgetLaborCostVo> selectCustomErpBudgetLaborCostVoList(@Param("page") Page<ErpBudgetLaborCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetLaborCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询预算人工费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 预算人工费集合
|
||||
*/
|
||||
public List<ErpBudgetLaborCostVo> selectCustomErpBudgetLaborCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetLaborCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpBudgetMaterialCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpBudgetMaterialCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 预算材料费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpBudgetMaterialCostMapper extends BaseMapperPlus<ErpBudgetMaterialCost, ErpBudgetMaterialCostVo> {
|
||||
|
||||
/**
|
||||
* 查询预算材料费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 预算材料费集合
|
||||
*/
|
||||
public Page<ErpBudgetMaterialCostVo> selectCustomErpBudgetMaterialCostVoList(@Param("page") Page<ErpBudgetMaterialCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetMaterialCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询预算材料费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 预算材料费集合
|
||||
*/
|
||||
public List<ErpBudgetMaterialCostVo> selectCustomErpBudgetMaterialCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetMaterialCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpBudgetOtherCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpBudgetOtherCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 预算其他费用Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpBudgetOtherCostMapper extends BaseMapperPlus<ErpBudgetOtherCost, ErpBudgetOtherCostVo> {
|
||||
|
||||
/**
|
||||
* 查询预算其他费用列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 预算其他费用集合
|
||||
*/
|
||||
public Page<ErpBudgetOtherCostVo> selectCustomErpBudgetOtherCostVoList(@Param("page") Page<ErpBudgetOtherCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetOtherCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询预算其他费用列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 预算其他费用集合
|
||||
*/
|
||||
public List<ErpBudgetOtherCostVo> selectCustomErpBudgetOtherCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetOtherCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpBudgetTravelCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpBudgetTravelCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 预算差旅费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpBudgetTravelCostMapper extends BaseMapperPlus<ErpBudgetTravelCost, ErpBudgetTravelCostVo> {
|
||||
|
||||
/**
|
||||
* 查询预算差旅费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 预算差旅费集合
|
||||
*/
|
||||
public Page<ErpBudgetTravelCostVo> selectCustomErpBudgetTravelCostVoList(@Param("page") Page<ErpBudgetTravelCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetTravelCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询预算差旅费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 预算差旅费集合
|
||||
*/
|
||||
public List<ErpBudgetTravelCostVo> selectCustomErpBudgetTravelCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpBudgetTravelCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpRdBudgetEquipmentCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpRdBudgetEquipmentCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 研发预算设备费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpRdBudgetEquipmentCostMapper extends BaseMapperPlus<ErpRdBudgetEquipmentCost, ErpRdBudgetEquipmentCostVo> {
|
||||
|
||||
/**
|
||||
* 查询研发预算设备费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算设备费集合
|
||||
*/
|
||||
public Page<ErpRdBudgetEquipmentCostVo> selectCustomErpRdBudgetEquipmentCostVoList(@Param("page") Page<ErpRdBudgetEquipmentCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetEquipmentCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询研发预算设备费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算设备费集合
|
||||
*/
|
||||
public List<ErpRdBudgetEquipmentCostVo> selectCustomErpRdBudgetEquipmentCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetEquipmentCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpRdBudgetExchangeCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpRdBudgetExchangeCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 研发预算交流费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpRdBudgetExchangeCostMapper extends BaseMapperPlus<ErpRdBudgetExchangeCost, ErpRdBudgetExchangeCostVo> {
|
||||
|
||||
/**
|
||||
* 查询研发预算交流费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算交流费集合
|
||||
*/
|
||||
public Page<ErpRdBudgetExchangeCostVo> selectCustomErpRdBudgetExchangeCostVoList(@Param("page") Page<ErpRdBudgetExchangeCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetExchangeCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询研发预算交流费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算交流费集合
|
||||
*/
|
||||
public List<ErpRdBudgetExchangeCostVo> selectCustomErpRdBudgetExchangeCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetExchangeCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpRdBudgetLaborCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpRdBudgetLaborCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 研发预算人工费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpRdBudgetLaborCostMapper extends BaseMapperPlus<ErpRdBudgetLaborCost, ErpRdBudgetLaborCostVo> {
|
||||
|
||||
/**
|
||||
* 查询研发预算人工费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算人工费集合
|
||||
*/
|
||||
public Page<ErpRdBudgetLaborCostVo> selectCustomErpRdBudgetLaborCostVoList(@Param("page") Page<ErpRdBudgetLaborCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetLaborCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询研发预算人工费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算人工费集合
|
||||
*/
|
||||
public List<ErpRdBudgetLaborCostVo> selectCustomErpRdBudgetLaborCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetLaborCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpRdBudgetLiteratureCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpRdBudgetLiteratureCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 研发预算资料文献费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpRdBudgetLiteratureCostMapper extends BaseMapperPlus<ErpRdBudgetLiteratureCost, ErpRdBudgetLiteratureCostVo> {
|
||||
|
||||
/**
|
||||
* 查询研发预算资料文献费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算资料文献费集合
|
||||
*/
|
||||
public Page<ErpRdBudgetLiteratureCostVo> selectCustomErpRdBudgetLiteratureCostVoList(@Param("page") Page<ErpRdBudgetLiteratureCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetLiteratureCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询研发预算资料文献费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算资料文献费集合
|
||||
*/
|
||||
public List<ErpRdBudgetLiteratureCostVo> selectCustomErpRdBudgetLiteratureCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetLiteratureCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpRdBudgetMaterialCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpRdBudgetMaterialCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 研发预算材料费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpRdBudgetMaterialCostMapper extends BaseMapperPlus<ErpRdBudgetMaterialCost, ErpRdBudgetMaterialCostVo> {
|
||||
|
||||
/**
|
||||
* 查询研发预算材料费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算材料费集合
|
||||
*/
|
||||
public Page<ErpRdBudgetMaterialCostVo> selectCustomErpRdBudgetMaterialCostVoList(@Param("page") Page<ErpRdBudgetMaterialCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetMaterialCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询研发预算材料费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算材料费集合
|
||||
*/
|
||||
public List<ErpRdBudgetMaterialCostVo> selectCustomErpRdBudgetMaterialCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetMaterialCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpRdBudgetMeetingCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpRdBudgetMeetingCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 研发预算会议费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpRdBudgetMeetingCostMapper extends BaseMapperPlus<ErpRdBudgetMeetingCost, ErpRdBudgetMeetingCostVo> {
|
||||
|
||||
/**
|
||||
* 查询研发预算会议费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算会议费集合
|
||||
*/
|
||||
public Page<ErpRdBudgetMeetingCostVo> selectCustomErpRdBudgetMeetingCostVoList(@Param("page") Page<ErpRdBudgetMeetingCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetMeetingCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询研发预算会议费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算会议费集合
|
||||
*/
|
||||
public List<ErpRdBudgetMeetingCostVo> selectCustomErpRdBudgetMeetingCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetMeetingCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpRdBudgetOtherCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpRdBudgetOtherCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 研发预算其他费用Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpRdBudgetOtherCostMapper extends BaseMapperPlus<ErpRdBudgetOtherCost, ErpRdBudgetOtherCostVo> {
|
||||
|
||||
/**
|
||||
* 查询研发预算其他费用列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算其他费用集合
|
||||
*/
|
||||
public Page<ErpRdBudgetOtherCostVo> selectCustomErpRdBudgetOtherCostVoList(@Param("page") Page<ErpRdBudgetOtherCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetOtherCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询研发预算其他费用列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算其他费用集合
|
||||
*/
|
||||
public List<ErpRdBudgetOtherCostVo> selectCustomErpRdBudgetOtherCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetOtherCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpRdBudgetTechCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpRdBudgetTechCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 研发预算技术服务费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpRdBudgetTechCostMapper extends BaseMapperPlus<ErpRdBudgetTechCost, ErpRdBudgetTechCostVo> {
|
||||
|
||||
/**
|
||||
* 查询研发预算技术服务费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算技术服务费集合
|
||||
*/
|
||||
public Page<ErpRdBudgetTechCostVo> selectCustomErpRdBudgetTechCostVoList(@Param("page") Page<ErpRdBudgetTechCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetTechCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询研发预算技术服务费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算技术服务费集合
|
||||
*/
|
||||
public List<ErpRdBudgetTechCostVo> selectCustomErpRdBudgetTechCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetTechCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpRdBudgetTestingCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpRdBudgetTestingCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 研发预算测试化验费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpRdBudgetTestingCostMapper extends BaseMapperPlus<ErpRdBudgetTestingCost, ErpRdBudgetTestingCostVo> {
|
||||
|
||||
/**
|
||||
* 查询研发预算测试化验费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算测试化验费集合
|
||||
*/
|
||||
public Page<ErpRdBudgetTestingCostVo> selectCustomErpRdBudgetTestingCostVoList(@Param("page") Page<ErpRdBudgetTestingCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetTestingCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询研发预算测试化验费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算测试化验费集合
|
||||
*/
|
||||
public List<ErpRdBudgetTestingCostVo> selectCustomErpRdBudgetTestingCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetTestingCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -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.ErpRdBudgetTravelCost;
|
||||
import org.dromara.oa.erp.domain.vo.ErpRdBudgetTravelCostVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 研发预算差旅费Mapper接口
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface ErpRdBudgetTravelCostMapper extends BaseMapperPlus<ErpRdBudgetTravelCost, ErpRdBudgetTravelCostVo> {
|
||||
|
||||
/**
|
||||
* 查询研发预算差旅费列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算差旅费集合
|
||||
*/
|
||||
public Page<ErpRdBudgetTravelCostVo> selectCustomErpRdBudgetTravelCostVoList(@Param("page") Page<ErpRdBudgetTravelCostVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetTravelCost> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询研发预算差旅费列表
|
||||
*
|
||||
* @param queryWrapper 条件
|
||||
* @return 研发预算差旅费集合
|
||||
*/
|
||||
public List<ErpRdBudgetTravelCostVo> selectCustomErpRdBudgetTravelCostVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<ErpRdBudgetTravelCost> queryWrapper);
|
||||
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package org.dromara.oa.erp.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.UpdateProvider;
|
||||
import org.dromara.common.mybatis.utils.UniversalSqlProvider;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 通用Mapper
|
||||
* 用于执行动态SQL更新操作
|
||||
*/
|
||||
@Mapper
|
||||
public interface OaUniversalMapper {
|
||||
|
||||
/**
|
||||
* 动态更新表数据
|
||||
*
|
||||
* @param tableName 表名
|
||||
* @param setFields 更新字段和值
|
||||
* @param conditions 条件字段和值
|
||||
* @return 更新记录数
|
||||
*/
|
||||
@UpdateProvider(type = UniversalSqlProvider.class, method = "buildDynamicUpdate")
|
||||
int dynamicUpdate(@Param("tableName") String tableName,
|
||||
@Param("setFields") Map<String, Object> setFields,
|
||||
@Param("conditions") Map<String, Object> conditions);
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
package org.dromara.oa.erp.service;
|
||||
|
||||
import org.dromara.oa.erp.domain.ErpBudgetInfo;
|
||||
import org.dromara.oa.erp.domain.vo.ErpBudgetInfoVo;
|
||||
import org.dromara.oa.erp.domain.bo.ErpBudgetInfoBo;
|
||||
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 xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
public interface IErpBudgetInfoService {
|
||||
|
||||
/**
|
||||
* 查询项目预算
|
||||
*
|
||||
* @param budgetId 主键
|
||||
* @return 项目预算
|
||||
*/
|
||||
ErpBudgetInfoVo queryById(Long budgetId);
|
||||
|
||||
/**
|
||||
* 分页查询项目预算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 项目预算分页列表
|
||||
*/
|
||||
TableDataInfo<ErpBudgetInfoVo> queryPageList(ErpBudgetInfoBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的项目预算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 项目预算列表
|
||||
*/
|
||||
List<ErpBudgetInfoVo> queryList(ErpBudgetInfoBo bo);
|
||||
|
||||
/**
|
||||
* 新增项目预算
|
||||
*
|
||||
* @param bo 项目预算
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(ErpBudgetInfoBo bo);
|
||||
|
||||
/**
|
||||
* 修改项目预算
|
||||
*
|
||||
* @param bo 项目预算
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(ErpBudgetInfoBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除项目预算信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,222 @@
|
||||
package org.dromara.oa.erp.service.impl;
|
||||
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.apache.seata.spring.annotation.GlobalTransactional;
|
||||
import org.dromara.common.core.enums.OAStatusEnum;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
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 lombok.RequiredArgsConstructor;
|
||||
import org.dromara.oa.erp.domain.ErpBudgetDetail;
|
||||
import org.dromara.oa.erp.domain.ErpBudgetMaterialCost;
|
||||
import org.dromara.oa.erp.mapper.ErpBudgetDetailMapper;
|
||||
import org.dromara.oa.erp.mapper.ErpBudgetMaterialCostMapper;
|
||||
import org.dromara.oa.workflow.strategy.BudgetWorkflowStrategy;
|
||||
import org.dromara.workflow.api.RemoteWorkflowService;
|
||||
import org.dromara.workflow.api.domain.RemoteStartProcess;
|
||||
import org.dromara.workflow.strategy.AbstractWorkflowService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.oa.erp.domain.bo.ErpBudgetInfoBo;
|
||||
import org.dromara.oa.erp.domain.vo.ErpBudgetInfoVo;
|
||||
import org.dromara.oa.erp.domain.ErpBudgetInfo;
|
||||
import org.dromara.oa.erp.mapper.ErpBudgetInfoMapper;
|
||||
import org.dromara.oa.erp.service.IErpBudgetInfoService;
|
||||
import org.dromara.workflow.strategy.WorkflowStrategy;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 项目预算Service业务层处理
|
||||
*
|
||||
* @author xins
|
||||
* @date 2025-10-28
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class ErpBudgetInfoServiceImpl extends AbstractWorkflowService<ErpBudgetInfoBo> implements IErpBudgetInfoService {
|
||||
|
||||
private final ErpBudgetInfoMapper baseMapper;
|
||||
|
||||
private final ErpBudgetDetailMapper erpBudgetDetailMapper;
|
||||
|
||||
private final ErpBudgetMaterialCostMapper erpBudgetMaterialCostMapper;
|
||||
|
||||
@DubboReference(timeout = 30000)
|
||||
private RemoteWorkflowService remoteWorkflowService;
|
||||
|
||||
@Override
|
||||
protected WorkflowStrategy<ErpBudgetInfoBo> getStrategy() {
|
||||
return new BudgetWorkflowStrategy();
|
||||
}
|
||||
|
||||
/**
|
||||
* 实现时执行remoteWorkflowService.startCompleteTask(startProcess);
|
||||
*/
|
||||
@Override
|
||||
protected boolean doStartWorkflow(RemoteStartProcess startProcess){
|
||||
return remoteWorkflowService.startCompleteTask(startProcess);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询项目预算
|
||||
*
|
||||
* @param budgetId 主键
|
||||
* @return 项目预算
|
||||
*/
|
||||
@Override
|
||||
public ErpBudgetInfoVo queryById(Long budgetId) {
|
||||
return baseMapper.selectVoById(budgetId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询项目预算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 项目预算分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<ErpBudgetInfoVo> queryPageList(ErpBudgetInfoBo bo, PageQuery pageQuery) {
|
||||
MPJLambdaWrapper<ErpBudgetInfo> lqw = buildQueryWrapper(bo);
|
||||
Page<ErpBudgetInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的项目预算列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 项目预算列表
|
||||
*/
|
||||
@Override
|
||||
public List<ErpBudgetInfoVo> queryList(ErpBudgetInfoBo bo) {
|
||||
MPJLambdaWrapper<ErpBudgetInfo> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private MPJLambdaWrapper<ErpBudgetInfo> buildQueryWrapper(ErpBudgetInfoBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
MPJLambdaWrapper<ErpBudgetInfo> lqw = JoinWrappers.lambda(ErpBudgetInfo.class)
|
||||
.selectAll(ErpBudgetInfo.class)
|
||||
.eq(bo.getProjectId() != null, ErpBudgetInfo::getProjectId, bo.getProjectId())
|
||||
.eq(bo.getApprovedFlag() != null, ErpBudgetInfo::getApprovedFlag, bo.getApprovedFlag())
|
||||
.eq(bo.getBudgetVersion() != null, ErpBudgetInfo::getBudgetVersion, bo.getBudgetVersion())
|
||||
.eq(StringUtils.isNotBlank(bo.getProjectCategory()), ErpBudgetInfo::getProjectCategory, bo.getProjectCategory())
|
||||
.eq(StringUtils.isNotBlank(bo.getProjectCode()), ErpBudgetInfo::getProjectCode, bo.getProjectCode())
|
||||
.like(StringUtils.isNotBlank(bo.getProjectName()), ErpBudgetInfo::getProjectName, bo.getProjectName())
|
||||
.eq(bo.getManagerId() != null, ErpBudgetInfo::getManagerId, bo.getManagerId())
|
||||
.like(StringUtils.isNotBlank(bo.getManagerName()), ErpBudgetInfo::getManagerName, bo.getManagerName())
|
||||
.eq(bo.getProductManagerId() != null, ErpBudgetInfo::getProductManagerId, bo.getProductManagerId())
|
||||
.like(StringUtils.isNotBlank(bo.getProductManagerName()), ErpBudgetInfo::getProductManagerName, bo.getProductManagerName())
|
||||
.eq(bo.getApproveUserId() != null, ErpBudgetInfo::getApproveUserId, bo.getApproveUserId())
|
||||
.like(StringUtils.isNotBlank(bo.getApproveUserName()), ErpBudgetInfo::getApproveUserName, bo.getApproveUserName())
|
||||
.eq(bo.getContractAmount() != null, ErpBudgetInfo::getContractAmount, bo.getContractAmount())
|
||||
.eq(bo.getNetContractAmount() != null, ErpBudgetInfo::getNetContractAmount, bo.getNetContractAmount())
|
||||
.eq(bo.getBudgetCost() != null, ErpBudgetInfo::getBudgetCost, bo.getBudgetCost())
|
||||
.eq(bo.getBudgetRate() != null, ErpBudgetInfo::getBudgetRate, bo.getBudgetRate())
|
||||
.eq(bo.getReduceBudgetCost() != null, ErpBudgetInfo::getReduceBudgetCost, bo.getReduceBudgetCost())
|
||||
.eq(bo.getReduceBudgetRate() != null, ErpBudgetInfo::getReduceBudgetRate, bo.getReduceBudgetRate())
|
||||
.eq(StringUtils.isNotBlank(bo.getDuringOperation()), ErpBudgetInfo::getDuringOperation, bo.getDuringOperation())
|
||||
.eq(bo.getUnitId() != null, ErpBudgetInfo::getUnitId, bo.getUnitId())
|
||||
.like(StringUtils.isNotBlank(bo.getUnitName()), ErpBudgetInfo::getUnitName, bo.getUnitName())
|
||||
.eq(StringUtils.isNotBlank(bo.getExportFlag()), ErpBudgetInfo::getExportFlag, bo.getExportFlag())
|
||||
.eq(StringUtils.isNotBlank(bo.getBudgetStatus()), ErpBudgetInfo::getBudgetStatus, bo.getBudgetStatus())
|
||||
.eq(StringUtils.isNotBlank(bo.getFlowStatus()), ErpBudgetInfo::getFlowStatus, bo.getFlowStatus())
|
||||
.eq(bo.getContractId() != null, ErpBudgetInfo::getContractId, bo.getContractId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目预算
|
||||
*
|
||||
* @param bo 项目预算
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@GlobalTransactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(ErpBudgetInfoBo bo) {
|
||||
ErpBudgetInfo add = MapstructUtils.convert(bo, ErpBudgetInfo.class);
|
||||
validEntityBeforeSave(add);
|
||||
add.setApprovedFlag(add.getProjectId());
|
||||
add.setBudgetVersion(1L);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
List<ErpBudgetDetail> erpBudgetDetailList = bo.getErpBudgetDetailList();
|
||||
erpBudgetDetailList.forEach(erpBudgetDetail -> erpBudgetDetail.setBudgetId(add.getBudgetId()));
|
||||
List<ErpBudgetMaterialCost> erpBudgetMaterialCostList = bo.getErpBudgetMaterialCostList();
|
||||
erpBudgetMaterialCostList.forEach(erpBudgetMaterialCost -> erpBudgetMaterialCost.setBudgetId(add.getBudgetId()));
|
||||
erpBudgetDetailMapper.insertBatch(erpBudgetDetailList);
|
||||
erpBudgetMaterialCostMapper.insertBatch(erpBudgetMaterialCostList);
|
||||
if (flag) {
|
||||
bo.setBudgetId(add.getBudgetId());
|
||||
}
|
||||
|
||||
this.executeWorkflow(bo);
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始工作流
|
||||
* @param bo
|
||||
*/
|
||||
// private void startWorkFlow(ErpBudgetInfoBo bo){
|
||||
// if (!bo.getBudgetStatus().equals(OAStatusEnum.DRAFT.getStatus())) {
|
||||
// Map<String, Object> variables = new HashMap<>();
|
||||
// variables.put("projectName", bo.getProjectName());
|
||||
// RemoteStartProcess startProcess = new RemoteStartProcess();
|
||||
// startProcess.setBusinessId(bo.getBudgetId().toString());
|
||||
// startProcess.setVariables(variables);
|
||||
// startProcess.setFlowConfig(FlowConfigEnum.BUDGET,"");
|
||||
// boolean flagOne = remoteWorkflowService.startCompleteTask(startProcess);
|
||||
// if (!flagOne) {
|
||||
// throw new ServiceException("流程发起异常");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
* 修改项目预算
|
||||
*
|
||||
* @param bo 项目预算
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
@GlobalTransactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(ErpBudgetInfoBo bo) {
|
||||
ErpBudgetInfo update = MapstructUtils.convert(bo, ErpBudgetInfo.class);
|
||||
validEntityBeforeSave(update);
|
||||
boolean isUpdated = baseMapper.updateById(update) > 0;
|
||||
this.executeWorkflow(bo);
|
||||
return isUpdated;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(ErpBudgetInfo entity) {
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除项目预算信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package org.dromara.oa.workflow.strategy;
|
||||
|
||||
import org.dromara.common.core.enums.OAStatusEnum;
|
||||
import org.dromara.oa.erp.domain.bo.ErpBudgetInfoBo;
|
||||
import org.dromara.workflow.enums.FlowConfigEnum;
|
||||
import org.dromara.workflow.strategy.WorkflowStrategy;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author xins
|
||||
* @Date 2025/11/4 14:42
|
||||
* @Description:项目预算工作流策略
|
||||
*/
|
||||
public class BudgetWorkflowStrategy implements WorkflowStrategy<ErpBudgetInfoBo> {
|
||||
|
||||
@Override
|
||||
public boolean shouldStartWorkflow(ErpBudgetInfoBo bo) {
|
||||
return !bo.getBudgetStatus().equals(OAStatusEnum.DRAFT.getStatus());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBusinessId(ErpBudgetInfoBo bo) {
|
||||
return bo.getBudgetId().toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getVariables(ErpBudgetInfoBo bo) {
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("projectName", bo.getProjectName());
|
||||
return variables;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FlowConfigEnum getFlowConfig(ErpBudgetInfoBo bo) {
|
||||
return FlowConfigEnum.BUDGET;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpBudgetDetailMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpBudgetDetailVo" id="ErpBudgetDetailResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpBudgetDetailVoList" resultMap="ErpBudgetDetailResult">
|
||||
select budget_detail_id, budget_id, sort_order, budget_item, budget_cost, reduce_budget_cost, reference_project_id, reference_project_name from erp_budget_detail t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpBudgetInfoMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpBudgetInfoVo" id="ErpBudgetInfoResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpBudgetInfoVoList" resultMap="ErpBudgetInfoResult">
|
||||
select budget_id, tenant_id, project_id, approved_flag, budget_version, project_category, project_code, project_name, manager_id, manager_name, product_manager_id, product_manager_name, approve_user_id, approve_user_name, contract_amount, net_contract_amount, budget_cost, budget_rate, reduce_budget_cost, reduce_budget_rate, during_operation, unit_id, unit_name, export_flag, budget_status, flow_status, contract_id, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_budget_info t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpBudgetInstallCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpBudgetInstallCostVo" id="ErpBudgetInstallCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpBudgetInstallCostVoList" resultMap="ErpBudgetInstallCostResult">
|
||||
select install_cost_id, tenant_id, budget_id, project_id, personnel_category, people_number, cumulative_time, month_rate, artificial_standard, price, reduce_people_number, reduce_cumulative_time, reduce_month_rate, reduce_artificial_standard, reduce_price, sort_order, reduce_proposal, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_budget_install_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpBudgetLaborCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpBudgetLaborCostVo" id="ErpBudgetLaborCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpBudgetLaborCostVoList" resultMap="ErpBudgetLaborCostResult">
|
||||
select labor_cost_id, tenant_id, budget_id, project_id, personnel_category, people_number, cumulative_time, month_rate, artificial_standard, price, reduce_personnel_category, reduce_people_number, reduce_cumulative_time, reduce_month_rate, reduce_artificial_standard, reduce_price, sort_order, reduce_proposal, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_budget_labor_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpBudgetMaterialCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpBudgetMaterialCostVo" id="ErpBudgetMaterialCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpBudgetMaterialCostVoList" resultMap="ErpBudgetMaterialCostResult">
|
||||
select material_cost_id, tenant_id, budget_id, project_id, materiel_id, materiel_code, materiel_name, relation_materiel_id, unit_id, unit_name, unit_price, amount, price, reduce_unit_price, reduce_amount, reduce_price, sort_order, reduce_proposal, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_budget_material_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpBudgetOtherCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpBudgetOtherCostVo" id="ErpBudgetOtherCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpBudgetOtherCostVoList" resultMap="ErpBudgetOtherCostResult">
|
||||
select other_cost_id, tenant_id, budget_id, project_id, item_desc, price, reduce_item_desc, reduce_price, sort_order, reduce_proposal, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_budget_other_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpBudgetTravelCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpBudgetTravelCostVo" id="ErpBudgetTravelCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpBudgetTravelCostVoList" resultMap="ErpBudgetTravelCostResult">
|
||||
select travel_cost_id, tenant_id, budget_id, project_id, trip_location, reason, frequency, people_number, days, stay_standard, travel_expenses, stay_costs, subsidy_costs, subtotal_costs, reduce_frequency, reduce_people_number, reduce_day_number, reduce_stay_standard, reduce_travel_expenses, reduce_stay_costs, reduce_subsidy_costs, reduce_subtotal_costs, sort_order, reduce_proposal, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_budget_travel_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpRdBudgetEquipmentCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpRdBudgetEquipmentCostVo" id="ErpRdBudgetEquipmentCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpRdBudgetEquipmentCostVoList" resultMap="ErpRdBudgetEquipmentCostResult">
|
||||
select equipment_cost_id, tenant_id, budget_id, project_id, equipment_name, equipment_spec, unit_price, amount, price, sort_order, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_rd_budget_equipment_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpRdBudgetExchangeCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpRdBudgetExchangeCostVo" id="ErpRdBudgetExchangeCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpRdBudgetExchangeCostVoList" resultMap="ErpRdBudgetExchangeCostResult">
|
||||
select exchange_cost_id, tenant_id, budget_id, project_id, communication_type, country_region, institution, people_number, days, travel_accommodation_expense, subsidy, price, sort_order, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_rd_budget_exchange_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpRdBudgetLaborCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpRdBudgetLaborCostVo" id="ErpRdBudgetLaborCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpRdBudgetLaborCostVoList" resultMap="ErpRdBudgetLaborCostResult">
|
||||
select labor_cost_id, tenant_id, budget_id, project_id, labor_type, personnel_category, people_number, cumulative_time, month_rate, artificial_standard, price, project_personnel, sort_order, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_rd_budget_labor_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpRdBudgetLiteratureCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpRdBudgetLiteratureCostVo" id="ErpRdBudgetLiteratureCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpRdBudgetLiteratureCostVoList" resultMap="ErpRdBudgetLiteratureCostResult">
|
||||
select literature_cost_id, tenant_id, budget_id, project_id, literature_type, item_desc, price, sort_order, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_rd_budget_literature_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpRdBudgetMaterialCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpRdBudgetMaterialCostVo" id="ErpRdBudgetMaterialCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpRdBudgetMaterialCostVoList" resultMap="ErpRdBudgetMaterialCostResult">
|
||||
select material_cost_id, tenant_id, budget_id, project_id, material_name, unit_id, unit_name, unit_price, amount, price, sort_order, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_rd_budget_material_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpRdBudgetMeetingCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpRdBudgetMeetingCostVo" id="ErpRdBudgetMeetingCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpRdBudgetMeetingCostVoList" resultMap="ErpRdBudgetMeetingCostResult">
|
||||
select meeting_cost_id, tenant_id, budget_id, project_id, meeting_type, meeting_content, rental_fee, daily_expense, days, expert_expense, people_number, per_person_expense, meeting_price, sort_order, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_rd_budget_meeting_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpRdBudgetOtherCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpRdBudgetOtherCostVo" id="ErpRdBudgetOtherCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpRdBudgetOtherCostVoList" resultMap="ErpRdBudgetOtherCostResult">
|
||||
select other_cost_id, tenant_id, budget_id, project_id, item_desc, price, sort_order, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_rd_budget_other_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpRdBudgetTechCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpRdBudgetTechCostVo" id="ErpRdBudgetTechCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpRdBudgetTechCostVoList" resultMap="ErpRdBudgetTechCostResult">
|
||||
select tech_cost_id, tenant_id, budget_id, project_id, tech_type, tech_content, unit_id, unit_name, people_number, days, frequency, price, sort_order, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_rd_budget_tech_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpRdBudgetTestingCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpRdBudgetTestingCostVo" id="ErpRdBudgetTestingCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpRdBudgetTestingCostVoList" resultMap="ErpRdBudgetTestingCostResult">
|
||||
select testing_cost_id, tenant_id, budget_id, project_id, testing_content, testing_unit_name, unit_id, unit_name, unit_price, amount, price, sort_order, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_rd_budget_testing_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.oa.erp.mapper.ErpRdBudgetTravelCostMapper">
|
||||
<resultMap type="org.dromara.oa.erp.domain.vo.ErpRdBudgetTravelCostVo" id="ErpRdBudgetTravelCostResult">
|
||||
</resultMap>
|
||||
|
||||
<select id="selectCustomErpRdBudgetTravelCostVoList" resultMap="ErpRdBudgetTravelCostResult">
|
||||
select travel_cost_id, tenant_id, budget_id, project_id, trip_location, reason, frequency, people_number, days, stay_standard, travel_expenses, stay_costs, subsidy_costs, subtotal_costs, sort_order, remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_rd_budget_travel_cost t
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue