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 d665189d..ba449e4e 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 @@ -42,4 +42,24 @@ public class InspectionConstants { * key的类型为设备 */ public static final String INSPECTION_STAFF_EQUIPMENT_KEY = "equipment"; + + /** + * 检测接车订单表-没有接车 + */ + public static final Integer INSPECTION_MEET_CAR_ORDER_IS_MEET_CAR_NO = 0; + + /** + * 检测接车订单表-已接车 + */ + public static final Integer INSPECTION_MEET_CAR_ORDER_IS_MEET_CAR_YES = 1; + + /** + * 接车完成类型 - 工单表 + */ + public static final Integer INSPECTION_MEET_CAR_ORDER_IS_MEET_CAR_COMPLETE_TYPE_ORDER = 0; + + /** + * 接车完成类型 - 接车订单表 + */ + public static final Integer INSPECTION_MEET_CAR_ORDER_IS_MEET_CAR_COMPLETE_TYPE_MEET_CAR_ORDER = 1; } 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 f8088267..97e745c8 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 @@ -100,8 +100,9 @@ public class InspectionInfoController extends BaseController { public CommonResult edit(@RequestBody InspectionInfo inspectionInfo) throws Exception { return toAjax(inspectionInfoService.updateInspectionInfo(inspectionInfo)); } + @PostMapping("/updateLeadMan") - public CommonResult updateLeadMan(@RequestBody InspectionInfo inspectionInfo){ + public CommonResult updateLeadMan(@RequestBody InspectionInfo inspectionInfo) { return toAjax(inspectionInfoService.updateLeadMan(inspectionInfo)); } @@ -257,11 +258,12 @@ public class InspectionInfoController extends BaseController { /** * 重新审核 + * * @param inspectionWorkNode * @return */ @PostMapping("recheck") - public CommonResult recheck(@RequestBody InspectionWorkNode inspectionWorkNode){ + public CommonResult recheck(@RequestBody InspectionWorkNode inspectionWorkNode) { inspectionWorkNodeService.recheck(inspectionWorkNode); //发送消息提醒 return success("操作成功"); @@ -269,44 +271,47 @@ public class InspectionInfoController extends BaseController { /** * 判断当前登陆人是否有重检、重审、退办理的权限(app) + * * @return */ @GetMapping("isExamine") - public CommonResult isExamine(){ + public CommonResult isExamine() { return success(inspectionInfoService.isExamine()); } /** * 获取某个工单针对当前操作用户,某个状态的项目们 * + * @param id 工单ID + * @param status 状态 + * @param flag 状态字段是否生效,默认生效 * @author 小李 * @date 10:48 2024/12/11 - * @param id 工单ID - * @param status 状态 - * @param flag 状态字段是否生效,默认生效 - **/ + **/ @GetMapping("/getWorkNodeByIdAndNow") - public CommonResult getWorkNodeByIdAndNow(Long id, String status, @RequestParam(value = "flag", defaultValue = "true") Boolean flag){ + public CommonResult getWorkNodeByIdAndNow(Long id, String status, @RequestParam(value = "flag", defaultValue = "true") Boolean flag) { return success(inspectionInfoService.getWorkNodeByIdAndNow(id, status, flag)); } /** * 判断是否可以修改引车员 * + * @param id 工单ID * @author 小李 * @date 15:22 2024/12/11 - * @param id 工单ID - **/ + **/ @GetMapping("/judgeUpdateLeadMan") - public CommonResult judgeUpdateLeadMan(Long id){ + public CommonResult judgeUpdateLeadMan(Long id) { return success(inspectionInfoService.judgeUpdateLeadMan(id)); } + /** * 判断当前登陆人是否有重检、重审、退办理的权限(app) + * * @return */ - @GetMapping("getRoleList") - public CommonResult getRoleList(){ + @GetMapping("getRoleList") + public CommonResult getRoleList() { return success(inspectionInfoService.getRoleList()); } @@ -328,10 +333,10 @@ public class InspectionInfoController extends BaseController { map.put("vin", inspectionInfos.getCarIdNo()); map.put("day", day); - map.put("one","□"); - map.put("two","□"); - map.put("three","□"); - map.put("four","√"); + map.put("one", "□"); + map.put("two", "□"); + map.put("three", "□"); + map.put("four", "√"); map.put("month", month); map.put("year", year); map.put("carNum", inspectionInfoVo.getCarNum()); @@ -354,8 +359,8 @@ public class InspectionInfoController extends BaseController { * 根据模板导出word */ @PostMapping("/exportWord") - public CommonResult exportWord(HttpServletRequest request, HttpServletResponse response,@RequestBody Map map){ - String str = UUID.randomUUID().toString()+".docx"; + public CommonResult exportWord(HttpServletRequest request, HttpServletResponse response, @RequestBody Map map) { + String str = UUID.randomUUID().toString() + ".docx"; String name = inspectionInfoService.easyPoiExport("template/word/四川省超标排放汽车维护修理告知书.docx", str, map, request, response); return CommonResult.success(name); } @@ -365,19 +370,20 @@ public class InspectionInfoController extends BaseController { * * @author 小李 * @date 16:22 2024/12/18 - **/ + **/ @GetMapping("/getCountByType") - public CommonResult getCountByType(@RequestParam("partnerId")Integer partnerId){ + public CommonResult getCountByType(@RequestParam("partnerId") Integer partnerId) { return success(inspectionInfoService.getCountByType(partnerId)); } /** * 接车拍照 + * * @param inspectionWorkNode * @return */ @PostMapping("/meetCarPhoto") - public CommonResult meetCarPhoto(@RequestBody InspectionWorkNode inspectionWorkNode){ + public CommonResult meetCarPhoto(@RequestBody InspectionWorkNode inspectionWorkNode) { return success(inspectionInfoService.meetCarPhoto(inspectionWorkNode)); } } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionMeetCarOrderController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionMeetCarOrderController.java new file mode 100644 index 00000000..7fb35cbf --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionMeetCarOrderController.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.inspection.controller; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.inspection.entity.InspectionMeetCarOrder; +import cn.iocoder.yudao.module.inspection.service.InspectionMeetCarOrderService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description: 接车订单 + * @Author: 86187 + * @Date: 2025/04/11 11:20 + * @Version: 1.0 + */ +@RestController +@RequestMapping("/admin-api/inspection-meet-car-order") +@RequiredArgsConstructor +public class InspectionMeetCarOrderController { + + private final InspectionMeetCarOrderService inspectionMeetCarOrderService; + + /** + * 新增接车订单 + * + * @param order 接车订单 + * @return + */ + @PostMapping("/add") + public CommonResult add(@RequestBody InspectionMeetCarOrder order) { + // 设置接车员id + order.setMeetManId(SecurityFrameworkUtils.getLoginUserId()); + inspectionMeetCarOrderService.add(order); + return CommonResult.ok(); + } +} 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 a641b9a7..fd285c66 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 @@ -472,7 +472,9 @@ public class PartnerOwnController extends BaseController { //获取到店预约的数据 @GetMapping("/getAppointmentList") - public CommonResult getAppointmentList(Long partnerId, String phoneNum, Integer pageSize, Integer pageNum, String carNo) throws Exception { + public CommonResult getAppointmentList(Long partnerId, String phoneNum, + Integer pageSize, Integer pageNum, + String carNo,@RequestParam(required = false) String startTime,@RequestParam(required = false) String endTime) throws Exception { // LoginUser user = SecurityFrameworkUtils.getLoginUser(); // ShopMallPartners partnersTmp = partnerList.getById(partnerId); // if (!partnersTmp.getUserId().equals(user.getId())){ @@ -480,7 +482,7 @@ public class PartnerOwnController extends BaseController { // } Page page = new Page<>(pageNum, pageSize); // ShopMallPartners shopMallPartners = partnerList.shopInfo(); - IPage appointments = partnerList.getAppointmentList(page, null, phoneNum, carNo); + IPage appointments = partnerList.getAppointmentList(page, null, phoneNum, carNo,startTime,endTime); return success(appointments); } @@ -817,8 +819,8 @@ public class PartnerOwnController extends BaseController { * @date 14:52 2024/12/10 **/ @GetMapping("/getProjectBelowStandardByIds") - public CommonResult getProjectBelowStandardByIds(Long[] ids) { - return success(partnerList.getProjectBelowStandardByIds(ids)); + public CommonResult getProjectBelowStandardByIds(@RequestParam(value = "ids") Long[] ids,@RequestParam(value = "status") String status,@RequestParam(value = "type") String type) { + return success(partnerList.getProjectBelowStandardByIds(ids,status,type)); } /** diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/app/AppPartnerOwnController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/app/AppPartnerOwnController.java index 49b03dcc..cf16d296 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/app/AppPartnerOwnController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/app/AppPartnerOwnController.java @@ -474,7 +474,7 @@ public class AppPartnerOwnController extends BaseController { // return null; // } Page page = new Page<>(pageNum, pageSize); - IPage appointments = partnerList.getAppointmentList(page, partnerId, phoneNum,carNo); + IPage appointments = partnerList.getAppointmentList(page, partnerId, phoneNum,carNo,null,null); return success(appointments); } 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 5abac352..c99909a6 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 @@ -177,4 +177,11 @@ public class InspectionInfo extends TenantBaseDO private String orderId; @TableField(exist = false) private Long appointmentId; + /** + * 类型 :0- 工单表 1- 接车临时表 (只有查询待接车时会有) + */ + @TableField(exist = false) + private Integer sourceType; + @TableField(exist = false) + private String meetCarId; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionMeetCarOrder.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionMeetCarOrder.java new file mode 100644 index 00000000..a91706b9 --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionMeetCarOrder.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.inspection.entity; + +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @Description: 检测接车订单 + * @Author: 86187 + * @Date: 2025/04/11 11:01 + * @Version: 1.0 + */ +@Data +@TableName("inspection_meet_car_order") +public class InspectionMeetCarOrder extends TenantBaseDO { + + /** + * 主键id + */ + @TableId(type = IdType.ASSIGN_ID) + private String id; + + private String buyName; // 用户名称 + + private String userAddress; // 用户地址 + + private String carNum; // 车牌号 + + private String carNature; // 使用性质 + + private String carModel; // 车辆型号 + + private String carIdNo; // 车架号 + + private Date carRegisterDate; // 车辆注册日期 + + private String buyPhone; // 手机号 + + private Long meetManId; // 接车员id + + private Integer isMeet; // 是否接车 0未接 1已接 + + private String inspectionInfoId; +} diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStepInfo.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStepInfo.java index 01a127db..4ed412cd 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStepInfo.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStepInfo.java @@ -22,7 +22,7 @@ public class InspectionStepInfo extends Model { @TableId(type=IdType.AUTO) private Integer id; //检测订单主键 - private Integer inspectionInfoId; + private Object inspectionInfoId; //步骤名称 private String title; //检测结果 diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionWorkNode.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionWorkNode.java index 8e3a1054..3a53fbe1 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionWorkNode.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionWorkNode.java @@ -103,4 +103,9 @@ public class InspectionWorkNode extends TenantBaseDO { /*重检或复检时需要传*/ @TableField(exist = false) private List workNodes; + @TableField(exist = false) + private Integer sourceType; + /** 接车时所传的id*/ + @TableField(exist = false) + private String meetCarId; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionAppointmentMapper.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionAppointmentMapper.java index 1e095213..4689b925 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionAppointmentMapper.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionAppointmentMapper.java @@ -65,7 +65,7 @@ public interface InspectionAppointmentMapper extends BaseMapper getAppointmentList(Page page, @Param("partnerId") Long partnerId, @Param("phoneNum")String phoneNum, @Param("carNo")String carNo); + IPage getAppointmentList(Page page, @Param("partnerId") Long partnerId, @Param("phoneNum")String phoneNum, @Param("carNo")String carNo,@Param("startTime") String startTime, @Param("endTime") String endTime); List getAppointmentOwn(@Param("userId") Long userId); 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 a2307a85..1ffe5f61 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 @@ -93,4 +93,5 @@ public interface InspectionInfoMapper extends BaseMapper * @return */ IPage selectByUser(@Param("page") IPage page, @Param("roleIds") List roleIds,@Param("inspectionInfo") InspectionInfo inspectionInfo); + Long countByUser(@Param("roleIds") List roleIds,@Param("inspectionInfo") InspectionInfo inspectionInfo); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionMeetCarOrderMapper.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionMeetCarOrderMapper.java new file mode 100644 index 00000000..2035bd52 --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionMeetCarOrderMapper.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.inspection.mapper; + +import cn.iocoder.yudao.module.inspection.entity.InspectionInfo; +import cn.iocoder.yudao.module.inspection.entity.InspectionMeetCarOrder; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Description: 接车订单 + * @Author: 86187 + * @Date: 2025/04/11 11:04 + * @Version: 1.0 + */ +@Mapper +public interface InspectionMeetCarOrderMapper extends BaseMapper { +} 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 6ad6882b..8051e3dc 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 @@ -121,7 +121,7 @@ public interface AppInspectionPartnerService extends IService void makeCertOk(Long inspectionId); - IPage getAppointmentList(Page page, Long partnerId, String phoneNum, String carNo); + IPage getAppointmentList(Page page, Long partnerId, String phoneNum, String carNo, String startTime, String endTime); IPage validationList(Page page, Long partnerId, String searchValue); @@ -185,7 +185,7 @@ public interface AppInspectionPartnerService extends IService * @author 小李 * @date 14:52 2024/12/10 **/ - Map getProjectBelowStandardByIds(Long[] ids); + Map>> getProjectBelowStandardByIds(Long[] ids, String status, String type); /** * 根据时间查订单 diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionAppointmentService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionAppointmentService.java index 91792272..6fc667a0 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionAppointmentService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionAppointmentService.java @@ -74,6 +74,6 @@ public interface IInspectionAppointmentService extends IService getAppointmentList(Page page, Long partnerId, String phoneNum, String carNo); + public IPage getAppointmentList(Page page, Long partnerId, String phoneNum, String carNo, String startTime, String endTime); List getAppointmentOwn(); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionMeetCarOrderService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionMeetCarOrderService.java new file mode 100644 index 00000000..df7fda3d --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/InspectionMeetCarOrderService.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.inspection.service; + +import cn.iocoder.yudao.module.inspection.entity.InspectionGoodsSku; +import cn.iocoder.yudao.module.inspection.entity.InspectionMeetCarOrder; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 接车订单 + * @Author: 86187 + * @Date: 2025/04/11 11:05 + * @Version: 1.0 + */ +public interface InspectionMeetCarOrderService extends IService { + /** + * 添加接车订单 + * + * @param order 接车订单 + */ + void add(InspectionMeetCarOrder order); +} 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 3e10f395..a666b4bb 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 @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; @@ -1694,8 +1695,15 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl getAppointmentList(Page page, Long partnerId, String phoneNum, String carNo) { - return appointmentService.getAppointmentList(page, partnerId, phoneNum,carNo); + public IPage getAppointmentList(Page page, Long partnerId, String phoneNum, String carNo, String startTime, String endTime) { + if (StrUtil.isNotEmpty(startTime) && StrUtil.isNotEmpty(endTime)) { + // 拼接时分秒 + startTime = startTime + " 00:00:00"; + // 拼接时分秒 + endTime = endTime + " 23:59:59"; + + } + return appointmentService.getAppointmentList(page, partnerId, phoneNum, carNo, startTime, endTime); } @Override @@ -2034,33 +2042,51 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl getProjectBelowStandardByIds(Long[] ids) { - List inspectionWorkNodes = inspectionWorkNodeService. - list(new LambdaQueryWrapper() + public Map>> getProjectBelowStandardByIds(Long[] ids, String status, String type) { + // 1. 查询符合条件的 InspectionWorkNode + List inspectionWorkNodes = inspectionWorkNodeService + .list(new LambdaQueryWrapper() .in(InspectionWorkNode::getInspectionInfoId, Arrays.asList(ids)) - .eq(InspectionWorkNode::getType, "0")); + .eq(StrUtil.isNotEmpty(status),InspectionWorkNode::getStatus, status) + .eq(StrUtil.isNotEmpty(type),InspectionWorkNode::getType, type)); if (ObjectUtil.isEmpty(inspectionWorkNodes)) { - return null; + return Collections.emptyMap(); // 返回空Map而非null,避免NPE } - List projectIds = inspectionWorkNodes.stream().map(InspectionWorkNode::getProjectId).collect(Collectors.toList()); + + // 2. 提取所有项目ID + List projectIds = inspectionWorkNodes.stream() + .map(InspectionWorkNode::getProjectId) + .distinct() // 去重 + .collect(Collectors.toList()); + if (CollUtil.isEmpty(projectIds)) { - return null; + return Collections.emptyMap(); } + + // 3. 批量查询项目信息 List projects = projectService.listByIds(projectIds); if (CollUtil.isEmpty(projects)) { - return null; + return Collections.emptyMap(); } - Map projectMap = projects.stream().collect(Collectors.toMap(DlInspectionProject::getId, DlInspectionProject::getProjectName)); - Map result = new HashMap<>(); - Map> map = inspectionWorkNodes.stream().collect(Collectors - .groupingBy(InspectionWorkNode::getInspectionInfoId, - Collectors.mapping(InspectionWorkNode::getProjectId, Collectors.toList()))); - for (Long id : ids) { - List values = map.get(id); - String names = values.stream().filter(projectMap::containsKey).map(projectMap::get).collect(Collectors.joining(",")); - result.put(id, names); - } - return result; + + // 4. 构建项目ID -> 项目名称的映射 + Map projectIdToNameMap = projects.stream() + .collect(Collectors.toMap( + DlInspectionProject::getId, + DlInspectionProject::getProjectName)); + + // 5. 按 inspectionInfoId 分组,并转换为 List> + return inspectionWorkNodes.stream() + .collect(Collectors.groupingBy( + InspectionWorkNode::getInspectionInfoId, + Collectors.mapping( + node -> { + Map projectInfo = new HashMap<>(); + projectInfo.put("id", node.getId()); + projectInfo.put("name", projectIdToNameMap.get(node.getProjectId())); + return projectInfo; + }, + Collectors.toList()))); } /** diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionAppointmentServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionAppointmentServiceImpl.java index 4a51b46c..452f9cd3 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionAppointmentServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionAppointmentServiceImpl.java @@ -356,8 +356,8 @@ public class InspectionAppointmentServiceImpl extends ServiceImpl getAppointmentList(Page page, Long partnerId, String phoneNum, String carNo) { - return baseMapper.getAppointmentList(page,partnerId,phoneNum,carNo); + public IPage getAppointmentList(Page page, Long partnerId, String phoneNum, String carNo, String startTime, String endTime) { + return baseMapper.getAppointmentList(page,partnerId,phoneNum,carNo,startTime,endTime); } @Override 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 d3ad8baf..50482543 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 @@ -20,10 +20,12 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.appBase.controller.admin.InspectionSocket; +import cn.iocoder.yudao.module.constant.InspectionConstants; import cn.iocoder.yudao.module.custom.entity.CustomerMain; import cn.iocoder.yudao.module.custom.service.CustomerMainService; import cn.iocoder.yudao.module.infra.service.file.FileService; @@ -124,6 +126,8 @@ public class InspectionInfoServiceImpl extends ServiceImpllambdaUpdate() + .eq(InspectionStepInfo::getInspectionInfoId, inspectionInfo.getMeetCarId()) + .set(InspectionStepInfo::getInspectionInfoId, inspectionInfo.getId())); + + //修改接车订单表中的检测主键id + inspectionMeetCarOrderService.update(Wrappers.lambdaUpdate() + .eq(InspectionMeetCarOrder::getId, inspectionInfo.getMeetCarId()) + .set(InspectionMeetCarOrder::getInspectionInfoId, inspectionInfo.getId())); + + // 修改工单表的是否接车为已接车 + update(Wrappers.lambdaUpdate() + .eq(InspectionInfo::getId, inspectionInfo.getId()) + .set(InspectionInfo::getIsMeetCar, 1)); + } workNodeService.saveBatch(inspectionWorkNodes); // //获取第一个节点的角色 @@ -763,20 +784,20 @@ public class InspectionInfoServiceImpl extends ServiceImpl result = new ConcurrentHashMap<>(); // 线程安全 // 这里 `5` 而不是 `6`,因为 i 从 `0` 开始 - CompletableFuture[] futures = new CompletableFuture[7]; + CompletableFuture[] futures = new CompletableFuture[8]; - for (int i = 0; i < 7; i++) { // 改为 `0~4` + for (int i = 0; i < 8; 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, 10); +// Page page = new Page<>(1, 10); futures[i] = CompletableFuture.runAsync(() -> { - IPage iPage = baseMapper.selectByUser(page, roleIds, infoCopy); - result.put(status, iPage.getTotal()); + Long count = baseMapper.countByUser(roleIds, infoCopy); + result.put(status, count); }, executor); } @@ -805,14 +826,15 @@ public class InspectionInfoServiceImpl extends ServiceImpllambdaUpdate() - .eq(InspectionInfo::getId, inspectionWorkNode.getInspectionInfoId()) - .set(InspectionInfo::getIsMeetCar, "1")); + // 判断接车类型是工单表还是接车订单表 + if (Objects.equals(inspectionWorkNode.getSourceType(), InspectionConstants.INSPECTION_MEET_CAR_ORDER_IS_MEET_CAR_COMPLETE_TYPE_ORDER)) { + //修改主表为已接车 + int update = baseMapper.update(Wrappers.lambdaUpdate() + .eq(InspectionInfo::getId, inspectionWorkNode.getMeetCarId()) + .set(InspectionInfo::getIsMeetCar, InspectionConstants.INSPECTION_MEET_CAR_ORDER_IS_MEET_CAR_YES)); + }else if (Objects.equals(inspectionWorkNode.getSourceType(), InspectionConstants.INSPECTION_MEET_CAR_ORDER_IS_MEET_CAR_COMPLETE_TYPE_MEET_CAR_ORDER)) { + // 修改接车订单表为已接车 + inspectionMeetCarOrderService.update(Wrappers.lambdaUpdate() + .eq(InspectionMeetCarOrder::getId, inspectionWorkNode.getMeetCarId()) + .set(InspectionMeetCarOrder::getIsMeet, InspectionConstants.INSPECTION_MEET_CAR_ORDER_IS_MEET_CAR_YES)); + } + return true; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionMeetCarOrderServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionMeetCarOrderServiceImpl.java new file mode 100644 index 00000000..a343cee5 --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionMeetCarOrderServiceImpl.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.inspection.service.impl; + +import cn.iocoder.yudao.module.inspection.entity.InspectionMeetCarOrder; +import cn.iocoder.yudao.module.inspection.entity.ShopInspectionGoods; +import cn.iocoder.yudao.module.inspection.mapper.AppInspectionGoodsMapper; +import cn.iocoder.yudao.module.inspection.mapper.InspectionMeetCarOrderMapper; +import cn.iocoder.yudao.module.inspection.service.AppInspectionGoodsService; +import cn.iocoder.yudao.module.inspection.service.InspectionMeetCarOrderService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * @Description: 接车订单 + * @Author: 86187 + * @Date: 2025/04/11 11:06 + * @Version: 1.0 + */ +@Service +public class InspectionMeetCarOrderServiceImpl extends ServiceImpl implements InspectionMeetCarOrderService { + /** + * 添加接车订单 + * + * @param order 接车订单 + */ + @Override + public void add(InspectionMeetCarOrder order) { + save(order); + } +} diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml index a9a09300..14364681 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml @@ -113,6 +113,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and ip.car_no like concat('%',#{carNo},'%') + + and ip.appointment_day between #{startTime} and #{endTime} + order by ip.create_time desc + diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionMeetCarOrderMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionMeetCarOrderMapper.xml new file mode 100644 index 00000000..15bacd39 --- /dev/null +++ b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionMeetCarOrderMapper.xml @@ -0,0 +1,8 @@ + + + + + +