巡检相关接口

master
liuqingkun 1 year ago
parent 22b111c8e0
commit 5d8330026e
  1. 6
      src/main/java/org/springblade/common/constant/CommonConstant.java
  2. 272
      src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java
  3. 110
      src/main/java/org/springblade/modules/business/contraller/WorkOrderController.java
  4. 81
      src/main/java/org/springblade/modules/business/enums/MaintenanceStatusEnum.java
  5. 23
      src/main/java/org/springblade/modules/business/mapper/WorkOrderApprovalMapper.java
  6. 15
      src/main/java/org/springblade/modules/business/mapper/WorkOrderApprovalMapper.xml
  7. 22
      src/main/java/org/springblade/modules/business/pojo/dto/MaintenanceTaskDto.java
  8. 5
      src/main/java/org/springblade/modules/business/pojo/dto/workorder/WorkOrderDTO.java
  9. 58
      src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenanceTask.java
  10. 5
      src/main/java/org/springblade/modules/business/pojo/entity/workorder/WorkOrder.java
  11. 88
      src/main/java/org/springblade/modules/business/pojo/entity/workorder/WorkOrderApproval.java
  12. 22
      src/main/java/org/springblade/modules/business/service/IWorkOrderApprovalService.java
  13. 3
      src/main/java/org/springblade/modules/business/service/impl/MaintenancePlanServiceImpl.java
  14. 25
      src/main/java/org/springblade/modules/business/service/impl/WorkOrderApprovalServiceImpl.java

@ -81,4 +81,10 @@ public interface CommonConstant {
*/
Integer API_SCOPE_CATEGORY = 2;
String TRUE_STR = "1";
String FALSE_STR = "0";
Integer TRUE_INT = 1;
Integer FALSE_INT = 0;
}

