Browse Source

2023年10月12日17:51:29

纪新园 2 years ago
parent
commit
79b4bed53b
56 changed files with 446 additions and 104 deletions
  1. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/acc/dto/BAccElementsExcel.java
  2. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/acc/dto/BAccItemsTypeExcel.java
  3. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/acc/entity/BAccElements.java
  4. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/acc/entity/BAccItemsType.java
  5. 3 3
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/business/dto/BBusinessTypeExcel.java
  6. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/business/entity/BusinessType.java
  7. 3 3
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/cntr/dto/BCntrTypesExcel.java
  8. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/cntr/entity/BCntrTypes.java
  9. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/commodity/dto/BCommodityExecl.java
  10. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/commodity/entity/BCommodity.java
  11. 3 10
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/corps/dto/BCorpsExcel.java
  12. 11 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/corps/entity/BCorps.java
  13. 66 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/corps/entity/CorpsInvoiceHeader.java
  14. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/countrys/dto/BCountrysExcel.java
  15. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/countrys/entity/BCountrys.java
  16. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/cur/dto/BCurrencyExcel.java
  17. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/cur/entity/BCurrency.java
  18. 1 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/dto/BFeesDefineExcel.java
  19. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/dto/BFeesExcel.java
  20. 3 8
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/dto/LosBFeesTemplateExcel.java
  21. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/BFees.java
  22. 3 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/BFeesDefine.java
  23. 3 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/LosBFeesTemplate.java
  24. 3 8
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/lines/dto/BLinesExcel.java
  25. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/lines/entity/BLines.java
  26. 3 3
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/locations/dto/BLocationsExcel.java
  27. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/locations/entity/BLocations.java
  28. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/modes/dto/BTradeModesExcel.java
  29. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/modes/entity/BTradeModes.java
  30. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/packages/dto/BPackagesExcel.java
  31. 6 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/packages/entity/BPackages.java
  32. 4 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/parities/entity/Parities.java
  33. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/ports/dto/BPortsExcel.java
  34. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/ports/entity/BPorts.java
  35. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/terms/dto/BServiceTermsExcel.java
  36. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/terms/entity/BServiceTerms.java
  37. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/units/dto/BUnitsExcel.java
  38. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/units/entity/BUnits.java
  39. 3 8
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/vessels/dto/BVesselsExcel.java
  40. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/vessels/entity/BVessels.java
  41. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/voucher/dto/BVoucherTypeExcel.java
  42. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/voucher/entity/BVoucherType.java
  43. 2 2
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/agreement/entity/AgreementPrice.java
  44. 1 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/excel/GoodsOutExcel.java
  45. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/acc/service/impl/BAccItemsTypeServiceImpl.java
  46. 48 7
      blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/controller/BCorpsController.java
  47. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/service/IBCorpsTypeDefineService.java
  48. 118 23
      blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/service/impl/BCorpsServiceImpl.java
  49. 13 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/service/impl/BCorpsTypeDefineServiceImpl.java
  50. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/cur/service/impl/BCurrencyServiceImpl.java
  51. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/fees/service/impl/BFeesServiceImpl.java
  52. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/fees/service/impl/LosBFeesTemplateServiceImpl.java
  53. 14 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/lines/service/impl/BLinesServiceImpl.java
  54. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/ports/service/impl/BPortsServiceImpl.java
  55. 14 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/vessels/service/impl/BVesselsServiceImpl.java
  56. 6 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/agreement/service/impl/AgreementPriceServiceImpl.java

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/acc/dto/BAccElementsExcel.java

