diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java index 9e1ec15d..d3e6e3d2 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java @@ -95,4 +95,9 @@ public class InspectionConstants { */ public static final String INSPECTION_NOTICE_TEMPLATE_ASSIGN_STAFF_MEET_CAR_NO_CAR_NO = "您有的新的接车订单需要处理 接车时间:%s 详细信息请前往接车列表"; + /** + * 检测站内信模板-提示业务经理 接车订单已被创建 + */ + public static final String INSPECTION_NOTICE_TEMPLATE_BUSINESS_MANAGER_MEET_CAR_ORDER_CREATE = "%s的工单已创建,详细信息请前往列表查看"; + } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionInfoController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionInfoController.java index 8febb148..649f29d9 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionInfoController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionInfoController.java @@ -125,6 +125,19 @@ public class InspectionInfoController extends BaseController { return success(inspectionInfoService.geStelectInspection(page, inspectionInfo)); } + /** + * 根据当前登陆人获取可以选择的工单(业务经理查询) + * + * @return + */ + @GetMapping("geStelectInspectionByBusiness") + public CommonResult geStelectInspectionByBusiness(InspectionInfo inspectionInfo, + @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNum, pageSize); + return success(inspectionInfoService.geStelectInspectionByBusiness(page, inspectionInfo)); + } + /** * 获取工单详情 * @@ -376,6 +389,17 @@ public class InspectionInfoController extends BaseController { return success(inspectionInfoService.getCountByType(partnerId)); } + /** + * 获得不同状态的数据的数量 + * + * @author 小李 + * @date 16:22 2024/12/18 + **/ + @GetMapping("/getBusinessCountByType") + public CommonResult getBusinessCountByType(@RequestParam("partnerId") Integer partnerId) { + return success(inspectionInfoService.getBusinessCountByType(partnerId)); + } + /** * 接车拍照 * @@ -387,6 +411,17 @@ public class InspectionInfoController extends BaseController { return success(inspectionInfoService.meetCarPhoto(inspectionWorkNode)); } + /** + * 还车拍照 + * + * @param inspectionWorkNode + * @return + */ + @PostMapping("/returnCarPhoto") + public CommonResult returnCarPhoto(@RequestBody InspectionWorkNode inspectionWorkNode) { + return success(inspectionInfoService.returnCarPhoto(inspectionWorkNode)); + } + /** * 修改异常工单 * diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionStaffController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionStaffController.java index ca5179e4..83f7f69d 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionStaffController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionStaffController.java @@ -12,6 +12,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.core.controller.BaseController; import cn.iocoder.yudao.module.inspection.enums.DriverLicenseType; +import cn.iocoder.yudao.module.inspection.query.InspectionListQuery; import cn.iocoder.yudao.module.inspection.query.InspectionStaffQuery; import cn.iocoder.yudao.module.inspection.service.InspectionStaffService; import cn.iocoder.yudao.module.inspection.vo.InspectionStaffExportVo; @@ -181,15 +182,15 @@ public class InspectionStaffController extends BaseController { /** * 获取已完成项目 - * @param userId 用户id + * @param query 请求参数 * @return */ @GetMapping("/getFinishProjectByUserId") - public CommonResult getFinishProjectByUserId(@RequestParam("userId") Long userId, + public CommonResult getFinishProjectByUserId(InspectionListQuery query, @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { Page> page = new Page<>(pageNo, pageSize); - return success(inspectionStaffService.getFinishProjectByUserId(page, userId)); + return success(inspectionStaffService.getFinishProjectByUserId(page, query)); } /** diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/PartnerOwnController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/PartnerOwnController.java index d9149ff3..f935354b 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/PartnerOwnController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/PartnerOwnController.java @@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.inspection.query.FileByTypeQuery; import cn.iocoder.yudao.module.inspection.query.OrderTableQuery; import cn.iocoder.yudao.module.inspection.vo.*; import cn.iocoder.yudao.module.label.vo.LabelRespVO; @@ -922,4 +923,14 @@ public class PartnerOwnController extends BaseController { @RequestParam(value = "endTime", required = false) String endTime){ return success(partnerList.fileStatistics(servicePackageId,startTime, endTime)); } + + /** + * 文件统计 + * @param fileByTypeQuery + * @return + */ + @GetMapping("/getFileByType") + public CommonResult getFileByType(FileByTypeQuery fileByTypeQuery){ + return success(partnerList.fileStatisticsList(fileByTypeQuery.getServicePackageId(),fileByTypeQuery.getStartTime(),fileByTypeQuery.getEndTime())); + } } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/InspectionBusinessChannelController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/InspectionBusinessChannelController.java index 923af73b..50f36871 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/InspectionBusinessChannelController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/InspectionBusinessChannelController.java @@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; @RestController @RequestMapping("/channel") @@ -23,6 +25,7 @@ public class InspectionBusinessChannelController { @GetMapping("/tree") public CommonResult> getChannelTree(InspectionBusinessChannel channel) { return CommonResult.success(inspectionBusinessChannelService.list(Wrappers.lambdaQuery() + .eq(ObjectUtil.isNotEmpty(channel.getType()), InspectionBusinessChannel::getType, channel.getType()) .like(ObjectUtil.isNotEmpty(channel.getName()), InspectionBusinessChannel::getName, channel.getName()))); } @@ -39,7 +42,18 @@ public class InspectionBusinessChannelController { */ @GetMapping("/{id}") public CommonResult getChannelById(@PathVariable("id") Long id) { - return CommonResult.success(inspectionBusinessChannelService.getById(id)); + InspectionBusinessChannel info = inspectionBusinessChannelService.getById(id); + + //将字符串转为集合 + if (ObjectUtil.isNotEmpty(info.getUserIds())) { + List userIdList = Arrays.stream(info.getUserIds().split(",")) + .filter(s -> s != null && !s.isEmpty()) // 可选:避免空字符串 + .map(Long::valueOf) + .collect(Collectors.toList()); + info.setUserIdList(userIdList); + + } + return CommonResult.success(info); } /** @@ -47,6 +61,13 @@ public class InspectionBusinessChannelController { */ @PutMapping("/update") public CommonResult updateChannel(@RequestBody InspectionBusinessChannel channel) { + if (ObjectUtil.isNotEmpty(channel.getUserIdList())) { + String userIds = channel.getUserIdList().stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + channel.setUserIds(userIds); + + } return CommonResult.success(inspectionBusinessChannelService.updateById(channel)); } @@ -60,10 +81,11 @@ public class InspectionBusinessChannelController { /** * 获取业务渠道或客户来源列表(app) + * * @return */ @GetMapping("/list") - public CommonResult list(){ + public CommonResult list() { return CommonResult.success(inspectionBusinessChannelService.getChannelTree()); } } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/DlInspectionProject.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/DlInspectionProject.java index 59ad0047..b8ea98ea 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/DlInspectionProject.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/DlInspectionProject.java @@ -48,4 +48,7 @@ public class DlInspectionProject extends TenantBaseDO { @TableField(exist = false) private List projectRoyaltyList; -} \ No newline at end of file + + @TableField(exist = false) + private List datetimeRange; +} diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionBusinessChannel.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionBusinessChannel.java index 0233bf3b..56cb2576 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionBusinessChannel.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionBusinessChannel.java @@ -17,7 +17,12 @@ public class InspectionBusinessChannel extends TenantBaseDO { private Integer type; // 0-业务渠道 1-客户来源 + private String userIds; // 绑定的用户ID + // 子节点 @TableField(exist = false) private List children; + + @TableField(exist = false) + private List userIdList; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionInfo.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionInfo.java index aaffd307..873129e5 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionInfo.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionInfo.java @@ -163,6 +163,10 @@ public class InspectionInfo extends TenantBaseDO private String isPickCar; /** 当前流程节点 */ private Integer nowOrderNum; + /** 还车人id */ + private Long returnCarUserId; + /** 是否还车 */ + private Integer isReturnCar; /** 开始检测时需要 传入 选择项目的id、角色id、排序 */ @TableField(exist = false) diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStaff.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStaff.java index 8dcbd552..dd5f0178 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStaff.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStaff.java @@ -99,4 +99,10 @@ public class InspectionStaff extends TenantBaseDO { */ @TableField("folder_id") private Long folderId; + + /** + * 唯一码 + */ + @TableField("unique_code") + private String uniqueCode; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionFileRecordMapper.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionFileRecordMapper.java index a36c37af..31fe7eb6 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionFileRecordMapper.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionFileRecordMapper.java @@ -23,4 +23,6 @@ public interface InspectionFileRecordMapper extends BaseMapper getRecordList(Long id); long queryCount(@Param("servicePackageId") String servicePackageId,@Param("startTime") String startTime, @Param("endTime") String endTime); + + List query(@Param("servicePackageId") String servicePackageId, @Param("startTime") String startTime, @Param("endTime") String endTime); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionInfoMapper.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionInfoMapper.java index 1ffe5f61..1571737e 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionInfoMapper.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionInfoMapper.java @@ -94,4 +94,7 @@ public interface InspectionInfoMapper extends BaseMapper */ IPage selectByUser(@Param("page") IPage page, @Param("roleIds") List roleIds,@Param("inspectionInfo") InspectionInfo inspectionInfo); Long countByUser(@Param("roleIds") List roleIds,@Param("inspectionInfo") InspectionInfo inspectionInfo); + + + IPage geStelectInspectionByBusiness(@Param("page") Page page,@Param("info") InspectionInfo inspectionInfo); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionWorkNodeMapper.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionWorkNodeMapper.java index ecd723fa..11147d46 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionWorkNodeMapper.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionWorkNodeMapper.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.inspection.mapper; import cn.iocoder.yudao.module.inspection.entity.DlInspectionProject; import cn.iocoder.yudao.module.inspection.entity.InspectionWorkNode; +import cn.iocoder.yudao.module.inspection.query.InspectionListQuery; import cn.iocoder.yudao.module.inspection.vo.StaffProjectCountVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -50,5 +51,5 @@ public interface InspectionWorkNodeMapper extends BaseMapper */ List> selectExceptionNodesByInspectionIds(@Param("ids") List idList); - IPage> selectStaffProjectByUserId(@Param("page")Page> page, @Param("userId") Long userId); + IPage> selectStaffProjectByUserId(@Param("page")Page> page, @Param("query") InspectionListQuery query); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/query/FileByTypeQuery.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/query/FileByTypeQuery.java new file mode 100644 index 00000000..b7a8d54b --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/query/FileByTypeQuery.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.inspection.query; + +import lombok.Data; + +@Data +public class FileByTypeQuery { + + /** + * 服务包id + */ + private String servicePackageId; + + /** + * 查询类型 add-新增 update-修改 + */ + private String type; + + /** + * 开始时间 + */ + private String startTime; + + /** + * 结束时间 + */ + private String endTime; +} diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/query/InspectionListQuery.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/query/InspectionListQuery.java new file mode 100644 index 00000000..35a5ff1c --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/query/InspectionListQuery.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.inspection.query; + +import lombok.Data; + +import java.util.List; + +@Data +public class InspectionListQuery { + + /** + * 用户id + */ + private Long userId; + + /** + * 客户来源 + */ + private String customerSource; + + /** + * 时间范围 + */ + private List datetimeRange; + + /** + * 客户来源 + */ + private String customSource; + + /** + * 业务 + */ + private String bussiness; + + /** + * 项目id + */ + private String projectId; +} diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/query/OrderTableQuery.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/query/OrderTableQuery.java index 774b3e90..2822ea03 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/query/OrderTableQuery.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/query/OrderTableQuery.java @@ -43,4 +43,7 @@ public class OrderTableQuery { /** 检测时长 */ private String[] inspectionTime; + + /** 时间范围 */ + private String[] datetimeRange; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/AppInspectionPartnerService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/AppInspectionPartnerService.java index 0fdfa839..165c15ce 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/AppInspectionPartnerService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/AppInspectionPartnerService.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.inspection.service; +import cn.iocoder.yudao.module.inspection.query.FileByTypeQuery; import cn.iocoder.yudao.module.inspection.query.OrderTableQuery; import cn.iocoder.yudao.module.label.vo.LabelPageReqVO; import cn.iocoder.yudao.module.label.vo.LabelRespVO; @@ -262,4 +263,13 @@ public interface AppInspectionPartnerService extends IService * @return */ List> customerSourceCount(String startTime, String endTime, Long businessId); + + /** + * 文件统计列表 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 结果 + */ + Map fileStatisticsList(String servicePackageId, String startTime, String endTime); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionInfoService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionInfoService.java index daf3184c..0931b460 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionInfoService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionInfoService.java @@ -154,9 +154,25 @@ public interface IInspectionInfoService extends IService */ Boolean meetCarPhoto(InspectionWorkNode inspectionWorkNode); + /** + * 还车拍照 + * @param inspectionWorkNode + */ + Boolean returnCarPhoto(InspectionWorkNode inspectionWorkNode); + /** * 引车 * @param inspectionInfo */ void leadCar(InspectionInfo inspectionInfo); + + /** + * 获取业务方工单 + * @param page + * @param inspectionInfo + * @return + */ + IPage geStelectInspectionByBusiness(Page page, InspectionInfo inspectionInfo); + + Map getBusinessCountByType(Integer partnerId); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionFileRecordService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionFileRecordService.java index f89b882e..bb1312da 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionFileRecordService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionFileRecordService.java @@ -21,4 +21,6 @@ public interface InspectionFileRecordService extends IService getRecordList(Long id); long queryCount(String servicePackageId, String startTime, String endTime); + + List query(String servicePackageId, String startTime, String endTime); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionStaffService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionStaffService.java index a6b480c4..de767fcb 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionStaffService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionStaffService.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.inspection.service; import cn.iocoder.yudao.module.inspection.entity.*; import cn.iocoder.yudao.module.inspection.query.GoodsQuery; +import cn.iocoder.yudao.module.inspection.query.InspectionListQuery; import cn.iocoder.yudao.module.inspection.query.InspectionStaffQuery; import cn.iocoder.yudao.module.inspection.vo.*; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -81,6 +82,6 @@ public interface InspectionStaffService extends IService { * @param userId * @return */ - IPage> getFinishProjectByUserId(Page> page, Long userId); + IPage> getFinishProjectByUserId(Page> page, InspectionListQuery query); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java index 21af7b52..b5e7493c 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java @@ -1549,11 +1549,12 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl userIds = new HashSet<>(); userIds.add(info.getUserId()); userIds.add(info.getWorkId()); + userIds.add(info.getReturnCarUserId()); if (info.getLeadManId() != null) userIds.add(info.getLeadManId()); if (info.getMeetManId() != null) userIds.add(info.getMeetManId()); List userList = userService.list(Wrappers.lambdaQuery() - .in(AdminUserDO::getId,userIds)); // 你需新增 getUsers(Collection ids) + .in(AdminUserDO::getId, userIds)); // 你需新增 getUsers(Collection ids) //转为map Map userMap = userList.stream().collect(Collectors.toMap(AdminUserDO::getId, Function.identity())); @@ -1564,11 +1565,13 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl workerInspectionList(Long workerId, String status, String searchValue) { return baseMapper.workerInspectionList(workerId, status, searchValue); @@ -2027,7 +2028,7 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl> res = baseMapper.staticsTable3(partnerId, startTime, endTime); - List> res = baseMapper.selectBusinessStatistics( startTime, endTime); + List> res = baseMapper.selectBusinessStatistics(startTime, endTime); return res; } @@ -2307,16 +2308,46 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl meetManIdCountMap = list.stream() .filter(info -> info.getMeetManId() != null) // 过滤 null 值 .collect(Collectors.groupingBy(InspectionInfo::getMeetManId, Collectors.counting())); + // 根据userId查询还车人 + List returnCarList = inspectionInfoService.list(Wrappers.lambdaQuery() + .eq(InspectionInfo::getIsReturnCar, 1)); + // 统计每个 returnCarUserId 的数量,避免 null key 异常 + Map returnCarUserIdCountMap = returnCarList.stream() + .filter(info -> info.getReturnCarUserId() != null) // 过滤 null 值 + .collect(Collectors.groupingBy(InspectionInfo::getReturnCarUserId, Collectors.counting())); for (Map stringObjectMap : staffCount) { Long userId = (Long) stringObjectMap.get("userId"); List> children = (List>) stringObjectMap.get("children"); - stringObjectMap.put("meetCarCount", meetManIdCountMap.get(userId)); +// stringObjectMap.put("meetCarCount", meetManIdCountMap.get(userId)); + stringObjectMap.put("totalCount", (Long) stringObjectMap.get("totalCount") == null ? 0 : (Long) stringObjectMap.get("totalCount") + (meetManIdCountMap.get(userId) == null ? 0 : meetManIdCountMap.get(userId))); HashMap objectObjectHashMap = new HashMap<>(); objectObjectHashMap.put("count", meetManIdCountMap.get(userId) == null ? 0 : meetManIdCountMap.get(userId)); objectObjectHashMap.put("projectName", "接车"); + children.add(objectObjectHashMap); + //还车 + //设置totalCount + stringObjectMap.put("totalCount", (Long) stringObjectMap.get("totalCount") == null ? 0 : (Long) stringObjectMap.get("totalCount") + (returnCarUserIdCountMap.get(userId) == null ? 0 : returnCarUserIdCountMap.get(userId))); + Map objectObjectHashMap1 = new HashMap<>(); + objectObjectHashMap1.put("count", returnCarUserIdCountMap.get(userId) == null ? 0 : returnCarUserIdCountMap.get(userId)); + objectObjectHashMap1.put("projectName", "还车"); + children.add(objectObjectHashMap1); } + // 按 meetCarCount 降序排序员工 + staffCount.sort(Comparator.comparingLong( + (Map staff) -> (Long) staff.getOrDefault("totalCount", 0L) + ).reversed()); + + // 对每个员工的 children 按 count 降序排序 + staffCount.forEach(staff -> { + List> children = (List>) staff.get("children"); + if (children != null) { + children.sort(Comparator.comparingLong( + (Map child) -> (Long) child.getOrDefault("count", 0L) + ).reversed()); + } + }); return staffCount; } @@ -2328,7 +2359,7 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl fileStatistics(String servicePackageId,String startTime, String endTime) { + public Map fileStatistics(String servicePackageId, String startTime, String endTime) { // 判断开始时间与结束时间如果为空 默认查询本月 if (StringUtils.isEmpty(startTime)) { startTime = DateUtil.format(DateUtil.beginOfMonth(new Date()), "yyyy-MM-dd"); @@ -2337,7 +2368,7 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpllambdaQuery() - .eq(InspectionFile::getServicePackageId, servicePackageId) + .eq(InspectionFile::getServicePackageId, servicePackageId) .between(InspectionFile::getCreateTime, startTime, endTime)); // 查询文件记录表 @@ -2370,4 +2401,35 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl -Integer.parseInt(map.get("theNum").toString()))); return maps; } + + /** + * 文件统计列表 + * + * @param servicePackageId + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 结果 + */ + @Override + public Map fileStatisticsList(String servicePackageId, String startTime, String endTime) { + Map result = new HashMap<>(); + // 根据开始时间与结束时间查询新增文件 + if (StringUtils.isEmpty(startTime)) { + startTime = DateUtil.format(DateUtil.beginOfMonth(new Date()), "yyyy-MM-dd"); + } + if (StringUtils.isEmpty(endTime)) { + endTime = DateUtil.format(DateUtil.endOfMonth(new Date()), "yyyy-MM-dd"); + } + List insertFile = inspectionFileService.list(Wrappers.lambdaQuery() + .eq(InspectionFile::getServicePackageId, servicePackageId) + .between(InspectionFile::getCreateTime, startTime, endTime)); + + result.put("insertFile", insertFile); + + // 根据开始时间与结束时间查询修改文件 + List query = inspectionFileRecordService.query(servicePackageId, startTime, endTime); + result.put("updateFile", query); + + return result; + } } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileRecordServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileRecordServiceImpl.java index e5f078ec..eed17181 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileRecordServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileRecordServiceImpl.java @@ -39,4 +39,15 @@ public class InspectionFileRecordServiceImpl extends ServiceImpl query(String servicePackageId, String startTime, String endTime) { + return baseMapper.query(servicePackageId, startTime, endTime); + } } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java index ff7d076d..820e2af7 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java @@ -419,6 +419,15 @@ public class InspectionInfoServiceImpl extends ServiceImpllambdaUpdate() .eq(InspectionInfo::getId, inspectionInfo.getId()) .set(InspectionInfo::getIsMeetCar, 1)); + + // 查询接车标 + InspectionMeetCarOrder inspectionMeetCarOrder = inspectionMeetCarOrderService.getById(inspectionInfo.getMeetCarId()); + // 判断接车类型是否是业务接车 + if (inspectionMeetCarOrder.getMeetType() == 2) { + // 给对应的业务经理发送消息 + String message = String.format(InspectionConstants.INSPECTION_NOTICE_TEMPLATE_BUSINESS_MANAGER_MEET_CAR_ORDER_CREATE, inspectionInfo.getBuyName() == null ? inspectionInfo.getBuyPhone() : inspectionInfo.getBuyName()); + noticeService.sentMessage(inspectionMeetCarOrder.getMeetManId(), message); + } } workNodeService.saveBatch(inspectionWorkNodes); @@ -830,7 +839,7 @@ public class InspectionInfoServiceImpl extends ServiceImpl getCountByType(Integer partnerId) { // 创建线程池 - ExecutorService executor = Executors.newFixedThreadPool(6); + ExecutorService executor = Executors.newFixedThreadPool(10); try { InspectionInfo inspectionInfo = new InspectionInfo(); @@ -850,9 +859,9 @@ public class InspectionInfoServiceImpl extends ServiceImpl result = new ConcurrentHashMap<>(); // 线程安全 // 这里 `5` 而不是 `6`,因为 i 从 `0` 开始 - CompletableFuture[] futures = new CompletableFuture[9]; + CompletableFuture[] futures = new CompletableFuture[10]; - for (int i = 0; i < 9; i++) { // 改为 `0~4` + for (int i = 0; i < 10; i++) { // 改为 `0~4` final String status = String.valueOf(i + 1); // 深拷贝对象,防止多线程修改冲突 @@ -927,6 +936,38 @@ public class InspectionInfoServiceImpl extends ServiceImpllambdaUpdate() + .eq(InspectionInfo::getId, inspectionWorkNode.getInspectionInfoId()) + .set(InspectionInfo::getIsReturnCar, InspectionConstants.INSPECTION_MEET_CAR_ORDER_IS_MEET_CAR_YES) + .set(InspectionInfo::getReturnCarUserId, SecurityFrameworkUtils.getLoginUserId())); + return true; + } + /** * 引车 * @@ -942,6 +983,83 @@ public class InspectionInfoServiceImpl extends ServiceImpl geStelectInspectionByBusiness(Page page, InspectionInfo inspectionInfo) { + return baseMapper.geStelectInspectionByBusiness(page, inspectionInfo); + } + + /** + * @param partnerId + * @return + */ + @Override + public Map getBusinessCountByType(Integer partnerId) { + // 创建线程池 + ExecutorService executor = Executors.newFixedThreadPool(10); + + try { + InspectionInfo inspectionInfo = new InspectionInfo(); + inspectionInfo.setPartnerId(partnerId.longValue()); + + // 获取当前登录人 + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + // 获取当前登陆人的角色 +// List byUserId = roleService.getByUserId(loginUser.getId()); +// inspectionInfo.setLeadManId(loginUser.getId()); +// List roleIds = byUserId.stream().map(UserRoleDO::getRoleId).collect(Collectors.toList()); + inspectionInfo.setUserId(loginUser.getId()); + + if (!"1".equals(inspectionInfo.getStatus())) { + inspectionInfo.setDealUserId(loginUser.getId()); + } + + Map result = new ConcurrentHashMap<>(); // 线程安全 + + // 这里 `5` 而不是 `6`,因为 i 从 `0` 开始 + CompletableFuture[] futures = new CompletableFuture[3]; + + for (int i = 0; i < 3; i++) { // 改为 `0~4` + final String status = String.valueOf(i + 1); + + // 深拷贝对象,防止多线程修改冲突 + InspectionInfo infoCopy = JSON.parseObject(JSON.toJSONString(inspectionInfo), InspectionInfo.class); + infoCopy.setStatus(status); + + Page page = new Page<>(1, 1); + + futures[i] = CompletableFuture.runAsync(() -> { + IPage inspectionInfoIPage = baseMapper.geStelectInspectionByBusiness(page, infoCopy); + Long count = inspectionInfoIPage.getTotal(); + result.put(status, count); + }, executor); + } + + // 等待所有任务完成 + CompletableFuture.allOf(futures).join(); + + return result; + + } catch (Exception e) { + throw new RuntimeException("Failed to execute tasks in parallel", e); + } finally { + executor.shutdown(); + try { + if (!executor.awaitTermination(10, TimeUnit.SECONDS)) { + executor.shutdownNow(); + } + } catch (InterruptedException e) { + executor.shutdownNow(); + } + } + } + /** * 保存引车员记录 * diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java index 24bc01dd..89c95d47 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java @@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.inspection.entity.InspectionPickCar; import cn.iocoder.yudao.module.inspection.entity.InspectionStaff; import cn.iocoder.yudao.module.inspection.mapper.InspectionStaffMapper; import cn.iocoder.yudao.module.inspection.mapper.InspectionWorkNodeMapper; +import cn.iocoder.yudao.module.inspection.query.InspectionListQuery; import cn.iocoder.yudao.module.inspection.query.InspectionStaffQuery; import cn.iocoder.yudao.module.inspection.service.IInspectionFileService; import cn.iocoder.yudao.module.inspection.service.InspectionStaffService; @@ -20,6 +21,7 @@ import cn.iocoder.yudao.module.inspection.vo.ImportStaffVo; import cn.iocoder.yudao.module.inspection.vo.InspectionStaffExportVo; import cn.iocoder.yudao.module.inspection.vo.InspectionStaffSaveVo; import cn.iocoder.yudao.module.inspection.vo.StaffImportExcelVO; +import cn.iocoder.yudao.module.staff.service.UniqueCodeService; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; import cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO; @@ -38,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -68,6 +71,9 @@ public class InspectionStaffServiceImpl extends ServiceImpl userRoleDTOS = permissionService.userRoleDTOList(Collections.singletonList(id)); inspectionStaffSaveVo.setRoleIds(userRoleDTOS.stream() @@ -145,6 +154,8 @@ public class InspectionStaffServiceImpl extends ServiceImpllambdaUpdate().eq(InspectionStaff::getUserId, inspectionStaffSaveVo.getId()).set(InspectionStaff::getUniqueCode, inspectionStaffSaveVo.getUniqueCode())); + } return inspectionStaffSaveVo; } @@ -259,8 +276,8 @@ public class InspectionStaffServiceImpl extends ServiceImpl> getFinishProjectByUserId(Page> page, Long userId) { - return inspectionWorkNodeMapper.selectStaffProjectByUserId(page,userId); + public IPage> getFinishProjectByUserId(Page> page, InspectionListQuery query) { + return inspectionWorkNodeMapper.selectStaffProjectByUserId(page,query); } /** diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionInfoVo.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionInfoVo.java index cfbbe7bb..bab6ce83 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionInfoVo.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionInfoVo.java @@ -112,4 +112,9 @@ public class InspectionInfoVo { private String isMeetCar; private String otherName; private String otherPhone; + /** 还车人id */ + private Long returnCarUserId; + private String returnCarUserName; + /** 是否还车 */ + private Integer isReturnCar; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionStaffSaveVo.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionStaffSaveVo.java index a0fd7ffc..a85da251 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionStaffSaveVo.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionStaffSaveVo.java @@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.inspection.vo; import cn.iocoder.yudao.annotation.Excel; import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; import cn.iocoder.yudao.module.inspection.entity.InspectionStaff; +import cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; @@ -106,7 +108,12 @@ public class InspectionStaffSaveVo extends InspectionStaff { private List fileList; /** - * 角色集合 + * 角色ID集合 */ private List roleIds; + + /** + * 角色集合 + */ + private List userRoles; } diff --git a/dl-module-inspection/src/main/resources/mapper/InspectionWorkNodeMapper.xml b/dl-module-inspection/src/main/resources/mapper/InspectionWorkNodeMapper.xml index 8be8aefb..a0e37ea9 100644 --- a/dl-module-inspection/src/main/resources/mapper/InspectionWorkNodeMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/InspectionWorkNodeMapper.xml @@ -241,23 +241,27 @@ + diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/AppInspectionPartnerMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/AppInspectionPartnerMapper.xml index cf178e22..c109a971 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/AppInspectionPartnerMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/AppInspectionPartnerMapper.xml @@ -265,7 +265,7 @@ where sig.partner_id =#{partnerId} - AND iwn.status = '3' + AND iwn.type = '0' AND info.status != '1' @@ -476,6 +476,7 @@ FROM count(1) allNum, IFNULL(SUM(ii.status='0'),0) jxzNum, IFNULL(SUM(ii.status='1'),0) ywcNum, + IFNULL(SUM(ii.status='1' and ii.is_pass='0'),0) tblNum, IFNULL(SUM(oi.sku_name LIKE '%年审%'),0) nsNum, IFNULL(SUM(oi.sku_name LIKE '%上户%'),0) shNum, IFNULL(SUM(oi.sku_name LIKE '%非定检%'),0) fdjNum, @@ -710,7 +711,16 @@ FROM AND TIMESTAMPDIFF(MINUTE, ii.start_time, ii.end_time) BETWEEN #{query.inspectionTime[0]} AND #{query.inspectionTime[1]} - + + AND ii.reinspect_count != 0 AND ii.reinspect_count IS NOT NULL + + + AND ii.recheck_count != 0 AND ii.recheck_count IS NOT NULL + + + AND ii.create_time + BETWEEN CONCAT(#{query.datetimeRange[0]},' 00:00:00') AND CONCAT(#{query.datetimeRange[1]},' 23:59:59') + AND ii.start_time IS NOT NULL AND ii.end_time IS NOT NULL AND TIMESTAMPDIFF(MINUTE, ii.start_time, ii.end_time) >= #{query.inspectionTime[0]} diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionFileRecordMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionFileRecordMapper.xml index fda021c7..6715e7de 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionFileRecordMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionFileRecordMapper.xml @@ -20,4 +20,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND record.create_time between #{startTime} and #{endTime} + diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionInfoMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionInfoMapper.xml index eccb4f37..ade6bc61 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionInfoMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionInfoMapper.xml @@ -375,6 +375,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND ii.status = '0' ORDER BY ii.update_time DESC + + + AND ii.is_return_car != 1 + AND ii.status = '1' + ORDER BY ii.update_time DESC + ) AS subquery WHERE rn = 1; @@ -566,6 +572,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND ii.lead_man_id IS NULL AND ii.status = '0' + + + AND ii.is_return_car != 1 + AND ii.status = '1' + ORDER BY ii.update_time DESC + @@ -605,4 +617,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionStaffMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionStaffMapper.xml index f9687111..b082039b 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionStaffMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionStaffMapper.xml @@ -68,7 +68,8 @@ iss.emergency_contact_name, iss.emergency_contact_phone, iss.driver_license_type, - iss.folder_id + iss.folder_id, + iss.unique_code FROM system_users su left join system_user_role sur on su.id = sur.user_id left join system_role sr on sur.role_id = sr.id diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/SysLoginController.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/SysLoginController.java index eee0b6c4..2aaeadc6 100644 --- a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/SysLoginController.java +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/SysLoginController.java @@ -589,6 +589,9 @@ public class SysLoginController { Map map = new HashMap<>(); map.put("partnerId", user.getTenantId()); map.put("user", user); + // 查询用户表信息 + AdminUserDO selectUser = userService.getUser(user.getId()); + map.put("userInfo", selectUser); return CommonResult.success(map); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java index 13b13536..ea768b2c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java @@ -44,4 +44,7 @@ public interface RoleMapper extends BaseMapperX { return selectList(new LambdaQueryWrapperX().in(RoleDO::getCode, codes)); } + default List selectListByPackageIds(@Nullable Collection packageIds){ + return selectList(new LambdaQueryWrapperX().in(RoleDO::getServicePackageId, packageIds).eq(RoleDO::getTenantId, CommonStr.TENANT_ID)); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java index e4081007..3319e480 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java @@ -259,7 +259,8 @@ public class RoleServiceImpl implements RoleService { if (CollectionUtil.isEmpty(codes)) { return Collections.emptyList(); } - return roleMapper.selectListByCodes(codes); +// return roleMapper.selectListByCodes(codes); + return roleMapper.selectListByPackageIds(codes); } /**