From 6c7fb48b830ff3c94321e36a2461fe338e74f1c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E5=AE=8F=E7=A5=A5?= <14281818+xue-hongxiang@user.noreply.gitee.com> Date: Tue, 17 Dec 2024 17:12:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=B4=E4=BF=9D=E7=9F=AD=E4=BF=A1=E6=8F=90?= =?UTF-8?q?=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contraller/MaintenanceController.java | 704 +++++++++--------- .../modules/business/sms/SmsService.java | 66 ++ src/main/resources/application-dev.yml | 15 +- 3 files changed, 427 insertions(+), 358 deletions(-) create mode 100644 src/main/java/org/springblade/modules/business/sms/SmsService.java diff --git a/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java b/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java index f5de589..818fe9f 100644 --- a/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java +++ b/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java @@ -1,5 +1,6 @@ package org.springblade.modules.business.contraller; +import com.aliyuncs.exceptions.ClientException; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -21,6 +22,7 @@ import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTaskD import org.springblade.modules.business.service.IMaintenancePlanService; import org.springblade.modules.business.service.IMaintenanceTaskDetailService; import org.springblade.modules.business.service.IMaintenanceTaskService; +import org.springblade.modules.business.sms.SmsService; import org.springframework.web.bind.annotation.*; import java.time.LocalDate; @@ -38,355 +40,355 @@ import java.util.List; @Tag(name = "维保控制器", description = "维控制器") public class MaintenanceController extends BladeController { - private final IMaintenancePlanService planService; - - private final IMaintenanceTaskService taskService; - private final IMaintenanceTaskDetailService taskDetailService; - - /*---------- 维修计划开始 ----------*/ - - @GetMapping("/plan-page") - @Operation(summary = "维保计划列表", description = "维保计划列表") - public R> planPage(MaintenancePlan plan, Query query) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(plan).orderByDesc(MaintenancePlan::getCreateTime); - IPage 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(this.planService.planDetail(plan)); - } - - @PostMapping("/plan-create") - @Operation(summary = "创建维保计划", description = "创建维保计划") - public R planCreate(@RequestBody MaintenancePlan plan) { - return R.status(this.planService.create(plan)); - } - - @PostMapping("/plan-update") - @Operation(summary = "修改维保计划", description = "修改维保计划") - public R planUpdate(@RequestBody MaintenancePlan plan) { - return R.status(this.planService.planUpdate(plan)); - } - - @PostMapping("/plan-open") - @Operation(summary = "维保计划开启/关闭", description = "维保计划开启/关闭") - public R planOpen(@RequestBody MaintenancePlan plan) { - return R.status(this.planService.planOpen(plan)); - } - - @PostMapping("/plan-remove") - @Operation(summary = "删除维保计划", description = "删除维保计划") - public R planRemove(@RequestParam String ids) { - return R.status(planService.planRemove(Func.toLongList(ids))); - } - - /*---------- 维修计划结束 ----------*/ - - /*---------- 维修任务开始 ----------*/ - - @PostMapping("/task-create") - @Operation(summary = "定时任务-根据维保计划生成维保任务", description = "定时任务-根据维保计划生成维保任务") - public R taskCreate() { - LocalDate now = LocalDate.now(); - // 注意要查询上一次巡检计划中发现但未维修的 - return R.status(planService.createTask(now)); - } - - @GetMapping("/task-page") - @Operation(summary = "维保任务列表", description = "维保任务列表") - public R taskPage(MaintenanceTask task, Query query) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(MaintenanceTask.class); - wrapper.eq(MaintenanceTask::getIsDeleted, CommonConstant.FALSE_STR); - if (Func.isNotEmpty(task.getPlanId())) { - wrapper.eq(MaintenanceTask::getPlanId, task.getPlanId()); - } - if (Func.isNotEmpty(task.getStatusSearch())) { - wrapper.in(MaintenanceTask::getTaskStatus, task.getStatusSearch().split(",")); - } - - IPage pages = taskService.page(Condition.getPage(query), wrapper); - return R.data(pages); - } - - @GetMapping("/task-detail") - @Operation(summary = "任务明细", description = "任务明细") - public R taskDetail(@RequestParam Long id) { - MaintenanceTask task = taskService.taskDetail(id); - return R.data(task); - } - - @PostMapping("/task-supervisor-confirm") - @Operation(summary = "主管审核并指定维修人员", description = "主管审核并指定维修人员") - public R taskSupervisorConfirm(@RequestBody MaintenanceTask task) { - MaintenanceTask taskOld = taskService.getById(task.getId()); - taskOld.setServicemanId(task.getServicemanId()); - taskOld.setServicemanName(task.getServicemanName()); - taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_SUPERVISOR_CONFIRM.getValue()); - taskService.updateById(taskOld); - - return R.success(); - } - - @PostMapping("/task-serviceman-receive") - @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); - - return R.success(); - } - - @PostMapping("/task-serviceman-update-time") - @Operation(summary = "维修人员更新预约时间", description = "维修人员更新预约时间") - public R taskServicemanUpdateTime(@RequestBody MaintenanceTask task) { - MaintenanceTask taskOld = taskService.getById(task.getId()); - taskOld.setReservationTime(task.getReservationTime()); - taskService.updateById(taskOld); - - return R.success(); - } - - @PostMapping("/task-serviceman-update-detail") - @Operation(summary = "维修人员更新维修明细", description = "维修人员更新维修明细") - public R taskServicemanUpdateDetail(@RequestBody List 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()); - taskService.updateById(taskOld); - } - - // 只更新设备状态 - taskDetailService.saveOrUpdateBatch(taskDetailList); - - return R.success(); - } - - @PostMapping("/task-serviceman-submit") - @Operation(summary = "维修人员提交巡检完成", description = "维修人员提交巡检完成") - 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(); - } - - @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.setFinishTime(DateUtil.now()); - taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_SERVICEMAN_CONFIRM.getValue()); - taskService.updateById(taskOld); - - return R.success(); - } - - /*---------- 维修任务结束 ----------*/ - - /*---------- 维修方案开始 ----------*/ - @GetMapping("/repair-page") - @Operation(summary = "维保维修列表", description = "维保维修列表") - public R repairPage(MaintenanceTask task, Query query) { - LambdaQueryWrapper 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()); - } - if (Func.isNotEmpty(task.getStatusSearch())) { - wrapper.in(MaintenanceTask::getRepairStatus, task.getStatusSearch().split(",")); - } - - IPage 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 = "维修人员保存维修方案") - 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 detailList = taskDto.getDetailList(); - taskDetailService.saveOrUpdateBatch(detailList); - - return R.success(); - } - - @PostMapping("/repair-solution-submit") - @Operation(summary = "维修人员提交维修方案", description = "维修人员提交维修方案") - 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_SUPERVISOR_CONFIRM.getValue()); - taskService.updateById(taskOld); - - return R.success(); - } - - @PostMapping("/repair-solution-supervisor-refuse") - @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.SUPERVISOR_CONFIRM_REFUSE.getValue()); - taskService.updateById(taskOld); - - return R.success(); - } - - @PostMapping("/repair-solution-customer-confirm") - @Operation(summary = "客户确认维修明细", description = "客户确认维修明细") - public R repairCustomerConfirmDetail(@RequestBody MaintenanceTaskDto taskDto) { - MaintenanceTask task = taskDto.getTask(); - MaintenanceTask taskOld = taskService.getById(task.getId()); - - // 获取详细中的异常项目数量 - long count = taskDto.getDetailList().stream().filter(e -> CommonConstant.TRUE_INT.equals(e.getIsRepair())).count(); - if (count == 0) { - // 确认维修数量 = 0, 更新巡检的维修状态为无需维修 - taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_NO.getValue()); - } else { - taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_CUSTOMER_CONFIRM.getValue()); - } - taskService.updateById(taskOld); - - List detailList = taskDto.getDetailList(); - taskDetailService.updateBatchById(detailList); - - return R.success(); - } - - @PostMapping("/repair-solution-customer-refuse") - @Operation(summary = "客户驳回维修明细", description = "客户驳回维修明细") - 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.CUSTOMER_CONFIRM_REFUSE.getValue()); - taskService.updateById(taskOld); - - return R.success(); - } - - @PostMapping("/repair-serviceman-submit") - @Operation(summary = "维修人员维修完成", description = "维修人员维修完成") - 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(); - } - - @PostMapping("/repair-customer-confirm-finish") - @Operation(summary = "客户确认维修完成", description = "客户确认维修完成") - public R repairCustomerConfirmFinish(@RequestBody MaintenanceTask task) { - MaintenanceTask taskOld = taskService.getById(task.getId()); - taskOld.setSignaturePerson(task.getSignaturePerson()); - taskOld.setSignatureUrl(task.getSignatureUrl()); - taskOld.setSignatureTime(task.getSignatureTime()); - taskOld.setIsOkSecure(task.getIsOkSecure()); - taskOld.setIsOkValidity(task.getIsOkValidity()); - taskOld.setIsOkQuality(task.getIsOkQuality()); - taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_EVALUATE_FINISH.getValue()); - taskService.updateById(taskOld); - - return R.success(); - } - - @PostMapping("/repair-customer-refuse-finish") - @Operation(summary = "客户确认维修未完成", description = "客户确认维修未完成") - public R repairCustomerRefuseFinish(@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_CUSTOMER_CONFIRM.getValue()); - taskService.updateById(taskOld); - - return R.success(); - } - - @PostMapping("/repair-service-confirm") - @Operation(summary = "客服确认客户付款", description = "客服确认客户付款") - 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 List taskList) { - List 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(); - } - - /*---------- 维修方案结束 ----------*/ + private final IMaintenancePlanService planService; + + private final IMaintenanceTaskService taskService; + private final IMaintenanceTaskDetailService taskDetailService; + + /*---------- 维修计划开始 ----------*/ + + @GetMapping("/plan-page") + @Operation(summary = "维保计划列表", description = "维保计划列表") + public R> planPage(MaintenancePlan plan, Query query) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(plan).orderByDesc(MaintenancePlan::getCreateTime); + IPage 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(this.planService.planDetail(plan)); + } + + @PostMapping("/plan-create") + @Operation(summary = "创建维保计划", description = "创建维保计划") + public R planCreate(@RequestBody MaintenancePlan plan) { + return R.status(this.planService.create(plan)); + } + + @PostMapping("/plan-update") + @Operation(summary = "修改维保计划", description = "修改维保计划") + public R planUpdate(@RequestBody MaintenancePlan plan) { + return R.status(this.planService.planUpdate(plan)); + } + + @PostMapping("/plan-open") + @Operation(summary = "维保计划开启/关闭", description = "维保计划开启/关闭") + public R planOpen(@RequestBody MaintenancePlan plan) { + return R.status(this.planService.planOpen(plan)); + } + + @PostMapping("/plan-remove") + @Operation(summary = "删除维保计划", description = "删除维保计划") + public R planRemove(@RequestParam String ids) { + return R.status(planService.planRemove(Func.toLongList(ids))); + } + + /*---------- 维修计划结束 ----------*/ + + /*---------- 维修任务开始 ----------*/ + + @PostMapping("/task-create") + @Operation(summary = "定时任务-根据维保计划生成维保任务", description = "定时任务-根据维保计划生成维保任务") + public R taskCreate() { + LocalDate now = LocalDate.now(); + // 注意要查询上一次巡检计划中发现但未维修的 + return R.status(planService.createTask(now)); + } + + @GetMapping("/task-page") + @Operation(summary = "维保任务列表", description = "维保任务列表") + public R taskPage(MaintenanceTask task, Query query) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(MaintenanceTask.class); + wrapper.eq(MaintenanceTask::getIsDeleted, CommonConstant.FALSE_STR); + if (Func.isNotEmpty(task.getPlanId())) { + wrapper.eq(MaintenanceTask::getPlanId, task.getPlanId()); + } + if (Func.isNotEmpty(task.getStatusSearch())) { + wrapper.in(MaintenanceTask::getTaskStatus, task.getStatusSearch().split(",")); + } + + IPage pages = taskService.page(Condition.getPage(query), wrapper); + return R.data(pages); + } + + @GetMapping("/task-detail") + @Operation(summary = "任务明细", description = "任务明细") + public R taskDetail(@RequestParam Long id) { + MaintenanceTask task = taskService.taskDetail(id); + return R.data(task); + } + + @PostMapping("/task-supervisor-confirm") + @Operation(summary = "主管审核并指定维修人员", description = "主管审核并指定维修人员") + public R taskSupervisorConfirm(@RequestBody MaintenanceTask task) throws ClientException { + MaintenanceTask taskOld = taskService.getById(task.getId()); + taskOld.setServicemanId(task.getServicemanId()); + taskOld.setServicemanName(task.getServicemanName()); + taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_SUPERVISOR_CONFIRM.getValue()); + taskService.updateById(taskOld); + SmsService.sendSms("13553032083", "阿祥"); + return R.success(); + } + + @PostMapping("/task-serviceman-receive") + @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); + + return R.success(); + } + + @PostMapping("/task-serviceman-update-time") + @Operation(summary = "维修人员更新预约时间", description = "维修人员更新预约时间") + public R taskServicemanUpdateTime(@RequestBody MaintenanceTask task) { + MaintenanceTask taskOld = taskService.getById(task.getId()); + taskOld.setReservationTime(task.getReservationTime()); + taskService.updateById(taskOld); + + return R.success(); + } + + @PostMapping("/task-serviceman-update-detail") + @Operation(summary = "维修人员更新维修明细", description = "维修人员更新维修明细") + public R taskServicemanUpdateDetail(@RequestBody List 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()); + taskService.updateById(taskOld); + } + + // 只更新设备状态 + taskDetailService.saveOrUpdateBatch(taskDetailList); + + return R.success(); + } + + @PostMapping("/task-serviceman-submit") + @Operation(summary = "维修人员提交巡检完成", description = "维修人员提交巡检完成") + 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(); + } + + @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.setFinishTime(DateUtil.now()); + taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_SERVICEMAN_CONFIRM.getValue()); + taskService.updateById(taskOld); + + return R.success(); + } + + /*---------- 维修任务结束 ----------*/ + + /*---------- 维修方案开始 ----------*/ + @GetMapping("/repair-page") + @Operation(summary = "维保维修列表", description = "维保维修列表") + public R repairPage(MaintenanceTask task, Query query) { + LambdaQueryWrapper 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()); + } + if (Func.isNotEmpty(task.getStatusSearch())) { + wrapper.in(MaintenanceTask::getRepairStatus, task.getStatusSearch().split(",")); + } + + IPage 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 = "维修人员保存维修方案") + 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 detailList = taskDto.getDetailList(); + taskDetailService.saveOrUpdateBatch(detailList); + + return R.success(); + } + + @PostMapping("/repair-solution-submit") + @Operation(summary = "维修人员提交维修方案", description = "维修人员提交维修方案") + 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_SUPERVISOR_CONFIRM.getValue()); + taskService.updateById(taskOld); + + return R.success(); + } + + @PostMapping("/repair-solution-supervisor-refuse") + @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.SUPERVISOR_CONFIRM_REFUSE.getValue()); + taskService.updateById(taskOld); + + return R.success(); + } + + @PostMapping("/repair-solution-customer-confirm") + @Operation(summary = "客户确认维修明细", description = "客户确认维修明细") + public R repairCustomerConfirmDetail(@RequestBody MaintenanceTaskDto taskDto) { + MaintenanceTask task = taskDto.getTask(); + MaintenanceTask taskOld = taskService.getById(task.getId()); + + // 获取详细中的异常项目数量 + long count = taskDto.getDetailList().stream().filter(e -> CommonConstant.TRUE_INT.equals(e.getIsRepair())).count(); + if (count == 0) { + // 确认维修数量 = 0, 更新巡检的维修状态为无需维修 + taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_NO.getValue()); + } else { + taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_CUSTOMER_CONFIRM.getValue()); + } + taskService.updateById(taskOld); + + List detailList = taskDto.getDetailList(); + taskDetailService.updateBatchById(detailList); + + return R.success(); + } + + @PostMapping("/repair-solution-customer-refuse") + @Operation(summary = "客户驳回维修明细", description = "客户驳回维修明细") + 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.CUSTOMER_CONFIRM_REFUSE.getValue()); + taskService.updateById(taskOld); + + return R.success(); + } + + @PostMapping("/repair-serviceman-submit") + @Operation(summary = "维修人员维修完成", description = "维修人员维修完成") + 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(); + } + + @PostMapping("/repair-customer-confirm-finish") + @Operation(summary = "客户确认维修完成", description = "客户确认维修完成") + public R repairCustomerConfirmFinish(@RequestBody MaintenanceTask task) { + MaintenanceTask taskOld = taskService.getById(task.getId()); + taskOld.setSignaturePerson(task.getSignaturePerson()); + taskOld.setSignatureUrl(task.getSignatureUrl()); + taskOld.setSignatureTime(task.getSignatureTime()); + taskOld.setIsOkSecure(task.getIsOkSecure()); + taskOld.setIsOkValidity(task.getIsOkValidity()); + taskOld.setIsOkQuality(task.getIsOkQuality()); + taskOld.setRepairStatus(MaintenanceStatusEnum.REPAIR_EVALUATE_FINISH.getValue()); + taskService.updateById(taskOld); + + return R.success(); + } + + @PostMapping("/repair-customer-refuse-finish") + @Operation(summary = "客户确认维修未完成", description = "客户确认维修未完成") + public R repairCustomerRefuseFinish(@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_CUSTOMER_CONFIRM.getValue()); + taskService.updateById(taskOld); + + return R.success(); + } + + @PostMapping("/repair-service-confirm") + @Operation(summary = "客服确认客户付款", description = "客服确认客户付款") + 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 List taskList) { + List 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(); + } + + /*---------- 维修方案结束 ----------*/ } diff --git a/src/main/java/org/springblade/modules/business/sms/SmsService.java b/src/main/java/org/springblade/modules/business/sms/SmsService.java new file mode 100644 index 0000000..1042c34 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/sms/SmsService.java @@ -0,0 +1,66 @@ +package org.springblade.modules.business.sms; + +import com.alibaba.fastjson.JSONObject; +import com.aliyun.dysmsapi20170525.models.SendSmsRequest; +import com.aliyun.dysmsapi20170525.models.SendSmsResponse; +import com.aliyuncs.CommonRequest; +import com.aliyuncs.CommonResponse; +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.exceptions.ClientException; +import com.aliyuncs.profile.DefaultProfile; +import com.aliyuncs.profile.IClientProfile; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class SmsService { + + // 阿里云的Access Key ID和Access Key Secret + @Value("${sms.access-key}") + private static String ACCESS_KEY_ID; + @Value("${sms.secret-key}") + private static String ACCESS_KEY_SECRET; + // 短信签名和模板ID + // 短信签名,替换成你在阿里云控制台设置的签名 + @Value("${sms.sign-name}") + private static String SIGN_NAME; + @Value("${sms.template-id1}") + private static String TEMPLATE_CODE; // 短信模板ID,替换成你在阿里云控制台设置的模板ID + + + public static void sendSms(String phoneNumber, String name) throws ClientException { + try { + // 设置发送短信的相关参数 + IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", ACCESS_KEY_ID, ACCESS_KEY_SECRET); + DefaultAcsClient client = new DefaultAcsClient(profile); + + CommonRequest request = new CommonRequest(); + + // 设置短信模板的参数 + Map templateParam = new HashMap<>(); + templateParam.put("name", name); // 这里的 "code" 是短信模板中的占位符 + + request.putQueryParameter("PhoneNumbers", phoneNumber); //手机号 + request.putQueryParameter("SignName", ""); //申请的签名名称 + request.putQueryParameter("TemplateCode", ""); //模板名称 + request.putQueryParameter("TemplateParam", JSONObject.toJSONString(templateParam)); //验证码 + + + // 发送短信请求 + CommonResponse response = client.getCommonResponse(request); + + if (response.getHttpResponse().isSuccess()) { + System.out.println("短信发送成功!"); + } else { + System.out.println("短信发送失败."); + } + + } catch (ClientException e) { + e.printStackTrace(); + System.out.println("短信发送异常: " + e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 7f6095f..2f93a42 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -12,7 +12,7 @@ spring: datasource: # MySql url: jdbc:mysql://192.168.1.12:3306/lab-ops?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true -# url: jdbc:mysql://127.0.0.1:3306/lab-ops?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + # url: jdbc:mysql://127.0.0.1:3306/lab-ops?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true username: root password: 123456 @@ -21,6 +21,7 @@ sms: name: aliyun # sms审核通过的短信模板 template-id: SMS_154950909 + template-id1: SMS_476455177 # sms审核通过的短信签名 sign-name: 阿里云短信测试 # sms提供的accesskey @@ -29,12 +30,12 @@ sms: secret-key: PWFmEByyD5YrjMlAyioZZqLtMGxZLu # 地域,主要由阿里云配置 region-id: cn-hangzhou - aliyun: - accessKeyId: 111 - accessKeySecret: 111 - signName: 111 - isPushSms: true - templateCode: 111 +# aliyun: +# accessKeyId: 111 +# accessKeySecret: 111 +# signName: 111 +# isPushSms: true +# templateCode: 111 #blade配置 #blade: