Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

Qchen 1 год назад
Родитель
Сommit
f8ea7dc3ba
26 измененных файлов с 1685 добавлено и 128 удалено
  1. 68 0
      commons/src/main/java/com/jzg/commons/entity/account/dto/AccountAddParam.java
  2. 165 0
      commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardAddParam.java
  3. 168 0
      commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardEditParam.java
  4. 27 0
      commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardParam.java
  5. 70 0
      commons/src/main/java/com/jzg/commons/entity/account/dto/AccountEditParam.java
  6. 20 0
      commons/src/main/java/com/jzg/commons/entity/account/dto/AccountParam.java
  7. 28 116
      commons/src/main/java/com/jzg/commons/entity/account/po/InvAccount.java
  8. 10 1
      commons/src/main/java/com/jzg/commons/entity/account/po/InvAccountCard.java
  9. 167 0
      commons/src/main/java/com/jzg/commons/entity/account/vo/AccountCardVo.java
  10. 96 0
      commons/src/main/java/com/jzg/commons/entity/account/vo/AccountVo.java
  11. 15 5
      commons/src/main/java/com/jzg/commons/entity/po/SysDict.java
  12. 26 0
      commons/src/main/java/com/jzg/commons/entity/vo/SysDictVo.java
  13. 94 0
      tenant/organization/src/main/java/com/jzg/organization/controller/AccountCardController.java
  14. 72 0
      tenant/organization/src/main/java/com/jzg/organization/controller/AccountController.java
  15. 2 2
      tenant/organization/src/main/java/com/jzg/organization/controller/AgreementController.java
  16. 43 4
      tenant/organization/src/main/java/com/jzg/organization/controller/DictController.java
  17. 36 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/InvAccountCardMapper.java
  18. 36 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/InvAccountMapper.java
  19. 58 0
      tenant/organization/src/main/java/com/jzg/organization/service/InvAccountCardService.java
  20. 50 0
      tenant/organization/src/main/java/com/jzg/organization/service/InvAccountService.java
  21. 38 0
      tenant/organization/src/main/java/com/jzg/organization/service/SysDictService.java
  22. 76 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/InvAccountCardServiceImpl.java
  23. 64 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/InvAccountServiceImpl.java
  24. 113 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysDictServiceImpl.java
  25. 83 0
      tenant/organization/src/main/resources/mapper/InvAccountCardMapper.xml
  26. 60 0
      tenant/organization/src/main/resources/mapper/InvAccountMapper.xml

+ 68 - 0
commons/src/main/java/com/jzg/commons/entity/account/dto/AccountAddParam.java

@@ -0,0 +1,68 @@
+package com.jzg.commons.entity.account.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Schema(description = "往来企业表新增dto")
+@Data
+public class AccountAddParam {
+
+    /**
+     * 户名
+     */
+    @Schema(description = "企业名称")
+    @Size(min=1,max=100,message = "企业名称长度不能大于100")
+    @NotNull(message = "企业名称不能为空")
+    private String accountName;
+
+    /**
+     * 企业类型(0内部企业 1外部企业)
+     */
+    @Schema(description = "企业类型(0内部企业 1外部企业)")
+    @NotNull(message = "请选择企业类型")
+    private Integer outerFlag;
+
+    /**
+     * 营业性质(3一般纳税 2小规模 1个体户)
+     */
+    @Schema(description = "营业性质(3一般纳税 2小规模 1个体户)")
+    private Integer businessQuality;
+
+    /**
+     * 所属地
+     */
+    @Schema(description = "所属地")
+    private String owned;
+
+    /**
+     * 法人
+     */
+    @Schema(description = "法人")
+    private String juridicalPerson;
+
+    /**
+     * 成立日期
+     */
+    @Schema(description = "成立日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate establishTime;
+
+    /**
+     * 开票员
+     */
+    @Schema(description = "开票员")
+    private String biller;
+
+    /**
+     * 开票额度
+     */
+    @Schema(description = "开票额度")
+    private String invoicingAmount;
+
+
+}

+ 165 - 0
commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardAddParam.java

@@ -0,0 +1,165 @@
+package com.jzg.commons.entity.account.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "账户表新增dto")
+@Data
+public class AccountCardAddParam {
+
+    /**
+     * 账户简称
+     */
+    @Schema(description = "账户简称")
+    @Size(min=1,max=100,message = "账户简称长度不能大于100")
+    @NotNull(message = "账户简称不能为空")
+    private String cardName;
+
+    /**
+     * 银行卡号
+     */
+    @Schema(description = "银行卡号")
+    @Size(min=1,max=100,message = "银行卡号长度不能大于100")
+    @NotNull(message = "银行卡号不能为空")
+    private String bankCardNum;
+
+    /**
+     * 账户id
+     */
+    @Schema(description = "所属企业id")
+    @NotNull(message = "请选择所属企业")
+    private Long accountId;
+
+    /**
+     * 账户类型(0公户 1私户)
+     */
+    @Schema(description = "账户类型(0公户 1私户)")
+    @NotNull(message = "请选择账户类型")
+    private Integer accountQuality;
+
+    /**
+     * 开户行名称
+     */
+    @Schema(description = "开户行名称")
+    @NotNull(message = "请输入开户行名称")
+    private String bankName;
+
+    /**
+     * 银行名称
+     */
+    @Schema(description = "银行名称")
+    @NotNull(message = "请输入银行名称")
+    private String bank;
+
+    /**
+     * 开户行号
+     */
+    @Schema(description = "开户行号")
+    @NotNull(message = "请输入开户行号")
+    private String bankNum;
+
+    /**
+     * 证书有效期开始
+     */
+    @Schema(description = "证书有效期开始")
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @NotNull(message = "证书有效期开始时间不能为空")
+    private LocalDateTime startCertExpirationDate;
+
+    /**
+     * 证书有效期结束
+     */
+    @Schema(description = "证书有效期结束")
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @NotNull(message = "证书有效期结束时间不能为空")
+    private LocalDateTime endCertExpirationDate;
+
+    /**
+     * 余额
+     */
+    @Schema(description = "余额")
+    private String balance;
+
+    /**
+     * 支出
+     */
+    @Schema(description = "支出")
+    private String spend;
+
+    /**
+     * 单日转账笔数限制
+     */
+    @Schema(description = "单日转账笔数限制")
+    private String dayStrokeNum;
+
+    /**
+     * 单日转账笔数剩余
+     */
+    @Schema(description = "单日转账笔数剩余")
+    private String dayStrokeNumExcess;
+
+    /**
+     * 对私单日限额
+     */
+    @Schema(description = "对私单日限额")
+    private String priDayLines;
+
+    /**
+     * 对私单笔限额
+     */
+    @Schema(description = "对私单笔限额")
+    private String priSingleLines;
+
+    /**
+     * 对私单日限额剩余
+     */
+    @Schema(description = "对私单日限额剩余")
+    private String priDayLinesExcess;
+
+    /**
+     * 对私年额度
+     */
+    @Schema(description = "对私年额度")
+    private String priYearLines;
+
+    /**
+     * 对私年剩余额度
+     */
+    @Schema(description = "对私年剩余额度")
+    private String priYearExcess;
+
+    /**
+     * 对公单笔限额
+     */
+    @Schema(description = "对公单笔限额")
+    private String pubSingleLines;
+
+    /**
+     * 对公年额度
+     */
+    @Schema(description = "对公年额度")
+    private String pubYearLines;
+
+    /**
+     * 对公单日限额
+     */
+    @Schema(description = "对公单日限额")
+    private String pubDayLines;
+
+    /**
+     * 对公年剩余额度
+     */
+    @Schema(description = "对公年剩余额度")
+    private String pubYearExcess;
+
+    /**
+     * 对公单日限额剩余
+     */
+    @Schema(description = "对公单日限额剩余")
+    private String pubDayLinesExcess;
+}