@ -6,23 +6,25 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springblade.common.cache.SysCache;
import org.springblade.common.cache.UserCache;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.boot.ctrl.BladeController;
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.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.pojo.dto.FeedbackDTO;
import org.springblade.modules.business.pojo.entity.Feedback;
import org.springblade.modules.business.enums.MaintenanceStatusEnum;
import org.springblade.modules.business.pojo.dto.MaintenanceTaskDto;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlan;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTaskDetail;
import org.springblade.modules.business.service.IMaintenancePlanService;
import org.springblade.modules.system.pojo.entity.User;
import org.springblade.modules.business.service.IMaintenanceTaskDetailService;
import org.springblade.modules.business.service.IMaintenanceTaskService;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.util.List;
/**
* 维保控制器
@ -31,11 +33,14 @@ import java.time.LocalDate;
*/
@RestController
@AllArgsConstructor
@RequestMapping(CommonConstant.APPLICATION_PROJECT+"/maintenance")
@RequestMapping(CommonConstant.APPLICATION_PROJECT + "/maintenance")
@Tag(name = "维保控制器", description = "维控制器")
public class MaintenanceController extends BladeController {
private final IMaintenancePlanService maintenancePlanService;
private final IMaintenancePlanService planService;
private final IMaintenanceTaskService taskService;
private final IMaintenanceTaskDetailService taskDetailService;
/*---------- 维修计划开始 ----------*/
@ -43,45 +48,38 @@ public class MaintenanceController extends BladeController {
@Operation(summary = "维保计划列表", description = "维保计划列表")
public R<IPage<MaintenancePlan>> planPage(MaintenancePlan plan, Query query) {
LambdaQueryWrapper<MaintenancePlan> wrapper = Wrappers.lambdaQuery(plan).orderByDesc(MaintenancePlan::getCreateTime);
IPage<MaintenancePlan> pages = maintenancePlanService.page(Condition.getPage(query), wrapper);
IPage<MaintenancePlan> pages = this.planService.page(Condition.getPage(query), wrapper);
return R.data(pages);
}
@GetMapping("/plan-detail")
@Operation(summary = "维保计划明细", description = "维保计划明细")
public R planDetail(MaintenancePlan plan) {
return R.data(maintenancePlanService.planDetail(plan));
return R.data(this.planService.planDetail(plan));
}
@PostMapping("/plan-create")
@Operation(summary = "创建维保计划", description = "创建维保计划")
public R planCreate(@RequestBody MaintenancePlan plan) {
return R.status(maintenancePlanService.create(plan));
return R.status(this.planService.create(plan));
}
@PostMapping("/plan-update")
@Operation(summary = "修改维保计划", description = "修改维保计划")
public R planUpdate(@RequestBody MaintenancePlan plan) {
return R.status(maintenancePlanService.planUpdate(plan));
return R.status(this.planService.planUpdate(plan));
}
@PostMapping("/plan-open")
@Operation(summary = "维保计划开启/关闭", description = "维保计划开启/关闭")
public R planOpen(@RequestBody MaintenancePlan plan) {
return R.status(maintenancePlanService.planOpen(plan));
return R.status(this.planService.planOpen(plan));
}
@PostMapping("/plan-remove")
@Operation(summary = "删除维保计划", description = "删除维保计划")
public R planRemove(@RequestParam String ids) {
return R.status(maintenancePlanService.planRemove(Func.toLongList(ids)));
}
@GetMapping("/task-page")
@Operation(summary = "维保任务列表", description = "维保任务列表")
public R taskPage() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
return R.status(planService.planRemove(Func.toLongList(ids)));
}
/*---------- 维修计划结束 ----------*/
@ -93,109 +91,229 @@ public class MaintenanceController extends BladeController {
public R taskCreate() {
LocalDate now = LocalDate.now();
// 注意要查询上一次巡检计划中发现但未维修的
return R.status(maintenancePlanService.createTask(now));
return R.status(planService.createTask(now));
}
@GetMapping("/task-page")
@Operation(summary = "维保任务列表", description = "维保任务列表")
public R taskPage(MaintenanceTask task, Query query) {
LambdaQueryWrapper<MaintenanceTask> wrapper = Wrappers.lambdaQuery(MaintenanceTask.class);
wrapper.eq(MaintenanceTask::getIsDeleted, CommonConstant.FALSE_STR);
IPage<MaintenanceTask> pages = taskService.page(Condition.getPage(query), wrapper);
return R.data(pages);
}
@GetMapping("/task-detail")
@Operation(summary = "任务明细", description = "任务明细")
public R taskDetail() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R taskDetail(@RequestParam Long id) {
MaintenanceTask task = taskService.getById(id);
List<MaintenanceTaskDetail> detailList = taskDetailService.list(Wrappers.lambdaQuery(MaintenanceTaskDetail.class).eq(MaintenanceTaskDetail::getTaskId, id));
MaintenanceTaskDto taskDto = new MaintenanceTaskDto(task, detailList);
return R.data(taskDto);
}
@GetMapping("/task-supervisor-check")
@PostMapping("/task-supervisor-confirm")
@Operation(summary = "主管审核并指定维修人员", description = "主管审核并指定维修人员")
public R taskSupervisorCheck() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R taskSupervisorConfirm(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setServicemanId(task.getServicemanId());
taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_SUPERVISOR_CONFIRM.getValue());
taskService.updateById(taskOld);
return R.success();
}
@GetMapping("/task-serviceman-receive")
@PostMapping("/task-serviceman-receive")
@Operation(summary = "维修人员确认接收", description = "维修人员确认接收")
public R taskServicemanReceive() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R taskServicemanReceive(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_SERVICEMAN_CONFIRM.getValue());
taskService.updateById(taskOld);
return R.success();
}
@GetMapping("/task-serviceman-update-time")
@PostMapping("/task-serviceman-update-time")
@Operation(summary = "维修人员更新预约时间", description = "维修人员更新预约时间")
public R taskServicemanUpdateTime() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R taskServicemanUpdateTime(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setReservationTime(task.getReservationTime());
taskService.updateById(taskOld);
return R.success();
}
@GetMapping("/task-serviceman-update-detail")
@Operation(summary = "维修人员更新维修明细", description = "维修人员更新维修明细")
public R taskServicemanUpdateDetail() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R taskServicemanUpdateDetail(@RequestBody List<MaintenanceTaskDetail> taskDetailList) {
// 只更新设备状态
taskDetailService.saveBatch(taskDetailList);
return R.success();
}
@GetMapping("/task-serviceman-submit")
@PostMapping("/task-serviceman-submit")
@Operation(summary = "维修人员提交巡检完成", description = "维修人员提交巡检完成")
public R taskServicemanSubmit() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R taskServicemanSubmit(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_SERVICEMAN_SUBMIT.getValue());
taskOld.setFinishTime(DateUtil.now());
taskService.updateById(taskOld);
return R.success();
}
@GetMapping("/task-customer-confirm")
@Operation(summary = "客户确认", description = "客户确认")
public R taskCustomerConfirm() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
@PostMapping("/task-customer-confirm")
@Operation(summary = "客户确认巡检完成", description = "客户确认巡检完成")
public R taskCustomerConfirm(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_CUSTOMER_CONFIRM.getValue());
taskService.updateById(taskOld);
return R.success();
}
@PostMapping("/task-customer-refuse")
@Operation(summary = "客户确认巡检未完成", description = "客户确认巡检未完成")
public R taskCustomerRefuse(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setApprovePoint("客户确认巡检结果");
taskOld.setApprovePerson(task.getApprovePerson());
taskOld.setApproveResult(task.getApproveResult());
taskOld.setApproveRemark(task.getApproveRemark());
taskOld.setApproveTime(DateUtil.now());
taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_SERVICEMAN_CONFIRM.getValue());
taskService.updateById(taskOld);
return R.success();
}
/*---------- 维修任务结束 ----------*/
/*---------- 维修方案开始 ----------*/
@PostMapping("/solution-serviceman-save")
@PostMapping("/repair-solution-save")
@Operation(summary = "维修人员保存维修方案", description = "维修人员保存维修方案")
public R solutionServicemanSave() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R repairSolutionSave(@RequestBody MaintenanceTaskDto taskDto) {
MaintenanceTask task = taskDto.getTask();
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_SERVICEMAN_CREATE.getValue());
taskService.updateById(taskOld);
List<MaintenanceTaskDetail> detailList = taskDto.getDetailList();
taskDetailService.saveBatch(detailList);
return R.success();
}
@GetMapping("/solution-serviceman-submit")
@PostMapping("/repair-solution-submit")
@Operation(summary = "维修人员提交维修方案", description = "维修人员提交维修方案")
public R solutionServicemanSubmit() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R repairSolutionSubmit(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_SERVICEMAN_SUBMIT.getValue());
taskService.updateById(taskOld);
return R.success();
}
@PostMapping("/repair-solution-supervisor-confirm")
@Operation(summary = "主管审核维修方案", description = "主管审核维修方案")
public R repairSupervisorConfirm(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_CUSTOMER_CONFIRM.getValue());
taskService.updateById(taskOld);
return R.success();
}
@GetMapping("/solution-supervisor-check")
@PostMapping("/repair-solution-supervisor-refuse")
@Operation(summary = "主管审核维修方案", description = "主管审核维修方案")
public R solutionSupervisorCheck() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R repairSupervisorRefuse(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_SERVICEMAN_CREATE.getValue());
taskService.updateById(taskOld);
return R.success();
}
@GetMapping("/solution-customer-check-detail")
@PostMapping("/repair-solution-customer-confirm")
@Operation(summary = "客户确认维修明细", description = "客户确认维修明细")
public R solutionCustomerCheckDetail() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R repairCustomerConfirmDetail(@RequestBody MaintenanceTaskDto taskDto) {
MaintenanceTask task = taskDto.getTask();
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_REPAIRING.getValue());
taskService.updateById(taskOld);
List<MaintenanceTaskDetail> detailList = taskDto.getDetailList();
taskDetailService.saveBatch(detailList);
return R.success();
}
@PostMapping("/repair-solution-customer-refuse")
@Operation(summary = "客户驳回维修明细", description = "客户驳回维修明细")
public R repairCustomerRefuseDetail(@RequestBody MaintenanceTaskDto taskDto) {
MaintenanceTask task = taskDto.getTask();
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_SERVICEMAN_CREATE.getValue());
taskService.updateById(taskOld);
List<MaintenanceTaskDetail> detailList = taskDto.getDetailList();
taskDetailService.saveBatch(detailList);
return R.success();
}
@GetMapping("/solution-serviceman-finish")
@PostMapping("/repair-serviceman-submit")
@Operation(summary = "维修人员维修完成", description = "维修人员维修完成")
public R solutionServicemanFinish() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R repairServicemanFinish(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_REPAIR_FINISH.getValue());
taskService.updateById(taskOld);
return R.success();
}
@GetMapping("/solution-customer-check-finish")
@PostMapping("/repair-customer-confirm-finish")
@Operation(summary = "客户确认维修完成", description = "客户确认维修完成")
public R solutionCustomerCheckFinish() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R repairCustomerConfirmFinish(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_EVALUATE_FINISH.getValue());
taskService.updateById(taskOld);
return R.success();
}
@GetMapping("/solution-service-check")
@PostMapping("/repair-customer-refuse-finish")
@Operation(summary = "客户确认维修完成", description = "客户确认维修完成")
public R repairCustomerRefuseFinish(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_REPAIRING.getValue());
taskService.updateById(taskOld);
return R.success();
}
@PostMapping("/repair-service-confirm")
@Operation(summary = "客服确认客户付款", description = "客服确认客户付款")
public R solutionServiceCheck() {
User user = UserCache.getUser(AuthUtil.getUserId());
return R.success("");
public R repairServiceConfirm(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_FINISH.getValue());
taskService.updateById(taskOld);
return R.success();
}
@PostMapping("/repair-service-confirm-invoice")
@Operation(summary = "客服确认开发票", description = "客服确认开发票")
public R repairServiceConfirmInvoice(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_INVOICE.getValue());
taskService.updateById(taskOld);
return R.success();
}
/*---------- 维修方案结束 ----------*/

