首页 > 其他分享 >OA补打卡代码

OA补打卡代码

时间:2023-06-02 20:01:05浏览次数:22  
标签:代码 WORK OA dic Add ent sqlString 打卡 ID

var dic = new Dictionary<string, object>();

dic.Add("USER_ID", ent.USER_ID);

dic.Add("WORK_CENTER", ent.WORK_CENTER);

dic.Add("WORK_DATE", ent.WORK_DATE);

dic.Add("CLASSES", ent.CLASSES);

dic.Add("ITREMARK", "OA补打卡");

string sqlString = "--看本班次是否已打卡\n" +

"select id /*,MASTER_ID, work_center, user_id, start_time, work_date, classes*/\n" +

"from class_record_line x\n" +

"where work_center = '" + ent.WORK_CENTER + "'\n" +

" and CLASSES='" + ent.CLASSES + "' and work_date = to_date('" + ent.WORK_DATE + "','yyyymmdd') \n" + //yyyy-mm-dd hh24:mi:ss

" and ENABLED=1 and user_id = '" + ent.USER_ID + "'\n" +

" and end_time is null\n" +

"/* and close_time is null*/";

 

int mid = imes.db.Ado.QuerySingle<int>(sqlString);

if (mid > 0)

{

//更新为离岗卡

sqlString = "update CLASS_RECORD_LINE set ITREMARK='OA补打离岗卡'. SRC_TIME2 = 1, END_TIME =to_date('" + ent.CHECKTIME + "','yyyy-mm-dd hh24:mi:ss') where id =" + mid;

XLog.XTrace.WriteLine("OA补打离岗卡" + sqlString);

int row = imes.db.Ado.ExecuteNonQuery(sqlString);

XLog.XTrace.WriteLine(row + "OA补打离岗卡" + ent.USER_ID);

return "ok";

}

 

//获取员工班次轨道

sqlString = "select classes, work_date, stand_start_time, stand_end_time, organization_team, organization_team_desc, user_id\n" +

"from checkinoutplan x\n" +

"where user_id = '" + ent.USER_ID + "'\n" +

" and CLASSES <> 'OFF' and to_date('" + ent.CHECKTIME + "','yyyy-mm-dd hh24:mi:ss') between stand_start_time - 4 / 24 and stand_end_time + 2 / 24";

XLog.XTrace.WriteLine("1.获取员工班次轨道\r\n" + sqlString);

userplan 班次轨道 = imes.db.Ado.QuerySingle<userplan>(sqlString);

if (班次轨道 != null)

{

XLog.XTrace.WriteLine("抓到班次轨道");

dic.Add("STAND_START_TIME", 班次轨道.STAND_START_TIME);

dic.Add("STAND_END_TIME", 班次轨道.STAND_END_TIME);

dic.Add("WORK_DATE", 班次轨道.WORK_DATE);

dic.Add("CLASSES", 班次轨道.CLASSES);

}

else

{

dic.Add("REMARK", "无班次轨道 或者 排班错误");

}

 

//获取头表信息

sqlString = "select ID , STAND_START_TIME, STAND_END_TIME,WORK_DATE,CLASSES,start_time ,END_TIME \n" +

"from class_record_master x\n" +

"where work_center = '" + ent.WORK_CENTER + "'\n" +

" and work_date = to_date('" + ent.WORK_DATE + "','yyyy-mm-dd hh24:mi:ss')\n" +

" and classes = '" + ent.CLASSES + "'";

XLog.XTrace.WriteLine("3.首次打卡获取是否已经开班\r\n" + sqlString);

masterInfo 头表信息 = imes.db.Ado.QuerySingle<masterInfo>(sqlString);

if (头表信息 == null)

{

cc.sendwx("20151763", "OA补打卡没有找到开班头表");

}

else

{

dic.Add("MASTER_ID", 头表信息.ID);

XLog.XTrace.WriteLine("抓到头表信息3.true " + ent.USER_ID + "继承头表ID");

}

获取前次派岗信息(ent.USER_ID, ent.WORK_CENTER, dic);

dic.Add("ENABLED", 1);

int i = imes.db.InsertDict(dic).AsTable("CLASS_RECORD_LINE").ExecuteAffrows();

