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 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.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.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 list = this.instructionRecordService.list(Wrappers.lambdaQuery().orderByDesc(FmsInstructionRecord::getCreateTime)); /* List 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.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.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("调度系统自动切换异常"); } } }