package com.ld.igds.oa.service; import com.bstek.bdf2.core.business.IUser; import com.bstek.bdf2.core.model.DefaultDept; import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.ld.igds.constant.Constant; import com.ld.igds.constant.OrderStatus; import com.ld.igds.models.ApplyOrder; import com.ld.igds.util.ContextUtil; import com.ld.igds.util.DateUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.hibernate.Session; import org.springframework.stereotype.Component; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @Component public class HOrderServiceImpl extends HibernateDao{ public List listApplyOrders(Map param) { String hql = " from " + ApplyOrder.class.getName() + " where companyId=:companyId and applyUser =:applyUser"; Map args = new HashMap(); args.put("companyId", ContextUtil.getCompanyId()); args.put("applyUser", ContextUtil.getLoginUserName()); if (null != param) { String str = (String) param.get("type"); if (StringUtils.isNotEmpty(str)) { hql += " and type =:type"; args.put("type", str); } str = (String) param.get("deptId"); if (StringUtils.isNotEmpty(str)) { hql += " and deptId =:deptId"; args.put("deptId", str); } Date date = (Date) param.get("startTime"); if (null != date) { hql += " and applyTime >=:startTime"; args.put("startTime", DateUtil.getCurZero(date)); } date = (Date) param.get("endTime"); if (null != date) { hql += " and applyTime <=:endTime"; args.put("endTime", DateUtil.getNextZero(date)); } } hql += " order by applyTime desc"; return this.query(hql, args); } public String saveApplyOrder(ApplyOrder data) { String id = null; Session session = this.getSessionFactory().openSession(); try { if (null == data.getId()) { id = ContextUtil.getTimeId(); data.setId(id); IUser user = ContextUtil.getLoginUser(); //判断组织编码 if (StringUtils.isEmpty(data.getCompanyId())) { data.setCompanyId(user.getCompanyId()); } //判断分库编码 if(StringUtils.isEmpty(data.getDeptId())){ data.setDeptId(ContextUtil.subDeptId(user)); } //设置申请人信息及申请时间 data.setApplyUser(user.getUsername()); data.setApplyUserName(user.getCname()); data.setApplyTime(new Date()); //设置状态 data.setStatus(OrderStatus.Status_10.getCode()); if(StringUtils.isNotEmpty(data.getInfo())){ String str = "#" + DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"); str += "<" + user.getCname() + ">申请内容:"; str += data.getInfo(); data.setRecord(str); } session.save(data); } else { id = data.getId(); data.setStatus(OrderStatus.Status_10.getCode()); data.setApplyTime(new Date()); if(StringUtils.isNotEmpty(data.getInfo())){ IUser user = ContextUtil.getLoginUser(); String str = ""; if(StringUtils.isNotEmpty(data.getRecord())){ str += data.getRecord() + " "; } str += "#" + DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"); str += "<" + user.getCname() + ">修改申请内容:"; str += data.getInfo(); data.setRecord(str); } session.update(data); } } catch (Exception e) { e.printStackTrace(); } finally { session.flush(); session.close(); } return id; } public String delApplyOrder(ApplyOrder data) { Session session = this.getSessionFactory().openSession(); try { if (null != data.getId()) { session.delete(data); } } catch (Exception e) { e.printStackTrace(); } finally { session.flush(); session.close(); } return null; } public List listAuditOrders(Map param) { String hql = " from " + ApplyOrder.class.getName() + " where companyId=:companyId "; Map args = new HashMap(); args.put("companyId", ContextUtil.getCompanyId()); if (null != param) { String str = (String) param.get("type"); if (StringUtils.isNotEmpty(str)) { hql += " and type =:type"; args.put("type", str); } str = (String) param.get("status"); hql += " and status =:status"; if (StringUtils.isNotEmpty(str)) { args.put("status", str); }else { args.put("status", OrderStatus.Status_10.getCode()); } Date date = (Date) param.get("startTime"); if (null != date) { hql += " and applyTime >=:startTime"; args.put("startTime", DateUtil.getCurZero(date)); } date = (Date) param.get("endTime"); if (null != date) { hql += " and applyTime <=:endTime"; args.put("endTime", DateUtil.getNextZero(date)); } } hql += " order by applyTime desc"; List list = this.query(hql, args); return this.query(hql, args); } public void auditApplyOrder(ApplyOrder data) { Session session = this.getSessionFactory().openSession(); try { //设置审核人信息及审核时间 IUser user = ContextUtil.getLoginUser(); data.setAuditUser(user.getUsername()); data.setAuditUserName(user.getCname()); data.setAuditTime(new Date()); String str = ""; if(StringUtils.isNotEmpty(data.getRecord())){ str += data.getRecord() + " "; } str += "#" + DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"); str += "<" + user.getCname() + ">" + OrderStatus.getMsg(data.getStatus()) + "此申请"; if(StringUtils.isNotEmpty(data.getInfo())){ str += "原因为:" + data.getInfo(); } data.setRecord(str); session.update(data); } catch (Exception e) { e.printStackTrace(); } finally { session.flush(); session.close(); } } }