费用管理

master
lzq 2026-03-03 11:05:30 +08:00
parent 779324080b
commit cf79cb6cab
8 changed files with 101 additions and 13 deletions

View File

@ -22,6 +22,8 @@ public interface StationMapper extends BaseMapper<StationEntity> {
StationResult detail(@Param("id") Long id);
List<StationResult> listAll(@Param("ew") QueryWrapper<?> ew);
boolean isManager(@Param("userId") Long userId);
}

View File

@ -106,6 +106,11 @@ public class StationService extends ServiceImpl<StationMapper, StationEntity> im
List<Long> 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);
}
}

View File

@ -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;
/**
* Idsys_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;
}

View File

@ -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-->
*/

View File

@ -19,6 +19,7 @@ public class ModifyExpenseItemParam {
* Id
*/
private Long id;
private Long stationId;
/**
* QiTa-->ChanPin-->YunFei-->

View File

@ -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<ExpenseItemMapper, ExpenseIt
*
*/
public PageResult<ExpenseItemEntity> paging(PageParam pageParam, ExpenseItemEntity expenseItemEntity) {
return PageResult.of(this.page(pageParam.toPage(), Wrappers.query(expenseItemEntity)));
String expenseItemName = expenseItemEntity.getExpenseItemName();
MyResult userDetail = SecurityUtil.loginUser();
List<IdentityInfo> identities = userDetail.getIdentities();
List<Long> orgIds = null;
if (CollUtil.isNotEmpty(identities)) {
orgIds = identities.stream().map(IdentityInfo::getOrgId).toList();
}
return PageResult.of(this.page(pageParam.toPage(), Wrappers.<ExpenseItemEntity>lambdaQuery()
.like(StrUtil.isNotBlank(expenseItemName), ExpenseItemEntity::getExpenseItemName, expenseItemName)
.in(CollUtil.isNotEmpty(orgIds), ExpenseItemEntity::getOrgId, orgIds)
));
}
}

View File

@ -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<GoodsMapper, GoodsEntity> {
private final ExpenseItemService expenseItemService;
private final StationService stationService;
/**
*
@ -69,13 +74,37 @@ public class GoodsService extends ServiceImpl<GoodsMapper, GoodsEntity> {
this.updateById(goodsEntity);
// 付费项
ModifyGoodsParam.ExpenseItem expenseItem = modifyGoodsParam.getExpenseItem();
if (expenseItem == null) return;
Long userId = SecurityUtil.currentUserId();
List<StationResult> stationResults = stationService.listAll();
Optional<StationResult> 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();
ExpenseItemEntity expenseItemEntity = expenseItemService.getOne(Wrappers.<ExpenseItemEntity>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);
}
}
/**
*

View File

@ -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}
</if>
</select>
<select id="isManager" resultType="java.lang.Boolean">
SELECT *
FROM cst_station_member a
INNER JOIN cst_customer b ON b.id = a.customer_id AND b.deleted = 0 AND b.manager = 1 AND b.org_id = a.org_id
WHERE a.user_id = #{userId}
</select>
</mapper>