首页 > 其他分享 >关于事务处理过程中,查询事务相关表的处理方式

关于事务处理过程中,查询事务相关表的处理方式

时间:2024-03-18 11:14:33浏览次数:24  
标签:事务 return webResponse lastAudit 查询 处理过程 ST data

关于事务处理过程中,查询事务相关表的处理方式

DBServerProvider.SqlDapper 与 repository 的区别及应用场景
        public override WebResponseContent Audit(object[] keys, int? auditStatus, string auditReason)
        {
            Tools tools = new Tools();
            int laststep = tools.LastStep((string)keys[0], "ST_LockUnlock");

            //status当前审批状态,lastAudit是否最后一个审批节点
            AuditWorkFlowExecuting = (ST_LockUnlock lockUnlock, AuditStatus status, bool lastAudit) =>
            {
                return webResponse.OK();
            };
            //status当前审批状态,nextUserIds下一个节点审批人的帐号id(可以从sys_user表中查询用户具体信息),lastAudit是否最后一个审批节点
            AuditWorkFlowExecuted = (ST_LockUnlock lockUnlock, AuditStatus status, List<int> nextUserIds, bool lastAudit) =>
            {
                if (!lastAudit)
                {
                    if (laststep == 1 && auditStatus == 1)
                    {
                        //获取表码调整记录及对应的日记录信息
                        //对事务相关的表进行访问,要放到事务中处理,因为这些表会被锁定,事务结束后才能访问,
                        //用DBServerProvider.SqlDapper.QueryDynamicListAsync(sql, "")这种方法要等到事务结束才能执行,与事务无关的表,可以用这种方法
                        //因此要用repository.FromSql(bql)这种方法

                        string bql = $@"
                            SELECT *
                            FROM ST_LockUnlock
                            WHERE LockUnlockID={keys[0]}
                        ";
                        var data = repository.FromSql(bql);//sql 必须返回所有字段
                        if (data==null)
                        {
                            return webResponse.Error("无数据!");
                        }
                        if (data[0].MeterID == null) { return webResponse.Error("无仪表信息!"); }
                        if (data[0].ReqType == null) { return webResponse.Error("开关类型为空!"); }
                        if (data[0].WorkDate == null) { return webResponse.Error("施工日期为空!"); }
                        //更新到仪表信息表 ST_CodeMeter
                        string cql = $@"UPDATE ST_CodeMeter
                            SET ValveState='{data[0].ReqType}',LockunlockDate='{data[0].WorkDate}' 
                            WHERE MeterID={data[0].MeterID}";
                        repository.ExecuteSqlCommand(cql);
                    }
                }

                return webResponse.OK();
            };
            return base.Audit(keys, auditStatus, auditReason);
        }

    }

 

标签:事务,return,webResponse,lastAudit,查询,处理过程,ST,data
From: https://www.cnblogs.com/wishit/p/18079908

相关文章

  • SQL 查询优化之 WHERE 和 LIMIT 使用索引详解
    奇怪的慢sql我们先来看2条sql第一条:第二条:表的索引及数据总情况: 索引:acct_id,create_time分别是单列索引,数据库总数据为500w。通过acct_id过滤出来的结果集在1w条左右。 查询结果:第一条要5.018s,第二条0.016s为什么会是这样的结果呢?第一,acct_id和create_time都有索引,不......
  • 诚意满满之MySQL实现事务隔离的秘诀:锁与MVCC
    如果对事务没有太多理解,可以看前面三篇:诚意满满之讲透事务诚意满满之讲透事务隔离级别诚意满满之MySQL如何实现原子性、持久性不看前三篇也没有关系,知识点是独立的。MySQL的四个事务隔离级别:读未提交、读已提交、可重复读、串行读。其中,读未提交即是不加任何限制,串行读则......
  • 查询端口号占用
    1.netstat-aon|findstr"8089"查询占用端口号的PID,这里为89842.tasklist|findstr"8984"通过PID查询是什么应用占用了该端口......
  • 使用JDBC查询数据库会一次性加载所有数据吗
    前几天有个小伙伴说他有个疑问:当我们发起一个查询的时候,数据库服务器是把所有结果集都准备好,然后一次性返回给应用程序服务吗(因为他们生产有个服务因为一个报表查询搞宕机了)。这样想的原因很简单,假设那个报表查询出来有几百万数据,然后一次性倾泻给应用程序了,应用没那么大内存空......
  • 分布式事务
    事务基础概念事务特性事务就是用户定义的一系列执行SQL语句的操作,这些操作要么完全地执行,要么完全地都不执行,它是一个不可分割的工作执行单元事务的四大特性:原子性(Atomicity):一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部......
  • 手机网络连接性能API接口:查询手机网络连接性能状态
    手机网络连接性能是我们在使用手机时非常关注的一个方面。有时我们会遇到网络不稳定、网速慢等问题,而这些问题往往会影响我们的手机使用体验。因此,了解手机网络连接性能状态对于我们来说非常重要。 在这篇博文中,我将介绍如何使用手机网络连接性能API接口来查询手机网络连接性......
  • java企业日常事务管理系统(ssm框架毕业设计)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在现代商业环境中,企业的日常运营活动日益复杂多变。随着市场竞争的加剧和业务范围的拓展,企业内部的管理任务变得愈加繁重。传统的手工处理方式已无法满足......
  • Spring 5.x 源码之旅-59AOP事务的初始化流程一
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • Spring 5.x 源码之旅-59AOP事务的初始化流程二
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • java 高效递归查询树 find_in_set 处理递归树
    建表语句DROPTABLEIFEXISTS`sys_dept`;CREATETABLE`sys_dept`(`id`bigint(20)NOTNULLAUTO_INCREMENTCOMMENT'部门id',`parent_id`bigint(20)DEFAULT'0'COMMENT'父部门id',`ancestors`varchar(256)DEFAULT''......