XLog.XTrace.WriteLine("上岗逻辑执行完成,插表行数 " + i + Newtonsoft.Json.JsonConvert.SerializeObject(dic, Formatting.Indented));

 

标签:代码,WORK,OA,dic,Add,ent,sqlString,打卡,ID
From: https://www.cnblogs.com/hlm750908/p/17452793.html

相关文章

  • upc 8378: Floating-Point Numbers(模拟浮点数运算)
    8378:Floating-PointNumbers时间限制:1Sec  内存限制:128MB提交:10  解决:4[提交][状态][讨论版][命题人:admin]题目描述Inthisproblem,weconsiderfloating-pointnumberformats,datarepresentationformatstoapproximaterealnumbersoncomputers.S......
  • 要编译代码以控制其在Flash或SRAM中运行
    要编译代码以控制其在Flash或SRAM中运行,您需要在编译过程中进行一些配置。以下是一些建议:1.使用链接脚本链接脚本是在编译过程中使用的一种文件,用于控制程序代码和数据在内存中的布局。您可以在链接脚本中指定代码应存储在哪个内存区域(例如Flash或SRAM)。例如,在GNUGCC工具链中......
  • 【敲敲云】免费的零代码产品 — 应用用户角色与权限
    之前的文章我们介绍了应用创建与设置,应用的使用离不开权限设置,毕竟不是每个人都可以查看所有的工作表,下面我们再来看一下应用的角色与权限。一、应用用户应用用户:结合应用角色,可设置哪些用户可以访问哪些应用或工作表,设置用户有哪些功能权限。在应用中,点击右上角“用户”,......
  • 5.17 构造代码块
    classPerson{publicPerson(){System.out.println("[构造方法]Person类构造方法执行");}{//构造块会先于构造方法执行;并且每次实例化新对象的时候,都会调用构造块中的代码;System.out.println("[构造块]Person构造块执行!");}}pub......
  • 5.16 普通代码块
    publicclassHelloWorld{publicstaticvoidmain(String[]args){//可以在一个方法中进行一些结构拆分,以防止相同变量名称所带来的相互影响!{//普通代码块intx=10;//局部变量System.out.println("x="+x);......
  • 看了同事写的代码,我竟然开始默默的模仿了。。。
    背景事情是这样的,目前我正在参与XXXX项目的搭建,需要与第三方对接接口。在对方的接口中存在几个异步通知,为了接口的安全性,需要对接口的参数进行验签处理。为了方便大家对异步通知返回参数的处理,Z同事提出要将该验签功能进行统一封装,到时候大家只需要关注自己的业务逻辑即可。Z同......
  • Python编程入门常用代码
    这些代码片段涵盖了Python编程的一些常用方面,包括日期和时间操作、列表排序、字符串格式化、文件读写以及包和模块的使用。继续探索和学习这些概念,以及其他相关的Python特性,将使你的编程能力不断提升。1.输出语句:print("Hello,World!")#打印字符串2.变量和赋值:x=5#整数y......
  • Python编程入门常用代码
    这些代码片段涵盖了Python编程的一些常用方面,包括日期和时间操作、列表排序、字符串格式化、文件读写以及包和模块的使用。继续探索和学习这些概念,以及其他相关的Python特性,将使你的编程能力不断提升。1.输出语句:print("Hello,World!")#打印字符串2.变量和赋值:x=5#整数y......
  • Python编程入门常用代码
    这些代码片段涵盖了Python编程的一些常用方面,包括日期和时间操作、列表排序、字符串格式化、文件读写以及包和模块的使用。继续探索和学习这些概念,以及其他相关的Python特性,将使你的编程能力不断提升。1.输出语句:print("Hello,World!")#打印字符串2.变量和赋值:x=5#整......
  • Jmeter:Beanshell调用java代码的三种方式
    阅读文本大概需要3分钟。0x01:BeanShell控制界面介绍每次调用前重置bsh.Interpreter:可以选择True和False。如果此选项为True,则将为每个取样器重新创建解释器。传递给BeanShell的参数(=>StringParametersandString[]bsh.args):传递给BeanShell脚本的参数,参数存在以下变量中。Param......