+ 168 - 0
commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardEditParam.java

@@ -0,0 +1,168 @@
+package com.jzg.commons.entity.account.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "账户表新增dto")
+@Data
+public class AccountCardEditParam {
+
+    @NotNull(message = "账户id不能为空")
+    @Schema(description = "账户id")
+    private String id;
+
+    /**
+     * 账户简称
+     */
+    @Schema(description = "账户简称")
+    @Size(min=1,max=100,message = "账户简称长度不能大于100")
+    @NotNull(message = "账户简称不能为空")
+    private String cardName;
+
+    /**
+     * 银行卡号
+     */
+    @Schema(description = "银行卡号")
+    @Size(min=1,max=100,message = "银行卡号长度不能大于100")
+    @NotNull(message = "银行卡号不能为空")
+    private String bankCardNum;
+
+    /**
+     * 账户id
+     */
+    @Schema(description = "所属企业id")
+    @NotNull(message = "请选择所属企业")
+    private Long accountId;
+
+    /**
+     * 账户类型(0公户 1私户)
+     */
+    @Schema(description = "账户类型(0公户 1私户)")
+    @NotNull(message = "请选择账户类型")
+    private Integer accountQuality;
+
+    /**
+     * 开户行名称
+     */
+    @Schema(description = "开户行名称")
+    @NotNull(message = "请输入开户行名称")
+    private String bankName;
+
+    /**
+     * 银行名称
+     */
+    @Schema(description = "银行名称")
+    @NotNull(message = "请输入银行名称")
+    private String bank;
+
+    /**
+     * 开户行号
+     */
+    @Schema(description = "开户行号")
+    @NotNull(message = "请输入开户行号")
+    private String bankNum;
+
+    /**
+     * 证书有效期开始
+     */
+    @Schema(description = "证书有效期开始")
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @NotNull(message = "证书有效期开始时间不能为空")
+    private LocalDateTime startCertExpirationDate;
+
+    /**
+     * 证书有效期结束
+     */
+    @Schema(description = "证书有效期结束")
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @NotNull(message = "证书有效期结束时间不能为空")
+    private LocalDateTime endCertExpirationDate;
+
+    /**
+     * 余额
+     */
+    @Schema(description = "余额")
+    private String balance;
+
+    /**
+     * 支出
+     */
+    @Schema(description = "支出")
+    private String spend;
+
+    /**
+     * 单日转账笔数限制
+     */
+    @Schema(description = "单日转账笔数限制")
+    private String dayStrokeNum;
+
+    /**
+     * 单日转账笔数剩余
+     */
+    @Schema(description = "单日转账笔数剩余")
+    private String dayStrokeNumExcess;
+
+    /**
+     * 对私单日限额
+     */
+    @Schema(description = "对私单日限额")
+    private String priDayLines;
+
+    /**
+     * 对私单笔限额
+     */
+    @Schema(description = "对私单笔限额")
+    private String priSingleLines;
+
+    /**
+     * 对私单日限额剩余
+     */
+    @Schema(description = "对私单日限额剩余")
+    private String priDayLinesExcess;
+
+    /**
+     * 对私年额度
+     */
+    @Schema(description = "对私年额度")
+    private String priYearLines;
+
+    /**
+     * 对私年剩余额度
+     */
+    @Schema(description = "对私年剩余额度")
+    private String priYearExcess;
+
+    /**
+     * 对公单笔限额
+     */
+    @Schema(description = "对公单笔限额")
+    private String pubSingleLines;
+
+    /**
+     * 对公年额度
+     */
+    @Schema(description = "对公年额度")
+    private String pubYearLines;
+
+    /**
+     * 对公单日限额
+     */
+    @Schema(description = "对公单日限额")
+    private String pubDayLines;
+
+    /**
+     * 对公年剩余额度
+     */
+    @Schema(description = "对公年剩余额度")
+    private String pubYearExcess;
+
+    /**
+     * 对公单日限额剩余
+     */
+    @Schema(description = "对公单日限额剩余")
+    private String pubDayLinesExcess;
+}

+ 27 - 0
commons/src/main/java/com/jzg/commons/entity/account/dto/AccountCardParam.java

@@ -0,0 +1,27 @@
+package com.jzg.commons.entity.account.dto;
+
+import com.jzg.commons.core.base.PageRequest;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "账户管理表分页查询dto")
+@Data
+public class AccountCardParam extends PageRequest {
+
+    /** 所属企业id */
+    @Schema(description = "所属企业id")
+    private String accountId;
+
+    /** 账户简称 */
+    @Schema(description = "账户简称")
+    private String cardName;
+
+    /** 账户类型(0公户 1私户) */
+    @Schema(description = "账户类型(0公户 1私户)")
+    private Integer accountQuality;
+
+    /** 银行卡号 */
+    @Schema(description = "银行卡号")
+    private String bankCardNum;
+
+}

+ 70 - 0
commons/src/main/java/com/jzg/commons/entity/account/dto/AccountEditParam.java

@@ -0,0 +1,70 @@
+package com.jzg.commons.entity.account.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Schema(description = "往来企业表新增dto")
+@Data
+public class AccountEditParam {
+
+    @NotNull(message = "企业id不能为空")
+    @Schema(description = "企业id")
+    private String id;
+
+    /**
+     * 户名
+     */
+    @Schema(description = "企业名称")
+    @Size(min=1,max=100,message = "企业名称长度不能大于100")
+    @NotNull(message = "企业名称不能为空")
+    private String accountName;
+
+    /**
+     * 企业类型(0内部企业 1外部企业)
+     */
+    @Schema(description = "企业类型(0内部企业 1外部企业)")
+    @NotNull(message = "请选择企业类型")
+    private Integer outerFlag;
+
+    /**
+     * 营业性质(3一般纳税 2小规模 1个体户)
+     */
+    @Schema(description = "营业性质(3一般纳税 2小规模 1个体户)")
+    private Integer businessQuality;
+
+    /**
+     * 所属地
+     */
+    @Schema(description = "所属地")
+    private String owned;
+
+    /**
+     * 法人
+     */
+    @Schema(description = "法人")
+    private String juridicalPerson;
+
+    /**
+     * 成立日期
+     */
+    @Schema(description = "成立日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate establishTime;
+
+    /**
+     * 开票员
+     */
+    @Schema(description = "开票员")
+    private String biller;
+
+    /**
+     * 开票额度
+     */
+    @Schema(description = "开票额度")
+    private String invoicingAmount;
+}

+ 20 - 0
commons/src/main/java/com/jzg/commons/entity/account/dto/AccountParam.java

@@ -0,0 +1,20 @@
+package com.jzg.commons.entity.account.dto;
+
+import com.jzg.commons.core.base.PageRequest;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "来往企业表分页查询dto")
+@Data
+public class AccountParam  extends PageRequest {
+
+    /** 企业名称 */
+    @Schema(description = "企业名称")
+    private String accountName;
+
+    /**
+     * 企业类型(0内部企业 1外部企业)
+     */
+    @Schema(description = "企业类型(0内部企业 1外部企业)")
+    private Integer outerFlag;
+}

+ 28 - 116
commons/src/main/java/com/jzg/commons/entity/account/po/InvAccount.java

@@ -1,190 +1,102 @@
 package com.jzg.commons.entity.account.po;
 
 import java.io.Serializable;
+import java.time.LocalDate;
 import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jzg.commons.core.base.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 /**
  * 来往企业表
  * @TableName inv_account
  */
+@Schema(description = "来往企业表")
 @Data
