feat(workOrder): 优化工单管理功能

- 新增数据权限控制,支持不同角色查看相应工单
- 增加工单驳回和关闭功能
-优化附件和材料保存逻辑
- 修复了一些已知问题
main
litao 1 year ago
parent f20b49f635
commit fe5f22b7bb
  1. 16
      src/main/java/org/springblade/modules/capital/controller/ApplyController.java
  2. 7
      src/main/java/org/springblade/modules/capital/entity/Apply.java
  3. 90
      src/main/java/org/springblade/modules/workOrder/controller/WorkOrderController.java
  4. 5
      src/main/java/org/springblade/modules/workOrder/dto/WorkOrderDTO.java
  5. 17
      src/main/java/org/springblade/modules/workOrder/entity/WorkOrder.java
  6. 27
      src/main/java/org/springblade/modules/workOrder/entity/WorkOrderRepairMaterial.java
  7. 2
      src/main/java/org/springblade/modules/workOrder/service/IWorkOrderService.java
  8. 68
      src/main/java/org/springblade/modules/workOrder/service/impl/KnowledgeBaseServiceImpl.java
  9. 38
      src/main/java/org/springblade/modules/workOrder/service/impl/WorkOrderServiceImpl.java

@ -1,19 +1,3 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.modules.capital.controller; package org.springblade.modules.capital.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

