diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java
index 093efbac..755571c0 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java
@@ -34,7 +34,6 @@ public class DlRepairTicketsController {
     private DlRepairTicketsService dlRepairTicketsService;
 
 
-
     /**
      * 维修工单表 新增
      *
@@ -140,7 +139,7 @@ public class DlRepairTicketsController {
     @GetMapping("/print/{id}")
     @Operation(summary = "维修工单打印")
     public void printDocument(HttpServletResponse response, @PathVariable String id) {
-        dlRepairTicketsService.print(response,id);
+        dlRepairTicketsService.print(response, id);
     }
 
     /**
@@ -160,19 +159,19 @@ public class DlRepairTicketsController {
     /**
      * 分类查询工单分页
      *
+     * @param repairTicketsReqVO 查询对象
+     * @param pageNo             页码
+     * @param pageSize           条数
      * @author 小李
      * @date 16:26 2024/10/12
-     * @param repairTicketsReqVO 查询对象
-     * @param pageNo 页码
-     * @param pageSize 条数
-    **/
+     **/
     @GetMapping("/pageType")
     @Operation(summary = "分类查询工单分页")
     public CommonResult<?> getPageType(DlRepairTicketsReqVO repairTicketsReqVO,
-                                       @RequestParam(value = "pageNo", defaultValue = "1")Integer pageNo,
-                                       @RequestParam(value = "pageSize", defaultValue = "10")Integer pageSize){
+                                       @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
+                                       @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
         Page<DlRepairTickets> page = new Page<>(pageNo, pageSize);
-        if(StringUtils.isEmpty(repairTicketsReqVO.getSelectType())){
+        if (StringUtils.isEmpty(repairTicketsReqVO.getSelectType())) {
             //查询类型为空,默认查待处理的
             repairTicketsReqVO.setSelectType(RepairCons.TICKETS_WAITING);
         }
@@ -187,20 +186,20 @@ public class DlRepairTicketsController {
      **/
     @GetMapping("/userRole")
     @Operation(summary = "判断登录用户的角色,针对维修工单中的四个角色")
-    public CommonResult<?> getUserRole(){
+    public CommonResult<?> getUserRole() {
         return success(dlRepairTicketsService.getUserRole());
     }
 
     /**
      * 接单
      *
+     * @param id 工单ID
      * @author 小李
      * @date 11:48 2024/10/14
-     * @param id 工单ID
-    **/
+     **/
     @GetMapping("/take")
     @Operation(summary = "接单")
-    public CommonResult<?> updateTake(@RequestParam("id") String id){
+    public CommonResult<?> updateTake(@RequestParam("id") String id) {
         dlRepairTicketsService.updateTake(id);
         return CommonResult.ok();
     }
@@ -208,13 +207,13 @@ public class DlRepairTicketsController {
     /**
      * 指派员工,通知施工
      *
+     * @param reqVO 请求对象
      * @author 小李
      * @date 15:34 2024/10/14
-     * @param reqVO 请求对象
-    **/
+     **/
     @PostMapping("/notify")
     @Operation(summary = "指派员工,通知施工")
-    public CommonResult<?> updateRepair(@RequestBody DlRepairTicketsReqVO reqVO){
+    public CommonResult<?> updateRepair(@RequestBody DlRepairTicketsReqVO reqVO) {
         dlRepairTicketsService.updateRepair(reqVO);
         return CommonResult.ok();
     }
@@ -222,13 +221,13 @@ public class DlRepairTicketsController {
     /**
      * 更新工单状态
      *
+     * @param respVO 请求对象
      * @author 小李
      * @date 15:46 2024/10/18
-     * @param respVO 请求对象
-    **/
+     **/
     @PostMapping("/updateStatus")
     @Operation(summary = "更新工单状态")
-    public CommonResult<?> updateStatus(@RequestBody DlRepairTicketsRespVO respVO){
+    public CommonResult<?> updateStatus(@RequestBody DlRepairTicketsRespVO respVO) {
         dlRepairTicketsService.updateStatus(respVO);
         return CommonResult.ok();
     }
@@ -236,14 +235,14 @@ public class DlRepairTicketsController {
     /**
      * 配件客户是否可见
      *
+     * @param id   工单ID
+     * @param show 是否可见
      * @author 小李
      * @date 21:52 2024/10/18
-     * @param id 工单ID
-     * @param show 是否可见
-    **/
+     **/
     @GetMapping("/show")
     @Operation(summary = "配件客户是否可见")
-    public CommonResult<?> updateShow(@RequestParam("id") String id, @RequestParam("show") String show){
+    public CommonResult<?> updateShow(@RequestParam("id") String id, @RequestParam("show") String show) {
         dlRepairTicketsService.updateShow(id, show);
         return CommonResult.ok();
     }
@@ -252,19 +251,47 @@ public class DlRepairTicketsController {
      * 查待总检或待出厂检验的工单
      * 维修服务顾问和总检用的
      *
+     * @param repairTicketsReqVO 请求对象
+     * @param pageNo             页码
+     * @param pageSize           条数
      * @author 小李
      * @date 11:40 2024/10/23
-     * @param repairTicketsReqVO 请求对象
-     * @param pageNo 页码
-     * @param pageSize 条数
-    **/
+     **/
     @GetMapping("/pageByRole")
     @Operation(summary = "查待总检或待出厂检验的工单")
     public CommonResult<?> getPageByRole(DlRepairTicketsReqVO repairTicketsReqVO,
-                                         @RequestParam(value = "pageNo", defaultValue = "1")Integer pageNo,
-                                         @RequestParam(value = "pageSize", defaultValue = "10")Integer pageSize){
+                                         @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
+                                         @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
         Page<DlRepairTickets> page = new Page<>(pageNo, pageSize);
         return success(dlRepairTicketsService.getPageByRole(repairTicketsReqVO, page));
     }
+
+    /**
+     * 维修总检完成总检
+     *
+     * @author 小李
+     * @date 16:48 2024/10/23
+     * @param respVO 请求对象
+    **/
+    @PostMapping("/inspection")
+    @Operation(summary = "维修总检完成总检")
+    public CommonResult<?> inspection(@RequestBody DlRepairTicketsRespVO respVO) {
+        dlRepairTicketsService.inspection(respVO);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 服务顾问上传出厂检验日志
+     *
+     * @author 小李
+     * @date 17:47 2024/10/23
+     * @param respVO 请求对象
+    **/
+    @PostMapping("/confirm")
+    @Operation(summary = "服务顾问上传出厂检验日志")
+    public CommonResult<?> confirm(@RequestBody DlRepairTicketsRespVO respVO) {
+        dlRepairTicketsService.confirm(respVO);
+        return CommonResult.ok();
+    }
 }
 
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java
index bb8ed44e..5815be2f 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java
@@ -145,4 +145,22 @@ public interface DlRepairTicketsService extends IService<DlRepairTickets> {
      * @param repairTicketsReqVO 请求对象
      **/
     IPage<DlRepairTickets> getPageByRole(DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page);
+
+    /**
+     * 维修总检完成总检
+     *
+     * @author 小李
+     * @date 16:48 2024/10/23
+     * @param respVO 请求对象
+     **/
+    void inspection(DlRepairTicketsRespVO respVO);
+
+    /**
+     * 服务顾问上传出厂检验日志
+     *
+     * @author 小李
+     * @date 17:47 2024/10/23
+     * @param respVO 请求对象
+     **/
+    void confirm(DlRepairTicketsRespVO respVO);
 }
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java
index f6b70473..7d337d5c 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java
@@ -550,7 +550,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
     }
 
     /**
-     * 更新工单状态
+     * 更新工单状态(针对开始施工、施工中记录、施工完成)
      *
      * @param respVO 请求对象
      * @author 小李
@@ -560,9 +560,9 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
     @DSTransactional
     public void updateStatus(DlRepairTicketsRespVO respVO) {
         // 如果是开始施工,但项目还在施工中,就不能施工
-        if (respVO.getRecordType().equals("kssg")){
+        if (respVO.getRecordType().equals("kssg")) {
             DlRepairTitem titem = titemService.getById(respVO.getItem().getId());
-            if (titem.getItemStatus().equals("02")){
+            if (titem.getItemStatus().equals("02")) {
                 throw exception0(500, "选择的项目在施工中,不能重新开始施工");
             }
         }
@@ -571,7 +571,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
             // 更新工单主表
             LambdaUpdateWrapper<DlRepairTickets> wrapper = new LambdaUpdateWrapper<>();
             wrapper.eq(DlRepairTickets::getId, respVO.getId());
-            wrapper.set(DlRepairTickets::getTicketsWorkStatus, respVO.getTicketsWorkStatus());
+//            这里注掉,不能让员工更新工单的状态为完成,后面还有总检、服务顾问
+//            wrapper.set(DlRepairTickets::getTicketsWorkStatus, respVO.getTicketsWorkStatus());
             if (ObjectUtil.isNotEmpty(respVO.getIsFinish())) {
                 wrapper.set(DlRepairTickets::getIsFinish, respVO.getIsFinish());
             }
@@ -604,7 +605,12 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
         // 通知服务顾问
         // 如果员工完成了订单
         if (respVO.getRecordType().equals("sgwczj") && respVO.getFinishType().equals("03")) {
-            repairWorkerService.sentMessage(Long.valueOf(tickets.getAdviserId()), "您有新的工单可以交车");
+            repairWorkerService.sentMessage(Long.valueOf(tickets.getAdviserId()), "您有新的工单可以出厂检验");
+            // 需要把工单的当前操作人移交服务顾问
+            baseMapper.update(new LambdaUpdateWrapper<DlRepairTickets>()
+                    .setSql("now_repair_id = adviser_id")
+                    .setSql("now_repair_name = adviser_name")
+                    .eq(DlRepairTickets::getId, respVO.getId()));
         } else {
             repairWorkerService.sentMessage(Long.valueOf(tickets.getAdviserId()), message);
         }
@@ -622,6 +628,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
             baseMapper.update(new LambdaUpdateWrapper<DlRepairTickets>()
                     .set(DlRepairTickets::getNowRepairId, user.getId())
                     .set(DlRepairTickets::getNowRepairName, user.getNickname())
+                    .set(DlRepairTickets::getTicketsWorkStatus, "05")
                     .eq(DlRepairTickets::getId, respVO.getId()));
             repairWorkerService.sentMessage(user.getId(), "您有新的工单需要总检");
         } else {
@@ -642,7 +649,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
                 return result + "上传了工单:" + no + "中" + projectName + "项目的维修记录";
             // 施工完成
             case "sgwczj":
-                if (ObjectUtil.isNotEmpty(finishType)){
+                if (ObjectUtil.isNotEmpty(finishType)) {
                     result = result + "完成了工单:" + no + "中" + projectName + "项目";
                     switch (finishType) {
                         // 完成并移交下一班组
@@ -657,7 +664,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
                         default:
                             return "异常消息";
                     }
-                }else {
+                } else {
                     return result + "部分完成了工单:" + no + "中" + projectName + "项目";
                 }
             default:
@@ -685,24 +692,72 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
      * 查待总检或待出厂检验的工单
      * 维修服务顾问和总检用的
      *
+     * @param repairTicketsReqVO 请求对象
      * @author 小李
      * @date 11:40 2024/10/23
-     * @param repairTicketsReqVO 请求对象
      **/
     @Override
-    public IPage<DlRepairTickets> getPageByRole(DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page){
+    public IPage<DlRepairTickets> getPageByRole(DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page) {
         String userRoleCode = getUserRole();
+        // 当前操作人的id
+        Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
         // 维修服务顾问
-        if (userRoleCode.equals(RepairRoleEnum.ADVISOR.getCode())){
-
-        }else if (userRoleCode.equals(RepairRoleEnum.INSPECTION.getCode())){
+        if (userRoleCode.equals(RepairRoleEnum.ADVISOR.getCode())) {
+            repairTicketsReqVO.setNowRepairId(loginUserId);
+            repairTicketsReqVO.setIsFinish("1");
+        } else if (userRoleCode.equals(RepairRoleEnum.INSPECTION.getCode())) {
             // 总检
-        }else {
+            repairTicketsReqVO.setNowRepairId(loginUserId);
+            repairTicketsReqVO.setIsFinish("0");
+        } else {
             return null;
         }
-        // 还是用分类查询,不过需要重新构造查询条件 todo
+        // 还是用分类查询,不过需要重新构造查询条件
         return baseMapper.getPageType(repairTicketsReqVO, page);
     }
+
+    /**
+     * 维修总检完成总检
+     *
+     * @author 小李
+     * @date 16:48 2024/10/23
+     * @param respVO 请求对象
+     **/
+    @Override
+    @DSTransactional
+    public void inspection(DlRepairTicketsRespVO respVO){
+        // 新增日志
+        repairRecordsService.saveRepairRecord(respVO.getId(), null, RecordTypeEnum.ZJ.getCode(), respVO.getRemark(), respVO.getImage());
+        // 更新工单
+        baseMapper.update(new LambdaUpdateWrapper<DlRepairTickets>()
+                .set(DlRepairTickets::getIsFinish, "1")
+                .setSql("now_repair_id = adviser_id")
+                .setSql("now_repair_name = adviser_name")
+                .eq(DlRepairTickets::getId, respVO.getId())
+        );
+        // 通知服务顾问
+        DlRepairTickets tickets = baseMapper.selectById(respVO.getId());
+        repairWorkerService.sentMessage(Long.valueOf(tickets.getAdviserId()), "您有新的工单可以出厂检验");
+    }
+
+    /**
+     * 服务顾问上传出厂检验日志
+     *
+     * @author 小李
+     * @date 17:47 2024/10/23
+     * @param respVO 请求对象
+     **/
+    @Override
+    public void confirm(DlRepairTicketsRespVO respVO){
+        // 更新工单状态
+        baseMapper.update(new LambdaUpdateWrapper<DlRepairTickets>()
+                .set(DlRepairTickets::getTicketsWorkStatus, "03")
+                .eq(DlRepairTickets::getId, respVO.getId())
+        );
+
+        // 记录日志
+        repairRecordsService.saveRepairRecord(respVO.getId(), null, RecordTypeEnum.JSGD.getCode(), respVO.getRemark(), respVO.getImage());
+    }
 }
 
 
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java
index feb54588..46017a4d 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java
@@ -256,7 +256,7 @@ public class DlTicketWaresServiceImpl extends ServiceImpl<DlTicketWaresMapper, D
                 // 类型为配件
                 item.setItemType("02");
                 // 状态为未领料
-                item.setItemStatus("08");
+                item.setItemStatus("03");
             });
             repairTitemService.saveBatch(respVO.getWares());
 
diff --git a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml
index ca61ae04..bf4d2801 100644
--- a/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml
+++ b/dl-module-repair/src/main/resources/mapper/tickets/DlRepairTicketsMapper.xml
@@ -226,6 +226,9 @@
                 </when>
             </choose>
         </if>
+        <if test="map.nowRepairId != null and map.nowRepairId != ''">
+            and drt.now_repair_id = #{map.nowRepairId}
+        </if>
         order by drt.create_time desc
     </select>