From 0c56b84a4a14fdadafbfc72de990a39e2f0b7359 Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 15 Dec 2025 17:06:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/ExpenseItemCategory.java | 26 +++++++++ .../expenseItem/constant/ExpenseStrategy.java | 30 +++++++++++ .../finance/expenseItem/constant/Payer.java | 28 ++++++++++ .../expenseItem/constant/ScopeStrategy.java | 23 ++++++++ .../pojo/entity/ExpenseItemEntity.java | 54 +++++++++++++++++++ .../goods/goods/pojo/entity/GoodsEntity.java | 10 ++++ .../goods/service/impl/GoodsServiceImpl.java | 19 +++++++ .../finance/expenseItem/ExpenseItemMapper.xml | 3 +- 8 files changed, 192 insertions(+), 1 deletion(-) create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ExpenseItemCategory.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ExpenseStrategy.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/Payer.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ScopeStrategy.java diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ExpenseItemCategory.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ExpenseItemCategory.java new file mode 100644 index 0000000..1d12f27 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ExpenseItemCategory.java @@ -0,0 +1,26 @@ +package com.njzscloud.dispose.finance.expenseItem.constant; + +import com.njzscloud.common.core.ienum.DictStr; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * 字典代码:expense_item_category + * 字典名称:收费项目类型 + * + * @author ljw + */ +@Getter +@RequiredArgsConstructor +public enum ExpenseItemCategory implements DictStr { + QiTa("QiTa", "其他"), + + ChanPin("ChanPin", "产品"), + + YunFei("YunFei", "运费"), + + ; + private final String val; + + private final String txt; +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ExpenseStrategy.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ExpenseStrategy.java new file mode 100644 index 0000000..c5227fe --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ExpenseStrategy.java @@ -0,0 +1,30 @@ +package com.njzscloud.dispose.finance.expenseItem.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import com.njzscloud.common.core.ienum.DictStr; +/** + * 字典代码:expense_strategy + * 字典名称:计费策略 + * @author ljw + */ +@Getter +@RequiredArgsConstructor +public enum ExpenseStrategy implements DictStr { + MianFei("MianFei", "免费"), + + TanXing("TanXing", "弹性"), + + GuDing("GuDing", "固定"), + + Che("Che", "车"), + + Fang("Fang", "方"), + + JuLi("JuLi", "距离"), + + ; + private final String val; + + private final String txt; +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/Payer.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/Payer.java new file mode 100644 index 0000000..ec63ad2 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/Payer.java @@ -0,0 +1,28 @@ +package com.njzscloud.dispose.finance.expenseItem.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import com.njzscloud.common.core.ienum.DictStr; +/** + * 字典代码:payer + * 字典名称:付费方 + * @author ljw + */ +@Getter +@RequiredArgsConstructor +public enum Payer implements DictStr { + PingTai("PingTai", "平台"), + + ChanFei("ChanFei", "产废方"), + + QingYun("QingYun", "清运方"), + + XiaoNa("XiaoNa", "消纳方"), + + CaiGou("CaiGou", "采购方"), + + ; + private final String val; + + private final String txt; +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ScopeStrategy.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ScopeStrategy.java new file mode 100644 index 0000000..a7dd109 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/constant/ScopeStrategy.java @@ -0,0 +1,23 @@ +package com.njzscloud.dispose.finance.expenseItem.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import com.njzscloud.common.core.ienum.DictStr; +/** + * 字典代码:scope_strategy + * 字典名称:适用用户 + * @author ljw + */ +@Getter +@RequiredArgsConstructor +public enum ScopeStrategy implements DictStr { + + ZhiDing("ZhiDing", "指定"), + + SuoYou("SuoYou", "所有"), + + ; + private final String val; + + private final String txt; +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/pojo/entity/ExpenseItemEntity.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/pojo/entity/ExpenseItemEntity.java index 3d10333..90d6286 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/pojo/entity/ExpenseItemEntity.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/expenseItem/pojo/entity/ExpenseItemEntity.java @@ -1,9 +1,13 @@ package com.njzscloud.dispose.finance.expenseItem.pojo.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.njzscloud.dispose.common.pojo.entity.BaseEntity; +import com.njzscloud.dispose.finance.expenseItem.constant.ExpenseItemCategory; +import com.njzscloud.dispose.finance.expenseItem.constant.ExpenseStrategy; +import com.njzscloud.dispose.finance.expenseItem.constant.Payer; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -13,6 +17,7 @@ import java.math.BigDecimal; /** * 收费项目 + * * @author ljw */ @Getter @@ -33,6 +38,8 @@ public class ExpenseItemEntity extends BaseEntity { */ private String expenseItemCategory; + @TableField(exist = false) + private String expenseItemCategoryName; /** * 付费项名称 */ @@ -43,6 +50,9 @@ public class ExpenseItemEntity extends BaseEntity { */ private String expenseStrategy; + @TableField(exist = false) + private String expenseStrategyName; + /** * 计量单位;字典代码:unit */ @@ -58,6 +68,9 @@ public class ExpenseItemEntity extends BaseEntity { */ private String payer; + @TableField(exist = false) + private String payerName; + /** * 单价;单位:元,弹性模式-->每档价格 */ @@ -103,5 +116,46 @@ public class ExpenseItemEntity extends BaseEntity { */ private String memo; + private Long goodsId; + + public String getExpenseItemCategoryName() { + if (expenseItemCategory == null) { + return null; + } + for (ExpenseItemCategory type : ExpenseItemCategory.values()) { + if (type.getVal().equals(expenseItemCategory)) { + expenseItemCategoryName = type.getTxt(); + break; + } + } + return expenseItemCategoryName; + } + + public String getExpenseStrategyName() { + if (expenseStrategy == null) { + return null; + } + for (ExpenseStrategy type : ExpenseStrategy.values()) { + if (type.getVal().equals(expenseStrategy)) { + expenseStrategyName = type.getTxt(); + break; + } + } + return expenseStrategyName; + } + + public String getPayerName() { + if (payer == null) { + return null; + } + for (Payer type : Payer.values()) { + if (type.getVal().equals(payer)) { + payerName = type.getTxt(); + break; + } + } + return payerName; + } + } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/goods/pojo/entity/GoodsEntity.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/goods/pojo/entity/GoodsEntity.java index 09a139e..92f61d6 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/goods/pojo/entity/GoodsEntity.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/goods/pojo/entity/GoodsEntity.java @@ -1,7 +1,9 @@ package com.njzscloud.dispose.goods.goods.pojo.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.njzscloud.dispose.common.pojo.entity.BaseEntity; +import com.njzscloud.dispose.finance.expenseItem.pojo.entity.ExpenseItemEntity; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -9,6 +11,7 @@ import lombok.experimental.Accessors; /** * 产品 + * * @author ljw */ @Getter @@ -77,6 +80,13 @@ public class GoodsEntity extends BaseEntity { * 备注 */ private String memo; + + /** + * 关联收费项目信息(返回用) + */ + @TableField(exist = false) + private ExpenseItemEntity expenseItem; + } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/goods/service/impl/GoodsServiceImpl.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/goods/service/impl/GoodsServiceImpl.java index 430286c..b6e2902 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/goods/service/impl/GoodsServiceImpl.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/goods/service/impl/GoodsServiceImpl.java @@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageResult; +import com.njzscloud.dispose.finance.expenseItem.constant.ExpenseItemCategory; +import com.njzscloud.dispose.finance.expenseItem.pojo.entity.ExpenseItemEntity; +import com.njzscloud.dispose.finance.expenseItem.service.ExpenseItemService; import com.njzscloud.dispose.goods.goods.mapper.GoodsMapper; import com.njzscloud.dispose.goods.goods.pojo.entity.GoodsEntity; import com.njzscloud.dispose.goods.goods.service.GoodsService; @@ -23,20 +26,36 @@ import java.util.List; @RequiredArgsConstructor public class GoodsServiceImpl extends ServiceImpl implements GoodsService { + private final ExpenseItemService expenseItemService; + @Override + @Transactional(rollbackFor = Exception.class) public void add(GoodsEntity goodsEntity) { this.save(goodsEntity); + ExpenseItemEntity expenseItem = goodsEntity.getExpenseItem(); + expenseItem.setGoodsId(goodsEntity.getId()); + expenseItem.setExpenseItemCategory(ExpenseItemCategory.ChanPin.getVal()); + expenseItem.setExpenseItemName(goodsEntity.getGoodsName()); + // goodsScope默认传{strategy: 'ZhiDing',ids:[goodsEntity.getId()]} + expenseItem.setGoodsScope("{\"strategy\":\"ZhiDing\",\"ids\":[" + goodsEntity.getId() + "]}"); + expenseItemService.save(expenseItem); } @Override + @Transactional(rollbackFor = Exception.class) public void modify(GoodsEntity goodsEntity) { this.updateById(goodsEntity); + expenseItemService.updateById(goodsEntity.getExpenseItem()); } @Override @Transactional(rollbackFor = Exception.class) public void del(List ids) { + // 删除产品 this.removeBatchByIds(ids); + // 删除对应的费用配置 + expenseItemService.remove(Wrappers.lambdaQuery() + .in(ExpenseItemEntity::getGoodsId, ids)); } @Override diff --git a/njzscloud-svr/src/main/resources/mapper/finance/expenseItem/ExpenseItemMapper.xml b/njzscloud-svr/src/main/resources/mapper/finance/expenseItem/ExpenseItemMapper.xml index 6e9d7c7..e783e03 100644 --- a/njzscloud-svr/src/main/resources/mapper/finance/expenseItem/ExpenseItemMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/finance/expenseItem/ExpenseItemMapper.xml @@ -19,6 +19,7 @@ + @@ -29,7 +30,7 @@ id, expense_item_category, expense_item_name, expense_strategy, unit, tax_rate, payer, unit_price, initial_price, initial_quantity, every_quantity, user_scope, station_scope, - goods_scope, canuse, memo, creator_id, modifier_id, create_time, modify_time, deleted + goods_scope, canuse, memo, goods_id, creator_id, modifier_id, create_time, modify_time, deleted