PersonnelBaseArchivesManageServiceImpl.java 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798
  1. package cn.com.lzt.personnelbasearchivesmanage.service.impl;
  2. import cn.com.lzt.accessory.entity.AccessoryEntity;
  3. import cn.com.lzt.certificatesubsidy.entity.CertificateSubsidyEntity;
  4. import cn.com.lzt.common.push.JPushProcessor;
  5. import cn.com.lzt.common.util.DataUtil;
  6. import cn.com.lzt.personnelbasearchivesmanage.dao.PersonnelBaseArchivesManageDao;
  7. import cn.com.lzt.personnelbasearchivesmanage.dto.*;
  8. import cn.com.lzt.personnelbasearchivesmanage.entity.PersonnelBaseArchivesManageEntity;
  9. import cn.com.lzt.personnelbasearchivesmanage.service.PersonnelBaseArchivesManageServiceI;
  10. import cn.com.lzt.socialsecuritystrategy.entity.SocialSecurityStrategyEntity;
  11. import cn.com.lzt.sysmsg.entity.SysMsgEntity;
  12. import cn.com.lzt.sysmsgdetail.entity.SysMsgDetailEntity;
  13. import cn.com.lzt.usercertificate.entity.UserCertificateEntity;
  14. import cn.com.lzt.userchangeslog.entity.UserChangesLogEntity;
  15. import cn.com.lzt.userwagestrategy.entity.UserWagestrategyEntity;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  18. import org.jeecgframework.core.constant.Globals;
  19. import org.jeecgframework.core.util.ApplicationContextUtil;
  20. import org.jeecgframework.core.util.MyClassLoader;
  21. import org.jeecgframework.core.util.StringUtil;
  22. import org.jeecgframework.minidao.pojo.MiniDaoPage;
  23. import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
  24. import org.jeecgframework.web.system.pojo.base.DictEntity;
  25. import org.jeecgframework.web.system.pojo.base.TSBaseUser;
  26. import org.jeecgframework.web.system.pojo.base.TSUserOrg;
  27. import org.jeecgframework.web.system.service.SystemService;
  28. import org.springframework.beans.factory.annotation.Autowired;
  29. import org.springframework.stereotype.Service;
  30. import org.springframework.transaction.annotation.Propagation;
  31. import org.springframework.transaction.annotation.Transactional;
  32. import javax.annotation.Resource;
  33. import java.io.Serializable;
  34. import java.text.SimpleDateFormat;
  35. import java.util.*;
  36. @Service("personnelBaseArchivesManageService")
  37. @Transactional(propagation = Propagation.REQUIRES_NEW)
  38. public class PersonnelBaseArchivesManageServiceImpl extends CommonServiceImpl
  39. implements PersonnelBaseArchivesManageServiceI {
  40. @Resource
  41. PersonnelBaseArchivesManageDao personnelBaseArchivesManageDao;
  42. @Autowired
  43. private SystemService systemService;
  44. @Autowired
  45. private JPushProcessor pushProcessor;
  46. /**
  47. * 员工基本档案数据检索
  48. *
  49. * @param inDto
  50. * @param page
  51. * @param rows
  52. * @param authSql
  53. * @param sortorder
  54. * @return 员工基本档案列表页数据
  55. */
  56. @Override
  57. public MiniDaoPage<PersonnelBaseArchivesManageOutDto> getPersonnelBaseArchivesManageList(
  58. PersonnelBaseArchivesManageInDto inDto, int page, int rows,
  59. String authSql, String sortorder) {
  60. MiniDaoPage<PersonnelBaseArchivesManageOutDto> datagridList = personnelBaseArchivesManageDao
  61. .dataGrid(inDto, page, rows, authSql, sortorder);
  62. return datagridList;
  63. }
  64. public MiniDaoPage<PersonnelBaseArchivesManageOutDto> getPersonnelBaseArchivesManageListLeave(
  65. PersonnelBaseArchivesManageInDto inDto, int page, int rows,
  66. String authSql, String sortorder) {
  67. MiniDaoPage<PersonnelBaseArchivesManageOutDto> datagridList = personnelBaseArchivesManageDao
  68. .dataGridLeave(inDto, page, rows, authSql, sortorder);
  69. return datagridList;
  70. }
  71. /**
  72. * 新员工导出
  73. *
  74. * @param inDto
  75. * @param page
  76. * @param rows
  77. * @param authSql
  78. * @param sortorder
  79. * @return 员工基本档案列表页数据
  80. */
  81. @Override
  82. public MiniDaoPage<NewPersonTaxExcelExportDto> getNewmanTaxExport(
  83. PersonnelBaseArchivesManageInDto inDto, int page, int rows,
  84. String authSql, String sortorder) {
  85. MiniDaoPage<NewPersonTaxExcelExportDto> datagridList = personnelBaseArchivesManageDao
  86. .getNewmanTaxExport(inDto, page, rows, authSql, sortorder);
  87. return datagridList;
  88. }
  89. /**
  90. * 离职员工导出
  91. *
  92. * @param inDto
  93. * @param page
  94. * @param rows
  95. * @param authSql
  96. * @param sortorder
  97. * @return 员工基本档案列表页数据
  98. */
  99. @Override
  100. public MiniDaoPage<LeavePersonTaxExcelExportDto> getLeavemanTaxExport(
  101. PersonnelBaseArchivesManageInDto inDto, int page, int rows,
  102. String authSql, String sortorder) {
  103. MiniDaoPage<LeavePersonTaxExcelExportDto> datagridList = personnelBaseArchivesManageDao
  104. .getLeavemanTaxExport(inDto, page, rows, authSql, sortorder);
  105. return datagridList;
  106. }
  107. /**
  108. * 部门下的所有部门ID
  109. *
  110. * @param pId
  111. * @return 部门下的所有部门ID
  112. */
  113. @Override
  114. public List<DepartDto> getAllChildrenList(String pId,
  115. List<DepartDto> entryList, List<DepartDto> childList) {
  116. if (childList == null) {
  117. childList = new ArrayList<DepartDto>();
  118. }
  119. entryList = personnelBaseArchivesManageDao.getAllChildDepart(pId);
  120. for (DepartDto entry : entryList) {
  121. // 遍历出父id等于参数的id,add进子节点集合
  122. if (entry.getParentdepartid().equals(pId)) {
  123. // 递归遍历下一级
  124. getAllChildrenList(entry.getId(), entryList, childList);
  125. childList.add(entry);
  126. }
  127. }
  128. return childList;
  129. }
  130. public void delete(PersonnelBaseArchivesManageEntity entity)
  131. throws Exception {
  132. super.delete(entity);
  133. // 执行删除操作增强业务
  134. this.doDelBus(entity);
  135. }
  136. public Serializable save(PersonnelBaseArchivesManageEntity entity)
  137. throws Exception {
  138. Serializable t = super.save(entity);
  139. // 执行新增操作增强业务
  140. this.doAddBus(entity);
  141. return t;
  142. }
  143. public void saveOrUpdate(PersonnelBaseArchivesManageEntity entity)
  144. throws Exception {
  145. super.saveOrUpdate(entity);
  146. // 执行更新操作增强业务
  147. this.doUpdateBus(entity);
  148. }
  149. /**
  150. * 新增操作增强业务
  151. *
  152. * @param t
  153. * @return
  154. */
  155. private void doAddBus(PersonnelBaseArchivesManageEntity t) throws Exception {
  156. // -----------------sql增强 start----------------------------
  157. // -----------------sql增强 end------------------------------
  158. // -----------------java增强 start---------------------------
  159. // -----------------java增强 end-----------------------------
  160. }
  161. /**
  162. * 更新操作增强业务
  163. *
  164. * @param t
  165. * @return
  166. */
  167. private void doUpdateBus(PersonnelBaseArchivesManageEntity t)
  168. throws Exception {
  169. // -----------------sql增强 start----------------------------
  170. // -----------------sql增强 end------------------------------
  171. // -----------------java增强 start---------------------------
  172. // -----------------java增强 end-----------------------------
  173. }
  174. /**
  175. * 删除操作增强业务
  176. *
  177. * @param id
  178. * @return
  179. */
  180. private void doDelBus(PersonnelBaseArchivesManageEntity t) throws Exception {
  181. // -----------------sql增强 start----------------------------
  182. // -----------------sql增强 end------------------------------
  183. // -----------------java增强 start---------------------------
  184. // -----------------java增强 end-----------------------------
  185. }
  186. private Map<String, Object> populationMap(
  187. PersonnelBaseArchivesManageEntity t) {
  188. Map<String, Object> map = new HashMap<String, Object>();
  189. map.put("id", t.getId());
  190. map.put("create_name", t.getCreateName());
  191. map.put("create_by", t.getCreateBy());
  192. map.put("create_date", t.getCreateDate());
  193. map.put("update_name", t.getUpdateName());
  194. map.put("update_by", t.getUpdateBy());
  195. map.put("update_date", t.getUpdateDate());
  196. map.put("sys_org_code", t.getSysOrgCode());
  197. map.put("sys_company_code", t.getSysCompanyCode());
  198. map.put("userid", t.getUserid());
  199. map.put("belong_dutiesid", t.getBelongDutiesid());
  200. map.put("contract_stime", t.getContractStime());
  201. map.put("contract_etime", t.getContractEtime());
  202. map.put("ifremind", t.getIfremind());
  203. map.put("ifrenewed", t.getIfrenewed());
  204. map.put("position_status", t.getPositionStatus());
  205. map.put("user_type", t.getUserType());
  206. map.put("auto_correction", t.getAutoCorrection());
  207. map.put("trial_period", t.getTrialPeriod());
  208. map.put("ifpayment", t.getIfpayment());
  209. map.put("in_postid", t.getInPostid());
  210. map.put("manager_type", t.getManagerType());
  211. return map;
  212. }
  213. /**
  214. * 替换sql中的变量
  215. *
  216. * @param sql
  217. * @param t
  218. * @return
  219. */
  220. public String replaceVal(String sql, PersonnelBaseArchivesManageEntity t) {
  221. sql = sql.replace("#{id}", String.valueOf(t.getId()));
  222. sql = sql.replace("#{create_name}", String.valueOf(t.getCreateName()));
  223. sql = sql.replace("#{create_by}", String.valueOf(t.getCreateBy()));
  224. sql = sql.replace("#{create_date}", String.valueOf(t.getCreateDate()));
  225. sql = sql.replace("#{update_name}", String.valueOf(t.getUpdateName()));
  226. sql = sql.replace("#{update_by}", String.valueOf(t.getUpdateBy()));
  227. sql = sql.replace("#{update_date}", String.valueOf(t.getUpdateDate()));
  228. sql = sql.replace("#{sys_org_code}", String.valueOf(t.getSysOrgCode()));
  229. sql = sql.replace("#{sys_company_code}",
  230. String.valueOf(t.getSysCompanyCode()));
  231. sql = sql.replace("#{userid}", String.valueOf(t.getUserid()));
  232. sql = sql.replace("#{belong_dutiesid}",
  233. String.valueOf(t.getBelongDutiesid()));
  234. sql = sql.replace("#{contract_stime}",
  235. String.valueOf(t.getContractStime()));
  236. sql = sql.replace("#{contract_etime}",
  237. String.valueOf(t.getContractEtime()));
  238. sql = sql.replace("#{ifremind}", String.valueOf(t.getIfremind()));
  239. sql = sql.replace("#{ifrenewed}", String.valueOf(t.getIfrenewed()));
  240. sql = sql.replace("#{position_status}",
  241. String.valueOf(t.getPositionStatus()));
  242. sql = sql.replace("#{user_type}", String.valueOf(t.getUserType()));
  243. sql = sql.replace("#{auto_correction}",
  244. String.valueOf(t.getAutoCorrection()));
  245. sql = sql
  246. .replace("#{trial_period}", String.valueOf(t.getTrialPeriod()));
  247. sql = sql.replace("#{ifpayment}", String.valueOf(t.getIfpayment()));
  248. sql = sql.replace("#{in_postid}", String.valueOf(t.getInPostid()));
  249. sql = sql
  250. .replace("#{manager_type}", String.valueOf(t.getManagerType()));
  251. sql = sql.replace("#{UUID}", UUID.randomUUID().toString());
  252. return sql;
  253. }
  254. /**
  255. * 执行JAVA增强
  256. */
  257. private void executeJavaExtend(String cgJavaType, String cgJavaValue,
  258. Map<String, Object> data) throws Exception {
  259. if (StringUtil.isNotEmpty(cgJavaValue)) {
  260. Object obj = null;
  261. try {
  262. if ("class".equals(cgJavaType)) {
  263. // 因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断
  264. obj = MyClassLoader.getClassByScn(cgJavaValue)
  265. .newInstance();
  266. } else if ("spring".equals(cgJavaType)) {
  267. obj = ApplicationContextUtil.getContext().getBean(
  268. cgJavaValue);
  269. }
  270. if (obj instanceof CgformEnhanceJavaInter) {
  271. CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj;
  272. javaInter.execute("t_bus_user_personnel", data);
  273. }
  274. } catch (Exception e) {
  275. e.printStackTrace();
  276. throw new Exception("执行JAVA增强出现异常!");
  277. }
  278. }
  279. }
  280. @Override
  281. public void getAllautoCorrection() throws Exception {
  282. List<PersonnelBaseArchivesManageEntity> manList = personnelBaseArchivesManageDao.getAllautoCorrection();
  283. if(!manList.isEmpty()){
  284. //trial_period 适用期限
  285. //contract_stime 入职日期( 合同有效期开始时间)
  286. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  287. for (PersonnelBaseArchivesManageEntity per : manList) {
  288. if(per.getTrialPeriod() != null && per.getContractStime() != null){
  289. Calendar ca = Calendar.getInstance();// 得到一个Calendar的实例
  290. ca.setTime(sdf.parse(sdf.format(per.getContractStime()))); // 设置时间为当前时间
  291. ca.add(Calendar.MONTH, per.getTrialPeriod().intValue());
  292. Calendar ca1 = Calendar.getInstance();
  293. ca1.setTime(sdf.parse(sdf.format(new Date())));
  294. if(ca.compareTo(ca1) == 0){
  295. per.setCorrectionDate(sdf.parse(sdf.format(new Date())));
  296. per.setPositionStatus("2");
  297. saveOrUpdate(per);
  298. changUserChangesLogEntity(per);
  299. }
  300. }
  301. }
  302. }
  303. }
  304. /**
  305. * 自动转正插入人事变动
  306. * @param t
  307. */
  308. private void changUserChangesLogEntity(PersonnelBaseArchivesManageEntity t){
  309. UserChangesLogEntity ucle = new UserChangesLogEntity();
  310. ucle.setChangeTime(new Date());
  311. StringBuffer hql = new StringBuffer(" from TSUserOrg where tsUser.id=? and ifpluralism = 0 and status = 0");
  312. List<TSUserOrg> TSUserOrg = findHql(hql.toString(),t.getUserid());
  313. if(!TSUserOrg.isEmpty()){
  314. TSUserOrg uo = TSUserOrg.get(0);
  315. if(uo != null){
  316. ucle.setBelongUnitid(uo.getTsDepart().getId());
  317. }
  318. }
  319. /*TSDepart ts = systemService.get(TSDepart.class, t.getBelongUnitid());
  320. if(ts != null){
  321. ucle.setBelongUnitid(ts.getId());
  322. }*/
  323. TSBaseUser tsBaseUser = systemService.get(TSBaseUser.class,t.getUserid());
  324. if(tsBaseUser != null){
  325. ucle.setUserCode(tsBaseUser.getUserName());
  326. ucle.setUserName(tsBaseUser.getRealName());
  327. }
  328. /*TSUser tSUser=ResourceUtil.getSessionUser();
  329. if(tSUser != null){
  330. ucle.setApplicant(tSUser.getRealName());
  331. }*/
  332. ucle.setChangeType(Globals.CHANGE_TYPE_ZHUANZHENG);
  333. UserWagestrategyEntity ussfEntity = this.findUniqueByProperty(UserWagestrategyEntity.class, "userid", t.getUserid());
  334. if(ussfEntity != null && StringUtils.isNotEmpty(ussfEntity.getSocialSecurityStrategyid())){
  335. SocialSecurityStrategyEntity soc = get(SocialSecurityStrategyEntity.class,ussfEntity.getSocialSecurityStrategyid());
  336. if(soc != null){
  337. ucle.setPayUnit(soc.getSocialSecurityUnit());
  338. }
  339. }
  340. /*SocialSecurityStrategyEntity soc = get(SocialSecurityStrategyEntity.class,t.getSocialSecurityStrategyid());
  341. if(soc != null){
  342. ucle.setPayUnit(soc.getSocialSecurityUnit());
  343. ucle.setPayRemindStatus(Globals.PAY_REMIND_STATUS_0);
  344. }*/
  345. //String message = "员工【"+tsBaseUser.getRealName()+"】的自动转正发生了改变!";
  346. this.save(ucle);
  347. //systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  348. }
  349. @Override
  350. public void dealMessageExpirationAlert() throws Exception {
  351. //查询合同到期的数据
  352. StringBuffer hql = new StringBuffer(" from PersonnelBaseArchivesManageEntity t where t.ifremind=? ");
  353. List<PersonnelBaseArchivesManageEntity> personnelBaseArchivesManageEntityList = findHql(hql.toString(),Globals.SHIFOU_01_1);
  354. //查询证书到期的数据
  355. hql = new StringBuffer(" from UserCertificateEntity t where t.ifremind=? and t.deleteFlag=? ");
  356. List<UserCertificateEntity> userCertificateEntityList = findHql(hql.toString(),Globals.SHIFOU_01_1,Globals.Delete_Normal.toString());
  357. //查询证书补贴表的数据
  358. hql = new StringBuffer(" from CertificateSubsidyEntity ");
  359. List<CertificateSubsidyEntity> certificateSubsidyEntityList = findHql(hql.toString());
  360. Map<String, CertificateSubsidyEntity> certificateSubsidyEntityListMap=new HashMap<String, CertificateSubsidyEntity>();
  361. for (int i = 0; i < certificateSubsidyEntityList.size(); i++) {
  362. certificateSubsidyEntityListMap.put(certificateSubsidyEntityList.get(i).getId(), certificateSubsidyEntityList.get(i));
  363. }
  364. //获取所有用户名称
  365. hql = new StringBuffer("from TSBaseUser where deleteFlag='0'");
  366. List<TSBaseUser> baseUserList = findHql(hql.toString());
  367. Map<String, TSBaseUser> baseUserMap=new HashMap<String, TSBaseUser>();
  368. for (int i = 0; i < baseUserList.size(); i++) {
  369. baseUserMap.put(baseUserList.get(i).getId(), baseUserList.get(i));
  370. }
  371. List<String> params = new ArrayList<String>();
  372. params.add("A_HRJL");
  373. params.add("A_HRFJL");
  374. params.add("A_HRZL");
  375. //数据业务人事的所有人员
  376. List<DepartDto> userIdDepartDtoList = personnelBaseArchivesManageDao.getUserIdByRole(params);
  377. ArrayList<String> userIdList=new ArrayList<String>();
  378. for(DepartDto dto : userIdDepartDtoList){
  379. userIdList.add(dto.getId());
  380. }
  381. if(userIdList.size()!=0){
  382. List<SysMsgEntity> smList = new ArrayList<SysMsgEntity>();
  383. List<SysMsgDetailEntity> smdList = new ArrayList<SysMsgDetailEntity>();
  384. //整理合同到期的信息============================
  385. for (int i = 0; i < personnelBaseArchivesManageEntityList.size(); i++) {
  386. if(DataUtil.get7DateResult(personnelBaseArchivesManageEntityList.get(i).getContractEtime())){
  387. TSBaseUser tsbUser = baseUserMap.get(personnelBaseArchivesManageEntityList.get(i).getUserid());
  388. SysMsgEntity sm = new SysMsgEntity();
  389. sm.setMsgContent(DataUtil.getCurDateString(personnelBaseArchivesManageEntityList.get(i).getContractEtime())+"-"+tsbUser.getUserName() + "-" + tsbUser.getRealName()+ "的合同到期。");
  390. sm.setMsgTitle("合同到期提醒");
  391. sm.setMsgType(Globals.msg_type_1);
  392. sm.setSendStatus(Globals.send_status_1);
  393. sm.setSendTime(new Date());
  394. sm.setCreateDate(new Date());
  395. sm.setIsPushapp(Globals.is_pushapp_0);
  396. smList.add(sm);
  397. }
  398. }
  399. batchSave(smList);
  400. if(smList.size()!=0){
  401. for(SysMsgEntity sm : smList){
  402. for(DepartDto dto : userIdDepartDtoList){
  403. SysMsgDetailEntity smd = new SysMsgDetailEntity();
  404. smd.setMsgId(sm.getId());
  405. smd.setReadStatus(Globals.read_status_0);
  406. smd.setReceivedId(dto.getId());
  407. smd.setCreateDate(new Date());
  408. smdList.add(smd);
  409. }
  410. }
  411. batchSave(smdList);
  412. pushProcessor.pushCommon(userIdList, Globals.msg_type_1);
  413. }
  414. //整理合同到期的信息============================
  415. smList = new ArrayList<SysMsgEntity>();
  416. smdList = new ArrayList<SysMsgDetailEntity>();
  417. //整理证书到期的信息============================
  418. for (int i = 0; i < userCertificateEntityList.size(); i++) {
  419. if(DataUtil.get7DateResult(userCertificateEntityList.get(i).getEffectEdate())){
  420. TSBaseUser tsbUser = baseUserMap.get(userCertificateEntityList.get(i).getUserid());
  421. SysMsgEntity sm = new SysMsgEntity();
  422. sm.setMsgContent(DataUtil.getCurDateString(userCertificateEntityList.get(i).getEffectEdate())+"-"+tsbUser.getUserName()
  423. + "-" + tsbUser.getRealName()+ "的"+certificateSubsidyEntityListMap.get(userCertificateEntityList.get(i).getCertificateid()).getCertificateName()+"证书到期。");
  424. sm.setMsgTitle("证书到期提醒");
  425. sm.setMsgType(Globals.msg_type_2);
  426. sm.setSendStatus(Globals.send_status_1);
  427. sm.setSendTime(new Date());
  428. sm.setCreateDate(new Date());
  429. sm.setIsPushapp(Globals.is_pushapp_0);
  430. smList.add(sm);
  431. }
  432. }
  433. batchSave(smList);
  434. if(smList.size()!=0){
  435. for(SysMsgEntity sm : smList){
  436. for(DepartDto dto : userIdDepartDtoList){
  437. SysMsgDetailEntity smd = new SysMsgDetailEntity();
  438. smd.setMsgId(sm.getId());
  439. smd.setReadStatus(Globals.read_status_0);
  440. smd.setReceivedId(dto.getId());
  441. smd.setCreateDate(new Date());
  442. smdList.add(smd);
  443. }
  444. }
  445. batchSave(smdList);
  446. pushProcessor.pushCommon(userIdList, Globals.msg_type_2);
  447. }
  448. //整理证书到期的信息============================
  449. }
  450. }
  451. /*@Override
  452. public void dealMessageExpirationAlert() throws Exception {
  453. //查询合同到期的数据
  454. StringBuffer hql = new StringBuffer(" from PersonnelBaseArchivesManageEntity t where t.ifremind= ? ");
  455. List<PersonnelBaseArchivesManageEntity> personnelBaseArchivesManageEntityList = findHql(hql.toString(),Globals.SHIFOU_01_1);
  456. //查询证书到期的数据
  457. hql = new StringBuffer(" from UserCertificateEntity t where t.ifremind= ? and t.deleteFlag= ? ");
  458. List<UserCertificateEntity> userCertificateEntityList = findHql(hql.toString(),Globals.SHIFOU_01_1,Globals.Delete_Normal.toString());
  459. List<SysMsgEntity> smList = new ArrayList<SysMsgEntity>();
  460. //获取所有用户名称
  461. hql = new StringBuffer("from TSBaseUser where deleteFlag='0'");
  462. List<TSBaseUser> baseUserList = findHql(hql.toString());
  463. Map<String, TSBaseUser> baseUserMap=new HashMap<String, TSBaseUser>();
  464. for (int i = 0; i < baseUserList.size(); i++) {
  465. baseUserMap.put(baseUserList.get(i).getId(), baseUserList.get(i));
  466. }
  467. //整理合同到期的信息
  468. for (int i = 0; i < personnelBaseArchivesManageEntityList.size(); i++) {
  469. if(DataUtil.get7DateResult(personnelBaseArchivesManageEntityList.get(i).getContractEtime())){
  470. TSBaseUser tsbUser = baseUserMap.get(personnelBaseArchivesManageEntityList.get(i).getUserid());
  471. SysMsgEntity sm = new SysMsgEntity();
  472. sm.setMsgContent(DataUtil.getCurDateString(personnelBaseArchivesManageEntityList.get(i).getContractEtime())+"-"+tsbUser.getUserName() + "-" + tsbUser.getRealName()+ "的合同到期。");
  473. sm.setMsgTitle("合同到期提醒");
  474. sm.setMsgType(Globals.msg_type_1);
  475. sm.setSendStatus(Globals.send_status_1);
  476. sm.setSendTime(new Date());
  477. sm.setCreateDate(new Date());
  478. sm.setIsPushapp(Globals.is_pushapp_0);
  479. smList.add(sm);
  480. }
  481. }
  482. //整理证书到期的信息
  483. for (int i = 0; i < userCertificateEntityList.size(); i++) {
  484. if(DataUtil.get7DateResult(userCertificateEntityList.get(i).getEffectEdate())){
  485. TSBaseUser tsbUser = baseUserMap.get(userCertificateEntityList.get(i).getUserid());
  486. SysMsgEntity sm = new SysMsgEntity();
  487. sm.setMsgContent(DataUtil.getCurDateString(userCertificateEntityList.get(i).getEffectEdate())+"-"+tsbUser.getUserName() + "-" + tsbUser.getRealName()+ "的证件到期。");
  488. sm.setMsgTitle("证件到期提醒");
  489. sm.setMsgType(Globals.msg_type_2);
  490. sm.setSendStatus(Globals.send_status_1);
  491. sm.setSendTime(new Date());
  492. sm.setCreateDate(new Date());
  493. sm.setIsPushapp(Globals.is_pushapp_0);
  494. smList.add(sm);
  495. }
  496. }
  497. hql = new StringBuffer("from SysMsgEntity WHERE create_date LIKE '%"+DataUtil.getCurDateString(new Date())+"%' and (msg_type = "+Globals.msg_type_1+" or msg_type = "+Globals.msg_type_2+")");
  498. List<SysMsgEntity> oldsmList = findHql(hql.toString());
  499. deleteAllEntitie(oldsmList);
  500. batchSave(smList);
  501. List<String> params = new ArrayList<String>();
  502. params.add("A_HRJL");
  503. params.add("A_HRFJL");
  504. params.add("A_HRZL");
  505. //数据业务人事的所有人员
  506. List<DepartDto> userIdList = personnelBaseArchivesManageDao.getUserIdByRole(params);
  507. List<SysMsgDetailEntity> smdList = new ArrayList<SysMsgDetailEntity>();
  508. //查询刚保存的消息
  509. hql = new StringBuffer("from SysMsgEntity WHERE create_date LIKE '%"+DataUtil.getCurDateString(new Date())+"%' and (msg_type = "+Globals.msg_type_1+" or msg_type = "+Globals.msg_type_2+")");
  510. List<SysMsgEntity> smLists = findHql(hql.toString());
  511. //整理需要发送的消息
  512. for(DepartDto dto : userIdList){
  513. for(SysMsgEntity sm : smLists){
  514. SysMsgDetailEntity smd = new SysMsgDetailEntity();
  515. smd.setMsgId(sm.getId());
  516. smd.setReadStatus(Globals.read_status_0);
  517. smd.setReceivedId(dto.getId());
  518. smd.setCreateDate(new Date());
  519. smdList.add(smd);
  520. }
  521. }
  522. hql = new StringBuffer("from SysMsgDetailEntity WHERE create_date LIKE '%"+DataUtil.getCurDateString(new Date())+"%' ");
  523. List<SysMsgEntity> oldsmdList = findHql(hql.toString());
  524. deleteAllEntitie(oldsmdList);
  525. batchSave(smdList);
  526. }*/
  527. @Override
  528. public List<AccessoryEntity> dealAccessoryIsFixedDefault(String userId) throws Exception {
  529. // String message = "";
  530. // AjaxJson j = new AjaxJson();
  531. List<DictEntity> accessoryIsFixedList=systemService.queryDict(null, "isfixed_accessory_name", null);
  532. List<AccessoryEntity> accessoryEntityIsFixedList=new ArrayList<AccessoryEntity>();
  533. StringBuffer hql = new StringBuffer(" from AccessoryEntity where userid=? ");
  534. accessoryEntityIsFixedList = this.findHql(hql.toString(),userId);
  535. List<String> accessoryNameList=new ArrayList<String>();
  536. for (int i = 0; i < accessoryEntityIsFixedList.size(); i++) {
  537. accessoryNameList.add(accessoryEntityIsFixedList.get(i).getAccessoryName());
  538. }
  539. List<AccessoryEntity> accessoryEntityIsFixedSaveList=new ArrayList<AccessoryEntity>();
  540. for (int i = 0; i < accessoryIsFixedList.size(); i++) {
  541. AccessoryEntity accessory=new AccessoryEntity();
  542. String gatetTypeUuid = UUID.randomUUID().toString(); //获取UUID并转化为String对象
  543. gatetTypeUuid = gatetTypeUuid.replace("-", "");
  544. accessory.setGatetType("A" + gatetTypeUuid);
  545. accessory.setIsfixed(Globals.isfixed_accessory_1);
  546. accessory.setDeleteFlag(Globals.Delete_Normal.toString());
  547. accessory.setUserid(userId);
  548. accessory.setAccessoryName(accessoryIsFixedList.get(i).getTypename());
  549. accessory.setGatetType(accessoryIsFixedList.get(i).getTypecode());
  550. if(!accessoryNameList.contains(accessoryIsFixedList.get(i).getTypename())){
  551. accessoryEntityIsFixedSaveList.add(accessory);
  552. }
  553. }
  554. if(accessoryEntityIsFixedSaveList.size()!=0){
  555. this.batchSave(accessoryEntityIsFixedSaveList);
  556. }
  557. /*if(accessoryEntityIsFixedList.size()==0){
  558. for (int i = 0; i < accessoryIsFixedList.size(); i++) {
  559. AccessoryEntity accessory=new AccessoryEntity();
  560. String gatetTypeUuid = UUID.randomUUID().toString(); //获取UUID并转化为String对象
  561. gatetTypeUuid = gatetTypeUuid.replace("-", "");
  562. accessory.setGatetType("A" + gatetTypeUuid);
  563. accessory.setIsfixed(Globals.isfixed_accessory_1);
  564. accessory.setDeleteFlag(Globals.Delete_Normal.toString());
  565. accessory.setUserid(userId);
  566. accessory.setAccessoryName(accessoryIsFixedList.get(i).getTypename());
  567. accessory.setGatetType(accessoryIsFixedList.get(i).getTypecode());
  568. accessoryEntityIsFixedList.add(accessory);
  569. }
  570. if(accessoryEntityIsFixedList.size()!=0){
  571. this.batchSave(accessoryEntityIsFixedList);
  572. }
  573. }*/
  574. return accessoryEntityIsFixedSaveList;
  575. }
  576. @Override
  577. public void dealCertificateMessageExpirationAlert() throws Exception {
  578. //查询证书补贴表的数据
  579. StringBuffer hql = new StringBuffer(" from CertificateSubsidyEntity ");
  580. List<CertificateSubsidyEntity> certificateSubsidyEntityList = findHql(hql.toString());
  581. Map<String, CertificateSubsidyEntity> certificateSubsidyEntityListMap=new HashMap<String, CertificateSubsidyEntity>();
  582. for (int i = 0; i < certificateSubsidyEntityList.size(); i++) {
  583. certificateSubsidyEntityListMap.put(certificateSubsidyEntityList.get(i).getId(), certificateSubsidyEntityList.get(i));
  584. }
  585. //查询证书到期的数据
  586. hql = new StringBuffer(" from UserCertificateEntity t where t.ifremind=? and t.deleteFlag=? ");
  587. List<UserCertificateEntity> userCertificateEntityList = findHql(hql.toString(),Globals.SHIFOU_01_1,Globals.Delete_Normal.toString());
  588. //获取所有用户名称
  589. hql = new StringBuffer("from TSBaseUser where deleteFlag='0'");
  590. List<TSBaseUser> baseUserList = findHql(hql.toString());
  591. Map<String, TSBaseUser> baseUserMap=new HashMap<String, TSBaseUser>();
  592. for (int i = 0; i < baseUserList.size(); i++) {
  593. baseUserMap.put(baseUserList.get(i).getId(), baseUserList.get(i));
  594. }
  595. List<String> params = new ArrayList<String>();
  596. params.add("A_HRJL");
  597. params.add("A_HRFJL");
  598. params.add("A_HRZL");
  599. //数据业务人事的所有人员
  600. List<DepartDto> userIdDepartDtoList = personnelBaseArchivesManageDao.getUserIdByRole(params);
  601. ArrayList<String> userIdList=new ArrayList<String>();
  602. for(DepartDto dto : userIdDepartDtoList){
  603. userIdList.add(dto.getId());
  604. }
  605. if(userIdList.size()!=0){
  606. List<SysMsgEntity> smList = new ArrayList<SysMsgEntity>();
  607. List<SysMsgDetailEntity> smdList = new ArrayList<SysMsgDetailEntity>();
  608. //整理证书到期的信息============================
  609. for (int i = 0; i < userCertificateEntityList.size(); i++) {
  610. if(DataUtil.get7DateResult(userCertificateEntityList.get(i).getEffectEdate())){
  611. TSBaseUser tsbUser = baseUserMap.get(userCertificateEntityList.get(i).getUserid());
  612. SysMsgEntity sm = new SysMsgEntity();
  613. String certificateName=certificateSubsidyEntityListMap.get(userCertificateEntityList.get(i).getCertificateid()).getCertificateName();
  614. certificateName=certificateName.indexOf("证书")!=-1?certificateName.substring(0, certificateName.indexOf("证书")):certificateName;
  615. sm.setMsgContent(DataUtil.getCurDateString(userCertificateEntityList.get(i).getEffectEdate())+"-"+tsbUser.getUserName()
  616. + "-" + tsbUser.getRealName()+ "的"+certificateName
  617. +"证书到期。");
  618. sm.setMsgTitle("证书到期提醒");
  619. sm.setMsgType(Globals.msg_type_2);
  620. sm.setSendStatus(Globals.send_status_1);
  621. sm.setSendTime(new Date());
  622. sm.setCreateDate(new Date());
  623. sm.setIsPushapp(Globals.is_pushapp_0);
  624. smList.add(sm);
  625. }
  626. }
  627. batchSave(smList);
  628. if(smList.size()!=0){
  629. for(SysMsgEntity sm : smList){
  630. for(DepartDto dto : userIdDepartDtoList){
  631. SysMsgDetailEntity smd = new SysMsgDetailEntity();
  632. smd.setMsgId(sm.getId());
  633. smd.setReadStatus(Globals.read_status_0);
  634. smd.setReceivedId(dto.getId());
  635. smd.setCreateDate(new Date());
  636. smdList.add(smd);
  637. }
  638. }
  639. batchSave(smdList);
  640. pushProcessor.pushCommon(userIdList, Globals.msg_type_2);
  641. }
  642. //整理证书到期的信息============================
  643. }
  644. }
  645. @Override
  646. public void dealContractMessageExpirationAlert() throws Exception {
  647. //查询合同到期的数据
  648. StringBuffer hql = new StringBuffer(" from PersonnelBaseArchivesManageEntity t where t.ifremind=? ");
  649. List<PersonnelBaseArchivesManageEntity> personnelBaseArchivesManageEntityList = findHql(hql.toString(),Globals.SHIFOU_01_1);
  650. //获取所有用户名称
  651. hql = new StringBuffer("from TSBaseUser where deleteFlag='0'");
  652. List<TSBaseUser> baseUserList = findHql(hql.toString());
  653. Map<String, TSBaseUser> baseUserMap=new HashMap<String, TSBaseUser>();
  654. for (int i = 0; i < baseUserList.size(); i++) {
  655. baseUserMap.put(baseUserList.get(i).getId(), baseUserList.get(i));
  656. }
  657. List<String> params = new ArrayList<String>();
  658. params.add("A_HRJL");
  659. params.add("A_HRFJL");
  660. params.add("A_HRZL");
  661. //数据业务人事的所有人员
  662. List<DepartDto> userIdDepartDtoList = personnelBaseArchivesManageDao.getUserIdByRole(params);
  663. ArrayList<String> userIdList=new ArrayList<String>();
  664. for(DepartDto dto : userIdDepartDtoList){
  665. userIdList.add(dto.getId());
  666. }
  667. if(userIdList.size()!=0){
  668. List<SysMsgEntity> smList = new ArrayList<SysMsgEntity>();
  669. List<SysMsgDetailEntity> smdList = new ArrayList<SysMsgDetailEntity>();
  670. //整理合同到期的信息============================
  671. for (int i = 0; i < personnelBaseArchivesManageEntityList.size(); i++) {
  672. if(DataUtil.get7DateResult(personnelBaseArchivesManageEntityList.get(i).getContractEtime())){
  673. TSBaseUser tsbUser = baseUserMap.get(personnelBaseArchivesManageEntityList.get(i).getUserid());
  674. SysMsgEntity sm = new SysMsgEntity();
  675. sm.setMsgContent(DataUtil.getCurDateString(personnelBaseArchivesManageEntityList.get(i).getContractEtime())+"-"+tsbUser.getUserName() + "-" + tsbUser.getRealName()+ "的合同到期。");
  676. sm.setMsgTitle("合同到期提醒");
  677. sm.setMsgType(Globals.msg_type_1);
  678. sm.setSendStatus(Globals.send_status_1);
  679. sm.setSendTime(new Date());
  680. sm.setCreateDate(new Date());
  681. sm.setIsPushapp(Globals.is_pushapp_0);
  682. smList.add(sm);
  683. }
  684. }
  685. batchSave(smList);
  686. if(smList.size()!=0){
  687. for(SysMsgEntity sm : smList){
  688. for(DepartDto dto : userIdDepartDtoList){
  689. SysMsgDetailEntity smd = new SysMsgDetailEntity();
  690. smd.setMsgId(sm.getId());
  691. smd.setReadStatus(Globals.read_status_0);
  692. smd.setReceivedId(dto.getId());
  693. smd.setCreateDate(new Date());
  694. smdList.add(smd);
  695. }
  696. }
  697. batchSave(smdList);
  698. pushProcessor.pushCommon(userIdList, Globals.msg_type_1);
  699. }
  700. //整理合同到期的信息============================
  701. }
  702. }
  703. }