Administrator
2024-07-02 2e930e8e96bca4159538ba84fae1c62880134e5c
2024-07-02 朱宝民 获取充值记录
8个文件已修改
1个文件已添加
323 ■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Usability.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoRecharge.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
@@ -256,6 +256,7 @@
            // 创建命令日志对象并添加到数据库中
            RmCommandHistory rmCommandHistory = getComHistory(comId, commandCode, commandName, intakeId, rtuAddr, protocol, param, operator);
            rmCommandHistoryMapper.insert(rmCommandHistory);
            comId = rmCommandHistory.getId();
            // 回调异常
            if(!response_CallBack.getCode().equals("0001")) {
@@ -289,12 +290,24 @@
            System.out.println(job_subData);
            Boolean dealResult = job_subData.getBoolean("success");
            if(!dealResult) {
                /**
                 * 执行失败
                 * 更新执行结果、返回结果时间、结果内容
                 */
                rmCommandHistory = new RmCommandHistory();
                rmCommandHistory.setId(comId);
                rmCommandHistory.setResult((byte)0);
                rmCommandHistory.setResultTime(new Date());
                rmCommandHistory.setResultText((JSONObject)JSON.toJSON(response_CallBack.getContent()));
                rmCommandHistoryMapper.updateByPrimaryKeySelective(rmCommandHistory);
                return BaseResponseUtils.buildErrorMsg(response_CallBack.getContent().toString());
            }
            /**
             * 执行成功,返回回调内容
             * 执行成功
             * 如果是开关阀:更改虚拟卡状态:是否使用中、最后操作、最后操作时间
             * 更新执行结果、返回结果时间、结果内容
             * 返回回调内容
             */
            if(comType != null) {
                SeVirtualCard virtualCard = new SeVirtualCard();
@@ -311,6 +324,15 @@
            // 回调返回的内容
            Data myData = (Data)response_CallBack.getContent();
            // 更新命令日志:执行结果、返回结果时间、结果内容
            rmCommandHistory = new RmCommandHistory();
            rmCommandHistory.setId(comId);
            rmCommandHistory.setResult((byte)1);
            rmCommandHistory.setResultTime(new Date());
            rmCommandHistory.setResultText((JSONObject)JSON.toJSON(myData));
            rmCommandHistoryMapper.updateByPrimaryKeySelective(rmCommandHistory);
            return BaseResponseUtils.buildSuccess(myData) ;
        } else {
            // 请求失败
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
@@ -43,6 +43,5 @@
     * @param intakeId
     * @return
     */
    //VoUnclosedParam getUncloseParam(Long intakeId);
    VoUnclosedParam getUncloseParam(@Param("onLineMap") String onLineMap, @Param("intakeId")Long intakeId);
}
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -253,13 +253,13 @@
        AND card.cardNum like CONCAT('%',#{cardNum},'%')
      </if>
      <if test = "paymentId != null and paymentId > 0">
        AND ope.payment_id = ${paymentId}
      </if>
<!--      <if test = "paymentId != null and paymentId > 0">-->
<!--        AND ope.payment_id = ${paymentId}-->
<!--      </if>-->
      <if test = "rechargeTimeStart != null and rechargeTimeStop != null">
        AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}
      </if>
<!--      <if test = "rechargeTimeStart != null and rechargeTimeStop != null">-->
<!--        AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}-->
<!--      </if>-->
    </where>
  </select>
@@ -297,13 +297,13 @@
        AND card.cardNum like CONCAT('%',#{cardNum},'%')
      </if>
      <if test = "paymentId != null and paymentId > 0">
        AND ope.payment_id = ${paymentId}
      </if>
<!--      <if test = "paymentId != null and paymentId > 0">-->
<!--        AND ope.payment_id = ${paymentId}-->
<!--      </if>-->
      <if test = "rechargeTimeStart != null and rechargeTimeStop != null">
        AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}
      </if>
<!--      <if test = "rechargeTimeStart != null and rechargeTimeStop != null">-->
<!--        AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}-->
<!--      </if>-->
    </where>
    ORDER BY ope.operate_dt DESC
    <trim prefix="limit " >
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -3,7 +3,6 @@
import com.dy.common.mw.protocol.Data;
import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83CloseVo;
import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo;
import com.dy.common.util.DateTime;
import com.dy.pipIrrGlobal.pojoPr.PrController;
import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
@@ -141,21 +140,22 @@
     * @throws Exception
     */
    private RmOpenCloseValveLast newRmOpenCloseValveLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo)throws Exception {
        RmOpenCloseValveLast po = new RmOpenCloseValveLast(null, null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
                rtuAddr,
                null, null, null, null, null, null,null,
                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
                dataCd83CloseVo.type,
                dataCd83CloseVo.totalAmount,
                dataCd83CloseVo.icCardNo,
                dataCd83CloseVo.icCardAddr,
                dataCd83CloseVo.remainMoney,
                dataCd83CloseVo.thisAmount,
                dataCd83CloseVo.thisMoney,
                dataCd83CloseVo.thisTime,
                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt),
                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ;
        return po ;
        //RmOpenCloseValveLast po = new RmOpenCloseValveLast(null, null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
        //        rtuAddr,
        //        null, null, null, null, null, null,null,
        //        DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
        //        dataCd83CloseVo.type,
        //        dataCd83CloseVo.totalAmount,
        //        dataCd83CloseVo.icCardNo,
        //        dataCd83CloseVo.icCardAddr,
        //        dataCd83CloseVo.remainMoney,
        //        dataCd83CloseVo.thisAmount,
        //        dataCd83CloseVo.thisMoney,
        //        dataCd83CloseVo.thisTime,
        //        DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt),
        //        DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ;
        //return po ;
        return null;
    }
@@ -169,21 +169,22 @@
     * @throws Exception
     */
    private RmOpenCloseValveHistory newRmOpenCloseValveHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo)throws Exception {
        RmOpenCloseValveHistory po = new RmOpenCloseValveHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
                rtuAddr,
                null, null, null, null, null, null,null,
                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
                dataCd83CloseVo.type,
                dataCd83CloseVo.totalAmount,
                dataCd83CloseVo.icCardNo,
                dataCd83CloseVo.icCardAddr,
                dataCd83CloseVo.remainMoney,
                dataCd83CloseVo.thisAmount,
                dataCd83CloseVo.thisMoney,
                dataCd83CloseVo.thisTime,
                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt),
                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ;
        return po ;
        //RmOpenCloseValveHistory po = new RmOpenCloseValveHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
        //        rtuAddr,
        //        null, null, null, null, null, null,null,
        //        DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
        //        dataCd83CloseVo.type,
        //        dataCd83CloseVo.totalAmount,
        //        dataCd83CloseVo.icCardNo,
        //        dataCd83CloseVo.icCardAddr,
        //        dataCd83CloseVo.remainMoney,
        //        dataCd83CloseVo.thisAmount,
        //        dataCd83CloseVo.thisMoney,
        //        dataCd83CloseVo.thisTime,
        //        DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt),
        //        DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ;
        //return po ;
        return null;
    }
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Usability.java
New file
@@ -0,0 +1,22 @@
package com.dy.pipIrrRemote.common.dto;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
 * @author ZhuBaoMin
 * @date 2024-07-02 11:00
 * @LastEditTime 2024-07-02 11:00
 * @Description 终端用水有效性对象
 */
@Data
public class Usability extends DtoBase {
    public static final long serialVersionUID = 202407021101001L;
    /**
     * 终端用水有效性
     */
    @NotNull(message = "终端用水有效性不能为空")
    private Boolean valid;
}
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
@@ -6,10 +6,7 @@
import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com97Vo;
import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com98Vo;
import com.dy.common.mw.protocol.p206V202404.CodeV202404;
import com.dy.common.mw.protocol.p206V202404.downVos.ComCd15Vo;
import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo;
import com.dy.common.mw.protocol.p206V202404.downVos.ComCd93_A3Vo;
import com.dy.common.mw.protocol.p206V202404.downVos.ComCd9CVo;
import com.dy.common.mw.protocol.p206V202404.downVos.*;
import com.dy.common.util.IDLongGenerator;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
@@ -21,10 +18,7 @@
import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
import com.dy.pipIrrRemote.common.CommandSv;
import com.dy.pipIrrRemote.common.dto.Card;
import com.dy.pipIrrRemote.common.dto.DtoBase;
import com.dy.pipIrrRemote.common.dto.Recharge;
import com.dy.pipIrrRemote.common.dto.ValveOpen;
import com.dy.pipIrrRemote.common.dto.*;
import com.dy.pipIrrRemote.result.RemoteResultCode;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
@@ -461,4 +455,98 @@
            return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议");
        }
    }
    /**
     * 设备终端用水控制
     * @param usability
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "usability", consumes = MediaType.APPLICATION_JSON_VALUE)
    @Transactional(rollbackFor = Exception.class)
    @SsoAop()
    public BaseResponse<Boolean> usability(@RequestBody @Valid Usability usability, BindingResult bindingResult) {
        if(bindingResult != null && bindingResult.hasErrors()){
            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        Long intakeId = usability.getIntakeId();
        Boolean valid = usability.getValid();
        Long operator = usability.getOperator();
        Long comId = idLongGenerator.generate();
        // 获取系统参数
        if(!setuped) {
            setUp();
        }
        // 取水口ID换阀控器地址及通讯协议
        JSONObject job_rtu = getRtu(intakeId, null);
        if(job_rtu == null) {
            return BaseResponseUtils.buildErrorMsg(RemoteResultCode.RTU_NOT_EXIST.getMessage());
        }
        String rtuAddr = job_rtu.getString("rtuAddr");
        String protocol = job_rtu.getString("protocol");
        String commandCode = null;
        if(protocol.equals("p206V202404")) {
            if(valid) {
                // 获取功能码
                commandCode = CodeV202404.cd_30;
                // 创建视图
                ComCd31Vo param = new ComCd31Vo();
                param.controllerType = controllerType;
                param.projectNo = projectNo;
                param.valid = true;
                /**
                 * 构造命令、发送命令并处理请求结果及执行结果
                 * 1 准备参数
                 * 2 调用公共方法
                 */
                Param myParam = new Param();
                myParam.setComId(comId);
                myParam.setCommandCode(commandCode);
                myParam.setCommandName(CodeV202404.getCodeName(commandCode));
                myParam.setIntakeId(intakeId);
                myParam.setRtuAddr(rtuAddr);
                myParam.setProtocol(protocol);
                myParam.setParam(param);
                myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm);
                myParam.setOperator(operator);
                return dealWithCommandResult(myParam);
            }else {
                // 获取功能码
                commandCode = CodeV202404.cd_31;
                // 创建视图
                ComCd31Vo param = new ComCd31Vo();
                param.controllerType = controllerType;
                param.projectNo = projectNo;
                param.valid = false;
                /**
                 * 构造命令、发送命令并处理请求结果及执行结果
                 * 1 准备参数
                 * 2 调用公共方法
                 */
                Param myParam = new Param();
                myParam.setComId(comId);
                myParam.setCommandCode(commandCode);
                myParam.setCommandName(CodeV202404.getCodeName(commandCode));
                myParam.setIntakeId(intakeId);
                myParam.setRtuAddr(rtuAddr);
                myParam.setProtocol(protocol);
                myParam.setParam(param);
                myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm);
                myParam.setOperator(operator);
                return dealWithCommandResult(myParam);
            }
        } else if(protocol.equals("p206V1_0_1")) {
            return BaseResponseUtils.buildErrorMsg(RemoteResultCode.THE_DEVICE_DOES_NOT_HAVE_THIS_FUNCTION.getMessage());
        } else {
            return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议");
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
@@ -220,16 +220,16 @@
     */
    public QueryResultVo<List<VoRecharge>> getRecharges(QoRecharge queryVo) {
        //完善查询充值记录的起止时间
        String rechargeTimeStart = queryVo.rechargeTimeStart;
        String rechargeTimeStop = queryVo.rechargeTimeStop;
        if(rechargeTimeStart != null) {
            rechargeTimeStart = rechargeTimeStart + " 00:00:00";
            queryVo.setRechargeTimeStart(rechargeTimeStart);
        }
        if(rechargeTimeStop != null) {
            rechargeTimeStop = rechargeTimeStop + " 23:59:59";
            queryVo.setRechargeTimeStop(rechargeTimeStop);
        }
        //String rechargeTimeStart = queryVo.rechargeTimeStart;
        //String rechargeTimeStop = queryVo.rechargeTimeStop;
        //if(rechargeTimeStart != null) {
        //    rechargeTimeStart = rechargeTimeStart + " 00:00:00";
        //    queryVo.setRechargeTimeStart(rechargeTimeStart);
        //}
        //if(rechargeTimeStop != null) {
        //    rechargeTimeStop = rechargeTimeStop + " 23:59:59";
        //    queryVo.setRechargeTimeStop(rechargeTimeStop);
        //}
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoRecharge.java
@@ -20,17 +20,20 @@
@Schema(name = "IC卡充值记录查询条件")
public class QoRecharge extends QueryConditionVo {
    @Schema(description = "农户姓名")
    public String clientName;
    private String clientName;
    @Schema(description = "农户编号")
    private Long clientId;
    private String clientNum;
    @Schema(description = "IC卡号")
    public String cardAddr;
    private Long cardNum;
    @Schema(description = "付款方式")
    public Integer paymentId;
    //@Schema(description = "农户编号")
    //private Long clientId;
    //@Schema(description = "IC卡号")
    //public String cardAddr;
    //@Schema(description = "付款方式")
    //public Integer paymentId;
    //@Schema(description = "充值时间_开始")
    //public LocalDateTime rechargeTimeStart;
@@ -38,9 +41,7 @@
    //@Schema(description = "充值时间_结束")
    //public LocalDateTime rechargeTimeStop;
    @Schema(description = "充值时间_开始")
    public String rechargeTimeStart;
    //public String rechargeTimeStart;
    @Schema(description = "充值时间_结束")
    public String rechargeTimeStop;
    //public String rechargeTimeStop;
}
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
@@ -62,25 +62,6 @@
    }
    /**
     * 添加命令日志
     * @param po 命令日志对象
     * @return 字符串类型的主键
     */
    public Long insert(RmCommandHistory po) {
        rmCommandHistoryMapper.insert(po);
        return po.getId();
    }
    /**
     * 修改命令日志信息
     * @param po 命令日志对象
     * @return 影响记录数量
     */
    public Integer update(RmCommandHistory po) {
        return rmCommandHistoryMapper.updateByPrimaryKeySelective(po);
    }
    /**
     * 根据操作员ID获取未关阀记录(包含在线情况)
     * @param operator
     * @return
@@ -135,4 +116,25 @@
    public SeClientCard geClientCardByCardId(Long cardId) {
        return seClientCardMapper.selectByPrimaryKey(cardId);
    }
    /**
     * 添加命令日志
     * @param po 命令日志对象
     * @return 字符串类型的主键
     */
    public Long insert(RmCommandHistory po) {
        rmCommandHistoryMapper.insert(po);
        return po.getId();
    }
    /**
     * 修改命令日志信息
     * @param po 命令日志对象
     * @return 影响记录数量
     */
    public Integer update(RmCommandHistory po) {
        return rmCommandHistoryMapper.updateByPrimaryKeySelective(po);
    }
}