考勤
diff --git a/src/main/java/com/supwisdom/dlpay/atte/Test.java b/src/main/java/com/supwisdom/dlpay/atte/Test.java
index af20887..bb72c7b 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/Test.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/Test.java
@@ -1,5 +1,14 @@
package com.supwisdom.dlpay.atte;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.LinkOption;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
public class Test {
+ public static void main(String[] args) {
+
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/bean/AtteRestInfo.java b/src/main/java/com/supwisdom/dlpay/atte/bean/AtteRestInfo.java
new file mode 100644
index 0000000..2c280ec
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/atte/bean/AtteRestInfo.java
@@ -0,0 +1,148 @@
+package com.supwisdom.dlpay.atte.bean;
+
+public class AtteRestInfo {
+ private String id; //请假条编号
+ private String custid;
+ private String custname;
+ private String custtypeid;
+ private String custtypename;
+ private String cardno;
+ private String startdate;
+ private String enddate;
+ private String remark;
+ private String rtype;
+ private String status;
+ private String recustid;
+ private String recustname;
+ private String updatetime;
+ private String deptcode;
+ private String deptname;
+
+ public String getCustid() {
+ return custid;
+ }
+
+ public void setCustid(String custid) {
+ this.custid = custid;
+ }
+
+ public String getCustname() {
+ return custname;
+ }
+
+ public void setCustname(String custname) {
+ this.custname = custname;
+ }
+
+ public String getCusttypeid() {
+ return custtypeid;
+ }
+
+ public void setCusttypeid(String custtypeid) {
+ this.custtypeid = custtypeid;
+ }
+
+ public String getCusttypename() {
+ return custtypename;
+ }
+
+ public void setCusttypename(String custtypename) {
+ this.custtypename = custtypename;
+ }
+
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+
+ public String getStartdate() {
+ return startdate;
+ }
+
+ public void setStartdate(String startdate) {
+ this.startdate = startdate;
+ }
+
+ public String getEnddate() {
+ return enddate;
+ }
+
+ public void setEnddate(String enddate) {
+ this.enddate = enddate;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRtype() {
+ return rtype;
+ }
+
+ public void setRtype(String rtype) {
+ this.rtype = rtype;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getRecustid() {
+ return recustid;
+ }
+
+ public void setRecustid(String recustid) {
+ this.recustid = recustid;
+ }
+
+ public String getRecustname() {
+ return recustname;
+ }
+
+ public void setRecustname(String recustname) {
+ this.recustname = recustname;
+ }
+
+ public String getUpdatetime() {
+ return updatetime;
+ }
+
+ public void setUpdatetime(String updatetime) {
+ this.updatetime = updatetime;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getDeptcode() {
+ return deptcode;
+ }
+
+ public void setDeptcode(String deptcode) {
+ this.deptcode = deptcode;
+ }
+
+ public String getDeptname() {
+ return deptname;
+ }
+
+ public void setDeptname(String deptname) {
+ this.deptname = deptname;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/bean/RestSearchBean.java b/src/main/java/com/supwisdom/dlpay/atte/bean/RestSearchBean.java
new file mode 100644
index 0000000..01342ea
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/atte/bean/RestSearchBean.java
@@ -0,0 +1,76 @@
+package com.supwisdom.dlpay.atte.bean;
+
+public class RestSearchBean {
+ private String startdate;
+ private String enddate;
+ private String custid;
+ private String deptcode;
+ private String custname;
+ private String status;
+ private String rtype;
+ private String custtypeid;
+
+ public String getStartdate() {
+ return startdate;
+ }
+
+ public void setStartdate(String startdate) {
+ this.startdate = startdate;
+ }
+
+ public String getEnddate() {
+ return enddate;
+ }
+
+ public void setEnddate(String enddate) {
+ this.enddate = enddate;
+ }
+
+ public String getCustid() {
+ return custid;
+ }
+
+ public void setCustid(String custid) {
+ this.custid = custid;
+ }
+
+ public String getDeptcode() {
+ return deptcode;
+ }
+
+ public void setDeptcode(String deptcode) {
+ this.deptcode = deptcode;
+ }
+
+ public String getCustname() {
+ return custname;
+ }
+
+ public void setCustname(String custname) {
+ this.custname = custname;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getRtype() {
+ return rtype;
+ }
+
+ public void setRtype(String rtype) {
+ this.rtype = rtype;
+ }
+
+ public String getCusttypeid() {
+ return custtypeid;
+ }
+
+ public void setCusttypeid(String custtypeid) {
+ this.custtypeid = custtypeid;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/dao/AtteRestDao.java b/src/main/java/com/supwisdom/dlpay/atte/dao/AtteRestDao.java
index 83ca9f8..93facb2 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/dao/AtteRestDao.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/dao/AtteRestDao.java
@@ -1,10 +1,19 @@
package com.supwisdom.dlpay.atte.dao;
+import com.supwisdom.dlpay.atte.bean.AtteRestInfo;
+import com.supwisdom.dlpay.atte.bean.RestSearchBean;
import com.supwisdom.dlpay.atte.domain.TAtteRest;
+import com.supwisdom.dlpay.system.page.Pagination;
+
+import java.util.List;
public interface AtteRestDao {
public boolean saveAtteRest(TAtteRest bean);
public boolean updateAtteRest(TAtteRest bean);
public TAtteRest getAtteRestById(String id);
+ public Pagination getRestInfo(RestSearchBean searchBean,int pageNo,int pageSize);
+
+ //是否可以申请
+ public boolean canask(String custid,String startdate,String enddate);
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteRestDaoImpl.java b/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteRestDaoImpl.java
index 8bdf9a5..767114f 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteRestDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteRestDaoImpl.java
@@ -1,14 +1,22 @@
package com.supwisdom.dlpay.atte.dao.impl;
+import com.supwisdom.dlpay.atte.bean.AtteDetailInfo;
+import com.supwisdom.dlpay.atte.bean.AtteRestInfo;
+import com.supwisdom.dlpay.atte.bean.RestSearchBean;
import com.supwisdom.dlpay.atte.dao.AtteRestDao;
import com.supwisdom.dlpay.atte.domain.TAtteClass;
import com.supwisdom.dlpay.atte.domain.TAtteRest;
import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.system.page.Pagination;
+import org.hibernate.query.internal.NativeQueryImpl;
+import org.hibernate.transform.ResultTransformer;
+import org.hibernate.transform.Transformers;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
import javax.persistence.TypedQuery;
import java.util.List;
@@ -57,4 +65,144 @@
}
return null;
}
+
+ @Override
+ public Pagination getRestInfo(RestSearchBean searchBean,int pageNo,int pageSize) {
+ StringBuffer sql=new StringBuffer();
+ sql.append(" select r.id,c.custid,c.custname,ct.custtypeid,ct.custtypename,tc.cardno,r.startdate,r.enddate,r.remark,r.rtype,r.status,r.updatetime ");
+ sql.append(" ,td.deptcode,td.deptname,r.re_custid,(select custname from t_customer where custid=r.re_custid) recustname ");
+ sql.append(" from t_atte_rest r left join t_customer c on r.custid=c.custid ")
+ .append(" left join t_card tc on r.custid=tc.custid ")
+ .append(" left join tb_custtype ct on c.custtypeid=ct.custtypeid ")
+ .append(" left join tb_dept td on c.deptcode=td.deptcode ")
+ .append(" where c.status='1' and tc.status='normal' and tc.transtatus='normal' ");
+ if(!StringUtil.isEmpty(searchBean.getStartdate())&&!StringUtil.isEmpty(searchBean.getEnddate())){
+ sql.append(" and ( (:sdate between r.startdate and r.enddate) or (:edate between r.startdate and r.enddate) ");
+ sql.append(" or (:sdate < r.startdate and :edate > r.enddate ) )");
+ }
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ sql.append(" and r.custid = :cid ");
+ }
+ if(!StringUtil.isEmpty(searchBean.getDeptcode())){
+ sql.append(" and c.deptcode = :dcode ");
+ }
+ if(!StringUtil.isEmpty(searchBean.getCustname())){
+ sql.append(" and c.custname like :cname ");
+ }
+ if(!StringUtil.isEmpty(searchBean.getStatus())){
+ sql.append(" and r.status= :stat ");
+ }
+ if(!StringUtil.isEmpty(searchBean.getCusttypeid())){
+ sql.append(" and c.custtypeid= :ctypeid ");
+ }
+ sql.append(" order by r.startdate desc,r.enddate desc ");
+ Query query=entityManager.createNativeQuery(sql.toString(), AtteRestInfo.class);
+ if(!StringUtil.isEmpty(searchBean.getStartdate())&&!StringUtil.isEmpty(searchBean.getEnddate())){
+ query.setParameter("sdate",searchBean.getStartdate());
+ query.setParameter("edate",searchBean.getEnddate());
+ }
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ query.setParameter("cid",searchBean.getCustid());
+ }
+ if(!StringUtil.isEmpty(searchBean.getDeptcode())){
+ query.setParameter("dcode",searchBean.getDeptcode());
+ }
+ if(!StringUtil.isEmpty(searchBean.getCustname())){
+ query.setParameter("cname","%"+searchBean.getCustname()+"%");
+ }
+ if(!StringUtil.isEmpty(searchBean.getStatus())){
+ query.setParameter("stat",searchBean.getStatus());
+ }
+ if(!StringUtil.isEmpty(searchBean.getCusttypeid())){
+ query.setParameter("ctypeid",Integer.parseInt(searchBean.getCusttypeid()));
+ }
+ pageNo = pageNo <= 0 ? 1 : pageNo;
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize);
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(AtteRestInfo.class));
+ Pagination page = new Pagination();
+ page.setPageNo(pageNo);
+ page.setPageSize(pageSize);
+ List<AtteRestInfo> list=query.getResultList();
+ page.setList(list);
+ int totalCount= getRestCount(searchBean);
+ page.setTotalCount(totalCount);
+ return page;
+ }
+
+ public int getRestCount(RestSearchBean searchBean){
+ StringBuffer sql=new StringBuffer();
+ sql.append(" select count(*)");
+ sql.append(" from t_atte_rest r left join t_customer c on r.custid=c.custid ")
+ .append(" left join t_card tc on r.custid=tc.custid ")
+ .append(" left join tb_custtype ct on c.custtypeid=ct.custtypeid ")
+ .append(" left join tb_dept td on c.deptcode=td.deptcode ")
+ .append(" where c.status='1' and tc.status='normal' and tc.transtatus='normal' ");
+ if(!StringUtil.isEmpty(searchBean.getStartdate())&&!StringUtil.isEmpty(searchBean.getEnddate())){
+ sql.append(" and ( (:sdate between r.startdate and r.enddate) or (:edate between r.startdate and r.enddate) ");
+ sql.append(" or (:sdate < r.startdate and :edate > r.enddate ) )");
+ }
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ sql.append(" and r.custid = :cid ");
+ }
+ if(!StringUtil.isEmpty(searchBean.getDeptcode())){
+ sql.append(" and c.deptcode = :dcode ");
+ }
+ if(!StringUtil.isEmpty(searchBean.getCustname())){
+ sql.append(" and c.custname like :cname ");
+ }
+ if(!StringUtil.isEmpty(searchBean.getStatus())){
+ sql.append(" and r.status= :stat ");
+ }
+ if(!StringUtil.isEmpty(searchBean.getCusttypeid())){
+ sql.append(" and c.custtypeid= :ctypeid ");
+ }
+ sql.append(" order by r.startdate desc,r.enddate desc ");
+ Query query=entityManager.createNativeQuery(sql.toString(), AtteRestInfo.class);
+ if(!StringUtil.isEmpty(searchBean.getStartdate())&&!StringUtil.isEmpty(searchBean.getEnddate())){
+ query.setParameter("sdate",searchBean.getStartdate());
+ query.setParameter("edate",searchBean.getEnddate());
+ }
+ if(!StringUtil.isEmpty(searchBean.getCustid())){
+ query.setParameter("cid",searchBean.getCustid());
+ }
+ if(!StringUtil.isEmpty(searchBean.getDeptcode())){
+ query.setParameter("dcode",searchBean.getDeptcode());
+ }
+ if(!StringUtil.isEmpty(searchBean.getCustname())){
+ query.setParameter("cname","%"+searchBean.getCustname()+"%");
+ }
+ if(!StringUtil.isEmpty(searchBean.getStatus())){
+ query.setParameter("stat",searchBean.getStatus());
+ }
+ if(!StringUtil.isEmpty(searchBean.getCusttypeid())){
+ query.setParameter("ctypeid",Integer.parseInt(searchBean.getCusttypeid()));
+ }
+ int cnt=0;
+ Object obj=query.getSingleResult();
+ if(obj!=null){
+ cnt=Integer.parseInt(obj.toString());
+ }
+ return cnt;
+ }
+
+ @Transactional
+ @Override
+ public boolean canask(String custid, String startdate, String enddate) {
+ if(StringUtil.isEmpty(custid)||StringUtil.isEmpty(startdate)||StringUtil.isEmpty(enddate)){
+ return false;
+ }
+ String sql=" select a from TAtteRest a where a.custid= :cid and a.status in (0,1) ";
+ sql+=" and ( (:sdate between a.startdate and a.enddate) or (:edate between a.startdate and a.enddate) ";
+ sql+=" or (:sdate < a.startdate and :edate > a.enddate ) )";
+ TypedQuery<TAtteRest> query=entityManager.createQuery(sql,TAtteRest.class);
+ query.setParameter("cid",custid);
+ query.setParameter("sdate",startdate);
+ query.setParameter("edate",enddate);
+ List<TAtteRest> list=query.getResultList();
+ if(list!=null&&list.size()>0){
+ return false;
+ }
+ return true;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteRest.java b/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteRest.java
index f85dbc2..fb70fa3 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteRest.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteRest.java
@@ -12,7 +12,7 @@
@Column(name="custid",length = 32)
private String custid;
@Column(name="rtype",length = 4)
- private Integer rtype;
+ private Integer rtype; // 11-事假 12-病假 13-年假 14-调休 15-其他
@Column(name="startdate", length = 8)
private String startdate;
@Column(name="enddate",length= 8)
@@ -20,9 +20,11 @@
@Column(name="remark",length = 255 )
private String remark;
@Column(name="status",length = 4)
- private String status;
+ private String status; // 0-未审核 1-已通过 2-未通过 3-取消
@Column(name="updatetime",length = 14)
private String updatetime;
+ @Column(name="re_custid",length = 32)
+ private String recustid;
public String getId() {
return id;
@@ -87,4 +89,12 @@
public void setUpdatetime(String updatetime) {
this.updatetime = updatetime;
}
+
+ public String getRecustid() {
+ return recustid;
+ }
+
+ public void setRecustid(String recustid) {
+ this.recustid = recustid;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/service/AtteRestService.java b/src/main/java/com/supwisdom/dlpay/atte/service/AtteRestService.java
new file mode 100644
index 0000000..e972b29
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/atte/service/AtteRestService.java
@@ -0,0 +1,20 @@
+package com.supwisdom.dlpay.atte.service;
+
+import com.supwisdom.dlpay.atte.domain.TAtteRest;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+public interface AtteRestService {
+ @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+ public boolean saveAtteRest(TAtteRest bean);
+
+ @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+ public boolean updateAtteRest(TAtteRest bean);
+
+ @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+ public TAtteRest getAtteRestById(String id);
+
+ //是否可以申请
+ @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+ public boolean canask(String custid,String startdate,String enddate);
+}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteRestServiceImpl.java b/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteRestServiceImpl.java
new file mode 100644
index 0000000..5de5149
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteRestServiceImpl.java
@@ -0,0 +1,33 @@
+package com.supwisdom.dlpay.atte.service.impl;
+
+import com.supwisdom.dlpay.atte.dao.AtteRestDao;
+import com.supwisdom.dlpay.atte.domain.TAtteRest;
+import com.supwisdom.dlpay.atte.service.AtteRestService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class AtteRestServiceImpl implements AtteRestService {
+ @Autowired
+ AtteRestDao atteRestDao;
+
+ @Override
+ public boolean saveAtteRest(TAtteRest bean) {
+ return atteRestDao.saveAtteRest(bean);
+ }
+
+ @Override
+ public boolean updateAtteRest(TAtteRest bean) {
+ return atteRestDao.updateAtteRest(bean);
+ }
+
+ @Override
+ public TAtteRest getAtteRestById(String id) {
+ return atteRestDao.getAtteRestById(id);
+ }
+
+ @Override
+ public boolean canask(String custid, String startdate, String enddate) {
+ return atteRestDao.canask(custid,startdate,enddate);
+ }
+}