diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsCostFeeFeeitemController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsCostFeeFeeitemController.java
new file mode 100644
index 000000000..ec20a4900
--- /dev/null
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsCostFeeFeeitemController.java
@@ -0,0 +1,134 @@
+
+/**
+ * @Project: emis
+ * @Title: EmisTmsCostFeeFeeitemController.java
+ * @author linfso
+ * @date 2025-02-17 10:33:19
+ * @Copyright: ShangHai Duta 2022 All rights reserved.
+ * @version v1.0
+ * @Description:
成本费用条目 控制器
+ */
+
+package com.xdadan.erp.web.emis;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.xdadan.erp.common.annotation.Log;
+import com.xdadan.erp.common.core.controller.BaseController;
+import com.xdadan.erp.common.core.domain.AjaxResult;
+import com.xdadan.erp.common.core.page.TableDataInfo;
+import com.xdadan.erp.common.enums.BusinessType;
+import com.xdadan.erp.common.utils.StringUtils;
+import com.xdadan.erp.common.utils.poi.ExcelUtil;
+
+import com.xdadan.erp.emis.domain.EmisTmsCostFeeFeeitem;
+import com.xdadan.erp.emis.service.IEmisTmsCostFeeFeeitemService;
+
+/**
+ * 成本费用条目Controller
+ *
+ * @author linfso
+ * @date 2025-02-17 10:33:19
+ */
+@RestController
+@RequestMapping("/emis/emisTmsCostFeeFeeitem")
+public class EmisTmsCostFeeFeeitemController extends BaseController
+{
+ @Autowired
+ private IEmisTmsCostFeeFeeitemService emisTmsCostFeeFeeitemService;
+
+ /**
+ * 查询成本费用条目列表
+ */
+// @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeFeeitem:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem)
+ {
+ startPage();
+ List list = emisTmsCostFeeFeeitemService.selectEmisTmsCostFeeFeeitemList(emisTmsCostFeeFeeitem);
+ return getDataTable(list);
+ }
+
+
+ /**
+ * 检查是否重复
+ *
+ * @param emisTmsCostFeeFeeitem
+ * @return 数量
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeFeeitem:list')")
+ @GetMapping("/checkUnique")
+ public AjaxResult checkUnique(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem)
+ {
+ int cnt=emisTmsCostFeeFeeitemService.checkUnique(emisTmsCostFeeFeeitem);
+ return AjaxResult.success("检查成功",cnt);
+ }
+
+
+ /**
+ * 导出成本费用条目列表
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeFeeitem:export')")
+ @Log(title = "成本费用条目", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem)
+ {
+ List list = emisTmsCostFeeFeeitemService.selectEmisTmsCostFeeFeeitemList(emisTmsCostFeeFeeitem);
+ ExcelUtil util = new ExcelUtil(EmisTmsCostFeeFeeitem.class);
+ util.exportExcel(response, list, "成本费用条目数据");
+ }
+
+ /**
+ * 获取成本费用条目详细信息
+ */
+// @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeFeeitem:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return AjaxResult.success(emisTmsCostFeeFeeitemService.selectEmisTmsCostFeeFeeitemById(id));
+ }
+
+ /**
+ * 新增成本费用条目
+ */
+// @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeFeeitem:add')")
+ @Log(title = "成本费用条目", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem)
+ {
+ return toAjax(emisTmsCostFeeFeeitemService.insertEmisTmsCostFeeFeeitem(emisTmsCostFeeFeeitem));
+ }
+
+ /**
+ * 修改成本费用条目
+ */
+// @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeFeeitem:edit')")
+ @Log(title = "成本费用条目", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem)
+ {
+ return toAjax(emisTmsCostFeeFeeitemService.updateEmisTmsCostFeeFeeitem(emisTmsCostFeeFeeitem));
+ }
+
+ /**
+ * 删除成本费用条目
+ */
+// @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeFeeitem:remove')")
+ @Log(title = "成本费用条目", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(emisTmsCostFeeFeeitemService.deleteEmisTmsCostFeeFeeitemByIds(ids));
+ }
+}
diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsCostFeeSplitController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsCostFeeSplitController.java
new file mode 100644
index 000000000..d79ed1d84
--- /dev/null
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsCostFeeSplitController.java
@@ -0,0 +1,134 @@
+
+/**
+ * @Project: emis
+ * @Title: EmisTmsCostFeeSplitController.java
+ * @author linfso
+ * @date 2025-02-17 11:42:30
+ * @Copyright: ShangHai Duta 2022 All rights reserved.
+ * @version v1.0
+ * @Description: 成本费用分摊明细 控制器
+ */
+
+package com.xdadan.erp.web.emis;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.xdadan.erp.common.annotation.Log;
+import com.xdadan.erp.common.core.controller.BaseController;
+import com.xdadan.erp.common.core.domain.AjaxResult;
+import com.xdadan.erp.common.core.page.TableDataInfo;
+import com.xdadan.erp.common.enums.BusinessType;
+import com.xdadan.erp.common.utils.StringUtils;
+import com.xdadan.erp.common.utils.poi.ExcelUtil;
+
+import com.xdadan.erp.emis.domain.EmisTmsCostFeeSplit;
+import com.xdadan.erp.emis.service.IEmisTmsCostFeeSplitService;
+
+/**
+ * 成本费用分摊明细Controller
+ *
+ * @author linfso
+ * @date 2025-02-17 11:42:30
+ */
+@RestController
+@RequestMapping("/emis/emisTmsCostFeeSplit")
+public class EmisTmsCostFeeSplitController extends BaseController
+{
+ @Autowired
+ private IEmisTmsCostFeeSplitService emisTmsCostFeeSplitService;
+
+ /**
+ * 查询成本费用分摊明细列表
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeSplit:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(EmisTmsCostFeeSplit emisTmsCostFeeSplit)
+ {
+ startPage();
+ List list = emisTmsCostFeeSplitService.selectEmisTmsCostFeeSplitList(emisTmsCostFeeSplit);
+ return getDataTable(list);
+ }
+
+
+ /**
+ * 检查是否重复
+ *
+ * @param emisTmsCostFeeSplit
+ * @return 数量
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeSplit:list')")
+ @GetMapping("/checkUnique")
+ public AjaxResult checkUnique(EmisTmsCostFeeSplit emisTmsCostFeeSplit)
+ {
+ int cnt=emisTmsCostFeeSplitService.checkUnique(emisTmsCostFeeSplit);
+ return AjaxResult.success("检查成功",cnt);
+ }
+
+
+ /**
+ * 导出成本费用分摊明细列表
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeSplit:export')")
+ @Log(title = "成本费用分摊明细", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, EmisTmsCostFeeSplit emisTmsCostFeeSplit)
+ {
+ List list = emisTmsCostFeeSplitService.selectEmisTmsCostFeeSplitList(emisTmsCostFeeSplit);
+ ExcelUtil util = new ExcelUtil(EmisTmsCostFeeSplit.class);
+ util.exportExcel(response, list, "成本费用分摊明细数据");
+ }
+
+ /**
+ * 获取成本费用分摊明细详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeSplit:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return AjaxResult.success(emisTmsCostFeeSplitService.selectEmisTmsCostFeeSplitById(id));
+ }
+
+ /**
+ * 新增成本费用分摊明细
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeSplit:add')")
+ @Log(title = "成本费用分摊明细", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody EmisTmsCostFeeSplit emisTmsCostFeeSplit)
+ {
+ return toAjax(emisTmsCostFeeSplitService.insertEmisTmsCostFeeSplit(emisTmsCostFeeSplit));
+ }
+
+ /**
+ * 修改成本费用分摊明细
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeSplit:edit')")
+ @Log(title = "成本费用分摊明细", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody EmisTmsCostFeeSplit emisTmsCostFeeSplit)
+ {
+ return toAjax(emisTmsCostFeeSplitService.updateEmisTmsCostFeeSplit(emisTmsCostFeeSplit));
+ }
+
+ /**
+ * 删除成本费用分摊明细
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTmsCostFeeSplit:remove')")
+ @Log(title = "成本费用分摊明细", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(emisTmsCostFeeSplitService.deleteEmisTmsCostFeeSplitByIds(ids));
+ }
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFee.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFee.java
index 2901fb951..12d1ba7fb 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFee.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFee.java
@@ -110,4 +110,7 @@ public class EmisTmsCostFee extends BaseEntity
// 关联单号
private List billRelList;
+ // 关联费用
+ List feeItemList;
+
}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFeeFeeitem.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFeeFeeitem.java
new file mode 100644
index 000000000..9ba824a68
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFeeFeeitem.java
@@ -0,0 +1,53 @@
+/**
+ * @Project: emis
+ * @Title: EmisTmsCostFeeFeeitem.java
+ * @author linfso
+ * @date 2025-02-17 10:33:18
+ * @Copyright: ShangHai Duta 2022 All rights reserved.
+ * @version v1.0
+ * @Description: 成本费用条目 实体类
+ */
+
+package com.xdadan.erp.emis.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.xdadan.erp.common.annotation.Excel;
+import com.xdadan.erp.common.core.domain.BaseEntity;
+import com.xdadan.erp.common.core.domain.TreeEntity;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * @ClassName EmisTmsCostFeeFeeitem
+ * @Description 成本费用条目
+ * @author linfso
+ * @date 2025-02-17 10:33:18
+ */
+ @Data
+public class EmisTmsCostFeeFeeitem extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /* id */
+ private Long id;
+ /* 成本序号 */
+ private String costNo;
+ /* 费用类型 */
+ private String feeType;
+ /* 费用值 */
+ private BigDecimal fee;
+ /* 费用币种 */
+ private String currency;
+ /* 人民币汇率 */
+ private BigDecimal currecyToCnyRate;
+ /* 实收人民币费用 */
+ private BigDecimal cnyFee;
+ /* 排序 */
+ private Integer orderNum;
+
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFeeSplit.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFeeSplit.java
new file mode 100644
index 000000000..0195a46ee
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsCostFeeSplit.java
@@ -0,0 +1,57 @@
+/**
+ * @Project: emis
+ * @Title: EmisTmsCostFeeSplit.java
+ * @author linfso
+ * @date 2025-02-17 11:42:29
+ * @Copyright: ShangHai Duta 2022 All rights reserved.
+ * @version v1.0
+ * @Description: 成本费用分摊明细 实体类
+ */
+
+package com.xdadan.erp.emis.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.xdadan.erp.common.annotation.Excel;
+import com.xdadan.erp.common.core.domain.BaseEntity;
+import com.xdadan.erp.common.core.domain.TreeEntity;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * @ClassName EmisTmsCostFeeSplit
+ * @Description 成本费用分摊明细
+ * @author linfso
+ * @date 2025-02-17 11:42:29
+ */
+ @Data
+public class EmisTmsCostFeeSplit extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /* id */
+ private Long id;
+ /* 支付序号 */
+ private String costNo;
+ /* 费用项ID */
+ private Long feeItemId;
+ /* 运单号 */
+ private String billCode;
+ /* 成本费用类型 字典 emis_cost_fee_type */
+ private String feeType;
+ /* 成本分摊类型 1-按重量 2-按体积 3-按票 */
+ private String splitType;
+ /* 分摊成本 */
+ private BigDecimal costFee;
+ /* 总体积 */
+ private BigDecimal totalVolume;
+ /* 实际重量 */
+ private BigDecimal billWeight;
+ /* 计算备注 */
+ private String calcRemark;
+
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeFeeitemMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeFeeitemMapper.java
new file mode 100644
index 000000000..0dce230cd
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeFeeitemMapper.java
@@ -0,0 +1,87 @@
+/**
+ * @Project: emis
+ * @Title: EmisTmsCostFeeFeeitemMapper.java
+ * @author linfso
+ * @date 2025-02-17 10:33:18
+ * @Copyright: ShangHai Doitinfo 2022 All rights reserved.
+ * @version v1.0
+ * @Description: 成本费用条目 Mapper 接口
+ * Warning : This file is generate by ai tools,don't edit!!!
+ */
+package com.xdadan.erp.emis.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xdadan.erp.emis.domain.EmisTmsCostFeeFeeitem;
+/**
+ * @ClassName EmisTmsCostFeeFeeitemMapper
+ * @Description 成本费用条目 Mapper 接口
+ * @author linfso
+ * @date 2025-02-17 10:33:18
+ */
+public interface EmisTmsCostFeeFeeitemMapper extends BaseMapper
+{
+ /**
+ * 主键查询
+ * @param id
+ * @return
+ */
+ public EmisTmsCostFeeFeeitem selectEmisTmsCostFeeFeeitemById(Long id);
+
+ /**
+ * 查询列表
+ *
+ * @param emisTmsCostFeeFeeitem
+ * @return 集合
+ */
+ public List selectEmisTmsCostFeeFeeitemList(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem);
+
+
+ /**
+ * 检查是否重复
+ *
+ * @param emisTmsCostFeeFeeitem
+ * @return 数量
+ */
+ public int checkUnique(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem);
+
+
+ /**
+ * 新增
+ *
+ * @param emisTmsCostFeeFeeitem
+ * @return
+ */
+ public int insertEmisTmsCostFeeFeeitem(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem);
+
+ /**
+ * 修改
+ *
+ * @param emisTmsCostFeeFeeitem
+ * @return
+ */
+ public int updateEmisTmsCostFeeFeeitem(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem);
+
+ /**
+ *
+ * @param costNo
+ * @return
+ */
+ public int deleteEmisTmsCostFeeFeeitemByCostNo(String costNo);
+
+ /**
+ * 删除
+ *
+ * @param id 主键
+ * @return 结果
+ */
+ public int deleteEmisTmsCostFeeFeeitemById(Long id);
+
+ /**
+ * 批量删除
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteEmisTmsCostFeeFeeitemByIds(Long[] ids);
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeSplitMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeSplitMapper.java
new file mode 100644
index 000000000..9a5115a95
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsCostFeeSplitMapper.java
@@ -0,0 +1,80 @@
+/**
+ * @Project: emis
+ * @Title: EmisTmsCostFeeSplitMapper.java
+ * @author linfso
+ * @date 2025-02-17 11:42:29
+ * @Copyright: ShangHai Doitinfo 2022 All rights reserved.
+ * @version v1.0
+ * @Description: 成本费用分摊明细 Mapper 接口
+ * Warning : This file is generate by ai tools,don't edit!!!
+ */
+package com.xdadan.erp.emis.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xdadan.erp.emis.domain.EmisTmsCostFeeSplit;
+/**
+ * @ClassName EmisTmsCostFeeSplitMapper
+ * @Description 成本费用分摊明细 Mapper 接口
+ * @author linfso
+ * @date 2025-02-17 11:42:29
+ */
+public interface EmisTmsCostFeeSplitMapper extends BaseMapper
+{
+ /**
+ * 主键查询
+ * @param id
+ * @return
+ */
+ public EmisTmsCostFeeSplit selectEmisTmsCostFeeSplitById(Long id);
+
+ /**
+ * 查询列表
+ *
+ * @param emisTmsCostFeeSplit
+ * @return 集合
+ */
+ public List selectEmisTmsCostFeeSplitList(EmisTmsCostFeeSplit emisTmsCostFeeSplit);
+
+
+ /**
+ * 检查是否重复
+ *
+ * @param emisTmsCostFeeSplit
+ * @return 数量
+ */
+ public int checkUnique(EmisTmsCostFeeSplit emisTmsCostFeeSplit);
+
+
+ /**
+ * 新增
+ *
+ * @param emisTmsCostFeeSplit
+ * @return
+ */
+ public int insertEmisTmsCostFeeSplit(EmisTmsCostFeeSplit emisTmsCostFeeSplit);
+
+ /**
+ * 修改
+ *
+ * @param emisTmsCostFeeSplit
+ * @return
+ */
+ public int updateEmisTmsCostFeeSplit(EmisTmsCostFeeSplit emisTmsCostFeeSplit);
+
+ /**
+ * 删除
+ *
+ * @param id 主键
+ * @return 结果
+ */
+ public int deleteEmisTmsCostFeeSplitById(Long id);
+
+ /**
+ * 批量删除
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteEmisTmsCostFeeSplitByIds(Long[] ids);
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsCostFeeFeeitemService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsCostFeeFeeitemService.java
new file mode 100644
index 000000000..94ec86246
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsCostFeeFeeitemService.java
@@ -0,0 +1,78 @@
+ /**
+ * @Project: emis
+ * @Title: EmisTmsCostFeeFeeitemService.java
+ * @author linfso
+ * @date 2025-02-17 10:33:19
+ * @Copyright: ShangHai Duta 2022 All rights reserved.
+ * @version v1.0
+ * @Description: 成本费用条目 服务类接口
+ */
+package com.xdadan.erp.emis.service;
+
+import java.util.List;
+import com.xdadan.erp.emis.domain.EmisTmsCostFeeFeeitem;
+
+/**
+ * @ClassName EmisTmsCostFeeFeeitemService
+ * @Description 成本费用条目
+ * @author linfso
+ * @date 2025-02-17 10:33:19
+ */
+public interface IEmisTmsCostFeeFeeitemService
+{
+ /**
+ * 主键查询
+ * @param id
+ * @return
+ */
+ public EmisTmsCostFeeFeeitem selectEmisTmsCostFeeFeeitemById(Long id);
+
+ /**
+ * 查询成本费用条目列表
+ *
+ * @param emisTmsCostFeeFeeitem 成本费用条目
+ * @return 成本费用条目集合
+ */
+ public List selectEmisTmsCostFeeFeeitemList(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem);
+
+
+ /**
+ * 检查是否重复
+ *
+ * @param emisTmsCostFeeFeeitem
+ * @return 数量
+ */
+ public int checkUnique(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem);
+
+ /**
+ * 新增成本费用条目
+ *
+ * @param emisTmsCostFeeFeeitem 成本费用条目
+ * @return 结果
+ */
+ public int insertEmisTmsCostFeeFeeitem(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem);
+
+ /**
+ * 修改成本费用条目
+ *
+ * @param emisTmsCostFeeFeeitem 成本费用条目
+ * @return 结果
+ */
+ public int updateEmisTmsCostFeeFeeitem(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem);
+
+ /**
+ * 批量删除成本费用条目
+ *
+ * @param ids 需要删除的成本费用条目主键集合
+ * @return 结果
+ */
+ public int deleteEmisTmsCostFeeFeeitemByIds(Long[] ids);
+
+ /**
+ * 删除成本费用条目信息
+ *
+ * @param id 成本费用条目主键
+ * @return 结果
+ */
+ public int deleteEmisTmsCostFeeFeeitemById(Long id);
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsCostFeeSplitService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsCostFeeSplitService.java
new file mode 100644
index 000000000..59888a617
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsCostFeeSplitService.java
@@ -0,0 +1,78 @@
+ /**
+ * @Project: emis
+ * @Title: EmisTmsCostFeeSplitService.java
+ * @author linfso
+ * @date 2025-02-17 11:42:30
+ * @Copyright: ShangHai Duta 2022 All rights reserved.
+ * @version v1.0
+ * @Description: 成本费用分摊明细 服务类接口
+ */
+package com.xdadan.erp.emis.service;
+
+import java.util.List;
+import com.xdadan.erp.emis.domain.EmisTmsCostFeeSplit;
+
+/**
+ * @ClassName EmisTmsCostFeeSplitService
+ * @Description 成本费用分摊明细
+ * @author linfso
+ * @date 2025-02-17 11:42:30
+ */
+public interface IEmisTmsCostFeeSplitService
+{
+ /**
+ * 主键查询
+ * @param id
+ * @return
+ */
+ public EmisTmsCostFeeSplit selectEmisTmsCostFeeSplitById(Long id);
+
+ /**
+ * 查询成本费用分摊明细列表
+ *
+ * @param emisTmsCostFeeSplit 成本费用分摊明细
+ * @return 成本费用分摊明细集合
+ */
+ public List selectEmisTmsCostFeeSplitList(EmisTmsCostFeeSplit emisTmsCostFeeSplit);
+
+
+ /**
+ * 检查是否重复
+ *
+ * @param emisTmsCostFeeSplit
+ * @return 数量
+ */
+ public int checkUnique(EmisTmsCostFeeSplit emisTmsCostFeeSplit);
+
+ /**
+ * 新增成本费用分摊明细
+ *
+ * @param emisTmsCostFeeSplit 成本费用分摊明细
+ * @return 结果
+ */
+ public int insertEmisTmsCostFeeSplit(EmisTmsCostFeeSplit emisTmsCostFeeSplit);
+
+ /**
+ * 修改成本费用分摊明细
+ *
+ * @param emisTmsCostFeeSplit 成本费用分摊明细
+ * @return 结果
+ */
+ public int updateEmisTmsCostFeeSplit(EmisTmsCostFeeSplit emisTmsCostFeeSplit);
+
+ /**
+ * 批量删除成本费用分摊明细
+ *
+ * @param ids 需要删除的成本费用分摊明细主键集合
+ * @return 结果
+ */
+ public int deleteEmisTmsCostFeeSplitByIds(Long[] ids);
+
+ /**
+ * 删除成本费用分摊明细信息
+ *
+ * @param id 成本费用分摊明细主键
+ * @return 结果
+ */
+ public int deleteEmisTmsCostFeeSplitById(Long id);
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeFeeitemServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeFeeitemServiceImpl.java
new file mode 100644
index 000000000..9266aa6a8
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeFeeitemServiceImpl.java
@@ -0,0 +1,117 @@
+ /**
+ * @Project: emis
+ * @Title: EmisTmsCostFeeFeeitemServiceImpl.java
+ * @author linfso
+ * @date 2025-02-17 10:33:19
+ * @Copyright: ShangHai Duta 2022 All rights reserved.
+ * @version v1.0
+ * @Description: 成本费用条目 实体类
+ */
+
+package com.xdadan.erp.emis.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.xdadan.erp.emis.domain.EmisTmsCostFeeFeeitem;
+import com.xdadan.erp.emis.mapper.EmisTmsCostFeeFeeitemMapper;
+import com.xdadan.erp.emis.service.IEmisTmsCostFeeFeeitemService;
+
+/**
+ * 成本费用条目Service业务层处理
+ *
+ * @author linfso
+ * @date 2025-02-17 10:33:19
+ */
+@Service
+public class EmisTmsCostFeeFeeitemServiceImpl implements IEmisTmsCostFeeFeeitemService
+{
+ @Autowired
+ private EmisTmsCostFeeFeeitemMapper emisTmsCostFeeFeeitemMapper;
+
+ /**
+ * 查询成本费用条目
+ *
+ * @param id 成本费用条目主键
+ * @return 成本费用条目
+ */
+ @Override
+ public EmisTmsCostFeeFeeitem selectEmisTmsCostFeeFeeitemById(Long id)
+ {
+ return emisTmsCostFeeFeeitemMapper.selectEmisTmsCostFeeFeeitemById(id);
+ }
+
+
+ /**
+ * 查询成本费用条目列表
+ *
+ * @param emisTmsCostFeeFeeitem 成本费用条目
+ * @return 成本费用条目
+ */
+ @Override
+ public List selectEmisTmsCostFeeFeeitemList(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem)
+ {
+ return emisTmsCostFeeFeeitemMapper.selectEmisTmsCostFeeFeeitemList(emisTmsCostFeeFeeitem);
+ }
+
+ /**
+ * 检查是否重复
+ *
+ * @param emisTmsCostFeeFeeitem
+ * @return 数量
+ */
+ @Override
+ public int checkUnique(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem)
+ {
+ return emisTmsCostFeeFeeitemMapper.checkUnique(emisTmsCostFeeFeeitem);
+ }
+
+ /**
+ * 新增成本费用条目
+ *
+ * @param emisTmsCostFeeFeeitem 成本费用条目
+ * @return 结果
+ */
+ @Override
+ public int insertEmisTmsCostFeeFeeitem(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem)
+ {
+ return emisTmsCostFeeFeeitemMapper.insertEmisTmsCostFeeFeeitem(emisTmsCostFeeFeeitem);
+ }
+
+ /**
+ * 修改成本费用条目
+ *
+ * @param emisTmsCostFeeFeeitem 成本费用条目
+ * @return 结果
+ */
+ @Override
+ public int updateEmisTmsCostFeeFeeitem(EmisTmsCostFeeFeeitem emisTmsCostFeeFeeitem)
+ {
+ return emisTmsCostFeeFeeitemMapper.updateEmisTmsCostFeeFeeitem(emisTmsCostFeeFeeitem);
+ }
+
+ /**
+ * 批量删除成本费用条目
+ *
+ * @param ids 需要删除的成本费用条目主键
+ * @return 结果
+ */
+ @Override
+ public int deleteEmisTmsCostFeeFeeitemByIds(Long[] ids)
+ {
+ return emisTmsCostFeeFeeitemMapper.deleteEmisTmsCostFeeFeeitemByIds(ids);
+ }
+
+ /**
+ * 删除成本费用条目信息
+ *
+ * @param id 成本费用条目主键
+ * @return 结果
+ */
+ @Override
+ public int deleteEmisTmsCostFeeFeeitemById(Long id)
+ {
+ return emisTmsCostFeeFeeitemMapper.deleteEmisTmsCostFeeFeeitemById(id);
+ }
+
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeServiceImpl.java
index dcd7e7f49..d671aa170 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeServiceImpl.java
@@ -17,16 +17,13 @@ import cn.hutool.core.collection.CollectionUtil;
import com.xdadan.erp.emis.domain.*;
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
-import com.xdadan.erp.emis.mapper.EmisTmsCostFeeRelMapper;
-import com.xdadan.erp.emis.mapper.EmisTmsCostProfitMapper;
-import com.xdadan.erp.emis.mapper.EmisWaybillMapper;
+import com.xdadan.erp.emis.mapper.*;
import com.xdadan.erp.emis.utils.WaybillHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
-import com.xdadan.erp.emis.mapper.EmisTmsCostFeeMapper;
import com.xdadan.erp.emis.service.IEmisTmsCostFeeService;
import org.springframework.transaction.annotation.Transactional;
@@ -46,6 +43,9 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
@Autowired
private EmisTmsCostFeeRelMapper emisTmsCostFeeRelMapper;
+ @Autowired
+ private EmisTmsCostFeeFeeitemMapper emisTmsCostFeeFeeitemMapper;
+
@Autowired
private EmisTmsCostProfitMapper emisTmsCostProfitMapper;
@@ -118,6 +118,17 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
emisTmsCostFeeMapper.insertEmisTmsCostFee(emisTmsCostFee);
+ // 插入关联费用
+ for (EmisTmsCostFeeFeeitem feeItem:emisTmsCostFee.getFeeItemList()
+ ) {
+ EmisTmsCostFeeFeeitem newFeeItem = new EmisTmsCostFeeFeeitem();
+ newFeeItem.setCostNo(costNo);
+ newFeeItem.setFeeType(feeItem.getFeeType());
+ newFeeItem.setFee(feeItem.getFee());
+ newFeeItem.setCurrency(feeItem.getCurrency());
+ emisTmsCostFeeFeeitemMapper.insertEmisTmsCostFeeFeeitem(newFeeItem);
+ }
+
// 计算分摊费用
// reCalcSplitCostFee(costNo);
@@ -274,6 +285,19 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
emisTmsCostFeeRelMapper.insertEmisTmsCostFeeRel(newCostFeeRel);
}
+ // 删除旧的费用
+ emisTmsCostFeeFeeitemMapper.deleteEmisTmsCostFeeFeeitemByCostNo(emisTmsCostFee.getCostNo());
+ // 插入关联费用
+ for (EmisTmsCostFeeFeeitem feeItem:emisTmsCostFee.getFeeItemList()
+ ) {
+ EmisTmsCostFeeFeeitem newFeeItem = new EmisTmsCostFeeFeeitem();
+ newFeeItem.setCostNo(costNo);
+ newFeeItem.setFeeType(feeItem.getFeeType());
+ newFeeItem.setFee(feeItem.getFee());
+ newFeeItem.setCurrency(feeItem.getCurrency());
+ emisTmsCostFeeFeeitemMapper.insertEmisTmsCostFeeFeeitem(newFeeItem);
+ }
+
emisTmsCostFeeMapper.updateEmisTmsCostFee(emisTmsCostFee);
// 计算分摊费用
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeSplitServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeSplitServiceImpl.java
new file mode 100644
index 000000000..2c54c68a0
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsCostFeeSplitServiceImpl.java
@@ -0,0 +1,117 @@
+ /**
+ * @Project: emis
+ * @Title: EmisTmsCostFeeSplitServiceImpl.java
+ * @author linfso
+ * @date 2025-02-17 11:42:30
+ * @Copyright: ShangHai Duta 2022 All rights reserved.
+ * @version v1.0
+ * @Description: 成本费用分摊明细 实体类
+ */
+
+package com.xdadan.erp.emis.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.xdadan.erp.emis.domain.EmisTmsCostFeeSplit;
+import com.xdadan.erp.emis.mapper.EmisTmsCostFeeSplitMapper;
+import com.xdadan.erp.emis.service.IEmisTmsCostFeeSplitService;
+
+/**
+ * 成本费用分摊明细Service业务层处理
+ *
+ * @author linfso
+ * @date 2025-02-17 11:42:30
+ */
+@Service
+public class EmisTmsCostFeeSplitServiceImpl implements IEmisTmsCostFeeSplitService
+{
+ @Autowired
+ private EmisTmsCostFeeSplitMapper emisTmsCostFeeSplitMapper;
+
+ /**
+ * 查询成本费用分摊明细
+ *
+ * @param id 成本费用分摊明细主键
+ * @return 成本费用分摊明细
+ */
+ @Override
+ public EmisTmsCostFeeSplit selectEmisTmsCostFeeSplitById(Long id)
+ {
+ return emisTmsCostFeeSplitMapper.selectEmisTmsCostFeeSplitById(id);
+ }
+
+
+ /**
+ * 查询成本费用分摊明细列表
+ *
+ * @param emisTmsCostFeeSplit 成本费用分摊明细
+ * @return 成本费用分摊明细
+ */
+ @Override
+ public List selectEmisTmsCostFeeSplitList(EmisTmsCostFeeSplit emisTmsCostFeeSplit)
+ {
+ return emisTmsCostFeeSplitMapper.selectEmisTmsCostFeeSplitList(emisTmsCostFeeSplit);
+ }
+
+ /**
+ * 检查是否重复
+ *
+ * @param emisTmsCostFeeSplit
+ * @return 数量
+ */
+ @Override
+ public int checkUnique(EmisTmsCostFeeSplit emisTmsCostFeeSplit)
+ {
+ return emisTmsCostFeeSplitMapper.checkUnique(emisTmsCostFeeSplit);
+ }
+
+ /**
+ * 新增成本费用分摊明细
+ *
+ * @param emisTmsCostFeeSplit 成本费用分摊明细
+ * @return 结果
+ */
+ @Override
+ public int insertEmisTmsCostFeeSplit(EmisTmsCostFeeSplit emisTmsCostFeeSplit)
+ {
+ return emisTmsCostFeeSplitMapper.insertEmisTmsCostFeeSplit(emisTmsCostFeeSplit);
+ }
+
+ /**
+ * 修改成本费用分摊明细
+ *
+ * @param emisTmsCostFeeSplit 成本费用分摊明细
+ * @return 结果
+ */
+ @Override
+ public int updateEmisTmsCostFeeSplit(EmisTmsCostFeeSplit emisTmsCostFeeSplit)
+ {
+ return emisTmsCostFeeSplitMapper.updateEmisTmsCostFeeSplit(emisTmsCostFeeSplit);
+ }
+
+ /**
+ * 批量删除成本费用分摊明细
+ *
+ * @param ids 需要删除的成本费用分摊明细主键
+ * @return 结果
+ */
+ @Override
+ public int deleteEmisTmsCostFeeSplitByIds(Long[] ids)
+ {
+ return emisTmsCostFeeSplitMapper.deleteEmisTmsCostFeeSplitByIds(ids);
+ }
+
+ /**
+ * 删除成本费用分摊明细信息
+ *
+ * @param id 成本费用分摊明细主键
+ * @return 结果
+ */
+ @Override
+ public int deleteEmisTmsCostFeeSplitById(Long id)
+ {
+ return emisTmsCostFeeSplitMapper.deleteEmisTmsCostFeeSplitById(id);
+ }
+
+}
diff --git a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeFeeitemMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeFeeitemMapper.xml
new file mode 100644
index 000000000..e01f44b45
--- /dev/null
+++ b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeFeeitemMapper.xml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, cost_no, fee_type, fee, currency, currecy_to_cny_rate, cny_fee, order_num, del_flag, create_by, create_time, update_by, update_time, remark from emis_tms_cost_fee_feeitem
+
+
+
+
+
+
+
+
+
+ insert into emis_tms_cost_fee_feeitem
+
+ cost_no,
+ fee_type,
+ fee,
+ currency,
+ currecy_to_cny_rate,
+ cny_fee,
+ order_num,
+ del_flag,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ remark,
+
+
+ #{costNo},
+ #{feeType},
+ #{fee},
+ #{currency},
+ #{currecyToCnyRate},
+ #{cnyFee},
+ #{orderNum},
+ #{delFlag},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{remark},
+
+
+
+
+ update emis_tms_cost_fee_feeitem
+
+ cost_no = #{costNo},
+ fee_type = #{feeType},
+ fee = #{fee},
+ currency = #{currency},
+ currecy_to_cny_rate = #{currecyToCnyRate},
+ cny_fee = #{cnyFee},
+ order_num = #{orderNum},
+ del_flag = #{delFlag},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ remark = #{remark},
+
+ where id = #{id}
+
+
+
+ update emis_tms_cost_fee_feeitem set del_flag='1' where cost_no = #{costNo}
+
+
+
+ update emis_tms_cost_fee_feeitem set del_flag='1' where id = #{id}
+
+
+
+ update emis_tms_cost_fee_feeitem set del_flag='1' where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/emis-biz/src/main/resources/mapper/EmisTmsCostFeeSplitMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeSplitMapper.xml
new file mode 100644
index 000000000..c8fcd63ad
--- /dev/null
+++ b/emis-biz/src/main/resources/mapper/EmisTmsCostFeeSplitMapper.xml
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, cost_no, fee_item_id, bill_code, fee_type, split_type, cost_fee, total_volume, bill_weight, calc_remark, remark, del_flag, create_by, create_time, update_by, update_time, create_site, update_site from emis_tms_cost_fee_split
+
+
+
+
+
+
+
+
+
+ insert into emis_tms_cost_fee_split
+
+ id,
+ cost_no,
+ fee_item_id,
+ bill_code,
+ fee_type,
+ split_type,
+ cost_fee,
+ total_volume,
+ bill_weight,
+ calc_remark,
+ remark,
+ del_flag,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ create_site,
+ update_site,
+
+
+ #{id},
+ #{costNo},
+ #{feeItemId},
+ #{billCode},
+ #{feeType},
+ #{splitType},
+ #{costFee},
+ #{totalVolume},
+ #{billWeight},
+ #{calcRemark},
+ #{remark},
+ #{delFlag},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{createSite},
+ #{updateSite},
+
+
+
+
+ update emis_tms_cost_fee_split
+
+ cost_no = #{costNo},
+ fee_item_id = #{feeItemId},
+ bill_code = #{billCode},
+ fee_type = #{feeType},
+ split_type = #{splitType},
+ cost_fee = #{costFee},
+ total_volume = #{totalVolume},
+ bill_weight = #{billWeight},
+ calc_remark = #{calcRemark},
+ remark = #{remark},
+ del_flag = #{delFlag},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ create_site = #{createSite},
+ update_site = #{updateSite},
+
+ where id = #{id}
+
+
+
+ delete from emis_tms_cost_fee_split where id = #{id}
+
+
+
+ delete from emis_tms_cost_fee_split where id in
+
+ #{id}
+
+
+
\ No newline at end of file