1. 新增用户与部门,一对多的关系;
2. 新增管理多部门用户,如果有为公司的多个部门可以进行选择登录(选择后,直到下次变更访问公司前,只能访问此次选择公的业务数据,使用 company_id 控制,后续补充此数据权限的实现);
3. sql 转化工具修复,现在可以正确的对 mysql 进行不同数据库实例的转化了;
4. 所有表格主键,修改为分布式 Id 实现;
5. 补全在初始版本中没有被纳入的其他预制功能模块
This commit is contained in:
Administrator
2025-07-01 07:30:25 +00:00
parent 84ddc8ca6e
commit 06b278563e
1254 changed files with 85893 additions and 1524 deletions

View File

@@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.erp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 项目的启动类
* <p>
* 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章
* 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章
* 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章
*
* @author 芋道源码
*/
@SpringBootApplication
public class ErpServerApplication {
public static void main(String[] args) {
// 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章
// 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章
// 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章
SpringApplication.run(ErpServerApplication.class, args);
// 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章
// 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章
// 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章
}
}

View File

@@ -0,0 +1,24 @@
package cn.iocoder.yudao.module.erp.controller.admin.finance.vo.account;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Schema(description = "管理后台 - ERP 结算账户分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ErpAccountPageReqVO extends PageParam {
@Schema(description = "账户编码", example = "A88")
private String no;
@Schema(description = "账户名称", example = "张三")
private String name;
@Schema(description = "备注", example = "随便")
private String remark;
}

View File

@@ -0,0 +1,50 @@
package cn.iocoder.yudao.module.erp.controller.admin.finance.vo.account;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - ERP 结算账户 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ErpAccountRespVO {
@Schema(description = "结算账户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "28684")
@ExcelProperty("结算账户编号")
private Long id;
@Schema(description = "账户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
@ExcelProperty("账户名称")
private String name;
@Schema(description = "账户编码", example = "A88")
@ExcelProperty("账户编码")
private String no;
@Schema(description = "备注", example = "随便")
@ExcelProperty("备注")
private String remark;
@Schema(description = "开启状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("开启状态")
@DictFormat(DictTypeConstants.COMMON_STATUS)
private Integer status;
@Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("排序")
private Integer sort;
@Schema(description = "是否默认", example = "1")
@ExcelProperty("是否默认")
private Boolean defaultStatus;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.erp.controller.admin.finance.vo.account;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.validation.InEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@Schema(description = "管理后台 - ERP 结算账户新增/修改 Request VO")
@Data
public class ErpAccountSaveReqVO {
@Schema(description = "结算账户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "28684")
private Long id;
@Schema(description = "账户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
@NotEmpty(message = "账户名称不能为空")
private String name;
@Schema(description = "账户编码", example = "A88")
private String no;
@Schema(description = "备注", example = "随便")
private String remark;
@Schema(description = "开启状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "开启状态不能为空")
@InEnum(value = CommonStatusEnum.class)
private Integer status;
@Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "排序不能为空")
private Integer sort;
}

View File

@@ -0,0 +1,48 @@
package cn.iocoder.yudao.module.erp.controller.admin.finance.vo.payment;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - ERP 付款单分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ErpFinancePaymentPageReqVO extends PageParam {
@Schema(description = "付款单编号", example = "XS001")
private String no;
@Schema(description = "付款时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] paymentTime;
@Schema(description = "供应商编号", example = "1724")
private Long supplierId;
@Schema(description = "创建者", example = "666")
private String creator;
@Schema(description = "财务人员编号", example = "888")
private String financeUserId;
@Schema(description = "结算账户编号", example = "31189")
private Long accountId;
@Schema(description = "付款状态", example = "2")
private Integer status;
@Schema(description = "备注", example = "你猜")
private String remark;
@Schema(description = "业务编号", example = "123")
private String bizNo;
}

View File

@@ -0,0 +1,99 @@
package cn.iocoder.yudao.module.erp.controller.admin.finance.vo.payment;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - ERP 付款单 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ErpFinancePaymentRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23752")
private Long id;
@Schema(description = "付款单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "FKD888")
private String no;
@Schema(description = "付款状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer status;
@Schema(description = "付款时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime paymentTime;
@Schema(description = "财务人员编号", example = "19690")
private Long financeUserId;
@Schema(description = "财务人员名称", example = "张三")
private String financeUserName;
@Schema(description = "供应商编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "29399")
private Long supplierId;
@Schema(description = "供应商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小番茄公司")
private String supplierName;
@Schema(description = "付款账户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "28989")
private Long accountId;
@Schema(description = "付款账户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
private String accountName;
@Schema(description = "合计价格,单位:元", requiredMode = Schema.RequiredMode.REQUIRED, example = "13832")
private BigDecimal totalPrice;
@Schema(description = "优惠金额,单位:元", requiredMode = Schema.RequiredMode.REQUIRED, example = "11600")
private BigDecimal discountPrice;
@Schema(description = "实际价格,单位:元", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000")
private BigDecimal paymentPrice;
@Schema(description = "备注", example = "你猜")
private String remark;
@Schema(description = "创建人", example = "芋道")
private String creator;
@Schema(description = "创建人名称", example = "芋道")
private String creatorName;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "付款项列表", requiredMode = Schema.RequiredMode.REQUIRED)
private List<Item> items;
@Data
public static class Item {
@Schema(description = "付款项编号", example = "11756")
private Long id;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer bizType;
@Schema(description = "业务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11756")
private Long bizId;
@Schema(description = "业务单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11756")
private String bizNo;
@Schema(description = "应付金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000")
private BigDecimal totalPrice;
@Schema(description = "已付金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000")
private BigDecimal paidPrice;
@Schema(description = "本次付款,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000")
@NotNull(message = "本次付款不能为空")
private BigDecimal paymentPrice;
@Schema(description = "备注", example = "随便")
private String remark;
}
}

View File

@@ -0,0 +1,74 @@
package cn.iocoder.yudao.module.erp.controller.admin.finance.vo.payment;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - ERP 付款单新增/修改 Request VO")
@Data
public class ErpFinancePaymentSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23752")
private Long id;
@Schema(description = "付款时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "付款时间不能为空")
private LocalDateTime paymentTime;
@Schema(description = "财务人员编号", example = "19690")
private Long financeUserId;
@Schema(description = "供应商编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "29399")
@NotNull(message = "供应商编号不能为空")
private Long supplierId;
@Schema(description = "付款账户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "28989")
@NotNull(message = "付款账户编号不能为空")
private Long accountId;
@Schema(description = "优惠金额,单位:元", requiredMode = Schema.RequiredMode.REQUIRED, example = "11600")
@NotNull(message = "优惠金额不能为空")
private BigDecimal discountPrice;
@Schema(description = "备注", example = "你猜")
private String remark;
@Schema(description = "付款项列表", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "付款项列表不能为空")
@Valid
private List<Item> items;
@Data
public static class Item {
@Schema(description = "付款项编号", example = "11756")
private Long id;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "业务类型不能为空")
private Integer bizType;
@Schema(description = "业务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11756")
@NotNull(message = "业务编号不能为空")
private Long bizId;
@Schema(description = "已付金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000")
@NotNull(message = "已付金额不能为空")
private BigDecimal paidPrice;
@Schema(description = "本次付款,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000")
@NotNull(message = "本次付款不能为空")
private BigDecimal paymentPrice;
@Schema(description = "备注", example = "随便")
private String remark;
}
}

Some files were not shown because too many files have changed in this diff Show More