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<PredictiveWorkPlanParameterMapper, PredictiveWorkPlanParameter> implements IPredictiveWorkPlanParameterService {
|
|
@Autowired
|
private IPredictiveWorkPlanService predictiveWorkPlanService;
|
|
@Autowired
|
private IPredictiveWorkPlanParameterHistoryService predictiveWorkPlanParameterHistoryService;
|
|
@Autowired
|
private IPredictiveWorkOrderService predictiveWorkOrderService;
|
|
@Override
|
public List<PredictiveWorkPlanParameter> listPredictiveWorkPlanParameter(Map<String, Object> params) {
|
return super.baseMapper.listPredictiveWorkPlanParameter(params);
|
}
|
|
@Override
|
public IPage<Map<String, Object>> pagePredictiveWorkPlanParameter(Integer pageNo, Integer pageSize, Map<String, Object> params) {
|
IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
|
return super.baseMapper.pagePredictiveWorkPlanParameter(pageData, params);
|
}
|
|
// 1.查询配置的 参数触发条件
|
// 2.查询设备的参数
|
// 3.生成维护工单
|
@Override
|
public void createParameterWorkPlan() {
|
List<PredictiveWorkPlan> PredictiveWorkPlanList = predictiveWorkPlanService.listWorkPlan("cskz");
|
for (PredictiveWorkPlan predictiveWorkPlan : PredictiveWorkPlanList) {
|
//方案对应的参数信息
|
List<PredictiveWorkPlanParameter> 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<PredictiveWorkPlanParameter> lambdaUpdate = this.lambdaUpdate();
|
lambdaUpdate.eq(PredictiveWorkPlanParameter::getWorkPlanId,predictiveWorkPlanId);
|
lambdaUpdate.remove();
|
}
|
|
@Override
|
public void revise(String oldWorkPlanId, String workPlanId) {
|
LambdaQueryChainWrapper<PredictiveWorkPlanParameter> lambdaQuery = this.lambdaQuery();
|
lambdaQuery.eq(PredictiveWorkPlanParameter::getWorkPlanId,oldWorkPlanId).eq(PredictiveWorkPlanParameter::getDelFlag,0);
|
List<PredictiveWorkPlanParameter> 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<PredictiveWorkPlanParameter> predictiveWorkPlanParameterList) {
|
List<PredictiveWorkPlanParameterHistory> 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<PredictiveWorkPlanParameterHistory> lambdaQuery = predictiveWorkPlanParameterHistoryService.lambdaQuery();
|
lambdaQuery.eq(PredictiveWorkPlanParameterHistory::getWorkPlanId, workPlanId);
|
lambdaQuery.eq(PredictiveWorkPlanParameterHistory::getCollectTime, collectTime);
|
List<PredictiveWorkPlanParameterHistory> 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<PredictiveWorkPlanParameter> listParameter(String predictiveWorkPlanId) {
|
return this.getBaseMapper().listParameter(predictiveWorkPlanId);
|
}
|
|
}
|