Merge #109 into master from cc_20260420_export

feat:数量不一致

* cc_20260420_export: (7 commits squashed)

  - feat:提示修改

  - feat:提示修改

  - feat:导出调整

  - feat:管理员查询所有 非管理员权限查询

  - feat:管理员查询所有 非管理员权限查询

  - feat:fix

  - feat:数量不一致

Signed-off-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/109
This commit is contained in:
正新
2026-04-24 09:44:31 +00:00
parent d885635728
commit 7c5a2c858d
28 changed files with 756 additions and 69 deletions

View File

@@ -47,9 +47,9 @@ public interface AdjustmentOrderService {
* @param request 分页查询请求
* @return 分页结果
*/
PageInfo<AdjustmentOrderResponse> page(AdjustmentOrderPageRequest request);
PageInfo<AdjustmentOrderResponse> page(AdjustmentOrderPageRequest request,String userId);
PageInfo<AdjustmentOrderResponse> getSpecialStatusData(AdjustmentSpecialPageRequest request);
PageInfo<AdjustmentOrderResponse> getSpecialStatusData(AdjustmentSpecialPageRequest request,LoginUserInfo userInfo);
/**
@@ -80,7 +80,12 @@ public interface AdjustmentOrderService {
*/
Boolean confirmRecharge(ConfirmRechargeRequest request);
/**
* 分页查询总数
* @param request 分页查询请求
* @return 记录总数
*/
Long pageCount(AdjustmentOrderPageRequest request,LoginUserInfo user);
}

View File

@@ -2,12 +2,10 @@ package com.cool.store.service;
import com.cool.store.dto.pre.fry.ApplyManagementDTO;
import com.cool.store.entity.ImportTaskDO;
import com.cool.store.request.AllPointPageRequest;
import com.cool.store.request.FranchiseReportRequest;
import com.cool.store.request.*;
import com.cool.store.request.order.PCStoreOrderQueryRequest;
import com.cool.store.request.tp.TpScoreJournalQueryRequest;
import com.cool.store.request.visit.VisitRecordQueryRequest;
import com.cool.store.request.PointPageRequest;
import com.cool.store.request.visit.VisitRecordQueryRequest;
import com.cool.store.response.BranchShopResponse;
import com.cool.store.response.FranchiseReportResponse;
@@ -60,4 +58,25 @@ public interface ExportRealizeService {
* @param importTaskDO 导出任务
*/
void exportTpScoreJournal(TpScoreJournalQueryRequest request, ImportTaskDO importTaskDO);
/**
* 费用调整单导出
* @param request 查询Request
* @param importTaskDO 导出任务
*/
void exportAdjustmentOrder(AdjustmentOrderPageRequest request, ImportTaskDO importTaskDO);
/**
* 费用单导出
* @param request 查询Request
* @param importTaskDO 导出任务
*/
void exportExpenseOrder(AdjustmentOrderPageRequest request, ImportTaskDO importTaskDO);
/**
* 分账单导出
* @param request 查询Request
* @param importTaskDO 导出任务
*/
void exportSplitOrder(SplitOrderPageRequest request, ImportTaskDO importTaskDO);
}

View File

@@ -94,4 +94,28 @@ public interface ExportService {
* @return 记录总数
*/
Long exportTpScoreJournal(TpScoreJournalQueryRequest request, LoginUserInfo user);
/**
* 费用调整单导出
* @param request 查询Request
* @param user 当前用户
* @return 记录总数
*/
Long exportAdjustmentOrder(AdjustmentOrderPageRequest request, LoginUserInfo user);
/**
* 费用单导出
* @param request 查询Request
* @param user 当前用户
* @return 记录总数
*/
Long exportExpenseOrder(AdjustmentOrderPageRequest request, LoginUserInfo user);
/**
* 分账单导出
* @param request 查询Request
* @param user 当前用户
* @return 记录总数
*/
Long exportSplitOrder(SplitOrderPageRequest request, LoginUserInfo user);
}

View File

@@ -76,4 +76,11 @@ public interface SplitOrderService {
* @param walletTradeDO
*/
Boolean updateWalletTrade(WalletTradeDO walletTradeDO);
/**
* 分页查询总数
* @param request 分页查询请求
* @return 记录总数
*/
Long pageCount(SplitOrderPageRequest request);
}

