fix: 结算

This commit is contained in:
huchuansai
2025-09-15 14:29:20 +08:00
parent b4d9a0285b
commit 4e456a3157
4 changed files with 33 additions and 23 deletions

View File

@@ -79,9 +79,9 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
}
}
} catch (Exception ignored) {
if (SecurityUtils.isLogin()) {
return SecurityUtils.getUserId();
}
// if (SecurityUtils.isLogin()) {
// return SecurityUtils.getUserId();
// }
}
return "";
}

View File

@@ -1,5 +1,7 @@
package com.starry.admin.common.task;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity;
@@ -18,6 +20,8 @@ import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.List;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
@@ -26,11 +30,10 @@ import org.springframework.stereotype.Component;
* @author admin
* @since 2024/5/28 下午2:42
**/
@Slf4j
@Component
public class ClerkWagesSettlementTask {
@Resource
ISysTenantService sysTenantService;
@Resource
private IPlayClerkUserInfoService clerkUserInfoService;
@@ -47,31 +50,33 @@ public class ClerkWagesSettlementTask {
/**
* 每分钟查询未结算订单 如果订单完成时间超过24小时可进行结算生成工资
*/
// @Scheduled(cron = "0 0/1 * * * ?")
@Scheduled(cron = "0 0/10 * * * ?")
public void dailyRanking() {
// 1、查询所有的租户信息
List<SysTenantEntity> tenantEntities = sysTenantService.listAll();
for (SysTenantEntity tenantEntity : tenantEntities) {
SecurityUtils.setTenantId(tenantEntity.getTenantId());
List<PlayClerkUserInfoEntity> clerkUserReturnVos = clerkUserInfoService.listAll();
// 生成每个人的工资信息
for (PlayClerkUserInfoEntity clerkUserInfo : clerkUserReturnVos) {
try {
updateClerkWagesInfo(clerkUserInfo.getId());
} catch (Exception e) {
log.error("订单结算异常:" + e.getMessage());
log.error(e.getMessage(),e);
}
}
}
/**
* 活动24小时前完成的订单对订单进行结算
*
* @param clerkId
* 店员ID
* @param clerkId 店员ID
*/
public void updateClerkWagesInfo(String clerkId) {
// 获得24小时前完成,并且未结算的订单
LocalDateTime lastTime = LocalDateTime.now().minusDays(1);
// 查询当前店员上次结算工资到现在的订单
List<PlayOrderInfoEntity> orderInfoEntities = playOrderInfoService.listByEndTime(clerkId, lastTime);
if(CollectionUtils.isEmpty(orderInfoEntities)) return;
PlayClerkWagesInfoEntity entity = playClerkWagesInfoService.getLastSettlement(clerkId);
// 更新订单信息
updateClerkWagesInfo(clerkId, entity == null ? IdUtils.getUuid() : entity.getId(), orderInfoEntities);
@@ -80,8 +85,7 @@ public class ClerkWagesSettlementTask {
/**
* 更新最新一次工资统计信息 更新订单记录
*
* @param orderInfoEntities
* 订单列表
* @param orderInfoEntities 订单列表
*/
public void updateClerkWagesInfo(String clerkId, String wagesId, List<PlayOrderInfoEntity> orderInfoEntities) {
// 修改订单状态并且新增订单结算详情
@@ -89,7 +93,10 @@ public class ClerkWagesSettlementTask {
// 修改订单状态
orderInfo.setOrderSettlementState("1");
orderInfo.setOrderSettlementTime(LocalDateTime.now());
playOrderInfoService.update(orderInfo);
playOrderInfoService.update(Wrappers.lambdaUpdate(PlayOrderInfoEntity.class)
.eq(PlayOrderInfoEntity::getId, orderInfo.getId())
.set(PlayOrderInfoEntity::getOrderSettlementState, "1")
.set(PlayOrderInfoEntity::getOrderSettlementTime, LocalDateTime.now()));
PlayClerkWagesDetailsInfoEntity wagesDetailsInfo = playClerkWagesDetailsInfoService
.selectByOrderId(orderInfo.getId());
@@ -103,6 +110,7 @@ public class ClerkWagesSettlementTask {
wagesDetailsInfo.setOrderId(orderInfo.getId());
wagesDetailsInfo.setOrderNo(orderInfo.getOrderNo());
wagesDetailsInfo.setFinalAmount(orderInfo.getFinalAmount());
wagesDetailsInfo.setTenantId(orderInfo.getTenantId());
wagesDetailsInfo.setEstimatedRevenue(orderInfo.getEstimatedRevenue());
wagesDetailsInfo.setEndOrderTime(orderInfo.getOrderEndTime());
playClerkWagesDetailsInfoService.saveOrUpdate(wagesDetailsInfo);
@@ -138,6 +146,7 @@ public class ClerkWagesSettlementTask {
wagesInfo.setFinalAmount(finalAmount);
wagesInfo.setOrderContinueNumber(orderContinueNumber);
wagesInfo.setOrderContinueMoney(orderContinueMoney);
wagesInfo.setTenantId(orderInfoEntities.get(0).getTenantId());
wagesInfo.setOrdersExpiredNumber(ordersExpiredNumber);
wagesInfo.setSettlementDate(LocalDate.now());
wagesInfo.setEstimatedRevenue(estimatedRevenue);

View File

@@ -42,7 +42,7 @@ public class PlayClerkWagesInfoServiceImpl extends ServiceImpl<PlayClerkWagesInf
public PlayClerkWagesInfoEntity selectCurrentPeriodWagesByClerkId(String clerkId) {
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "0");
// lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "0");
return this.baseMapper.selectOne(lambdaQueryWrapper);
}
@@ -50,7 +50,7 @@ public class PlayClerkWagesInfoServiceImpl extends ServiceImpl<PlayClerkWagesInf
public List<PlayClerkWagesInfoEntity> selectHistoricalWagesByClerkId(String clerkId) {
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1");
// lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1");
return this.baseMapper.selectList(lambdaQueryWrapper);
}
@@ -58,7 +58,7 @@ public class PlayClerkWagesInfoServiceImpl extends ServiceImpl<PlayClerkWagesInf
public PlayClerkWagesInfoEntity getLastSettlement(String clerkId) {
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "0");
// lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "0");
lambdaQueryWrapper.orderByDesc(PlayClerkWagesInfoEntity::getEndCountDate);
return this.baseMapper.selectOne(lambdaQueryWrapper);
}
@@ -67,11 +67,11 @@ public class PlayClerkWagesInfoServiceImpl extends ServiceImpl<PlayClerkWagesInf
public LocalDate getLastSettlementTime(String clerkId) {
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1");
// lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1");
lambdaQueryWrapper.orderByDesc(PlayClerkWagesInfoEntity::getEndCountDate);
PlayClerkWagesInfoEntity entity = this.baseMapper.selectOne(lambdaQueryWrapper);
if (entity == null) {
return LocalDate.of(2000, 1, 1);
return LocalDate.of(2025, 1, 1);
}
return entity.getEndCountDate();
}
@@ -100,7 +100,7 @@ public class PlayClerkWagesInfoServiceImpl extends ServiceImpl<PlayClerkWagesInf
lambdaWrapper.eq(PlayClerkWagesInfoEntity::getSettlementDate,
LocalDate.parse(vo.getSettlementDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
lambdaWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1");
// lambdaWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1");
// 加入组员的筛选
List<String> clerkIdList = playClerkGroupInfoService.getValidClerkIdList(SecurityUtils.getLoginUser(), null);
lambdaWrapper.in(PlayClerkUserInfoEntity::getId, clerkIdList);

View File

@@ -661,6 +661,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
MPJLambdaWrapper<PlayOrderInfoEntity> lambdaQueryWrapper = getCommonOrderQueryVo(
ConvertUtil.entityToVo(vo, PlayOrderInfoEntity.class));
lambdaQueryWrapper.in(PlayOrderInfoEntity::getPlaceType, "0", "1", "2");
if (StringUtils.isNotBlank(vo.getGroupId())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getGroupId, vo.getGroupId());
}