@@ -41,12 +41,12 @@ public class BAccElementsExcel implements Serializable {
 	/**
 	 * 编码
 	 */
-	@ExcelProperty(value = "编码")
+	@ExcelProperty(value = "编码(必填)")
 	private String code;
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/acc/dto/BAccItemsTypeExcel.java

@@ -41,12 +41,12 @@ public class BAccItemsTypeExcel implements Serializable {
 	/**
 	 * 代码
 	 */
-	@ExcelProperty(value = "代码")
+	@ExcelProperty(value = "代码(必填)")
 	private String code;
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/acc/entity/BAccElements.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -87,16 +88,19 @@ public class BAccElements implements Serializable {
 	 * 编码
 	 */
 	@ApiModelProperty(value = "编码")
+	@NotEmpty(message = "编码不能为空")
 	private String code;
 	/**
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 版本

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/acc/entity/BAccItemsType.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
@@ -88,16 +89,19 @@ public class BAccItemsType implements Serializable {
 	 * 代码
 	 */
 	@ApiModelProperty(value = "代码")
+	@NotEmpty(message = "代码不能为空")
 	private String code;
 	/**
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 版本

+ 3 - 3
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/business/dto/BBusinessTypeExcel.java

@@ -42,12 +42,12 @@ public class BBusinessTypeExcel implements Serializable {
 	/**
 	 * 代码
 	 */
-	@ExcelProperty(value = "代码")
+	@ExcelProperty(value = "代码(必填)")
 	private String code;
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称
@@ -57,7 +57,7 @@ public class BBusinessTypeExcel implements Serializable {
 	/**
 	 * 单据号码格式,BL[B][Y4][M2][D2][N6]
 	 */
-	@ExcelProperty(value = "单据号码格式,BL[B][Y4][M2][D2][N6]")
+	@ExcelProperty(value = "单据号码格式")
 	private String billNoFormat;
 
 	/**

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/business/entity/BusinessType.java

@@ -21,6 +21,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -86,16 +87,19 @@ public class BusinessType implements Serializable {
 	 * 代码
 	 */
 	@ApiModelProperty(value = "代码")
+	@NotEmpty(message = "代码不能为空")
 	private String code;
 	/**
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 单据号码格式,BL[B][Y4][M2][D2][N6]

+ 3 - 3
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/cntr/dto/BCntrTypesExcel.java

@@ -43,7 +43,7 @@ public class BCntrTypesExcel implements Serializable {
 	/**
 	 * 箱型 ISO 代码,20GP,40HC etc.
 	 */
-	@ExcelProperty(value = "箱型 ISO 代码")
+	@ExcelProperty(value = "箱型 ISO 代码(必填)")
 	private String code;
 	/**
 	 * 箱型 95 码,22G1, 45R1 etc.
@@ -58,7 +58,7 @@ public class BCntrTypesExcel implements Serializable {
 	/**
 	 * 箱型 GP, HC, COLOAD etc.
 	 */
-	@ExcelProperty(value = "箱型")
+	@ExcelProperty(value = "箱型(必填)")
 	private String cntrType;
 	/**
 	 * 尺码 V20, V40, COLOAD etc.
@@ -68,7 +68,7 @@ public class BCntrTypesExcel implements Serializable {
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/cntr/entity/BCntrTypes.java

@@ -24,6 +24,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.los.basic.utils.ExtendedData;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -102,6 +103,7 @@ public class BCntrTypes implements Serializable {
 	 * 海关代码
 	 */
 	@ApiModelProperty(value = "海关代码")
+	@NotEmpty(message = "海关代码不能为空")
 	private String customsCode;
 	/**
 	 * 箱型 GP, HC, COLOAD etc.
@@ -117,11 +119,13 @@ public class BCntrTypes implements Serializable {
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 皮重 KGS

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/commodity/dto/BCommodityExecl.java

@@ -43,12 +43,12 @@ public class BCommodityExecl implements Serializable {
 	/**
 	 * HS CODE(The Harmonization System Code)
 	 */
-	@ExcelProperty(value = "HS CODE")
+	@ExcelProperty(value = "HS CODE(必填)")
 	private String hsCode;
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/commodity/entity/BCommodity.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -87,16 +88,19 @@ public class BCommodity implements Serializable {
 	 * HS CODE(The Harmonization System Code)
 	 */
 	@ApiModelProperty(value = "HS CODE(The Harmonization System Code)")
+	@NotEmpty(message = "HS CODE不能为空")
 	private String hsCode;
 	/**
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 计量单位

+ 3 - 10
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/corps/dto/BCorpsExcel.java

@@ -39,22 +39,15 @@ public class BCorpsExcel implements Serializable {
 
 	private static final long serialVersionUID = 1L;
 
-
-	/**
-	 * 分公司 Id
-	 */
-	@ExcelProperty(value = "分公司 Id")
-	private String branchId;
-
 	/**
 	 * 单位编码
 	 */
-	@ExcelProperty(value = "单位编码")
+	@ExcelProperty(value = "单位编码(必填)")
 	private String code;
 	/**
 	 * 统一社会信用代码
 	 */
-	@ExcelProperty(value = "统一社会信用代码")
+	@ExcelProperty(value = "统一社会信用代码(必填)")
 	private String uscc;
 	/**
 	 * 简称
@@ -64,7 +57,7 @@ public class BCorpsExcel implements Serializable {
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 11 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/corps/entity/BCorps.java

@@ -24,6 +24,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.los.basic.utils.ExtendedData;
 
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -97,11 +99,13 @@ public class BCorps implements Serializable {
 	 * 单位编码
 	 */
 	@ApiModelProperty(value = "单位编码")
+	@NotEmpty(message = "单位编码不能为空")
 	private String code;
 	/**
 	 * 统一社会信用代码
 	 */
 	@ApiModelProperty(value = "统一社会信用代码")
+	@NotEmpty(message = "统一社会信用代码不能为空")
 	private String uscc;
 	/**
 	 * 首字母
@@ -117,6 +121,7 @@ public class BCorps implements Serializable {
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
@@ -192,7 +197,7 @@ public class BCorps implements Serializable {
 	 * 部门 Id
 	 */
 	@ApiModelProperty(value = "部门 Id")
-	private Long deptId;
+	private String deptId;
 	/**
 	 * 部门名称
 	 */
@@ -234,6 +239,11 @@ public class BCorps implements Serializable {
 	@ApiModelProperty(value = "分管员")
 	private String adminProfiles;
 	/**
+	 * 分管员
+	 */
+	@TableField(exist = false)
+	private String adminProfilesName;
+	/**
 	 * 海运邮箱
 	 */
 	@ApiModelProperty(value = "海运邮箱")

+ 66 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/corps/entity/CorpsInvoiceHeader.java

@@ -18,6 +18,7 @@ package org.springblade.los.basic.corps.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import java.util.Date;
@@ -96,6 +97,11 @@ public class CorpsInvoiceHeader implements Serializable {
 	@ApiModelProperty(value = "主表id")
 	private Long pid;
 	/**
+	 * 编码,助记码,用于快速录入
+	 */
+	@ApiModelProperty(value = "编码,助记码,用于快速录入")
+	private String code;
+	/**
 	 * 保函号码
 	 */
 	@ApiModelProperty(value = "保函号码")
@@ -111,6 +117,66 @@ public class CorpsInvoiceHeader implements Serializable {
 	@ApiModelProperty(value = "发票抬头")
 	private String invoiceHeader;
 	/**
+	 * 统一社会信用代码,即是税号
+	 */
+	@ApiModelProperty(value = "统一社会信用代码,即是税号")
+	private String uscc;
+	/**
+	 * 地址
+	 */
+	@ApiModelProperty(value = "地址")
+	private String address;
+	/**
+	 * 联系人姓名
+	 */
+	@ApiModelProperty(value = "联系人姓名")
+	private String attnName;
+	/**
+	 * 联系人电话
+	 */
+	@ApiModelProperty(value = "联系人电话")
+	private String attnTel;
+	/**
+	 * 电子邮箱
+	 */
+	@ApiModelProperty(value = "电子邮箱")
+	private String email;
+	/**
+	 * 纳税人性质
+	 */
+	@ApiModelProperty(value = "纳税人性质")
+	private String taxpayerNature;
+	/**
+	 * 增值税税率
+	 */
+	@ApiModelProperty(value = "增值税税率")
+	private BigDecimal taxRate;
+	/**
+	 * 发票类型
+	 */
+	@ApiModelProperty(value = "发票类型")
+	private BigDecimal invoiceType;
+	/**
+	 * 人民币账户银行
+	 */
+	@ApiModelProperty(value = "人民币账户银行")
+	private String accountBankCny;
+	/**
+	 * 人民币银行账号
+	 */
+	@ApiModelProperty(value = "人民币银行账号")
+	private String accountNoCny;
+	/**
+	 * 美元账户银行
+	 */
+	@ApiModelProperty(value = "美元账户银行")
+	private String accountBankUsd;
+	/**
+	 * 美元银行账号
+	 */
+	@ApiModelProperty(value = "美元银行账号")
+	private String accountNoUsd;
+	/**
 	 * 版本
 	 */
 	@ApiModelProperty(value = "版本")

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/countrys/dto/BCountrysExcel.java

@@ -42,7 +42,7 @@ public class BCountrysExcel implements Serializable {
 	/**
 	 * 编码
 	 */
-	@ExcelProperty(value = "编码")
+	@ExcelProperty(value = "编码(必填)")
 	private String code;
 	/**
 	 * 国际三字码
@@ -52,7 +52,7 @@ public class BCountrysExcel implements Serializable {
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/countrys/entity/BCountrys.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -87,6 +88,7 @@ public class BCountrys implements Serializable {
 	 * 编码
 	 */
 	@ApiModelProperty(value = "编码")
+	@NotEmpty(message = "编码不能为空")
 	private String code;
 	/**
 	 * 国际三字码
@@ -97,11 +99,13 @@ public class BCountrys implements Serializable {
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 版本

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/cur/dto/BCurrencyExcel.java

@@ -43,7 +43,7 @@ public class BCurrencyExcel implements Serializable {
 	/**
 	 * 编码
 	 */
-	@ExcelProperty(value = "编码")
+	@ExcelProperty(value = "编码(必填)")
 	private String code;
 	/**
 	 * 国际三字码
@@ -53,7 +53,7 @@ public class BCurrencyExcel implements Serializable {
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/cur/entity/BCurrency.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
@@ -89,6 +90,7 @@ public class BCurrency implements Serializable {
 	 * 编码
 	 */
 	@ApiModelProperty(value = "编码")
+	@NotEmpty(message = "编码不能为空")
 	private String code;
 	/**
 	 * 国际三字码
@@ -99,11 +101,13 @@ public class BCurrency implements Serializable {
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 货币符号

+ 1 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/dto/BFeesDefineExcel.java

@@ -41,7 +41,7 @@ public class BFeesDefineExcel implements Serializable {
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/dto/BFeesExcel.java

@@ -42,12 +42,12 @@ public class BFeesExcel implements Serializable {
 	/**
 	 * 费用编码
 	 */
-	@ExcelProperty(value = "费用编码")
+	@ExcelProperty(value = "费用编码(必填)")
 	private String code;
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 3 - 8
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/dto/LosBFeesTemplateExcel.java

@@ -41,14 +41,9 @@ public class LosBFeesTemplateExcel implements Serializable {
 
 
 	/**
-	 * 业务类型 Id
-	 */
-	@ExcelProperty(value = "业务类型 Id")
-	private Long businessTypeId;
-	/**
 	 * 业务类型中文名称
 	 */
-	@ExcelProperty(value = "业务类型中文名称")
+	@ExcelProperty(value = "业务类型中文名称(必填)")
 	private String businessTypeCnName;
 	/**
 	 * 业务类型英文名称
@@ -58,12 +53,12 @@ public class LosBFeesTemplateExcel implements Serializable {
 	/**
 	 * 模版编号
 	 */
-	@ExcelProperty(value = "模版编号")
+	@ExcelProperty(value = "模版编号(必填)")
 	private String code;
 	/**
 	 * 模版中文名称
 	 */
-	@ExcelProperty(value = "模版中文名称")
+	@ExcelProperty(value = "模版中文名称(必填)")
 	private String cnName;
 	/**
 	 * 模版英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/BFees.java

@@ -21,6 +21,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -86,16 +87,19 @@ public class BFees implements Serializable {
 	 * 费用编码
 	 */
 	@ApiModelProperty(value = "费用编码")
+	@NotEmpty(message = "费用编码不能为空")
 	private String code;
 	/**
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 计量单位

+ 3 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/BFeesDefine.java

@@ -21,6 +21,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -96,11 +97,13 @@ public class BFeesDefine implements Serializable {
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 排序

+ 3 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/LosBFeesTemplate.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
@@ -103,11 +104,13 @@ public class LosBFeesTemplate implements Serializable {
 	 * 模版编号
 	 */
 	@ApiModelProperty(value = "模版编号")
+	@NotEmpty(message = "模版编号不能为空")
 	private String code;
 	/**
 	 * 模版中文名称
 	 */
 	@ApiModelProperty(value = "模版中文名称")
+	@NotEmpty(message = "模版中文名称不能为空")
 	private String cnName;
 	/**
 	 * 模版英文名称

+ 3 - 8
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/lines/dto/BLinesExcel.java

@@ -43,24 +43,19 @@ public class BLinesExcel implements Serializable {
 	/**
 	 * 航线编码
 	 */
-	@ExcelProperty(value = "航线编码")
+	@ExcelProperty(value = "航线编码(必填)")
 	private String code;
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
-	@ExcelProperty(value = "英文名称")
+	@ExcelProperty(value = "英文名称(必填)")
 	private String enName;
 	/**
-	 * 船公司 Id
-	 */
-	@ExcelProperty(value = "船公司 Id")
-	private Long carrierId;
-	/**
 	 * 船公司名称
 	 */
 	@ExcelProperty(value = "船公司名称")

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/lines/entity/BLines.java

@@ -24,6 +24,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.los.basic.utils.ExtendedData;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Date;
@@ -91,16 +92,19 @@ public class BLines implements Serializable {
 	 * 航线编码
 	 */
 	@ApiModelProperty(value = "航线编码")
+	@NotEmpty(message = "航线编码不能为空")
 	private String code;
 	/**
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 船公司 Id

+ 3 - 3
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/locations/dto/BLocationsExcel.java

@@ -43,17 +43,17 @@ public class BLocationsExcel implements Serializable {
 	/**
 	 * 港口编码
 	 */
-	@ExcelProperty(value = "港口编码")
+	@ExcelProperty(value = "港口编码(必填)")
 	private String code;
 	/**
 	 * 中文名称,保留
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
-	@ExcelProperty(value = "英文名称")
+	@ExcelProperty(value = "英文名称(必填)")
 	private String enName;
 	/**
 	 * 国家地区代码

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/locations/entity/BLocations.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -87,16 +88,19 @@ public class BLocations implements Serializable {
 	 * 港口编码
 	 */
 	@ApiModelProperty(value = "港口编码")
+	@NotEmpty(message = "港口编码不能为空")
 	private String code;
 	/**
 	 * 中文名称,保留
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 国家地区代码

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/modes/dto/BTradeModesExcel.java

@@ -42,7 +42,7 @@ public class BTradeModesExcel implements Serializable {
 	/**
 	 * 代码
 	 */
-	@ExcelProperty(value = "代码")
+	@ExcelProperty(value = "代码(必填)")
 	private String code;
 	/**
 	 * 单一窗口代码
@@ -57,7 +57,7 @@ public class BTradeModesExcel implements Serializable {
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/modes/entity/BTradeModes.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -87,6 +88,7 @@ public class BTradeModes implements Serializable {
 	 * 代码
 	 */
 	@ApiModelProperty(value = "代码")
+	@NotEmpty(message = "代码不能为空")
 	private String code;
 	/**
 	 * 单一窗口代码
@@ -102,11 +104,13 @@ public class BTradeModes implements Serializable {
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 版本

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/packages/dto/BPackagesExcel.java

@@ -44,12 +44,12 @@ public class BPackagesExcel implements Serializable {
 	/**
 	 * 编码
 	 */
-	@ExcelProperty(value = "编码")
+	@ExcelProperty(value = "编码(必填)")
 	private String code;
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 6 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/packages/entity/BPackages.java

@@ -25,8 +25,10 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.los.basic.utils.ExtendedData;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -92,16 +94,19 @@ public class BPackages implements Serializable {
 	 * 编码
 	 */
 	@ApiModelProperty(value = "编码")
+	@NotEmpty(message = "编码不能为空")
 	private String code;
 	/**
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 标准编码
@@ -122,7 +127,7 @@ public class BPackages implements Serializable {
 	 * JSON 对象数组,用于不查询的扩展数据, 例如:[{name: "key1", value: "value1"}]
 	 */
 	@TableField(exist = false)
-	private List<ExtendedData> extendedDataArr;
+	private List<ExtendedData> extendedDataArr = new ArrayList<>();
 	/**
 	 * 版本
 	 */

+ 4 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/parities/entity/Parities.java

@@ -23,6 +23,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
@@ -49,12 +50,14 @@ public class Parities implements Serializable {
 	/**
 	 * 货币币别
 	 */
-	@ApiModelProperty(value = "货币币别")
+	@ApiModelProperty(value = "货币编码")
+	@NotEmpty(message = "货币编码不能为空")
 	private String code;
 	/**
 	 * 货币名称
 	 */
 	@ApiModelProperty(value = "货币名称")
+	@NotEmpty(message = "货币名称不能为空")
 	private String cname;
 	/**
 	 * 符号

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/ports/dto/BPortsExcel.java

@@ -42,7 +42,7 @@ public class BPortsExcel implements Serializable {
 	/**
 	 * 港口编码
 	 */
-	@ExcelProperty(value = "港口编码")
+	@ExcelProperty(value = "港口编码(必填)")
 	private String code;
 	/**
 	 * 国际编码
@@ -52,7 +52,7 @@ public class BPortsExcel implements Serializable {
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/ports/entity/BPorts.java

@@ -23,6 +23,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.los.basic.utils.ExtendedData;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Date;
@@ -90,6 +91,7 @@ public class BPorts implements Serializable {
 	 * 港口编码
 	 */
 	@ApiModelProperty(value = "港口编码")
+	@NotEmpty(message = "港口编码不能为空")
 	private String code;
 	/**
 	 * 国际编码
@@ -100,11 +102,13 @@ public class BPorts implements Serializable {
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 国家代码

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/terms/dto/BServiceTermsExcel.java

@@ -42,12 +42,12 @@ public class BServiceTermsExcel implements Serializable {
 	/**
 	 * 条款代码
 	 */
-	@ExcelProperty(value = "条款代码")
+	@ExcelProperty(value = "条款代码(必填)")
 	private String code;
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/terms/entity/BServiceTerms.java

@@ -24,6 +24,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.los.basic.utils.ExtendedData;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Date;
@@ -91,16 +92,19 @@ public class BServiceTerms implements Serializable {
 	 * 条款代码
 	 */
 	@ApiModelProperty(value = "条款代码")
+	@NotEmpty(message = "条款代码不能为空")
 	private String code;
 	/**
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * JSON 对象数组,用于不查询的扩展数据, 例如:[{name: "key1", value: "value1"}]

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/units/dto/BUnitsExcel.java

@@ -43,7 +43,7 @@ public class BUnitsExcel implements Serializable {
 	/**
 	 * 代码
 	 */
-	@ExcelProperty(value = "代码")
+	@ExcelProperty(value = "代码(必填)")
 	private String code;
 	/**
 	 * 单一窗口代码
@@ -53,7 +53,7 @@ public class BUnitsExcel implements Serializable {
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/units/entity/BUnits.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
@@ -88,6 +89,7 @@ public class BUnits implements Serializable {
 	 * 代码
 	 */
 	@ApiModelProperty(value = "代码")
+	@NotEmpty(message = "代码不能为空")
 	private String code;
 	/**
 	 * 单一窗口代码
@@ -98,11 +100,13 @@ public class BUnits implements Serializable {
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 数量规则,用于根据单位自动计算数量

+ 3 - 8
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/vessels/dto/BVesselsExcel.java

@@ -42,17 +42,17 @@ public class BVesselsExcel implements Serializable {
 	/**
 	 * 船舶编码
 	 */
-	@ExcelProperty(value = "船舶编码")
+	@ExcelProperty(value = "船舶编码(必填)")
 	private String code;
 	/**
 	 * 中文船名
 	 */
-	@ExcelProperty(value = "中文船名")
+	@ExcelProperty(value = "中文船名(必填)")
 	private String cnName;
 	/**
 	 * 英文船名
 	 */
-	@ExcelProperty(value = "英文船名")
+	@ExcelProperty(value = "英文船名(必填)")
 	private String enName;
 	/**
 	 * 船舶注册国家代码
@@ -80,11 +80,6 @@ public class BVesselsExcel implements Serializable {
 	@ExcelProperty(value = "MMSI 水上移动通信业务标识码")
 	private String mmsi;
 	/**
-	 * 船公司 Id
-	 */
-	@ExcelProperty(value = "船公司 Id")
-	private Long carrierId;
-	/**
 	 * 船公司名称
 	 */
 	@ExcelProperty(value = "船公司名称")

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/vessels/entity/BVessels.java

@@ -24,6 +24,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.los.basic.utils.ExtendedData;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Date;
@@ -91,16 +92,19 @@ public class BVessels implements Serializable {
 	 * 船舶编码
 	 */
 	@ApiModelProperty(value = "船舶编码")
+	@NotEmpty(message = "船舶编码不能为空")
 	private String code;
 	/**
 	 * 中文船名
 	 */
 	@ApiModelProperty(value = "中文船名")
+	@NotEmpty(message = "中文船名不能为空")
 	private String cnName;
 	/**
 	 * 英文船名
 	 */
 	@ApiModelProperty(value = "英文船名")
+	@NotEmpty(message = "英文船名不能为空")
 	private String enName;
 	/**
 	 * 船舶注册国家代码

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/voucher/dto/BVoucherTypeExcel.java

@@ -47,12 +47,12 @@ public class BVoucherTypeExcel implements Serializable {
 	/**
 	 * 代码
 	 */
-	@ExcelProperty(value = "代码")
+	@ExcelProperty(value = "代码(必填)")
 	private String code;
 	/**
 	 * 中文名称
 	 */
-	@ExcelProperty(value = "中文名称")
+	@ExcelProperty(value = "中文名称(必填)")
 	private String cnName;
 	/**
 	 * 英文名称

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/voucher/entity/BVoucherType.java

@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -92,16 +93,19 @@ public class BVoucherType implements Serializable {
 	 * 代码
 	 */
 	@ApiModelProperty(value = "代码")
+	@NotEmpty(message = "代码不能为空")
 	private String code;
 	/**
 	 * 中文名称
 	 */
 	@ApiModelProperty(value = "中文名称")
+	@NotEmpty(message = "中文名称不能为空")
 	private String cnName;
 	/**
 	 * 英文名称
 	 */
 	@ApiModelProperty(value = "英文名称")
+	@NotEmpty(message = "英文名称不能为空")
 	private String enName;
 	/**
 	 * 版本

+ 2 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/agreement/entity/AgreementPrice.java

@@ -91,9 +91,9 @@ public class AgreementPrice implements Serializable {
 	@ApiModelProperty(value = "修改时间")
 	private Date updateTime;
 	/**
-	 * 单编码
+	 * 单编码
 	 */
-	@ApiModelProperty(value = "单编码")
+	@ApiModelProperty(value = "单编码")
 	private String billNo;
 	/**
 	 * 单位编码

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/excel/GoodsOutExcel.java

@@ -15,7 +15,7 @@ import java.math.BigDecimal;
 @ContentRowHeight(18)
 public class GoodsOutExcel
 {
-	@ExcelProperty("大字")
+	@ExcelProperty("品号")
 	private String code;
 
 	@ExcelProperty("花纹")

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/acc/service/impl/BAccItemsTypeServiceImpl.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -33,6 +34,7 @@ import org.springblade.los.basic.acc.service.IBAccItemsTypeService;
 import org.springblade.los.basic.acc.vo.BAccItemsTypeVO;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -59,6 +61,8 @@ public class BAccItemsTypeServiceImpl extends ServiceImpl<AccItemsTypeMapper, BA
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R submit(BAccItemsType bAccItemsType) {
 		String deptId = "";
 		String deptName = "";

+ 48 - 7
blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/controller/BCorpsController.java

@@ -38,9 +38,11 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.los.basic.corps.dto.BCorpsExcel;
 import org.springblade.los.basic.corps.entity.BCorps;
 import org.springblade.los.basic.corps.service.IBCorpsService;
+import org.springblade.los.basic.corps.service.IBCorpsTypeDefineService;
 import org.springblade.los.basic.corps.vo.BCorpsVO;
 import org.springblade.los.basic.utils.ExtendedData;
-import org.springblade.los.basic.vessels.entity.BVessels;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -63,6 +65,10 @@ public class BCorpsController extends BladeController {
 
 	private final IBCorpsService bCorpsService;
 
+	private final IBCorpsTypeDefineService bCorpsTypeDefineService;
+
+	private final IUserClient userClient;
+
 	/**
 	 * 详情
 	 */
@@ -101,9 +107,24 @@ public class BCorpsController extends BladeController {
 			.like(ObjectUtils.isNotNull(bCorps.getCntyCode()), BCorps::getCntyCode, bCorps.getCntyCode())
 			.like(ObjectUtils.isNotNull(bCorps.getCntyName()), BCorps::getCntyName, bCorps.getCntyName())
 			.like(ObjectUtils.isNotNull(bCorps.getTel()), BCorps::getTel, bCorps.getTel())
-			.like(ObjectUtils.isNotNull(bCorps.getCorpType()), BCorps::getCorpType, bCorps.getCorpType())
-			.like(ObjectUtils.isNotNull(bCorps.getAdminProfiles()), BCorps::getAdminProfiles, bCorps.getAdminProfiles())
-			.orderByDesc(BCorps::getCreateTime);
+			.like(ObjectUtils.isNotNull(bCorps.getAdminProfiles()), BCorps::getAdminProfiles, bCorps.getAdminProfiles());
+		if (ObjectUtils.isNotNull(bCorps.getCorpType())) {
+			String[] ids = bCorps.getCorpType().split(",");
+			List<String> typeIds = new ArrayList<>();
+			for (String id : ids) {
+				typeIds.add(id);
+				bCorpsTypeDefineService.selectChildById(id, typeIds);
+			}
+			if (typeIds.size() > 0) {
+				lambdaQueryWrapper.apply("find_in_set(corp_type,'" + String.join(",", typeIds) + "')");
+			}
+		}
+		if (AuthUtil.getUserRole().contains("admin") || AuthUtil.getUserRole().contains("secondaryAdmin")) {
+			//管理员、次级管理员查看全部数据
+		} else {
+			lambdaQueryWrapper.apply("find_in_set('" + AuthUtil.getDeptId() + "',branch_id)");
+		}
+		lambdaQueryWrapper.orderByDesc(BCorps::getCreateTime);
 		IPage<BCorps> pages = bCorpsService.page(Condition.getPage(query), lambdaQueryWrapper);
 		for (BCorps item : pages.getRecords()) {
 			if (ObjectUtils.isNotNull(item.getExtendedData())) {
@@ -116,6 +137,16 @@ public class BCorpsController extends BladeController {
 					item.setExtendedDataArr(new ArrayList<>());
 				}
 			}
+			List<User> updateUserList = userClient.selectUserIds(item.getAdminProfiles());
+			StringBuffer stringBuffer = new StringBuffer();
+			if (CollectionUtils.isNotEmpty(updateUserList)) {
+				updateUserList.forEach(items -> {
+					if (items != null) {
+						stringBuffer.append(items.getName()).append(",");
+					}
+				});
+			}
+			item.setAdminProfilesName(stringBuffer.toString());
 		}
 		return R.data(pages);
 	}
@@ -189,9 +220,19 @@ public class BCorpsController extends BladeController {
 			.like(ObjectUtils.isNotNull(bCorps.getCntyCode()), BCorps::getCntyCode, bCorps.getCntyCode())
 			.like(ObjectUtils.isNotNull(bCorps.getCntyName()), BCorps::getCntyName, bCorps.getCntyName())
 			.like(ObjectUtils.isNotNull(bCorps.getTel()), BCorps::getTel, bCorps.getTel())
-			.like(ObjectUtils.isNotNull(bCorps.getCorpType()), BCorps::getCorpType, bCorps.getCorpType())
-			.like(ObjectUtils.isNotNull(bCorps.getAdminProfiles()), BCorps::getAdminProfiles, bCorps.getAdminProfiles())
-			.orderByDesc(BCorps::getCreateTime);
+			.like(ObjectUtils.isNotNull(bCorps.getAdminProfiles()), BCorps::getAdminProfiles, bCorps.getAdminProfiles());
+		if (ObjectUtils.isNotNull(bCorps.getCorpType())) {
+			String[] ids = bCorps.getCorpType().split(",");
+			List<String> typeIds = new ArrayList<>();
+			for (String id : ids) {
+				typeIds.add(id);
+				bCorpsTypeDefineService.selectChildById(id, typeIds);
+			}
+			if (typeIds.size() > 0) {
+				lambdaQueryWrapper.apply("find_in_set(corp_type,'" + String.join(",", typeIds) + "')");
+			}
+		}
+		lambdaQueryWrapper.orderByDesc(BCorps::getCreateTime);
 		List<BCorps> bCorpsList = bCorpsService.list(lambdaQueryWrapper);
 		ExcelUtil.export(response, "往来单位", "往来单位", BeanUtil.copy(bCorpsList, BCorpsExcel.class), BCorpsExcel.class);
 

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/service/IBCorpsTypeDefineService.java

@@ -61,4 +61,11 @@ public interface IBCorpsTypeDefineService extends IService<BCorpsTypeDefine> {
 	 * @return
 	 */
 	R<List<BCorpsTypeDefine>> importBCorpsTypeDefine(List<BCorpsTypeDefineExcel> excelList);
+
+	/**
+	 * 递归查询ID
+	 * @param id
+	 * @param typeIds
+	 */
+    void selectChildById(String id, List<String> typeIds);
 }

+ 118 - 23
blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/service/impl/BCorpsServiceImpl.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -29,11 +30,11 @@ import org.springblade.los.basic.corps.entity.*;
 import org.springblade.los.basic.corps.mapper.CorpsMapper;
 import org.springblade.los.basic.corps.service.*;
 import org.springblade.los.basic.corps.vo.BCorpsVO;
-import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -84,6 +85,8 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R submit(BCorps bCorps) {
 		String deptId = "";
 		String deptName = "";
@@ -95,6 +98,14 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 				deptName = String.join(",", res.getData());
 			}
 		}
+		long cname = baseMapper.selectCount(new LambdaQueryWrapper<BCorps>()
+			.eq(BCorps::getCnName, bCorps.getCnName())
+			.eq(BCorps::getTenantId, AuthUtil.getTenantId())
+			.eq(BCorps::getIsDeleted, 0));
+		long uscc = baseMapper.selectCount(new LambdaQueryWrapper<BCorps>()
+			.eq(BCorps::getUscc, bCorps.getUscc())
+			.eq(BCorps::getTenantId, AuthUtil.getTenantId())
+			.eq(BCorps::getIsDeleted, 0));
 		//首字母为空
 		if (null == bCorps.getInitials() || "".equals(bCorps.getInitials())) {
 			//获得名称首字母
@@ -102,14 +113,29 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 			bCorps.setInitials(initials.substring(0, 1));
 		}
 		if (bCorps.getId() == null) {
+			if (cname > 0) {
+				throw new RuntimeException("中文名称不允许重复");
+			}
+			if (uscc > 0) {
+				throw new RuntimeException("统一社会信用代码不允许重复");
+			}
 			bCorps.setCreateTime(new Date());
 			bCorps.setCreateUser(AuthUtil.getUserId());
 			bCorps.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+				bCorps.setDeptName(AuthUtil.getUserName());
+				bCorps.setDeptId(AuthUtil.getDeptId());
+				bCorps.setBranchId(deptId);
 				bCorps.setCreateDept(deptId);
 				bCorps.setCreateDeptName(deptName);
 			}
 		} else {
+			if (cname > 1) {
+				throw new RuntimeException("中文名称不允许重复");
+			}
+			if (uscc > 1) {
+				throw new RuntimeException("统一社会信用代码不允许重复");
+			}
 			bCorps.setUpdateUser(AuthUtil.getUserId());
 			bCorps.setUpdateUserName(AuthUtil.getUserName());
 		}
@@ -134,12 +160,13 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 				bCorpsTypes.setCreateUserName(AuthUtil.getUserName());
 				if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 					bCorpsTypes.setCreateDept(deptId);
+					bCorpsTypes.setBranchId(deptId);
 					bCorpsTypes.setCreateDeptName(deptName);
 				}
 				bCorpsTypesList.add(bCorpsTypes);
 			}
 			if (bCorpsTypesList.size() > 0) {
-				bCorpsTypesService.delete(bCorps.getCorpId(), AuthUtil.getTenantId());
+				bCorpsTypesService.delete(bCorps.getId(), AuthUtil.getTenantId());
 				bCorpsTypesService.saveBatch(bCorpsTypesList);
 			}
 		}
@@ -153,6 +180,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
+						item.setBranchId(deptId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {
@@ -172,6 +200,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
+						item.setBranchId(deptId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {
@@ -190,6 +219,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					item.setCreateUser(AuthUtil.getUserId());
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+						item.setBranchId(deptId);
 						item.setCreateDept(deptId);
 						item.setCreateDeptName(deptName);
 					}
@@ -209,6 +239,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					item.setCreateUser(AuthUtil.getUserId());
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+						item.setBranchId(deptId);
 						item.setCreateDept(deptId);
 						item.setCreateDeptName(deptName);
 					}
@@ -247,6 +278,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					item.setCreateUser(AuthUtil.getUserId());
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+						item.setBranchId(deptId);
 						item.setCreateDept(deptId);
 						item.setCreateDeptName(deptName);
 					}
@@ -300,6 +332,8 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R<List<BCorps>> importBCorps(List<BCorpsExcel> excelList) {
 		String deptId = "";
 		String deptName = "";
@@ -314,43 +348,104 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 		List<BCorps> bCorpsList = new ArrayList<>();
 		for (BCorpsExcel item : excelList) {
 			BCorps bCorps = new BCorps();
-			BeanUtil.copy(item, bCorps);
-			if (ObjectUtils.isNotNull(bCorps.getAdminProfiles())) {
-				bCorps.setAdminProfiles(userClient.selectUserByNames(bCorps.getAdminProfiles()));
+			if (ObjectUtils.isNull(item.getCode())) {
+				throw new RuntimeException("单位编码" + item.getCode() + "不能为空");
 			}
-			if (ObjectUtils.isNotNull(bCorps.getSalesName())) {
-				List<User> userList = userClient.userInfoByName(bCorps.getSalesName(), AuthUtil.getTenantId());
-				if (ObjectUtils.isNotNull(userList) && userList.size() > 0) {
-					bCorps.setSalesId(userList.get(0).getId());
-				}
+			if (ObjectUtils.isNull(item.getCnName())) {
+				throw new RuntimeException("中文名称" + item.getCnName() + "不能为空");
 			}
-			if (ObjectUtils.isNotNull(bCorps.getDeptName())) {
-				R<Dept> resDept = sysClient.getDeptIByName(bCorps.getDeptName(), AuthUtil.getTenantId());
-				if (resDept.isSuccess() && ObjectUtils.isNotNull(resDept.getData())) {
-					bCorps.setDeptId(resDept.getData().getId());
-				}
+			if (ObjectUtils.isNull(item.getUscc())) {
+				throw new RuntimeException("统一社会信用代码" + item.getUscc() + "不能为空");
 			}
-			//首字母为空
-			if (null == bCorps.getInitials() || "".equals(bCorps.getInitials())) {
-				//获得名称首字母
-				String initials = getSpells(bCorps.getCnName());
-				bCorps.setInitials(initials.substring(0, 1));
-			}
-			if (bCorps.getId() == null) {
+			BCorps corps = baseMapper.selectOne(new LambdaQueryWrapper<BCorps>()
+				.eq(BCorps::getCnName, item.getCnName())
+				.eq(BCorps::getUscc, item.getUscc())
+				.eq(BCorps::getTenantId, AuthUtil.getTenantId())
+				.eq(BCorps::getIsDeleted, 0));
+			long cname = baseMapper.selectCount(new LambdaQueryWrapper<BCorps>()
+				.eq(BCorps::getCnName, item.getCnName())
+				.eq(BCorps::getTenantId, AuthUtil.getTenantId())
+				.eq(BCorps::getIsDeleted, 0));
+			long uscc = baseMapper.selectCount(new LambdaQueryWrapper<BCorps>()
+				.eq(BCorps::getUscc, item.getUscc())
+				.eq(BCorps::getTenantId, AuthUtil.getTenantId())
+				.eq(BCorps::getIsDeleted, 0));
+			if (corps == null) {
+				BeanUtil.copy(item, bCorps);
+				if (cname > 0) {
+					throw new RuntimeException("中文名称" + bCorps.getCnName() + "不允许重复");
+				}
+				if (uscc > 0) {
+					throw new RuntimeException("统一社会信用代码" + bCorps.getUscc() + "不允许重复");
+				}
 				bCorps.setCreateTime(new Date());
 				bCorps.setCreateUser(AuthUtil.getUserId());
 				bCorps.setCreateUserName(AuthUtil.getUserName());
 				if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+					bCorps.setDeptName(AuthUtil.getUserName());
+					bCorps.setDeptId(AuthUtil.getDeptId());
 					bCorps.setCreateDept(deptId);
+					bCorps.setBranchId(deptId);
 					bCorps.setCreateDeptName(deptName);
 				}
 			} else {
+				if (cname > 1) {
+					throw new RuntimeException("中文名称" + bCorps.getCnName() + "不允许重复");
+				}
+				if (uscc > 1) {
+					throw new RuntimeException("统一社会信用代码" + bCorps.getUscc() + "不允许重复");
+				}
 				bCorps.setUpdateUser(AuthUtil.getUserId());
 				bCorps.setUpdateUserName(AuthUtil.getUserName());
+				BeanUtil.copy(corps, bCorps);
+			}
+			if (ObjectUtils.isNotNull(item.getAdminProfiles())) {
+				bCorps.setAdminProfiles(userClient.selectUserByNames(item.getAdminProfiles()));
+			}
+			if (ObjectUtils.isNotNull(item.getSalesName())) {
+				List<User> userList = userClient.userInfoByName(item.getSalesName(), AuthUtil.getTenantId());
+				if (ObjectUtils.isNotNull(userList) && userList.size() > 0) {
+					bCorps.setSalesId(userList.get(0).getId());
+				}
+			}
+			//首字母为空
+			if (null == bCorps.getInitials() || "".equals(bCorps.getInitials())) {
+				//获得名称首字母
+				String initials = getSpells(bCorps.getCnName());
+				bCorps.setInitials(initials.substring(0, 1));
+			}
+			this.saveOrUpdate(bCorps);
+			//客户类别对应
+			if (ObjectUtils.isNotNull(item.getCorpTypeName())) {
+				List<BCorpsTypeDefine> bCorpsTypeDefineList = bCorpsTypeDefineService.list(new LambdaQueryWrapper<BCorpsTypeDefine>()
+					.eq(BCorpsTypeDefine::getIsDeleted, 0)
+					.eq(BCorpsTypeDefine::getTenantId, AuthUtil.getTenantId())
+					.apply(ObjectUtils.isNotNull(item.getCorpTypeName()), "find_in_set(cn_name,'" + item.getCorpTypeName() + "')"));
+				if (bCorpsTypeDefineList.size() > 0) {
+					bCorps.setCorpTypeName(bCorpsTypeDefineList.stream().map(BCorpsTypeDefine::getCnName).collect(Collectors.joining()));
+					List<Long> ids = bCorpsTypeDefineList.stream().map(BCorpsTypeDefine::getId).collect(Collectors.toList());
+					List<BCorpsTypes> bCorpsTypesList = new ArrayList<>();
+					for (Long id : ids) {
+						BCorpsTypes bCorpsTypes = new BCorpsTypes();
+						bCorpsTypes.setCorpId(bCorps.getId());
+						bCorpsTypes.setCorpTypeId(id);
+						bCorpsTypes.setCreateTime(new Date());
+						bCorpsTypes.setCreateUser(AuthUtil.getUserId());
+						bCorpsTypes.setCreateUserName(AuthUtil.getUserName());
+						if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+							bCorpsTypes.setCreateDept(deptId);
+							bCorpsTypes.setCreateDeptName(deptName);
+						}
+						bCorpsTypesList.add(bCorpsTypes);
+					}
+					if (bCorpsTypesList.size() > 0) {
+						bCorpsTypesService.delete(bCorps.getId(), AuthUtil.getTenantId());
+						bCorpsTypesService.saveBatch(bCorpsTypesList);
+					}
+				}
 			}
 			bCorpsList.add(bCorps);
 		}
-		this.saveOrUpdateBatch(bCorpsList);
 		return R.data(bCorpsList);
 	}
 

+ 13 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/service/impl/BCorpsTypeDefineServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.los.basic.corps.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -143,4 +144,16 @@ public class BCorpsTypeDefineServiceImpl extends ServiceImpl<CorpsTypeDefineMapp
 		return R.data(bCorpsTypeDefineList);
 	}
 
+	@Override
+	public void selectChildById(String id, List<String> typeIds) {
+		LambdaQueryWrapper<BCorpsTypeDefine> idListWrapper = new LambdaQueryWrapper<>();
+		idListWrapper.select(BCorpsTypeDefine::getId);
+		idListWrapper.eq(BCorpsTypeDefine::getParentId, id);
+		List<BCorpsTypeDefine> childIdList = baseMapper.selectList(idListWrapper);
+		childIdList.forEach(item -> {
+			typeIds.add(item.getId()+"");
+			this.selectChildById(item.getId() + "", typeIds);
+		});
+	}
+
 }

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/cur/service/impl/BCurrencyServiceImpl.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -33,6 +34,7 @@ import org.springblade.los.basic.cur.service.IBCurrencyService;
 import org.springblade.los.basic.cur.vo.BCurrencyVO;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -58,6 +60,8 @@ public class BCurrencyServiceImpl extends ServiceImpl<CurrencyMapper, BCurrency>
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R submit(BCurrency bCurrency) {
 		String deptId = "";
 		String deptName = "";

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/fees/service/impl/BFeesServiceImpl.java

@@ -19,6 +19,7 @@ package org.springblade.los.basic.fees.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -32,6 +33,7 @@ import org.springblade.los.basic.fees.service.IBFeesTypesService;
 import org.springblade.los.basic.fees.vo.BFeesVO;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -58,6 +60,8 @@ public class BFeesServiceImpl extends ServiceImpl<FeesMapper, BFees> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R submit(BFees bFees) {
 		String deptId = "";
 		String deptName = "";

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/fees/service/impl/LosBFeesTemplateServiceImpl.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -34,6 +35,7 @@ import org.springblade.los.basic.fees.service.ILosBFeesTemplateService;
 import org.springblade.los.basic.fees.vo.LosBFeesTemplateVO;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -83,6 +85,8 @@ public class LosBFeesTemplateServiceImpl extends ServiceImpl<LosBFeesTemplateMap
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R submit(LosBFeesTemplate losBFeesTemplate) {
 		String deptId = "";
 		String deptName = "";

+ 14 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/lines/service/impl/BLinesServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.los.basic.lines.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -23,6 +24,8 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.basic.corps.entity.BCorps;
+import org.springblade.los.basic.corps.service.IBCorpsService;
 import org.springblade.los.basic.lines.dto.BLinesExcel;
 import org.springblade.los.basic.lines.entity.BLines;
 import org.springblade.los.basic.lines.mapper.LinesMapper;
@@ -48,6 +51,8 @@ public class BLinesServiceImpl extends ServiceImpl<LinesMapper, BLines> implemen
 
 	private final ISysClient sysClient;
 
+	private final IBCorpsService bCorpsService;
+
 	@Override
 	public IPage<BLinesVO> selectBLinesPage(IPage<BLinesVO> page, BLinesVO bLines) {
 		return page.setRecords(baseMapper.selectBLinesPage(page, bLines));
@@ -81,6 +86,15 @@ public class BLinesServiceImpl extends ServiceImpl<LinesMapper, BLines> implemen
 		for (BLinesExcel item : excelList) {
 			BLines bLines = new BLines();
 			BeanUtil.copy(item, bLines);
+			if (ObjectUtils.isNotNull(item.getCarrierName())) {
+				BCorps corps = bCorpsService.getOne(new LambdaQueryWrapper<BCorps>()
+					.eq(BCorps::getCnName, item.getCarrierName())
+					.eq(BCorps::getIsDeleted, 0)
+					.eq(BCorps::getTenantId, AuthUtil.getTenantId()));
+				if (corps != null) {
+					bLines.setCarrierId(corps.getId());
+				}
+			}
 			bLines.setCreateTime(new Date());
 			bLines.setCreateUser(AuthUtil.getUserId());
 			bLines.setCreateUserName(AuthUtil.getUserName());

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/ports/service/impl/BPortsServiceImpl.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -33,6 +34,7 @@ import org.springblade.los.basic.ports.service.IBPortsTermsService;
 import org.springblade.los.basic.ports.vo.BPortsVO;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -72,6 +74,8 @@ public class BPortsServiceImpl extends ServiceImpl<PortsMapper, BPorts> implemen
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R submit(BPorts bPorts) {
 		String deptId = "";
 		String deptName = "";

+ 14 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/vessels/service/impl/BVesselsServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.los.basic.vessels.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -23,6 +24,8 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.basic.corps.entity.BCorps;
+import org.springblade.los.basic.corps.service.IBCorpsService;
 import org.springblade.los.basic.vessels.dto.BVesselsExcel;
 import org.springblade.los.basic.vessels.entity.BVessels;
 import org.springblade.los.basic.vessels.mapper.VesselsMapper;
@@ -48,6 +51,8 @@ public class BVesselsServiceImpl extends ServiceImpl<VesselsMapper, BVessels> im
 
 	private final ISysClient sysClient;
 
+	private final IBCorpsService bCorpsService;
+
 	@Override
 	public IPage<BVesselsVO> selectBVesselsPage(IPage<BVesselsVO> page, BVesselsVO bVessels) {
 		return page.setRecords(baseMapper.selectBVesselsPage(page, bVessels));
@@ -81,6 +86,15 @@ public class BVesselsServiceImpl extends ServiceImpl<VesselsMapper, BVessels> im
 		for (BVesselsExcel item : excelList) {
 			BVessels bVessels = new BVessels();
 			BeanUtil.copy(item, bVessels);
+			if (ObjectUtils.isNotNull(item.getCarrierName())) {
+				BCorps corps = bCorpsService.getOne(new LambdaQueryWrapper<BCorps>()
+					.eq(BCorps::getCnName, item.getCarrierName())
+					.eq(BCorps::getIsDeleted, 0)
+					.eq(BCorps::getTenantId, AuthUtil.getTenantId()));
+				if (corps != null) {
+					bVessels.setCarrierId(corps.getId());
+				}
+			}
 			bVessels.setCreateTime(new Date());
 			bVessels.setCreateUser(AuthUtil.getUserId());
 			bVessels.setCreateUserName(AuthUtil.getUserName());

+ 6 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/agreement/service/impl/AgreementPriceServiceImpl.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -33,6 +34,7 @@ import org.springblade.los.finance.agreement.service.IAgreementPriceService;
 import org.springblade.los.finance.agreement.vo.AgreementPriceVO;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -59,6 +61,8 @@ public class AgreementPriceServiceImpl extends ServiceImpl<AgreementPriceMapper,
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R submit(AgreementPrice agreementPrice) {
 		String deptId = "";
 		String deptName = "";
@@ -76,6 +80,7 @@ public class AgreementPriceServiceImpl extends ServiceImpl<AgreementPriceMapper,
 			agreementPrice.setCreateUserName(AuthUtil.getUserName());
 			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 				agreementPrice.setCreateDept(deptId);
+				agreementPrice.setBranchId(deptId);
 				agreementPrice.setCreateDeptName(deptName);
 			}
 		} else {
@@ -92,6 +97,7 @@ public class AgreementPriceServiceImpl extends ServiceImpl<AgreementPriceMapper,
 					item.setCreateUserName(AuthUtil.getUserName());
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
+						item.setBranchId(deptId);
 						item.setCreateDeptName(deptName);
 					}
 				} else {