@ -29,6 +29,13 @@ public class Apply extends BaseEntity {
*/ */
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private String code; private String code;
/**
* 工单id
*/
@ApiModelProperty(value = "")
private Long workId;
/** /**
* 申领人 * 申领人
*/ */

@ -8,21 +8,19 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import javax.validation.Valid; import javax.validation.Valid;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.modules.workOrder.dto.WorkOrderDTO; import org.springblade.modules.workOrder.dto.WorkOrderDTO;
import org.springblade.modules.workOrder.entity.Device; import org.springblade.modules.workOrder.entity.Device;
import org.springblade.modules.workOrder.entity.WorkOrderAttach;
import org.springblade.modules.workOrder.entity.WorkOrderRepairMaterial;
import org.springblade.modules.workOrder.service.IDeviceService; import org.springblade.modules.workOrder.service.IDeviceService;
import org.springblade.modules.workOrder.service.IWorkOrderAttachService;
import org.springblade.modules.workOrder.service.IWorkOrderRepairMaterialService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -53,9 +51,7 @@ import javax.servlet.http.HttpServletResponse;
public class WorkOrderController extends BladeController { public class WorkOrderController extends BladeController {
private final IWorkOrderService workOrderService; private final IWorkOrderService workOrderService;
private final IWorkOrderAttachService attachService;
private final IDeviceService deviceService; private final IDeviceService deviceService;
private final IWorkOrderRepairMaterialService materialService;
/** /**
* 工单表 详情 * 工单表 详情
@ -67,6 +63,7 @@ public class WorkOrderController extends BladeController {
WorkOrderVO detail = workOrderService.detail(workOrder); WorkOrderVO detail = workOrderService.detail(workOrder);
return R.data(detail); return R.data(detail);
} }
/** /**
* 工单表 分页 * 工单表 分页
*/ */
@ -74,12 +71,19 @@ public class WorkOrderController extends BladeController {
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入workOrder") @ApiOperation(value = "分页", notes = "传入workOrder")
public R<IPage<WorkOrder>> list(@ApiIgnore WorkOrderDTO workOrderDTO, Query query) { public R<IPage<WorkOrder>> list(@ApiIgnore WorkOrderDTO workOrderDTO, Query query) {
LambdaQueryWrapper<WorkOrder> eq = Wrappers.lambdaQuery(WorkOrder.class) LambdaQueryWrapper<WorkOrder> eq = Wrappers.lambdaQuery(WorkOrder.class);
// .eq(StringUtils.isNotBlank(AuthUtil.getDeptId()), WorkOrder::getCreateDept, AuthUtil.getDeptId()) // 数据权限
.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation()) if (StringUtils.isNotBlank(workOrderDTO.getDataType())) {
eq.eq("1".equals(workOrderDTO.getDataType()), WorkOrder::getCreateUser, AuthUtil.getUserId());// 客户
eq.in("2".equals(workOrderDTO.getDataType()), WorkOrder::getCreateDept, Func.toLongList(AuthUtil.getDeptId()));// 客服
eq.eq("3".equals(workOrderDTO.getDataType()), WorkOrder::getMaintenanceTeam, AuthUtil.getDeptId());// 维修负责人
eq.eq("4".equals(workOrderDTO.getDataType()), WorkOrder::getRepairPerson, AuthUtil.getUserId());// 维修人员
}
eq.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation())
.eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType()) .eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType())
.between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime()) .between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime())
.orderByDesc(WorkOrder::getCreateTime); .orderByDesc(WorkOrder::getCreateTime);
IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), eq); IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), eq);
List<WorkOrder> records = pages.getRecords(); List<WorkOrder> records = pages.getRecords();
for (WorkOrder record : records) { for (WorkOrder record : records) {
@ -102,8 +106,9 @@ public class WorkOrderController extends BladeController {
} }
/** /**
* 工单表 新增 * 工单表 提交
*/ */
@ApiLog(value = "提报管理-工单提交")
@PostMapping("/save") @PostMapping("/save")
@ApiOperationSupport(order = 4) @ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入workOrder") @ApiOperation(value = "新增", notes = "传入workOrder")
@ -118,34 +123,7 @@ public class WorkOrderController extends BladeController {
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入workOrder") @ApiOperation(value = "修改", notes = "传入workOrder")
public R update(@Valid @RequestBody WorkOrderVO workOrder) { public R update(@Valid @RequestBody WorkOrderVO workOrder) {
List<WorkOrderAttach> picAttaches = workOrder.getPicAttaches(); return R.status(workOrderService.updateAttach(workOrder));
// 图片
if (CollectionUtil.isNotEmpty(picAttaches)) {
attachService.remove(Wrappers.lambdaQuery(WorkOrderAttach.class).eq(WorkOrderAttach::getOrderId, workOrder.getId()).eq(WorkOrderAttach::getAttachType, 1));
picAttaches.forEach(picAttache -> {
picAttache.setOrderId(workOrder.getId());
picAttache.setAttachType(1);
}
);
attachService.saveBatch(picAttaches);
}
// 视频
List<WorkOrderAttach> videoAttaches = workOrder.getVideoAttaches();
if (CollectionUtil.isNotEmpty(videoAttaches)) {
attachService.remove(Wrappers.lambdaQuery(WorkOrderAttach.class).eq(WorkOrderAttach::getOrderId, workOrder.getId()).eq(WorkOrderAttach::getAttachType, 2));
videoAttaches.forEach(videoAttache -> {
videoAttache.setOrderId(workOrder.getId());
videoAttache.setAttachType(2);
});
attachService.saveBatch(videoAttaches);
}
List<WorkOrderRepairMaterial> materials = workOrder.getMaterials();
// 维修材料
if (CollectionUtil.isNotEmpty(materials)) {
materials.forEach(material -> material.setOrderId(workOrder.getId()));
materialService.saveBatch(materials);
}
return R.status(workOrderService.updateById(workOrder));
} }
/** /**
@ -188,10 +166,44 @@ public class WorkOrderController extends BladeController {
/** /**
* 评价签字 * 评价签字
*/ */
@ApiLog(value = "提报管理-评价签字")
@PostMapping("/evaluateSign") @PostMapping("/evaluateSign")
@ApiOperationSupport(order = 10) @ApiOperationSupport(order = 10)
@ApiOperation(value = "评价签字", notes = "传入workOrder") @ApiOperation(value = "评价签字", notes = "传入workOrder")
public R evaluateSign(@Valid @RequestBody WorkOrderVO workOrder) { public R evaluateSign(@Valid @RequestBody WorkOrderVO workOrder) {
return R.status(workOrderService.evaluateSign(workOrder)); return R.status(workOrderService.evaluateSign(workOrder));
} }
/**
* 工单表 维修人员驳回
*/
@ApiLog(value = "提报管理-维修人员驳回")
@PostMapping("/repairReject")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "新增或修改", notes = "传入workOrder")
public R repairReject(@Valid @RequestBody WorkOrder workOrder) {
return R.status(workOrderService.updateById(workOrder));
}
/**
* 工单表 维修负责人驳回
*/
@ApiLog(value = "提报管理-维修负责人驳回")
@PostMapping("/submitReject")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "新增或修改", notes = "传入workOrder")
public R submitReject(@Valid @RequestBody WorkOrder workOrder) {
return R.status(workOrderService.updateById(workOrder));
}
/**
* 工单表 客服关闭
*/
@ApiLog(value = "提报管理-工单关闭")
@PostMapping("/clone")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "新增或修改", notes = "传入workOrder")
public R clone(@Valid @RequestBody WorkOrder workOrder) {
return R.status(workOrderService.updateById(workOrder));
}
} }

