package org.jeecg.modules.eam.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.util.UUIDGenerator; import org.jeecg.modules.eam.entity.PredictiveWorkOrder; import org.jeecg.modules.eam.entity.PredictiveWorkPlan; import org.jeecg.modules.eam.entity.PredictiveWorkPlanParameter; import org.jeecg.modules.eam.entity.PredictiveWorkPlanParameterHistory; import org.jeecg.modules.eam.mapper.PredictiveWorkPlanParameterMapper; import org.jeecg.modules.eam.model.ParameterVo; import org.jeecg.modules.eam.service.IPredictiveWorkOrderService; import org.jeecg.modules.eam.service.IPredictiveWorkPlanParameterHistoryService; import org.jeecg.modules.eam.service.IPredictiveWorkPlanParameterService; import org.jeecg.modules.eam.service.IPredictiveWorkPlanService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @Service public class PredictiveWorkPlanParameterServiceImpl extends ServiceImpl implements IPredictiveWorkPlanParameterService { @Autowired private IPredictiveWorkPlanService predictiveWorkPlanService; @Autowired private IPredictiveWorkPlanParameterHistoryService predictiveWorkPlanParameterHistoryService; @Autowired private IPredictiveWorkOrderService predictiveWorkOrderService; @Override public List listPredictiveWorkPlanParameter(Map params) { return super.baseMapper.listPredictiveWorkPlanParameter(params); } @Override public IPage> pagePredictiveWorkPlanParameter(Integer pageNo, Integer pageSize, Map params) { IPage pageData = new Page(pageNo, pageSize); return super.baseMapper.pagePredictiveWorkPlanParameter(pageData, params); } // 1.查询配置的 参数触发条件 // 2.查询设备的参数 // 3.生成维护工单 @Override public void createParameterWorkPlan() { List PredictiveWorkPlanList = predictiveWorkPlanService.listWorkPlan("cskz"); for (PredictiveWorkPlan predictiveWorkPlan : PredictiveWorkPlanList) { //方案对应的参数信息 List predictiveWorkPlanParameterList = listParameter(predictiveWorkPlan.getId()); boolean needCreateFlag = false; int needCreateFlagTimes = 0; //处理每一个配置 for (PredictiveWorkPlanParameter predictiveWorkPlanParameter : predictiveWorkPlanParameterList) { ParameterVo parameterVo = this.findParameterInfo(predictiveWorkPlanParameter.getSaveTableName(), predictiveWorkPlanParameter.getLowerLimitValue(), predictiveWorkPlanParameter.getUpperLimitValue(), predictiveWorkPlanParameter.getParameterCode()); if (isNewParameter(predictiveWorkPlan.getId(), parameterVo.getCollectTime())) { predictiveWorkPlanParameter.setActualValue(parameterVo.getActualValue()); predictiveWorkPlanParameter.setCollectTime(parameterVo.getCollectTime()); needCreateFlagTimes++; } } if ("and".equals(predictiveWorkPlanParameterList.get(0).getParameterCondition())) { if (needCreateFlagTimes == predictiveWorkPlanParameterList.size()) { needCreateFlag = true; } } else if ("or".equals(predictiveWorkPlanParameterList.get(0).getParameterCondition())) { if (needCreateFlagTimes > 0) { needCreateFlag = true; } } if (needCreateFlag) { //生成工单 ,将参数信息备份 this.createOrder(predictiveWorkPlan.getId(), predictiveWorkPlan.getEquipmentId()); this.backInfo(predictiveWorkPlan.getId(), predictiveWorkPlanParameterList); } } } @Override public void removeByWorkPlanId(String predictiveWorkPlanId) { LambdaUpdateChainWrapper lambdaUpdate = this.lambdaUpdate(); lambdaUpdate.eq(PredictiveWorkPlanParameter::getWorkPlanId,predictiveWorkPlanId); lambdaUpdate.remove(); } @Override public void revise(String oldWorkPlanId, String workPlanId) { LambdaQueryChainWrapper lambdaQuery = this.lambdaQuery(); lambdaQuery.eq(PredictiveWorkPlanParameter::getWorkPlanId,oldWorkPlanId).eq(PredictiveWorkPlanParameter::getDelFlag,0); List insertList = lambdaQuery.list(); for(PredictiveWorkPlanParameter predictiveWorkPlanParameter:insertList){ predictiveWorkPlanParameter.setWorkPlanId(workPlanId); predictiveWorkPlanParameter.setId(UUIDGenerator.generate()); } this.saveBatch(insertList); } private void createOrder(String workPlanId, String equipmentId) { PredictiveWorkOrder predictiveWorkOrder = new PredictiveWorkOrder(); predictiveWorkOrder.setWorkPlanId(workPlanId); predictiveWorkOrder.setEquipmentId(equipmentId); predictiveWorkOrderService.add(predictiveWorkOrder); } private void backInfo(String workPlanId, List predictiveWorkPlanParameterList) { List list = new ArrayList<>(); for (PredictiveWorkPlanParameter predictiveWorkPlanParameter : predictiveWorkPlanParameterList) { PredictiveWorkPlanParameterHistory predictiveWorkPlanParameterHistory = new PredictiveWorkPlanParameterHistory(); predictiveWorkPlanParameterHistory.setWorkPlanId(workPlanId); predictiveWorkPlanParameterHistory.setParameterId(predictiveWorkPlanParameter.getParameterId()); predictiveWorkPlanParameterHistory.setParameterCode(predictiveWorkPlanParameter.getParameterCode()); predictiveWorkPlanParameterHistory.setParameterName(predictiveWorkPlanParameter.getParameterName()); predictiveWorkPlanParameterHistory.setUpperLimitValue(predictiveWorkPlanParameter.getUpperLimitValue()); predictiveWorkPlanParameterHistory.setLowerLimitValue(predictiveWorkPlanParameter.getLowerLimitValue()); predictiveWorkPlanParameterHistory.setActualValue(predictiveWorkPlanParameter.getActualValue()); predictiveWorkPlanParameterHistory.setParameterCondition(predictiveWorkPlanParameter.getParameterCondition()); predictiveWorkPlanParameterHistory.setCollectTime(predictiveWorkPlanParameter.getCollectTime()); list.add(predictiveWorkPlanParameterHistory); } predictiveWorkPlanParameterHistoryService.saveBatch(list); } private boolean isNewParameter(String workPlanId, Date collectTime) { LambdaQueryChainWrapper lambdaQuery = predictiveWorkPlanParameterHistoryService.lambdaQuery(); lambdaQuery.eq(PredictiveWorkPlanParameterHistory::getWorkPlanId, workPlanId); lambdaQuery.eq(PredictiveWorkPlanParameterHistory::getCollectTime, collectTime); List list = lambdaQuery.list(); if (list != null && list.size() > 0) { return false; } return true; } private ParameterVo findParameterInfo(String saveTableName, float lowerLimitValue, float upperLimitValue, String parameterCode) { return this.getBaseMapper().findParameterInfo(saveTableName, lowerLimitValue, upperLimitValue, parameterCode); } private List listParameter(String predictiveWorkPlanId) { return this.getBaseMapper().listParameter(predictiveWorkPlanId); } }