|
@@ -16,6 +16,10 @@ import cn.com.ty.lift.business.maintenance.dao.entity.model.response.Maintenance
|
|
|
import cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenanceRecordResponse;
|
|
|
import cn.com.ty.lift.business.maintenance.dao.entity.model.response.MtRecordResponse;
|
|
|
import cn.com.ty.lift.business.maintenance.dao.mapper.MaintenanceRecordMapper;
|
|
|
+import cn.com.ty.lift.business.project.dao.entity.Project;
|
|
|
+import cn.com.ty.lift.business.project.dao.entity.ProjectLiftRelevance;
|
|
|
+import cn.com.ty.lift.business.project.service.ProjectLiftRelevanceService;
|
|
|
+import cn.com.ty.lift.business.project.service.ProjectService;
|
|
|
import cn.com.ty.lift.common.constants.CommonEnum;
|
|
|
import cn.com.ty.lift.common.utils.MapHelper;
|
|
|
import cn.com.ty.lift.common.verify.VerifyUtils;
|
|
@@ -58,6 +62,8 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
|
|
|
private MtRecordImgService mtRecordImgService;
|
|
|
private MaintenancePlanService maintenancePlanService;
|
|
|
private EvaluationService evaluationService;
|
|
|
+ private ProjectService projectService;
|
|
|
+ private ProjectLiftRelevanceService projectLiftRelevanceService;
|
|
|
|
|
|
private Gson gson;
|
|
|
|
|
@@ -117,6 +123,48 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
|
|
|
return count(lambdaQueryWrapper) > 0;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param request 修改维保计划请求
|
|
|
+ * @return 是否修改成功
|
|
|
+ * @description 修改维保计划
|
|
|
+ * @date 2020/5/12 2:03 下午
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean modifyPlan(MaintenanceRecordRequest request) {
|
|
|
+ //获取公司id
|
|
|
+ Long mtCompanyId = request.getMtCompanyId();
|
|
|
+ //获取电梯id
|
|
|
+ Long liftId = request.getLiftId();
|
|
|
+ //获取项目id
|
|
|
+ Long projectId = request.getProjectId();
|
|
|
+ //获取维保工id
|
|
|
+ Long workerId = request.getUserId();
|
|
|
+ MaintenancePlan plan = new MaintenancePlan();
|
|
|
+ plan.setProjectId(projectId);
|
|
|
+ plan.setMtCompanyId(mtCompanyId);
|
|
|
+ plan.setLiftId(liftId);
|
|
|
+ plan.setWorkerId(workerId);
|
|
|
+ Optional<Project> optional = projectService.getOne(projectId);
|
|
|
+ Project project = new Project();
|
|
|
+ if (optional.isPresent()) project = optional.get();
|
|
|
+ if (ObjectUtil.isEmpty(project)) return false;
|
|
|
+ LocalDate endDate = project.getEndDate();
|
|
|
+ //获取当前的保养时间
|
|
|
+ LocalDate currentTime = request.getCurrentTime();
|
|
|
+ //获取当前期数
|
|
|
+ Integer periods = request.getPeriods();
|
|
|
+ //获取当前电梯的保养间隔
|
|
|
+ ProjectLiftRelevance entry = projectLiftRelevanceService.getOne(mtCompanyId, liftId);
|
|
|
+ if (ObjectUtil.isEmpty(entry)) return false;
|
|
|
+ int interval = entry.getPlanInterval();
|
|
|
+ List<MaintenancePlan> planList = maintenancePlanService.findPlanList(liftId, projectId, mtCompanyId, currentTime);
|
|
|
+ //获取当前时间后的维保计划列表,并清除计划
|
|
|
+ removeByIds(planList.stream().map(MaintenancePlan::getId).collect(Collectors.toList()));
|
|
|
+ //按照修改时间重新生成计划
|
|
|
+ List<MaintenancePlan> plans = maintenancePlanService.generatePlan(plan, periods, interval, currentTime, endDate);
|
|
|
+ return maintenancePlanService.saveBatch(plans, plans.size());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param request 保养单信息
|
|
|
* @return 是否成功
|
|
@@ -170,6 +218,12 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
|
|
|
} else {
|
|
|
return RestResponse.fail(MessageUtils.get("msg.add.fail"));
|
|
|
}
|
|
|
+ //若提前保养,需要修改维保计划
|
|
|
+ boolean modifyPlan = modifyPlan(request);
|
|
|
+ if (!modifyPlan){
|
|
|
+ rollback();
|
|
|
+ return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
|
|
|
+ }
|
|
|
return RestResponse.success(record.getId(), MessageUtils.get("msg.add.success"));
|
|
|
}
|
|
|
|