@ -42,4 +42,9 @@ public class WorkOrderDTO extends WorkOrder{
* 故障类型 * 故障类型
*/ */
private String faultType; private String faultType;
/**
* 数据权限标识1客户 2客服 3维修负责人 4维修人员
*/
private String dataType;
} }

@ -21,6 +21,8 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class WorkOrder extends BaseEntity { public class WorkOrder extends BaseEntity {
// 工单状态(0待客服接单 1待班组派单 2待维修人员确认 3待维修 4待领导审批 5待评价 6已完成 7已驳回(维修人员) 8已驳回(维修负责人) 9已关闭(客服))
/** /**
* 故障位置 * 故障位置
*/ */
@ -171,4 +173,19 @@ public class WorkOrder extends BaseEntity {
* 签名时间 * 签名时间
*/ */
private Date finishTime; private Date finishTime;
/**
* 维修人员驳回原因
*/
private String repaiRejectReason;
/**
* 维修负责人驳回原因
*/
private String repaiTeamRejectReason;
/**
* 关闭原因
*/
private String cloneReason;
} }

@ -1,5 +1,6 @@
package org.springblade.modules.workOrder.entity; package org.springblade.modules.workOrder.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
@ -37,4 +38,30 @@ public class WorkOrderRepairMaterial extends BaseEntity {
* 价格 * 价格
*/ */
private Double materialPrice; private Double materialPrice;
/**
* 类型
*/
private String bigClassId;
/**
* 类型名称
*/
@TableField(exist = false)
private String bigClassName;
/**
* 单位
*/
private String unit;
/**
* 规格
*/
private String rule;
/**
* 型号
*/
private String xh;
} }

@ -40,4 +40,6 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
boolean saveAndAttach(List<WorkOrderVO> workOrder); boolean saveAndAttach(List<WorkOrderVO> workOrder);
boolean evaluateSign(WorkOrderVO workOrder); boolean evaluateSign(WorkOrderVO workOrder);
boolean updateAttach(WorkOrderVO workOrder);
} }