@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.json.JSONObject;
@ -16,10 +15,13 @@ 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.DateUtil;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.modules.business.enums.WorkOrderStatusEnum;
import org.springblade.modules.business.pojo.dto.workorder.WorkOrderDTO;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrder;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderApproval;
import org.springblade.modules.business.pojo.vo.workorder.WorkOrderVO;
import org.springblade.modules.business.service.IWorkOrderApprovalService;
import org.springblade.modules.business.service.IWorkOrderFlowService;
import org.springblade.modules.business.service.IWorkOrderService;
import org.springframework.web.bind.annotation.*;
@ -47,6 +49,8 @@ public class WorkOrderController extends BladeController {
private final IWorkOrderService workOrderService;
private final IWorkOrderApprovalService approvalService;
private final IWorkOrderFlowService flowService;
/**
@ -59,27 +63,27 @@ public class WorkOrderController extends BladeController {
@GetMapping("/page")
public R<IPage<WorkOrder>> page(WorkOrderDTO workOrderDTO, Query query) {
// 创建工作订单的查询条件包装器
LambdaQueryWrapper<WorkOrder> eq = Wrappers.lambdaQuery(WorkOrder.class);
LambdaQueryWrapper<WorkOrder> wrapper = Wrappers.lambdaQuery(WorkOrder.class);
// 数据权限
if (StringUtils.isNotBlank(workOrderDTO.getDataType())) {
switch (workOrderDTO.getDataType()) {
case "1":
// 客户
eq.eq(WorkOrder::getCreateUser, AuthUtil.getUserId());
wrapper.eq(WorkOrder::getCreateUser, AuthUtil.getUserId());
break;
case "2":
// 客服
// eq.in(WorkOrder::getCreateDept, Func.toLongList(AuthUtil.getDeptId()));
eq.ne(WorkOrder::getStatus, WorkOrderStatusEnum.DRAFT.getValue());
wrapper.ne(WorkOrder::getStatus, WorkOrderStatusEnum.DRAFT.getValue());
break;
case "3":
// 维修负责人
eq.ge(WorkOrder::getStatus, WorkOrderStatusEnum.SERVICEMAN_CONFIRM.getValue());
wrapper.ge(WorkOrder::getStatus, WorkOrderStatusEnum.SERVICEMAN_CONFIRM.getValue());
break;
case "4":
// 维修人员
eq.eq(WorkOrder::getRepairPerson, AuthUtil.getUserId());
wrapper.eq(WorkOrder::getRepairPerson, AuthUtil.getUserId());
break;
default:
log.error("数据权限设置失败");
@ -88,15 +92,17 @@ public class WorkOrderController extends BladeController {
}
// 设置查询条件:故障地点、故障类型、创建时间范围,并按创建时间降序排序
eq.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation());
eq.eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType());
eq.in(workOrderDTO.getStatus() != null, WorkOrder::getStatus, workOrderDTO.getStatus());
eq.like(StringUtils.isNotBlank(workOrderDTO.getRequirementCode()), WorkOrder::getRequirementCode, workOrderDTO.getRequirementCode());
eq.between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime());
eq.orderByDesc(WorkOrder::getCreateTime);
wrapper.eq(StringUtils.isNotBlank(workOrderDTO.getFaultLocation()), WorkOrder::getFaultLocation, workOrderDTO.getFaultLocation());
wrapper.eq(StringUtils.isNotBlank(workOrderDTO.getFaultType()), WorkOrder::getFaultType, workOrderDTO.getFaultType());
if (StringUtils.isNotBlank(workOrderDTO.getStatusSearch())) {
wrapper.in(WorkOrder::getStatus, workOrderDTO.getStatusSearch().split(","));
}
wrapper.like(StringUtils.isNotBlank(workOrderDTO.getRequirementCode()), WorkOrder::getRequirementCode, workOrderDTO.getRequirementCode());
wrapper.between(workOrderDTO.getStartTime() != null && workOrderDTO.getEndTime() != null, WorkOrder::getCreateTime, workOrderDTO.getStartTime(), workOrderDTO.getEndTime());
wrapper.orderByDesc(WorkOrder::getCreateTime);
// 执行分页查询
IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), eq);
IPage<WorkOrder> pages = workOrderService.page(Condition.getPage(query), wrapper);
// 返回查询结果
return R.data(pages);
@ -134,7 +140,6 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-修改工单信息")
@PostMapping("/update")
@ApiOperationSupport(order = 5)
public R update(@RequestBody WorkOrderVO workOrder) {
return R.status(workOrderService.updateAttach(workOrder));
}
@ -144,7 +149,6 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-客服审核指定维修人员")
@PostMapping("/service-to-serviceman")
@ApiOperationSupport(order = 6)
public R serviceToServiceman(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setRepairPerson(workOrder.getRepairPerson());
@ -154,7 +158,6 @@ public class WorkOrderController extends BladeController {
workOrderOld.setCustomerOpinion(workOrder.getCustomerOpinion());
workOrderOld.setStatus(WorkOrderStatusEnum.SERVICE_SUBMIT.getValue());
workOrderService.updateById(workOrderOld);
// todo 审核通过
return R.success("");
@ -165,7 +168,6 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-维修人员接收工单")
@PostMapping("/serviceman-receive")
@ApiOperationSupport(order = 6)
public R serviceReceive(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setReceiveOrderTime(DateUtil.now());
@ -182,13 +184,14 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-维修人员拒绝接收工单")
@PostMapping("/serviceman-reject")
@ApiOperationSupport(order = 6)
public R serviceReject(@RequestBody WorkOrder workOrder) {
workOrder = workOrderService.getById(workOrder.getId());
workOrder.setRepaiRejectReason(workOrder.getRepaiRejectReason());
workOrder.setStatus(WorkOrderStatusEnum.CUSTOMER_SUBMIT.getValue());
workOrderService.updateById(workOrder);
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setRepaiRejectReason(workOrder.getRepaiRejectReason());
workOrderOld.setStatus(WorkOrderStatusEnum.CUSTOMER_SUBMIT.getValue());
workOrderService.updateById(workOrderOld);
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.FALSE_STR, DateUtil.now(), workOrder.getRepaiRejectReason());
approvalService.save(approval);
// todo 审核拒绝
return R.success("");
@ -199,11 +202,10 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-维修人员提交维修方案")
@PostMapping("/serviceman-submit")
@ApiOperationSupport(order = 6)
public R serviceSubmit(@RequestBody WorkOrder workOrder) {
workOrder = workOrderService.getById(workOrder.getId());
workOrder.setStatus(WorkOrderStatusEnum.SUPERVISOR_CONFIRM.getValue());
workOrderService.updateById(workOrder);
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setStatus(WorkOrderStatusEnum.SUPERVISOR_CONFIRM.getValue());
workOrderService.updateById(workOrderOld);
// todo 审核通过
@ -215,9 +217,9 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-主管确认维修方案")
@PostMapping("/supervisor-confirm")
@ApiOperationSupport(order = 6)
public R supervisorConfirm(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setApprovePoint("主管审批维修方案");
workOrderOld.setApprovePerson(workOrder.getApprovePerson());
workOrderOld.setApproveResult(workOrder.getApproveResult());
workOrderOld.setApproveTime(workOrder.getApproveTime());
@ -225,6 +227,8 @@ public class WorkOrderController extends BladeController {
workOrderOld.setStatus(WorkOrderStatusEnum.CUSTOMER_CONFIRM.getValue());
workOrderService.updateById(workOrderOld);
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.TRUE_STR, DateUtil.now(), workOrder.getApproveRemark());
approvalService.save(approval);
// todo 审核通过
return R.success("");
@ -235,17 +239,20 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-主管驳回维修方案")
@PostMapping("/supervisor-reject")
@ApiOperationSupport(order = 6)
public R supervisorReject(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setApprovePoint("主管审批维修方案");
workOrderOld.setApprovePerson(workOrder.getApprovePerson());
workOrderOld.setApproveResult(workOrder.getApproveResult());
workOrderOld.setApproveTime(workOrder.getApproveTime());
workOrderOld.setApproveRemark(workOrder.getApproveRemark());
workOrderOld.setRepaiTeamRejectReason(workOrder.getRepaiTeamRejectReason());
workOrderOld.setStatus(WorkOrderStatusEnum.SERVICE_SUBMIT.getValue());
workOrderOld.setStatus(WorkOrderStatusEnum.SERVICEMAN_CONFIRM.getValue());
workOrderService.updateById(workOrderOld);
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.FALSE_STR, DateUtil.now(), workOrder.getApproveRemark());
approvalService.save(approval);
// todo 审核通过
return R.success("");
@ -256,9 +263,9 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-客户确认维修方案")
@PostMapping("/customer-confirm")
@ApiOperationSupport(order = 6)
public R customerConfirm(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setApprovePoint("客户审批维修方案");
workOrderOld.setApprovePerson(workOrder.getApprovePerson());
workOrderOld.setApproveResult(workOrder.getApproveResult());
workOrderOld.setApproveTime(workOrder.getApproveTime());
@ -266,6 +273,9 @@ public class WorkOrderController extends BladeController {
workOrderOld.setStatus(WorkOrderStatusEnum.REPAIRING.getValue());
workOrderService.updateById(workOrderOld);
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.TRUE_STR, DateUtil.now(), workOrder.getApproveRemark());
approvalService.save(approval);
// todo 审核通过
return R.success("");
@ -276,16 +286,18 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-客户驳回维修方案")
@PostMapping("/customer-reject")
@ApiOperationSupport(order = 6)
public R customerReject(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setApprovePoint("客户审批维修方案");
workOrderOld.setApprovePerson(workOrder.getApprovePerson());
workOrderOld.setApproveResult(workOrder.getApproveResult());
workOrderOld.setApproveTime(workOrder.getApproveTime());
workOrderOld.setApproveRemark(workOrder.getApproveRemark());
workOrderOld.setStatus(WorkOrderStatusEnum.SERVICE_SUBMIT.getValue());
workOrderOld.setStatus(WorkOrderStatusEnum.SERVICEMAN_CONFIRM.getValue());
workOrderService.updateById(workOrderOld);
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.FALSE_STR, DateUtil.now(), workOrder.getApproveRemark());
approvalService.save(approval);
// todo 审核通过
return R.success("");
@ -296,7 +308,6 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-维修人员提交维修结果")
@PostMapping("/serviceman-repair-submit")
@ApiOperationSupport(order = 6)
public R servicemanRepairSubmit(@RequestBody WorkOrder workOrder) {
workOrder = workOrderService.getById(workOrder.getId());
workOrder.setStatus(WorkOrderStatusEnum.REPAIR_FINISH.getValue());
@ -312,9 +323,14 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-评价签字")
@PostMapping("/customer-repair-confirm")
@ApiOperationSupport(order = 10)
public R customerRepairConfirm(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setApprovePoint("客户审批维修结果");
workOrderOld.setApprovePerson(AuthUtil.getUserId());
workOrderOld.setApproveResult(CommonConstant.TRUE_INT);
workOrderOld.setApproveTime(DateUtil.now());
workOrderOld.setApproveRemark(StringPool.EMPTY);
workOrderOld.setSignaturePerson(workOrder.getSignaturePerson());
workOrderOld.setSignatureUrl(workOrder.getSignatureUrl());
workOrderOld.setSignatureTime(workOrder.getSignatureTime());
@ -329,6 +345,9 @@ public class WorkOrderController extends BladeController {
}
workOrderService.updateById(workOrderOld);
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.TRUE_STR, DateUtil.now(), workOrder.getApproveRemark());
approvalService.save(approval);
// todo 审核通过
return R.success("");
@ -339,16 +358,19 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-客户确认未完成")
@PostMapping("/customer-repair-reject")
@ApiOperationSupport(order = 10)
public R customerRepairReject(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setApprovePoint("客户审批维修结果");
workOrderOld.setApprovePerson(workOrder.getApprovePerson());
workOrderOld.setApproveResult(workOrder.getApproveResult());
workOrderOld.setApproveTime(workOrder.getApproveTime());
workOrderOld.setApproveResult(workOrder.getApproveResult());
workOrderOld.setStatus(WorkOrderStatusEnum.SERVICE_SUBMIT.getValue());
workOrderOld.setApproveRemark(workOrder.getApproveRemark());
workOrderOld.setStatus(WorkOrderStatusEnum.REPAIRING.getValue());
workOrderService.updateById(workOrderOld);
WorkOrderApproval approval = new WorkOrderApproval(workOrder.getId(), AuthUtil.getUserId(), CommonConstant.FALSE_STR, DateUtil.now(), workOrder.getApproveRemark());
approvalService.save(approval);
// todo 审核通过
return R.success("");
@ -359,7 +381,6 @@ public class WorkOrderController extends BladeController {
*/
@ApiLog(value = "提报管理-工单关闭")
@PostMapping("/service-close")
@ApiOperationSupport(order = 6)
public R serviceClose(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setCloseReason(workOrder.getCloseReason());
@ -371,6 +392,19 @@ public class WorkOrderController extends BladeController {
return R.success("");
}
/**
* 已开发票
*/
@ApiLog(value = "提报管理-已开发票")
@PostMapping("/service-invoice")
public R serviceInvoice(@RequestBody WorkOrder workOrder) {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setStatus(WorkOrderStatusEnum.TICKET.getValue());
workOrderService.updateById(workOrderOld);
return R.success("");
}
/**
* 封装百度接口
*

@ -0,0 +1,81 @@
package org.springblade.modules.business.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 系统字典枚举类
*
* @author Chill
*/
@Getter
@AllArgsConstructor
public enum MaintenanceStatusEnum {
/**
* 任务创建由巡检计划定时任务自动生成巡检任务, 等待主管审核并分配巡检人员
*/
TASK_CREATE(0),
/**
* 主管审核并分配巡检人员 等待维修人员接收
*/
TASK_SUPERVISOR_CONFIRM(1),
/**
* 维修人员确认 等待执行巡检任务
*/
TASK_SERVICEMAN_CONFIRM(2),
/**
* 维修人员提交待客户确认巡检完成
*/
TASK_SERVICEMAN_SUBMIT(3),
/**
* 巡检完成
*/
TASK_CUSTOMER_CONFIRM(4),
/**
* 无需维修
*/
REPAIR_NO(0),
/**
* 维修人员创建维修方案等待提交
*/
REPAIR_SERVICEMAN_CREATE(1),
/**
* 维修人员提交待客户确认巡检完成
*/
REPAIR_SERVICEMAN_SUBMIT(2),
/**
* 维修人员提交待主管审批
*/
REPAIR_SUPERVISOR_CONFIRM(3),
/**
* 主管审批通过待客户审批
*/
REPAIR_CUSTOMER_CONFIRM(4),
/**
* 客户审批通过 维修中
*/
REPAIR_REPAIRING(5),
/**
* 维修完成待评价
*/
REPAIR_REPAIR_FINISH(6),
/**
* 评价完成待客服确认付款
*/
REPAIR_EVALUATE_FINISH(7),
/**
* 客服确认付款, 维修完成
*/
REPAIR_FINISH(8),
/**
* 客服确认开发票
*/
REPAIR_INVOICE(9),
;
final int value;
}

@ -0,0 +1,23 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderApproval;
/**
* 工单审核记录 Mapper 接口
*
* @author BladeX
* @since 2024-10-14
*/
public interface WorkOrderApprovalMapper extends BaseMapper<WorkOrderApproval> {
/**
* 查询最后一次审核
*
* @param workOrderId 工单ID
* @return
*/
WorkOrderApproval selectLastApproval(Long workOrderId);
}

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace = "org.springblade.modules.business.mapper.WorkOrderApprovalMapper">
<!-- 通用查询映射结果 -->
<resultMap id = "workOrderResultMap" type = "org.springblade.modules.business.pojo.entity.workorder.WorkOrderApproval">
</resultMap>
<select id = "selectLastApproval" resultType = "org.springblade.modules.business.pojo.entity.workorder.WorkOrderApproval">
select *
from lab_work_order_approval
where order_id = #{orderId}
order by create_time desc limit 1
</select>
</mapper>

@ -0,0 +1,22 @@
package org.springblade.modules.business.pojo.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTaskDetail;
import java.util.List;
/**
* @author 84018
* @date 2024-11-25 16:16
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MaintenanceTaskDto {
MaintenanceTask task;
List<MaintenanceTaskDetail> detailList;
}

@ -46,4 +46,9 @@ public class WorkOrderDTO extends WorkOrder{
* 数据权限标识1客户 2客服 3维修负责人 4维修人员
*/
private String dataType;
/**
* 状态查询字段
*/
private String statusSearch;
}

@ -59,22 +59,56 @@ public class MaintenanceTask extends BaseEntity {
/**
* 计划开始时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd"
)
@JsonFormat(
pattern = "yyyy-MM-dd"
)
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
/**
* 预约上门时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd"
)
@JsonFormat(
pattern = "yyyy-MM-dd"
)
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date reservationTime;
/**
* 任务状态
*/
private Integer taskStatus;
/**
* 巡检完成时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date finishTime;
/**
* 维修状态
*/
private Integer repairStatus;
/**
* 审批结果0不通过 1通过
*/
private Integer approveResult;
/**
* 审核节点
*/
private String approvePoint;
/**
* 审批人
*/
private Long approvePerson;
/**
* 审批时间
*/
private Date approveTime;
/**
* 审批备注
*/
private String approveRemark;
}

@ -142,7 +142,10 @@ public class WorkOrder extends BaseEntity {
* 审批结果0不通过 1通过
*/
private Integer approveResult;
/**
* 审核节点
*/
private String approvePoint;
/**
* 审批人
*/

@ -0,0 +1,88 @@
package org.springblade.modules.business.pojo.entity.workorder;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 工单审核表 实体类
*
* @author BladeX
* @since 2024-10-14
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("lab_work_order_approval")
@EqualsAndHashCode(callSuper = true)
public class WorkOrderApproval extends BaseEntity {
public WorkOrderApproval(Long orderId, Long personId, String result, Date createTime, String remark) {
this.orderId = orderId;
this.personId = personId;
this.result = result;
this.createTime = createTime;
this.remark = remark;
}
@Schema(
description = "主键id"
)
@TableId(
value = "id",
type = IdType.ASSIGN_ID
)
private Long id;
/**
* 申请单ID
*/
private Long orderId;
/**
* 审核人
*/
@JsonSerialize(
using = ToStringSerializer.class
)
@Schema(
description = "审核人",
hidden = true
)
private Long personId;
/**
* 审核结果
*/
private String result;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@Schema(
description = "审核时间",
hidden = true
)
private Date createTime;
/**
* 备注
*/
private String remark;
}

@ -0,0 +1,22 @@
package org.springblade.modules.business.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderApproval;
/**
* 工单审核记录 服务类
*
* @author BladeX
* @since 2024-10-14
*/
public interface IWorkOrderApprovalService extends BaseService<WorkOrderApproval> {
/**
* 查询最后一次审核
*
* @param workOrderId 工单ID
* @return
*/
WorkOrderApproval selectLastApproval(Long workOrderId);
}

@ -49,9 +49,6 @@ public class MaintenancePlanServiceImpl extends BaseServiceImpl<MaintenancePlanM
}
plan.setIsOpen(0);
plan.setPlanCode("编码格式待定");
// plan.setPlanName("");
// plan.setAddress("");
// plan.setServicemanId(null);
boolean save = this.save(plan);
// 保存巡检计划

@ -0,0 +1,25 @@
package org.springblade.modules.business.service.impl;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.mapper.WorkOrderApprovalMapper;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderApproval;
import org.springblade.modules.business.service.IWorkOrderApprovalService;
import org.springframework.stereotype.Service;
/**
* 工单审核表 服务实现类
*
* @author BladeX
* @since 2024-10-14
*/
@Service
@AllArgsConstructor
public class WorkOrderApprovalServiceImpl extends BaseServiceImpl<WorkOrderApprovalMapper, WorkOrderApproval> implements IWorkOrderApprovalService {
@Override
public WorkOrderApproval selectLastApproval(Long workOrderId) {
return baseMapper.selectLastApproval(workOrderId);
}
}
Loading…
Cancel
Save