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<MaintainPlanMapper, MaintainPlan> 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<MaintainPlan> maintainPlanList = checkPlanStatus(Arrays.asList(maintainPlan), now);
|
saveBatch(maintainPlanList);
|
List<MaintainPlanItem> 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<MaintainPlan> maintainPlanList = checkPlanStatus(Arrays.asList(updateMaintainPlan), now);
|
updateBatchById(maintainPlanList);
|
this.maintainPlanItemService.remove(Wrappers.<MaintainPlanItem>query().lambda().in(MaintainPlanItem::getPlanId, maintainPlan.getId()));
|
/*
|
this.maintainPlanItemService.remove((Wrapper) Wrappers.query().lambda().in((v0) -> {
|
return v0.getPlanId();
|
}, new Object[]{maintainPlan.getId()}));*/
|
List<MaintainPlanItem> 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<MaintainPlanItemVO> maintainPlanItemVoList = this.maintainPlanItemService.getMaintainPlanItemListByPlanId(id, AuthUtil.getTenantId());
|
maintainPlanVO.setMaintainPlanItemVoList(maintainPlanItemVoList);
|
return maintainPlanVO;
|
}
|
|
@Override // org.springblade.modules.tpm.service.IMaintainPlanService
|
public List<MaintainPlanVO> queryMaintainPlanList(MaintainPlanSearchVO maintainPlanSearchVO) {
|
List<MaintainPlan> list = new ArrayList<>();
|
|
if (!maintainPlanSearchVO.getFilterPlus().booleanValue()) {
|
list = list(Wrappers.<MaintainPlan>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<MaintainPlanVO> 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<MaintainPlanVO> queryMaintainPlanPage(MaintainPlanSearchVO maintainPlanSearchVO, Query query) {
|
IPage<MaintainPlan> pages;
|
if (!maintainPlanSearchVO.getFilterPlus().booleanValue()) {
|
pages = page(Condition.getPage(query), Wrappers.<MaintainPlan>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<MaintainPlanVO> 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<MaintainPlanItemVO> queryMaintainPlanItemList(Long planId) {
|
return this.maintainPlanItemService.getMaintainPlanItemListByPlanId(planId, AuthUtil.getTenantId());
|
}
|
|
@Override // org.springblade.modules.tpm.service.IMaintainPlanService
|
public IPage<MaintainPlanItemVO> queryMaintainPlanItemListPage(Long planId, Query query) {
|
IPage<MaintainPlanItemVO> page = Condition.getPage(query);
|
List<MaintainPlanItemVO> 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<MaintainPlan> 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.<MaintainPlanItem>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<MaintainPlan> getMaintainPlanListByStatus(List<Integer> statusList) {
|
return list(Wrappers.<MaintainPlan>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<MaintainPlan> getMaintainPlanListByStatusAndProjectId(List<Integer> statusList, Long projectId) {
|
return list(Wrappers.<MaintainPlan>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<MaintainPlanVO> list = this.baseMapper.getPlan();
|
if (list.isEmpty()) {
|
return true;
|
}
|
List<Long> planIdList = list.stream().map((v0) -> {
|
return v0.getId();
|
}).distinct().collect(Collectors.toList());
|
List<MaintainPlan> 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<MaintainPlanVO> queryMaintainPlanListByStatus(Integer planStatus) {
|
List<MaintainPlan> list = list(Wrappers.<MaintainPlan>query().lambda().eq(Func.isNotEmpty(planStatus), MaintainPlan::getPlanStatus, planStatus)
|
.eq(Func.isNotBlank(AuthUtil.getTenantId()), MaintainPlan::getTenantId, AuthUtil.getTenantId()).orderByAsc(MaintainPlan::getMaintainDate));
|
/*
|
List<MaintainPlan> 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<MaintainPlanExcel> 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<MaintainPlanExpireVO> pageMaintainPlanExpire(Query query, MaintainPlanExpireQueryVO maintainPlanExpireQueryVO) {
|
IPage<MaintainPlanExpireVO> page = Condition.getPage(query);
|
List<MaintainPlanExpireVO> 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<MaintainPlanExpireVO> pageMaintainPlanToday(Query query, MaintainPlanExpireQueryVO maintainPlanExpireQueryVO) {
|
IPage<MaintainPlanExpireVO> page = Condition.getPage(query);
|
List<MaintainPlanExpireVO> 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<MaintainPlanExpireVO> pageMaintainPlanWarning(Query query, MaintainPlanExpireQueryVO maintainPlanExpireQueryVO) {
|
IPage<MaintainPlanExpireVO> page = Condition.getPage(query);
|
List<MaintainPlanExpireVO> 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<MaintainPlan> checkPlanStatus(List<MaintainPlan> 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<MaintainPlan> maintainPlanList = this.baseMapper.selectList(Wrappers.<MaintainPlan>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<MaintainPlan> 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<MaintainPlanVO> queryMaintainPlanPageByPlanStatus(MaintainPlanSearchByPlanStatusVO maintainPlanSearchByPlanStatusVO, Query query) {
|
IPage<MaintainPlan> pages;
|
if (!maintainPlanSearchByPlanStatusVO.getFilterPlus().booleanValue()) {
|
pages = page(Condition.getPage(query), Wrappers.<MaintainPlan>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<MaintainPlanVO> 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<DeviceSimpleDTO> deviceSimpleDTOList = this.machineService.deviceListByDeviceIdList(maintainPlanAutoAddVO.getDeviceIdList());
|
List<MaintainProject> maintainProjectList = this.maintainProjectService.listByIds(maintainPlanAutoAddVO.getMaintainProjectIdList());
|
List<MaintainPlan> maintainPlanList = this.baseMapper.selectList(Wrappers.<MaintainPlan>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<MaintainPlan> 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<String> set = new HashSet<>();
|
maintainPlanList.forEach(i -> {
|
set.add(String.valueOf(i.getDeviceId()) + String.valueOf(i.getProjectId()));
|
});
|
for (MaintainProject maintainProject : maintainProjectList) {
|
List<MaintainProjectItem> maintainProjectItemList = this.maintainProjectItemService.list(Wrappers.<MaintainProjectItem>query().lambda()
|
.eq(Func.isNotEmpty(AuthUtil.getTenantId()), MaintainProjectItem::getTenantId, AuthUtil.getTenantId())
|
.eq(MaintainProjectItem::getProjectId, maintainProject.getId()));
|
/*
|
List<MaintainProjectItem> 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<MaintainPlan> 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<MaintainPlanItem> 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);
|
}
|
}
|