@ -113,33 +113,63 @@ public class KnowledgeBaseServiceImpl extends BaseServiceImpl<KnowledgeBaseMappe
List<KnowledgeBaseAttach> picAttaches = knowledgeBase.getPicAttaches(); List<KnowledgeBaseAttach> picAttaches = knowledgeBase.getPicAttaches();
// 图片 // 图片
if (CollectionUtil.isNotEmpty(picAttaches)) { if (CollectionUtil.isNotEmpty(picAttaches)) {
knowledgeBaseAttachService.remove(Wrappers.lambdaQuery(KnowledgeBaseAttach.class).eq(KnowledgeBaseAttach::getKnowledgeId, knowledgeBase.getId()).eq(KnowledgeBaseAttach::getAttachType, 1)); // 需要新增的附件
picAttaches.forEach(picAttache -> { List<KnowledgeBaseAttach> newSavePic = picAttaches.stream().filter(picAttache -> picAttache.getId() == null).collect(Collectors.toList());
picAttache.setKnowledgeId(knowledgeBase.getId()); // 不删除的附件ids
picAttache.setAttachType(1); List<Long> ids = picAttaches.stream().filter(picAttache -> picAttache.getId() != null).map(KnowledgeBaseAttach::getId).collect(Collectors.toList());
} knowledgeBaseAttachService.remove(Wrappers.lambdaQuery(KnowledgeBaseAttach.class)
); .eq(KnowledgeBaseAttach::getKnowledgeId, knowledgeBase.getId())
knowledgeBaseAttachService.saveBatch(picAttaches); .eq(KnowledgeBaseAttach::getAttachType, 1)
.notIn(CollectionUtils.isNotEmpty(ids), KnowledgeBaseAttach::getId, ids));
if (CollectionUtil.isNotEmpty(newSavePic)) {
newSavePic.forEach(picAttache -> {
picAttache.setKnowledgeId(knowledgeBase.getId());
picAttache.setAttachType(1);
}
);
knowledgeBaseAttachService.saveBatch(newSavePic);
}
} }
// 视频 // 视频
List<KnowledgeBaseAttach> videoAttaches = knowledgeBase.getVideoAttaches(); List<KnowledgeBaseAttach> videoAttaches = knowledgeBase.getVideoAttaches();
if (CollectionUtil.isNotEmpty(videoAttaches)) { if (CollectionUtil.isNotEmpty(videoAttaches)) {
knowledgeBaseAttachService.remove(Wrappers.lambdaQuery(KnowledgeBaseAttach.class).eq(KnowledgeBaseAttach::getKnowledgeId, knowledgeBase.getId()).eq(KnowledgeBaseAttach::getAttachType, 2)); // 需要新增的附件
videoAttaches.forEach(videoAttache -> { List<KnowledgeBaseAttach> newSaveVideo = videoAttaches.stream().filter(picAttache -> picAttache.getId() == null).collect(Collectors.toList());
videoAttache.setKnowledgeId(knowledgeBase.getId()); // 不删除的附件ids
videoAttache.setAttachType(2); List<Long> ids = videoAttaches.stream().filter(picAttache -> picAttache.getId() != null).map(KnowledgeBaseAttach::getId).collect(Collectors.toList());
}); knowledgeBaseAttachService.remove(Wrappers.lambdaQuery(KnowledgeBaseAttach.class)
knowledgeBaseAttachService.saveBatch(videoAttaches); .eq(KnowledgeBaseAttach::getKnowledgeId, knowledgeBase.getId())
.eq(KnowledgeBaseAttach::getAttachType, 2)
.notIn(CollectionUtils.isNotEmpty(ids), KnowledgeBaseAttach::getId, ids));
if (CollectionUtil.isNotEmpty(newSaveVideo)) {
newSaveVideo.forEach(videoAttache -> {
videoAttache.setKnowledgeId(knowledgeBase.getId());
videoAttache.setAttachType(2);
});
knowledgeBaseAttachService.saveBatch(newSaveVideo);
}
} }
List<KnowledgeBaseAttach> files = knowledgeBase.getFiles(); List<KnowledgeBaseAttach> files = knowledgeBase.getFiles();
// 附件 // 附件
if (CollectionUtil.isNotEmpty(files)) { if (CollectionUtil.isNotEmpty(files)) {
knowledgeBaseAttachService.remove(Wrappers.lambdaQuery(KnowledgeBaseAttach.class).eq(KnowledgeBaseAttach::getKnowledgeId, knowledgeBase.getId()).eq(KnowledgeBaseAttach::getAttachType, 3)); // 需要新增的附件
videoAttaches.forEach(file -> { List<KnowledgeBaseAttach> newSaveFile = files.stream().filter(picAttache -> picAttache.getId() == null).collect(Collectors.toList());
file.setKnowledgeId(knowledgeBase.getId()); // 不删除的附件ids
file.setAttachType(3); List<Long> ids = files.stream().filter(picAttache -> picAttache.getId() != null).map(KnowledgeBaseAttach::getId).collect(Collectors.toList());
}); knowledgeBaseAttachService.remove(Wrappers.lambdaQuery(KnowledgeBaseAttach.class)
knowledgeBaseAttachService.saveBatch(files); .eq(KnowledgeBaseAttach::getKnowledgeId, knowledgeBase.getId())
.eq(KnowledgeBaseAttach::getAttachType, 3)
.notIn(CollectionUtils.isNotEmpty(ids), KnowledgeBaseAttach::getId, ids));
if (CollectionUtils.isNotEmpty(newSaveFile)) {
newSaveFile.forEach(file -> {
file.setKnowledgeId(knowledgeBase.getId());
file.setAttachType(3);
});
knowledgeBaseAttachService.saveBatch(newSaveFile);
}
} }
return this.updateById(knowledgeBase); return this.updateById(knowledgeBase);
} }

