| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- package cn.com.lzt.attendance.service.impl;
- import cn.com.lzt.attendance.service.TBusSpecialAttendServiceI;
- import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
- import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
- import org.jeecgframework.core.constant.Globals;
- import cn.com.lzt.attendance.entity.TBusSpecialAttendEntity;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- import java.io.Serializable;
- import org.jeecgframework.core.util.ApplicationContextUtil;
- import org.jeecgframework.core.util.EhcacheUtil;
- import org.jeecgframework.core.util.MyClassLoader;
- import org.jeecgframework.core.util.StringUtil;
- import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
- @Service("tBusSpecialAttendService")
- @Transactional
- public class TBusSpecialAttendServiceImpl extends CommonServiceImpl implements TBusSpecialAttendServiceI {
- private final String CACHENAME ="eternalCache";
- private final String OnlineClientsKey ="TBusSpecialAttendEntity";
-
- public void delete(TBusSpecialAttendEntity entity) throws Exception{
- super.delete(entity);
- //执行删除操作增强业务
- this.doDelBus(entity);
- }
-
- public Serializable save(TBusSpecialAttendEntity entity) throws Exception{
- Serializable t = super.save(entity);
- //执行新增操作增强业务
- this.doAddBus(entity);
- return t;
- }
-
- public void saveOrUpdate(TBusSpecialAttendEntity entity) throws Exception{
- super.saveOrUpdate(entity);
- //执行更新操作增强业务
- this.doUpdateBus(entity);
- }
-
- /**
- * 某人的特殊考勤记录是否存在, 有ehcache缓存
- * @param userid
- * @return
- * @throws Exception
- */
- @Override
- public boolean hasSpecialAttendInfo(String userid) throws Exception{
- Object cacheObj = EhcacheUtil.get(CACHENAME, OnlineClientsKey);
- HashMap<String,String> map = null;
- if(cacheObj == null) {
- map = new HashMap<>();
- CriteriaQuery specialcq = new CriteriaQuery(TBusSpecialAttendEntity.class);
- specialcq.eq("attendtype", Globals.Special_Attend_Type_All_IN);
- specialcq.add();
- List<TBusSpecialAttendEntity> specialAttendEntities = getListByCriteriaQuery(specialcq, false);
- if(specialAttendEntities != null && !specialAttendEntities.isEmpty()) {
- for(TBusSpecialAttendEntity spe : specialAttendEntities) {
- map.put(spe.getUserid(), spe.getId());
- }
- }
- EhcacheUtil.put(CACHENAME,OnlineClientsKey, map);
- }else {
- map = (HashMap<String,String>)cacheObj;
- }
-
- return map.containsKey(userid);
- }
- @Override
- public void reloadSpecialAttendInfoCache() throws Exception{
- HashMap<String,String> map = new HashMap<>();
- CriteriaQuery specialcq = new CriteriaQuery(TBusSpecialAttendEntity.class);
- specialcq.eq("attendtype", Globals.Special_Attend_Type_All_IN);
- specialcq.add();
- List<TBusSpecialAttendEntity> specialAttendEntities = getListByCriteriaQuery(specialcq, false);
- if(specialAttendEntities != null && !specialAttendEntities.isEmpty()) {
- for(TBusSpecialAttendEntity spe : specialAttendEntities) {
- map.put(spe.getUserid(), spe.getId());
- }
- }
- EhcacheUtil.put(CACHENAME,OnlineClientsKey, map);
- }
-
- /**
- * 新增操作增强业务
- * @param t
- * @return
- */
- private void doAddBus(TBusSpecialAttendEntity t) throws Exception{
- //-----------------sql增强 start----------------------------
- //-----------------sql增强 end------------------------------
-
- //-----------------java增强 start---------------------------
- //-----------------java增强 end-----------------------------
- }
- /**
- * 更新操作增强业务
- * @param t
- * @return
- */
- private void doUpdateBus(TBusSpecialAttendEntity t) throws Exception{
- //-----------------sql增强 start----------------------------
- //-----------------sql增强 end------------------------------
-
- //-----------------java增强 start---------------------------
- //-----------------java增强 end-----------------------------
- }
- /**
- * 删除操作增强业务
- * @param id
- * @return
- */
- private void doDelBus(TBusSpecialAttendEntity t) throws Exception{
- //-----------------sql增强 start----------------------------
- //-----------------sql增强 end------------------------------
-
- //-----------------java增强 start---------------------------
- //-----------------java增强 end-----------------------------
- }
-
- private Map<String,Object> populationMap(TBusSpecialAttendEntity t){
- Map<String,Object> map = new HashMap<String,Object>();
- map.put("id", t.getId());
- map.put("create_name", t.getCreateName());
- map.put("create_by", t.getCreateBy());
- map.put("create_date", t.getCreateDate());
- map.put("update_name", t.getUpdateName());
- map.put("update_by", t.getUpdateBy());
- map.put("update_date", t.getUpdateDate());
- map.put("sys_org_code", t.getSysOrgCode());
- map.put("sys_company_code", t.getSysCompanyCode());
- map.put("bpm_status", t.getBpmStatus());
- map.put("userid", t.getUserid());
- map.put("attendtype", t.getAttendtype());
- return map;
- }
-
- /**
- * 替换sql中的变量
- * @param sql
- * @param t
- * @return
- */
- public String replaceVal(String sql,TBusSpecialAttendEntity t){
- sql = sql.replace("#{id}",String.valueOf(t.getId()));
- sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName()));
- sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy()));
- sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
- sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName()));
- sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy()));
- sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate()));
- sql = sql.replace("#{sys_org_code}",String.valueOf(t.getSysOrgCode()));
- sql = sql.replace("#{sys_company_code}",String.valueOf(t.getSysCompanyCode()));
- sql = sql.replace("#{bpm_status}",String.valueOf(t.getBpmStatus()));
- sql = sql.replace("#{userid}",String.valueOf(t.getUserid()));
- sql = sql.replace("#{attendtype}",String.valueOf(t.getAttendtype()));
- sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
- return sql;
- }
-
- /**
- * 执行JAVA增强
- */
- private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map<String,Object> data) throws Exception {
- if(StringUtil.isNotEmpty(cgJavaValue)){
- Object obj = null;
- try {
- if("class".equals(cgJavaType)){
- //因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断
- obj = MyClassLoader.getClassByScn(cgJavaValue).newInstance();
- }else if("spring".equals(cgJavaType)){
- obj = ApplicationContextUtil.getContext().getBean(cgJavaValue);
- }
- if(obj instanceof CgformEnhanceJavaInter){
- CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj;
- javaInter.execute("t_bus_special_attend",data);
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new Exception("执行JAVA增强出现异常!");
- }
- }
- }
- }
|