package com.ld.igds.m.service; import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.ld.igds.models.InoutCustomer; import com.ld.igds.util.ContextUtil; import org.apache.commons.lang3.StringUtils; import org.hibernate.Session; import org.springframework.stereotype.Component; import javax.transaction.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author */ @Component public class HInoutCustomerService extends HibernateDao { public List queryList(Map parameter) { String hql = " from " + InoutCustomer.class.getName() + " where companyId =:companyId and deptId =:deptId"; Map args = new HashMap(); args.put("companyId", ContextUtil.getCompanyId()); args.put("deptId", ContextUtil.subDeptId(null)); if (null != parameter) { String str = (String) parameter.get("id"); if (StringUtils.isNotEmpty(str)) { hql += " and id like:id"; args.put("id", "%" + str + "%"); } str = (String) parameter.get("type"); if (StringUtils.isNotEmpty(str)) { hql += " and type =:type"; args.put("type", str); } str = (String) parameter.get("name"); if (StringUtils.isNotEmpty(str)) { hql += " and name like:name"; args.put("name", "%" + str + "%"); } str = (String) parameter.get("key"); if (StringUtils.isNotEmpty(str)) { hql += " and (name like:name or id like:id) "; args.put("name", "%" + str + "%"); args.put("id", "%" + str + "%"); } } hql += " order by name "; return this.query(hql, args); } @Transactional public String saveOrUpdateData(InoutCustomer data) { Session session = this.getSessionFactory().openSession(); try { if (StringUtils.isEmpty(data.getDeptId())) { data.setDeptId(ContextUtil.subDeptId(null)); } if (StringUtils.isEmpty(data.getCompanyId())) { data.setCompanyId(ContextUtil.getCompanyId()); } if (StringUtils.isEmpty(data.getId())) { String customerId = getCustomerId(data.getCompanyId()); data.setId(customerId); session.save(data); } else { session.saveOrUpdate(data); } } finally { session.flush(); session.close(); } return null; } /** * 获取客户编码 * * @param companyId * @return */ private String getCustomerId(String companyId) { String hql = " from " + InoutCustomer.class.getName() + " where companyId =:companyId"; Map args = new HashMap(); args.put("companyId", companyId); hql += " order by id + 0 "; List list = this.query(hql, args); int endNum = 0; if (list != null && list.size() > 0) { InoutCustomer inoutCustomer = list.get(list.size() - 1); endNum = Integer.valueOf(inoutCustomer.getId()); } return ("" + (endNum + 100000 + 1)).substring(1); } @Transactional public String delData(InoutCustomer data) { Session session = this.getSessionFactory().openSession(); try { session.delete(data); } finally { session.flush(); session.close(); } return null; } }