Compare commits
13
Commits
5c7dd646a6
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5307f30fd8 | ||
|
|
f2d53786c2 | ||
|
|
712f295d57 | ||
|
|
e39496cca1 | ||
|
|
f48d94227b | ||
|
|
9be9985905 | ||
|
|
950d7999cb | ||
|
|
2527c5e765 | ||
|
|
ef4b27f560 | ||
|
|
3500408271 | ||
|
|
1ec8f5ad62 | ||
|
|
515b231718 | ||
|
|
fcf1d0f5f4 |
+2
@@ -87,4 +87,6 @@ public class StClientMemberTransactionRecordDTO {
|
||||
|
||||
@Schema(title ="餐次")
|
||||
private String dinnerType;
|
||||
|
||||
private List<String> canteenIdList;
|
||||
}
|
||||
|
||||
+4
@@ -5,6 +5,8 @@ package org.jeecg.payment.dto;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.Data;
|
||||
import org.jeecg.common.system.vo.ScreenVo;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -46,5 +48,7 @@ public class StExceptionRecordDTO {
|
||||
private String startDate;
|
||||
|
||||
private String endDate;
|
||||
private String canteenId;
|
||||
|
||||
List<String> canteenIdList;
|
||||
}
|
||||
|
||||
+4
-5
@@ -573,11 +573,10 @@
|
||||
SELECT
|
||||
member_id,
|
||||
top_up_balance,
|
||||
reward_balance,
|
||||
(top_up_balance + reward_balance) AS balance
|
||||
FROM
|
||||
st_client_member_balance
|
||||
WHERE
|
||||
reward_balance
|
||||
FROM st_client_member_balance
|
||||
WHERE member_id IN (SELECT id FROM sys_user_sub WHERE update_time > FROM_UNIXTIME(#{timestamp}/1000))
|
||||
OR
|
||||
create_time > FROM_UNIXTIME(#{timestamp} / 1000)
|
||||
OR update_time > FROM_UNIXTIME(#{timestamp} / 1000)
|
||||
OR last_consumption_time > FROM_UNIXTIME(#{timestamp} / 1000)
|
||||
|
||||
+44
-41
@@ -13,6 +13,7 @@ import org.apache.shiro.SecurityUtils;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.constant.CommonConstant;
|
||||
import org.jeecg.common.system.vo.LoginUser;
|
||||
import org.jeecg.common.system.vo.ScreenVo;
|
||||
import org.jeecg.payment.dto.StAmountSpentEveryMemberDTO;
|
||||
import org.jeecg.payment.dto.StClientMemberTransactionRecordDTO;
|
||||
import org.jeecg.payment.service.IStBbzxOrderInfoService;
|
||||
@@ -26,7 +27,9 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 订单 控制器
|
||||
@@ -91,7 +94,7 @@ public class StBbzxOrderInfoController {
|
||||
sumResult.setRestName("总计");
|
||||
sumResult.setEatDay(startDate+"~"+endDate);
|
||||
statisticsTheAmountSpentList.add(sumResult);
|
||||
String exportFields = "restName|食堂名称,customerPrice|消费总额(元),totalCount|消费人次,totalNum|消费人数," +
|
||||
String exportFields = "restName|食堂名称,totalCount|消费人次,customerPrice|消费总额(元),totalNum|消费人数," +
|
||||
"breakfastAmount|早餐消费金额(元),breakfastPerson|早餐消费次数,lunchAmount|午餐消费金额(元),lunchPerson|午餐消费次数,dinnerAmount|晚餐消费金额(元),dinnerPerson|晚餐消费次数" +
|
||||
",otherAmount|其他消费金额(元),otherPerson|其他消费次数,orderPrice|结算金额(元),eatDay|消费日期";
|
||||
ExcelUtils.export(response, "食堂消费统计", statisticsTheAmountSpentList, exportFields, "yyyy-MM-dd HH:mm",true);
|
||||
@@ -184,7 +187,7 @@ public class StBbzxOrderInfoController {
|
||||
sumResult.setDepartName(null);
|
||||
sumResult.setEatDay(startDate+"~"+endDate);
|
||||
statisticsTheAmountSpentList.add(sumResult);
|
||||
String exportFields = "realname|姓名,customerPrice|消费总额(元),workNo|工号,departName|部门,totalCount|消费次数,totalNum|消费天数," +
|
||||
String exportFields = "workNo|工号,realname|姓名,departName|部门,totalCount|消费次数,customerPrice|消费总额(元),restName|食堂名称,totalNum|消费天数," +
|
||||
"breakfastAmount|早餐消费金额(元),breakfastPerson|早餐消费次数,lunchAmount|午餐消费金额(元),lunchPerson|午餐消费次数,dinnerAmount|晚餐消费金额(元),dinnerPerson|晚餐消费次数" +
|
||||
",otherAmount|其他消费金额(元),otherPerson|其他消费次数,orderPrice|结算金额(元),eatDay|消费日期";
|
||||
ExcelUtils.export(response, "个人消费统计", statisticsTheAmountSpentList, exportFields, "yyyy-MM-dd HH:mm",true);
|
||||
@@ -292,20 +295,20 @@ public class StBbzxOrderInfoController {
|
||||
query.setStartTime(query.getDates().get(0));
|
||||
query.setEndTime(query.getDates().get(1));
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
//餐品总库只查询内置食堂
|
||||
if(sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_0) || sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_1)){
|
||||
// 后期分数据权限时在解开注释,此处管理员账户能看到所有食堂数据
|
||||
// ScreenVo screenVo = new ScreenVo();
|
||||
// screenVo.setId(CommonConstant.INLAY_CANTEEN_ID);
|
||||
// canteenIdList.add(screenVo);
|
||||
} else if (sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_4)) {
|
||||
//查询当前登录用户的食堂列表
|
||||
String canteenId = sysUser.getCanteenId();
|
||||
query.setCanteenId(canteenId);
|
||||
String canteenId = query.getCanteenId();
|
||||
List<String> canteenIdList = new ArrayList<>();
|
||||
if(StringUtils.isNotBlank(canteenId)){
|
||||
canteenIdList.add(canteenId);
|
||||
} else {
|
||||
return Result.OK();
|
||||
//权限校验
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<String> canteenIds = new ArrayList<>();
|
||||
if(sysUser != null){
|
||||
canteenIds = sysUser.getCanteenIdList().stream().map(ScreenVo::getId).collect(Collectors.toList());
|
||||
canteenIdList.addAll(canteenIds);
|
||||
}
|
||||
}
|
||||
query.setCanteenIdList(canteenIdList);
|
||||
query.setStatus(3);//(充值=102
|
||||
return Result.OK(iStClientMemberTransactionRecordService.pageQuery(query));
|
||||
}
|
||||
@@ -323,20 +326,20 @@ public class StBbzxOrderInfoController {
|
||||
query.setStartTime(split[0]);
|
||||
query.setEndTime(split[1]);
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
//餐品总库只查询内置食堂
|
||||
if(sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_0) || sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_1)){
|
||||
// 后期分数据权限时在解开注释,此处管理员账户能看到所有食堂数据
|
||||
// ScreenVo screenVo = new ScreenVo();
|
||||
// screenVo.setId(CommonConstant.INLAY_CANTEEN_ID);
|
||||
// canteenIdList.add(screenVo);
|
||||
} else if (sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_4)) {
|
||||
//查询当前登录用户的食堂列表
|
||||
String canteenId = sysUser.getCanteenId();
|
||||
query.setCanteenId(canteenId);
|
||||
String canteenId = query.getCanteenId();
|
||||
List<String> canteenIdList = new ArrayList<>();
|
||||
if(StringUtils.isNotBlank(canteenId)){
|
||||
canteenIdList.add(canteenId);
|
||||
} else {
|
||||
return Result.OK();
|
||||
//权限校验
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<String> canteenIds = new ArrayList<>();
|
||||
if(sysUser != null){
|
||||
canteenIds = sysUser.getCanteenIdList().stream().map(ScreenVo::getId).collect(Collectors.toList());
|
||||
canteenIdList.addAll(canteenIds);
|
||||
}
|
||||
}
|
||||
query.setCanteenIdList(canteenIdList);
|
||||
query.setStatus(3);//(充值=102
|
||||
List<StClientMemberTransactionRecordVO> statisticsCanteenBusiness = iStClientMemberTransactionRecordService.queryList(query);
|
||||
StClientMemberTransactionRecordVO sumResult = GenericSumUtil.sumList(statisticsCanteenBusiness, StClientMemberTransactionRecordVO.class);
|
||||
@@ -358,20 +361,20 @@ public class StBbzxOrderInfoController {
|
||||
query.setStartTime(split[0]);
|
||||
query.setEndTime(split[1]);
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
//餐品总库只查询内置食堂
|
||||
if(sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_0) || sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_1)){
|
||||
// 后期分数据权限时在解开注释,此处管理员账户能看到所有食堂数据
|
||||
// ScreenVo screenVo = new ScreenVo();
|
||||
// screenVo.setId(CommonConstant.INLAY_CANTEEN_ID);
|
||||
// canteenIdList.add(screenVo);
|
||||
} else if (sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_4)) {
|
||||
//查询当前登录用户的食堂列表
|
||||
String canteenId = sysUser.getCanteenId();
|
||||
query.setCanteenId(canteenId);
|
||||
String canteenId = query.getCanteenId();
|
||||
List<String> canteenIdList = new ArrayList<>();
|
||||
if(StringUtils.isNotBlank(canteenId)){
|
||||
canteenIdList.add(canteenId);
|
||||
} else {
|
||||
return;
|
||||
//权限校验
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<String> canteenIds = new ArrayList<>();
|
||||
if(sysUser != null){
|
||||
canteenIds = sysUser.getCanteenIdList().stream().map(ScreenVo::getId).collect(Collectors.toList());
|
||||
canteenIdList.addAll(canteenIds);
|
||||
}
|
||||
}
|
||||
query.setCanteenIdList(canteenIdList);
|
||||
query.setStatus(3);//(充值=102
|
||||
List<StClientMemberTransactionRecordVO> statisticsCanteenBusiness = iStClientMemberTransactionRecordService.queryList(query);
|
||||
if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(statisticsCanteenBusiness)){
|
||||
@@ -384,9 +387,9 @@ public class StBbzxOrderInfoController {
|
||||
// String exportFields = "serialNo|交易流水号,orderNo|交易单号,userName|姓名,phone|手机号,workNo|工号," +
|
||||
// "statusName|操作类型,transactionAmount|交易金额,paymentMethodName|结账方式,storedBalance|储值金额变动(元),rewardBalance|赠送金额变动(元),availableBalance|余额," +
|
||||
// "integralBalance|积分变动,createTime|交易时间,payTime|结账时间,updateStatusName|操作端,createOne|操作人";
|
||||
String exportFields = "serialNo|交易流水号,orderNo|交易单号,userName|姓名,phone|手机号,workNo|工号," +
|
||||
"transactionAmount|交易金额,statusName|操作类型,paymentMethodName|充值方式,availableBalance|现金余额," +
|
||||
"createTime|充值时间,createOne|操作人";
|
||||
String exportFields = "workNo|工号,userName|姓名,restName|充值食堂名称,transactionAmount|交易金额,statusName|操作类型," +
|
||||
"availableBalance|现金余额," +
|
||||
"createTime|充值时间,phone|手机号";
|
||||
ExcelUtils.export(response, "充值记录", statisticsCanteenBusiness, exportFields, "yyyy-MM-dd HH:mm",true);
|
||||
}
|
||||
|
||||
|
||||
+44
-32
@@ -12,6 +12,7 @@ import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.aspect.annotation.AutoLog;
|
||||
import org.jeecg.common.constant.CommonConstant;
|
||||
import org.jeecg.common.system.vo.LoginUser;
|
||||
import org.jeecg.common.system.vo.ScreenVo;
|
||||
import org.jeecg.payment.dto.StClientMemberChangeBalanceDTO;
|
||||
import org.jeecg.payment.dto.StClientMemberTopUpDTO;
|
||||
import org.jeecg.payment.dto.StClientMemberTransactionRecordDTO;
|
||||
@@ -436,9 +437,20 @@ public class StClientMemberBalanceController {
|
||||
query.setEndTime(query.getDates().get(1));
|
||||
}
|
||||
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String canteenId = sysUser.getCanteenId();
|
||||
query.setCanteenId(canteenId);
|
||||
String canteenId = query.getCanteenId();
|
||||
List<String> canteenIdList = new ArrayList<>();
|
||||
if(StringUtils.isNotBlank(canteenId)){
|
||||
canteenIdList.add(canteenId);
|
||||
} else {
|
||||
//权限校验
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<String> canteenIds = new ArrayList<>();
|
||||
if(sysUser != null){
|
||||
canteenIds = sysUser.getCanteenIdList().stream().map(ScreenVo::getId).collect(Collectors.toList());
|
||||
canteenIdList.addAll(canteenIds);
|
||||
}
|
||||
}
|
||||
query.setCanteenIdList(canteenIdList);
|
||||
//消费=101
|
||||
query.setStatus(101);
|
||||
return Result.OK(iStClientMemberTransactionRecordService.pageQueryNew(query));
|
||||
@@ -457,22 +469,22 @@ public class StClientMemberBalanceController {
|
||||
query.setStartTime(split[0]);
|
||||
query.setEndTime(split[1]);
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
//餐品总库只查询内置食堂
|
||||
if(sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_0) || sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_1)){
|
||||
// 后期分数据权限时在解开注释,此处管理员账户能看到所有食堂数据
|
||||
// ScreenVo screenVo = new ScreenVo();
|
||||
// screenVo.setId(CommonConstant.INLAY_CANTEEN_ID);
|
||||
// canteenIdList.add(screenVo);
|
||||
} else if (sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_4)) {
|
||||
//查询当前登录用户的食堂列表
|
||||
String canteenId = sysUser.getCanteenId();
|
||||
query.setCanteenId(canteenId);
|
||||
String canteenId = query.getCanteenId();
|
||||
List<String> canteenIdList = new ArrayList<>();
|
||||
if(StringUtils.isNotBlank(canteenId)){
|
||||
canteenIdList.add(canteenId);
|
||||
} else {
|
||||
return Result.OK();
|
||||
//权限校验
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<String> canteenIds = new ArrayList<>();
|
||||
if(sysUser != null){
|
||||
canteenIds = sysUser.getCanteenIdList().stream().map(ScreenVo::getId).collect(Collectors.toList());
|
||||
canteenIdList.addAll(canteenIds);
|
||||
}
|
||||
}
|
||||
query.setStatus(1);//消费=101
|
||||
List<StClientMemberTransactionRecordVO> statisticsCanteenBusiness = iStClientMemberTransactionRecordService.queryList(query);
|
||||
query.setCanteenIdList(canteenIdList);
|
||||
query.setStatus(101);
|
||||
List<StClientMemberTransactionRecordVO> statisticsCanteenBusiness = iStClientMemberTransactionRecordService.queryListNew(query);
|
||||
StClientMemberTransactionRecordVO sumResult = GenericSumUtil.sumList(statisticsCanteenBusiness, StClientMemberTransactionRecordVO.class);
|
||||
|
||||
StClientMemberTransactionRecordVO stClientMemberTransactionRecordVO = new StClientMemberTransactionRecordVO();//只汇总交易金额
|
||||
@@ -497,22 +509,22 @@ public class StClientMemberBalanceController {
|
||||
if(StringUtils.isNotBlank(query.getEndDate())){
|
||||
query.setEndTime(query.getEndDate());
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
//餐品总库只查询内置食堂
|
||||
if(sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_0) || sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_1)){
|
||||
// 后期分数据权限时在解开注释,此处管理员账户能看到所有食堂数据
|
||||
// ScreenVo screenVo = new ScreenVo();
|
||||
// screenVo.setId(CommonConstant.INLAY_CANTEEN_ID);
|
||||
// canteenIdList.add(screenVo);
|
||||
} else if (sysUser.getUserIdentity().equals(CommonConstant.USER_IDENTITY_4)) {
|
||||
//查询当前登录用户的食堂列表
|
||||
String canteenId = sysUser.getCanteenId();
|
||||
query.setCanteenId(canteenId);
|
||||
String canteenId = query.getCanteenId();
|
||||
List<String> canteenIdList = new ArrayList<>();
|
||||
if(StringUtils.isNotBlank(canteenId)){
|
||||
canteenIdList.add(canteenId);
|
||||
} else {
|
||||
return;
|
||||
//权限校验
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<String> canteenIds = new ArrayList<>();
|
||||
if(sysUser != null){
|
||||
canteenIds = sysUser.getCanteenIdList().stream().map(ScreenVo::getId).collect(Collectors.toList());
|
||||
canteenIdList.addAll(canteenIds);
|
||||
}
|
||||
}
|
||||
query.setStatus(1);//消费=101
|
||||
List<StClientMemberTransactionRecordVO> statisticsCanteenBusiness = iStClientMemberTransactionRecordService.queryList(query);
|
||||
query.setCanteenIdList(canteenIdList);
|
||||
query.setStatus(101);
|
||||
List<StClientMemberTransactionRecordVO> statisticsCanteenBusiness = iStClientMemberTransactionRecordService.queryListNew(query);
|
||||
|
||||
StClientMemberTransactionRecordVO sumResult = GenericSumUtil.sumList(statisticsCanteenBusiness, StClientMemberTransactionRecordVO.class);
|
||||
StClientMemberTransactionRecordVO stClientMemberTransactionRecordVO = new StClientMemberTransactionRecordVO();//只汇总交易金额
|
||||
@@ -525,7 +537,7 @@ public class StClientMemberBalanceController {
|
||||
// "payTime|结账时间,updateStatusName|操作端,createOne|操作人";
|
||||
// "dinnerType|餐次名称,restName|食堂名称,createTime|交易时间,payTime|结账时间,updateStatusName|操作端,createOne|操作人";
|
||||
|
||||
String exportFields = "userName|姓名,workNo|工号,dinnerType|餐次名称,transactionAmount|交易金额,availableBalance|剩余金额,createTime|上传时间,serialNo|交易流水号,orderNo|交易单号,phone|手机号码,cardCode|卡号," +
|
||||
String exportFields = "userName|姓名,workNo|工号,dinnerType|餐次名称,transactionAmount|交易金额,restName|食堂名称,availableBalance|剩余金额,createTime|上传时间,serialNo|交易流水号,orderNo|交易单号,phone|手机号码,cardCode|卡号," +
|
||||
"statusName|操作类型,paymentMethodName|结账方式,businessModelName|消费类型名称,storedBalance|储值金额变动(元)," +
|
||||
"updateStatusName|操作端,payTime|扣费时间";
|
||||
// "dinnerType|餐次名称,restName|食堂名称,,payTime|结账时间,updateStatusName|操作端,createOne|操作人";
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ public class StConsumptionExceptionRecordController {
|
||||
|
||||
List<StExceptionRecordVo> stExceptionRecordVos = stConsumptionExceptionRecordService.exceptionRecordPageExport(query);
|
||||
if(CollectionUtils.isNotEmpty(stExceptionRecordVos)){
|
||||
String exportFields = "userName|姓名,phone|手机号,workNo|工号,cardCode|卡号,spendMoney|本次扣费金额,payTime|消费时间,createTime|创建时间";
|
||||
String exportFields = "userName|姓名,phone|手机号,workNo|工号,cardCode|卡号,spendMoney|本次扣费金额,restName|食堂名称,payTime|消费时间,createTime|创建时间";
|
||||
ExcelUtils.export(response, "异常消费流水", stExceptionRecordVos, exportFields, "yyyy-MM-dd HH:mm",true);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-17
@@ -1,9 +1,12 @@
|
||||
package org.jeecg.payment.listUtils;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* * 订单编码码生成器,生成32位数字编码,
|
||||
@@ -107,26 +110,10 @@ public class OrderUtils {
|
||||
*/
|
||||
|
||||
public static String getOrderCodeV2() {
|
||||
return ORDER_CODE + getDateTimeV2();
|
||||
return getDateTime() + IdWorker.get32UUID();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成退货单号编码(调用方法)
|
||||
* @param userId 网站中该用户唯一ID 防止重复
|
||||
*/
|
||||
public static String getReturnCode(Integer userId) {
|
||||
return RETURN_ORDER + getCode(userId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成退款单号编码(调用方法)
|
||||
* @param userId 网站中该用户唯一ID 防止重复
|
||||
*/
|
||||
public static String getRefundCode(Integer userId) {
|
||||
return REFUND_ORDER + getCode(userId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ public interface StClientMemberTransactionRecordMapper extends BaseMapper<StClie
|
||||
|
||||
long pageListCount(@Param("vo") StClientMemberTransactionRecordDTO query);
|
||||
IPage<StClientMemberTransactionRecordVO> pageList2(Page<StClientMemberTransactionRecordVO> page, @Param("vo") StClientMemberTransactionRecordDTO query);
|
||||
|
||||
List<StClientMemberTransactionRecordVO> pageList2( @Param("vo") StClientMemberTransactionRecordDTO query);
|
||||
/**
|
||||
* 列表查询
|
||||
* @return
|
||||
|
||||
+9
-5
@@ -235,6 +235,7 @@
|
||||
SUM(oi.order_price) orderPrice,
|
||||
(SELECT COUNT(DISTINCT member_id) FROM st_bbzx_order_info WHERE eat_day = oi.eat_day and `status` = 5
|
||||
and order_type = 3
|
||||
AND canteen_id = oi.canteen_id
|
||||
<if test="list != null and list.size() > 0">
|
||||
and canteen_id IN
|
||||
<foreach collection="list" item="canteenId" separator="," open="(" close=")" >
|
||||
@@ -242,7 +243,7 @@
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="startDate != '' and startDate != null ">
|
||||
and eat_day between #{startDate} and #{endDate}
|
||||
and DATE_FORMAT(create_time,'%Y-%m-%d') between #{startDate} and #{endDate}
|
||||
</if>
|
||||
) AS totalNum
|
||||
FROM
|
||||
@@ -258,17 +259,19 @@
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="startDate != '' and startDate != null ">
|
||||
and oi.eat_day between #{startDate} and #{endDate}
|
||||
and DATE_FORMAT(oi.create_time,'%Y-%m-%d') between #{startDate} and #{endDate}
|
||||
</if>
|
||||
GROUP BY
|
||||
oi.canteen_id,
|
||||
oi.eat_day
|
||||
oi.eat_day,
|
||||
r.rest_name
|
||||
order by oi.eat_day desc
|
||||
</select>
|
||||
<select id="statisticsTheAmountSpentEveryMember"
|
||||
resultType="org.jeecg.payment.vo.StatisticsTheAmountSpentVo">
|
||||
SELECT
|
||||
u.realname,
|
||||
sr.rest_name as restName,
|
||||
pay.realname as payRealname,
|
||||
u.work_no,
|
||||
CONCAT(
|
||||
@@ -306,8 +309,9 @@
|
||||
) AS totalNum
|
||||
FROM
|
||||
st_bbzx_order_info oi
|
||||
JOIN sys_user_sub u ON oi.member_id = u.id
|
||||
JOIN sys_user_sub pay ON oi.pay_member_id = pay.id
|
||||
LEFT JOIN sys_user_sub u ON oi.member_id = u.id
|
||||
LEFT JOIN sys_user_sub pay ON oi.pay_member_id = pay.id
|
||||
LEFT JOIN st_base_restaurant AS sr ON sr.id = oi.canteen_id
|
||||
LEFT JOIN sys_pay_depart direct_depart ON pay.depart_ids = direct_depart.id AND direct_depart.del_flag = '0'
|
||||
LEFT JOIN sys_pay_depart parent_depart ON direct_depart.parent_id = parent_depart.id AND parent_depart.del_flag = '0'
|
||||
WHERE
|
||||
|
||||
+30
-2
@@ -129,7 +129,21 @@
|
||||
#{departId}
|
||||
</foreach>
|
||||
</if>
|
||||
order by a.create_time desc
|
||||
<if test="vo.canteenIdList != null and vo.canteenIdList.size() > 0">
|
||||
and a.canteen_id IN
|
||||
<foreach collection="vo.canteenIdList" item="canteenId" separator="," open="(" close=")">
|
||||
#{canteenId}
|
||||
</foreach>
|
||||
</if>
|
||||
order by a.create_time
|
||||
<choose>
|
||||
<when test="vo.status != null and vo.status == 3 ">
|
||||
asc
|
||||
</when>
|
||||
<otherwise>
|
||||
desc
|
||||
</otherwise>
|
||||
</choose>
|
||||
</select>
|
||||
|
||||
<select id="pageListCount" resultType="java.lang.Long">
|
||||
@@ -185,10 +199,16 @@
|
||||
<if test="vo.dinnerType != null and vo.dinnerType != ''">
|
||||
and sboi.dinner_type = #{vo.dinnerType}
|
||||
</if>
|
||||
<if test="vo.canteenIdList != null and vo.canteenIdList.size() > 0">
|
||||
and a.canteen_id IN
|
||||
<foreach collection="vo.canteenIdList" item="canteenId" separator="," open="(" close=")">
|
||||
#{canteenId}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
</select>
|
||||
<select id="pageList2" resultType="org.jeecg.payment.vo.StClientMemberTransactionRecordVO">
|
||||
SELECT
|
||||
SELECT DISTINCT
|
||||
a.id,
|
||||
a.serial_no as serialNo,
|
||||
a.order_no as orderNo,
|
||||
@@ -204,12 +224,14 @@
|
||||
a.integral_balance as integralBalance,
|
||||
a.create_time as createTime,
|
||||
a.pay_time as payTime,
|
||||
sr.rest_name as restName,
|
||||
a.update_status as updateStatus
|
||||
FROM
|
||||
st_client_member_transaction_record as a
|
||||
<if test="vo.dinnerType != null and vo.dinnerType != ''">
|
||||
LEFT JOIN st_bbzx_order_info sboi ON a.order_no = sboi.order_no
|
||||
</if>
|
||||
LEFT JOIN st_base_restaurant AS sr ON sr.id = a.canteen_id
|
||||
LEFT JOIN sys_user_sub AS c ON a.pay_member_id = c.id
|
||||
LEFT JOIN sys_user_sub AS pay ON a.member_id = pay.id
|
||||
WHERE a.is_del = 0
|
||||
@@ -255,6 +277,12 @@
|
||||
<if test="vo.dinnerType != null and vo.dinnerType != ''">
|
||||
and sboi.dinner_type = #{vo.dinnerType}
|
||||
</if>
|
||||
<if test="vo.canteenIdList != null and vo.canteenIdList.size() > 0">
|
||||
and a.canteen_id IN
|
||||
<foreach collection="vo.canteenIdList" item="canteenId" separator="," open="(" close=")">
|
||||
#{canteenId}
|
||||
</foreach>
|
||||
</if>
|
||||
order by a.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
+8
-1
@@ -15,6 +15,7 @@
|
||||
a.pay_time,
|
||||
a.error_msg,
|
||||
u.realname as userName,
|
||||
sr.rest_name as restName,
|
||||
CONCAT(
|
||||
IFNULL(parent_depart.depart_name, ''),
|
||||
IF(parent_depart.depart_name IS NOT NULL AND direct_depart.depart_name IS NOT NULL, '->', ''),
|
||||
@@ -27,7 +28,7 @@
|
||||
LEFT JOIN sys_user_sub AS u ON a.user_id = u.id
|
||||
LEFT JOIN sys_pay_depart direct_depart ON u.depart_ids = direct_depart.id AND direct_depart.del_flag = '0'
|
||||
LEFT JOIN sys_pay_depart parent_depart ON direct_depart.parent_id = parent_depart.id AND parent_depart.del_flag = '0'
|
||||
|
||||
LEFT JOIN st_base_restaurant AS sr ON a.canteen_id = sr.id
|
||||
WHERE 1 = 1
|
||||
<if test="query.phone != null and query.phone != ''">
|
||||
and u.phone like CONCAT('%',#{query.phone},'%')
|
||||
@@ -49,6 +50,12 @@
|
||||
#{departId}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="query.canteenIdList != null and query.canteenIdList.size() > 0">
|
||||
and a.canteen_id IN
|
||||
<foreach collection="query.canteenIdList" item="canteenId" separator="," open="(" close=")">
|
||||
#{canteenId}
|
||||
</foreach>
|
||||
</if>
|
||||
order by a.create_time desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
+8
@@ -34,6 +34,14 @@ public interface IStClientMemberTransactionRecordService extends JeecgService<St
|
||||
*/
|
||||
List<StClientMemberTransactionRecordVO> queryList(StClientMemberTransactionRecordDTO query);
|
||||
|
||||
/**
|
||||
* 列表查询导出
|
||||
*
|
||||
* @param query
|
||||
* @return
|
||||
*/
|
||||
List<StClientMemberTransactionRecordVO> queryListNew(StClientMemberTransactionRecordDTO query);
|
||||
|
||||
IPage<StClientMemberTransactionRecordVO> pageBalanceRefundList(Page<StClientMemberTransactionRecordVO> page, StClientMemberTransactionRecordDTO query);
|
||||
|
||||
InOutRecordInfoVo getOneInOutInfo(String recordId);
|
||||
|
||||
+3
-2
@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.xkcoding.http.util.StringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -752,7 +753,7 @@ public class StBbzxOrderInfoServiceImpl extends JeecgServiceImpl<StBbzxOrderInfo
|
||||
public StBbzxOrderInfo buildOrderInfoNew(Date dateTime,String restId,String dinnerType,String plateNumber,String userId,String memberName,String memberPhone,Integer deductionType,StClientMemberLevelDeductRuleVo levelDeductRuleVo , String remark,StRfidVo stRfidVo){
|
||||
StBbzxOrderInfo stBbzxOrderInfo = new StBbzxOrderInfo();
|
||||
stBbzxOrderInfo.setOrderType(3);
|
||||
String orderNo = OrderUtils.getOrderCode(10);
|
||||
String orderNo = OrderUtils.getOrderCodeV2();
|
||||
stBbzxOrderInfo.setOrderNo(orderNo);
|
||||
stBbzxOrderInfo.setSerialNo(stRfidVo.getCardCode());
|
||||
stBbzxOrderInfo.setDinnerType(dinnerType);
|
||||
@@ -815,7 +816,7 @@ public class StBbzxOrderInfoServiceImpl extends JeecgServiceImpl<StBbzxOrderInfo
|
||||
StBbzxOrderInfo stBbzxOrderInfo = new StBbzxOrderInfo();
|
||||
stBbzxOrderInfo.setDeviceCode(stRfidVo.getDeviceCode());
|
||||
stBbzxOrderInfo.setOrderType(3);
|
||||
String orderNo = OrderUtils.getOrderCode(10);
|
||||
String orderNo = OrderUtils.getOrderCodeV2();
|
||||
stBbzxOrderInfo.setOrderNo(orderNo);
|
||||
stBbzxOrderInfo.setSerialNo(miniMineBalanceVo.getCardCode());
|
||||
stBbzxOrderInfo.setDinnerType(dinnerType);
|
||||
|
||||
+19
@@ -144,6 +144,25 @@ public class StClientMemberTransactionRecordServiceImpl extends JeecgServiceImpl
|
||||
return pageList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StClientMemberTransactionRecordVO> queryListNew(StClientMemberTransactionRecordDTO query) {
|
||||
List<StClientMemberTransactionRecordVO> pageList = baseMapper.pageList2(query);
|
||||
if (CollectionUtils.isNotEmpty(pageList)) {
|
||||
for (StClientMemberTransactionRecordVO model : pageList) {
|
||||
model.setStatusName(MemberTransactionTypeEnum.getName(model.getStatus()));
|
||||
model.setPaymentMethodName(MemberEnum.getXcxName(model.getPaymentMethod()));
|
||||
model.setUpdateStatusName(null != model.getUpdateStatus() && 1 == model.getUpdateStatus() ? "前端":"后台");
|
||||
if(null != model.getBusinessModel()&& 1 == model.getBusinessModel() ){
|
||||
model.setBusinessModelName("定值模式");//扣费类型(1:固定扣费,2:固定+补贴扣费,3:按量扣费,4:自定义金额)
|
||||
}
|
||||
if(null != model.getBusinessModel()&& 4 == model.getBusinessModel() ){
|
||||
model.setBusinessModelName("金额模式");//扣费类型(1:固定扣费,2:固定+补贴扣费,3:按量扣费,4:自定义金额)
|
||||
}
|
||||
}
|
||||
}
|
||||
return pageList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<StClientMemberTransactionRecordVO> pageBalanceRefundList(Page<StClientMemberTransactionRecordVO> page,StClientMemberTransactionRecordDTO query) {
|
||||
|
||||
|
||||
+31
@@ -8,6 +8,9 @@ import com.opencsv.bean.CsvToBeanBuilder;
|
||||
import com.opencsv.bean.HeaderColumnNameMappingStrategy;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.jeecg.common.system.vo.LoginUser;
|
||||
import org.jeecg.common.system.vo.ScreenVo;
|
||||
import org.jeecg.payment.dto.StExceptionRecordDTO;
|
||||
import org.jeecg.payment.entity.StConsumptionExceptionRecord;
|
||||
import org.jeecg.payment.mapper.StConsumptionExceptionRecordMapper;
|
||||
@@ -52,6 +55,20 @@ public class StConsumptionExceptionRecordServiceImpl extends ServiceImpl<StConsu
|
||||
query.setList(allCascadeDeptIds);
|
||||
}
|
||||
}
|
||||
String canteenId = query.getCanteenId();
|
||||
List<String> canteenIdList = new ArrayList<>();
|
||||
if(StringUtils.isNotBlank(canteenId)){
|
||||
canteenIdList.add(canteenId);
|
||||
} else {
|
||||
//权限校验
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<String> canteenIds = new ArrayList<>();
|
||||
if(sysUser != null){
|
||||
canteenIds = sysUser.getCanteenIdList().stream().map(ScreenVo::getId).collect(Collectors.toList());
|
||||
canteenIdList.addAll(canteenIds);
|
||||
}
|
||||
}
|
||||
query.setCanteenIdList(canteenIdList);
|
||||
Page<StExceptionRecordVo> page = new Page<>(query.getPageNo(), query.getPageSize());
|
||||
return baseMapper.exceptionRecordPage(page, query);
|
||||
}
|
||||
@@ -69,6 +86,20 @@ public class StConsumptionExceptionRecordServiceImpl extends ServiceImpl<StConsu
|
||||
query.setList(allCascadeDeptIds);
|
||||
}
|
||||
}
|
||||
String canteenId = query.getCanteenId();
|
||||
List<String> canteenIdList = new ArrayList<>();
|
||||
if(StringUtils.isNotBlank(canteenId)){
|
||||
canteenIdList.add(canteenId);
|
||||
} else {
|
||||
//权限校验
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<String> canteenIds = new ArrayList<>();
|
||||
if(sysUser != null){
|
||||
canteenIds = sysUser.getCanteenIdList().stream().map(ScreenVo::getId).collect(Collectors.toList());
|
||||
canteenIdList.addAll(canteenIds);
|
||||
}
|
||||
}
|
||||
query.setCanteenIdList(canteenIdList);
|
||||
return baseMapper.exceptionRecordPage(query);
|
||||
}
|
||||
|
||||
|
||||
+11
-1
@@ -149,6 +149,8 @@ public class SwUserFaceimgController extends JeecgController<SwUserFaceimg, ISwU
|
||||
byte[] feature = faceEngineService.extractFaceFeature(rgbData, faceInfo);
|
||||
slUserFaceimg.setFaceFeatureData(feature);
|
||||
}
|
||||
} else {
|
||||
return Result.error("人脸特征码提取失败!");
|
||||
}
|
||||
slUserFaceimg.setFaceStatus("1");
|
||||
slUserFaceimg.setUserId(userId);
|
||||
@@ -215,6 +217,8 @@ public class SwUserFaceimgController extends JeecgController<SwUserFaceimg, ISwU
|
||||
byte[] feature = faceEngineService.extractFaceFeature(rgbData, faceInfo);
|
||||
slUserFaceimg.setFaceFeatureData(feature);
|
||||
}
|
||||
} else {
|
||||
return Result.error("人脸特征码提取失败!");
|
||||
}
|
||||
slUserFaceimg.setFaceStatus("1");
|
||||
slUserFaceimg.setUserId(userId);
|
||||
@@ -285,6 +289,8 @@ public class SwUserFaceimgController extends JeecgController<SwUserFaceimg, ISwU
|
||||
byte[] feature = faceEngineService.extractFaceFeature(rgbData, faceInfo);
|
||||
slUserFaceimg.setFaceFeatureData(feature);
|
||||
}
|
||||
} else {
|
||||
return Result.error("人脸特征码提取失败!");
|
||||
}
|
||||
slUserFaceimg.setFaceStatus("1");
|
||||
slUserFaceimg.setUserId(userId);
|
||||
@@ -329,7 +335,7 @@ public class SwUserFaceimgController extends JeecgController<SwUserFaceimg, ISwU
|
||||
*/
|
||||
@GetMapping(value = "/updateAllUserFaceImg")
|
||||
public Result<String> updateAllUserFaceImg(@RequestParam(name = "type", required = false,defaultValue = "0") Integer type){
|
||||
return Result.OK(swUserFaceimgService.updateAllUserFaceImg(type));
|
||||
return swUserFaceimgService.updateAllUserFaceImg(type);
|
||||
}
|
||||
|
||||
public Result<?> saveFaceImgSubLocalUpload(@RequestBody Map map) {
|
||||
@@ -361,6 +367,8 @@ public class SwUserFaceimgController extends JeecgController<SwUserFaceimg, ISwU
|
||||
byte[] feature = faceEngineService.extractFaceFeature(rgbData, faceInfo);
|
||||
slUserFaceimg.setFaceFeatureData(feature);
|
||||
}
|
||||
}else{
|
||||
return Result.error("人脸特征码提取失败!");
|
||||
}
|
||||
slUserFaceimg.setFaceStatus("1");
|
||||
slUserFaceimg.setUserId(userId);
|
||||
@@ -516,6 +524,8 @@ public class SwUserFaceimgController extends JeecgController<SwUserFaceimg, ISwU
|
||||
byte[] feature = faceEngineService.extractFaceFeature(rgbData, faceInfo);
|
||||
slUserFaceimg.setFaceFeatureData(feature);
|
||||
}
|
||||
} else {
|
||||
return Result.error("人脸特征码提取失败!");
|
||||
}
|
||||
slUserFaceimg.setFaceStatus("1");
|
||||
slUserFaceimg.setUserId(userId);
|
||||
|
||||
+1
-1
@@ -46,5 +46,5 @@ public interface ISwUserFaceimgService extends IService<SwUserFaceimg> {
|
||||
*/
|
||||
void sendPaymentGateUserInfo(UserFaceInfo userFaceInfo, Integer type, Boolean isConfirm, String userId) ;
|
||||
|
||||
String updateAllUserFaceImg(Integer type);
|
||||
Result<String> updateAllUserFaceImg(Integer type);
|
||||
}
|
||||
|
||||
+9
-3
@@ -307,6 +307,8 @@ public class SwUserFaceimgServiceImpl extends ServiceImpl<SwUserFaceimgMapper, S
|
||||
byte[] feature = faceEngineService.extractFaceFeature(rgbData, faceInfo);
|
||||
slUserFaceimg.setFaceFeatureData(feature);
|
||||
}
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
slUserFaceimg.setFaceStatus("1");
|
||||
slUserFaceimg.setCardNumber(cardNo);
|
||||
@@ -411,7 +413,7 @@ public class SwUserFaceimgServiceImpl extends ServiceImpl<SwUserFaceimgMapper, S
|
||||
}
|
||||
//此方法是为了更新人脸特征数据 , 因为初始化数据 进去的人脸特征识别有问题, 现通过程序重新识别生成特征码并更新
|
||||
@Override
|
||||
public String updateAllUserFaceImg(Integer type){
|
||||
public Result<String> updateAllUserFaceImg(Integer type){
|
||||
|
||||
if(type == 1){
|
||||
//正式员工人脸表
|
||||
@@ -436,11 +438,13 @@ public class SwUserFaceimgServiceImpl extends ServiceImpl<SwUserFaceimgMapper, S
|
||||
byte[] feature = faceEngineService.extractFaceFeature(rgbData, faceInfo);
|
||||
swUserFaceimg.setFaceFeatureData(feature);
|
||||
}
|
||||
} else {
|
||||
return Result.error("人脸特征码提取失败!");
|
||||
}
|
||||
}
|
||||
this.updateBatchById(list);
|
||||
}
|
||||
return "此次操作更新人脸主表数据"+ list.size()+"条数据";
|
||||
return Result.OK("此次操作更新人脸主表数据"+ list.size()+"条数据");
|
||||
}else {
|
||||
//子用户
|
||||
//正式员工人脸表
|
||||
@@ -464,11 +468,13 @@ public class SwUserFaceimgServiceImpl extends ServiceImpl<SwUserFaceimgMapper, S
|
||||
byte[] feature = faceEngineService.extractFaceFeature(rgbData, faceInfo);
|
||||
faceimgSub.setFaceFeatureData(feature);
|
||||
}
|
||||
} else {
|
||||
return Result.error("人脸特征码提取失败!");
|
||||
}
|
||||
}
|
||||
swUserFaceimgSubService.updateBatchById(subList);
|
||||
}
|
||||
return "此次操作更新人脸子表数据"+subList.size()+"条数据";
|
||||
return Result.OK("此次操作更新人脸子表数据"+subList.size()+"条数据");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+70
-35
@@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -39,48 +40,82 @@ public class SysPayDepartServiceImpl extends ServiceImpl<SysPayDepartMapper, Sys
|
||||
*/
|
||||
@Override
|
||||
public List<String> getAllCascadeDeptIds(String deptId) {
|
||||
List<String> allDeptIds = new ArrayList<>();
|
||||
if (deptId == null) {
|
||||
return allDeptIds;
|
||||
}
|
||||
// 从目标部门开始递归查询
|
||||
recursiveQueryDeptIds(deptId, allDeptIds);
|
||||
return allDeptIds;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归查询部门ID及其所有子部门ID
|
||||
* @param deptId 当前部门ID
|
||||
* @param result 用于收集结果的集合
|
||||
*/
|
||||
private void recursiveQueryDeptIds(String deptId, List<String> result) {
|
||||
// 1. 先查询当前部门信息并添加到结果集(去重)
|
||||
if (!result.contains(deptId)) {
|
||||
// 验证当前部门是否存在且有效
|
||||
SysPayDepart currentDept = this.getOne(new LambdaQueryWrapper<SysPayDepart>()
|
||||
.eq(SysPayDepart::getId, deptId)
|
||||
.eq(SysPayDepart::getDelFlag, "0"));
|
||||
|
||||
if (currentDept != null) {
|
||||
result.add(deptId);
|
||||
} else {
|
||||
// 当前部门不存在或已删除,终止递归
|
||||
return;
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
// 2. 查询当前部门的直接子部门
|
||||
List<SysPayDepart> childDepts = this.list(new LambdaQueryWrapper<SysPayDepart>()
|
||||
.eq(SysPayDepart::getParentId, deptId)
|
||||
// 1. 一次性查询所有有效部门
|
||||
List<SysPayDepart> allDepts = this.list(new LambdaQueryWrapper<SysPayDepart>()
|
||||
.eq(SysPayDepart::getDelFlag, "0"));
|
||||
|
||||
// 3. 对每个子部门递归查询其下属部门
|
||||
for (SysPayDepart child : childDepts) {
|
||||
String childId = child.getId();
|
||||
// 递归处理子部门,会自动添加子部门及其下级
|
||||
recursiveQueryDeptIds(childId, result);
|
||||
// 2. 构建部门父子关系Map
|
||||
Map<String, List<String>> parentToChildrenMap = allDepts.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
SysPayDepart::getParentId,
|
||||
Collectors.mapping(SysPayDepart::getId, Collectors.toList())
|
||||
));
|
||||
|
||||
// 3. 在内存中递归查找
|
||||
List<String> result = new ArrayList<>();
|
||||
recursiveFindDeptIds(deptId, parentToChildrenMap, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void recursiveFindDeptIds(String currentDeptId,
|
||||
Map<String, List<String>> parentToChildrenMap,
|
||||
List<String> result) {
|
||||
result.add(currentDeptId);
|
||||
List<String> children = parentToChildrenMap.get(currentDeptId);
|
||||
if (children != null) {
|
||||
for (String childId : children) {
|
||||
recursiveFindDeptIds(childId, parentToChildrenMap, result);
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
// public List<String> getAllCascadeDeptIds(String deptId) {
|
||||
// List<String> allDeptIds = new ArrayList<>();
|
||||
// if (deptId == null) {
|
||||
// return allDeptIds;
|
||||
// }
|
||||
// // 从目标部门开始递归查询
|
||||
// recursiveQueryDeptIds(deptId, allDeptIds);
|
||||
// return allDeptIds;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 递归查询部门ID及其所有子部门ID
|
||||
// * @param deptId 当前部门ID
|
||||
// * @param result 用于收集结果的集合
|
||||
// */
|
||||
// private void recursiveQueryDeptIds(String deptId, List<String> result) {
|
||||
// // 1. 先查询当前部门信息并添加到结果集(去重)
|
||||
// if (!result.contains(deptId)) {
|
||||
// // 验证当前部门是否存在且有效
|
||||
// SysPayDepart currentDept = this.getOne(new LambdaQueryWrapper<SysPayDepart>()
|
||||
// .eq(SysPayDepart::getId, deptId)
|
||||
// .eq(SysPayDepart::getDelFlag, "0"));
|
||||
//
|
||||
// if (currentDept != null) {
|
||||
// result.add(deptId);
|
||||
// } else {
|
||||
// // 当前部门不存在或已删除,终止递归
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 2. 查询当前部门的直接子部门
|
||||
// List<SysPayDepart> childDepts = this.list(new LambdaQueryWrapper<SysPayDepart>()
|
||||
// .eq(SysPayDepart::getParentId, deptId)
|
||||
// .eq(SysPayDepart::getDelFlag, "0"));
|
||||
//
|
||||
// // 3. 对每个子部门递归查询其下属部门
|
||||
// for (SysPayDepart child : childDepts) {
|
||||
// String childId = child.getId();
|
||||
// // 递归处理子部门,会自动添加子部门及其下级
|
||||
// recursiveQueryDeptIds(childId, result);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -97,7 +97,7 @@ spring:
|
||||
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
|
||||
datasource:
|
||||
master:
|
||||
url: jdbc:mysql://10.59.235.137:3306/zhst_finance?Unicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
|
||||
url: jdbc:mysql://10.59.235.137:3306/zhst_finance_new?Unicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
|
||||
username: root
|
||||
password: 123qwe!@#P@ssw0rd
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
@@ -289,9 +289,9 @@ third-app:
|
||||
# 虹软人脸识别(WIN和UNIX的sdkKey不一致,需要切换) 激活码需要配置
|
||||
face:
|
||||
# windows
|
||||
appId: 3RX8bPDaEx3ZLYrxKEZ9F8hT5cqTma49AoeQhTMW8Wvg
|
||||
sdkKey: CsNxFiPekJAyuQRjwY3c918ARVEEyCyzuvmMwWDUAjsF
|
||||
activeKey: 86L1-11ZG-412Q-XKLB
|
||||
appId: 5fiiFa6fTSRhDbiarBSMGVS1hEkDyMQLYyBgn97EzZyb
|
||||
sdkKey: 3QndXfNCsoUM5hDyzSw2a3j7Ke3eL4J9by1yKfUsQJSC
|
||||
activeKey: 86L1-11Z4-61B4-AEQ1
|
||||
libPath: ./facelib
|
||||
detect:
|
||||
pool:
|
||||
|
||||
Reference in New Issue
Block a user