-public class InvAccount implements Serializable {
+public class InvAccount extends BaseModel {
     /**
      * 账户id
      */
-    private Long accountId;
+    @Schema(description = "主键")
+    private Long id;
 
     /**
      * 户名
      */
+    @Schema(description = "户名")
     private String accountName;
 
     /**
      * 企业类型(0内部企业 1外部企业)
      */
-    private String outerFlag;
+    @Schema(description = "企业类型(0内部企业 1外部企业)")
+    private Integer outerFlag;
 
     /**
      * 营业性质(3一般纳税 2小规模 1个体户)
      */
-    private String businessQuality;
+    @Schema(description = "营业性质(3一般纳税 2小规模 1个体户)")
+    private Integer businessQuality;
 
     /**
      * 所属地
      */
+    @Schema(description = "所属地")
     private String owned;
 
     /**
      * 法人
      */
+    @Schema(description = "法人")
     private String juridicalPerson;
 
     /**
      * 成立日期
      */
-    private Date establishTime;
+    @Schema(description = "成立日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate establishTime;
 
     /**
      * 开票员
      */
+    @Schema(description = "开票员")
     private String biller;
 
     /**
      * 开票额度
      */
+    @Schema(description = "开票额度")
     private String invoicingAmount;
 
     /**
      * 剩余开票额度
      */
+    @Schema(description = "剩余开票额度")
     private String invoicingAmountExcess;
 
     /**
      * 季度开票额度
      */
+    @Schema(description = "季度开票额度")
     private String quarterInvoicingAmount;
 
     /**
      * 总开票额度
      */
+    @Schema(description = "总开票额度")
     private String sumInvoicingAmount;
 
     /**
      * 暂估
      */
+    @Schema(description = "暂估")
     private String tentativeEstimates;
 
-    /**
-     * 创建人
-     */
-    private String createBy;
-
-    /**
-     * 创建时间
-     */
-    private Date createTime;
-
-    /**
-     * 更新人
-     */
-    private String updateBy;
+    /** 系统code */
+    @Schema(description = "系统code")
+    private String systemCode;
 
-    /**
-     * 更新时间
-     */
-    private Date updateTime;
-
-    /**
-     * 是否删除
-     */
-    private Integer isDelete;
-
-    private static final long serialVersionUID = 1L;
-
-    @Override
-    public boolean equals(Object that) {
-        if (this == that) {
-            return true;
-        }
-        if (that == null) {
-            return false;
-        }
-        if (getClass() != that.getClass()) {
-            return false;
-        }
-        InvAccount other = (InvAccount) that;
-        return (this.getAccountId() == null ? other.getAccountId() == null : this.getAccountId().equals(other.getAccountId()))
-            && (this.getAccountName() == null ? other.getAccountName() == null : this.getAccountName().equals(other.getAccountName()))
-            && (this.getOuterFlag() == null ? other.getOuterFlag() == null : this.getOuterFlag().equals(other.getOuterFlag()))
-            && (this.getBusinessQuality() == null ? other.getBusinessQuality() == null : this.getBusinessQuality().equals(other.getBusinessQuality()))
-            && (this.getOwned() == null ? other.getOwned() == null : this.getOwned().equals(other.getOwned()))
-            && (this.getJuridicalPerson() == null ? other.getJuridicalPerson() == null : this.getJuridicalPerson().equals(other.getJuridicalPerson()))
-            && (this.getEstablishTime() == null ? other.getEstablishTime() == null : this.getEstablishTime().equals(other.getEstablishTime()))
-            && (this.getBiller() == null ? other.getBiller() == null : this.getBiller().equals(other.getBiller()))
-            && (this.getInvoicingAmount() == null ? other.getInvoicingAmount() == null : this.getInvoicingAmount().equals(other.getInvoicingAmount()))
-            && (this.getInvoicingAmountExcess() == null ? other.getInvoicingAmountExcess() == null : this.getInvoicingAmountExcess().equals(other.getInvoicingAmountExcess()))
-            && (this.getQuarterInvoicingAmount() == null ? other.getQuarterInvoicingAmount() == null : this.getQuarterInvoicingAmount().equals(other.getQuarterInvoicingAmount()))
-            && (this.getSumInvoicingAmount() == null ? other.getSumInvoicingAmount() == null : this.getSumInvoicingAmount().equals(other.getSumInvoicingAmount()))
-            && (this.getTentativeEstimates() == null ? other.getTentativeEstimates() == null : this.getTentativeEstimates().equals(other.getTentativeEstimates()))
-            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
-            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
-            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
-            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
-            && (this.getIsDelete() == null ? other.getIsDelete() == null : this.getIsDelete().equals(other.getIsDelete()));
-    }
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((getAccountId() == null) ? 0 : getAccountId().hashCode());
-        result = prime * result + ((getAccountName() == null) ? 0 : getAccountName().hashCode());
-        result = prime * result + ((getOuterFlag() == null) ? 0 : getOuterFlag().hashCode());
-        result = prime * result + ((getBusinessQuality() == null) ? 0 : getBusinessQuality().hashCode());
-        result = prime * result + ((getOwned() == null) ? 0 : getOwned().hashCode());
-        result = prime * result + ((getJuridicalPerson() == null) ? 0 : getJuridicalPerson().hashCode());
-        result = prime * result + ((getEstablishTime() == null) ? 0 : getEstablishTime().hashCode());
-        result = prime * result + ((getBiller() == null) ? 0 : getBiller().hashCode());
-        result = prime * result + ((getInvoicingAmount() == null) ? 0 : getInvoicingAmount().hashCode());
-        result = prime * result + ((getInvoicingAmountExcess() == null) ? 0 : getInvoicingAmountExcess().hashCode());
-        result = prime * result + ((getQuarterInvoicingAmount() == null) ? 0 : getQuarterInvoicingAmount().hashCode());
-        result = prime * result + ((getSumInvoicingAmount() == null) ? 0 : getSumInvoicingAmount().hashCode());
-        result = prime * result + ((getTentativeEstimates() == null) ? 0 : getTentativeEstimates().hashCode());
-        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
-        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
-        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
-        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
-        result = prime * result + ((getIsDelete() == null) ? 0 : getIsDelete().hashCode());
-        return result;
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append(getClass().getSimpleName());
-        sb.append(" [");
-        sb.append("Hash = ").append(hashCode());
-        sb.append(", accountId=").append(accountId);
-        sb.append(", accountName=").append(accountName);
-        sb.append(", outerFlag=").append(outerFlag);
-        sb.append(", businessQuality=").append(businessQuality);
-        sb.append(", owned=").append(owned);
-        sb.append(", juridicalPerson=").append(juridicalPerson);
-        sb.append(", establishTime=").append(establishTime);
-        sb.append(", biller=").append(biller);
-        sb.append(", invoicingAmount=").append(invoicingAmount);
-        sb.append(", invoicingAmountExcess=").append(invoicingAmountExcess);
-        sb.append(", quarterInvoicingAmount=").append(quarterInvoicingAmount);
-        sb.append(", sumInvoicingAmount=").append(sumInvoicingAmount);
-        sb.append(", tentativeEstimates=").append(tentativeEstimates);
-        sb.append(", createBy=").append(createBy);
-        sb.append(", createTime=").append(createTime);
-        sb.append(", updateBy=").append(updateBy);
-        sb.append(", updateTime=").append(updateTime);
-        sb.append(", isDelete=").append(isDelete);
-        sb.append(", serialVersionUID=").append(serialVersionUID);
-        sb.append("]");
-        return sb.toString();
-    }
 }

+ 10 - 1
commons/src/main/java/com/jzg/commons/entity/account/po/InvAccountCard.java

@@ -44,7 +44,7 @@ public class InvAccountCard extends BaseModel {
      * 账户性质(0公户 1私户)
      */
     @Schema(description = "账户性质(0公户 1私户)")
-    private String accountQuality;
+    private Integer accountQuality;
 
     /**
      * 开户行名称
@@ -58,6 +58,9 @@ public class InvAccountCard extends BaseModel {
     @Schema(description = "开户行")
     private String bank;
 
+    /**
+     * 开户行号
+     */
     @Schema(description = "开户行号")
     private String bankNum;
 
@@ -144,16 +147,22 @@ public class InvAccountCard extends BaseModel {
     /**
      * 对公单日限额
      */
+    @Schema(description = "对公单日限额")
     private String pubDayLines;
 
     /**
      * 对公年剩余额度
      */
+    @Schema(description = "对公年剩余额度")
     private String pubYearExcess;
 
     /**
      * 对公单日限额剩余
      */
+    @Schema(description = "对公单日限额剩余")
     private String pubDayLinesExcess;
 
+    /** 系统code */
+    @Schema(description = "系统code")
+    private String systemCode;
 }

+ 167 - 0
commons/src/main/java/com/jzg/commons/entity/account/vo/AccountCardVo.java

@@ -0,0 +1,167 @@
+package com.jzg.commons.entity.account.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jzg.commons.core.base.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "账户管理表VO")
+@Data
+public class AccountCardVo extends BaseModel {
+
+    /**
+     * 账户id
+     */
+    @Schema(description = "主键")
+    private Long id;
+
+    /**
+     * 账户简称
+     */
+    @Schema(description = "账户简称")
+    private String cardName;
+
+    /**
+     * 银行卡号
+     */
+    @Schema(description = "银行卡号")
+    private String bankCardNum;
+
+    /**
+     * 账户id
+     */
+    @Schema(description = "账户id")
+    private Long accountId;
+
+    /**
+     * 账户性质(0公户 1私户)
+     */
+    @Schema(description = "账户性质(0公户 1私户)")
+    private Integer accountQuality;
+
+    /**
+     * 开户行名称
+     */
+    @Schema(description = "开户行名称")
+    private String bankName;
+
+    /**
+     * 开户行
+     */
+    @Schema(description = "开户行")
+    private String bank;
+
+    /**
+     * 开户行号
+     */
+    @Schema(description = "开户行号")
+    private String bankNum;
+
+    /**
+     * 证书有效期开始
+     */
+    @Schema(description = "证书有效期开始")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime startCertExpirationDate;
+
+    /**
+     * 证书有效期结束
+     */
+    @Schema(description = "证书有效期结束")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime endCertExpirationDate;
+
+    /**
+     * 余额
+     */
+    @Schema(description = "余额")
+    private String balance;
+
+    /**
+     * 支出
+     */
+    @Schema(description = "支出")
+    private String spend;
+
+    /**
+     * 单日转账笔数限制
+     */
+    @Schema(description = "单日转账笔数限制")
+    private String dayStrokeNum;
+
+    /**
+     * 单日转账笔数剩余
+     */
+    @Schema(description = "单日转账笔数剩余")
+    private String dayStrokeNumExcess;
+
+    /**
+     * 对私单日限额
+     */
+    @Schema(description = "对私单日限额")
+    private String priDayLines;
+
+    /**
+     * 对私单笔限额
+     */
+    @Schema(description = "对私单笔限额")
+    private String priSingleLines;
+
+    /**
+     * 对私单日限额剩余
+     */
+    @Schema(description = "对私单日限额剩余")
+    private String priDayLinesExcess;
+
+    /**
+     * 对私年额度
+     */
+    @Schema(description = "对私年额度")
+    private String priYearLines;
+
+    /**
+     * 对私年剩余额度
+     */
+    @Schema(description = "对私年剩余额度")
+    private String priYearExcess;
+
+    /**
+     * 对公单笔限额
+     */
+    @Schema(description = "对公单笔限额")
+    private String pubSingleLines;
+
+    /**
+     * 对公年额度
+     */
+    @Schema(description = "对公年额度")
+    private String pubYearLines;
+
+    /**
+     * 对公单日限额
+     */
+    @Schema(description = "对公单日限额")
+    private String pubDayLines;
+
+    /**
+     * 对公年剩余额度
+     */
+    @Schema(description = "对公年剩余额度")
+    private String pubYearExcess;
+
+    /**
+     * 对公单日限额剩余
+     */
+    @Schema(description = "对公单日限额剩余")
+    private String pubDayLinesExcess;
+
+    /**
+     * 所属企业名称
+     */
+    @Schema(description = "所属企业名称")
+    private String accountName;
+
+
+}

+ 96 - 0
commons/src/main/java/com/jzg/commons/entity/account/vo/AccountVo.java

@@ -0,0 +1,96 @@
+package com.jzg.commons.entity.account.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jzg.commons.core.base.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Schema(description = "企业管理表VO")
+@Data
+public class AccountVo extends BaseModel {
+
+    /**
+     * 企业id
+     */
+    @Schema(description = "主键")
+    private Long id;
+
+    /**
+     * 户名
+     */
+    @Schema(description = "企业名称")
+    private String accountName;
+
+    /**
+     * 企业类型(0内部企业 1外部企业)
+     */
+    @Schema(description = "企业类型(0内部企业 1外部企业)")
+    private Integer outerFlag;
+
+    /**
+     * 营业性质(3一般纳税 2小规模 1个体户)
+     */
+    @Schema(description = "营业性质(3一般纳税 2小规模 1个体户)")
+    private Integer businessQuality;
+
+    /**
+     * 所属地
+     */
+    @Schema(description = "所属地")
+    private String owned;
+
+    /**
+     * 法人
+     */
+    @Schema(description = "法人")
+    private String juridicalPerson;
+
+    /**
+     * 成立日期
+     */
+    @Schema(description = "成立日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate establishTime;
+
+    /**
+     * 开票员
+     */
+    @Schema(description = "开票员")
+    private String biller;
+
+    /**
+     * 开票额度
+     */
+    @Schema(description = "开票额度")
+    private String invoicingAmount;
+
+    /**
+     * 剩余开票额度
+     */
+    @Schema(description = "剩余开票额度")
+    private String invoicingAmountExcess;
+
+    /**
+     * 季度开票额度
+     */
+    @Schema(description = "季度开票额度")
+    private String quarterInvoicingAmount;
+
+    /**
+     * 总开票额度
+     */
+    @Schema(description = "总开票额度")
+    private String sumInvoicingAmount;
+
+    /**
+     * 暂估
+     */
+    @Schema(description = "暂估")
+    private String tentativeEstimates;
+
+    /** 系统code */
+    @Schema(description = "系统code")
+    private String systemCode;
+}

+ 15 - 5
commons/src/main/java/com/jzg/commons/entity/po/SysDict.java

@@ -1,9 +1,5 @@
 package com.jzg.commons.entity.po;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.jzg.commons.core.base.BaseModel;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -15,6 +11,7 @@ import java.io.Serializable;
  * @TableName sys_area
  */
 @Data
+@NoArgsConstructor
 public class SysDict extends BaseModel implements Serializable {
     private String id;
     private String typeId;
@@ -25,4 +22,17 @@ public class SysDict extends BaseModel implements Serializable {
     private String description;
     private String sort;
     private String remarks;
-}
+
+
+    public SysDict(SysDict sysDict) {
+        this.id = sysDict.id;
+        this.typeId = sysDict.typeId;
+        this.typeCode = sysDict.typeCode;
+        this.parentValue = sysDict.parentValue;
+        this.value = sysDict.value;
+        this.label = sysDict.label;
+        this.description = sysDict.description;
+        this.sort = sysDict.sort;
+        this.remarks = sysDict.remarks;
+    }
+}

+ 26 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysDictVo.java

@@ -0,0 +1,26 @@
+package com.jzg.commons.entity.vo;
+
+import com.jzg.commons.aop.LogDescriptionField;
+import com.jzg.commons.entity.po.SysArea;
+import com.jzg.commons.entity.po.SysDept;
+import com.jzg.commons.entity.po.SysDict;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SysDictVo extends SysDict {
+
+    private static final long serialVersionUID = 01066656430204167706225L;
+
+    private List<SysDictVo> child;
+
+    public SysDictVo(SysDict sysDict) {
+        super(sysDict);
+    }
+}

+ 94 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/AccountCardController.java

@@ -0,0 +1,94 @@
+package com.jzg.organization.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.account.dto.AccountCardAddParam;
+import com.jzg.commons.entity.account.dto.AccountCardEditParam;
+import com.jzg.commons.entity.account.dto.AccountCardParam;
+import com.jzg.commons.entity.account.vo.AccountCardVo;
+import com.jzg.commons.util.AssertionUtils;
+import com.jzg.organization.service.InvAccountCardService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+
+/**
+ * 账户管理接口
+ *
+ * @author dongxin
+ */
+@Tag(name="账户管理接口")
+@RestController
+@RequestMapping("/accountCard")
+public class AccountCardController extends BaseController {
+
+    @Autowired
+    private InvAccountCardService accountCardService;
+
+    /**
+     * 账户管理列表分页
+     * @return
+     */
+    @PostMapping("/cardList")
+    @Operation(summary = "协议列表分页")
+    public HttpResult cardList(@RequestBody AccountCardParam param){
+        Page<AccountCardVo> result = accountCardService.queryPage(param);
+        return HttpResult.ok(result);
+    }
+
+    /**
+     * 账户信息查询
+     * @param id
+     * @return
+     */
+    @GetMapping(value = { "/cardGet"})
+    @Operation(summary = "账户信息查询")
+    public HttpResult cardGet(String id) {
+        return HttpResult.ok(accountCardService.queryById(id));
+    }
+
+    /**
+     * 账户添加
+     * @param param
+     * @return
+     */
+    @Operation(summary = "账户添加")
+    @PostMapping("/cardAdd")
+    public HttpResult cardAdd(@Validated @RequestBody AccountCardAddParam param) {
+
+        boolean numExists = accountCardService.isExistsCardNum(param.getBankCardNum(), null);
+        AssertionUtils.isFail(numExists,"银行卡号重复!");
+        LocalDateTime startDate = param.getStartCertExpirationDate();
+        LocalDateTime endDate = param.getEndCertExpirationDate();
+        if(endDate.isBefore(startDate) || startDate.isEqual(endDate)){
+            AssertionUtils.isFail(false,"生效时间不能大于失效时间!");
+        }
+        accountCardService.cardAdd(param);
+        return HttpResult.ok("新增成功");
+    }
+
+    /**
+     * 账户修改
+     * @param param
+     * @return
+     */
+    @Operation(summary = "账户修改")
+    @PostMapping("/cardEdit")
+    public HttpResult cardEdit(@Validated @RequestBody AccountCardEditParam param) {
+
+        boolean numExists = accountCardService.isExistsCardNum(param.getBankCardNum(), param.getId());
+        AssertionUtils.isFail(numExists,"银行卡号重复!");
+        LocalDateTime startDate = param.getStartCertExpirationDate();
+        LocalDateTime endDate = param.getEndCertExpirationDate();
+        if(endDate.isBefore(startDate) || startDate.isEqual(endDate)){
+            AssertionUtils.isFail(false,"生效时间不能大于失效时间!");
+        }
+        accountCardService.cardEdit(param);
+        return HttpResult.ok("修改成功");
+    }
+}

+ 72 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/AccountController.java

@@ -0,0 +1,72 @@
+package com.jzg.organization.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.account.dto.*;
+import com.jzg.commons.entity.account.vo.AccountVo;
+import com.jzg.commons.util.AssertionUtils;
+import com.jzg.organization.service.InvAccountService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+
+@Tag(name="来往企业管理接口")
+@RestController
+@RequestMapping("/account")
+public class AccountController extends BaseController {
+
+    @Autowired
+    private InvAccountService accountService;
+
+    /**
+     * 企业管理列表分页
+     * @return
+     */
+    @PostMapping("/accountList")
+    @Operation(summary = "企业管理列表分页")
+    public HttpResult accountList(@RequestBody AccountParam param){
+        Page<AccountVo> result = accountService.queryPage(param);
+        return HttpResult.ok(result);
+    }
+
+    /**
+     * 来往企业信息查询
+     * @param id
+     * @return
+     */
+    @GetMapping(value = { "/accountGet"})
+    @Operation(summary = "来往企业信息查询")
+    public HttpResult accountGet(String id) {
+        return HttpResult.ok(accountService.queryById(id));
+    }
+
+
+    /**
+     * 来往企业添加
+     * @param param
+     * @return
+     */
+    @Operation(summary = "来往企业添加")
+    @PostMapping("/accountAdd")
+    public HttpResult accountAdd(@Validated @RequestBody AccountAddParam param) {
+        accountService.cardAdd(param);
+        return HttpResult.ok("新增成功");
+    }
+
+    /**
+     * 来往企业修改
+     * @param param
+     * @return
+     */
+    @Operation(summary = "来往企业修改")
+    @PostMapping("/accountEdit")
+    public HttpResult accountEdit(@Validated @RequestBody AccountEditParam param) {
+        accountService.accountEdit(param);
+        return HttpResult.ok("修改成功");
+    }
+}

+ 2 - 2
tenant/organization/src/main/java/com/jzg/organization/controller/AgreementController.java

@@ -77,7 +77,7 @@ public class AgreementController extends BaseController {
         LocalDateTime startDate = param.getStartDate();
         LocalDateTime endDate = param.getEndDate();
         if(endDate.isBefore(startDate) || startDate.isEqual(endDate)){
-            AssertionUtils.isFail(nameExists,"协议生效时间不能大于失效时间!");
+            AssertionUtils.isFail(false,"协议生效时间不能大于失效时间!");
         }
         agreementService.agreementAdd(param);
         return HttpResult.ok("新增成功");
@@ -98,7 +98,7 @@ public class AgreementController extends BaseController {
         LocalDateTime startDate = param.getStartDate();
         LocalDateTime endDate = param.getEndDate();
         if(endDate.isBefore(startDate) || startDate.isEqual(endDate)){
-            AssertionUtils.isFail(nameExists,"协议生效时间不能大于失效时间!");
+            AssertionUtils.isFail(false,"协议生效时间不能大于失效时间!");
         }
         agreementService.agreementEdit(param);
         return HttpResult.ok("修改成功");

+ 43 - 4
tenant/organization/src/main/java/com/jzg/organization/controller/DictController.java

@@ -1,19 +1,24 @@
 package com.jzg.organization.controller;
 
+import com.jzg.commons.aop.OperatorTrajectory;
+import com.jzg.commons.aop.PremissionCheck;
 import com.jzg.commons.config.DictEnumConfig;
 import com.jzg.commons.constants.DictionaryManagement;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.po.SysDept;
 import com.jzg.commons.entity.po.SysDict;
+import com.jzg.commons.entity.vo.SysAreaVo;
+import com.jzg.commons.entity.vo.SysDeptVo;
+import com.jzg.commons.entity.vo.SysDictVo;
 import com.jzg.organization.mapper.SysDictMapper;
 import com.jzg.organization.mapper.SysDictTypeMapper;
+import com.jzg.organization.service.SysDictService;
 import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Schema;
 import org.redisson.api.RList;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -32,6 +37,9 @@ public class DictController {
     @Autowired
     private SysDictMapper sysDictMapper;
 
+    @Autowired
+    private SysDictService sysDictService;
+
     @Autowired
     private SysDictTypeMapper sysDictTypeMapper;
 
@@ -58,5 +66,36 @@ public class DictController {
         return HttpResult.ok(DictEnumConfig.getDmMap().get(type));
     }
 
+    @Schema(description = "(资金归属和支出类目)树结构查询")
+    @PostMapping(value = "/queryTree")
+    @PremissionCheck
+    public HttpResult<List<SysDictVo>> queryTree() {
+        List<SysDictVo> sysDictVos = sysDictService.queryTree();
+        return HttpResult.ok(sysDictVos);
+    }
+
+    @Operation(summary = "(资金归属和支出类目)新增类目接口", description = "(资金归属和支出类目)新增类目接口")
+    @PostMapping(value = "/addDict")
+    public HttpResult<Boolean> addDict(@RequestBody SysDictVo sysDictVo) {
+        return sysDictService.addDict(sysDictVo) ? HttpResult.ok("添加类目成功") : HttpResult.error("添加类目失败");
+    }
+
+    @Operation(summary = "(资金归属和支出类目)修改类目接口", description = "(资金归属和支出类目)修改类目接口")
+    @PostMapping(value = "/updateDict")
+    public HttpResult updateDict(@RequestBody SysDictVo sysDictVo) {
+        SysDict byId = sysDictService.getById(sysDictVo.getId());
+        return sysDictService.updateDict(sysDictVo) ? HttpResult.ok("修改成功") : HttpResult.error("修改失败");
+    }
+
+    @Operation(summary = "(资金归属和支出类目)删除类目接口", description = "(资金归属和支出类目)删除类目接口")
+    @PostMapping(value = "/deleteDict")
+    public HttpResult deleteDict(@RequestBody SysDictVo sysDictVo) {
+        return sysDictService.deleteDict(sysDictVo);
+    }
+
+
+
+
+
 
 }

+ 36 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/InvAccountCardMapper.java

@@ -0,0 +1,36 @@
+package com.jzg.organization.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jzg.commons.entity.account.dto.AccountCardParam;
+import com.jzg.commons.entity.account.po.InvAccountCard;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.account.vo.AccountCardVo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author dongxin
+* @description 针对表【inv_account_card(账户信息表)】的数据库操作Mapper
+* @createDate 2025-06-11 09:10:26
+* @Entity generator.domain.InvAccountCard
+*/
+public interface InvAccountCardMapper extends BaseMapper<InvAccountCard> {
+
+    /**
+     * 账户管理列表分页
+     * @param page
+     * @param param
+     * @return
+     */
+    Page<AccountCardVo> queryPage(Page page,@Param("param") AccountCardParam param);
+
+    /**
+     * 账户信息查询
+     * @param id
+     * @return
+     */
+    AccountCardVo queryById(@Param("id") String id);
+}
+
+
+
+

+ 36 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/InvAccountMapper.java

@@ -0,0 +1,36 @@
+package com.jzg.organization.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jzg.commons.entity.account.dto.AccountParam;
+import com.jzg.commons.entity.account.po.InvAccount;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.account.vo.AccountVo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author dongxin
+* @description 针对表【inv_account(来往企业表)】的数据库操作Mapper
+* @createDate 2025-06-11 09:20:23
+* @Entity generator.domain.InvAccount
+*/
+public interface InvAccountMapper extends BaseMapper<InvAccount> {
+
+    /**
+     * 企业管理列表分页
+     * @param page
+     * @param param
+     * @return
+     */
+    Page<AccountVo> queryPage( Page page, @Param("param") AccountParam param);
+
+    /**
+     * 根据id获取企业信息
+     * @param id
+     * @return
+     */
+    AccountVo queryById(@Param("id") String id);
+}
+
+
+
+

+ 58 - 0
tenant/organization/src/main/java/com/jzg/organization/service/InvAccountCardService.java

@@ -0,0 +1,58 @@
+package com.jzg.organization.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jzg.commons.entity.account.dto.AccountCardAddParam;
+import com.jzg.commons.entity.account.dto.AccountCardEditParam;
+import com.jzg.commons.entity.account.dto.AccountCardParam;
+import com.jzg.commons.entity.account.po.InvAccountCard;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.account.vo.AccountCardVo;
+
+/**
+* @author dongxin
+* @description 针对表【inv_account_card(账户信息表)】的数据库操作Service
+* @createDate 2025-06-11 09:10:26
+*/
+public interface InvAccountCardService extends IService<InvAccountCard> {
+
+    /**
+     * 账户管理列表分页
+     * @param param
+     * @return
+     */
+    Page<AccountCardVo> queryPage(AccountCardParam param);
+
+    /**
+     * 账户信息查询
+     * @param id
+     * @return
+     */
+    AccountCardVo queryById(String id);
+
+    /**
+     * 查询账户是否存在
+     * @param id
+     * @return
+     */
+    AccountCardVo isExistById(String id);
+
+    /**
+     * 根据卡号 判断是否存在数据
+     * @param bankCardNum
+     * @param id
+     * @return
+     */
+    boolean isExistsCardNum(String bankCardNum, String id);
+
+    /**
+     * 账户新增
+     * @param param
+     */
+    void cardAdd(AccountCardAddParam param);
+
+    /**
+     * 账户修改
+     * @param param
+     */
+    void cardEdit(AccountCardEditParam param);
+}

+ 50 - 0
tenant/organization/src/main/java/com/jzg/organization/service/InvAccountService.java

@@ -0,0 +1,50 @@
+package com.jzg.organization.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jzg.commons.entity.account.dto.AccountAddParam;
+import com.jzg.commons.entity.account.dto.AccountEditParam;
+import com.jzg.commons.entity.account.dto.AccountParam;
+import com.jzg.commons.entity.account.po.InvAccount;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.account.vo.AccountVo;
+
+/**
+* @author dongxin
+* @description 针对表【inv_account(来往企业表)】的数据库操作Service
+* @createDate 2025-06-11 09:20:23
+*/
+public interface InvAccountService extends IService<InvAccount> {
+
+    /**
+     * 企业管理列表分页
+     * @param param
+     * @return
+     */
+    Page<AccountVo> queryPage(AccountParam param);
+
+    /**
+     * 来往企业信息查询
+     * @param id
+     * @return
+     */
+    AccountVo queryById(String id);
+
+    /**
+     * 查询企业是否存在
+     * @param id
+     * @return
+     */
+    AccountVo isExistById(String id);
+
+    /**
+     * 往来企业添加
+     * @param param
+     */
+    void cardAdd(AccountAddParam param);
+
+    /**
+     * 往来企业修改
+     * @param param
+     */
+    void accountEdit(AccountEditParam param);
+}

+ 38 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysDictService.java

@@ -0,0 +1,38 @@
+package com.jzg.organization.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.po.SysDict;
+import com.jzg.commons.entity.vo.SysDictVo;
+
+import java.util.List;
+
+public interface SysDictService extends IService<SysDict> {
+
+    /**
+     * (资金归属和支出类目)树结构查询
+     * @return
+     */
+    List<SysDictVo> queryTree();
+
+    /**
+     * (资金归属和支出类目)新增类目接口
+     * @param sysDictVo
+     * @return
+     */
+    boolean addDict(SysDictVo sysDictVo);
+
+    /**
+     * (资金归属和支出类目)修改类目接口
+     * @param sysDictVo
+     * @return
+     */
+    boolean updateDict(SysDictVo sysDictVo);
+
+    /**
+     * (资金归属和支出类目)删除类目接口
+     * @param sysDictVo
+     * @return
+     */
+    HttpResult deleteDict(SysDictVo sysDictVo);
+}

+ 76 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/InvAccountCardServiceImpl.java

@@ -0,0 +1,76 @@
+package com.jzg.organization.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.account.dto.AccountCardAddParam;
+import com.jzg.commons.entity.account.dto.AccountCardEditParam;
+import com.jzg.commons.entity.account.dto.AccountCardParam;
+import com.jzg.commons.entity.account.po.InvAccountCard;
+import com.jzg.commons.entity.account.vo.AccountCardVo;
+import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.util.StringUtils;
+import com.jzg.organization.mapper.InvAccountCardMapper;
+import com.jzg.organization.service.InvAccountCardService;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+/**
+* @author dongxin
+* @description 针对表【inv_account_card(账户信息表)】的数据库操作Service实现
+* @createDate 2025-06-11 09:10:26
+*/
+@Service
+public class InvAccountCardServiceImpl extends ServiceImpl<InvAccountCardMapper, InvAccountCard>
+    implements InvAccountCardService {
+
+    @Override
+    public Page<AccountCardVo> queryPage(AccountCardParam param) {
+        Page<AccountCardVo> page = baseMapper.queryPage(param.getPage(), param);
+        return page;
+    }
+
+    @Override
+    public AccountCardVo queryById(String id) {
+        AccountCardVo cardVo = this.isExistById(id);
+        return cardVo;
+    }
+
+    @Override
+    public AccountCardVo isExistById(String id) {
+        AccountCardVo cardVo = baseMapper.queryById(id);
+        if (ObjectUtils.isEmpty(cardVo)) {
+            throw new SystemException("账户id不存在!");
+        }
+        return cardVo;
+    }
+
+    @Override
+    public boolean isExistsCardNum(String bankCardNum, String id) {
+        long count = this.count(new LambdaQueryWrapper<InvAccountCard>()
+                .eq(InvAccountCard::getBankCardNum, bankCardNum)
+                .ne(StringUtils.isNotNull(id),InvAccountCard::getId, id)
+                .eq(InvAccountCard::getIsDelete,0)
+        );
+        return count > 0;
+    }
+
+    @Override
+    public void cardAdd(AccountCardAddParam param) {
+        InvAccountCard accountCard = new InvAccountCard();
+        BeanUtils.copyProperties(param,accountCard);
+        save(accountCard);
+    }
+
+    @Override
+    public void cardEdit(AccountCardEditParam param) {
+        InvAccountCard accountCard = new InvAccountCard();
+        BeanUtils.copyProperties(param,accountCard);
+        updateById(accountCard);
+    }
+}
+
+
+
+

+ 64 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/InvAccountServiceImpl.java

@@ -0,0 +1,64 @@
+package com.jzg.organization.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.account.dto.AccountAddParam;
+import com.jzg.commons.entity.account.dto.AccountEditParam;
+import com.jzg.commons.entity.account.dto.AccountParam;
+import com.jzg.commons.entity.account.po.InvAccount;
+import com.jzg.commons.entity.account.vo.AccountVo;
+import com.jzg.commons.exception.SystemException;
+import com.jzg.organization.mapper.InvAccountMapper;
+import com.jzg.organization.service.InvAccountService;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+/**
+* @author dongxin
+* @description 针对表【inv_account(来往企业表)】的数据库操作Service实现
+* @createDate 2025-06-11 09:20:23
+*/
+@Service
+public class InvAccountServiceImpl extends ServiceImpl<InvAccountMapper, InvAccount>
+    implements InvAccountService {
+
+    @Override
+    public Page<AccountVo> queryPage(AccountParam param) {
+        Page<AccountVo> page = baseMapper.queryPage(param.getPage(), param);
+        return page;
+    }
+
+    @Override
+    public AccountVo queryById(String id) {
+        AccountVo accountVo = this.isExistById(id);
+        return accountVo;
+    }
+
+    @Override
+    public AccountVo isExistById(String id) {
+        AccountVo accountVo = baseMapper.queryById(id);
+        if (ObjectUtils.isEmpty(accountVo)) {
+            throw new SystemException("企业id不存在!");
+        }
+        return accountVo;
+    }
+
+    @Override
+    public void cardAdd(AccountAddParam param) {
+        InvAccount account = new InvAccount();
+        BeanUtils.copyProperties(param,account);
+        save(account);
+    }
+
+    @Override
+    public void accountEdit(AccountEditParam param) {
+        InvAccount account = new InvAccount();
+        BeanUtils.copyProperties(param,account);
+        updateById(account);
+    }
+}
+
+
+
+

+ 113 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysDictServiceImpl.java

@@ -0,0 +1,113 @@
+package com.jzg.organization.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.po.SysDept;
+import com.jzg.commons.entity.po.SysDict;
+import com.jzg.commons.entity.vo.SysDictVo;
+import com.jzg.commons.entity.vo.SysUserVo;
+import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.util.AssertionUtils;
+import com.jzg.commons.util.StringUtils;
+import com.jzg.commons.util.idgen.IdGenerate;
+import com.jzg.organization.mapper.SysDictMapper;
+import com.jzg.organization.service.SysDictService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+public class SysDictServiceImpl  extends ServiceImpl<SysDictMapper, SysDict> implements SysDictService {
+
+
+    @Override
+    public List<SysDictVo> queryTree() {
+        LambdaQueryWrapper<SysDict> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(SysDict::getTypeId,44,45);
+        queryWrapper.eq(SysDict::getIsDelete,0);
+        queryWrapper.orderByAsc(SysDict::getSort);
+        List<SysDict> list = list(queryWrapper);
+        List<SysDictVo> collect = list.stream().map(SysDictVo::new)
+                .sorted( (e1,e2) -> {
+                    return e1.getCreateTime().compareTo(e2.getCreateTime());
+                }).collect(Collectors.toList());
+        Map<String, List<SysDictVo>> map = collect.stream().collect(Collectors.groupingBy(SysDictVo::getParentValue));
+        collect.forEach(i -> i.setChild(map.getOrDefault(i.getParentValue(), new ArrayList<>())));
+        return map.get("0");
+    }
+
+    @Override
+    public boolean addDict(SysDictVo sysDictVo) {
+
+        validateDict(sysDictVo,true);
+
+        SysDict sysDict = new SysDict();
+        BeanUtils.copyProperties(sysDictVo, sysDict);
+        sysDict.setId(IdGenerate.nextId());
+        sysDict.setLabel(sysDictVo.getValue());
+        sysDict.setDescription(sysDictVo.getValue());
+        //获取父级id
+        String parentId = sysDict.getParentValue();
+        //设置机构路径
+        if(!parentId.equals("0") || StringUtils.isNotEmpty(parentId)) {
+            SysDict parentSysDict = baseMapper.selectById(parentId);
+            if(!Objects.isNull(parentSysDict)){
+                sysDict.setTypeId(parentSysDict.getTypeId());
+                sysDict.setTypeCode(parentSysDict.getTypeCode());
+            }
+
+            LambdaQueryWrapper<SysDict> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(SysDict::getParentValue,parentId);
+            queryWrapper.eq(SysDict::getIsDelete,0);
+            List<SysDict> dicts = this.list(queryWrapper);
+            sysDict.setSort(CollUtil.isEmpty(dicts)? "0" : dicts.size() + "");
+        }
+        return this.save(sysDict);
+    }
+
+    @Override
+    public boolean updateDict(SysDictVo sysDictVo) {
+        validateDict(sysDictVo,false);
+        SysDict sysDict = new SysDict();
+        BeanUtils.copyProperties(sysDictVo, sysDict);
+        return this.updateById(sysDict);
+    }
+
+    @Override
+    public HttpResult deleteDict(SysDictVo sysDictVo) {
+        SysDict sysDict = getById(sysDictVo.getId());
+        if (sysDict == null) {
+            throw new SystemException("类目不存在");
+        }
+        List<SysDict> dictList = lambdaQuery().eq(SysDict::getParentValue, sysDict.getId()).list();
+        if (!dictList.isEmpty()) {
+            throw new SystemException(sysDict.getValue() + "类目下还有其他隶属类目请将这些子类目删除后,再进行删除");
+        }
+        this.removeById(sysDictVo.getId());
+        return HttpResult.ok("删除机构成功");
+    }
+
+    private void validateDict(SysDictVo sysDictVo, boolean isAdd){
+
+        AssertionUtils.isFail(StringUtils.isBlank(sysDictVo.getParentValue()), "父类id不能为空");
+        AssertionUtils.isFail(StringUtils.isBlank(sysDictVo.getValue()), "类目名称不能为空");
+        if(isAdd){
+            if(this.count(new LambdaQueryWrapper<SysDict>()
+                    .eq(SysDict::getValue, sysDictVo.getValue())) > 0){
+                throw new SystemException("类目名称已存在");
+            }
+        }else{
+            AssertionUtils.isFail(StringUtils.isBlank(sysDictVo.getId()), "编辑类目id不能为空");
+            if(this.count(new LambdaQueryWrapper<SysDict>()
+                    .eq(SysDict::getValue, sysDictVo.getValue())
+                    .ne(SysDict::getId, sysDictVo.getId())) > 0){
+                throw new SystemException("类目名称已存在");
+            }
+        }
+
+    }
+}

+ 83 - 0
tenant/organization/src/main/resources/mapper/InvAccountCardMapper.xml

@@ -0,0 +1,83 @@
+<?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="com.jzg.organization.mapper.InvAccountCardMapper">
+
+    <resultMap id="BaseResultMap" type="com.jzg.commons.entity.account.po.InvAccountCard">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="cardName" column="card_name" jdbcType="VARCHAR"/>
+            <result property="bankCardNum" column="bank_card_num" jdbcType="VARCHAR"/>
+            <result property="accountId" column="account_id" jdbcType="BIGINT"/>
+            <result property="accountQuality" column="account_quality" jdbcType="INTEGER"/>
+            <result property="bankName" column="bank_name" jdbcType="VARCHAR"/>
+            <result property="bank" column="bank" jdbcType="VARCHAR"/>
+            <result property="bankNum" column="bank_num" jdbcType="VARCHAR"/>
+            <result property="startCertExpirationDate" column="start_cert_expiration_date" jdbcType="TIMESTAMP"/>
+            <result property="endCertExpirationDate" column="end_cert_expiration_date" jdbcType="TIMESTAMP"/>
+            <result property="balance" column="balance" jdbcType="VARCHAR"/>
+            <result property="spend" column="spend" jdbcType="VARCHAR"/>
+            <result property="dayStrokeNum" column="day_stroke_num" jdbcType="VARCHAR"/>
+            <result property="dayStrokeNumExcess" column="day_stroke_num_excess" jdbcType="VARCHAR"/>
+            <result property="priDayLines" column="pri_day_lines" jdbcType="VARCHAR"/>
+            <result property="priSingleLines" column="pri_single_lines" jdbcType="VARCHAR"/>
+            <result property="priDayLinesExcess" column="pri_day_lines_excess" jdbcType="VARCHAR"/>
+            <result property="priYearLines" column="pri_year_lines" jdbcType="VARCHAR"/>
+            <result property="priYearExcess" column="pri_year_excess" jdbcType="VARCHAR"/>
+            <result property="pubSingleLines" column="pub_single_lines" jdbcType="VARCHAR"/>
+            <result property="pubYearLines" column="pub_year_lines" jdbcType="VARCHAR"/>
+            <result property="pubDayLines" column="pub_day_lines" jdbcType="VARCHAR"/>
+            <result property="pubYearExcess" column="pub_year_excess" jdbcType="VARCHAR"/>
+            <result property="pubDayLinesExcess" column="pub_day_lines_excess" jdbcType="VARCHAR"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="isDelete" column="is_delete" jdbcType="TINYINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        iac.id,iac.card_name,iac.bank_card_num,
+        iac.account_id,iac.account_quality,iac.bank_name,
+        iac.bank,iac.bank_num,iac.start_cert_expiration_date,
+        iac.end_cert_expiration_date,iac.balance,spend,
+        iac.day_stroke_num,iac.day_stroke_num_excess,iac.pri_day_lines,
+        iac.pri_single_lines,iac.pri_day_lines_excess,iac.pri_year_lines,
+        iac.pri_year_excess,iac.pub_single_lines,iac.pub_year_lines,
+        iac.pub_day_lines,iac.pub_year_excess,iac.pub_day_lines_excess,
+        iac.create_by,iac.create_time,iac.update_by,
+        iac.update_time,iac.is_delete,ia.account_name
+    </sql>
+    <select id="queryPage" resultType="com.jzg.commons.entity.account.vo.AccountCardVo">
+        select <include refid="Base_Column_List"/>
+        FROM inv_account_card iac
+        LEFT JOIN inv_account ia on ia.id = iac.account_id
+        <where>
+            iac.is_delete = 0
+            <if test="param.accountId != null and param.accountId != ''">
+                and iac.account_id = #{param.accountId}
+            </if>
+            <if test="param.cardName != null and param.cardName != ''">
+                and iac.card_name = #{param.cardName}
+            </if>
+            <if test="param.accountQuality != null ">
+                and iac.account_quality = #{param.accountQuality}
+            </if>
+            <if test="param.bankCardNum != null and param.bankCardNum != ''">
+                and iac.bank_card_num = #{param.bankCardNum}
+            </if>
+        </where>
+        ORDER BY iac.create_time DESC
+    </select>
+    <select id="queryById" resultType="com.jzg.commons.entity.account.vo.AccountCardVo">
+        select <include refid="Base_Column_List"/>
+        FROM inv_account_card iac
+        LEFT JOIN inv_account ia on ia.id = iac.account_id
+        <where>
+            iac.is_delete = 0
+            <if test="id != null and id != ''">
+                and pa.id = #{id}
+            </if>
+        </where>
+    </select>
+</mapper>

+ 60 - 0
tenant/organization/src/main/resources/mapper/InvAccountMapper.xml

@@ -0,0 +1,60 @@
+<?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="com.jzg.organization.mapper.InvAccountMapper">
+
+    <resultMap id="BaseResultMap" type="com.jzg.commons.entity.account.po.InvAccount">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="accountName" column="account_name" jdbcType="VARCHAR"/>
+            <result property="outerFlag" column="outer_flag" jdbcType="INTEGER"/>
+            <result property="businessQuality" column="business_quality" jdbcType="INTEGER"/>
+            <result property="owned" column="owned" jdbcType="VARCHAR"/>
+            <result property="juridicalPerson" column="juridical_person" jdbcType="VARCHAR"/>
+            <result property="establishTime" column="establish_time" jdbcType="TIMESTAMP"/>
+            <result property="biller" column="biller" jdbcType="VARCHAR"/>
+            <result property="invoicingAmount" column="invoicing_amount" jdbcType="VARCHAR"/>
+            <result property="invoicingAmountExcess" column="invoicing_amount_excess" jdbcType="VARCHAR"/>
+            <result property="quarterInvoicingAmount" column="quarter_invoicing_amount" jdbcType="VARCHAR"/>
+            <result property="sumInvoicingAmount" column="sum_invoicing_amount" jdbcType="VARCHAR"/>
+            <result property="tentativeEstimates" column="tentative_estimates" jdbcType="VARCHAR"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="isDelete" column="is_delete" jdbcType="TINYINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,account_name,outer_flag,
+        business_quality,owned,juridical_person,
+        establish_time,biller,invoicing_amount,
+        invoicing_amount_excess,quarter_invoicing_amount,sum_invoicing_amount,
+        tentative_estimates,create_by,create_time,
+        update_by,update_time,is_delete
+    </sql>
+    <select id="queryPage" resultType="com.jzg.commons.entity.account.vo.AccountVo">
+        select <include refid="Base_Column_List"/>
+        FROM inv_account ia
+        <where>
+            ia.is_delete = 0
+            <if test="param.outerFlag != null ">
+                and ia.outer_flag = #{param.outerFlag}
+            </if>
+            <if test="param.accountName != null and param.accountName != ''">
+                and ia.account_name = #{param.accountName}
+            </if>
+        </where>
+        ORDER BY ia.create_time DESC
+    </select>
+    <select id="queryById" resultType="com.jzg.commons.entity.account.vo.AccountVo">
+        select <include refid="Base_Column_List"/>
+        FROM inv_account ia
+        <where>
+            ia.is_delete = 0
+            <if test="id != null and id != ''">
+                and ia.id = #{id}
+            </if>
+        </where>
+    </select>
+</mapper>