@ -2,14 +2,15 @@
package org.springblade.modules.workOrder.service.impl; package org.springblade.modules.workOrder.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jodd.util.CollectionUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springblade.common.cache.DictBizCache;
import org.springblade.common.cache.SysCache; import org.springblade.common.cache.SysCache;
import org.springblade.common.cache.UserCache; import org.springblade.common.cache.UserCache;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.modules.system.entity.User; import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IUserService; import org.springblade.modules.system.service.IUserService;
import org.springblade.modules.system.vo.PostVO; import org.springblade.modules.system.vo.PostVO;
@ -37,6 +38,8 @@ import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.springblade.common.enums.DictBizEnum.GOODS_TYPE;
/** /**
* 工单表 服务实现类 * 工单表 服务实现类
* *
@ -79,6 +82,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrderVO.setVideoAttaches(attaches.stream().filter(workOrderAttach -> workOrderAttach.getAttachType() == 2).collect(Collectors.toList())); workOrderVO.setVideoAttaches(attaches.stream().filter(workOrderAttach -> workOrderAttach.getAttachType() == 2).collect(Collectors.toList()));
// 维修材料 // 维修材料
List<WorkOrderRepairMaterial> materials = workOrderRepairMaterialService.list(Wrappers.lambdaQuery(WorkOrderRepairMaterial.class).eq(WorkOrderRepairMaterial::getOrderId, workOrder.getId())); List<WorkOrderRepairMaterial> materials = workOrderRepairMaterialService.list(Wrappers.lambdaQuery(WorkOrderRepairMaterial.class).eq(WorkOrderRepairMaterial::getOrderId, workOrder.getId()));
materials.forEach(material -> material.setBigClassName(DictBizCache.getValue(GOODS_TYPE, material.getBigClassId())));
workOrderVO.setMaterials(materials); workOrderVO.setMaterials(materials);
User user = UserCache.getUser(workOrderVO.getInformant()); User user = UserCache.getUser(workOrderVO.getInformant());
workOrderVO.setInformantName(user != null ? user.getRealName() : ""); workOrderVO.setInformantName(user != null ? user.getRealName() : "");
@ -164,4 +168,36 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return this.updateById(workOrder); return this.updateById(workOrder);
} }
@Override
public boolean updateAttach(WorkOrderVO workOrder) {
List<WorkOrderAttach> picAttaches = workOrder.getPicAttaches();
// 图片
if (org.springblade.core.tool.utils.CollectionUtil.isNotEmpty(picAttaches)) {
workOrderAttachService.remove(Wrappers.lambdaQuery(WorkOrderAttach.class).eq(WorkOrderAttach::getOrderId, workOrder.getId()).eq(WorkOrderAttach::getAttachType, 1));
picAttaches.forEach(picAttache -> {
picAttache.setOrderId(workOrder.getId());
picAttache.setAttachType(1);
}
);
workOrderAttachService.saveBatch(picAttaches);
}
// 视频
List<WorkOrderAttach> videoAttaches = workOrder.getVideoAttaches();
if (org.springblade.core.tool.utils.CollectionUtil.isNotEmpty(videoAttaches)) {
workOrderAttachService.remove(Wrappers.lambdaQuery(WorkOrderAttach.class).eq(WorkOrderAttach::getOrderId, workOrder.getId()).eq(WorkOrderAttach::getAttachType, 2));
videoAttaches.forEach(videoAttache -> {
videoAttache.setOrderId(workOrder.getId());
videoAttache.setAttachType(2);
});
workOrderAttachService.saveBatch(videoAttaches);
}
List<WorkOrderRepairMaterial> materials = workOrder.getMaterials();
// 维修材料
if (CollectionUtil.isNotEmpty(materials)) {
materials.forEach(material -> material.setOrderId(workOrder.getId()));
workOrderRepairMaterialService.saveBatch(materials);
}
return this.updateById(workOrder);
}
} }

Loading…
Cancel
Save