巡检相关接口

master
liuqingkun 1 year ago
parent 6a7c09303a
commit f014bdc586
  1. 2
      src/main/java/org/springblade/modules/business/config/ScheduledService.java
  2. 86
      src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java
  3. 18
      src/main/java/org/springblade/modules/business/enums/MaintenanceStatusEnum.java
  4. 8
      src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenancePlanDetail.java
  5. 26
      src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenanceTask.java
  6. 32
      src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenanceTaskDetail.java
  7. 14
      src/main/java/org/springblade/modules/business/service/IMaintenanceTaskService.java
  8. 19
      src/main/java/org/springblade/modules/business/service/impl/MaintenancePlanServiceImpl.java
  9. 65
      src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java

@ -18,7 +18,7 @@ public class ScheduledService {
/**
* 每天零点生成新的巡查任务
*/
@Scheduled(cron = "0 0 0 * * ? ")
@Scheduled(cron = "0 25 14 * * ? ")
private void toVideoTransformation() {
LocalDate now = LocalDate.now();
maintenancePlanService.createTask(now);

@ -24,6 +24,7 @@ import org.springblade.modules.business.service.IMaintenanceTaskService;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
/**
@ -99,6 +100,9 @@ public class MaintenanceController extends BladeController {
public R taskPage(MaintenanceTask task, Query query) {
LambdaQueryWrapper<MaintenanceTask> wrapper = Wrappers.lambdaQuery(MaintenanceTask.class);
wrapper.eq(MaintenanceTask::getIsDeleted, CommonConstant.FALSE_STR);
if (Func.isNotEmpty(task.getPlanId())) {
wrapper.eq(MaintenanceTask::getPlanId, task.getPlanId());
}
IPage<MaintenanceTask> pages = taskService.page(Condition.getPage(query), wrapper);
return R.data(pages);
@ -107,11 +111,8 @@ public class MaintenanceController extends BladeController {
@GetMapping("/task-detail")
@Operation(summary = "任务明细", description = "任务明细")
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);
MaintenanceTask task = taskService.taskDetail(id);
return R.data(task);
}
@PostMapping("/task-supervisor-confirm")
@ -129,6 +130,7 @@ public class MaintenanceController extends BladeController {
@Operation(summary = "维修人员确认接收", description = "维修人员确认接收")
public R taskServicemanReceive(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setStartTime(DateUtil.now());
taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_SERVICEMAN_CONFIRM.getValue());
taskService.updateById(taskOld);
@ -145,11 +147,19 @@ public class MaintenanceController extends BladeController {
return R.success();
}
@GetMapping("/task-serviceman-update-detail")
@PostMapping("/task-serviceman-update-detail")
@Operation(summary = "维修人员更新维修明细", description = "维修人员更新维修明细")
public R taskServicemanUpdateDetail(@RequestBody List<MaintenanceTaskDetail> taskDetailList) {
// 获取详细中的异常项目数量
long count = taskDetailList.stream().filter(e -> CommonConstant.TRUE_INT.equals(e.getStatus())).count();
if (count > 0) {
// 若异常数量大于0, 更新巡检的维修状态
MaintenanceTask taskOld = taskService.getById(taskDetailList.get(0).getTaskId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_SERVICEMAN_CREATE.getValue());
}
// 只更新设备状态
taskDetailService.saveBatch(taskDetailList);
taskDetailService.saveOrUpdateBatch(taskDetailList);
return R.success();
}
@ -193,6 +203,29 @@ public class MaintenanceController extends BladeController {
/*---------- 维修任务结束 ----------*/
/*---------- 维修方案开始 ----------*/
@GetMapping("/repair-page")
@Operation(summary = "维保维修列表", description = "维保维修列表")
public R repairPage(MaintenanceTask task, Query query) {
LambdaQueryWrapper<MaintenanceTask> wrapper = Wrappers.lambdaQuery(MaintenanceTask.class);
wrapper.eq(MaintenanceTask::getIsDeleted, CommonConstant.FALSE_STR);
wrapper.gt(MaintenanceTask::getRepairStatus, MaintenanceStatusEnum.REPAIR_NO.getValue());
if (Func.isNotEmpty(task.getPlanId())) {
wrapper.eq(MaintenanceTask::getPlanId, task.getPlanId());
}
if (Func.isNotEmpty(task.getDeptName())) {
wrapper.eq(MaintenanceTask::getDeptName, task.getDeptName());
}
IPage<MaintenanceTask> pages = taskService.page(Condition.getPage(query), wrapper);
return R.data(pages);
}
@GetMapping("/repair-detail")
@Operation(summary = "任务明细", description = "任务明细")
public R repairDetail(@RequestParam Long id) {
MaintenanceTask task = taskService.repairDetail(id);
return R.data(task);
}
@PostMapping("/repair-solution-save")
@Operation(summary = "维修人员保存维修方案", description = "维修人员保存维修方案")
@ -203,7 +236,7 @@ public class MaintenanceController extends BladeController {
taskService.updateById(taskOld);
List<MaintenanceTaskDetail> detailList = taskDto.getDetailList();
taskDetailService.saveBatch(detailList);
taskDetailService.saveOrUpdateBatch(detailList);
return R.success();
}
@ -222,7 +255,7 @@ public class MaintenanceController extends BladeController {
@Operation(summary = "主管审核维修方案", description = "主管审核维修方案")
public R repairSupervisorConfirm(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_CUSTOMER_CONFIRM.getValue());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_SUPERVISOR_CONFIRM.getValue());
taskService.updateById(taskOld);
return R.success();
@ -232,6 +265,11 @@ public class MaintenanceController extends BladeController {
@Operation(summary = "主管审核维修方案", description = "主管审核维修方案")
public R repairSupervisorRefuse(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setApprovePoint("主管审核维修方案");
taskOld.setApprovePerson(task.getApprovePerson());
taskOld.setApproveResult(CommonConstant.FALSE_INT);
taskOld.setApproveTime(DateUtil.now());
taskOld.setApproveRemark(task.getApproveRemark());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_SERVICEMAN_CREATE.getValue());
taskService.updateById(taskOld);
@ -243,26 +281,27 @@ public class MaintenanceController extends BladeController {
public R repairCustomerConfirmDetail(@RequestBody MaintenanceTaskDto taskDto) {
MaintenanceTask task = taskDto.getTask();
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_REPAIRING.getValue());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_CUSTOMER_CONFIRM.getValue());
taskService.updateById(taskOld);
List<MaintenanceTaskDetail> detailList = taskDto.getDetailList();
taskDetailService.saveBatch(detailList);
taskDetailService.updateBatchById(detailList);
return R.success();
}
@PostMapping("/repair-solution-customer-refuse")
@Operation(summary = "客户驳回维修明细", description = "客户驳回维修明细")
public R repairCustomerRefuseDetail(@RequestBody MaintenanceTaskDto taskDto) {
MaintenanceTask task = taskDto.getTask();
public R repairCustomerRefuseDetail(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setApprovePoint("客户审核维修方案");
taskOld.setApprovePerson(task.getApprovePerson());
taskOld.setApproveResult(CommonConstant.FALSE_INT);
taskOld.setApproveTime(DateUtil.now());
taskOld.setApproveRemark(task.getApproveRemark());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_SERVICEMAN_CREATE.getValue());
taskService.updateById(taskOld);
List<MaintenanceTaskDetail> detailList = taskDto.getDetailList();
taskDetailService.saveBatch(detailList);
return R.success();
}
@ -290,7 +329,7 @@ public class MaintenanceController extends BladeController {
@Operation(summary = "客户确认维修完成", description = "客户确认维修完成")
public R repairCustomerRefuseFinish(@RequestBody MaintenanceTask task) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_REPAIRING.getValue());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_CUSTOMER_CONFIRM.getValue());
taskService.updateById(taskOld);
return R.success();
@ -308,10 +347,15 @@ public class MaintenanceController extends BladeController {
@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);
public R repairServiceConfirmInvoice(@RequestBody List<MaintenanceTask> taskList) {
List<MaintenanceTask> taskOldList = new ArrayList<>();
for (MaintenanceTask task : taskList) {
MaintenanceTask taskOld = taskService.getById(task.getId());
taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_INVOICE.getValue());
taskOldList.add(taskOld);
}
taskService.updateBatchById(taskOldList);
return R.success();
}

