package com.qianwen.smartman.modules.system.service.impl;
|
|
import java.util.List;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.qianwen.core.log.exception.ServiceException;
|
import com.qianwen.core.mp.base.BaseServiceImpl;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.common.constant.FmsConstant;
|
import com.qianwen.smartman.common.utils.MessageUtils;
|
import com.qianwen.smartman.modules.fms.dto.FmsInputDto;
|
import com.qianwen.smartman.modules.fms.dto.SwitchDTO;
|
import com.qianwen.smartman.modules.fms.entity.FmsInstructionRecord;
|
import com.qianwen.smartman.modules.fms.enums.InstructionEnum;
|
import com.qianwen.smartman.modules.fms.forestClient.FmsForestClient;
|
import com.qianwen.smartman.modules.fms.service.IFmsInstructionRecordService;
|
import com.qianwen.smartman.modules.fms.util.FmsForestUtil;
|
import com.qianwen.smartman.modules.system.entity.Param;
|
import com.qianwen.smartman.modules.system.mapper.ParamMapper;
|
import com.qianwen.smartman.modules.system.service.IParamService;
|
|
@Service
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/service/impl/ParamServiceImpl.class */
|
public class ParamServiceImpl extends BaseServiceImpl<ParamMapper, Param> implements IParamService {
|
private static final Logger log = LoggerFactory.getLogger(ParamServiceImpl.class);
|
private final IFmsInstructionRecordService instructionRecordService;
|
private final FmsForestClient fmsForestClient;
|
|
|
public ParamServiceImpl(final IFmsInstructionRecordService instructionRecordService, final FmsForestClient fmsForestClient) {
|
this.instructionRecordService = instructionRecordService;
|
this.fmsForestClient = fmsForestClient;
|
}
|
|
@Override // org.springblade.modules.system.service.IParamService
|
public String getValue(String paramKey) {
|
Param param = getOne(Wrappers.<Param>query().lambda().eq(Param::getParamKey, paramKey));
|
/*
|
Param param = (Param) getOne((Wrapper) Wrappers.query().lambda().eq((v0) -> {
|
return v0.getParamKey();
|
}, paramKey));*/
|
return param.getParamValue();
|
}
|
|
@Override // org.springblade.modules.system.service.IParamService
|
@Transactional(rollbackFor = {Exception.class})
|
public void startSwitching() {
|
Param fmsParam = getOne(Wrappers.<Param>lambdaQuery().eq(Param::getParamName, FmsConstant.PARAM_NAME));
|
/*
|
Param fmsParam = (Param) getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getParamName();
|
}, FmsConstant.PARAM_NAME));*/
|
if (fmsParam != null) {
|
fmsParam.setParamValue(FmsConstant.MANUAL);
|
updateById(fmsParam);
|
} else {
|
Param fmsParam2 = new Param();
|
fmsParam2.setParamName(FmsConstant.PARAM_NAME);
|
fmsParam2.setParamKey(FmsConstant.PARAM_KEY);
|
fmsParam2.setParamValue(FmsConstant.MANUAL);
|
save(fmsParam2);
|
}
|
log.info("==============调用dmp接口,调度系统自动切换开始执行====================");
|
FmsInputDto fms = new FmsInputDto();
|
fms.setAutomaticHandType(0);
|
changeToDoDmp(fms);
|
}
|
|
@Override // org.springblade.modules.system.service.IParamService
|
@Transactional(rollbackFor = {Exception.class})
|
public void switchState(SwitchDTO switchDTO) {
|
String paramValue = switchDTO.getParamValue();
|
List<FmsInstructionRecord> list = this.instructionRecordService.list(Wrappers.<FmsInstructionRecord>lambdaQuery().orderByDesc(FmsInstructionRecord::getCreateTime));
|
/*
|
List<FmsInstructionRecord> list = this.instructionRecordService.list((Wrapper) Wrappers.lambdaQuery().orderByDesc((v0) -> {
|
return v0.getCreateTime();
|
}));*/
|
if (Func.isNotEmpty(list)) {
|
FmsInstructionRecord fmsInstructionRecord = list.get(0);
|
Integer state = fmsInstructionRecord.getState();
|
if (InstructionEnum.ZERO.getType() == state.intValue() || InstructionEnum.ONE.getType() == state.intValue()) {
|
throw new ServiceException(MessageUtils.message("cps.fms.order.last.instruction.status.fail.can.not.automatic", new Object[0]));
|
}
|
}
|
Param fmsParam = getOne(Wrappers.<Param>lambdaQuery().eq(Param::getParamName,FmsConstant.PARAM_NAME));
|
/*
|
Param fmsParam = (Param) getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getParamName();
|
}, ));*/
|
log.info("==============调用dmp接口,调度系统自动切换开始执行====================");
|
FmsInputDto fms = new FmsInputDto();
|
if (FmsConstant.MANUAL.equals(paramValue)) {
|
fms.setAutomaticHandType(0);
|
}
|
if (FmsConstant.AUTOMATIC.equals(paramValue)) {
|
fms.setAutomaticHandType(1);
|
}
|
changeToDoDmp(fms);
|
if (Func.isNotEmpty(fmsParam)) {
|
fmsParam.setParamValue(switchDTO.getParamValue());
|
updateById(fmsParam);
|
}
|
}
|
|
@Override // org.springblade.modules.system.service.IParamService
|
public SwitchDTO orderStartStatus() {
|
Param fmsParam = getOne(Wrappers.<Param>lambdaQuery().eq(Param::getParamName, FmsConstant.PARAM_NAME));
|
/*
|
Param fmsParam = (Param) getOne((Wrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getParamName();
|
}, FmsConstant.PARAM_NAME));*/
|
if (fmsParam != null) {
|
SwitchDTO switchDTO = new SwitchDTO();
|
switchDTO.setParamValue(fmsParam.getParamValue());
|
return switchDTO;
|
}
|
return null;
|
}
|
|
private void changeToDoDmp(FmsInputDto fms) {
|
try {
|
String returnMessage = this.fmsForestClient.automaticHandSwitch(fms);
|
FmsForestUtil.checkMessage(returnMessage, "调度系统自动切换");
|
} catch (Exception e) {
|
throw new ServiceException("调度系统自动切换异常");
|
}
|
}
|
}
|