From cf79cb6cabafe54b73ae241312a98d4f616ca0fa Mon Sep 17 00:00:00 2001 From: lzq <2495532633@qq.com> Date: Tue, 3 Mar 2026 11:05:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cst/station/mapper/StationMapper.java | 2 + .../cst/station/service/StationService.java | 5 +++ .../pojo/entity/ExpenseItemEntity.java | 38 +++++++++++++++--- .../pojo/param/AddExpenseItemParam.java | 5 ++- .../pojo/param/ModifyExpenseItemParam.java | 1 + .../finance/service/ExpenseItemService.java | 15 ++++++- .../dispose/goods/service/GoodsService.java | 39 ++++++++++++++++--- .../mapper/cst/station/StationMapper.xml | 9 ++++- 8 files changed, 101 insertions(+), 13 deletions(-) diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMapper.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMapper.java index 0cb2d84..2cf9e9f 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMapper.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMapper.java @@ -22,6 +22,8 @@ public interface StationMapper extends BaseMapper { StationResult detail(@Param("id") Long id); List listAll(@Param("ew") QueryWrapper ew); + + boolean isManager(@Param("userId") Long userId); } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationService.java index 2cc3654..823bf98 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationService.java @@ -106,6 +106,11 @@ public class StationService extends ServiceImpl im List stationIds = memberEntityList.stream().map(StationMemberEntity::getStationId).toList(); return baseMapper.listAll(Wrappers.query().in("a.id", stationIds)); } + + public boolean isManager() { + Long userId = SecurityUtil.currentUserId(); + return baseMapper.isManager(userId); + } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/ExpenseItemEntity.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/ExpenseItemEntity.java index 0dde1b1..2bec737 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/ExpenseItemEntity.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/ExpenseItemEntity.java @@ -1,9 +1,6 @@ package com.njzscloud.dispose.finance.pojo.entity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.njzscloud.dispose.common.pojo.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; import com.njzscloud.dispose.finance.constant.ExpenseItemCategory; import com.njzscloud.dispose.finance.constant.ExpenseStrategy; import com.njzscloud.dispose.finance.constant.Unit; @@ -13,6 +10,7 @@ import lombok.ToString; import lombok.experimental.Accessors; import java.math.BigDecimal; +import java.time.LocalDateTime; /** * 收费项目 @@ -24,7 +22,7 @@ import java.math.BigDecimal; @ToString @Accessors(chain = true) @TableName(value = "fin_expense_item", autoResultMap = true) -public class ExpenseItemEntity extends BaseEntity { +public class ExpenseItemEntity { /** * Id @@ -95,6 +93,7 @@ public class ExpenseItemEntity extends BaseEntity { /** * 站点 Id */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Long stationId; /** @@ -109,5 +108,34 @@ public class ExpenseItemEntity extends BaseEntity { private Long goodsId; + /** + * 创建人 Id;sys_user.id + */ + @TableField(fill = FieldFill.INSERT) + private Long creatorId; + + /** + * 修改人 Id; sys_user.id + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Long modifierId; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime modifyTime; + + /** + * 是否删除; 0-->未删除、1-->已删除 + */ + @TableLogic + private Boolean deleted; } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/AddExpenseItemParam.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/AddExpenseItemParam.java index d622811..64f3147 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/AddExpenseItemParam.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/AddExpenseItemParam.java @@ -15,7 +15,10 @@ import java.math.BigDecimal; @ToString @Accessors(chain = true) public class AddExpenseItemParam { - + private Long userId; + private Long customerId; + private Long orgId; + private Long stationId; /** * 收费项目类型,QiTa-->其他、ChanPin-->产品、YunFei-->运费 */ diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/ModifyExpenseItemParam.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/ModifyExpenseItemParam.java index 9ea29c6..18dd5b6 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/ModifyExpenseItemParam.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/ModifyExpenseItemParam.java @@ -19,6 +19,7 @@ public class ModifyExpenseItemParam { * Id */ private Long id; + private Long stationId; /** * 收费项目类型,QiTa-->其他、ChanPin-->产品、YunFei-->运费 diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/ExpenseItemService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/ExpenseItemService.java index 7b8c54b..b700860 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/ExpenseItemService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/ExpenseItemService.java @@ -1,6 +1,8 @@ package com.njzscloud.dispose.finance.service; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njzscloud.common.mp.support.PageParam; @@ -10,6 +12,7 @@ import com.njzscloud.dispose.finance.mapper.ExpenseItemMapper; import com.njzscloud.dispose.finance.pojo.entity.ExpenseItemEntity; import com.njzscloud.dispose.finance.pojo.param.AddExpenseItemParam; import com.njzscloud.dispose.finance.pojo.param.ModifyExpenseItemParam; +import com.njzscloud.dispose.sys.auth.pojo.result.IdentityInfo; import com.njzscloud.dispose.sys.auth.pojo.result.MyResult; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -65,6 +68,16 @@ public class ExpenseItemService extends ServiceImpl paging(PageParam pageParam, ExpenseItemEntity expenseItemEntity) { - return PageResult.of(this.page(pageParam.toPage(), Wrappers.query(expenseItemEntity))); + String expenseItemName = expenseItemEntity.getExpenseItemName(); + MyResult userDetail = SecurityUtil.loginUser(); + List identities = userDetail.getIdentities(); + List orgIds = null; + if (CollUtil.isNotEmpty(identities)) { + orgIds = identities.stream().map(IdentityInfo::getOrgId).toList(); + } + return PageResult.of(this.page(pageParam.toPage(), Wrappers.lambdaQuery() + .like(StrUtil.isNotBlank(expenseItemName), ExpenseItemEntity::getExpenseItemName, expenseItemName) + .in(CollUtil.isNotEmpty(orgIds), ExpenseItemEntity::getOrgId, orgIds) + )); } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/GoodsService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/GoodsService.java index 2bdb7b5..1435262 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/GoodsService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/GoodsService.java @@ -6,7 +6,10 @@ 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.common.security.util.SecurityUtil; import com.njzscloud.common.sn.support.SnUtil; +import com.njzscloud.dispose.cst.station.pojo.result.StationResult; +import com.njzscloud.dispose.cst.station.service.StationService; import com.njzscloud.dispose.finance.constant.ExpenseItemCategory; import com.njzscloud.dispose.finance.pojo.entity.ExpenseItemEntity; import com.njzscloud.dispose.finance.pojo.param.AddExpenseItemParam; @@ -25,6 +28,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Optional; /** * 产品 @@ -37,6 +41,7 @@ import java.util.List; public class GoodsService extends ServiceImpl { private final ExpenseItemService expenseItemService; + private final StationService stationService; /** * 新增 @@ -69,12 +74,36 @@ public class GoodsService extends ServiceImpl { this.updateById(goodsEntity); // 付费项 ModifyGoodsParam.ExpenseItem expenseItem = modifyGoodsParam.getExpenseItem(); - + if (expenseItem == null) return; + Long userId = SecurityUtil.currentUserId(); + List stationResults = stationService.listAll(); + Optional stationResultOpt = stationResults.stream().filter(it -> it.getCustomer().getManager()).findFirst(); + if (stationResultOpt.isEmpty()) return; + StationResult stationResult = stationResultOpt.get(); + Long customerId = stationResult.getCustomer().getId(); + Long orgId = stationResult.getOrgId(); + Long stationId = stationResult.getId(); + Long goodsId = goodsEntity.getId(); String goodsName = modifyGoodsParam.getGoodsName(); - ModifyExpenseItemParam modifyExpenseItemParam = BeanUtil.copyProperties(expenseItem, ModifyExpenseItemParam.class) - .setExpenseItemName(goodsName) - .setMemo(goodsName + "费用配置"); - expenseItemService.modify(modifyExpenseItemParam); + ExpenseItemEntity expenseItemEntity = expenseItemService.getOne(Wrappers.lambdaQuery().eq(ExpenseItemEntity::getStationId, stationId).eq(ExpenseItemEntity::getGoodsId, goodsId)); + if (expenseItemEntity == null) { + AddExpenseItemParam addExpenseItemParam = BeanUtil.copyProperties(expenseItem, AddExpenseItemParam.class) + .setUserId(userId) + .setCustomerId(customerId) + .setOrgId(orgId) + .setStationId(stationId) + .setGoodsId(goodsId) + .setExpenseItemName(goodsName) + .setExpenseItemCategory(ExpenseItemCategory.ChanPin) + .setMemo(goodsName + "费用配置"); + expenseItemService.add(addExpenseItemParam); + } else { + ModifyExpenseItemParam modifyExpenseItemParam = BeanUtil.copyProperties(expenseItem, ModifyExpenseItemParam.class) + .setId(expenseItemEntity.getId()) + .setExpenseItemName(goodsName) + .setMemo(goodsName + "费用配置"); + expenseItemService.modify(modifyExpenseItemParam); + } } /** diff --git a/njzscloud-svr/src/main/resources/mapper/cst/station/StationMapper.xml b/njzscloud-svr/src/main/resources/mapper/cst/station/StationMapper.xml index e345b06..1cc0c1b 100644 --- a/njzscloud-svr/src/main/resources/mapper/cst/station/StationMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/cst/station/StationMapper.xml @@ -59,7 +59,8 @@ e.idcard_front, e.idcard_back FROM cst_station a - INNER JOIN cst_customer b ON b.org_id = a.org_id AND b.manager = 1 AND b.deleted = 0 + INNER JOIN cst_station_member f ON f.station_id = a.id + INNER JOIN cst_customer b ON b.org_id = a.org_id AND b.id = f.customer_id AND b.deleted = 0 INNER JOIN sys_user c ON c.id = b.user_id AND c.deleted = 0 INNER JOIN sys_user_account d ON d.user_id = c.id AND d.deleted = 0 INNER JOIN cst_org e ON e.id = a.org_id AND e.deleted = 0 @@ -80,4 +81,10 @@ ${ew.customSqlSegment} +