fix: 结算
This commit is contained in:
@@ -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 "";
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user