站内信

localizer
ljw 2025-10-06 21:46:44 +08:00
parent d5e2678e95
commit e681b925b5
4 changed files with 187 additions and 10 deletions

View File

@ -30,6 +30,8 @@ public class PaymentParam {
*/
private BigDecimal settleTotalMoney;
private String wxCode;
/**
*
*/

View File

@ -1,7 +1,10 @@
package com.njzscloud.supervisory.sys.stationletter.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.njzscloud.supervisory.order.pojo.result.OrderPagingResult;
import com.njzscloud.supervisory.sys.stationletter.pojo.StationLetterEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -39,6 +42,6 @@ public interface StationLetterMapper {
/**
*
*/
int selectPendingOrderCount();
int selectPendingOrderCount(@Param("ew") QueryWrapper<OrderPagingResult> ew);
}

View File

@ -1,5 +1,15 @@
package com.njzscloud.supervisory.sys.stationletter.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.njzscloud.common.security.support.UserDetail;
import com.njzscloud.common.security.util.SecurityUtil;
import com.njzscloud.supervisory.biz.constant.AuditStatus;
import com.njzscloud.supervisory.biz.pojo.entity.BizAuditConfigEntity;
import com.njzscloud.supervisory.biz.service.BizAuditConfigService;
import com.njzscloud.supervisory.order.contant.OrderStatus;
import com.njzscloud.supervisory.order.pojo.result.OrderPagingResult;
import com.njzscloud.supervisory.sys.stationletter.constant.WarnCategory;
import com.njzscloud.supervisory.sys.stationletter.mapper.StationLetterMapper;
import com.njzscloud.supervisory.sys.stationletter.pojo.AuditResult;
@ -12,6 +22,10 @@ import org.apache.commons.compress.utils.Lists;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static com.njzscloud.supervisory.constant.Constant.ROLE_JG;
/**
*
@ -22,6 +36,7 @@ import java.util.List;
public class StationLetterServiceImpl implements StationLetterService {
private final StationLetterMapper stationLetterMapper;
private final BizAuditConfigService bizAuditConfigService;
@Override
public StationLetterResult getPendingWarnList() {
@ -34,7 +49,7 @@ public class StationLetterServiceImpl implements StationLetterService {
}
result.setWarnList(entities);
List<AuditResult> auditResults = Lists.newArrayList();
// 1.查询未删除并且待审核的公司数量表为biz_company
int companyCount = stationLetterMapper.selectPendingCompanyCount();
AuditResult companyAudit = new AuditResult();
@ -68,15 +83,147 @@ public class StationLetterServiceImpl implements StationLetterService {
auditResults.add(driverAudit);
// 5.查询未删除并且待审核的订单数量表为order_info
int orderCount = stationLetterMapper.selectPendingOrderCount();
AuditResult orderAudit = buildOrderAuditResult();
auditResults.add(orderAudit);
result.setAuditResultList(auditResults);
return result;
}
/**
*
*/
private AuditResult buildOrderAuditResult() {
AuditResult orderAudit = new AuditResult();
orderAudit.setModuleType("order");
orderAudit.setAuditName("待审核订单");
orderAudit.setCount(orderCount);
auditResults.add(orderAudit);
result.setAuditResultList(auditResults);
return result;
try {
UserDetail userDetail = SecurityUtil.loginUser();
if (userDetail == null || CollUtil.isEmpty(userDetail.getRoles())) {
orderAudit.setCount(0);
return orderAudit;
}
Set<String> roles = userDetail.getRoles();
if (!roles.contains(ROLE_JG)) {
orderAudit.setCount(0);
return orderAudit;
}
// 获取审核配置区域信息
AuditAreaInfo auditAreaInfo = getAuditAreaInfoByRoles(roles);
if (CollUtil.isEmpty(auditAreaInfo.getAreaList()) &&
CollUtil.isEmpty(auditAreaInfo.getCityList()) &&
CollUtil.isEmpty(auditAreaInfo.getCityAreaList())) {
orderAudit.setCount(0);
return orderAudit;
}
// 构建查询条件
QueryWrapper<OrderPagingResult> queryWrapper = buildOrderQueryWrapper(auditAreaInfo);
int orderCount = stationLetterMapper.selectPendingOrderCount(queryWrapper);
orderAudit.setCount(orderCount);
} catch (Exception e) {
log.error("查询待审核订单数量失败", e);
orderAudit.setCount(0);
}
return orderAudit;
}
/**
*
*/
private AuditAreaInfo getAuditAreaInfoByRoles(Set<String> roles) {
// 获取区级审核区域
List<String> areaList = bizAuditConfigService.list(Wrappers.<BizAuditConfigEntity>lambdaQuery()
.in(BizAuditConfigEntity::getAreaRole, roles)).stream()
.map(BizAuditConfigEntity::getArea)
.distinct()
.collect(Collectors.toList());
// 获取市级审核区域
List<String> cityList = bizAuditConfigService.list(Wrappers.<BizAuditConfigEntity>lambdaQuery()
.in(BizAuditConfigEntity::getCityRole, roles)).stream()
.map(BizAuditConfigEntity::getArea)
.distinct()
.collect(Collectors.toList());
// 获取无角色限制的区域
List<String> cityAreaList = bizAuditConfigService.list(Wrappers.<BizAuditConfigEntity>lambdaQuery()
.isNull(BizAuditConfigEntity::getAreaRole)
.isNull(BizAuditConfigEntity::getCityRole)).stream()
.map(BizAuditConfigEntity::getArea)
.distinct()
.collect(Collectors.toList());
return new AuditAreaInfo(areaList, cityList, cityAreaList);
}
/**
*
*/
private QueryWrapper<OrderPagingResult> buildOrderQueryWrapper(AuditAreaInfo auditAreaInfo) {
QueryWrapper<OrderPagingResult> queryWrapper = Wrappers.query();
// 基础条件:订单状态为已接单
queryWrapper.eq("a.order_status", OrderStatus.YiJieDan);
// 根据审核状态和区域构建复杂查询条件
queryWrapper.and(wrapper -> {
// 区级审核条件:区域在区级审核列表中且状态为区待审核
if (CollUtil.isNotEmpty(auditAreaInfo.getAreaList())) {
wrapper.in("b.area", auditAreaInfo.getAreaList())
.eq("a.audit_status", AuditStatus.QuDaiShenHe);
}
// 市级审核条件:区域在市级审核列表中且状态为市待审核
if (CollUtil.isNotEmpty(auditAreaInfo.getCityList())) {
wrapper.or(subWrapper ->
subWrapper.in("b.area", auditAreaInfo.getCityList())
.eq("a.audit_status", AuditStatus.ShiDaiShenHe)
);
}
// 待审核条件:区域在无角色限制列表中且状态为待审核
if (CollUtil.isNotEmpty(auditAreaInfo.getCityAreaList())) {
wrapper.or(subWrapper ->
subWrapper.in("b.area", auditAreaInfo.getCityAreaList())
.eq("a.audit_status", AuditStatus.DaiShenHe)
);
}
});
return queryWrapper;
}
/**
*
*/
private static class AuditAreaInfo {
private final List<String> areaList;
private final List<String> cityList;
private final List<String> cityAreaList;
public AuditAreaInfo(List<String> areaList, List<String> cityList, List<String> cityAreaList) {
this.areaList = areaList;
this.cityList = cityList;
this.cityAreaList = cityAreaList;
}
public List<String> getAreaList() {
return areaList;
}
public List<String> getCityList() {
return cityList;
}
public List<String> getCityAreaList() {
return cityAreaList;
}
}
/**
@ -86,7 +233,7 @@ public class StationLetterServiceImpl implements StationLetterService {
if (warnCategory == null) {
return "未知类型";
}
for (WarnCategory category : WarnCategory.values()) {
if (category.getVal().equals(warnCategory)) {
return category.getTxt();

View File

@ -53,11 +53,36 @@
WHERE deleted = 0 AND audit_status = 'DaiShenHe'
</select>
<!-- 查询待审核的订单数量 -->
<!-- 查询待审核的订单数量
<select id="selectPendingOrderCount" resultType="int">
SELECT COUNT(*)
FROM order_info
WHERE deleted = 0 AND audit_status = 'DaiShenHe'
</select>-->
<!-- 查询待审核的订单数量 -->
<select id="selectPendingOrderCount" resultType="int">
SELECT COUNT(*)
FROM
order_info a
LEFT JOIN order_cargo_place b ON b.id = a.cargo_place_id
LEFT JOIN order_goods c ON c.id = a.goods_id
LEFT JOIN order_car_in_out d ON d.id = a.car_in_out_id
LEFT JOIN biz_truck e ON e.id = a.truck_id
LEFT JOIN biz_driver f ON f.id = a.driver_id
LEFT JOIN biz_company g ON g.id = a.trans_company_id
LEFT JOIN sys_user h ON h.id = a.user_id
LEFT JOIN goods_category i ON i.id = c.goods_category_id
LEFT JOIN biz_company j ON j.user_id = a.user_id
LEFT JOIN sys_user k ON k.id = a.checker_id
LEFT JOIN biz_project l ON l.id = a.project_id
LEFT JOIN biz_company m ON m.id = a.station_id
AND m.station = 1
LEFT JOIN sys_user n ON n.id = a.qu_audit_user_id
LEFT JOIN sys_user o ON o.id = a.shi_audit_user_id
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
</select>
</mapper>