|
|
|
|
@ -8,21 +8,19 @@ import io.swagger.annotations.ApiOperation; |
|
|
|
|
import io.swagger.annotations.ApiParam; |
|
|
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
|
|
|
|
|
import javax.validation.Valid; |
|
|
|
|
|
|
|
|
|
import org.springblade.core.log.annotation.ApiLog; |
|
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
|
import org.springblade.core.mp.support.Condition; |
|
|
|
|
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.utils.CollectionUtil; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
|
import org.springblade.modules.workOrder.dto.WorkOrderDTO; |
|
|
|
|
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.IWorkOrderAttachService; |
|
|
|
|
import org.springblade.modules.workOrder.service.IWorkOrderRepairMaterialService; |
|
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
@ -53,9 +51,7 @@ import javax.servlet.http.HttpServletResponse; |
|
|
|
|
public class WorkOrderController extends BladeController { |
|
|
|
|
|
|
|
|
|
private final IWorkOrderService workOrderService; |
|
|
|
|
private final IWorkOrderAttachService attachService; |
|
|
|
|
private final IDeviceService deviceService; |
|
|
|
|
private final IWorkOrderRepairMaterialService materialService; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 工单表 详情 |
|
|
|
|
@ -67,6 +63,7 @@ public class WorkOrderController extends BladeController { |
|
|
|
|
WorkOrderVO detail = workOrderService.detail(workOrder); |
|
|
|
|
return R.data(detail); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 工单表 分页 |
|
|
|
|
*/ |
|
|
|
|
@ -74,12 +71,19 @@ public class WorkOrderController extends BladeController { |
|
|
|
|
@ApiOperationSupport(order = 2) |
|
|
|
|
@ApiOperation(value = "分页", notes = "传入workOrder") |
|
|
|
|
public R<IPage<WorkOrder>> list(@ApiIgnore WorkOrderDTO workOrderDTO, Query query) { |
|
|
|
|
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()) |
|
|
|
|
LambdaQueryWrapper<WorkOrder> eq = Wrappers.lambdaQuery(WorkOrder.class); |
|
|
|
|
// 数据权限
|
|
|
|
|
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()) |
|
|
|
|
.between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime()) |
|
|
|
|
.orderByDesc(WorkOrder::getCreateTime); |
|
|
|
|
|
|
|
|
|
IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), eq); |
|
|
|
|
List<WorkOrder> records = pages.getRecords(); |
|
|
|
|
for (WorkOrder record : records) { |
|
|
|
|
@ -102,8 +106,9 @@ public class WorkOrderController extends BladeController { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 工单表 新增 |
|
|
|
|
* 工单表 提交 |
|
|
|
|
*/ |
|
|
|
|
@ApiLog(value = "提报管理-工单提交") |
|
|
|
|
@PostMapping("/save") |
|
|
|
|
@ApiOperationSupport(order = 4) |
|
|
|
|
@ApiOperation(value = "新增", notes = "传入workOrder") |
|
|
|
|
@ -118,34 +123,7 @@ public class WorkOrderController extends BladeController { |
|
|
|
|
@ApiOperationSupport(order = 5) |
|
|
|
|
@ApiOperation(value = "修改", notes = "传入workOrder") |
|
|
|
|
public R update(@Valid @RequestBody WorkOrderVO workOrder) { |
|
|
|
|
List<WorkOrderAttach> picAttaches = workOrder.getPicAttaches(); |
|
|
|
|
// 图片
|
|
|
|
|
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)); |
|
|
|
|
return R.status(workOrderService.updateAttach(workOrder)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -188,10 +166,44 @@ public class WorkOrderController extends BladeController { |
|
|
|
|
/** |
|
|
|
|
* 评价签字 |
|
|
|
|
*/ |
|
|
|
|
@ApiLog(value = "提报管理-评价签字") |
|
|
|
|
@PostMapping("/evaluateSign") |
|
|
|
|
@ApiOperationSupport(order = 10) |
|
|
|
|
@ApiOperation(value = "评价签字", notes = "传入workOrder") |
|
|
|
|
public R evaluateSign(@Valid @RequestBody WorkOrderVO 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)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|