package com.ld.igds.sys.service; import com.bstek.bdf2.core.model.DefaultCompany; import com.bstek.bdf2.core.model.DefaultDept; import com.bstek.bdf2.core.model.DefaultUser; import com.bstek.bdf2.core.model.UserDept; import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.bstek.dorado.data.entity.EntityState; import com.bstek.dorado.data.entity.EntityUtils; import com.bstek.dorado.data.provider.Page; import com.ld.igds.constant.Constant; import com.ld.igds.util.ContextUtil; import org.hibernate.Session; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 框架中的组织信息接口 */ @Component public class SysCompanyService extends HibernateDao { public void saveAll(List list) { Session session = this.getSessionFactory().openSession(); try { for (DefaultCompany c : list) { if (EntityState.MODIFIED.equals(EntityUtils.getState(c))) { session.saveOrUpdate(c); } else if (EntityState.NEW.equals(EntityUtils.getState(c))) { session.saveOrUpdate(c); // 默认创建用户 DefaultUser user = new DefaultUser(); user.setAdministrator(true); user.setCname("系统管理员"); user.setCompanyId(c.getId()); user.setUsername(c.getId()); user.setEnabled(true); //user.setEname("Admin"); user.setPassword("71513d28a0157221685926ab05792b1aa68aeb93"); user.setSalt("23"); session.saveOrUpdate(user); } else if (EntityState.DELETED.equals(EntityUtils.getState(c))) { session.delete(c); } } } finally { session.flush(); session.close(); } } @Transactional public String register(DefaultCompany data) { DefaultCompany defaultData = this.getCompany(data.getId()); if(null != defaultData){ return "当前组编码已经被使用,请更换!!"; } Session session = this.getSessionFactory().openSession(); try { session.save(data); // 默认创建用户 DefaultUser user = new DefaultUser(); user.setAdministrator(true); user.setCname("系统管理员"); user.setCompanyId(data.getId()); user.setUsername(data.getId()); user.setEnabled(true); user.setPassword("6604b47a45cbc76b9a1dbac618b3b255db9af79c"); user.setSalt("93"); session.save(user); // 创建一个部门 DefaultDept dept = new DefaultDept(); dept.setId(data.getId()); dept.setCompanyId(data.getId()); dept.setName(data.getName()); dept.setType(Constant.DEPT_TYPE_10); dept.setLat(34.797358); dept.setLon(113.548794); session.save(dept); // 创业一个子部门-粮库系统使用 dept = new DefaultDept(); dept.setId(data.getId() + "_001"); dept.setCompanyId(data.getId()); dept.setParentId(data.getId()); dept.setName(data.getName()); dept.setType(Constant.DEPT_TYPE_20); dept.setLat(35.797358); dept.setLon(114.548794); session.save(dept); //默认给用户分配部门 UserDept userDept = new UserDept(); userDept.setId(ContextUtil.getUUID()); userDept.setDeptId(data.getId()); userDept.setUsername(data.getId()); session.save(userDept); } catch (Exception e) { return "注册失败:" + e.getMessage(); } finally { session.flush(); session.close(); } return null; } public void findAll(Page page, Map parameter) throws Exception { StringBuffer hql = new StringBuffer(); hql.append(" from " + DefaultCompany.class.getName() + " where 1=1 "); Map args = new HashMap<>(); if (null != parameter){ buildHql(hql, parameter, args); } String countHql = "select count(*) " + hql.toString(); hql.append(" order by id desc "); this.pagingQuery(page, hql.toString(), countHql, args); } private void buildHql(StringBuffer hql, Map parameter, Map args) { Object obj = parameter.get("id"); if (null != obj) { hql.append(" and id =:id "); args.put("id", obj); } obj = parameter.get("name"); if (null != obj) { hql.append(" and name like :name "); args.put("name", "%" + obj + "%"); } obj = parameter.get("sysServer"); if (null != obj) { hql.append(" and sysServer = :sysServer "); args.put("sysServer", obj); } obj = parameter.get("smsServer"); if (null != obj) { hql.append(" and smsServer = :smsServer "); args.put("smsServer", obj); } obj = parameter.get("voiceServer"); if (null != obj) { hql.append(" and voiceServer = :voiceServer "); args.put("voiceServer", obj); } } public DefaultCompany getCompany(String companyId) { String hql = " from " + DefaultCompany.class.getName() + " where id=:id "; Map args = new HashMap<>(); args.put("id", companyId); List list = this.query(hql, args); if (null == list || list.isEmpty()) return null; return list.get(0); } public List getAll() { return this.query("from " + DefaultCompany.class.getName()); } public void updateData(DefaultCompany company) { Session session = this.getSessionFactory().openSession(); try { session.update(company); } finally { session.flush(); session.close(); } } }