fix: 结算
This commit is contained in:
@@ -79,9 +79,9 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
if (SecurityUtils.isLogin()) {
|
// if (SecurityUtils.isLogin()) {
|
||||||
return SecurityUtils.getUserId();
|
// return SecurityUtils.getUserId();
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.starry.admin.common.task;
|
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.PlayClerkUserInfoEntity;
|
||||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity;
|
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity;
|
||||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity;
|
import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity;
|
||||||
@@ -18,6 +20,8 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,11 +30,10 @@ import org.springframework.stereotype.Component;
|
|||||||
* @author admin
|
* @author admin
|
||||||
* @since 2024/5/28 下午2:42
|
* @since 2024/5/28 下午2:42
|
||||||
**/
|
**/
|
||||||
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
public class ClerkWagesSettlementTask {
|
public class ClerkWagesSettlementTask {
|
||||||
|
|
||||||
@Resource
|
|
||||||
ISysTenantService sysTenantService;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IPlayClerkUserInfoService clerkUserInfoService;
|
private IPlayClerkUserInfoService clerkUserInfoService;
|
||||||
@@ -47,31 +50,33 @@ public class ClerkWagesSettlementTask {
|
|||||||
/**
|
/**
|
||||||
* 每分钟查询未结算订单 如果订单完成时间超过24小时,可进行结算,生成工资
|
* 每分钟查询未结算订单 如果订单完成时间超过24小时,可进行结算,生成工资
|
||||||
*/
|
*/
|
||||||
// @Scheduled(cron = "0 0/1 * * * ?")
|
@Scheduled(cron = "0 0/10 * * * ?")
|
||||||
public void dailyRanking() {
|
public void dailyRanking() {
|
||||||
// 1、查询所有的租户信息
|
// 1、查询所有的租户信息
|
||||||
List<SysTenantEntity> tenantEntities = sysTenantService.listAll();
|
List<PlayClerkUserInfoEntity> clerkUserReturnVos = clerkUserInfoService.listAll();
|
||||||
for (SysTenantEntity tenantEntity : tenantEntities) {
|
// 生成每个人的工资信息
|
||||||
SecurityUtils.setTenantId(tenantEntity.getTenantId());
|
for (PlayClerkUserInfoEntity clerkUserInfo : clerkUserReturnVos) {
|
||||||
List<PlayClerkUserInfoEntity> clerkUserReturnVos = clerkUserInfoService.listAll();
|
try {
|
||||||
// 生成每个人的工资信息
|
|
||||||
for (PlayClerkUserInfoEntity clerkUserInfo : clerkUserReturnVos) {
|
|
||||||
updateClerkWagesInfo(clerkUserInfo.getId());
|
updateClerkWagesInfo(clerkUserInfo.getId());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("订单结算异常:" + e.getMessage());
|
||||||
|
log.error(e.getMessage(),e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 活动24小时前完成的订单,对订单进行结算
|
* 活动24小时前完成的订单,对订单进行结算
|
||||||
*
|
*
|
||||||
* @param clerkId
|
* @param clerkId 店员ID
|
||||||
* 店员ID
|
|
||||||
*/
|
*/
|
||||||
public void updateClerkWagesInfo(String clerkId) {
|
public void updateClerkWagesInfo(String clerkId) {
|
||||||
// 获得24小时前完成,并且未结算的订单
|
// 获得24小时前完成,并且未结算的订单
|
||||||
LocalDateTime lastTime = LocalDateTime.now().minusDays(1);
|
LocalDateTime lastTime = LocalDateTime.now().minusDays(1);
|
||||||
// 查询当前店员上次结算工资到现在的订单
|
// 查询当前店员上次结算工资到现在的订单
|
||||||
List<PlayOrderInfoEntity> orderInfoEntities = playOrderInfoService.listByEndTime(clerkId, lastTime);
|
List<PlayOrderInfoEntity> orderInfoEntities = playOrderInfoService.listByEndTime(clerkId, lastTime);
|
||||||
|
if(CollectionUtils.isEmpty(orderInfoEntities)) return;
|
||||||
PlayClerkWagesInfoEntity entity = playClerkWagesInfoService.getLastSettlement(clerkId);
|
PlayClerkWagesInfoEntity entity = playClerkWagesInfoService.getLastSettlement(clerkId);
|
||||||
// 更新订单信息
|
// 更新订单信息
|
||||||
updateClerkWagesInfo(clerkId, entity == null ? IdUtils.getUuid() : entity.getId(), orderInfoEntities);
|
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) {
|
public void updateClerkWagesInfo(String clerkId, String wagesId, List<PlayOrderInfoEntity> orderInfoEntities) {
|
||||||
// 修改订单状态并且新增订单结算详情
|
// 修改订单状态并且新增订单结算详情
|
||||||
@@ -89,7 +93,10 @@ public class ClerkWagesSettlementTask {
|
|||||||
// 修改订单状态
|
// 修改订单状态
|
||||||
orderInfo.setOrderSettlementState("1");
|
orderInfo.setOrderSettlementState("1");
|
||||||
orderInfo.setOrderSettlementTime(LocalDateTime.now());
|
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
|
PlayClerkWagesDetailsInfoEntity wagesDetailsInfo = playClerkWagesDetailsInfoService
|
||||||
.selectByOrderId(orderInfo.getId());
|
.selectByOrderId(orderInfo.getId());
|
||||||
@@ -103,6 +110,7 @@ public class ClerkWagesSettlementTask {
|
|||||||
wagesDetailsInfo.setOrderId(orderInfo.getId());
|
wagesDetailsInfo.setOrderId(orderInfo.getId());
|
||||||
wagesDetailsInfo.setOrderNo(orderInfo.getOrderNo());
|
wagesDetailsInfo.setOrderNo(orderInfo.getOrderNo());
|
||||||
wagesDetailsInfo.setFinalAmount(orderInfo.getFinalAmount());
|
wagesDetailsInfo.setFinalAmount(orderInfo.getFinalAmount());
|
||||||
|
wagesDetailsInfo.setTenantId(orderInfo.getTenantId());
|
||||||
wagesDetailsInfo.setEstimatedRevenue(orderInfo.getEstimatedRevenue());
|
wagesDetailsInfo.setEstimatedRevenue(orderInfo.getEstimatedRevenue());
|
||||||
wagesDetailsInfo.setEndOrderTime(orderInfo.getOrderEndTime());
|
wagesDetailsInfo.setEndOrderTime(orderInfo.getOrderEndTime());
|
||||||
playClerkWagesDetailsInfoService.saveOrUpdate(wagesDetailsInfo);
|
playClerkWagesDetailsInfoService.saveOrUpdate(wagesDetailsInfo);
|
||||||
@@ -138,6 +146,7 @@ public class ClerkWagesSettlementTask {
|
|||||||
wagesInfo.setFinalAmount(finalAmount);
|
wagesInfo.setFinalAmount(finalAmount);
|
||||||
wagesInfo.setOrderContinueNumber(orderContinueNumber);
|
wagesInfo.setOrderContinueNumber(orderContinueNumber);
|
||||||
wagesInfo.setOrderContinueMoney(orderContinueMoney);
|
wagesInfo.setOrderContinueMoney(orderContinueMoney);
|
||||||
|
wagesInfo.setTenantId(orderInfoEntities.get(0).getTenantId());
|
||||||
wagesInfo.setOrdersExpiredNumber(ordersExpiredNumber);
|
wagesInfo.setOrdersExpiredNumber(ordersExpiredNumber);
|
||||||
wagesInfo.setSettlementDate(LocalDate.now());
|
wagesInfo.setSettlementDate(LocalDate.now());
|
||||||
wagesInfo.setEstimatedRevenue(estimatedRevenue);
|
wagesInfo.setEstimatedRevenue(estimatedRevenue);
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class PlayClerkWagesInfoServiceImpl extends ServiceImpl<PlayClerkWagesInf
|
|||||||
public PlayClerkWagesInfoEntity selectCurrentPeriodWagesByClerkId(String clerkId) {
|
public PlayClerkWagesInfoEntity selectCurrentPeriodWagesByClerkId(String clerkId) {
|
||||||
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
|
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
|
||||||
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "0");
|
// lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "0");
|
||||||
return this.baseMapper.selectOne(lambdaQueryWrapper);
|
return this.baseMapper.selectOne(lambdaQueryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ public class PlayClerkWagesInfoServiceImpl extends ServiceImpl<PlayClerkWagesInf
|
|||||||
public List<PlayClerkWagesInfoEntity> selectHistoricalWagesByClerkId(String clerkId) {
|
public List<PlayClerkWagesInfoEntity> selectHistoricalWagesByClerkId(String clerkId) {
|
||||||
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
|
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
|
||||||
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1");
|
// lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1");
|
||||||
return this.baseMapper.selectList(lambdaQueryWrapper);
|
return this.baseMapper.selectList(lambdaQueryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ public class PlayClerkWagesInfoServiceImpl extends ServiceImpl<PlayClerkWagesInf
|
|||||||
public PlayClerkWagesInfoEntity getLastSettlement(String clerkId) {
|
public PlayClerkWagesInfoEntity getLastSettlement(String clerkId) {
|
||||||
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
|
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
|
||||||
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "0");
|
// lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "0");
|
||||||
lambdaQueryWrapper.orderByDesc(PlayClerkWagesInfoEntity::getEndCountDate);
|
lambdaQueryWrapper.orderByDesc(PlayClerkWagesInfoEntity::getEndCountDate);
|
||||||
return this.baseMapper.selectOne(lambdaQueryWrapper);
|
return this.baseMapper.selectOne(lambdaQueryWrapper);
|
||||||
}
|
}
|
||||||
@@ -67,11 +67,11 @@ public class PlayClerkWagesInfoServiceImpl extends ServiceImpl<PlayClerkWagesInf
|
|||||||
public LocalDate getLastSettlementTime(String clerkId) {
|
public LocalDate getLastSettlementTime(String clerkId) {
|
||||||
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PlayClerkWagesInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
|
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId);
|
||||||
lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1");
|
// lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1");
|
||||||
lambdaQueryWrapper.orderByDesc(PlayClerkWagesInfoEntity::getEndCountDate);
|
lambdaQueryWrapper.orderByDesc(PlayClerkWagesInfoEntity::getEndCountDate);
|
||||||
PlayClerkWagesInfoEntity entity = this.baseMapper.selectOne(lambdaQueryWrapper);
|
PlayClerkWagesInfoEntity entity = this.baseMapper.selectOne(lambdaQueryWrapper);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
return LocalDate.of(2000, 1, 1);
|
return LocalDate.of(2025, 1, 1);
|
||||||
}
|
}
|
||||||
return entity.getEndCountDate();
|
return entity.getEndCountDate();
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@ public class PlayClerkWagesInfoServiceImpl extends ServiceImpl<PlayClerkWagesInf
|
|||||||
lambdaWrapper.eq(PlayClerkWagesInfoEntity::getSettlementDate,
|
lambdaWrapper.eq(PlayClerkWagesInfoEntity::getSettlementDate,
|
||||||
LocalDate.parse(vo.getSettlementDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
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);
|
List<String> clerkIdList = playClerkGroupInfoService.getValidClerkIdList(SecurityUtils.getLoginUser(), null);
|
||||||
lambdaWrapper.in(PlayClerkUserInfoEntity::getId, clerkIdList);
|
lambdaWrapper.in(PlayClerkUserInfoEntity::getId, clerkIdList);
|
||||||
|
|||||||
@@ -661,6 +661,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
|||||||
|
|
||||||
MPJLambdaWrapper<PlayOrderInfoEntity> lambdaQueryWrapper = getCommonOrderQueryVo(
|
MPJLambdaWrapper<PlayOrderInfoEntity> lambdaQueryWrapper = getCommonOrderQueryVo(
|
||||||
ConvertUtil.entityToVo(vo, PlayOrderInfoEntity.class));
|
ConvertUtil.entityToVo(vo, PlayOrderInfoEntity.class));
|
||||||
|
lambdaQueryWrapper.in(PlayOrderInfoEntity::getPlaceType, "0", "1", "2");
|
||||||
if (StringUtils.isNotBlank(vo.getGroupId())) {
|
if (StringUtils.isNotBlank(vo.getGroupId())) {
|
||||||
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getGroupId, vo.getGroupId());
|
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getGroupId, vo.getGroupId());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user