@ -42,38 +42,34 @@ public enum MaintenanceStatusEnum {
* 维修人员创建维修方案等待提交
*/
REPAIR_SERVICEMAN_CREATE(1),
/**
* 维修人员提交待客户确认巡检完成
*/
REPAIR_SERVICEMAN_SUBMIT(2),
/**
* 维修人员提交待主管审批
*/
REPAIR_SUPERVISOR_CONFIRM(3),
REPAIR_SERVICEMAN_SUBMIT(2),
/**
* 主管审批通过待客户审批
*/
REPAIR_CUSTOMER_CONFIRM(4),
REPAIR_SUPERVISOR_CONFIRM(3),
/**
* 客户审批通过 维修中
*/
REPAIR_REPAIRING(5),
REPAIR_CUSTOMER_CONFIRM(4),
/**
* 维修完成待评价
*/
REPAIR_REPAIR_FINISH(6),
REPAIR_REPAIR_FINISH(5),
/**
* 评价完成待客服确认付款
*/
REPAIR_EVALUATE_FINISH(7),
REPAIR_EVALUATE_FINISH(6),
/**
* 客服确认付款, 维修完成
*/
REPAIR_FINISH(8),
REPAIR_FINISH(7),
/**
* 客服确认开发票
*/
REPAIR_INVOICE(9),
REPAIR_INVOICE(8),
;
final int value;

@ -73,12 +73,8 @@ public class MaintenancePlanDetail 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;
/**

@ -1,14 +1,17 @@
package org.springblade.modules.business.pojo.entity.maintenance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.modules.business.pojo.entity.DeviceAttach;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 维保任务
@ -21,6 +24,12 @@ import java.util.Date;
@Schema(description = "维保任务")
public class MaintenanceTask extends BaseEntity {
/**
* 业务状态, 0:正常 1异常
*/
@Schema(description = "业务状态", hidden = true)
private Integer status;
/**
* 计划ID
*/
@ -36,6 +45,11 @@ public class MaintenanceTask extends BaseEntity {
*/
private Long deptId;
/**
* 单位名称
*/
private String deptName;
/**
* 项目名称
*/
@ -111,4 +125,16 @@ public class MaintenanceTask extends BaseEntity {
*/
private String approveRemark;
/**
* 附件详情
*/
@TableField(exist = false)
private List<DeviceAttach> attaches;
/**
* 计划详情
*/
@TableField(exist = false)
private List<MaintenanceTaskDetail> details;
}

@ -1,10 +1,16 @@
package org.springblade.modules.business.pojo.entity.maintenance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 维保任务详细
@ -19,6 +25,15 @@ public class MaintenanceTaskDetail extends BaseEntity {
private Long taskId;
/**
* 设备id
*/
private Long deviceId;
/**
* 设备名称
*/
private String deviceName;
/**
* 楼层
*/
@ -29,6 +44,11 @@ public class MaintenanceTaskDetail extends BaseEntity {
*/
private Long deptId;
/**
* 房间名称
*/
private String deptName;
/**
* 专业名称
*/
@ -70,7 +90,17 @@ public class MaintenanceTaskDetail extends BaseEntity {
private Double price;
/**
* 客户确认是否维修
* 客户确认是否维修, 0:不维修 1维修
*/
private Integer isRepair;
/**
* 计划开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@TableField(exist = false)
private List<MaintenanceTaskDetail> details;
}

@ -15,4 +15,18 @@ import java.util.List;
public interface IMaintenanceTaskService extends BaseService<MaintenanceTask> {
List<MaintenanceTaskVO> limsTaskList(String deptId);
/**
* 获取巡检任务包含详细 树形结构
*
* @param taskId
* @return
*/
MaintenanceTask taskDetail(Long taskId);
/**
* 获取巡检任务包含详细 树形结构
*
* @param taskId
* @return
*/
MaintenanceTask repairDetail(Long taskId);
}

@ -1,20 +1,20 @@
package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.modules.business.enums.MaintenanceStatusEnum;
import org.springblade.modules.business.mapper.MaintenancePlanMapper;
import org.springblade.modules.business.pojo.entity.DeviceAttach;
import org.springblade.modules.business.pojo.entity.DeviceMaintenance;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlan;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlanDetail;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTaskDetail;
import org.springblade.modules.business.service.*;
import org.springblade.modules.business.mapper.MaintenancePlanMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlan;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -228,7 +228,11 @@ public class MaintenancePlanServiceImpl extends BaseServiceImpl<MaintenancePlanM
maintenanceTask.setAddress(maintenancePlan.getAddress());
maintenanceTask.setServicemanId(maintenancePlan.getServicemanId());
maintenanceTask.setTaskContent(maintenancePlan.getPlanContent());
maintenanceTask.setStartTime(new Date());
maintenanceTask.setStartTime(DateUtil.now());
maintenanceTask.setTaskStatus(MaintenanceStatusEnum.TASK_CREATE.getValue());
maintenanceTask.setRepairStatus(MaintenanceStatusEnum.REPAIR_NO.getValue());
maintenanceTask.setDeptName(maintenancePlan.getDeptName());
taskService.save(maintenanceTask);
// 保存任务详情
@ -238,15 +242,18 @@ public class MaintenancePlanServiceImpl extends BaseServiceImpl<MaintenancePlanM
taskDetail.setTaskId(maintenanceTask.getId());
taskDetail.setFloorName(newPlanDetail.getFloorName());
taskDetail.setDeptId(newPlanDetail.getDeptId());
taskDetail.setDeptName(newPlanDetail.getDeptName());
taskDetail.setMajorName(newPlanDetail.getMajorName());
taskDetail.setCheckContent(newPlanDetail.getCheckContent());
taskDetail.setCraft(newPlanDetail.getCraft());
taskDetail.setPeriod(newPlanDetail.getPeriod());
taskDetail.setDeviceId(newPlanDetail.getDeviceId());
taskDetail.setDeviceName(newPlanDetail.getDeviceName());
taskDetail.setStartTime(newPlanDetail.getStartTime());
taskDetails.add(taskDetail);
}
taskDetailService.saveBatch(taskDetails);
}
}
}

