大理考勤
diff --git a/src/main/java/com/supwisdom/dlpay/atte/bean/AtteDetailInfo.java b/src/main/java/com/supwisdom/dlpay/atte/bean/AtteDetailInfo.java
index d8563b1..f4ac20b 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/bean/AtteDetailInfo.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/bean/AtteDetailInfo.java
@@ -17,6 +17,7 @@
private String deptcode;
private String oldstate;
private Integer timetype;
+ private String timename;
public String getCustname() {
return custname;
@@ -106,4 +107,12 @@
public void setTimetype(Integer timetype) {
this.timetype = timetype;
}
+
+ public String getTimename() {
+ return timename;
+ }
+
+ public void setTimename(String timename) {
+ this.timename = timename;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/bean/AttedtlSearchBean.java b/src/main/java/com/supwisdom/dlpay/atte/bean/AttedtlSearchBean.java
index c319093..c4761af 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/bean/AttedtlSearchBean.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/bean/AttedtlSearchBean.java
@@ -9,6 +9,7 @@
private String deptcode;
private String devname;
private String dtcode;
+ private String custid;
public String getStartdate() {
return startdate;
@@ -73,4 +74,12 @@
public void setDtcode(String dtcode) {
this.dtcode = dtcode;
}
+
+ public String getCustid() {
+ return custid;
+ }
+
+ public void setCustid(String custid) {
+ this.custid = custid;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/controller/AppAtteController.java b/src/main/java/com/supwisdom/dlpay/atte/controller/AppAtteController.java
index 389eba6..9845ecf 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/controller/AppAtteController.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/controller/AppAtteController.java
@@ -1,5 +1,6 @@
package com.supwisdom.dlpay.atte.controller;
+import com.supwisdom.dlpay.atte.bean.AttedtlSearchBean;
import com.supwisdom.dlpay.atte.bean.ClockInfo;
import com.supwisdom.dlpay.atte.bean.ClockSearchBean;
import com.supwisdom.dlpay.atte.bean.RestSearchBean;
@@ -480,7 +481,7 @@
TCard card=cardDao.findCardByCustid(custid);
Pagination page=new Pagination();
if(card!=null){
- page = webInterfaceService.findSystemTDoordtl("","","","",card.getCardno(),"","","","all",pageNo,10,"");
+ page = atteClassService.findSystemTDoordtl("","","","",card.getCardno(),"","","","all",pageNo,10,"");
}
map.put("page",page);
@@ -495,4 +496,95 @@
}
+ /**
+ * 考勤明细
+ * @param model
+ * @return
+ */
+ @RequestMapping("/attedtl")
+ public String attedtl(@RequestParam(value = "custid") String custid, Model model){
+ model.addAttribute("custid",custid);
+ return "apph5/attedtl";
+ }
+
+ /**
+ * 考勤明细
+ */
+ @RequestMapping(value = "/getattedtllist")
+ @ResponseBody
+ public Map getattedtllist(
+ @RequestParam("custid") String custid,
+ @RequestParam("pageNo") Integer pageNo,
+ @RequestParam("startdate") String startdate,
+ @RequestParam("enddate") String enddate,
+ HttpServletRequest request){
+ Map map=new HashMap();
+
+ try {
+ if(custid==null || pageNo==null){
+ map.put("errStr","参数错误");
+ return map;
+ }
+ Pagination page=new Pagination();
+ AttedtlSearchBean searchBean=new AttedtlSearchBean();
+ searchBean.setCustid(custid);
+ searchBean.setStartdate(startdate);
+ searchBean.setEnddate(enddate);
+ page=atteClassService.getAtteDtlInfoWithPage(searchBean,pageNo,10);
+ map.put("page",page);
+ } catch (Exception e) {
+ e.printStackTrace();
+ map.put("errStr",e.getMessage());
+ }
+
+ return map;
+
+ }
+
+ /**
+ * 考勤明细
+ * @param model
+ * @return
+ */
+ @RequestMapping("/atte/detailindex")
+ public String detailindex(@RequestParam(value = "custid") String custid,
+ @RequestParam(value = "attedate") String attedate,Model model){
+ model.addAttribute("custid",custid);
+ model.addAttribute("attedate",attedate);
+ return "apph5/detailindex";
+ }
+
+ /**
+ * 考勤明细
+ */
+ @RequestMapping(value = "/getdetail")
+ @ResponseBody
+ public Map getdetail(
+ @RequestParam("custid") String custid,
+ @RequestParam("pageNo") Integer pageNo,
+ @RequestParam("attedate")String attedate,
+ HttpServletRequest request){
+ Map map=new HashMap();
+
+ try {
+ if(StringUtil.isEmpty(custid) || pageNo==null||StringUtil.isEmpty(attedate)){
+ map.put("errStr","参数错误");
+ return map;
+ }
+ attedate=attedate.replaceAll("-","");
+ Pagination page=new Pagination();
+ AttedtlSearchBean searchBean=new AttedtlSearchBean();
+ searchBean.setCustid(custid);
+ searchBean.setStartdate(attedate);
+ searchBean.setEnddate(attedate);
+ page=atteClassService.getDtlWithPage(searchBean,pageNo,10);
+ map.put("page",page);
+ } catch (Exception e) {
+ e.printStackTrace();
+ map.put("errStr",e.getMessage());
+ }
+
+ return map;
+
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/dao/AtteClassDao.java b/src/main/java/com/supwisdom/dlpay/atte/dao/AtteClassDao.java
index b7f4c35..27c65d7 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/dao/AtteClassDao.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/dao/AtteClassDao.java
@@ -76,4 +76,11 @@
public List<AtteReport> getPReportList(AttedtlSearchBean searchBean);
public TAtteDtl getDtl(Integer timeid,String attedate,String custid);
+
+ //门禁流水 除去考勤
+ public Pagination findSystemTDoordtl(
+ String startTranDate, String endTranDate,String startTranTime, String endTranTime,String cardno,
+ String custname,String buildingid,String devname,String streamstatus,int pageNo,int pageSize,String regionid);
+
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteClassDaoImpl.java b/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteClassDaoImpl.java
index 97781e0..c3dd941 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteClassDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteClassDaoImpl.java
@@ -8,6 +8,7 @@
import com.supwisdom.dlpay.atte.domain.TClassCust;
import com.supwisdom.dlpay.doorlist.bean.TCustomerInfo;
import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.mainservice.bean.TDoordtlInfo;
import com.supwisdom.dlpay.system.page.Pagination;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -279,7 +280,7 @@
@Override
public Pagination getAttedtlWithPage(AttedtlSearchBean searchBean, int pageNo, int pageSize) {
StringBuffer sql=new StringBuffer();
- sql.append(" select t.timeid,t.atteno,t.attedate,t.remark,c.custname,c.custtypeid,b.cardno,t.state,c.deptcode,t.oldstate,n.timetype from t_atte_dtl t left join t_customer c on t.custid=c.custid ");
+ sql.append(" select t.timeid,t.atteno,t.attedate,t.remark,c.custname,c.custtypeid,b.cardno,t.state,c.deptcode,t.oldstate,n.timetype,n.timename from t_atte_dtl t left join t_customer c on t.custid=c.custid ");
sql.append(" left join t_card b on b.custid=t.custid left join t_nc_time n on t.timeid=n.timeid where c.status='1' and b.status='normal' ");
if(!StringUtil.isEmpty(searchBean.getStartdate())&&!StringUtil.isEmpty(searchBean.getEnddate())){
sql.append(" and t.attedate between :sdate and :edate ");
@@ -299,7 +300,10 @@
if(!StringUtil.isEmpty(searchBean.getDtcode())){
sql.append(" and c.deptcode = :dtcode ");
}
- sql.append(" order by t.atteno desc ");
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ sql.append(" and t.custid = :cid ");
+ }
+ sql.append(" order by t.atteno desc,t.timeid desc ");
Query query=entityManager.createNativeQuery(sql.toString(), AtteDetailInfo.class);
if(!StringUtil.isEmpty(searchBean.getStartdate())&&!StringUtil.isEmpty(searchBean.getEnddate())){
query.setParameter("sdate",searchBean.getStartdate());
@@ -320,6 +324,9 @@
if(!StringUtil.isEmpty(searchBean.getDtcode())){
query.setParameter("dtcode",searchBean.getDtcode());
}
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ query.setParameter("cid",searchBean.getCustid());
+ }
pageNo = pageNo <= 0 ? 1 : pageNo;
query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
@@ -357,6 +364,9 @@
if(!StringUtil.isEmpty(searchBean.getDtcode())){
sql.append(" and c.deptcode = :dtcode ");
}
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ sql.append(" and t.custid = :cid ");
+ }
Query query=entityManager.createNativeQuery(sql.toString());
if(!StringUtil.isEmpty(searchBean.getStartdate())&&!StringUtil.isEmpty(searchBean.getEnddate())){
query.setParameter("sdate",searchBean.getStartdate());
@@ -377,6 +387,9 @@
if(!StringUtil.isEmpty(searchBean.getDtcode())){
query.setParameter("dtcode",searchBean.getDtcode());
}
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ query.setParameter("cid",searchBean.getCustid());
+ }
Object object=query.getSingleResult();
if(object!=null){
result= Integer.parseInt(object.toString());
@@ -465,6 +478,9 @@
if(!StringUtil.isEmpty(searchBean.getCardno())){
sql+=" and v.cardno like :cno ";
}
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ sql+=" and v.custid = :cid ";
+ }
sql+=" order by v.transdate desc,v.transtime desc";
Query query=entityManager.createNativeQuery(sql, AtteDtl.class);
if(!StringUtil.isEmpty(searchBean.getStartdate())&&!StringUtil.isEmpty(searchBean.getEnddate())){
@@ -489,6 +505,9 @@
if(!StringUtil.isEmpty(searchBean.getDtcode())){
query.setParameter("dtcode",searchBean.getDtcode());
}
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ query.setParameter("cid",searchBean.getCustid());
+ }
pageNo = pageNo <= 0 ? 1 : pageNo;
query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
@@ -526,6 +545,9 @@
if(!StringUtil.isEmpty(searchBean.getCardno())){
sql+=" and v.cardno like :cno ";
}
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ sql+=" and v.custid = :cid ";
+ }
sql+=" order by v.doorseqno ";
Query query=entityManager.createNativeQuery(sql, AtteDtl.class);
if(!StringUtil.isEmpty(searchBean.getStartdate())&&!StringUtil.isEmpty(searchBean.getEnddate())){
@@ -550,6 +572,9 @@
if(!StringUtil.isEmpty(searchBean.getDtcode())){
query.setParameter("dtcode",searchBean.getDtcode());
}
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ query.setParameter("cid",searchBean.getCustid());
+ }
List<AtteDtl> list=query.getResultList();
if(list!=null){
return list.size();
@@ -891,4 +916,169 @@
}
return null;
}
+
+
+ @Transactional
+ @Override
+ public Pagination findSystemTDoordtl(String startTranDate, String endTranDate, String startTranTime, String endTranTime, String cardno, String custname, String buildingid, String devname, String streamstatus, int pageNo, int pageSize, String regionid) {
+ String queryString = "select a.doorseqno,b.deviceid,b.devname,a.custname,c.cardno,a.cardphyid,c.bankcardno,a.transdate||a.transtime transdate, a.coldate||a.coltime coldate,"
+ + " case when a.status='' then '失败' else '成功' end status,a.dtldesc "
+ + " from t_doordtl a left join t_card c on a.custid=c.custid, t_nc_device b "
+ + " left join tb_region d on b.regionid=d.regionid "
+ + " left join t_building e on b.buildingid=e.buildingid "
+ + " where 1>0 and cast(substr(a.doorid,5) as integer) = b.deviceid ";
+ if (!startTranDate.equals("")){
+ queryString += " and transdate >= :startTranDate ";
+ }
+ if (!endTranDate.equals("")){
+ queryString += " and transdate <= :endTranDate ";
+ }
+ if (!cardno.equals("")) {
+ queryString += " and a.cardno like :cardno ";
+ }
+ if (!custname.equals("")) {
+ queryString += " and a.custname like :custname ";
+ }
+ if (!devname.equals("")) {
+ queryString += " and b.devname like :devname ";
+ }
+ if (!streamstatus.equals("all")) {
+ queryString += " and a.status =:streamstatus ";
+ }
+ if(!buildingid.equals("")){
+ queryString += " and e.buildingid = :buildingid ";
+ }
+ if (!regionid.equals("")){
+ queryString += " and d.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :regionid "
+ + "union all "
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr inner join tmp t on t.regionid=tbr.parentid "
+ + ") select regionid from tmp )";
+ }
+ queryString +=" and b.deviceid not in (select distinct deviceid from t_dev_rule ) ";
+ queryString += " order by a.transdate DESC";
+ Query query = entityManager.createNativeQuery(queryString, TDoordtlInfo.class);
+ if (!startTranDate.equals("")) {
+ query.setParameter("startTranDate", startTranDate);
+ }
+ if (!endTranDate.equals("")){
+ query.setParameter("endTranDate", endTranDate);
+ }
+ if (!cardno.equals("")) {
+ query.setParameter("cardno", cardno);
+ }
+ if (!custname.equals("")) {
+ query.setParameter("custname", "%" + custname + "%");
+ }
+ if (!devname.equals("")) {
+ query.setParameter("devname", "%" + devname + "%");
+ }
+ if (!streamstatus.equals("all")) {
+ query.setParameter("streamstatus", streamstatus);
+ }
+ if(!buildingid.equals("")){
+ query.setParameter("buildingid",buildingid);
+ }
+ if (!regionid.equals("")){
+ query.setParameter("regionid", regionid);
+ }
+ pageNo = pageNo <= 0 ? 1 : pageNo;
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize);
+ Pagination page = new Pagination();
+ page.setPageNo(pageNo);
+ page.setPageSize(pageSize);
+ List<TDoordtlInfo> list = query.getResultList();
+ page.setList(list);
+ int totalCount = getSystemCount(startTranDate, endTranDate, cardno, custname,
+ buildingid, devname, streamstatus,regionid);
+ page.setTotalCount(totalCount);
+ return page;
+ }
+
+
+
+
+ private int getSystemCount(String startTranDate, String endTranDate,
+ String cardno, String custname, String buildingid, String devname, String streamstatus,String regionid) {
+ try {
+ String queryString = "select count(*) as cnt "
+ + " from t_doordtl a "
+ + " left join t_card c on a.custid=c.custid, t_nc_device b "
+ + " left join tb_region d on b.regionid=d.regionid "
+ + " left join t_building e on b.buildingid=e.buildingid "
+ + " where 1>0 and cast(substr(a.doorid,5) as integer) = b.deviceid ";
+
+ if (!startTranDate.equals("")){
+ queryString += " and transdate >= :startTranDate ";
+ }
+ if (!endTranDate.equals("")){
+ queryString += " and transdate <= :endTranDate ";
+ }
+ if (!cardno.equals("")) {
+ queryString += " and a.cardno like :cardno ";
+ }
+ if (!custname.equals("")) {
+ queryString += " and a.custname like :custname ";
+ }
+ if (!devname.equals("")) {
+ queryString += " and b.devname like :devname ";
+ }
+ if (!streamstatus.equals("all")) {
+ queryString += " and a.status =:streamstatus ";
+ }
+ if(!buildingid.equals("")){
+ queryString += " and e.buildingid = :buildingid ";
+ }
+ if (!regionid.equals("")){
+ queryString += " and d.regionid in "
+ +"("
+ + "with recursive tmp as "
+ + "("
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr where regionid = :regionid "
+ + "union all "
+ + "select tbr.regionid,tbr.parentid,tbr.regionname from tb_region tbr inner join tmp t on t.regionid=tbr.parentid "
+ + ") select regionid from tmp ) ";
+ }
+ queryString +=" and b.deviceid not in (select distinct deviceid from t_dev_rule ) ";
+ Query query = entityManager.createNativeQuery(queryString);
+ query.setMaxResults(5);
+ if (!startTranDate.equals("")) {
+ query.setParameter("startTranDate", startTranDate);
+ }
+ if (!endTranDate.equals("")){
+ query.setParameter("endTranDate", endTranDate);
+ }
+ if (!cardno.equals("")) {
+ query.setParameter("cardno", cardno);
+ }
+ if (!custname.equals("")) {
+ query.setParameter("custname", "%" + custname + "%");
+ }
+ if (!buildingid.equals("")) {
+ query.setParameter("buildingid", buildingid);
+ }
+ if (!devname.equals("")) {
+ query.setParameter("devname", "%" + devname + "%");
+ }
+ if (!streamstatus.equals("all")) {
+ query.setParameter("streamstatus", streamstatus);
+ }
+ if(!regionid.equals("")){
+ query.setParameter("regionid",regionid);
+ }
+ List list = query.getResultList();
+ int cnt = 0;
+ if (list!=null && list.size()>0){
+ cnt = Integer.parseInt(list.get(0).toString());
+ }
+ return cnt;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return 0;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/service/AtteClassService.java b/src/main/java/com/supwisdom/dlpay/atte/service/AtteClassService.java
index 0af74ad..0405c16 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/service/AtteClassService.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/service/AtteClassService.java
@@ -93,4 +93,12 @@
//处理假条
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
public boolean updateRestDtl(String startdate,String enddate,String custid,Integer state);
+
+
+ //门禁流水 除去 考勤
+ //根据查询条件获取系统管理员流水数据
+ @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+ public Pagination findSystemTDoordtl(String startTranDate, String endTranDate, String startTranTime, String endTranTime, String cardno,
+ String custname, String buildingid, String devname, String streamstatus, int pageNo, int pageSize,String regionid);
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteClassServiceImpl.java b/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteClassServiceImpl.java
index e330734..f210c31 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteClassServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteClassServiceImpl.java
@@ -549,4 +549,9 @@
}
return true;
}
+
+ @Override
+ public Pagination findSystemTDoordtl(String startTranDate, String endTranDate, String startTranTime, String endTranTime, String cardno, String custname, String buildingid, String devname, String streamstatus, int pageNo, int pageSize, String regionid) {
+ return atteClassDao.findSystemTDoordtl(startTranDate, endTranDate, startTranTime, endTranTime, cardno, custname, buildingid, devname, streamstatus, pageNo, pageSize, regionid);
+ }
}
diff --git a/src/main/resources/templates/apph5/attedtl.html b/src/main/resources/templates/apph5/attedtl.html
new file mode 100644
index 0000000..9d09b55
--- /dev/null
+++ b/src/main/resources/templates/apph5/attedtl.html
@@ -0,0 +1,340 @@
+
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
+
+<head>
+ <title>考勤流水</title>
+ <!--<meta name="_csrf_header" th:content="${_csrf.headerName}" />
+ <meta name="_csrf_token" th:content="${_csrf.parameterName}" th:value="${_csrf.token}" />-->
+ <meta charset="utf-8"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="/static/libs/layui/css/layui.css" th:href="@{/static/libs/layui/css/layui.css}"/>
+
+ <link rel="stylesheet" href="/static/res/assets/plugins/element-ui/theme-default/index.css"
+ th:href="@{/static/res/assets/plugins/element-ui/theme-default/index.css}"/>
+ <link rel="stylesheet" href="/static/res/assets/css/wxpage.css"
+ th:href="@{/static/res/assets/css/wxpage.css}"/>
+ <!--<script type="text/javascript" th:src="@{/static/libs/jquery/jquery-3.2.1.min.js}"></script>-->
+ <script type="text/javascript" th:src="@{/static/res/assets/plugins/jquery/jquery.min.js}"></script>
+ <!--<script type="text/javascript" th:src="@{/static/libs/layui/layui.js}"></script>-->
+ <script type="text/javascript" th:src="@{/static/res/assets/plugins/jquery/jquery.form.js}"></script>
+ <script type="text/javascript" th:src="@{/static/res/assets/plugins/layer/layer.js}"></script>
+ <script type="text/javascript" th:src="@{/static/res/assets/js/vue.min.js}"></script>
+ <script type="text/javascript" th:src="@{/static/res/assets/plugins/element-ui/index.js}"></script>
+
+
+</head>
+
+<body>
+
+<div id="app">
+
+ <div class="page-title" style="text-align:center; font-size: 24px;color: #FF8247;margin-top:7%">考勤流水</div><br>
+
+ <el-button type="primary" @click="showdiv()" style="float: right">筛 选</el-button>
+
+ <div class="row">
+ <div class="col-md-12" style="padding-left: 0px;padding-right: 0px">
+ <div class="box box-primary" style="margin-bottom: 15px">
+ <div class="box-body box-profile">
+ <template>
+ <el-table
+ ref="singleTable"
+ :data="tableData"
+ highlight-current-row
+ @current-change="currRowChange"
+ stripe
+ border>
+ <el-table-column
+ prop="custid"
+ align="center"
+ v-show="false">
+ <template scope="scope">
+ <div class="weui-panel__bd">
+ <div class="weui-media-box weui-media-box_text">
+ <h4 class="weui-media-box__title" style="display: flex">
+ <div style="flex: 1">
+ <span v-if="scope.row.state=='0'" class="layui-badge layui-bg-orange">未打卡</span>
+ <span v-if="scope.row.state=='1'" class="layui-badge layui-bg-green">正常</span>
+ <span v-if="scope.row.state=='2' " class="layui-badge layui-bg-red">异常</span>
+ <span v-if="scope.row.state=='11'" class="layui-badge layui-bg-gray">请假</span>
+ <span v-if="scope.row.state=='12'" class="layui-badge layui-bg-gray">病假</span>
+ <span v-if="scope.row.state=='13'" class="layui-badge layui-bg-gray">年假</span>
+ <span v-if="scope.row.state=='14'" class="layui-badge layui-bg-gray">调休</span>
+ <span v-if="scope.row.state=='15'" class="layui-badge layui-bg-gray">其他</span>
+ <span v-if="scope.row.state=='8'" class="layui-badge layui-bg-gray">外出办公</span>
+ <span v-if="scope.row.state=='9'" class="layui-badge layui-bg-gray">出差</span>
+ <span v-if="scope.row.state=='7'" class="layui-badge layui-bg-gray">补休</span>
+ </div>
+ <div>
+ {{scope.row.timename}}
+ </div>
+ </h4>
+ <p class="weui-media-box__desc">
+ <div class="weui-cell__bd">
+ <span style="font-size:14px;color:#999; "></span>
+ </div>
+ <div style="display: flex;">
+
+ <div style="font-size:14px;color:#999;flex: 1">
+
+ {{scope.row.attedate}}
+
+ </div>
+ <div style="font-size:12px;color:#999;margin-left:10px">
+ <span ><el-button
+ type="warning"
+ @click="detail(scope.row)">详情</el-button></span>
+ </div>
+
+
+ </div>
+ </p>
+ </div>
+ </div>
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-input v-if="dialogFormVisible" id="addmore" type="button" value="加载更多" @click.native="addmore" ></el-input>
+
+ <div class="clearfix"></div>
+
+
+ </template>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <el-dialog :title="updatetitle" :visible.sync="dialogFormVisible1" style="width: 85%" :modal-append-to-body='false'
+ @close="closeDialog('tempform')" size="large">
+ <el-form ref="tempform" :model="tempform" data-parsley-validate
+ class="el-form-item" style="width: 100%">
+ <el-form-item label="开始日期:" prop="startdate">
+ <div class="el-col el-col-18">
+ <el-col :span="18">
+ <el-date-picker
+ v-model="tempform.startdate" type="date"
+ placeholder="选择日期" :editable="false" value-format="yyyyMMdd">
+ </el-date-picker>
+ </el-col>
+ </div>
+ </el-form-item>
+ <el-form-item label="结束时间:" prop="enddate">
+ <label slot="label">结束时间:</label>
+ <el-col :span="18">
+ <el-date-picker
+ v-model="tempform.enddate" type="date"
+ placeholder="选择日期" :editable="false" value-format="yyyyMMdd">
+ </el-date-picker>
+ </el-col>
+ </el-form-item>
+
+ </el-form>
+ <div slot="footer" style="text-align:center; ">
+ <el-button type="primary" @click="search()">查 询</el-button>
+ <!--<el-button type="primary" @click="closediv()">取 消</el-button>-->
+ </div>
+ </el-dialog>
+
+
+</div>
+
+
+</body>
+
+<script>
+
+
+ var app_vue = new Vue({
+ el: '#app',
+ data: {
+ tableData: [],
+ confName: '1234',
+ currPage: 1,
+ pageSize: 20,
+ totSize: 0,
+ currentRow: null,
+ tempform: {
+ custid:'',
+ startdate:'',
+ enddate:''
+ },
+ sexlist: [],
+ rtypelist: [],
+ custtypelist: [],
+ statuslist: [],
+ bannerHeight: 1000,
+ screenWidth: 0,
+ userId: '',
+ dialogFormVisible: false,
+ dialogFormVisible1: false,
+ updatetitle: '筛选',
+ updatetitle2: '详情',
+ rules: {
+
+ },
+ },
+
+ methods: {
+
+
+
+ closediv: function () {
+ this.dialogFormVisible = false;
+ },
+ currRowChange: function (val) {
+ this.currentRow = val;
+ },
+ indexChange: function (pre, next) {
+ var _self = this;
+ var devIdListTmp = _self.devIdList;
+ _self.selectDevId = devIdListTmp[pre];
+ // console.log(_self.selectDevId)
+
+ },
+ setSize: function () {
+ // 通过浏览器宽度(图片宽度)计算高度
+ this.bannerHeight = this.screenWidth;
+ }, handleSizeChange: function (val) {
+ this.pageSize = val;
+ commonQuery(this, this.tempform.custid, this.currPage, this.pageSize);
+ //console.log('每页条'+val);
+ }, currPageChange: function (val) {
+ this.currPage = val;
+ commonQuery(this, this.tempform.custid, this.currPage, this.pageSize);
+ //console.log('当前页:'+val);
+ },
+ addmore:function() {
+ this.currPage=this.currPage+1;
+ commonQuery(this, this.tempform.custid, this.currPage);
+ },
+ detail:function (row) {
+ window.location="[[@{'/app/atte/detailindex?custid='}]]"+'[[${custid}]]'+'&attedate='+row.attedate;
+ },
+ showdiv: function () {
+ this.dialogFormVisible1 = true;
+ this.updatetitle = "筛选"
+ },
+ search:function () {
+ this.currPage = 1;
+ this.tableData=[];
+ commonQuery(this, this.tempform.custid, this.currPage);
+ },
+ closeDialog:function(formName) {
+ // this.$refs[formName].resetFields();
+ this.dialogFormVisible1 = false;
+ },
+
+
+ },
+ created: function () {
+ var _self = this;
+ // 首次加载时,需要调用一次
+ _self.screenWidth = window.innerWidth;
+ _self.setSize();
+ var confid = '[[${custid}]]';
+ console.log(confid);
+ _self.tempform.custid = confid;
+ this.currPage = 1;
+ commonQuery(this, this.tempform.custid, this.currPage);
+
+ }
+ })
+
+ // 窗口大小发生改变时,调用一次
+ window.onresize = function () {
+ app_vue.screenWidth = window.innerWidth;
+ app_vue.setSize();
+ }
+
+
+ function commonQuery(_self,custid, pageno) {
+ var startdate=class_Formatdate(_self.tempform.startdate);
+ var enddate=class_Formatdate(_self.tempform.enddate);
+ $.ajax({
+ type: "get",
+ dataType: "json",
+ url: "[[@{/app/getattedtllist?}]]" + "custid=" + custid + "&pageNo=" + pageno+ "&startdate=" + startdate+ "&enddate=" + enddate ,
+ success: function (info) {
+ console.log(info)
+ _self.totSize = info.page.totalCount;
+ var list=info.page.list;
+ for(var i=0;i<list.length;i++){
+ var date=list[i].attedate;
+ if (date == undefined||date.startsWith("n")) {
+ return "";
+ }
+ var year =date.substring(0,4);
+ var month=date.substring(4,6);
+ var day=date.substring(6,8);
+ // var hour=date.substring(8,10);
+ // var min=date.substring(10,12);
+ // var sec=date.substring(12,14);
+ list[i].attedate= year+"-"+month+"-"+day;
+ _self.tableData.push(list[i]);
+ }
+ if(list.length<10){
+ _self.dialogFormVisible=false;
+ }else {
+ _self.dialogFormVisible=true;
+ }
+ }
+ })
+ }
+
+
+
+
+ function class_Formatdate(date){
+ if(date==null||date==''){
+ return '';
+ }
+ var d=new Date(date);
+ var month=d.getMonth() + 1+'';
+ var date=d.getDate()+'';
+ if(month.length==1){
+ month='0'+month;
+ }
+ if(date.length==1){
+ date='0'+date;
+ }
+ var formated=d.getFullYear() + '' + month + '' +date;
+
+ return formated;
+ }
+
+</script>
+
+<style>
+
+ .el-carousel__item h3 {
+ color: #ff3366;
+ font-size: 14px;
+ opacity: 0.75;
+ line-height: 300px;
+ margin: 0;
+ /*background-color:#66cccc;
+ border: 0px solid #e5e5e5;
+ width: 50%;
+ left: 10%;
+ height: 100%;*/
+ }
+ .el-table__header th{
+ height: 0px;
+ }
+ .el-carousel__item:nth-child(2n) {
+ background-color: #ffffff;
+ }
+
+ .el-carousel__item:nth-child(2n+1) {
+ background-color: #ffffff;
+ }
+
+ .el-carousel__item .Carousel {
+ border-bottom: 1px solid #f1f4f8;
+ }
+</style>
\ No newline at end of file
diff --git a/src/main/resources/templates/apph5/detailindex.html b/src/main/resources/templates/apph5/detailindex.html
new file mode 100644
index 0000000..5e72c93
--- /dev/null
+++ b/src/main/resources/templates/apph5/detailindex.html
@@ -0,0 +1,266 @@
+
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
+
+<head>
+ <title>打卡记录</title>
+ <!--<meta name="_csrf_header" th:content="${_csrf.headerName}" />
+ <meta name="_csrf_token" th:content="${_csrf.parameterName}" th:value="${_csrf.token}" />-->
+ <meta charset="utf-8"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="/static/libs/layui/css/layui.css" th:href="@{/static/libs/layui/css/layui.css}"/>
+
+ <link rel="stylesheet" href="/static/res/assets/plugins/element-ui/theme-default/index.css"
+ th:href="@{/static/res/assets/plugins/element-ui/theme-default/index.css}"/>
+ <link rel="stylesheet" href="/static/res/assets/css/wxpage.css"
+ th:href="@{/static/res/assets/css/wxpage.css}"/>
+ <!--<script type="text/javascript" th:src="@{/static/libs/jquery/jquery-3.2.1.min.js}"></script>-->
+ <script type="text/javascript" th:src="@{/static/res/assets/plugins/jquery/jquery.min.js}"></script>
+ <!--<script type="text/javascript" th:src="@{/static/libs/layui/layui.js}"></script>-->
+ <script type="text/javascript" th:src="@{/static/res/assets/plugins/jquery/jquery.form.js}"></script>
+ <script type="text/javascript" th:src="@{/static/res/assets/plugins/layer/layer.js}"></script>
+ <script type="text/javascript" th:src="@{/static/res/assets/js/vue.min.js}"></script>
+ <script type="text/javascript" th:src="@{/static/res/assets/plugins/element-ui/index.js}"></script>
+
+
+</head>
+
+<body>
+
+<div id="app">
+
+ <div class="row">
+ <div class="col-md-12" style="padding-left: 0px;padding-right: 0px">
+ <div class="box box-primary" style="margin-bottom: 15px">
+ <div class="box-body box-profile">
+ <template>
+ <el-table
+ ref="singleTable"
+ :data="tableData"
+ highlight-current-row
+ @current-change="currRowChange"
+ stripe
+ border>
+ <el-table-column
+ prop="custid"
+ align="center"
+ v-show="false">
+ <template scope="scope">
+ <div class="weui-panel__bd">
+ <div class="weui-media-box weui-media-box_text">
+ <h4 class="weui-media-box__title" style="display: flex">
+ <div style="flex: 1">{{scope.row.devicename}}</div>
+ </h4>
+ <p class="weui-media-box__desc">
+ <div class="weui-cell__bd">
+ <span style="font-size:14px;color:#999; "></span>
+ </div>
+ <div style="display: flex;">
+
+ <div style="font-size:14px;color:#999;flex: 1">
+
+ {{scope.row.attedate}}
+
+ </div>
+
+
+ </div>
+ </p>
+ </div>
+ </div>
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-input v-if="dialogFormVisible" id="addmore" type="button" value="加载更多" @click.native="addmore" ></el-input>
+
+ <div class="clearfix"></div>
+
+
+ </template>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+</div>
+
+
+</body>
+
+<script>
+
+
+ var app_vue = new Vue({
+ el: '#app',
+ data: {
+ tableData: [],
+ confName: '1234',
+ currPage: 1,
+ pageSize: 20,
+ totSize: 0,
+ currentRow: null,
+ tempform: {
+ custid:'',
+ attedate:''
+ },
+ historyform: {
+ custid: '',
+ custname: '',
+ startdate: '',
+ enddate: '',
+ remark: '',
+ rtype: '',
+ status: '',
+ custtype: '',
+ id: ''
+ },
+ sexlist: [],
+ rtypelist: [],
+ custtypelist: [],
+ statuslist: [],
+ bannerHeight: 1000,
+ screenWidth: 0,
+ userId: '',
+ dialogFormVisible: false,
+ updatetitle: '筛选',
+ updatetitle2: '详情',
+ rules: {
+
+ },
+ },
+
+ methods: {
+
+
+
+ closediv: function () {
+ this.dialogFormVisible = false;
+ },
+ currRowChange: function (val) {
+ this.currentRow = val;
+ },
+ indexChange: function (pre, next) {
+ var _self = this;
+ var devIdListTmp = _self.devIdList;
+ _self.selectDevId = devIdListTmp[pre];
+ // console.log(_self.selectDevId)
+
+ },
+ setSize: function () {
+ // 通过浏览器宽度(图片宽度)计算高度
+ this.bannerHeight = this.screenWidth;
+ }, handleSizeChange: function (val) {
+ this.pageSize = val;
+ commonQuery(this, this.tempform.custid, this.currPage, this.pageSize);
+ //console.log('每页条'+val);
+ }, currPageChange: function (val) {
+ this.currPage = val;
+ commonQuery(this, this.tempform.custid, this.currPage, this.pageSize);
+ //console.log('当前页:'+val);
+ },
+ addmore:function() {
+ this.currPage=this.currPage+1;
+ commonQuery(this, this.tempform.custid,this.tempform.attedate, this.currPage, this.pageSize);
+ }
+
+
+ },
+ created: function () {
+ var _self = this;
+ // 首次加载时,需要调用一次
+ _self.screenWidth = window.innerWidth;
+ _self.setSize();
+ var confid = '[[${custid}]]';
+ var attedate='[[${attedate}]]';
+ console.log(confid);
+ _self.tempform.custid = confid;
+ _self.tempform.attedate = attedate;
+
+ this.pagesize = 10;
+ this.currPage = 1;
+ commonQuery(this, this.tempform.custid,this.tempform.attedate, this.currPage, this.pageSize);
+
+
+ }
+ })
+
+ // 窗口大小发生改变时,调用一次
+ window.onresize = function () {
+ app_vue.screenWidth = window.innerWidth;
+ app_vue.setSize();
+ }
+
+
+
+
+
+ function commonQuery(_self,custid,attedate, pageno, pagesize) {
+ $.ajax({
+ type: "get",
+ dataType: "json",
+ url: "[[@{/app/getdetail?}]]" + "custid=" + custid+ "&attedate=" + attedate + "&pageNo=" + pageno ,
+ success: function (info) {
+ console.log(info)
+
+ _self.totSize = info.page.totalCount;
+ var list=info.page.list;
+ for(var i=0;i<list.length;i++){
+ var date=list[i].attedate+list[i].attetime;
+ if (date == undefined||date.startsWith("n")) {
+ return "";
+ }
+ var year =date.substring(0,4);
+ var month=date.substring(4,6);
+ var day=date.substring(6,8);
+ var hour=date.substring(8,10);
+ var min=date.substring(10,12);
+ var sec=date.substring(12,14);
+ list[i].attedate= year+"-"+month+"-"+day+" "+hour+":"+min+":"+sec;
+ _self.tableData.push(list[i]);
+ }
+ if(list.length<10){
+ _self.dialogFormVisible=false;
+ }else {
+ _self.dialogFormVisible=true;
+ }
+ }
+ })
+ }
+
+
+
+</script>
+
+<style>
+ .el-table__header th{
+ height: 0px;
+ }
+ .el-carousel__item h3 {
+ color: #ff3366;
+ font-size: 14px;
+ opacity: 0.75;
+ line-height: 300px;
+ margin: 0;
+ /*background-color:#66cccc;
+ border: 0px solid #e5e5e5;
+ width: 50%;
+ left: 10%;
+ height: 100%;*/
+ }
+
+ .el-carousel__item:nth-child(2n) {
+ background-color: #ffffff;
+ }
+
+ .el-carousel__item:nth-child(2n+1) {
+ background-color: #ffffff;
+ }
+
+ .el-carousel__item .Carousel {
+ border-bottom: 1px solid #f1f4f8;
+ }
+</style>
\ No newline at end of file
diff --git a/src/main/resources/templates/apph5/doordtl.html b/src/main/resources/templates/apph5/doordtl.html
index 43685d9..ec4b8c1 100644
--- a/src/main/resources/templates/apph5/doordtl.html
+++ b/src/main/resources/templates/apph5/doordtl.html
@@ -235,36 +235,15 @@
})
}
- function reviewupdate(_self, status, id) {
- $.ajax({
- type: "get",
- dataType: "json",
- url: "[[@{/app/atte/cancelRest?id=}]]" + id + "&status=" + status,
- success: function (info) {
- console.log(info)
- if (info.errStr != "") {
- layer.msg(info.errStr, {icon: 2, time: 2000});
- } else {
- layer.msg('修改成功!', {icon: 1, time: 1000});
- }
- commonQuery(_self, _self.tempform.custid, _self.currPage, _self.pageSize);
- }
- })
- }
- function isCellPhone(val) {
- if (!/^1(3|4|5|6|7|8)\d{9}$/.test(val)) {
- return false;
- } else {
- return true;
- }
- }
</script>
<style>
-
+ .el-table__header th{
+ height: 0px;
+ }
.el-carousel__item h3 {
color: #ff3366;
font-size: 14px;
diff --git a/src/main/resources/templates/apph5/leavehistory.html b/src/main/resources/templates/apph5/leavehistory.html
index 5a68b68..a8291f7 100644
--- a/src/main/resources/templates/apph5/leavehistory.html
+++ b/src/main/resources/templates/apph5/leavehistory.html
@@ -267,7 +267,7 @@
this.dialogFormVisible = false;
var _that = this;
- this.pagesize = 7;
+ this.pagesize = 10;
this.currPage = 1;
this.tableData=[];
commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
@@ -281,7 +281,7 @@
this.dialogFormVisible2 = false;
var _that = this;
- this.pagesize = 7;
+ this.pagesize = 10;
this.currPage = 1;
this.tableData=[];
reviewupdate(this, 1,this.tempform.custid, this.historyform.id);
@@ -290,7 +290,7 @@
this.dialogFormVisible2 = false;
var _that = this;
- this.pagesize = 7;
+ this.pagesize = 10;
this.currPage = 1;
this.tableData=[];
reviewupdate(this, 2,this.tempform.custid, this.historyform.id);
@@ -417,7 +417,7 @@
}
})
- _self.pagesize = 7;
+ _self.pagesize = 10;
_self.currPage = 1;
commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
@@ -507,7 +507,7 @@
for(var i=0;i<list.length;i++){
_self.tableData.push(list[i]);
}
- if(list.length<7){
+ if(list.length<10){
_self.addmoreVis=false;
}else {
_self.addmoreVis=true;
@@ -546,7 +546,9 @@
</script>
<style>
-
+ .el-table__header th{
+ height: 0px;
+ }
.el-carousel__item h3 {
color: #ff3366;
font-size: 14px;
diff --git a/src/main/resources/templates/apph5/myleave.html b/src/main/resources/templates/apph5/myleave.html
index 0f760d3..33e1ee2 100644
--- a/src/main/resources/templates/apph5/myleave.html
+++ b/src/main/resources/templates/apph5/myleave.html
@@ -252,7 +252,7 @@
this.dialogFormVisible = false;
this.tableData=[];
var _that = this;
- this.pagesize = 7;
+ this.pagesize = 10;
this.currPage = 1;
this.tableData=[];
commonQuery(this, this.tempform.rtype, this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
@@ -391,7 +391,7 @@
}
})
- _self.pagesize = 7;
+ _self.pagesize = 10;
_self.currPage = 1;
commonQuery(this, this.tempform.rtype, this.tempform.status, this.tempform.custid, _self.currPage, _self.pageSize);
@@ -457,7 +457,7 @@
for(var i=0;i<list.length;i++){
_self.tableData.push(list[i]);
}
- if(list.length<7){
+ if(list.length<10){
_self.addmoreVis=false;
}else {
_self.addmoreVis=true;
@@ -495,7 +495,9 @@
</script>
<style>
-
+ .el-table__header th{
+ height: 0px;
+ }
.el-carousel__item h3 {
color: #ff3366;
font-size: 14px;
diff --git a/src/main/resources/templates/apph5/reviewclock.html b/src/main/resources/templates/apph5/reviewclock.html
index d60d97c..b5c44c1 100644
--- a/src/main/resources/templates/apph5/reviewclock.html
+++ b/src/main/resources/templates/apph5/reviewclock.html
@@ -265,7 +265,7 @@
methods: {
saveTemp: function (formName) {
var _that = this;
- this.pagesize = 7;
+ this.pagesize = 10;
this.currPage = 1;
// if(this.tempform.attedate==''||this.tempform.attedate==undefined){
// layer.msg("请选择日期!", {icon: 2, time: 2000});
@@ -284,7 +284,7 @@
this.dialogFormVisible2 = false;
var _that = this;
- this.pagesize = 7;
+ this.pagesize = 10;
this.currPage = 1;
this.tableData=[];
reviewupdate(this, 1,this.historyform.id);
@@ -293,7 +293,7 @@
this.dialogFormVisible2 = false;
var _that = this;
- this.pagesize = 7;
+ this.pagesize = 10;
this.currPage = 1;
this.tableData=[];
reviewupdate(this, 2,this.historyform.id);
@@ -392,7 +392,7 @@
}
})
- this.pagesize = 7;
+ this.pagesize = 10;
this.currPage = 1;
commonQuery(this, this.currPage, this.pageSize);
@@ -468,7 +468,7 @@
for(var i=0;i<list.length;i++){
_self.tableData.push(list[i]);
}
- if(list.length<7){
+ if(list.length<10){
_self.addmoreVis=false;
}else {
_self.addmoreVis=true;
@@ -507,7 +507,9 @@
</script>
<style>
-
+ .el-table__header th{
+ height: 0px;
+ }
.el-carousel__item h3 {
color: #ff3366;
font-size: 14px;
diff --git a/src/main/resources/templates/atte/app/re_index.html b/src/main/resources/templates/atte/app/re_index.html
index 6753f76..50e2fcd 100644
--- a/src/main/resources/templates/atte/app/re_index.html
+++ b/src/main/resources/templates/atte/app/re_index.html
@@ -89,6 +89,26 @@
</a>
</div>
+<div class="weui-cells">
+ <a class="weui-cell weui-cell_access" th:href="@{'/app/doordtl?custid='+${custid}}" >
+ <div class="weui-cell__bd">
+ <p>门禁流水</p>
+ </div>
+ <div class="weui-cell__ft">
+ </div>
+ </a>
+
+</div>
+
+<div class="weui-cells">
+ <a class="weui-cell weui-cell_access" th:href="@{'/app/attedtl?custid='+${custid}}" >
+ <div class="weui-cell__bd">
+ <p>考勤详情</p>
+ </div>
+ <div class="weui-cell__ft">
+ </div>
+ </a>
+</div>
</body>