This commit is contained in:
许允枞 2025-02-27 13:15:37 +08:00
parent 31b8047cff
commit 34ef8ce13f
8 changed files with 54 additions and 37 deletions

View File

@ -124,7 +124,7 @@ public class InspectionMallPartnersController extends BaseController {
}
}else if (roles.contains("jcworker")){
LambdaQueryWrapper<PartnerWorker> queryWrapperWork =new LambdaQueryWrapper<>();
queryWrapperWork.eq(PartnerWorker::getUserId,user.getId());
queryWrapperWork.eq(PartnerWorker::getUserId,user.getId()).last("limit 1");
PartnerWorker worker = partnerWorkerService.getOne(queryWrapperWork);
if (ObjectUtil.isEmpty(worker)){
return error();
@ -277,7 +277,7 @@ public class InspectionMallPartnersController extends BaseController {
}
}else if (roles.contains("jcworker")){
LambdaQueryWrapper<PartnerWorker> queryWrapperWork =new LambdaQueryWrapper<>();
queryWrapperWork.eq(PartnerWorker::getUserId,user.getId());
queryWrapperWork.eq(PartnerWorker::getUserId,user.getId()).last("limit 1");
PartnerWorker worker = partnerWorkerService.getOne(queryWrapperWork);
if (ObjectUtil.isEmpty(worker)){
return CommonResult.error(-1,"信息有误");

View File

@ -252,8 +252,8 @@ public class ShopInspectionGoodsController extends BaseController {
partner.setPartnerId(worker.getPartnerId());
}
shopInspectionOrder.setPartnerId(partner.getPartnerId());
shopInspectionOrder.setValidationTime(new Date());
Page<OrderInfo> page = new Page<>(pageNo, pageSize);
// shopInspectionOrder.setValidationTime(new Date());
Page<OrderInfo> page = new Page<>(1, 10000000);
orderInfoService.exportExcel(response, shopInspectionOrder, page);
}

View File

@ -1968,6 +1968,9 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl<AppInspectionPa
query.setStartTime(query.getStartTime() + " 00:00:00");
query.setEndTime(query.getEndTime() + " 23:59:59");
}
if (ObjectUtil.isNotNull(query.getCarYear()) && query.getCarYear().equals(0)) {
query.setCarYear(null);
}
IPage<OrderTable> orderByDate = baseMapper.getOrderByDate(query, page);
orderByDate.getRecords().forEach(orderTable -> {
if (StringUtils.isNotEmpty(orderTable.getCarModel())) {
@ -2026,6 +2029,12 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl<AppInspectionPa
*/
@Override
public List<Map<String, Object>> queryInspectionSkuList(String startTime, String endTime) {
if (StringUtils.isEmpty(startTime)) {
startTime = DateUtil.format(new Date(), "yyyy-MM-dd");
endTime = DateUtil.format(new Date(), "yyyy-MM-dd");
}
startTime = startTime + " 00:00:00";
endTime = endTime + " 23:59:59";
return baseMapper.queryInspectionSkuList(startTime, endTime);
}

View File

@ -133,7 +133,12 @@ public class InspectionStaffServiceImpl extends ServiceImpl<InspectionStaffMappe
InspectionStaffSaveVo inspectionStaffSaveVo = baseMapper.get(id);
// 查询用户角色集合
List<UserRoleDTO> userRoleDTOS = permissionService.userRoleDTOList(Collections.singletonList(id));
inspectionStaffSaveVo.setRoleIds(userRoleDTOS.stream().map(UserRoleDTO::getRoleId).collect(Collectors.toList()));
inspectionStaffSaveVo.setRoleIds(userRoleDTOS.stream()
.filter(role -> "jiance".equals(role.getServicePackageId())) // 修正此行
.filter(role -> !"jcyh".equals(role.getRoleCode()))
.map(UserRoleDTO::getRoleId)
.collect(Collectors.toList()));
//将驾驶证类型转为数组
if (ObjectUtil.isNotEmpty(inspectionStaffSaveVo.getDriverLicenseType())) {
inspectionStaffSaveVo.setDriverLicenseTypeArr(Arrays.asList(inspectionStaffSaveVo.getDriverLicenseType().split(",")));
@ -263,7 +268,6 @@ public class InspectionStaffServiceImpl extends ServiceImpl<InspectionStaffMappe
}
//插入检测员工子表
List<InspectionStaff> inspectionStaffList = new ArrayList<>();
for (StaffImportExcelVO staffImportExcelVO : successList) {

View File

@ -122,21 +122,23 @@
<select id="getStaffCount" resultType="java.util.Map"
parameterType="cn.iocoder.yudao.module.inspection.entity.DlInspectionProject">
SELECT
iwn.deal_user_id, -- 处理人员ID
su.nickname, -- 处理人员名称
su.avatar, -- 处理人员头像
COUNT(DISTINCT iwn.id) AS orderCount, -- 统计每个员工的唯一订单数量
SUM(IFNULL(royalty.royalty_amount, 0) / 100) AS royaltyAmount, -- 计算每个员工的总佣金
su.mobile, -- 处理人员手机号
COALESCE(waijianCount, 0) AS waijianCount, -- 包含“外检”的订单数量
COALESCE(anjianCount, 0) AS anjianCount, -- 包含“安检”的订单数量
COALESCE(proj_stats.otherCount, 0) AS otherCount -- 其他订单数量(排除“外检”和“安检”)
su.id AS deal_user_id, -- 处理人员ID
su.nickname, -- 处理人员名称
su.avatar, -- 处理人员头像
COUNT(DISTINCT iwn.id) AS orderCount, -- 统计每个员工的唯一订单数量
SUM(IFNULL(royalty.royalty_amount, 0)) / 100 AS royaltyAmount, -- 计算每个员工的总佣金
su.mobile, -- 处理人员手机号
COALESCE(proj_stats.waijianCount, 0) AS waijianCount, -- 包含“外检”的订单数量
COALESCE(proj_stats.anjianCount, 0) AS anjianCount, -- 包含“安检”的订单数量
COALESCE(proj_stats.otherCount, 0) AS otherCount -- 其他订单数量(排除“外检”和“安检”)
FROM
inspection_work_node iwn
LEFT JOIN system_users su ON su.id = iwn.deal_user_id -- 处理人员信息
LEFT JOIN inspection_info AS info ON iwn.inspection_info_id = info.id
system_users su
LEFT JOIN system_user_role sr ON su.id = sr.user_id
LEFT JOIN system_role sr2 ON sr.role_id = sr2.id
LEFT JOIN inspection_work_node iwn ON su.id = iwn.deal_user_id
LEFT JOIN inspection_info info ON iwn.inspection_info_id = info.id
LEFT JOIN order_info orders ON info.inspection_order_id = orders.id
LEFT JOIN inspection_project_royalty AS royalty
LEFT JOIN inspection_project_royalty royalty
ON iwn.project_id = royalty.project_id
AND orders.goods_id = royalty.goods_id
LEFT JOIN (
@ -153,28 +155,29 @@
) AS otherCount -- 统计不包含“外检”和“安检”的订单
FROM
inspection_work_node iwn
LEFT JOIN inspection_project AS proj ON iwn.project_id = proj.id
LEFT JOIN inspection_info AS info ON iwn.inspection_info_id = info.id
WHERE iwn.deleted = 0 -- 排除已删除的数据
LEFT JOIN inspection_project proj ON iwn.project_id = proj.id
LEFT JOIN inspection_info info ON iwn.inspection_info_id = info.id
WHERE
iwn.deleted = 0 -- 排除已删除的数据
AND iwn.deal_user_id IS NOT NULL -- 排除 deal_user_id 为 NULL 的记录
AND iwn.status = 2
AND info.status = 1
GROUP BY
iwn.deal_user_id
) proj_stats ON iwn.deal_user_id = proj_stats.deal_user_id -- 获取“外检”和“安检”的统计
<where>
iwn.deleted = 0 -- 排除已删除的数据
AND iwn.deal_user_id IS NOT NULL -- 排除 deal_user_id 为 NULL 的记录
AND iwn.status = 2
AND info.status = 1
<if test="id != null and id != ''">
AND iwn.project_id = #{id} -- 只在这里加上id过滤
</if>
</where>
) proj_stats ON su.id = proj_stats.deal_user_id -- 获取“外检”和“安检”的统计
WHERE
(sr2.service_package_id = 'jiance') -- 角色条件
AND (sr2.code != 'jcyh') -- 排除特定角色
AND (iwn.deleted = 0 OR iwn.deleted IS NULL) -- 排除已删除的数据
AND (iwn.deal_user_id IS NOT NULL) -- 排除 deal_user_id 为 NULL 的记录
AND (iwn.status = 2 OR iwn.status IS NULL)
AND (info.status = 1 OR info.status IS NULL)
<if test="id != null and id != ''">
AND iwn.project_id = #{id} -- 只在这里加上id过滤
</if>
GROUP BY
iwn.deal_user_id -- 根据处理人员ID进行分组
su.id -- 根据处理人员ID进行分组
ORDER BY
orderCount DESC; -- 根据接单数量进行降序排序
orderCount DESC; -- 根据接单数量进行降序排序
</select>
</mapper>

View File

@ -307,7 +307,7 @@
and oi.pay_time <![CDATA[<=]]> #{entity.endTime}
</if>
<if test="entity.carAge != null">
AND car_register_date BETWEEN DATE_SUB(CURDATE(), INTERVAL #{nextCarAge} YEAR)
AND info.car_register_date BETWEEN DATE_SUB(CURDATE(), INTERVAL #{entity.nextCarAge} YEAR)
AND DATE_SUB(CURDATE(), INTERVAL #{entity.carAge} YEAR)
</if>
<if test="entity.partnerId!=null ">

View File

@ -7,4 +7,5 @@ public class UserRoleDTO {
private Long userId;
private String roleCode;
private Long roleId;
private String servicePackageId;
}

View File

@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="userCodes" resultType="cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO">
SELECT
su.id AS userId,sr.code AS roleCode,sr.id AS roleId
su.id AS userId,sr.code AS roleCode,sr.id AS roleId, sr.service_package_id
FROM
system_users su
LEFT JOIN system_user_role sur ON su.id = sur.user_id AND sur.deleted = 0