Browse Source

2023年10月18日17:48:44

纪新园 2 years ago
parent
commit
bc2d8ec08d
15 changed files with 1320 additions and 3 deletions
  1. 36 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java
  2. 34 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/dto/FeeCenterDTO.java
  3. 639 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenter.java
  4. 36 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/vo/FeeCenterVO.java
  5. 1 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.xml
  6. 53 1
      blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/controller/BCorpsController.java
  7. 10 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java
  8. 3 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/BillsMapper.xml
  9. 7 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IBillsService.java
  10. 76 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  11. 126 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FeeCenterController.java
  12. 42 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FeeCenterMapper.java
  13. 128 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FeeCenterMapper.xml
  14. 48 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/IFeeCenterService.java
  15. 81 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java

+ 36 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -25,6 +25,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.los.business.files.entity.FilesCenter;
 import org.springblade.los.business.sea.dto.WaitingBox;
+import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
@@ -179,6 +180,11 @@ public class Bills implements Serializable {
 	@ApiModelProperty(value = "客户 id")
 	private Long corpId;
 	/**
+	 * 客户 code
+	 */
+	@TableField(exist = false)
+	private String corpCode;
+	/**
 	 * 客户中文名称
 	 */
 	@ApiModelProperty(value = "客户中文名称")
@@ -1308,11 +1314,29 @@ public class Bills implements Serializable {
 	@ApiModelProperty(value = "MB/L 第二通知人国家名称")
 	private String mNotify2CntyName;
 	/**
-	 * MB/L 第二通知人国家名称
+	 * SI 备注
 	 */
 	@ApiModelProperty(value = "SI 备注")
 	private String siRemarks;
 
+	/**
+	 * 订舱代理 id
+	 */
+	@ApiModelProperty(value = "订舱代理 id")
+	private String bookingAgentId;
+
+	/**
+	 * 订舱代理中文名称
+	 */
+	@ApiModelProperty(value = "订舱代理中文名称")
+	private String bookingAgentCnName;
+
+	/**
+	 * 订舱代理英文名称
+	 */
+	@ApiModelProperty(value = "订舱代理英文名称")
+	private String bookingAgentEnName;
+
 
 	/**
 	 * 预配箱型箱量
@@ -1330,6 +1354,17 @@ public class Bills implements Serializable {
 	 */
 	@TableField(exist = false)
 	private List<WaitingBox> waitingBoxList;
+	/**
+	 * 物流-费用中心(付)
+	 */
+	@TableField(exist = false)
+	private List<FeeCenter> feeCenterListC;
+
+	/**
+	 * 物流-费用中心(收)
+	 */
+	@TableField(exist = false)
+	private List<FeeCenter> feeCenterListD;
 
 	/**
 	 * 文件

+ 34 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/dto/FeeCenterDTO.java

@@ -0,0 +1,34 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.finance.fee.dto;
+
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 物流-费用中心-所有业务费用集中在该表中数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2023-10-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class FeeCenterDTO extends FeeCenter {
+	private static final long serialVersionUID = 1L;
+
+}

+ 639 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenter.java

@@ -0,0 +1,639 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.finance.fee.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 物流-费用中心-所有业务费用集中在该表中实体类
+ *
+ * @author BladeX
+ * @since 2023-10-18
+ */
+@Data
+@TableName("los_fee_center")
+@ApiModel(value = "FeeCenter对象", description = "物流-费用中心-所有业务费用集中在该表中")
+public class FeeCenter implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@ApiModelProperty(value = "主键")
+	private Long id;
+	/**
+	 * 分公司 Id
+	 */
+	@ApiModelProperty(value = "分公司 Id")
+	private String branchId;
+	/**
+	 * 创建人 Id
+	 */
+	@ApiModelProperty(value = "创建人 Id")
+	private Long createUser;
+	/**
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private String createUserName;
+	/**
+	 * 创建部门 Id
+	 */
+	@ApiModelProperty(value = "创建部门 Id")
+	private String createDept;
+	/**
+	 * 创建部门
+	 */
+	@ApiModelProperty(value = "创建部门")
+	private String createDeptName;
+	/**
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
+	/**
+	 * 修改人 Id
+	 */
+	@ApiModelProperty(value = "修改人 Id")
+	private Long updateUser;
+	/**
+	 * 修改人
+	 */
+	@ApiModelProperty(value = "修改人")
+	private String updateUserName;
+	/**
+	 * 修改时间
+	 */
+	@ApiModelProperty(value = "修改时间")
+	private Date updateTime;
+	/**
+	 * 业务类型
+	 */
+	@ApiModelProperty(value = "业务类型")
+	private String businessType;
+	/**
+	 * 单据类型, DD=直单(默认) MM=主单 MH=主分单 HH=从分单
+	 */
+	@ApiModelProperty(value = "单据类型, DD=直单(默认) MM=主单 MH=主分单 HH=从分单")
+	private String billType;
+	/**
+	 * 主表 id
+	 */
+	@ApiModelProperty(value = "主表 id")
+	private Long pid;
+	/**
+	 * 行号 基于pid 1...
+	 */
+	@ApiModelProperty(value = "行号 基于pid 1...")
+	private Integer lineNo;
+	/**
+	 * 单据编号
+	 */
+	@ApiModelProperty(value = "单据编号")
+	private String billNo;
+	/**
+	 * 单据日期
+	 */
+	@ApiModelProperty(value = "单据日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+	private Date billDate;
+	/**
+	 * 财务日期
+	 */
+	@ApiModelProperty(value = "财务日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+	private Date accountDate;
+	/**
+	 * 财务年
+	 */
+	@ApiModelProperty(value = "财务年")
+	private Integer accountYear;
+	/**
+	 * 财务月
+	 */
+	@ApiModelProperty(value = "财务月")
+	private Integer accountMonth;
+	/**
+	 * 财务日
+	 */
+	@ApiModelProperty(value = "财务日")
+	private Integer accountDay;
+	/**
+	 * 业务来源
+	 */
+	@ApiModelProperty(value = "业务来源")
+	private String srcType;
+	/**
+	 * 来源 id
+	 */
+	@ApiModelProperty(value = "来源 id")
+	private Long srcId;
+	/**
+	 * 来源中文
+	 */
+	@ApiModelProperty(value = "来源中文")
+	private String srcCnName;
+	/**
+	 * 来源英文
+	 */
+	@ApiModelProperty(value = "来源英文")
+	private String srcEnName;
+	/**
+	 * 客户 id
+	 */
+	@ApiModelProperty(value = "客户 id")
+	private Long corpId;
+	/**
+	 * 客户中文名称
+	 */
+	@ApiModelProperty(value = "客户中文名称")
+	private String corpCnName;
+	/**
+	 * 客户英文名称
+	 */
+	@ApiModelProperty(value = "客户英文名称")
+	private String corpEnName;
+
+	/**
+	 * 主表客户 id
+	 */
+	@ApiModelProperty(value = "主表客户 id")
+	private Long billCorpId;
+	/**
+	 * 主表客户中文名称
+	 */
+	@ApiModelProperty(value = "主表客户中文名称")
+	private String billCorpCnName;
+	/**
+	 * 主表客户英文名称
+	 */
+	@ApiModelProperty(value = "主表客户英文名称")
+	private String billCorpEnName;
+	/**
+	 * 航线 id
+	 */
+	@ApiModelProperty(value = "航线 id")
+	private Long lineId;
+	/**
+	 * 航线中文名称
+	 */
+	@ApiModelProperty(value = "航线中文名称")
+	private String lineCnName;
+	/**
+	 * 航线英文名称
+	 */
+	@ApiModelProperty(value = "航线英文名称")
+	private String lineEnName;
+	/**
+	 * 船名 id
+	 */
+	@ApiModelProperty(value = "船名 id")
+	private Long vesselId;
+	/**
+	 * 中文船名
+	 */
+	@ApiModelProperty(value = "中文船名")
+	private String vesselCnName;
+	/**
+	 * 英文船名
+	 */
+	@ApiModelProperty(value = "英文船名")
+	private String vesselEnName;
+	/**
+	 * 航次
+	 */
+	@ApiModelProperty(value = "航次")
+	private String voyageNo;
+	/**
+	 * MB/L NO
+	 */
+	@ApiModelProperty(value = "MB/L NO")
+	private String mblno;
+	/**
+	 * HB/L NO
+	 */
+	@ApiModelProperty(value = "HB/L NO")
+	private String hblno;
+	/**
+	 * 开船日期
+	 */
+	@ApiModelProperty(value = "开船日期")
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date etd;
+	/**
+	 * 到港日期
+	 */
+	@ApiModelProperty(value = "到港日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+	private Date eta;
+	/**
+	 * 箱号
+	 */
+	@ApiModelProperty(value = "箱号")
+	private String cntrNo;
+	/**
+	 * 装货港 id
+	 */
+	@ApiModelProperty(value = "装货港 id")
+	private Long polId;
+	/**
+	 * 装货港代码
+	 */
+	@ApiModelProperty(value = "装货港代码")
+	private String polCode;
+	/**
+	 * 装货港英文名称
+	 */
+	@ApiModelProperty(value = "装货港英文名称")
+	private String polCnName;
+	/**
+	 * 装货港英文名称
+	 */
+	@ApiModelProperty(value = "装货港英文名称")
+	private String polEnName;
+	/**
+	 * 卸货港 id
+	 */
+	@ApiModelProperty(value = "卸货港 id")
+	private Long podId;
+	/**
+	 * 卸货港代码
+	 */
+	@ApiModelProperty(value = "卸货港代码")
+	private String podCode;
+	/**
+	 * 卸货港中文名称
+	 */
+	@ApiModelProperty(value = "卸货港中文名称")
+	private String podCnName;
+	/**
+	 * 卸货港英文名称
+	 */
+	@ApiModelProperty(value = "卸货港英文名称")
+	private String podEnName;
+	/**
+	 * 费用 Id
+	 */
+	@ApiModelProperty(value = "费用 Id")
+	private Long feeId;
+	/**
+	 * 费用编号
+	 */
+	@ApiModelProperty(value = "费用编号")
+	private String feeCode;
+	/**
+	 * 费用中文名称
+	 */
+	@ApiModelProperty(value = "费用中文名称")
+	private String feeCnName;
+	/**
+	 * 费用英文名称
+	 */
+	@ApiModelProperty(value = "费用英文名称")
+	private String feeEnName;
+	/**
+	 * 付款方式
+	 */
+	@ApiModelProperty(value = "付款方式")
+	private String paymode;
+	/**
+	 * 收付 D=收 C=付
+	 */
+	@ApiModelProperty(value = "收付 D=收 C=付")
+	private String dc;
+	/**
+	 * 数量
+	 */
+	@ApiModelProperty(value = "数量")
+	private BigDecimal quantity;
+	/**
+	 * 单位
+	 */
+	@ApiModelProperty(value = "单位")
+	private String unitNo;
+	/**
+	 * 单价
+	 */
+	@ApiModelProperty(value = "单价")
+	private BigDecimal price;
+	/**
+	 * 币种
+	 */
+	@ApiModelProperty(value = "币种")
+	private String curCode;
+	/**
+	 * 汇率,外币转为本币的汇率
+	 */
+	@ApiModelProperty(value = "汇率,外币转为本币的汇率")
+	private BigDecimal exrate;
+	/**
+	 * 是否含税(0 不含税 1 含税)
+	 */
+	@ApiModelProperty(value = "是否含税(0 不含税 1 含税)")
+	private Integer isTax;
+	/**
+	 * 税种
+	 */
+	@ApiModelProperty(value = "税种")
+	private String taxType;
+	/**
+	 * 税率 %,即 3% 的税率,值为 3.00
+	 */
+	@ApiModelProperty(value = "税率 %,即 3% 的税率,值为 3.00")
+	private BigDecimal taxRate;
+	/**
+	 * 费率税率 %,即 3% 的税率,值为 3.00
+	 */
+	@ApiModelProperty(value = "费率税率 %,即 3% 的税率,值为 3.00")
+	private BigDecimal surchargeRate;
+	/**
+	 * 折扣金额
+	 */
+	@ApiModelProperty(value = "折扣金额")
+	private BigDecimal amountDiscount;
+	/**
+	 * 去税金额
+	 */
+	@ApiModelProperty(value = "去税金额")
+	private BigDecimal amountNet;
+	/**
+	 * 税额
+	 */
+	@ApiModelProperty(value = "税额")
+	private BigDecimal amountTax;
+	/**
+	 * 金额,amount_tax + amount_net - amount_discount
+	 */
+	@ApiModelProperty(value = "金额,amount_tax + amount_net - amount_discount")
+	private BigDecimal amount;
+	/**
+	 * 本币税额
+	 */
+	@ApiModelProperty(value = "本币税额")
+	private BigDecimal amountTaxLoc;
+	/**
+	 * 本币去税金额
+	 */
+	@ApiModelProperty(value = "本币去税金额")
+	private BigDecimal amountNetLoc;
+	/**
+	 * 本币折扣金额
+	 */
+	@ApiModelProperty(value = "本币折扣金额")
+	private BigDecimal amountDiscountLoc;
+	/**
+	 * 本币金额,外币转为本币的金额
+	 */
+	@ApiModelProperty(value = "本币金额,外币转为本币的金额")
+	private BigDecimal amountLoc;
+	/**
+	 * 账单 Id
+	 */
+	@ApiModelProperty(value = "账单 Id")
+	private Long accBillId;
+	/**
+	 * 账单编号
+	 */
+	@ApiModelProperty(value = "账单编号")
+	private String accBillNo;
+	/**
+	 * 账单日期
+	 */
+	@ApiModelProperty(value = "账单日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+	private Date accDate;
+	/**
+	 * 账单金额
+	 */
+	@ApiModelProperty(value = "账单金额")
+	private BigDecimal accAmount;
+	/**
+	 * 账单状态 0 = 未生成账单 1=已生成账单
+	 */
+	@ApiModelProperty(value = "账单状态 0 = 未生成账单 1=已生成账单")
+	private Integer accStatus;
+	/**
+	 * 账单创建人 Id
+	 */
+	@ApiModelProperty(value = "账单创建人 Id")
+	private Long accById;
+	/**
+	 * 账单创建人
+	 */
+	@ApiModelProperty(value = "账单创建人")
+	private String accByName;
+	/**
+	 * 对账单 Id
+	 */
+	@ApiModelProperty(value = "对账单 Id")
+	private Long checkBillId;
+	/**
+	 * 对账单编号
+	 */
+	@ApiModelProperty(value = "对账单编号")
+	private String checkBillNo;
+	/**
+	 * 对账单日期
+	 */
+	@ApiModelProperty(value = "对账单日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+	private Date checkDate;
+	/**
+	 * 对账单金额
+	 */
+	@ApiModelProperty(value = "对账单金额")
+	private BigDecimal checkAmount;
+	/**
+	 * 对账状态 0 = 未对账 1=已对账
+	 */
+	@ApiModelProperty(value = "对账状态 0 = 未对账 1=已对账")
+	private Integer checkStatus;
+	/**
+	 * 对账单创建人 Id
+	 */
+	@ApiModelProperty(value = "对账单创建人 Id")
+	private Long checkById;
+	/**
+	 * 对账单创建人
+	 */
+	@ApiModelProperty(value = "对账单创建人")
+	private String checkByName;
+	/**
+	 * 对账单 Id
+	 */
+	@ApiModelProperty(value = "对账单 Id")
+	private Long stlBillId;
+	/**
+	 * 结算单编号
+	 */
+	@ApiModelProperty(value = "结算单编号")
+	private String stlBillNo;
+	/**
+	 * 结算单日期
+	 */
+	@ApiModelProperty(value = "结算单日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+	private Date stlDate;
+	/**
+	 * 本次原币结算金额
+	 */
+	@ApiModelProperty(value = "本次原币结算金额")
+	private BigDecimal stlOrgAmount;
+	/**
+	 * 本次结算币种
+	 */
+	@ApiModelProperty(value = "本次结算币种")
+	private String stlCurCode;
+	/**
+	 * 本次结算币种对原币种汇率
+	 */
+	@ApiModelProperty(value = "本次结算币种对原币种汇率")
+	private BigDecimal stlExrate;
+	/**
+	 * 本次结算币种对本币汇率
+	 */
+	@ApiModelProperty(value = "本次结算币种对本币汇率")
+	private BigDecimal stlExrateLoc;
+	/**
+	 * 本次结算金额
+	 */
+	@ApiModelProperty(value = "本次结算金额")
+	private BigDecimal stlAmount;
+	/**
+	 * 本次结算本币金额
+	 */
+	@ApiModelProperty(value = "本次结算本币金额")
+	private BigDecimal stlAmountLoc;
+	/**
+	 * 结算单日期
+	 */
+	@ApiModelProperty(value = "结算单日期")
+	private Integer stlStatus;
+	/**
+	 * 结算单创建人 Id
+	 */
+	@ApiModelProperty(value = "结算单创建人 Id")
+	private Long stlById;
+	/**
+	 * 结算单创建人
+	 */
+	@ApiModelProperty(value = "结算单创建人")
+	private String stlByName;
+	/**
+	 * 原币累计已结算金额
+	 */
+	@ApiModelProperty(value = "原币累计已结算金额")
+	private BigDecimal stlTtlAmount;
+	/**
+	 * 原币未结算金额
+	 */
+	@ApiModelProperty(value = "原币未结算金额")
+	private BigDecimal unsettledAmount;
+	/**
+	 * 凭证 Id
+	 */
+	@ApiModelProperty(value = "凭证 Id")
+	private Long voucherBillId;
+	/**
+	 * 凭证单据编号
+	 */
+	@ApiModelProperty(value = "凭证单据编号")
+	private String voucherBillNo;
+	/**
+	 * 凭证号
+	 */
+	@ApiModelProperty(value = "凭证号")
+	private String voucherNo;
+	/**
+	 * 凭证日期
+	 */
+	@ApiModelProperty(value = "凭证日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+	private Date voucherDate;
+	/**
+	 * 凭证状态 0 = 未开 1=已开
+	 */
+	@ApiModelProperty(value = "凭证状态 0 = 未开 1=已开")
+	private Integer voucherStatus;
+	/**
+	 * 凭证创建人 Id
+	 */
+	@ApiModelProperty(value = "凭证创建人 Id")
+	private Long voucherById;
+	/**
+	 * 凭证创建人
+	 */
+	@ApiModelProperty(value = "凭证创建人")
+	private String voucherByName;
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+	/**
+	 * 是否已删除(0 否 1是)
+	 */
+	@ApiModelProperty(value = "是否已删除(0 否 1是)")
+	private Integer isDeleted;
+	/**
+	 * 版本
+	 */
+	@ApiModelProperty(value = "版本")
+	private String version;
+	/**
+	 * 状态(0 正常 1停用)
+	 */
+	@ApiModelProperty(value = "状态(0 正常 1停用)")
+	private Integer status;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remarks;
+
+	/**
+	 * 租户
+	 */
+	@ApiModelProperty(value = "租户")
+	private String tenantId;
+
+	/**
+	 * MB/L 付款地点
+	 */
+	@ApiModelProperty(value = "MB/L 付款地点")
+	private String payplace;
+
+
+}

+ 36 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/vo/FeeCenterVO.java

@@ -0,0 +1,36 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.finance.fee.vo;
+
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModel;
+
+/**
+ * 物流-费用中心-所有业务费用集中在该表中视图实体类
+ *
+ * @author BladeX
+ * @since 2023-10-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "FeeCenterVO对象", description = "物流-费用中心-所有业务费用集中在该表中")
+public class FeeCenterVO extends FeeCenter {
+	private static final long serialVersionUID = 1L;
+
+}

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.xml

@@ -205,7 +205,7 @@
         <if test='GoodsDesc.goodsTypeIdList!=null and GoodsDesc.goodsTypeIdList != ""'>
             AND goods_type_id  in
             <foreach collection="GoodsDesc.goodsTypeIdList" index="index" item="item" open="(" separator="," close=")">
-                #{page.item}
+                #{item}
             </foreach>
         </if>
     </select>

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

@@ -35,11 +35,13 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.los.excel.BCorpsExcel;
 import org.springblade.los.basic.corps.entity.BCorps;
+import org.springblade.los.basic.corps.entity.BCorpsTypes;
 import org.springblade.los.basic.corps.service.IBCorpsService;
+import org.springblade.los.basic.corps.service.IBCorpsTypesService;
 import org.springblade.los.basic.corps.vo.BCorpsVO;
 import org.springblade.los.basic.utils.ExtendedData;
+import org.springblade.los.excel.BCorpsExcel;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -47,6 +49,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 物流-基础资料-往来单位 控制器
@@ -62,6 +65,8 @@ public class BCorpsController extends BladeController {
 
 	private final IBCorpsService bCorpsService;
 
+	private final IBCorpsTypesService bCorpsTypesService;
+
 	/**
 	 * 详情
 	 */
@@ -129,6 +134,53 @@ public class BCorpsController extends BladeController {
 	}
 
 	/**
+	 * 分页 物流-基础资料-往来单位
+	 */
+	@GetMapping("/listByType")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入bCorps")
+	public R<IPage<BCorps>> listByType(BCorps bCorps, Query query) {
+		LambdaQueryWrapper<BCorpsTypes> lambdaQueryWrapperType = new LambdaQueryWrapper<>();
+		lambdaQueryWrapperType.eq(BCorpsTypes::getTenantId, AuthUtil.getTenantId())
+			.eq(BCorpsTypes::getIsDeleted, 0)
+			.apply(ObjectUtils.isNotNull(bCorps.getCorpType()), "find_in_set(corp_type_id,'" + bCorps.getCorpType() + "')");
+		List<BCorpsTypes> bCorpsTypesList = bCorpsTypesService.list(lambdaQueryWrapperType);
+		List<Long> corpIds = new ArrayList<>();
+		if (bCorpsTypesList.size() > 0) {
+			corpIds = bCorpsTypesList.stream().map(BCorpsTypes::getCorpId).distinct().collect(Collectors.toList());
+		}
+		LambdaQueryWrapper<BCorps> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(BCorps::getTenantId, AuthUtil.getTenantId())
+			.eq(BCorps::getIsDeleted, 0)
+			.in(corpIds.size() > 0, BCorps::getId, corpIds)
+			.like(ObjectUtils.isNotNull(bCorps.getCode()), BCorps::getCode, bCorps.getCode())
+			.eq(ObjectUtils.isNotNull(bCorps.getStatus()), BCorps::getStatus, bCorps.getStatus())
+			.like(ObjectUtils.isNotNull(bCorps.getCnName()), BCorps::getCnName, bCorps.getCnName())
+			.like(ObjectUtils.isNotNull(bCorps.getEnName()), BCorps::getEnName, bCorps.getEnName())
+			.like(ObjectUtils.isNotNull(bCorps.getUscc()), BCorps::getUscc, bCorps.getUscc());
+		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())) {
+				Gson gson = new Gson();
+				List<ExtendedData> list = gson.fromJson(item.getExtendedData(), new TypeToken<List<ExtendedData>>() {
+				}.getType());
+				if (ObjectUtils.isNotNull(list)) {
+					item.setExtendedDataArr(list);
+				} else {
+					item.setExtendedDataArr(new ArrayList<>());
+				}
+			}
+		}
+		return R.data(pages);
+	}
+
+	/**
 	 * 自定义分页 物流-基础资料-往来单位
 	 */
 	@GetMapping("/page")

+ 10 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java

@@ -178,5 +178,15 @@ public class BillsController extends BladeController {
 		return R.status(billsService.removeByIds(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 申请mblNo
+	 */
+	@PostMapping("/getBillNo")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入bills")
+	public R getBillNo(@Valid @RequestBody Bills bills) {
+		return billsService.getBillNo(bills);
+	}
+
 
 }

+ 3 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/BillsMapper.xml

@@ -247,6 +247,9 @@
         <result column="m_notify2_cnty_code" property="mNotify2CntyCode"/>
         <result column="m_notify2_cnty_name" property="mNotify2CntyName"/>
         <result column="si_remarks" property="siRemarks"/>
+        <result column="booking_agent_id" property="bookingAgentId"/>
+        <result column="booking_agent_cn_name" property="bookingAgentCnName"/>
+        <result column="booking_agent_en_name" property="bookingAgentEnName"/>
     </resultMap>
 
 

+ 7 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IBillsService.java

@@ -74,4 +74,11 @@ public interface IBillsService extends IService<Bills> {
 	 * @return
 	 */
 	R revokeReinsurancePolicy(String ids, String id);
+
+	/**
+	 * 申请mblNo
+	 * @param bills
+	 * @return
+	 */
+    R getBillNo(Bills bills);
 }

+ 76 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -36,6 +36,8 @@ import org.springblade.los.business.sea.entity.*;
 import org.springblade.los.business.sea.mapper.BillsMapper;
 import org.springblade.los.business.sea.service.*;
 import org.springblade.los.business.sea.vo.BillsVO;
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.service.IFeeCenterService;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -70,6 +72,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 
 	private final IBusinessTypeService bBusinessTypeService;
 
+	private final IFeeCenterService feeCenterService;
+
 	/**
 	 * 生成系统编号
 	 */
@@ -133,6 +137,50 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			bills.setUpdateUserName(AuthUtil.getUserName());
 		}
 		this.saveOrUpdate(bills);
+		if (ObjectUtils.isNotNull(bills.getFeeCenterListC())) {
+			for (FeeCenter item : bills.getFeeCenterListC()) {
+				item.setSrcId(bills.getSrcId());
+				item.setSrcCnName(bills.getSrcCnName());
+				item.setSrcEnName(bills.getSrcEnName());
+				item.setBillCorpId(bills.getCorpId());
+				item.setBillCorpCnName(bills.getCorpCnName());
+				item.setBillCorpEnName(bills.getCorpEnName());
+				item.setLineId(bills.getLineId());
+				item.setLineCnName(bills.getLineCnName());
+				item.setLineEnName(bills.getLineEnName());
+				item.setVesselId(bills.getVesselId());
+				item.setVesselCnName(bills.getVesselCnName());
+				item.setVesselEnName(bills.getVesselEnName());
+				item.setVoyageNo(bills.getVoyageNo());
+				item.setMblno(bills.getMblno());
+				item.setHblno(bills.getHblno());
+				item.setEtd(bills.getEtd());
+				item.setEta(bills.getEta());
+				item.setPolId(bills.getPolId());
+				item.setPolCode(bills.getPolCode());
+				item.setPolCnName(bills.getPolCnName());
+				item.setPolEnName(bills.getPolEnName());
+				item.setPodId(bills.getPodId());
+				item.setPodCode(bills.getPodCode());
+				item.setPodCnName(bills.getPodCnName());
+				item.setPodEnName(bills.getPodEnName());
+				if (item.getId() == null) {
+					item.setPid(bills.getId());
+					item.setCreateTime(new Date());
+					item.setCreateUser(AuthUtil.getUserId());
+					item.setCreateUserName(AuthUtil.getUserName());
+					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+						item.setCreateDept(deptId);
+						item.setBranchId(deptId);
+						item.setCreateDeptName(deptName);
+					}
+				} else {
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateUserName(AuthUtil.getUserName());
+				}
+			}
+			feeCenterService.saveOrUpdateBatch(bills.getFeeCenterListC());
+		}
 		/*//预配箱型箱量
 		if (ObjectUtils.isNotNull(bills.getPreContainersList())) {
 			for (PreContainers item : bills.getPreContainersList()) {
@@ -264,6 +312,24 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			waitingBoxList = BeanUtil.copy(billsList, WaitingBox.class);
 		}
 		detail.setWaitingBoxList(waitingBoxList);
+		detail.setFeeCenterListC(feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			.eq(FeeCenter::getIsDeleted, 0)
+			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FeeCenter::getBillType, detail.getBillType())
+			.eq(FeeCenter::getPid, detail.getId())
+			.eq(FeeCenter::getSrcId, detail.getId())
+			.eq(FeeCenter::getDc, "C")
+			.eq(FeeCenter::getBillNo, detail.getBillNo())
+		));
+		detail.setFeeCenterListD(feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			.eq(FeeCenter::getIsDeleted, 0)
+			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FeeCenter::getBillType, detail.getBillType())
+			.eq(FeeCenter::getPid, detail.getId())
+			.eq(FeeCenter::getSrcId, detail.getId())
+			.eq(FeeCenter::getDc, "D")
+			.eq(FeeCenter::getBillNo, detail.getBillNo())
+		));
 		return detail;
 	}
 
@@ -376,4 +442,14 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		return R.data("操作成功");
 	}
 
+	@Override
+	public R getBillNo(Bills bills) {
+		R clientBillNo = serialClient.getBillNoLos(bills.getBillType(), bills.getSeaType(), bills.getBusinessType(), bills.getCorpCode());
+		if (!clientBillNo.isSuccess()) {
+			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+			return R.fail(500, "生成订单编号失败");
+		}
+		return R.data(clientBillNo.getData());
+	}
+
 }

+ 126 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FeeCenterController.java

@@ -0,0 +1,126 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.finance.fee.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import javax.validation.Valid;
+
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.vo.FeeCenterVO;
+import org.springblade.los.finance.fee.service.IFeeCenterService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+/**
+ * 物流-费用中心-所有业务费用集中在该表中 控制器
+ *
+ * @author BladeX
+ * @since 2023-10-18
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/feecenter")
+@Api(value = "物流-费用中心-所有业务费用集中在该表中", tags = "物流-费用中心-所有业务费用集中在该表中接口")
+public class FeeCenterController extends BladeController {
+
+	private final IFeeCenterService feeCenterService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入feeCenter")
+	public R<FeeCenter> detail(FeeCenter feeCenter) {
+		FeeCenter detail = feeCenterService.getOne(Condition.getQueryWrapper(feeCenter));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 物流-费用中心-所有业务费用集中在该表中
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入feeCenter")
+	public R<IPage<FeeCenter>> list(FeeCenter feeCenter, Query query) {
+		IPage<FeeCenter> pages = feeCenterService.page(Condition.getPage(query), Condition.getQueryWrapper(feeCenter));
+		return R.data(pages);
+	}
+
+	/**
+	 * 自定义分页 物流-费用中心-所有业务费用集中在该表中
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入feeCenter")
+	public R<IPage<FeeCenterVO>> page(FeeCenterVO feeCenter, Query query) {
+		IPage<FeeCenterVO> pages = feeCenterService.selectFeeCenterPage(Condition.getPage(query), feeCenter);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 物流-费用中心-所有业务费用集中在该表中
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入feeCenter")
+	public R save(@Valid @RequestBody FeeCenter feeCenter) {
+		return R.status(feeCenterService.save(feeCenter));
+	}
+
+	/**
+	 * 修改 物流-费用中心-所有业务费用集中在该表中
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入feeCenter")
+	public R update(@Valid @RequestBody FeeCenter feeCenter) {
+		return R.status(feeCenterService.updateById(feeCenter));
+	}
+
+	/**
+	 * 新增或修改 物流-费用中心-所有业务费用集中在该表中
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入feeCenter")
+	public R submit(@Valid @RequestBody FeeCenter feeCenter) {
+		return feeCenterService.submit(feeCenter);
+	}
+
+
+	/**
+	 * 删除 物流-费用中心-所有业务费用集中在该表中
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(feeCenterService.removeByIds(Func.toLongList(ids)));
+	}
+
+
+}

+ 42 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FeeCenterMapper.java

@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.finance.fee.mapper;
+
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.vo.FeeCenterVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ * 物流-费用中心-所有业务费用集中在该表中 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2023-10-18
+ */
+public interface FeeCenterMapper extends BaseMapper<FeeCenter> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param feeCenter
+	 * @return
+	 */
+	List<FeeCenterVO> selectFeeCenterPage(IPage page, FeeCenterVO feeCenter);
+
+}

+ 128 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FeeCenterMapper.xml

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.los.finance.fee.mapper.FeeCenterMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="feeCenterResultMap" type="org.springblade.los.finance.fee.entity.FeeCenter">
+        <id column="id" property="id"/>
+        <result column="branch_id" property="branchId"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_user_name" property="createUserName"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_dept_name" property="createDeptName"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_user_name" property="updateUserName"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="business_type" property="businessType"/>
+        <result column="bill_type" property="billType"/>
+        <result column="pid" property="pid"/>
+        <result column="line_no" property="lineNo"/>
+        <result column="bill_no" property="billNo"/>
+        <result column="bill_date" property="billDate"/>
+        <result column="account_date" property="accountDate"/>
+        <result column="account_year" property="accountYear"/>
+        <result column="account_month" property="accountMonth"/>
+        <result column="account_day" property="accountDay"/>
+        <result column="src_type" property="srcType"/>
+        <result column="src_id" property="srcId"/>
+        <result column="src_cn_name" property="srcCnName"/>
+        <result column="src_en_name" property="srcEnName"/>
+        <result column="corp_id" property="corpId"/>
+        <result column="corp_cn_name" property="corpCnName"/>
+        <result column="corp_en_name" property="corpEnName"/>
+        <result column="bill_corp_id" property="billCorpId"/>
+        <result column="bill_corp_cn_name" property="billCorpCnName"/>
+        <result column="bill_corp_en_name" property="billCorpEnName"/>
+        <result column="line_id" property="lineId"/>
+        <result column="line_cn_name" property="lineCnName"/>
+        <result column="line_en_name" property="lineEnName"/>
+        <result column="vessel_id" property="vesselId"/>
+        <result column="vessel_cn_name" property="vesselCnName"/>
+        <result column="vessel_en_name" property="vesselEnName"/>
+        <result column="voyage_no" property="voyageNo"/>
+        <result column="mblno" property="mblno"/>
+        <result column="hblno" property="hblno"/>
+        <result column="etd" property="etd"/>
+        <result column="eta" property="eta"/>
+        <result column="cntr_no" property="cntrNo"/>
+        <result column="pol_id" property="polId"/>
+        <result column="pol_code" property="polCode"/>
+        <result column="pol_cn_name" property="polCnName"/>
+        <result column="pol_en_name" property="polEnName"/>
+        <result column="pod_id" property="podId"/>
+        <result column="pod_code" property="podCode"/>
+        <result column="pod_cn_name" property="podCnName"/>
+        <result column="pod_en_name" property="podEnName"/>
+        <result column="fee_id" property="feeId"/>
+        <result column="fee_code" property="feeCode"/>
+        <result column="fee_cn_name" property="feeCnName"/>
+        <result column="fee_en_name" property="feeEnName"/>
+        <result column="paymode" property="paymode"/>
+        <result column="dc" property="dc"/>
+        <result column="quantity" property="quantity"/>
+        <result column="unit_no" property="unitNo"/>
+        <result column="price" property="price"/>
+        <result column="cur_code" property="curCode"/>
+        <result column="exrate" property="exrate"/>
+        <result column="is_tax" property="isTax"/>
+        <result column="tax_type" property="taxType"/>
+        <result column="tax_rate" property="taxRate"/>
+        <result column="surcharge_rate" property="surchargeRate"/>
+        <result column="amount_discount" property="amountDiscount"/>
+        <result column="amount_net" property="amountNet"/>
+        <result column="amount_tax" property="amountTax"/>
+        <result column="amount" property="amount"/>
+        <result column="amount_tax_loc" property="amountTaxLoc"/>
+        <result column="amount_net_loc" property="amountNetLoc"/>
+        <result column="amount_discount_loc" property="amountDiscountLoc"/>
+        <result column="amount_loc" property="amountLoc"/>
+        <result column="acc_bill_id" property="accBillId"/>
+        <result column="acc_bill_no" property="accBillNo"/>
+        <result column="acc_date" property="accDate"/>
+        <result column="acc_amount" property="accAmount"/>
+        <result column="acc_status" property="accStatus"/>
+        <result column="acc_by_id" property="accById"/>
+        <result column="acc_by_name" property="accByName"/>
+        <result column="check_bill_id" property="checkBillId"/>
+        <result column="check_bill_no" property="checkBillNo"/>
+        <result column="check_date" property="checkDate"/>
+        <result column="check_amount" property="checkAmount"/>
+        <result column="check_status" property="checkStatus"/>
+        <result column="check_by_id" property="checkById"/>
+        <result column="check_by_name" property="checkByName"/>
+        <result column="stl_bill_id" property="stlBillId"/>
+        <result column="stl_bill_no" property="stlBillNo"/>
+        <result column="stl_date" property="stlDate"/>
+        <result column="stl_org_amount" property="stlOrgAmount"/>
+        <result column="stl_cur_code" property="stlCurCode"/>
+        <result column="stl_exrate" property="stlExrate"/>
+        <result column="stl_exrate_loc" property="stlExrateLoc"/>
+        <result column="stl_amount" property="stlAmount"/>
+        <result column="stl_amount_loc" property="stlAmountLoc"/>
+        <result column="stl_status" property="stlStatus"/>
+        <result column="stl_by_id" property="stlById"/>
+        <result column="stl_by_name" property="stlByName"/>
+        <result column="stl_ttl_amount" property="stlTtlAmount"/>
+        <result column="unsettled_amount" property="unsettledAmount"/>
+        <result column="voucher_bill_id" property="voucherBillId"/>
+        <result column="voucher_bill_no" property="voucherBillNo"/>
+        <result column="voucher_no" property="voucherNo"/>
+        <result column="voucher_date" property="voucherDate"/>
+        <result column="voucher_status" property="voucherStatus"/>
+        <result column="voucher_by_id" property="voucherById"/>
+        <result column="voucher_by_name" property="voucherByName"/>
+        <result column="sort" property="sort"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="version" property="version"/>
+        <result column="status" property="status"/>
+        <result column="remarks" property="remarks"/>
+        <result column="payplace" property="payplace"/>
+    </resultMap>
+
+
+    <select id="selectFeeCenterPage" resultMap="feeCenterResultMap">
+        select * from los_fee_center where is_deleted = 0
+    </select>
+
+</mapper>

+ 48 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/IFeeCenterService.java

@@ -0,0 +1,48 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.finance.fee.service;
+
+import org.springblade.core.tool.api.R;
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.vo.FeeCenterVO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 物流-费用中心-所有业务费用集中在该表中 服务类
+ *
+ * @author BladeX
+ * @since 2023-10-18
+ */
+public interface IFeeCenterService extends IService<FeeCenter> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param feeCenter
+	 * @return
+	 */
+	IPage<FeeCenterVO> selectFeeCenterPage(IPage<FeeCenterVO> page, FeeCenterVO feeCenter);
+
+	/**
+	 * 新增或修改 物流-费用中心
+	 * @param feeCenter
+	 * @return
+	 */
+	R submit(FeeCenter feeCenter);
+}

+ 81 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java

@@ -0,0 +1,81 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.finance.fee.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 lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.mapper.FeeCenterMapper;
+import org.springblade.los.finance.fee.service.IFeeCenterService;
+import org.springblade.los.finance.fee.vo.FeeCenterVO;
+import org.springblade.system.feign.ISysClient;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 物流-费用中心-所有业务费用集中在该表中 服务实现类
+ *
+ * @author BladeX
+ * @since 2023-10-18
+ */
+@Service
+@AllArgsConstructor
+public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter> implements IFeeCenterService {
+	private final ISysClient sysClient;
+
+	@Override
+	public IPage<FeeCenterVO> selectFeeCenterPage(IPage<FeeCenterVO> page, FeeCenterVO feeCenter) {
+		return page.setRecords(baseMapper.selectFeeCenterPage(page, feeCenter));
+	}
+
+	@Override
+	public R submit(FeeCenter feeCenter) {
+		String deptId = "";
+		String deptName = "";
+		//获取部门ids对应中文名
+		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+			deptId = AuthUtil.getDeptId();
+			R<List<String>> res = sysClient.getDeptNames(AuthUtil.getDeptId());
+			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+				deptName = String.join(",", res.getData());
+			}
+		}
+		if (feeCenter.getId() == null) {
+			feeCenter.setCreateTime(new Date());
+			feeCenter.setCreateUser(AuthUtil.getUserId());
+			feeCenter.setCreateUserName(AuthUtil.getUserName());
+			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+				feeCenter.setCreateDept(deptId);
+				feeCenter.setBranchId(deptId);
+				feeCenter.setCreateDeptName(deptName);
+			}
+		} else {
+			feeCenter.setUpdateUser(AuthUtil.getUserId());
+			feeCenter.setUpdateTime(new Date());
+			feeCenter.setUpdateUserName(AuthUtil.getUserName());
+		}
+		this.saveOrUpdate(feeCenter);
+		return R.data(feeCenter);
+	}
+
+}