View File

@@ -19,9 +19,11 @@ import com.cool.store.request.wallet.ConfirmRechargeRequest;
import com.cool.store.request.wallet.OutStoreIdRequest;
import com.cool.store.response.AdjustmentOrderResponse;
import com.cool.store.service.AdjustmentOrderService;
import com.cool.store.service.UserAuthMappingService;
import com.cool.store.service.dict.impl.DictService;
import com.cool.store.service.wallet.WalletApiService;
import com.cool.store.utils.GenerateNoUtil;
import com.cool.store.vo.login.UserLoginVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
@@ -175,12 +177,22 @@ public class AdjustmentOrderServiceImpl implements AdjustmentOrderService {
return buildResponse(adjustmentOrder);
}
@Resource
UserAuthMappingService userAuthMappingService;
@Resource
EnterpriseUserRoleDao enterpriseUserRoleDao;
@Override
public PageInfo<AdjustmentOrderResponse> page(AdjustmentOrderPageRequest request) {
public PageInfo<AdjustmentOrderResponse> page(AdjustmentOrderPageRequest request, String userId) {
List<String> regionIds = new ArrayList<>();
Boolean isAdmin = enterpriseUserRoleDao.checkIsAdmin(userId);
//非管理员根据管辖权限查询 管理员查所有
if (StringUtils.isNotEmpty(userId)&&!isAdmin){
regionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(userId);
request.setRegionIds(regionIds);
}
PageHelper.startPage(request.getPageNum(), request.getPageSize());
List<AdjustmentOrderResponse> list = adjustmentOrderDAO.pageQuery(request);
dictService.fillDictField(list);
// 批量查询交易流水号
if (CollectionUtils.isNotEmpty(list)) {
@@ -224,7 +236,7 @@ public class AdjustmentOrderServiceImpl implements AdjustmentOrderService {
}
@Override
public PageInfo<AdjustmentOrderResponse> getSpecialStatusData(AdjustmentSpecialPageRequest request) {
public PageInfo<AdjustmentOrderResponse> getSpecialStatusData(AdjustmentSpecialPageRequest request,LoginUserInfo userInfo) {
AdjustmentOrderPageRequest convert = AdjustmentSpecialPageRequest.convert(request);
//只查询指定的状态
List<Integer> statusList = convert.getStatusList();
@@ -235,7 +247,7 @@ public class AdjustmentOrderServiceImpl implements AdjustmentOrderService {
statusList.addAll(list);
}
convert.setStatusList(statusList);
return page(convert);
return page(convert,userInfo.getUserId());
}
@@ -404,6 +416,18 @@ public class AdjustmentOrderServiceImpl implements AdjustmentOrderService {
return Boolean.TRUE;
}
@Override
public Long pageCount(AdjustmentOrderPageRequest request,LoginUserInfo user) {
List<String> regionIds = new ArrayList<>();
Boolean isAdmin = enterpriseUserRoleDao.checkIsAdmin(user.getUserId());
//非管理员根据管辖权限查询 管理员查所有
if (StringUtils.isNotEmpty(user.getUserId())&&!isAdmin){
regionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(user.getUserId());
request.setRegionIds(regionIds);
}
return adjustmentOrderDAO.pageCount(request);
}
/**
* 构建响应对象
*/

View File

@@ -13,16 +13,12 @@ import com.cool.store.enums.*;
import com.cool.store.enums.point.*;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.*;
import com.cool.store.request.AllPointPageRequest;
import com.cool.store.request.FranchiseReportRequest;
import com.cool.store.request.*;
import com.cool.store.request.order.PCStoreOrderQueryRequest;
import com.cool.store.request.tp.TpScoreJournalQueryRequest;
import com.cool.store.request.visit.VisitRecordQueryRequest;
import com.cool.store.request.PointPageRequest;
import com.cool.store.request.visit.VisitRecordQueryRequest;
import com.cool.store.response.BranchShopResponse;
import com.cool.store.response.FranchiseReportResponse;
import com.cool.store.response.ShopReportResponse;
import com.cool.store.response.*;
import com.cool.store.service.*;
import com.cool.store.service.dict.impl.DictService;
import com.cool.store.service.order.MiniStoreOrderService;
@@ -48,6 +44,7 @@ import com.cool.store.vo.visit.VisitRecordListVO;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
@@ -139,6 +136,10 @@ public class ExportRealizeServiceImpl implements ExportRealizeService {
private TpScoreJournalService tpScoreJournalService;
@Resource
private DictService dictService;
@Resource
AdjustmentOrderService adjustmentOrderService;
@Resource
SplitOrderService splitOrderService;
@Override
@Async
@@ -944,5 +945,88 @@ public class ExportRealizeServiceImpl implements ExportRealizeService {
redisUtilPool.delKey(RedisConstant.TP_SCORE_JOURNAL_EXPORT_LOCK);
}
}
@Override
@Async("generalThreadPool")
public void exportAdjustmentOrder(AdjustmentOrderPageRequest request, ImportTaskDO importTaskDO) {
String url = "";
try {
url = easyExcelUtil.exportExcelInBatches(AdjustmentOrderResponse.class,
(pageNum, pageSize) -> {
request.setPageNum(pageNum);
request.setPageSize(pageSize);
request.setExpenseSheetType(2);
PageInfo<AdjustmentOrderResponse> pageInfo = adjustmentOrderService.page(request,importTaskDO.getCreateUserId());
List<AdjustmentOrderResponse> list = pageInfo.getList();
dictService.fillDictField(list);
return list;
},
FileTypeEnum.ADJUSTMENT_ORDER_EXPORT.getDesc(),
FileTypeEnum.ADJUSTMENT_ORDER_EXPORT.getDesc());
importTaskDO.setStatus(ImportStatusEnum.success.getCode());
} catch (Exception e) {
log.error("费用调整单导出失败,{}", e);
importTaskDO.setStatus(ImportStatusEnum.fail.getCode());
} finally {
importTaskDO.setFileUrl(url);
importTaskMapper.update(eid, importTaskDO);
redisUtilPool.delKey(RedisConstant.ADJUSTMENT_ORDER_EXPORT_LOCK);
}
}
@Override
@Async("generalThreadPool")
public void exportExpenseOrder(AdjustmentOrderPageRequest request, ImportTaskDO importTaskDO) {
String url = "";
try {
url = easyExcelUtil.exportExcelInBatches(AdjustmentOrderResponse.class,
(pageNum, pageSize) -> {
request.setPageNum(pageNum);
request.setPageSize(pageSize);
request.setExpenseSheetType(1);
PageInfo<AdjustmentOrderResponse> pageInfo = adjustmentOrderService.page(request,importTaskDO.getCreateUserId());
List<AdjustmentOrderResponse> list = pageInfo.getList();
dictService.fillDictField(list);
return list;
},
FileTypeEnum.EXPENSE_ORDER_EXPORT.getDesc(),
FileTypeEnum.EXPENSE_ORDER_EXPORT.getDesc());
importTaskDO.setStatus(ImportStatusEnum.success.getCode());
} catch (Exception e) {
log.error("费用单导出失败", e);
importTaskDO.setStatus(ImportStatusEnum.fail.getCode());
} finally {
importTaskDO.setFileUrl(url);
importTaskMapper.update(eid, importTaskDO);
redisUtilPool.delKey(RedisConstant.EXPENSE_ORDER_EXPORT_LOCK);
}
}
@Override
@Async("generalThreadPool")
public void exportSplitOrder(SplitOrderPageRequest request, ImportTaskDO importTaskDO) {
String url = "";
try {
url = easyExcelUtil.exportExcelInBatches(SplitOrderResponse.class,
(pageNum, pageSize) -> {
request.setPageNum(pageNum);
request.setPageSize(pageSize);
PageInfo<SplitOrderResponse> pageInfo = splitOrderService.page(request);
List<SplitOrderResponse> list = pageInfo.getList();
dictService.fillDictField(list);
return list;
},
FileTypeEnum.SPLIT_ORDER_EXPORT.getDesc(),
FileTypeEnum.SPLIT_ORDER_EXPORT.getDesc());
importTaskDO.setStatus(ImportStatusEnum.success.getCode());
} catch (Exception e) {
log.error("分账单导出失败", e);
importTaskDO.setStatus(ImportStatusEnum.fail.getCode());
} finally {
importTaskDO.setFileUrl(url);
importTaskMapper.update(eid, importTaskDO);
redisUtilPool.delKey(RedisConstant.SPLIT_ORDER_EXPORT_LOCK);
}
}
}

View File

@@ -10,9 +10,6 @@ import com.cool.store.dao.PreFryQualificationApplyDAO;
import com.cool.store.dao.ShopInfoDAO;
import com.cool.store.dao.order.StoreOrderDAO;
import com.cool.store.dao.visit.VisitRecordDAO;
import com.cool.store.dto.Preparation.PreparationDTO;
import com.cool.store.dto.Preparation.ScheduleDTO;
import com.cool.store.dao.visit.VisitRecordDAO;
import com.cool.store.dto.pre.fry.ApplyManagementDTO;
import com.cool.store.dto.pre.fry.ApplyManagementQueryDTO;
import com.cool.store.entity.*;
@@ -41,7 +38,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -93,6 +89,10 @@ public class ExportServiceImpl implements ExportService {
private PointService pointService;
@Resource
private TpScoreJournalService tpScoreJournalService;
@Resource
private AdjustmentOrderService adjustmentOrderService;
@Resource
private SplitOrderService splitOrderService;
@@ -380,5 +380,86 @@ public class ExportServiceImpl implements ExportService {
return count;
}
@Override
public Long exportAdjustmentOrder(AdjustmentOrderPageRequest request, LoginUserInfo user) {
Long count = adjustmentOrderService.pageCount(request,user);
if (count.intValue() > CommonConstants.MAX_EXPORT_SIZE_PRO) {
throw new ServiceException(ErrorCodeEnum.EXPORT_LIMIT_100000);
}
if (Long.valueOf(0).equals(count)) {
log.error("导出数据为空");
return 0L;
}
boolean lock = redisUtilPool.setNxExpire(RedisConstant.ADJUSTMENT_ORDER_EXPORT_LOCK, RedisConstant.ADJUSTMENT_ORDER_EXPORT_LOCK, 30 * 60 * 1000);
if (!lock) {
throw new ServiceException(ErrorCodeEnum.EXPORT_TASK_LIMIT);
}
ImportTaskDO importTaskDO = new ImportTaskDO();
importTaskDO.setStatus(ImportStatusEnum.Ongoing.getCode());
importTaskDO.setFileName(FileTypeEnum.ADJUSTMENT_ORDER_EXPORT.getDesc() + DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1, new Date()));
importTaskDO.setIsImport(Boolean.FALSE);
importTaskDO.setFileType(FileTypeEnum.ADJUSTMENT_ORDER_EXPORT.getFileType());
importTaskDO.setCreateUserId(user.getUserId());
importTaskDO.setCreateTime(new Date().getTime());
importTaskDO.setCreateName(user.getName());
importTaskMapper.insert(eid, importTaskDO);
exportRealizeService.exportAdjustmentOrder(request, importTaskDO);
return count;
}
@Override
public Long exportExpenseOrder(AdjustmentOrderPageRequest request, LoginUserInfo user) {
Long count = adjustmentOrderService.pageCount(request,user);
if (count.intValue() > CommonConstants.MAX_EXPORT_SIZE_PRO) {
throw new ServiceException(ErrorCodeEnum.EXPORT_LIMIT_100000);
}
if (Long.valueOf(0).equals(count)) {
log.error("导出数据为空");
return 0L;
}
boolean lock = redisUtilPool.setNxExpire(RedisConstant.EXPENSE_ORDER_EXPORT_LOCK, RedisConstant.EXPENSE_ORDER_EXPORT_LOCK, 30 * 60 * 1000);
if (!lock) {
throw new ServiceException(ErrorCodeEnum.EXPORT_TASK_LIMIT);
}
ImportTaskDO importTaskDO = new ImportTaskDO();
importTaskDO.setStatus(ImportStatusEnum.Ongoing.getCode());
importTaskDO.setFileName(FileTypeEnum.EXPENSE_ORDER_EXPORT.getDesc() + DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1, new Date()));
importTaskDO.setIsImport(Boolean.FALSE);
importTaskDO.setFileType(FileTypeEnum.EXPENSE_ORDER_EXPORT.getFileType());
importTaskDO.setCreateUserId(user.getUserId());
importTaskDO.setCreateTime(new Date().getTime());
importTaskDO.setCreateName(user.getName());
importTaskMapper.insert(eid, importTaskDO);
exportRealizeService.exportExpenseOrder(request, importTaskDO);
return count;
}
@Override
public Long exportSplitOrder(SplitOrderPageRequest request, LoginUserInfo user) {
Long count = splitOrderService.pageCount(request);
if (count.intValue() > CommonConstants.MAX_EXPORT_SIZE_PRO) {
throw new ServiceException(ErrorCodeEnum.EXPORT_LIMIT_100000);
}
if (Long.valueOf(0).equals(count)) {
log.error("导出数据为空");
return 0L;
}
boolean lock = redisUtilPool.setNxExpire(RedisConstant.SPLIT_ORDER_EXPORT_LOCK, RedisConstant.SPLIT_ORDER_EXPORT_LOCK, 30 * 60 * 1000);
if (!lock) {
throw new ServiceException(ErrorCodeEnum.EXPORT_TASK_LIMIT);
}
ImportTaskDO importTaskDO = new ImportTaskDO();
importTaskDO.setStatus(ImportStatusEnum.Ongoing.getCode());
importTaskDO.setFileName(FileTypeEnum.SPLIT_ORDER_EXPORT.getDesc() + DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1, new Date()));
importTaskDO.setIsImport(Boolean.FALSE);
importTaskDO.setFileType(FileTypeEnum.SPLIT_ORDER_EXPORT.getFileType());
importTaskDO.setCreateUserId(user.getUserId());
importTaskDO.setCreateTime(new Date().getTime());
importTaskDO.setCreateName(user.getName());
importTaskMapper.insert(eid, importTaskDO);
exportRealizeService.exportSplitOrder(request, importTaskDO);
return count;
}
}

