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<InoutCustomer> queryList(Map<String, Object> parameter) {
|
|
String hql = " from " + InoutCustomer.class.getName()
|
+ " where companyId =:companyId and deptId =:deptId";
|
|
Map<String, Object> args = new HashMap<String, Object>();
|
args.put("companyId", ContextUtil.getCompanyId());
|
args.put("deptId", ContextUtil.subDeptId(null));
|
|
if (null != parameter) {
|
String str = (String) parameter.get("id");
|
if (StringUtils.isNoneEmpty(str)) {
|
hql += " and id like:id";
|
args.put("id", "%" + str + "%");
|
}
|
|
str = (String) parameter.get("type");
|
if (StringUtils.isNoneEmpty(str)) {
|
hql += " and type =:type";
|
args.put("type", str);
|
}
|
|
str = (String) parameter.get("name");
|
if (StringUtils.isNoneEmpty(str)) {
|
hql += " and name like:name";
|
args.put("name", "%" + str + "%");
|
}
|
|
str = (String) parameter.get("key");
|
if (StringUtils.isNoneEmpty(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<String, Object> args = new HashMap<String, Object>();
|
args.put("companyId", companyId);
|
|
hql += " order by id + 0 ";
|
List<InoutCustomer> 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;
|
}
|
}
|