Administrator
2024-07-13 fbbd05825360b086821660269c1f7baf12d66db2
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
@@ -23,9 +23,11 @@
import com.dy.pipIrrWechat.result.WechatResultCode;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BindingResult;
@@ -46,12 +48,31 @@
@Tag(name = "小程序阀控器控制", description = "小程序阀控器控制")
@RestController
@RequestMapping(path = "valve")
@RequiredArgsConstructor
//@RequiredArgsConstructor
public class ValveCtrl extends ComSupport {
    private final CommandSv commandSv;
    private final SeVirtualCardMapper seVirtualCardMapper;
    private final IDLongGenerator idLongGenerator;
    private String rtuResultSendWebUrl = "http://127.0.0.1:8087/wx/comRes/receive";
    @Value("${mw.rtuCallbackUrl_wx}")
    private String rtuCallbackUrl_wx;
    /**
     * pro_mw:属性
     * tag从控制器中获取
     * key_mw:url的key
     */
    private Environment env = null;
    private String pro_mw = "mw";
    private String key_mw = "comSendUrl";
    @Autowired
    public ValveCtrl(CommandSv commandSv, SeVirtualCardMapper seVirtualCardMapper, IDLongGenerator idLongGenerator, Environment env) {
        this.commandSv = commandSv;
        this.seVirtualCardMapper = seVirtualCardMapper;
        this.idLongGenerator = idLongGenerator;
        this.env = env;
    }
    /**
     * 小程序远程开阀
@@ -67,9 +88,23 @@
        }
        Long intakeId = valve.getIntakeId();
        String intakeName = valve.getIntakeName();
        Long vcId = valve.getVcId();
        Boolean forceOpen = valve.getForceOpen();
        Long operator = valve.getOperator();
        Long comId = idLongGenerator.generate();
        if(intakeId == null && intakeName == null) {
            return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_INTAKE.getMessage());
        }
        // intakeName换intakeId
        if(intakeId == null) {
            intakeId = commandSv.getIntakeIdByName(intakeName);
            if(intakeId == null) {
                return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_INTAKE.getMessage());
            }
        }
        /**
         * 如果农户选择了虚拟卡,则使用该虚拟卡
@@ -93,8 +128,10 @@
        if (vc == null) {
            return BaseResponseUtils.buildErrorMsg(WechatResultCode.PLEASE_SELECT_A_VC.getMessage());
        }
        if (vc.getInUse() == 1) {
            return BaseResponseUtils.buildErrorMsg(WechatResultCode.IN_USE_VC_CANNOT_OPEN_VALVE.getMessage());
        // 虚拟卡状态为使用中,且不是强制开阀时提示
        if (vc.getInUse() == 1 && !forceOpen) {
            return BaseResponseUtils.buildCodeMsg(WechatResultCode.IN_USE_VC_CANNOT_OPEN_VALVE.getCode(), WechatResultCode.IN_USE_VC_CANNOT_OPEN_VALVE.getMessage());
        }
        // 获取水价
@@ -107,6 +144,8 @@
        }
        String rtuAddr = job_rtu.getString("rtuAddr");
        String protocol = job_rtu.getString("protocol");
        String orgTag = job_rtu.getString("orgTag");
        comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw);
        // 生成订单号
        String orderNo = generateOrderNo();
@@ -142,7 +181,7 @@
            myParam.setProtocol(protocol);
            myParam.setVcId(vcId);
            myParam.setParam(param);
            myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl);
            myParam.setRtuResultSendWebUrl(rtuCallbackUrl_wx);
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
@@ -172,7 +211,7 @@
            myParam.setProtocol(protocol);
            myParam.setVcId(vcId);
            myParam.setParam(param);
            myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl);
            myParam.setRtuResultSendWebUrl(rtuCallbackUrl_wx);
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
        } else {
@@ -213,6 +252,8 @@
        }
        Long intakeId = job_rtu.getLong("intakeId");
        String protocol = job_rtu.getString("protocol");
        String orgTag = job_rtu.getString("orgTag");
        comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw);
        String commandCode = null;
        if (protocol.equals("p206V202404")) {
@@ -241,7 +282,7 @@
            myParam.setProtocol(protocol);
            myParam.setVcId(vcId);
            myParam.setParam(param);
            myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl);
            myParam.setRtuResultSendWebUrl(rtuCallbackUrl_wx);
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
        } else if (protocol.equals("p206V1_0_1")) {
@@ -268,7 +309,7 @@
            myParam.setProtocol(protocol);
            myParam.setVcId(vcId);
            myParam.setParam(param);
            myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl);
            myParam.setRtuResultSendWebUrl(rtuCallbackUrl_wx);
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
        } else {
@@ -363,16 +404,11 @@
            myParam.setRtuAddr(rtuAddr);
            myParam.setProtocol(protocol);
            myParam.setParam(param);
            myParam.setRtuResultSendWebUrl(rtuResultSendWebUrl);
            myParam.setRtuResultSendWebUrl(rtuCallbackUrl_wx);
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
        } else if(protocol.equals("p206V1_0_1")) {
            // 获取功能码
            commandCode = CodeV1_0_1.cd_10;
            // 创建视图
            Com97Vo param = new Com97Vo() ;
            return BaseResponseUtils.buildSuccess("");
            return BaseResponseUtils.buildErrorMsg(WechatResultCode.THE_DEVICE_DOES_NOT_HAVE_THIS_FUNCTION.getMessage());
        } else {
            return BaseResponseUtils.buildFail("系统暂不支持该协议");
        }