From 5f57de111a927d3fbe4d21e5dab7da02fb1c4f13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=85=81=E6=9E=9E?= <3422692813@qq.com> Date: Tue, 25 Mar 2025 14:55:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InspectionAppointmentController.java | 2 - .../inspection/entity/InspectionInfo.java | 6 +++ .../impl/InspectionInfoServiceImpl.java | 42 +++++++++++++++---- .../InspectionAppointmentMapper.xml | 6 ++- .../inspection/InspectionInfoMapper.xml | 6 +++ 5 files changed, 49 insertions(+), 13 deletions(-) diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionAppointmentController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionAppointmentController.java index bc61cdcc..fe425ae1 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionAppointmentController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionAppointmentController.java @@ -60,7 +60,6 @@ public class InspectionAppointmentController extends BaseController /** * 获取【请填写功能名称】详细信息 */ - @PreAuthorize("@ss.hasPermi('system:appointment:query')") @GetMapping(value = "/{id}") public CommonResult getInfo(@PathVariable("id") Long id) { @@ -80,7 +79,6 @@ public class InspectionAppointmentController extends BaseController /** * 修改【请填写功能名称】 */ - @PreAuthorize("@ss.hasPermi('system:appointment:edit')") @PutMapping public CommonResult edit(@RequestBody InspectionAppointment inspectionAppointment) { 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 295ef591..5abac352 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 @@ -96,6 +96,10 @@ public class InspectionInfo extends TenantBaseDO private String customerSource; /** 引车员id*/ private Long leadManId; + /** 接车员id*/ + private Long meetManId; + /** 是否接车*/ + private String isMeetCar; @TableField(exist = false) private String lastTitle; @@ -171,4 +175,6 @@ public class InspectionInfo extends TenantBaseDO private Integer additionalRecording; @TableField(exist = false) private String orderId; + @TableField(exist = false) + private Long appointmentId; } 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 2bc45664..bc98d7b4 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 @@ -42,8 +42,10 @@ import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMapper; import cn.iocoder.yudao.module.system.service.permission.RoleService; import cn.iocoder.yudao.module.system.service.user.AdminUserService; import cn.iocoder.yudao.util.SendSmsUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.iocoder.yudao.util.StringUtils; @@ -120,6 +122,8 @@ public class InspectionInfoServiceImpl extends ServiceImpllambdaUpdate() + .eq(InspectionAppointment::getId, inspectionInfo.getAppointmentId()) + .set(InspectionAppointment::getOrderId, orderInfo.getId())); + + //修改订单的核销时间 + orderInfoService.update(Wrappers.lambdaUpdate() + .eq(OrderInfo::getId, orderInfo.getId()) + .set(OrderInfo::getValidationTime, new Date())); + } inspectionInfo.setInspectionOrderId(orderInfo.getId()); inspectionInfo.setPartnerId(partners.getPartnerId()); inspectionInfo.setWorkerName(workerUser.getNickname()); @@ -725,24 +743,23 @@ public class InspectionInfoServiceImpl extends ServiceImpl byUserId = roleService.getByUserId(loginUser.getId()); inspectionInfo.setLeadManId(loginUser.getId()); List roleIds = byUserId.stream().map(UserRoleDO::getRoleId).collect(Collectors.toList()); + if (!"1".equals(inspectionInfo.getStatus())) { - // 进行中 已完成 inspectionInfo.setDealUserId(loginUser.getId()); } - Map result = new ConcurrentHashMap<>(); // 使用ConcurrentHashMap以确保线程安全 + Map result = new ConcurrentHashMap<>(); // 线程安全 - // 定义一个数组来保存所有的CompletableFuture + // 这里 `5` 而不是 `6`,因为 i 从 `0` 开始 CompletableFuture[] futures = new CompletableFuture[6]; - for (int i = 1; i < 6; i++) { - final String status = String.valueOf(i); + for (int i = 0; i < 6; i++) { // 改为 `0~4` + final String status = String.valueOf(i + 1); - // 复制一份inspectionInfo对象,避免多线程修改同一个对象导致的问题 - InspectionInfo infoCopy = BeanUtil.toBean(inspectionInfo, InspectionInfo.class); + // 深拷贝对象,防止多线程修改冲突 + InspectionInfo infoCopy = JSON.parseObject(JSON.toJSONString(inspectionInfo), InspectionInfo.class); infoCopy.setStatus(status); - // 为每个任务创建一个新的Page对象 Page page = new Page<>(1, 10); futures[i] = CompletableFuture.runAsync(() -> { @@ -759,8 +776,15 @@ public class InspectionInfoServiceImpl extends ServiceImpl 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 08ece9fa..60a218ba 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionInfoMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionInfoMapper.xml @@ -355,6 +355,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND iwn.deal_user_id = #{inspectionInfo.dealUserId} ORDER BY iwn.update_time DESC + + + AND ii.is_meet_car = '0' + AND ii.meet_man_id = #{inspectionInfo.dealUserId} + ORDER BY iwn.update_time DESC + ) AS subquery WHERE rn = 1;