View File

@@ -318,6 +318,11 @@ public class SplitOrderServiceImpl implements SplitOrderService {
return null;
}
@Override
public Long pageCount(SplitOrderPageRequest request) {
return splitOrderDAO.pageCount(request);
}
/**
* 构建响应对象

View File

@@ -63,7 +63,7 @@ public class SyncMainSysServerImpl implements SyncMainSysServer {
private WalletApiService walletApiService;
@Override
@Async
@Async("generalThreadPool")
public void syncStore(Long shopId) {
log.info("开始同步门店 syncStore:{}", shopId);
addStore(shopId);
@@ -133,7 +133,7 @@ public class SyncMainSysServerImpl implements SyncMainSysServer {
String endMillis = String.valueOf(endTime.toSecondOfDay() * 1000L);
storeMasterDTO.setBusinessHours(startMillis + "," + endMillis);
} catch (Exception e) {
log.info("时间转换异常:{},shopId:{},time:{}", e.getMessage(), shopId.toString(), buildInformationDO.getBusinessHours());
log.info("时间转换异常 shopId:{},time:{}", shopId.toString(), buildInformationDO.getBusinessHours(),e);
}
}
StoreMasterDTO.SettlerInfo settlerInfo = new StoreMasterDTO.SettlerInfo();
@@ -179,7 +179,7 @@ public class SyncMainSysServerImpl implements SyncMainSysServer {
storeMasterDTO.setMonthlyRent(monthlyRent);
}
} catch (Exception e) {
log.info("月租转换异常:{},shopId:{},time:{}", e.getMessage(), shopId.toString(), pointDetail.getMonthRent());
log.error("月租转换异常 shopId:{},time:{}", shopId.toString(), pointDetail.getMonthRent(),e);
}
}
}
@@ -212,7 +212,7 @@ public class SyncMainSysServerImpl implements SyncMainSysServer {
// 推送营帐通
pushStoreToYzt(shopInfo, lineInfoDO);
} catch (Exception e) {
log.info("asdStore_error:{},shopId:{}", e.getMessage(), shopId.toString());
log.error("asdStore_error: shopId:{}", shopId.toString(), e);
}
}