TBusSpecialAttendServiceImpl.java 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. package cn.com.lzt.attendance.service.impl;
  2. import cn.com.lzt.attendance.service.TBusSpecialAttendServiceI;
  3. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  4. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  5. import org.jeecgframework.core.constant.Globals;
  6. import cn.com.lzt.attendance.entity.TBusSpecialAttendEntity;
  7. import org.springframework.stereotype.Service;
  8. import org.springframework.transaction.annotation.Transactional;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Map;
  12. import java.util.UUID;
  13. import java.io.Serializable;
  14. import org.jeecgframework.core.util.ApplicationContextUtil;
  15. import org.jeecgframework.core.util.EhcacheUtil;
  16. import org.jeecgframework.core.util.MyClassLoader;
  17. import org.jeecgframework.core.util.StringUtil;
  18. import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
  19. @Service("tBusSpecialAttendService")
  20. @Transactional
  21. public class TBusSpecialAttendServiceImpl extends CommonServiceImpl implements TBusSpecialAttendServiceI {
  22. private final String CACHENAME ="eternalCache";
  23. private final String OnlineClientsKey ="TBusSpecialAttendEntity";
  24. public void delete(TBusSpecialAttendEntity entity) throws Exception{
  25. super.delete(entity);
  26. //执行删除操作增强业务
  27. this.doDelBus(entity);
  28. }
  29. public Serializable save(TBusSpecialAttendEntity entity) throws Exception{
  30. Serializable t = super.save(entity);
  31. //执行新增操作增强业务
  32. this.doAddBus(entity);
  33. return t;
  34. }
  35. public void saveOrUpdate(TBusSpecialAttendEntity entity) throws Exception{
  36. super.saveOrUpdate(entity);
  37. //执行更新操作增强业务
  38. this.doUpdateBus(entity);
  39. }
  40. /**
  41. * 某人的特殊考勤记录是否存在, 有ehcache缓存
  42. * @param userid
  43. * @return
  44. * @throws Exception
  45. */
  46. @Override
  47. public boolean hasSpecialAttendInfo(String userid) throws Exception{
  48. Object cacheObj = EhcacheUtil.get(CACHENAME, OnlineClientsKey);
  49. HashMap<String,String> map = null;
  50. if(cacheObj == null) {
  51. map = new HashMap<>();
  52. CriteriaQuery specialcq = new CriteriaQuery(TBusSpecialAttendEntity.class);
  53. specialcq.eq("attendtype", Globals.Special_Attend_Type_All_IN);
  54. specialcq.add();
  55. List<TBusSpecialAttendEntity> specialAttendEntities = getListByCriteriaQuery(specialcq, false);
  56. if(specialAttendEntities != null && !specialAttendEntities.isEmpty()) {
  57. for(TBusSpecialAttendEntity spe : specialAttendEntities) {
  58. map.put(spe.getUserid(), spe.getId());
  59. }
  60. }
  61. EhcacheUtil.put(CACHENAME,OnlineClientsKey, map);
  62. }else {
  63. map = (HashMap<String,String>)cacheObj;
  64. }
  65. return map.containsKey(userid);
  66. }
  67. @Override
  68. public void reloadSpecialAttendInfoCache() throws Exception{
  69. HashMap<String,String> map = new HashMap<>();
  70. CriteriaQuery specialcq = new CriteriaQuery(TBusSpecialAttendEntity.class);
  71. specialcq.eq("attendtype", Globals.Special_Attend_Type_All_IN);
  72. specialcq.add();
  73. List<TBusSpecialAttendEntity> specialAttendEntities = getListByCriteriaQuery(specialcq, false);
  74. if(specialAttendEntities != null && !specialAttendEntities.isEmpty()) {
  75. for(TBusSpecialAttendEntity spe : specialAttendEntities) {
  76. map.put(spe.getUserid(), spe.getId());
  77. }
  78. }
  79. EhcacheUtil.put(CACHENAME,OnlineClientsKey, map);
  80. }
  81. /**
  82. * 新增操作增强业务
  83. * @param t
  84. * @return
  85. */
  86. private void doAddBus(TBusSpecialAttendEntity t) throws Exception{
  87. //-----------------sql增强 start----------------------------
  88. //-----------------sql增强 end------------------------------
  89. //-----------------java增强 start---------------------------
  90. //-----------------java增强 end-----------------------------
  91. }
  92. /**
  93. * 更新操作增强业务
  94. * @param t
  95. * @return
  96. */
  97. private void doUpdateBus(TBusSpecialAttendEntity t) throws Exception{
  98. //-----------------sql增强 start----------------------------
  99. //-----------------sql增强 end------------------------------
  100. //-----------------java增强 start---------------------------
  101. //-----------------java增强 end-----------------------------
  102. }
  103. /**
  104. * 删除操作增强业务
  105. * @param id
  106. * @return
  107. */
  108. private void doDelBus(TBusSpecialAttendEntity t) throws Exception{
  109. //-----------------sql增强 start----------------------------
  110. //-----------------sql增强 end------------------------------
  111. //-----------------java增强 start---------------------------
  112. //-----------------java增强 end-----------------------------
  113. }
  114. private Map<String,Object> populationMap(TBusSpecialAttendEntity t){
  115. Map<String,Object> map = new HashMap<String,Object>();
  116. map.put("id", t.getId());
  117. map.put("create_name", t.getCreateName());
  118. map.put("create_by", t.getCreateBy());
  119. map.put("create_date", t.getCreateDate());
  120. map.put("update_name", t.getUpdateName());
  121. map.put("update_by", t.getUpdateBy());
  122. map.put("update_date", t.getUpdateDate());
  123. map.put("sys_org_code", t.getSysOrgCode());
  124. map.put("sys_company_code", t.getSysCompanyCode());
  125. map.put("bpm_status", t.getBpmStatus());
  126. map.put("userid", t.getUserid());
  127. map.put("attendtype", t.getAttendtype());
  128. return map;
  129. }
  130. /**
  131. * 替换sql中的变量
  132. * @param sql
  133. * @param t
  134. * @return
  135. */
  136. public String replaceVal(String sql,TBusSpecialAttendEntity t){
  137. sql = sql.replace("#{id}",String.valueOf(t.getId()));
  138. sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName()));
  139. sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy()));
  140. sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
  141. sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName()));
  142. sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy()));
  143. sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate()));
  144. sql = sql.replace("#{sys_org_code}",String.valueOf(t.getSysOrgCode()));
  145. sql = sql.replace("#{sys_company_code}",String.valueOf(t.getSysCompanyCode()));
  146. sql = sql.replace("#{bpm_status}",String.valueOf(t.getBpmStatus()));
  147. sql = sql.replace("#{userid}",String.valueOf(t.getUserid()));
  148. sql = sql.replace("#{attendtype}",String.valueOf(t.getAttendtype()));
  149. sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
  150. return sql;
  151. }
  152. /**
  153. * 执行JAVA增强
  154. */
  155. private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map<String,Object> data) throws Exception {
  156. if(StringUtil.isNotEmpty(cgJavaValue)){
  157. Object obj = null;
  158. try {
  159. if("class".equals(cgJavaType)){
  160. //因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断
  161. obj = MyClassLoader.getClassByScn(cgJavaValue).newInstance();
  162. }else if("spring".equals(cgJavaType)){
  163. obj = ApplicationContextUtil.getContext().getBean(cgJavaValue);
  164. }
  165. if(obj instanceof CgformEnhanceJavaInter){
  166. CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj;
  167. javaInter.execute("t_bus_special_attend",data);
  168. }
  169. } catch (Exception e) {
  170. e.printStackTrace();
  171. throw new Exception("执行JAVA增强出现异常!");
  172. }
  173. }
  174. }
  175. }