@ -1,15 +1,27 @@
package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.pojo.vo.MaintenanceTaskVO;
import org.springblade.modules.business.service.IMaintenanceTaskService;
import org.springblade.modules.business.mapper.MaintenanceTaskMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTaskDetail;
import org.springblade.modules.business.service.IMaintenanceTaskDetailService;
import org.springblade.modules.business.service.IMaintenanceTaskService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 巡检任务 服务实现类
*
@ -17,8 +29,61 @@ import java.util.List;
* @since 2024-10-14
*/
@Service
@RequiredArgsConstructor
public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskMapper, MaintenanceTask> implements IMaintenanceTaskService {
private final IMaintenanceTaskDetailService taskDetailService;
@Override
public MaintenanceTask taskDetail(Long taskId) {
MaintenanceTask task = getById(taskId);
List<MaintenanceTaskDetail> detailList = taskDetailService.list(Wrappers.lambdaQuery(MaintenanceTaskDetail.class).eq(MaintenanceTaskDetail::getTaskId, taskId));
Map<String, List<MaintenanceTaskDetail>> floorMap = detailList.stream().collect(Collectors.groupingBy(MaintenanceTaskDetail::getFloorName));
List<MaintenanceTaskDetail> floorList = new ArrayList<>();
for (Map.Entry<String, List<MaintenanceTaskDetail>> stringListEntry : floorMap.entrySet()) {
List<MaintenanceTaskDetail> deptList = new ArrayList<>();
MaintenanceTaskDetail floor = new MaintenanceTaskDetail();
List<MaintenanceTaskDetail> floors = stringListEntry.getValue();
Map<String, List<MaintenanceTaskDetail>> deptMap = floors.stream().collect(Collectors.groupingBy(MaintenanceTaskDetail::getDeptName));
for (Map.Entry<String, List<MaintenanceTaskDetail>> listEntry : deptMap.entrySet()) {
MaintenanceTaskDetail dept = new MaintenanceTaskDetail();
dept.setDeptName(listEntry.getKey());
dept.setDetails(listEntry.getValue());
deptList.add(dept);
}
floor.setFloorName(stringListEntry.getKey());
floor.setDetails(deptList);
floorList.add(floor);
}
task.setDetails(floorList);
return task;
}
@Override
public MaintenanceTask repairDetail(Long taskId) {
MaintenanceTask task = getById(taskId);
LambdaQueryWrapper<MaintenanceTaskDetail> wrapper = Wrappers.lambdaQuery(MaintenanceTaskDetail.class);
List<MaintenanceTaskDetail> detailList = taskDetailService.list(wrapper.eq(MaintenanceTaskDetail::getTaskId, taskId).eq(MaintenanceTaskDetail::getStatus, CommonConstant.TRUE_INT));
Map<String, List<MaintenanceTaskDetail>> floorMap = detailList.stream().collect(Collectors.groupingBy(MaintenanceTaskDetail::getFloorName));
List<MaintenanceTaskDetail> floorList = new ArrayList<>();
for (Map.Entry<String, List<MaintenanceTaskDetail>> stringListEntry : floorMap.entrySet()) {
List<MaintenanceTaskDetail> deptList = new ArrayList<>();
MaintenanceTaskDetail floor = new MaintenanceTaskDetail();
List<MaintenanceTaskDetail> floors = stringListEntry.getValue();
Map<String, List<MaintenanceTaskDetail>> deptMap = floors.stream().collect(Collectors.groupingBy(MaintenanceTaskDetail::getDeptName));
for (Map.Entry<String, List<MaintenanceTaskDetail>> listEntry : deptMap.entrySet()) {
MaintenanceTaskDetail dept = new MaintenanceTaskDetail();
dept.setDeptName(listEntry.getKey());
dept.setDetails(listEntry.getValue());
deptList.add(dept);
}
floor.setFloorName(stringListEntry.getKey());
floor.setDetails(deptList);
floorList.add(floor);
}
task.setDetails(floorList);
return task;
}
@Override
public List<MaintenanceTaskVO> limsTaskList(String deptId) {

Loading…
Cancel
Save