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 e15de1db..8950a930 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 @@ -372,8 +372,8 @@ public class PartnerOwnController extends BaseController { * 店铺核销功能 */ @PostMapping("/takeOut") - public CommonResult takeOut(Long partnerId, Long orderId, Long workId, String carNum) throws Exception { - partnerList.takeOut(partnerId, orderId, workId, carNum); + public CommonResult takeOut(@RequestBody InspectionInfo inspectionInfo) throws Exception { + partnerList.takeOut(inspectionInfo); return success(); } 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 37f22d27..295ef591 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 @@ -169,4 +169,6 @@ public class InspectionInfo extends TenantBaseDO private String leadManName; @TableField(exist = false) private Integer additionalRecording; + @TableField(exist = false) + private String orderId; } 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 75822ac7..a4ff1421 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 @@ -99,7 +99,7 @@ public interface AppInspectionPartnerService extends IService Long orderDetailByCode(Long partnerId, String code) throws Exception; - void takeOut(Long partnerId, Long orderId, Long workId, String carNum) throws Exception; + void takeOut(InspectionInfo inspectionInfo) throws Exception; void addWorker(Long partnerId, String realName, String phoneNum, Long postId) throws Exception; 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 70d29b33..2c397a0c 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 @@ -9,6 +9,7 @@ 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.framework.tenant.core.db.TenantBaseDO; +import cn.iocoder.yudao.module.appBase.controller.admin.InspectionSocket; import cn.iocoder.yudao.module.config.service.IInspSysConfigService; import cn.iocoder.yudao.module.inspection.query.OrderTableQuery; import cn.iocoder.yudao.module.label.vo.LabelRespVO; @@ -24,6 +25,7 @@ import cn.iocoder.yudao.module.payment.entity.OrderInfo; import cn.iocoder.yudao.module.payment.entity.OrderInfoDetail; import cn.iocoder.yudao.module.payment.service.IOrderInfoDetailService; import cn.iocoder.yudao.module.shop.service.IShopMallPartnersService; +import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; @@ -62,6 +64,7 @@ import cn.iocoder.yudao.module.shop.service.IShopUserCarService; import org.apache.commons.lang3.time.DateUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -130,6 +133,13 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl partnerList(Page page, PartnerListQuery partnerListQuery) { @@ -1309,20 +1319,24 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(PartnerCustomerInfo::getPartnerId, partnerId).eq(PartnerCustomerInfo::getUserId, orderInfo.getUserId()); + queryWrapper.eq(PartnerCustomerInfo::getPartnerId, partners.getPartnerId()).eq(PartnerCustomerInfo::getUserId, orderInfo.getUserId()); PartnerCustomerInfo customerInfo = customerInfoService.getOne(queryWrapper); if (ObjectUtil.isEmpty(customerInfo)) { AdminUserDO buyUser = userService.getUser(orderInfo.getUserId()); customerInfo = new PartnerCustomerInfo(); - customerInfo.setPartnerId(partnerId); + customerInfo.setPartnerId(partners.getPartnerId()); customerInfo.setUserId(buyUser.getId()); customerInfo.setCustomerPhone(buyUser.getMobile()); customerInfo.setCustomerName(buyUser.getNickname()); @@ -1378,11 +1395,11 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl inspectionWorkNodes = inspectionInfo.getInspectionWorkNodes(); + + inspectionWorkNodes.stream().forEach(inspectionWorkNode -> { + //检测工单id + inspectionWorkNode.setInspectionInfoId(info.getId()); + //将节点状态设置为未开始 + inspectionWorkNode.setStatus("0"); + }); + workNodeService.saveBatch(inspectionWorkNodes); + //检测步骤表插入检测开始 + InspectionStepInfo stepInfo = new InspectionStepInfo(); + stepInfo.setInspectionInfoId(Integer.parseInt(String.valueOf(info.getId()))); + stepInfo.setTitle("检测开始"); + stepInfo.setCreateTime(new Date()); + stepInfo.setCreator(Integer.parseInt(String.valueOf(loginUser.getId()))); + this.addStepInfo(stepInfo); + + List roleIds = new ArrayList<>(); + /*获取所有的角色id*/ + if (CollUtil.isNotEmpty(inspectionWorkNodes)) { + roleIds = inspectionWorkNodes.stream().map(inspectionWorkNode -> inspectionWorkNode.getRoleId()).collect(Collectors.toList()); + } + //根据角色id获取所有用户 + List listByUserId = roleService.getListByUserIds(roleIds); + List ids = listByUserId.stream().map(UserDTO::getId).collect(Collectors.toList()); + if (ObjectUtil.isNotNull(inspectionInfo.getLeadManId())) { + ids.add(inspectionInfo.getLeadManId()); + } + //给ids去重 + ids = ids.stream().distinct().collect(Collectors.toList()); + // 获取当前共单引车员的id + if (CollUtil.isNotEmpty(ids) && ObjectUtil.isNull(inspectionInfo.getAdditionalRecording())) { + for (Long id : ids) { + inspectionSocket.sendMessage("接工单", id.toString()); + } + } + } @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 111f4581..a47dddde 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 @@ -355,7 +355,6 @@ public class InspectionInfoServiceImpl extends ServiceImpl