package com.qianwen.smartman.modules.tpm.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.lang.invoke.SerializedLambda; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.constant.NotifyConstant; import com.qianwen.smartman.common.utils.LocalDateTimeUtils; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.core.excel.util.ExcelUtil; import com.qianwen.core.log.exception.ServiceException; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.mp.support.Query; import com.qianwen.core.oss.model.BladeFile; import com.qianwen.core.secure.utils.AuthUtil; import com.qianwen.core.tool.utils.CollectionUtil; import com.qianwen.core.tool.utils.DateUtil; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.cps.dto.DeviceMaintainInDTO; import com.qianwen.smartman.modules.cps.dto.DeviceSimpleDTO; import com.qianwen.smartman.modules.cps.entity.MaintainProject; import com.qianwen.smartman.modules.cps.entity.MaintainProjectItem; import com.qianwen.smartman.modules.cps.service.IMachineService; import com.qianwen.smartman.modules.cps.service.IMaintainProjectItemService; import com.qianwen.smartman.modules.cps.service.IMaintainProjectService; import com.qianwen.smartman.modules.cps.vo.MaintainPlanAddVO; import com.qianwen.smartman.modules.cps.vo.MaintainPlanAutoAddVO; import com.qianwen.smartman.modules.cps.vo.MaintainPlanBatchVO; import com.qianwen.smartman.modules.cps.vo.MaintainPlanExportVO; import com.qianwen.smartman.modules.cps.vo.MaintainPlanIdListVO; import com.qianwen.smartman.modules.cps.vo.MaintainPlanSearchByPlanStatusVO; import com.qianwen.smartman.modules.cps.vo.MaintainPlanSearchVO; import com.qianwen.smartman.modules.cps.vo.MaintainPlanUpdateVO; import com.qianwen.smartman.modules.notify.business.BusinessSend; import com.qianwen.smartman.modules.notify.business.BusinessSendFactory; import com.qianwen.smartman.modules.notify.dto.NotifyBusinessSendDTO; import com.qianwen.smartman.modules.notify.service.IBusinessNotifyStateService; import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder; import com.qianwen.smartman.modules.system.service.ICodeGeneratorService; import com.qianwen.smartman.modules.tpm.convert.MaintainPlanConvert; import com.qianwen.smartman.modules.tpm.entity.MaintainPlan; import com.qianwen.smartman.modules.tpm.entity.MaintainPlanItem; import com.qianwen.smartman.modules.tpm.enums.MaintainGenerateEnum; import com.qianwen.smartman.modules.tpm.enums.MaintainPlanIsAutoEnum; import com.qianwen.smartman.modules.tpm.enums.MaintainPlanStatusEnum; import com.qianwen.smartman.modules.tpm.enums.MaintainStatusEnum; import com.qianwen.smartman.modules.tpm.enums.MetaTypeEnum; import com.qianwen.smartman.modules.tpm.enums.RepairNatureEnum; import com.qianwen.smartman.modules.tpm.mapper.MaintainPlanMapper; import com.qianwen.smartman.modules.tpm.service.IMaintainPlanItemService; import com.qianwen.smartman.modules.tpm.service.IMaintainPlanService; import com.qianwen.smartman.modules.tpm.vo.MaintainPlanExpireQueryVO; import com.qianwen.smartman.modules.tpm.vo.MaintainPlanExpireVO; import com.qianwen.smartman.modules.tpm.vo.MaintainPlanItemVO; import com.qianwen.smartman.modules.tpm.vo.MaintainPlanVO; import com.qianwen.smartman.modules.tpm.vo.MaintainStatisticsVO; import com.qianwen.smartman.modules.tpm.vo.excel.MaintainPlanExcel; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/tpm/service/impl/MaintainPlanServiceImpl.class */ public class MaintainPlanServiceImpl extends ServiceImpl implements IMaintainPlanService { private static final Logger log = LoggerFactory.getLogger(MaintainPlanServiceImpl.class); private final OssBuilder ossBuilder; private final IMaintainPlanItemService maintainPlanItemService; private final IMachineService machineService; private final ICodeGeneratorService codeGeneratorService; private final IMaintainProjectService maintainProjectService; private final IMaintainProjectItemService maintainProjectItemService; private final BusinessSendFactory businessSendFactory; private final IBusinessNotifyStateService businessNotifyStateService; public MaintainPlanServiceImpl(OssBuilder ossBuilder,IMaintainPlanItemService maintainPlanItemService, IMachineService machineService, ICodeGeneratorService codeGeneratorService, IMaintainProjectService maintainProjectService, IMaintainProjectItemService maintainProjectItemService, BusinessSendFactory businessSendFactory, IBusinessNotifyStateService businessNotifyStateService) { this.ossBuilder = ossBuilder; this.maintainPlanItemService = maintainPlanItemService; this.machineService = machineService; this.codeGeneratorService = codeGeneratorService; this.maintainProjectService = maintainProjectService; this.maintainProjectItemService = maintainProjectItemService; this.businessSendFactory = businessSendFactory; this.businessNotifyStateService = businessNotifyStateService; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService @Transactional(rollbackFor = {Exception.class}) public MaintainPlan createMaintainPlan(MaintainPlanAddVO maintainPlanAddVO) { LocalDateTime now = LocalDateTime.now(); MaintainPlan maintainPlan = MaintainPlanConvert.INSTANCE.convert(maintainPlanAddVO); if (Func.isBlank(maintainPlan.getCode())) { String code = this.codeGeneratorService.getGeneratorCode(maintainPlan, MetaTypeEnum.MAINTAIN_PLAN.getCode()); log.info("保养计划编码规则生成的code:{}", code + " ," + code.length()); maintainPlan.setCode(code); } if (checkCodeIsExist(maintainPlan.getCode(), null)) { throw new ServiceException(MessageUtils.message("cps.common.duplicate.code.can.not.add", new Object[0])); } maintainPlan.setCreateTime(LocalDateTimeUtils.LocalDateTimeToDate(now)); maintainPlan.setIsAuto(Integer.valueOf(MaintainGenerateEnum.T0.getType())); List maintainPlanList = checkPlanStatus(Arrays.asList(maintainPlan), now); saveBatch(maintainPlanList); List maintainPlanItemList = new ArrayList<>(); maintainPlanAddVO.getMaintainItemList().forEach(maintainItem -> { MaintainPlanItem bean = new MaintainPlanItem(); bean.setPlanId(((MaintainPlan) maintainPlanList.get(0)).getId()); bean.setItemId(maintainItem.getItemId()); bean.setCreateTime(LocalDateTimeUtils.LocalDateTimeToDate(now)); maintainPlanItemList.add(bean); }); this.maintainPlanItemService.saveBatch(maintainPlanItemList); this.machineService.updateDeviceMaintainStatus(maintainPlanList.get(0).getDeviceId(), maintainPlanList.get(0).getPlanStatus(), maintainPlanList.get(0).getId(), maintainPlanList.get(0).getMaintainDate()); sendMessage(maintainPlan, maintainPlanAddVO.getNotifyBusinessSend()); return maintainPlan; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService @Transactional(rollbackFor = {Exception.class}) public MaintainPlan editMaintainPlan(MaintainPlanUpdateVO maintainPlanUpdateVO) { LocalDateTime now = LocalDateTime.now(); MaintainPlan maintainPlan = (MaintainPlan) getById(maintainPlanUpdateVO.getId()); if (Func.isNull(maintainPlan)) { throw new ServiceException(MessageUtils.message("cps.common.the.current.object.does.not.exist", new Object[0])); } if (MaintainPlanStatusEnum.T1.getType() != maintainPlan.getPlanStatus().intValue() && MaintainPlanStatusEnum.T2.getType() != maintainPlan.getPlanStatus().intValue()) { throw new ServiceException(MessageUtils.message("cps.tpm.auto.plan.status.can.not.edit", new Object[0])); } MaintainPlan updateMaintainPlan = MaintainPlanConvert.INSTANCE.convert(maintainPlanUpdateVO); updateMaintainPlan.setUpdateTime(LocalDateTimeUtils.LocalDateTimeToDate(now)); List maintainPlanList = checkPlanStatus(Arrays.asList(updateMaintainPlan), now); updateBatchById(maintainPlanList); this.maintainPlanItemService.remove(Wrappers.query().lambda().in(MaintainPlanItem::getPlanId, maintainPlan.getId())); /* this.maintainPlanItemService.remove((Wrapper) Wrappers.query().lambda().in((v0) -> { return v0.getPlanId(); }, new Object[]{maintainPlan.getId()}));*/ List maintainPlanItemList = new ArrayList<>(); maintainPlanUpdateVO.getMaintainItemList().forEach(maintainItem -> { MaintainPlanItem bean = new MaintainPlanItem(); bean.setPlanId(((MaintainPlan) maintainPlanList.get(0)).getId()); bean.setItemId(maintainItem.getItemId()); bean.setCreateTime(LocalDateTimeUtils.LocalDateTimeToDate(now)); maintainPlanItemList.add(bean); }); this.maintainPlanItemService.saveBatch(maintainPlanItemList); this.machineService.updateDeviceMaintainStatus(maintainPlanList.get(0).getDeviceId(), maintainPlanList.get(0).getPlanStatus(), maintainPlanList.get(0).getId(), maintainPlanList.get(0).getMaintainDate()); return maintainPlan; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public MaintainPlanVO getMaintainPlan(Long id) { MaintainPlanVO maintainPlanVO = (MaintainPlanVO) Optional.ofNullable(getById(id)).map(maintainPlan -> { MaintainPlanVO bean = MaintainPlanConvert.INSTANCE.convert(maintainPlan); bean.setPlanStatusName(MaintainPlanStatusEnum.getDescDetail(bean.getPlanStatus())); bean.setMaintainNatureName(RepairNatureEnum.getDescDetail(bean.getMaintainNature())); bean.setIsAutoName(MaintainPlanIsAutoEnum.getDescDetail(bean.getIsAuto())); return bean; }).orElse(new MaintainPlanVO()); List maintainPlanItemVoList = this.maintainPlanItemService.getMaintainPlanItemListByPlanId(id, AuthUtil.getTenantId()); maintainPlanVO.setMaintainPlanItemVoList(maintainPlanItemVoList); return maintainPlanVO; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public List queryMaintainPlanList(MaintainPlanSearchVO maintainPlanSearchVO) { List list = new ArrayList<>(); if (!maintainPlanSearchVO.getFilterPlus().booleanValue()) { list = list(Wrappers.query().lambda().in((maintainPlanSearchVO.getDeviceTypeId() != null), MaintainPlan::getDeviceTypeId, new Object[] { maintainPlanSearchVO.getDeviceTypeId() }).eq((maintainPlanSearchVO.getDeviceId() != null), MaintainPlan::getDeviceId, maintainPlanSearchVO.getDeviceId()) .eq(maintainPlanSearchVO.getIsAuto() != null, MaintainPlan::getIsAuto, maintainPlanSearchVO.getIsAuto()) .in(CollectionUtil.isNotEmpty(maintainPlanSearchVO.getPlanStatusList()), MaintainPlan::getPlanStatus, maintainPlanSearchVO.getPlanStatusList()) .and(Func.isNotEmpty(maintainPlanSearchVO.getKeyWord()), i -> i.likeRight(MaintainPlan::getDeviceName, maintainPlanSearchVO.getKeyWord()).or().likeRight(MaintainPlan::getCode, maintainPlanSearchVO.getKeyWord()).or().likeRight(MaintainPlan::getDeviceCode, maintainPlanSearchVO.getKeyWord())) .orderByAsc(MaintainPlan::getMaintainDate)); /* list = list((Wrapper) Wrappers.query().lambda().in(maintainPlanSearchVO.getDeviceTypeId() != null, (v0) -> { return v0.getDeviceTypeId(); }, new Object[]{maintainPlanSearchVO.getDeviceTypeId()}).eq(maintainPlanSearchVO.getDeviceId() != null, (v0) -> { return v0.getDeviceId(); }, maintainPlanSearchVO.getDeviceId()).eq(maintainPlanSearchVO.getIsAuto() != null, (v0) -> { return v0.getIsAuto(); }, maintainPlanSearchVO.getIsAuto()).in(CollectionUtil.isNotEmpty(maintainPlanSearchVO.getPlanStatusList()), (v0) -> { return v0.getPlanStatus(); }, maintainPlanSearchVO.getPlanStatusList()).and(Func.isNotEmpty(maintainPlanSearchVO.getKeyWord()), i -> { LambdaQueryWrapper lambdaQueryWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) i.likeRight((v0) -> { return v0.getDeviceName(); }, maintainPlanSearchVO.getKeyWord())).or()).likeRight((v0) -> { return v0.getCode(); }, maintainPlanSearchVO.getKeyWord())).or()).likeRight((v0) -> { return v0.getDeviceCode(); }, maintainPlanSearchVO.getKeyWord()); }).orderByAsc((v0) -> { return v0.getMaintainDate(); }));*/ } else { list = list(Condition.getQueryWrapper(maintainPlanSearchVO.getParam(), MaintainPlan.class).lambda() .in(maintainPlanSearchVO.getDeviceTypeId() != null, MaintainPlan::getDeviceTypeId, new Object[] { maintainPlanSearchVO.getDeviceTypeId() }) .eq((maintainPlanSearchVO.getDeviceId() != null), MaintainPlan::getDeviceId, maintainPlanSearchVO.getDeviceId()) .eq((maintainPlanSearchVO.getIsAuto() != null), MaintainPlan::getIsAuto, maintainPlanSearchVO.getIsAuto()) .in(CollectionUtil.isNotEmpty(maintainPlanSearchVO.getPlanStatusList()), MaintainPlan::getPlanStatus, maintainPlanSearchVO.getPlanStatusList()) .and(Func.isNotEmpty(maintainPlanSearchVO.getKeyWord()), i -> i.likeRight(MaintainPlan::getDeviceName, maintainPlanSearchVO.getKeyWord()).or().likeRight(MaintainPlan::getCode, maintainPlanSearchVO.getKeyWord()).or().likeRight(MaintainPlan::getDeviceCode, maintainPlanSearchVO.getKeyWord())) .orderByAsc(MaintainPlan::getMaintainDate)); /* list = list((Wrapper) Condition.getQueryWrapper(maintainPlanSearchVO.getParam(), MaintainPlan.class).lambda().in(maintainPlanSearchVO.getDeviceTypeId() != null, (v0) -> { return v0.getDeviceTypeId(); }, new Object[]{maintainPlanSearchVO.getDeviceTypeId()}).eq(maintainPlanSearchVO.getDeviceId() != null, (v0) -> { return v0.getDeviceId(); }, maintainPlanSearchVO.getDeviceId()).eq(maintainPlanSearchVO.getIsAuto() != null, (v0) -> { return v0.getIsAuto(); }, maintainPlanSearchVO.getIsAuto()).in(CollectionUtil.isNotEmpty(maintainPlanSearchVO.getPlanStatusList()), (v0) -> { return v0.getPlanStatus(); }, maintainPlanSearchVO.getPlanStatusList()).and(Func.isNotEmpty(maintainPlanSearchVO.getKeyWord()), i2 -> { LambdaQueryWrapper lambdaQueryWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) i2.likeRight((v0) -> { return v0.getDeviceName(); }, maintainPlanSearchVO.getKeyWord())).or()).likeRight((v0) -> { return v0.getCode(); }, maintainPlanSearchVO.getKeyWord())).or()).likeRight((v0) -> { return v0.getDeviceCode(); }, maintainPlanSearchVO.getKeyWord()); }).orderByAsc((v0) -> { return v0.getMaintainDate(); }));*/ } List result = MaintainPlanConvert.INSTANCE.convert( list); result.forEach(bean -> { bean.setPlanStatusName(MaintainPlanStatusEnum.getDescDetail(bean.getPlanStatus())); bean.setIsAutoName(MaintainPlanIsAutoEnum.getDescDetail(bean.getIsAuto())); bean.setMaintainNatureName(RepairNatureEnum.getDescDetail(bean.getMaintainNature())); }); return result; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public IPage queryMaintainPlanPage(MaintainPlanSearchVO maintainPlanSearchVO, Query query) { IPage pages; if (!maintainPlanSearchVO.getFilterPlus().booleanValue()) { pages = page(Condition.getPage(query), Wrappers.query().lambda() .in(maintainPlanSearchVO.getDeviceTypeId() != null, MaintainPlan::getDeviceTypeId, new Object[] { maintainPlanSearchVO.getDeviceTypeId()}) .eq((maintainPlanSearchVO.getDeviceId() != null), MaintainPlan::getDeviceId, maintainPlanSearchVO.getDeviceId()) .eq((maintainPlanSearchVO.getIsAuto() != null), MaintainPlan::getIsAuto, maintainPlanSearchVO.getIsAuto()) .in(CollectionUtil.isNotEmpty(maintainPlanSearchVO.getPlanStatusList()), MaintainPlan::getPlanStatus, maintainPlanSearchVO.getPlanStatusList()) .and(Func.isNotEmpty(maintainPlanSearchVO.getKeyWord()), i -> i.likeRight(MaintainPlan::getDeviceName, maintainPlanSearchVO.getKeyWord()).or().likeRight(MaintainPlan::getCode, maintainPlanSearchVO.getKeyWord()).or().likeRight(MaintainPlan::getDeviceCode, maintainPlanSearchVO.getKeyWord())) .orderByDesc(MaintainPlan::getCreateTime).orderByDesc(MaintainPlan::getId) ); /* pages = page(Condition.getPage(query), (Wrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().in(maintainPlanSearchVO.getDeviceTypeId() != null, (v0) -> { return v0.getDeviceTypeId(); }, new Object[]{maintainPlanSearchVO.getDeviceTypeId()}).eq(maintainPlanSearchVO.getDeviceId() != null, (v0) -> { return v0.getDeviceId(); }, maintainPlanSearchVO.getDeviceId()).eq(maintainPlanSearchVO.getIsAuto() != null, (v0) -> { return v0.getIsAuto(); }, maintainPlanSearchVO.getIsAuto()).in(CollectionUtil.isNotEmpty(maintainPlanSearchVO.getPlanStatusList()), (v0) -> { return v0.getPlanStatus(); }, maintainPlanSearchVO.getPlanStatusList()).and(Func.isNotEmpty(maintainPlanSearchVO.getKeyWord()), i -> { LambdaQueryWrapper lambdaQueryWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) i.likeRight((v0) -> { return v0.getDeviceName(); }, maintainPlanSearchVO.getKeyWord())).or()).likeRight((v0) -> { return v0.getCode(); }, maintainPlanSearchVO.getKeyWord())).or()).likeRight((v0) -> { return v0.getDeviceCode(); }, maintainPlanSearchVO.getKeyWord()); }).orderByDesc((v0) -> { return v0.getCreateTime(); })).orderByDesc((v0) -> { return v0.getId(); }));*/ } else { pages = page(Condition.getPage(query), Condition.getQueryWrapper(maintainPlanSearchVO.getParam(), MaintainPlan.class) .lambda().in((maintainPlanSearchVO.getDeviceTypeId() != null), MaintainPlan::getDeviceTypeId, new Object[] { maintainPlanSearchVO.getDeviceTypeId() }) .eq((maintainPlanSearchVO.getDeviceId() != null), MaintainPlan::getDeviceId, maintainPlanSearchVO.getDeviceId()) .eq((maintainPlanSearchVO.getIsAuto() != null), MaintainPlan::getIsAuto, maintainPlanSearchVO.getIsAuto()) .in(CollectionUtil.isNotEmpty(maintainPlanSearchVO.getPlanStatusList()), MaintainPlan::getPlanStatus, maintainPlanSearchVO.getPlanStatusList()) .and(Func.isNotEmpty(maintainPlanSearchVO.getKeyWord()), i -> i.likeRight(MaintainPlan::getDeviceName, maintainPlanSearchVO.getKeyWord()).or().likeRight(MaintainPlan::getCode, maintainPlanSearchVO.getKeyWord()).or().likeRight(MaintainPlan::getDeviceCode, maintainPlanSearchVO.getKeyWord())) .orderByDesc(MaintainPlan::getCreateTime).orderByDesc(MaintainPlan::getId)); /* pages = page(Condition.getPage(query), (Wrapper) ((LambdaQueryWrapper) Condition.getQueryWrapper(maintainPlanSearchVO.getParam(), MaintainPlan.class).lambda().in(maintainPlanSearchVO.getDeviceTypeId() != null, (v0) -> { return v0.getDeviceTypeId(); }, new Object[]{maintainPlanSearchVO.getDeviceTypeId()}).eq(maintainPlanSearchVO.getDeviceId() != null, (v0) -> { return v0.getDeviceId(); }, maintainPlanSearchVO.getDeviceId()).eq(maintainPlanSearchVO.getIsAuto() != null, (v0) -> { return v0.getIsAuto(); }, maintainPlanSearchVO.getIsAuto()).in(CollectionUtil.isNotEmpty(maintainPlanSearchVO.getPlanStatusList()), (v0) -> { return v0.getPlanStatus(); }, maintainPlanSearchVO.getPlanStatusList()).and(Func.isNotEmpty(maintainPlanSearchVO.getKeyWord()), i2 -> { LambdaQueryWrapper lambdaQueryWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) i2.likeRight((v0) -> { return v0.getDeviceName(); }, maintainPlanSearchVO.getKeyWord())).or()).likeRight((v0) -> { return v0.getCode(); }, maintainPlanSearchVO.getKeyWord())).or()).likeRight((v0) -> { return v0.getDeviceCode(); }, maintainPlanSearchVO.getKeyWord()); }).orderByDesc((v0) -> { return v0.getCreateTime(); })).orderByDesc((v0) -> { return v0.getId(); }));*/ } IPage result = MaintainPlanConvert.INSTANCE.convert(pages); result.getRecords().forEach(bean -> { bean.setPlanStatusName(MaintainPlanStatusEnum.getDescDetail(bean.getPlanStatus())); bean.setIsAutoName(MaintainPlanIsAutoEnum.getDescDetail(bean.getIsAuto())); bean.setMaintainNatureName(RepairNatureEnum.getDescDetail(bean.getMaintainNature())); }); return result; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public List queryMaintainPlanItemList(Long planId) { return this.maintainPlanItemService.getMaintainPlanItemListByPlanId(planId, AuthUtil.getTenantId()); } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public IPage queryMaintainPlanItemListPage(Long planId, Query query) { IPage page = Condition.getPage(query); List list = this.maintainPlanItemService.queryMaintainPlanItemListPage(planId, AuthUtil.getTenantId(), page); page.setRecords(list); return page; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService @Transactional(rollbackFor = {Exception.class}) public Boolean deleteMaintainPlan(MaintainPlanIdListVO maintainPlanIdListVO) { List maintainPlanList = listByIds(maintainPlanIdListVO.getIdList()); if (maintainPlanList.isEmpty()) { throw new ServiceException(MessageUtils.message("cps.common.the.current.object.does.not.exist", new Object[0])); } for (MaintainPlan bean : maintainPlanList) { if (MaintainPlanStatusEnum.T1.getType() != bean.getPlanStatus().intValue() && MaintainPlanStatusEnum.T2.getType() != bean.getPlanStatus().intValue()) { throw new ServiceException(MessageUtils.message("cps.tpm.auto.plan.status.can.not.delete", new Object[0])); } } removeByIds(maintainPlanIdListVO.getIdList()); this.maintainPlanItemService.remove(Wrappers.query().lambda().in(MaintainPlanItem::getPlanId, maintainPlanIdListVO.getIdList())); /* this.maintainPlanItemService.remove((Wrapper) Wrappers.query().lambda().in((v0) -> { return v0.getPlanId(); }, maintainPlanIdListVO.getIdList()));*/ for (MaintainPlan bean2 : maintainPlanList) { this.machineService.updateDeviceMaintainStatus(bean2.getDeviceId(), bean2.getId(), null); } return true; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService @Transactional(rollbackFor = {Exception.class}) public Boolean performMaintainPlan(Long id) { MaintainPlan maintainPlan = (MaintainPlan) getById(id); if (maintainPlan == null) { throw new ServiceException(MessageUtils.message("cps.common.the.current.object.does.not.exist", new Object[0])); } if (MaintainPlanStatusEnum.T2.getType() != maintainPlan.getPlanStatus().intValue() && MaintainPlanStatusEnum.T1.getType() != maintainPlan.getPlanStatus().intValue()) { throw new ServiceException(MessageUtils.message("cps.tpm.only.to.perform.plan.and.normal.plan.can.performed", new Object[0])); } maintainPlan.setPlanStatus(Integer.valueOf(MaintainPlanStatusEnum.T3.getType())); updateById(maintainPlan); DeviceMaintainInDTO deviceMaintainInDTO = new DeviceMaintainInDTO(); deviceMaintainInDTO.setDeviceId(maintainPlan.getDeviceId()); deviceMaintainInDTO.setMaintainStatus(Integer.valueOf(MaintainStatusEnum.T3.getType())); this.machineService.updateDeviceMaintain(deviceMaintainInDTO); return true; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public List getMaintainPlanListByStatus(List statusList) { return list(Wrappers.query().lambda().in(MaintainPlan::getPlanStatus, statusList) .eq(Func.isNotBlank(AuthUtil.getTenantId()), MaintainPlan::getTenantId, AuthUtil.getTenantId()).orderByAsc(MaintainPlan::getMaintainDate)); /* return list((Wrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().in((v0) -> { return v0.getPlanStatus(); }, statusList)).eq(Func.isNotBlank(AuthUtil.getTenantId()), (v0) -> { return v0.getTenantId(); }, AuthUtil.getTenantId()).orderByAsc((v0) -> { return v0.getMaintainDate(); }));*/ } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public List getMaintainPlanListByStatusAndProjectId(List statusList, Long projectId) { return list(Wrappers.query().lambda().in(MaintainPlan::getPlanStatus, statusList) .eq(Func.isNotBlank(AuthUtil.getTenantId()), MaintainPlan::getTenantId, AuthUtil.getTenantId()) .eq(Func.isNotEmpty(projectId), MaintainPlan::getProjectId, projectId).orderByAsc(MaintainPlan::getMaintainDate)); /* return list((Wrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().in((v0) -> { return v0.getPlanStatus(); }, statusList)).eq(Func.isNotBlank(AuthUtil.getTenantId()), (v0) -> { return v0.getTenantId(); }, AuthUtil.getTenantId()).eq(Func.isNotEmpty(projectId), (v0) -> { return v0.getProjectId(); }, projectId).orderByAsc((v0) -> { return v0.getMaintainDate(); }));*/ } @Override // org.springblade.modules.tpm.service.IMaintainPlanService @Transactional(rollbackFor = {Exception.class}) public boolean changePlanStatus() { LocalDateTime now = LocalDateTime.now(); List list = this.baseMapper.getPlan(); if (list.isEmpty()) { return true; } List planIdList = list.stream().map((v0) -> { return v0.getId(); }).distinct().collect(Collectors.toList()); List planList = listByIds(planIdList); for (MaintainPlan bean : planList) { bean.setPlanStatus(Integer.valueOf(MaintainPlanStatusEnum.T2.getType())); bean.setUpdateTime(LocalDateTimeUtils.LocalDateTimeToDate(now)); updateById(bean); this.machineService.updateDeviceMaintainStatus(bean.getDeviceId(), bean.getPlanStatus(), bean.getId(), bean.getMaintainDate()); } return true; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public List queryMaintainPlanListByStatus(Integer planStatus) { List list = list(Wrappers.query().lambda().eq(Func.isNotEmpty(planStatus), MaintainPlan::getPlanStatus, planStatus) .eq(Func.isNotBlank(AuthUtil.getTenantId()), MaintainPlan::getTenantId, AuthUtil.getTenantId()).orderByAsc(MaintainPlan::getMaintainDate)); /* List list = list((Wrapper) Wrappers.query().lambda().eq(Func.isNotEmpty(planStatus), (v0) -> { return v0.getPlanStatus(); }, planStatus).eq(Func.isNotBlank(AuthUtil.getTenantId()), (v0) -> { return v0.getTenantId(); }, AuthUtil.getTenantId()).orderByAsc((v0) -> { return v0.getMaintainDate(); }));*/ return MaintainPlanConvert.INSTANCE.convert((List) list); } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public BladeFile exportMaintainPlan(MaintainPlanExportVO maintainPlanExportVO, HttpServletResponse response) { List list = this.baseMapper.export(maintainPlanExportVO, AuthUtil.getTenantId()); String fileName = String.format("%s-%s.xlsx", "保养计划数据", DateUtil.time()); MultipartFile multipartFile = ExcelUtil.exportToMultipartFile(fileName, "保养计划数据表", list, MaintainPlanExcel.class); return this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile); } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public MaintainStatisticsVO maintainPlanStatisticsNum() { return this.baseMapper.maintainPlanStatisticsNum(AuthUtil.getTenantId()); } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public IPage pageMaintainPlanExpire(Query query, MaintainPlanExpireQueryVO maintainPlanExpireQueryVO) { IPage page = Condition.getPage(query); List vos = this.baseMapper.pageMaintainPlanExpire(query, AuthUtil.getTenantId(), page, maintainPlanExpireQueryVO); vos.forEach(i -> { i.setMaintainNatureName(RepairNatureEnum.getDescDetail(i.getMaintainNature())); i.setPlanStatusName(MaintainPlanStatusEnum.getDescDetail(i.getPlanStatus())); }); return page.setRecords(vos); } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public IPage pageMaintainPlanToday(Query query, MaintainPlanExpireQueryVO maintainPlanExpireQueryVO) { IPage page = Condition.getPage(query); List vos = this.baseMapper.pageMaintainPlanToday(query, AuthUtil.getTenantId(), page, maintainPlanExpireQueryVO); vos.forEach(i -> { i.setMaintainNatureName(RepairNatureEnum.getDescDetail(i.getMaintainNature())); i.setPlanStatusName(MaintainPlanStatusEnum.getDescDetail(i.getPlanStatus())); }); return page.setRecords(vos); } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public IPage pageMaintainPlanWarning(Query query, MaintainPlanExpireQueryVO maintainPlanExpireQueryVO) { IPage page = Condition.getPage(query); List maintainPlanExpireList = this.baseMapper.pageMaintainPlanWarning(query, AuthUtil.getTenantId(), page, maintainPlanExpireQueryVO); maintainPlanExpireList.forEach(i -> { i.setMaintainNatureName(RepairNatureEnum.getDescDetail(i.getMaintainNature())); i.setPlanStatusName(MaintainPlanStatusEnum.getDescDetail(i.getPlanStatus())); }); return page.setRecords(maintainPlanExpireList); } private List checkPlanStatus(List maintainPlanList, LocalDateTime now) { maintainPlanList.forEach(maintainPlan -> { try { Integer difference = LocalDateTimeUtils.getDifference(now.toLocalDate(), maintainPlan.getMaintainDate().toLocalDate()); if (difference.intValue() > 0) { maintainPlan.setPlanStatus(Integer.valueOf(MaintainPlanStatusEnum.T1.getType())); } else { maintainPlan.setPlanStatus(Integer.valueOf(MaintainPlanStatusEnum.T2.getType())); } } catch (Exception e) { e.printStackTrace(); } }); return maintainPlanList; } private boolean checkCodeIsExist(String code, Long id) { List maintainPlanList = this.baseMapper.selectList(Wrappers.query() .lambda().eq(Func.isNotEmpty(AuthUtil.getTenantId()), MaintainPlan::getTenantId, AuthUtil.getTenantId()) .in(Func.isNotBlank(code), MaintainPlan::getCode, Func.toStrList(code)).notIn( Func.isNotEmpty(id), MaintainPlan::getId, new Object[] { id })); /* List maintainPlanList = this.baseMapper.selectList(Wrappers.query().lambda().eq(Func.isNotEmpty(AuthUtil.getTenantId()), (v0) -> { return v0.getTenantId(); }, AuthUtil.getTenantId()).in(Func.isNotBlank(code), (v0) -> { return v0.getCode(); }, Func.toStrList(code)).notIn(Func.isNotEmpty(id), (v0) -> { return v0.getId(); }, new Object[]{id}));*/ return maintainPlanList != null && maintainPlanList.size() > 0; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService public IPage queryMaintainPlanPageByPlanStatus(MaintainPlanSearchByPlanStatusVO maintainPlanSearchByPlanStatusVO, Query query) { IPage pages; if (!maintainPlanSearchByPlanStatusVO.getFilterPlus().booleanValue()) { pages = page(Condition.getPage(query), Wrappers.query().lambda() .in((maintainPlanSearchByPlanStatusVO.getDeviceTypeId() != null), MaintainPlan::getDeviceTypeId, new Object[] { maintainPlanSearchByPlanStatusVO.getDeviceTypeId() }) .eq((maintainPlanSearchByPlanStatusVO.getDeviceId() != null), MaintainPlan::getDeviceId, maintainPlanSearchByPlanStatusVO.getDeviceId()) .and(Func.isNotEmpty(maintainPlanSearchByPlanStatusVO.getKeyWord()), i -> i.like(MaintainPlan::getDeviceName, maintainPlanSearchByPlanStatusVO.getKeyWord()).or().like(MaintainPlan::getCode, maintainPlanSearchByPlanStatusVO.getKeyWord()).or().like(MaintainPlan::getDeviceCode, maintainPlanSearchByPlanStatusVO.getKeyWord())) .eq((maintainPlanSearchByPlanStatusVO.getPlanStatus() != null), MaintainPlan::getPlanStatus, maintainPlanSearchByPlanStatusVO.getPlanStatus()) .orderByAsc(MaintainPlan::getMaintainDate)); /* pages = page(Condition.getPage(query), (Wrapper) Wrappers.query().lambda().in(maintainPlanSearchByPlanStatusVO.getDeviceTypeId() != null, (v0) -> { return v0.getDeviceTypeId(); }, new Object[]{maintainPlanSearchByPlanStatusVO.getDeviceTypeId()}).eq(maintainPlanSearchByPlanStatusVO.getDeviceId() != null, (v0) -> { return v0.getDeviceId(); }, maintainPlanSearchByPlanStatusVO.getDeviceId()).and(Func.isNotEmpty(maintainPlanSearchByPlanStatusVO.getKeyWord()), i -> { LambdaQueryWrapper lambdaQueryWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) i.like((v0) -> { return v0.getDeviceName(); }, maintainPlanSearchByPlanStatusVO.getKeyWord())).or()).like((v0) -> { return v0.getCode(); }, maintainPlanSearchByPlanStatusVO.getKeyWord())).or()).like((v0) -> { return v0.getDeviceCode(); }, maintainPlanSearchByPlanStatusVO.getKeyWord()); }).eq(maintainPlanSearchByPlanStatusVO.getPlanStatus() != null, (v0) -> { return v0.getPlanStatus(); }, maintainPlanSearchByPlanStatusVO.getPlanStatus()).orderByAsc((v0) -> { return v0.getMaintainDate(); }));*/ } else { pages = page(Condition.getPage(query),Condition.getQueryWrapper(maintainPlanSearchByPlanStatusVO.getParam(), MaintainPlan.class) .lambda().in((maintainPlanSearchByPlanStatusVO.getDeviceTypeId() != null), MaintainPlan::getDeviceTypeId, new Object[] { maintainPlanSearchByPlanStatusVO.getDeviceTypeId() }) .eq((maintainPlanSearchByPlanStatusVO.getDeviceId() != null), MaintainPlan::getDeviceId, maintainPlanSearchByPlanStatusVO.getDeviceId()) .and(Func.isNotEmpty(maintainPlanSearchByPlanStatusVO.getKeyWord()), i -> i.like(MaintainPlan::getDeviceName, maintainPlanSearchByPlanStatusVO.getKeyWord()).or().like(MaintainPlan::getCode, maintainPlanSearchByPlanStatusVO.getKeyWord()).or().like(MaintainPlan::getDeviceCode, maintainPlanSearchByPlanStatusVO.getKeyWord())) .eq((maintainPlanSearchByPlanStatusVO.getPlanStatus() != null), MaintainPlan::getPlanStatus, maintainPlanSearchByPlanStatusVO.getPlanStatus()) .orderByAsc(MaintainPlan::getMaintainDate)); /* pages = page(Condition.getPage(query), (Wrapper) Condition.getQueryWrapper(maintainPlanSearchByPlanStatusVO.getParam(), MaintainPlan.class).lambda().in(maintainPlanSearchByPlanStatusVO.getDeviceTypeId() != null, (v0) -> { return v0.getDeviceTypeId(); }, new Object[]{maintainPlanSearchByPlanStatusVO.getDeviceTypeId()}).eq(maintainPlanSearchByPlanStatusVO.getDeviceId() != null, (v0) -> { return v0.getDeviceId(); }, maintainPlanSearchByPlanStatusVO.getDeviceId()).and(Func.isNotEmpty(maintainPlanSearchByPlanStatusVO.getKeyWord()), i2 -> { LambdaQueryWrapper lambdaQueryWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) i2.like((v0) -> { return v0.getDeviceName(); }, maintainPlanSearchByPlanStatusVO.getKeyWord())).or()).like((v0) -> { return v0.getCode(); }, maintainPlanSearchByPlanStatusVO.getKeyWord())).or()).like((v0) -> { return v0.getDeviceCode(); }, maintainPlanSearchByPlanStatusVO.getKeyWord()); }).eq(maintainPlanSearchByPlanStatusVO.getPlanStatus() != null, (v0) -> { return v0.getPlanStatus(); }, maintainPlanSearchByPlanStatusVO.getPlanStatus()).orderByAsc((v0) -> { return v0.getMaintainDate(); }));*/ } IPage result = MaintainPlanConvert.INSTANCE.convert(pages); result.getRecords().forEach(bean -> { bean.setPlanStatusName(MaintainPlanStatusEnum.getDescDetail(bean.getPlanStatus())); bean.setMaintainNatureName(RepairNatureEnum.getDescDetail(bean.getMaintainNature())); }); return result; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService @Transactional(rollbackFor = {Exception.class}) public Boolean createMaintainPlanAuto(MaintainPlanAutoAddVO maintainPlanAutoAddVO) { List deviceSimpleDTOList = this.machineService.deviceListByDeviceIdList(maintainPlanAutoAddVO.getDeviceIdList()); List maintainProjectList = this.maintainProjectService.listByIds(maintainPlanAutoAddVO.getMaintainProjectIdList()); List maintainPlanList = this.baseMapper.selectList(Wrappers.query().lambda() .eq(Func.isNotEmpty(AuthUtil.getTenantId()), MaintainPlan::getTenantId, AuthUtil.getTenantId()) .in(MaintainPlan::getDeviceId, maintainPlanAutoAddVO.getDeviceIdList()) .in(MaintainPlan::getProjectId, maintainPlanAutoAddVO.getMaintainProjectIdList()) .eq(MaintainPlan::getIsAuto, Integer.valueOf(MaintainPlanIsAutoEnum.T1.getType())) .ne(MaintainPlan::getPlanStatus, Integer.valueOf(MaintainPlanStatusEnum.T5.getType()))); /* List maintainPlanList = this.baseMapper.selectList((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().eq(Func.isNotEmpty(AuthUtil.getTenantId()), (v0) -> { return v0.getTenantId(); }, AuthUtil.getTenantId()).in((v0) -> { return v0.getDeviceId(); }, maintainPlanAutoAddVO.getDeviceIdList())).in((v0) -> { return v0.getProjectId(); }, maintainPlanAutoAddVO.getMaintainProjectIdList())).eq((v0) -> { return v0.getIsAuto(); }, Integer.valueOf(MaintainPlanIsAutoEnum.T1.getType()))).ne((v0) -> { return v0.getPlanStatus(); }, Integer.valueOf(MaintainPlanStatusEnum.T5.getType())));*/ Set set = new HashSet<>(); maintainPlanList.forEach(i -> { set.add(String.valueOf(i.getDeviceId()) + String.valueOf(i.getProjectId())); }); for (MaintainProject maintainProject : maintainProjectList) { List maintainProjectItemList = this.maintainProjectItemService.list(Wrappers.query().lambda() .eq(Func.isNotEmpty(AuthUtil.getTenantId()), MaintainProjectItem::getTenantId, AuthUtil.getTenantId()) .eq(MaintainProjectItem::getProjectId, maintainProject.getId())); /* List maintainProjectItemList = this.maintainProjectItemService.list((Wrapper) Wrappers.query().lambda().eq(Func.isNotEmpty(AuthUtil.getTenantId()), (v0) -> { return v0.getTenantId(); }, AuthUtil.getTenantId()).eq((v0) -> { return v0.getProjectId(); }, maintainProject.getId()));*/ for (DeviceSimpleDTO deviceSimpleDTO : deviceSimpleDTOList) { if (!set.contains(String.valueOf(deviceSimpleDTO.getDeviceId()) + maintainProject.getId())) { MaintainPlanBatchVO maintainPlanBatchVO = MaintainPlanBatchVO.builder().deviceSimpleDTO(deviceSimpleDTO).maintainProject(maintainProject).maintainProjectItemList(maintainProjectItemList).lastTime(null).remark(maintainPlanAutoAddVO.getRemark()).maintainUserId(maintainPlanAutoAddVO.getMaintainUserId()).maintainUserName(maintainPlanAutoAddVO.getMaintainUserName()).maintainNature(maintainPlanAutoAddVO.getMaintainNature()).notifyBusinessSend(maintainPlanAutoAddVO.getNotifyBusinessSend()).build(); createMaintainPlanBatch(maintainPlanBatchVO); set.add(String.valueOf(deviceSimpleDTO.getDeviceId()) + maintainProject.getId()); } } } return true; } @Override // org.springblade.modules.tpm.service.IMaintainPlanService @Transactional(rollbackFor = {Exception.class}) public void createMaintainPlanBatch(MaintainPlanBatchVO maintainPlanBatchVO) { LocalDateTime now = LocalDateTime.now(); MaintainPlan maintainPlan = new MaintainPlan(); Long intervalTime = Long.valueOf(maintainPlanBatchVO.getMaintainProject().getIntervalTime() == null ? 0L : maintainPlanBatchVO.getMaintainProject().getIntervalTime().intValue()); if (maintainPlanBatchVO.getLastTime() == null) { maintainPlan.setMaintainDate(now.plusDays(intervalTime.longValue())); } else { maintainPlan.setMaintainDate(maintainPlanBatchVO.getLastTime().plusDays(intervalTime.longValue())); maintainPlan.setPreMaintainTime(maintainPlanBatchVO.getLastTime()); } maintainPlan.setCreateTime(LocalDateTimeUtils.LocalDateTimeToDate(now)); maintainPlan.setIsAuto(Integer.valueOf(MaintainGenerateEnum.T1.getType())); maintainPlan.setDeviceId(maintainPlanBatchVO.getDeviceSimpleDTO().getDeviceId()); maintainPlan.setDeviceName(maintainPlanBatchVO.getDeviceSimpleDTO().getName()); maintainPlan.setDeviceCode(maintainPlanBatchVO.getDeviceSimpleDTO().getCode()); maintainPlan.setDeviceTypeId(maintainPlanBatchVO.getDeviceSimpleDTO().getDeviceTypeId()); maintainPlan.setDeviceTypeName(maintainPlanBatchVO.getDeviceSimpleDTO().getDeviceTypeName()); maintainPlan.setMachineModel(maintainPlanBatchVO.getDeviceSimpleDTO().getMachineModel()); maintainPlan.setRemark(maintainPlanBatchVO.getRemark()); maintainPlan.setMaintainNature(maintainPlanBatchVO.getMaintainNature()); maintainPlan.setMaintainUserId(maintainPlanBatchVO.getMaintainUserId()); maintainPlan.setMaintainUserName(maintainPlanBatchVO.getMaintainUserName()); maintainPlan.setProjectId(maintainPlanBatchVO.getMaintainProject().getId()); maintainPlan.setProjectCode(maintainPlanBatchVO.getMaintainProject().getCode()); maintainPlan.setProjectName(maintainPlanBatchVO.getMaintainProject().getName()); maintainPlan.setPreWarningDays(maintainPlanBatchVO.getMaintainProject().getPreWarningDays()); maintainPlan.setIntervalTime(maintainPlanBatchVO.getMaintainProject().getIntervalTime()); List maintainPlanList = checkPlanStatus(Arrays.asList(maintainPlan), now); maintainPlan.setCode(this.codeGeneratorService.getGeneratorCode(maintainPlan, MetaTypeEnum.MAINTAIN_PLAN.getCode())); if (Func.isBlank(maintainPlan.getCode())) { throw new ServiceException(MessageUtils.message("cps.tpm.maintain.coding.rules", new Object[0])); } if (checkCodeIsExist(maintainPlan.getCode(), null)) { throw new ServiceException(MessageUtils.message("cps.common.duplicate.code.can.not.add", new Object[0])); } saveBatch(maintainPlanList); List maintainPlanItemList = new ArrayList<>(); maintainPlanBatchVO.getMaintainProjectItemList().forEach(maintainItem -> { MaintainPlanItem bean = new MaintainPlanItem(); bean.setPlanId(((MaintainPlan) maintainPlanList.get(0)).getId()); bean.setItemId(maintainItem.getItemId()); bean.setCreateTime(LocalDateTimeUtils.LocalDateTimeToDate(now)); maintainPlanItemList.add(bean); }); this.maintainPlanItemService.saveBatch(maintainPlanItemList); this.machineService.updateDeviceMaintainStatus(maintainPlanList.get(0).getDeviceId(), maintainPlanList.get(0).getPlanStatus(), maintainPlanList.get(0).getId(), maintainPlanList.get(0).getMaintainDate()); sendMessage(maintainPlan, maintainPlanBatchVO.getNotifyBusinessSend()); } private void sendMessage(MaintainPlan maintainPlan, NotifyBusinessSendDTO notifyBusinessSend) { BusinessSend businessSend = this.businessSendFactory.getBusinessSend(NotifyConstant.MAINTENANCE); businessSend.saveState(maintainPlan, notifyBusinessSend); BusinessSend businessSend2 = this.businessSendFactory.getBusinessSend(NotifyConstant.MAINTENANCE_WARNING); businessSend2.saveState(maintainPlan, notifyBusinessSend); BusinessSend businessSend3 = this.businessSendFactory.getBusinessSend(NotifyConstant.MAINTAIN_OVERDUE); businessSend3.saveState(maintainPlan, notifyBusinessSend); } }