package com.ld.igds.drug.service; import com.bstek.bdf2.core.business.IUser; import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.bstek.dorado.data.provider.Page; import com.ld.igds.models.DrugLog; 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.Service; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class HDrugLogService extends HibernateDao { public void pageData(Page page, Map param) throws Exception { String hql = " from " + DrugLog.class.getName() + " where deptId=:deptId"; Map args = new HashMap(); args.put("deptId", ContextUtil.subDeptId(null)); if (null != param) { String str = (String) param.get("depotId"); if (StringUtils.isNotEmpty(str)) { hql += " and depotId =:depotId"; args.put("depotId", str); } str = (String) param.get("name"); if (StringUtils.isNotEmpty(str)) { hql += " and user like:name"; args.put("name", "%" + str + "%"); } Date date = (Date) param.get("start"); if (null != date) { hql +=(" and start >=:start"); args.put("start", date); } date = (Date) param.get("end"); if (null != date) { hql +=(" and end <=:end"); args.put("end", date); } } String count = "select count(*) " + hql; hql += " order by updateTime desc"; this.pagingQuery(page, hql, count, args); } private List getDrugLogByTime(String companyId) { String hql = " from " + DrugLog.class.getName() + " where companyId =:companyId "; Map args = new HashMap(); args.put("companyId", companyId); hql += " and updateTime >:startTime"; args.put("startTime", DateUtil.getCurZero(new Date())); hql += " and updateTime <:endTime"; args.put("endTime", DateUtil.getNextZero(new Date())); hql += " order by id desc"; return this.query(hql, args); } public String getIndex(String companyId) { List list = getDrugLogByTime(companyId); String index = "001"; if (list != null && list.size() > 0) { String id = list.get(0).getId().substring(8); int temp = Integer.valueOf(id) + 1; index = temp + ""; } if (index.length() == 1) { index = "00" + index; } if (index.length() == 2) { index = "0" + index; } return index; } public void saveData(DrugLog data) { if (null == data.getCompanyId()) { data.setCompanyId(ContextUtil.getCompanyId()); } if (null == data.getDeptId()) { data.setDeptId(ContextUtil.subDeptId(null)); } Session session = this.getSessionFactory().openSession(); data.setUpdateTime(new Date()); data.setUpdateUser(ContextUtil.getLoginUserCName()); try { if (null == data.getId()) { data.setId(DateFormatUtils.format(new Date(), "yyyyMMdd") + getIndex(data.getCompanyId())); session.save(data); } else { session.update(data); } } catch (Exception e) { e.printStackTrace(); } finally { session.flush(); session.close(); } } public String delData(DrugLog 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; } }