SysMsgServiceImpl.java 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789
  1. package cn.com.lzt.sysmsg.service.impl;
  2. import java.io.Serializable;
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.UUID;
  9. import javax.validation.Validator;
  10. import cn.com.lzt.sysmsgdetail.service.SysMsgDetailServiceI;
  11. import org.apache.log4j.Logger;
  12. import org.jeecgframework.core.common.exception.BusinessException;
  13. import org.jeecgframework.core.common.model.json.AjaxJson;
  14. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  15. import org.jeecgframework.core.constant.Globals;
  16. import org.jeecgframework.core.util.ApplicationContextUtil;
  17. import org.jeecgframework.core.util.JeecgDataAutorUtils;
  18. import org.jeecgframework.core.util.MyBeanUtils;
  19. import org.jeecgframework.core.util.MyClassLoader;
  20. import org.jeecgframework.core.util.ResourceUtil;
  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.TSUser;
  25. import org.jeecgframework.web.system.service.SystemService;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.stereotype.Service;
  28. import org.springframework.transaction.annotation.Transactional;
  29. import cn.com.lzt.arrangedutyoperate.dto.UserAndUserPersonnelDto;
  30. import cn.com.lzt.arrangedutyoperate.service.ArrangeDutyOperateServiceI;
  31. import cn.com.lzt.common.push.JPushProcessor;
  32. import cn.com.lzt.common.push.PushMsgContentProcess;
  33. import cn.com.lzt.common.push.PushReq;
  34. import cn.com.lzt.dialogDeal.service.UserDepartOrgDealServiceI;
  35. import cn.com.lzt.projarrangedetail.projectarrangecommonmethod.ProjectArrangeCommonMethod;
  36. import cn.com.lzt.sysmsg.controller.SysMsgController;
  37. import cn.com.lzt.sysmsg.dao.SysMsgMinidao;
  38. import cn.com.lzt.sysmsg.dto.SysMsgDto;
  39. import cn.com.lzt.sysmsg.entity.SysMsgEntity;
  40. import cn.com.lzt.sysmsg.service.SysMsgServiceI;
  41. import cn.com.lzt.sysmsgdetail.entity.SysMsgDetailEntity;
  42. @Service("sysMsgService")
  43. @Transactional
  44. public class SysMsgServiceImpl extends CommonServiceImpl implements SysMsgServiceI {
  45. /**
  46. * Logger for this class
  47. */
  48. private static final Logger logger = Logger.getLogger(SysMsgController.class);
  49. @Autowired
  50. private SystemService systemService;
  51. @Autowired
  52. private Validator validator;
  53. @Autowired
  54. ArrangeDutyOperateServiceI arrangeDutyOperateServiceI;
  55. @Autowired
  56. UserDepartOrgDealServiceI userDepartOrgDealServiceI;
  57. @Autowired
  58. SysMsgMinidao sysMsgMinidao;
  59. @Autowired
  60. private JPushProcessor pushProcessor;
  61. @Autowired
  62. private SysMsgDetailServiceI sysMsgDetailService;
  63. /**
  64. * 添加系统消息
  65. * @author 刘梦祥
  66. * @date 2022年8月5日14:40:36
  67. * @param msgTitle 标题
  68. * @param msgContent 内容
  69. * @param sendId 发送人userid
  70. * @param receivedId 接收人userid
  71. */
  72. public void saveSysMsg(String msgTitle,String msgContent,String sendId,String receivedId) throws Exception {
  73. SysMsgEntity sysMsg = new SysMsgEntity();
  74. String msgId = UUID.randomUUID().toString().replaceAll("-", "");
  75. sysMsg.setId(msgId);
  76. sysMsg.setMsgTitle(msgTitle);
  77. sysMsg.setMsgContent(msgContent);
  78. sysMsg.setSendId(sendId);
  79. sysMsg.setSendStatus("1");
  80. sysMsg.setCreateDate(new Date());
  81. sysMsg.setSendTime(new Date());
  82. sysMsg.setIsPushapp("0");
  83. sysMsg.setReceivedRange("1");
  84. sysMsg.setBusid("1");
  85. sysMsg.setMsgType("1");
  86. save(sysMsg);
  87. SysMsgDetailEntity sysMsgDetail = new SysMsgDetailEntity();
  88. sysMsgDetail.setId(UUID.randomUUID().toString().replaceAll("-", ""));
  89. sysMsgDetail.setMsgId(sysMsg.getId());
  90. sysMsgDetail.setReceivedId(receivedId);
  91. sysMsgDetail.setReadStatus("0");
  92. sysMsgDetail.setCreateDate(new Date());
  93. sysMsgDetailService.save(sysMsgDetail);
  94. }
  95. /**
  96. * 根据接收人科室添加系统消息
  97. * @author 刘梦祥
  98. * @date 2022年8月5日14:40:36
  99. * @param msgTitle 标题
  100. * @param msgContent 内容
  101. * @param sendId 发送人userid
  102. * @param receivedId 接收人userid
  103. */
  104. public void saveSysMsgToDepart(String msgTitle,String msgContent,String sendId,String receivedId) throws Exception {
  105. SysMsgEntity sysMsg = new SysMsgEntity();
  106. String msgId = UUID.randomUUID().toString().replaceAll("-", "");
  107. sysMsg.setId(msgId);
  108. sysMsg.setMsgTitle(msgTitle);
  109. sysMsg.setMsgContent(msgContent);
  110. sysMsg.setSendId(sendId);
  111. sysMsg.setSendStatus("1");
  112. sysMsg.setCreateDate(new Date());
  113. sysMsg.setSendTime(new Date());
  114. sysMsg.setIsPushapp("0");
  115. sysMsg.setReceivedRange("1");
  116. sysMsg.setBusid("1");
  117. sysMsg.setMsgType("1");
  118. save(sysMsg);
  119. SysMsgDetailEntity sysMsgDetail = new SysMsgDetailEntity();
  120. sysMsgDetail.setId(UUID.randomUUID().toString().replaceAll("-", ""));
  121. sysMsgDetail.setMsgId(sysMsg.getId());
  122. // 根据接收人userid得到科室信息(发送消息给对应科室科长)
  123. String querySql = "SELECT\n" +
  124. "\ttsuo.org_id orgId\n" +
  125. "FROM\n" +
  126. "\tt_s_user tsu\n" +
  127. "LEFT JOIN t_s_user_org tsuo ON tsuo.user_id = tsu.id\n" +
  128. "LEFT JOIN t_bus_user_personnel tbup ON tbup.userid = tsu.id\n" +
  129. "LEFT JOIN t_s_depart tsd ON tsd.id = tsuo.org_id\n" +
  130. "LEFT JOIN t_bus_post tbp ON tbp.id = tbup.in_postid where tsu.id = '"+receivedId+"';";
  131. Map<String,Object> departMap = this.systemService.findOneForJdbc(querySql);
  132. if(departMap != null && departMap.containsKey("orgId")){
  133. String departStr = "{\"departId\":\""+departMap.get("orgId").toString()+"\",\"inPostid\":\"ff8080817b760b5d017b8057b15901c6\"}";
  134. sysMsgDetail.setReceivedId(departStr);
  135. }
  136. sysMsgDetail.setReadStatus("0");
  137. sysMsgDetail.setCreateDate(new Date());
  138. sysMsgDetailService.save(sysMsgDetail);
  139. }
  140. public void delete(SysMsgEntity entity) throws Exception{
  141. super.delete(entity);
  142. //执行删除操作增强业务
  143. this.doDelBus(entity);
  144. }
  145. public Serializable save(SysMsgEntity entity) throws Exception{
  146. Serializable t = super.save(entity);
  147. //执行新增操作增强业务
  148. this.doAddBus(entity);
  149. return t;
  150. }
  151. public void saveOrUpdate(SysMsgEntity entity) throws Exception{
  152. super.saveOrUpdate(entity);
  153. //执行更新操作增强业务
  154. this.doUpdateBus(entity);
  155. }
  156. /**
  157. * 新增操作增强业务
  158. * @param t
  159. * @return
  160. */
  161. private void doAddBus(SysMsgEntity t) throws Exception{
  162. //-----------------sql增强 start----------------------------
  163. //-----------------sql增强 end------------------------------
  164. //-----------------java增强 start---------------------------
  165. //-----------------java增强 end-----------------------------
  166. }
  167. /**
  168. * 更新操作增强业务
  169. * @param t
  170. * @return
  171. */
  172. private void doUpdateBus(SysMsgEntity t) throws Exception{
  173. //-----------------sql增强 start----------------------------
  174. //-----------------sql增强 end------------------------------
  175. //-----------------java增强 start---------------------------
  176. //-----------------java增强 end-----------------------------
  177. }
  178. /**
  179. * 删除操作增强业务
  180. * @return
  181. */
  182. private void doDelBus(SysMsgEntity t) throws Exception{
  183. //-----------------sql增强 start----------------------------
  184. //-----------------sql增强 end------------------------------
  185. //-----------------java增强 start---------------------------
  186. //-----------------java增强 end-----------------------------
  187. }
  188. private Map<String,Object> populationMap(SysMsgEntity t){
  189. Map<String,Object> map = new HashMap<String,Object>();
  190. map.put("id", t.getId());
  191. map.put("msg_type", t.getMsgType());
  192. map.put("msg_title", t.getMsgTitle());
  193. map.put("msg_content", t.getMsgContent());
  194. map.put("send_id", t.getSendId());
  195. map.put("send_status", t.getSendStatus());
  196. map.put("create_date", t.getCreateDate());
  197. map.put("send_time", t.getSendTime());
  198. map.put("is_pushapp", t.getIsPushapp());
  199. map.put("received_range", t.getReceivedRange());
  200. map.put("busid", t.getBusid());
  201. return map;
  202. }
  203. /**
  204. * 替换sql中的变量
  205. * @param sql
  206. * @param t
  207. * @return
  208. */
  209. public String replaceVal(String sql,SysMsgEntity t){
  210. sql = sql.replace("#{id}",String.valueOf(t.getId()));
  211. sql = sql.replace("#{msg_type}",String.valueOf(t.getMsgType()));
  212. sql = sql.replace("#{msg_title}",String.valueOf(t.getMsgTitle()));
  213. sql = sql.replace("#{msg_content}",String.valueOf(t.getMsgContent()));
  214. sql = sql.replace("#{send_id}",String.valueOf(t.getSendId()));
  215. sql = sql.replace("#{send_status}",String.valueOf(t.getSendStatus()));
  216. sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
  217. sql = sql.replace("#{send_time}",String.valueOf(t.getSendTime()));
  218. sql = sql.replace("#{is_pushapp}",String.valueOf(t.getIsPushapp()));
  219. sql = sql.replace("#{received_range}",String.valueOf(t.getReceivedRange()));
  220. sql = sql.replace("#{busid}",String.valueOf(t.getBusid()));
  221. sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
  222. return sql;
  223. }
  224. /**
  225. * 执行JAVA增强
  226. */
  227. private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map<String,Object> data) throws Exception {
  228. if(StringUtil.isNotEmpty(cgJavaValue)){
  229. Object obj = null;
  230. try {
  231. if("class".equals(cgJavaType)){
  232. //因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断
  233. obj = MyClassLoader.getClassByScn(cgJavaValue).newInstance();
  234. }else if("spring".equals(cgJavaType)){
  235. obj = ApplicationContextUtil.getContext().getBean(cgJavaValue);
  236. }
  237. if(obj instanceof CgformEnhanceJavaInter){
  238. CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj;
  239. javaInter.execute("t_bus_sys_msg",data);
  240. }
  241. } catch (Exception e) {
  242. e.printStackTrace();
  243. throw new Exception("执行JAVA增强出现异常!");
  244. }
  245. }
  246. }
  247. @Override
  248. public AjaxJson saveSysMsg(SysMsgEntity sysMsg) throws Exception {
  249. String message = null;
  250. AjaxJson j = new AjaxJson();
  251. message = "";
  252. if (StringUtil.isNotEmpty(sysMsg.getId())) {
  253. SysMsgEntity t = get(SysMsgEntity.class, sysMsg.getId());
  254. if(t!=null){
  255. try {
  256. MyBeanUtils.copyBeanNotNull2Bean(sysMsg, t);
  257. saveOrUpdate(t);
  258. List<SysMsgDetailEntity> sysMsgDetailEntityList =findByProperty(SysMsgDetailEntity.class,"msgId",t.getId());
  259. String sysMsgDetailIds="";
  260. Date date=sysMsgDetailEntityList.get(0).getCreateDate();
  261. for (int i = 0; i < sysMsgDetailEntityList.size(); i++) {
  262. if(sysMsgDetailIds.length()!=0){
  263. sysMsgDetailIds+=","+sysMsgDetailEntityList.get(i).getId();
  264. }else{
  265. sysMsgDetailIds=sysMsgDetailEntityList.get(i).getId();
  266. }
  267. }
  268. //批量删除系统消息详细
  269. doBatchDelSysMsgDetail(sysMsgDetailIds);
  270. //批量保存系统消息详细表数据
  271. sysMsgDetailEntityList=new ArrayList<SysMsgDetailEntity>();
  272. if(sysMsg.getReceivedRange().equals(Globals.received_range_0)){
  273. UserAndUserPersonnelDto userAndUserPersonnelDto=new UserAndUserPersonnelDto();
  274. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  275. List<UserAndUserPersonnelDto> personnelAndUserList=arrangeDutyOperateServiceI.getPersonnelAndUser(userAndUserPersonnelDto, authSql);
  276. for (int i = 0; i < personnelAndUserList.size(); i++) {
  277. SysMsgDetailEntity sysMsgDetail=new SysMsgDetailEntity();
  278. sysMsgDetail.setMsgId(sysMsg.getId());
  279. sysMsgDetail.setReadStatus(Globals.read_status_0);
  280. sysMsgDetail.setReceivedId(personnelAndUserList.get(i).getUserid());
  281. sysMsgDetail.setCreateDate(date);
  282. sysMsgDetailEntityList.add(sysMsgDetail);
  283. }
  284. //批量保存
  285. batchSave(sysMsgDetailEntityList);
  286. }else if(sysMsg.getReceivedRange().equals(Globals.received_range_1)){
  287. List<String> orgIdList=ProjectArrangeCommonMethod.extractIdListByComma(sysMsg.getBusid());
  288. for (int i = 0; i < orgIdList.size(); i++) {
  289. //根据项目pid获取所有的userid;--
  290. //根据项目id查询所有子节点id
  291. List<String> userIdList=getUserIdListByOrgId(orgIdList.get(i));
  292. for (int k = 0; k < userIdList.size(); k++) {
  293. SysMsgDetailEntity sysMsgDetail=new SysMsgDetailEntity();
  294. sysMsgDetail.setMsgId(sysMsg.getId());
  295. sysMsgDetail.setReadStatus(Globals.read_status_0);
  296. sysMsgDetail.setReceivedId(userIdList.get(k));
  297. sysMsgDetail.setCreateDate(date);
  298. sysMsgDetailEntityList.add(sysMsgDetail);
  299. }
  300. //批量保存
  301. batchSave(sysMsgDetailEntityList);
  302. }
  303. }else if(sysMsg.getReceivedRange().equals(Globals.received_range_2)){
  304. List<String> userIdList=ProjectArrangeCommonMethod.extractIdListByComma(sysMsg.getBusid());
  305. for (int i = 0; i < userIdList.size(); i++) {
  306. SysMsgDetailEntity sysMsgDetail=new SysMsgDetailEntity();
  307. sysMsgDetail.setMsgId(sysMsg.getId());
  308. sysMsgDetail.setReadStatus(Globals.read_status_0);
  309. sysMsgDetail.setReceivedId(userIdList.get(i));
  310. sysMsgDetail.setCreateDate(date);
  311. sysMsgDetailEntityList.add(sysMsgDetail);
  312. }
  313. //批量保存
  314. batchSave(sysMsgDetailEntityList);
  315. }
  316. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  317. message = "系统消息更新成功";
  318. } catch (Exception e) {
  319. e.printStackTrace();
  320. message = "系统消息更新失败";
  321. j.setSuccess(false);
  322. }
  323. }else{
  324. try{
  325. sysMsg.setSendStatus(Globals.send_status_0);
  326. sysMsg.setMsgType(Globals.msg_type_0);
  327. sysMsg.setIsPushapp(Globals.is_pushapp_0);
  328. save(sysMsg);
  329. //保存系统消息详细表数据
  330. List<SysMsgDetailEntity> sysMsgDetailEntityList=new ArrayList<SysMsgDetailEntity>();
  331. if(sysMsg.getReceivedRange().equals(Globals.received_range_0)){
  332. UserAndUserPersonnelDto userAndUserPersonnelDto=new UserAndUserPersonnelDto();
  333. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  334. List<UserAndUserPersonnelDto> personnelAndUserList=arrangeDutyOperateServiceI.getPersonnelAndUser(userAndUserPersonnelDto, authSql);
  335. for (int i = 0; i < personnelAndUserList.size(); i++) {
  336. SysMsgDetailEntity sysMsgDetail=new SysMsgDetailEntity();
  337. sysMsgDetail.setMsgId(sysMsg.getId());
  338. sysMsgDetail.setReadStatus(Globals.read_status_0);
  339. sysMsgDetail.setReceivedId(personnelAndUserList.get(i).getUserid());
  340. sysMsgDetailEntityList.add(sysMsgDetail);
  341. }
  342. //批量保存
  343. batchSave(sysMsgDetailEntityList);
  344. }else if(sysMsg.getReceivedRange().equals(Globals.received_range_1)){
  345. List<String> orgIdList=ProjectArrangeCommonMethod.extractIdListByComma(sysMsg.getBusid());
  346. for (int i = 0; i < orgIdList.size(); i++) {
  347. //根据项目pid获取所有的userid;--
  348. //根据项目id查询所有子节点id
  349. List<String> userIdList=getUserIdListByOrgId(orgIdList.get(i));
  350. for (int k = 0; k < userIdList.size(); k++) {
  351. SysMsgDetailEntity sysMsgDetail=new SysMsgDetailEntity();
  352. sysMsgDetail.setMsgId(sysMsg.getId());
  353. sysMsgDetail.setReadStatus(Globals.read_status_0);
  354. sysMsgDetail.setReceivedId(userIdList.get(k));
  355. sysMsgDetailEntityList.add(sysMsgDetail);
  356. }
  357. //批量保存
  358. batchSave(sysMsgDetailEntityList);
  359. }
  360. }else if(sysMsg.getReceivedRange().equals(Globals.received_range_2)){
  361. List<String> userIdList=ProjectArrangeCommonMethod.extractIdListByComma(sysMsg.getBusid());
  362. for (int i = 0; i < userIdList.size(); i++) {
  363. SysMsgDetailEntity sysMsgDetail=new SysMsgDetailEntity();
  364. sysMsgDetail.setMsgId(sysMsg.getId());
  365. sysMsgDetail.setReadStatus(Globals.read_status_0);
  366. sysMsgDetail.setReceivedId(userIdList.get(i));
  367. sysMsgDetailEntityList.add(sysMsgDetail);
  368. }
  369. //批量保存
  370. batchSave(sysMsgDetailEntityList);
  371. }
  372. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  373. message = "系统消息添加成功";
  374. }catch(Exception e){
  375. e.printStackTrace();
  376. message = "系统消息添加失败";
  377. j.setSuccess(false);
  378. }
  379. }
  380. } else {
  381. try{
  382. sysMsg.setMsgType(Globals.msg_type_0);
  383. sysMsg.setSendStatus(Globals.send_status_0);
  384. sysMsg.setIsPushapp(Globals.is_pushapp_0);
  385. save(sysMsg);
  386. //保存系统消息详细表数据
  387. List<SysMsgDetailEntity> sysMsgDetailEntityList=new ArrayList<SysMsgDetailEntity>();
  388. if(sysMsg.getReceivedRange().equals(Globals.received_range_0)){
  389. UserAndUserPersonnelDto userAndUserPersonnelDto=new UserAndUserPersonnelDto();
  390. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  391. List<UserAndUserPersonnelDto> personnelAndUserList=arrangeDutyOperateServiceI.getPersonnelAndUser(userAndUserPersonnelDto, authSql);
  392. for (int i = 0; i < personnelAndUserList.size(); i++) {
  393. SysMsgDetailEntity sysMsgDetail=new SysMsgDetailEntity();
  394. sysMsgDetail.setMsgId(sysMsg.getId());
  395. sysMsgDetail.setReadStatus(Globals.read_status_0);
  396. sysMsgDetail.setReceivedId(personnelAndUserList.get(i).getUserid());
  397. sysMsgDetailEntityList.add(sysMsgDetail);
  398. }
  399. //批量保存
  400. batchSave(sysMsgDetailEntityList);
  401. }else if(sysMsg.getReceivedRange().equals(Globals.received_range_1)){
  402. List<String> orgIdList=ProjectArrangeCommonMethod.extractIdListByComma(sysMsg.getBusid());
  403. for (int i = 0; i < orgIdList.size(); i++) {
  404. //根据项目pid获取所有的userid;--
  405. //根据项目id查询所有子节点id
  406. List<String> userIdList=getUserIdListByOrgId(orgIdList.get(i));
  407. for (int k = 0; k < userIdList.size(); k++) {
  408. SysMsgDetailEntity sysMsgDetail=new SysMsgDetailEntity();
  409. sysMsgDetail.setMsgId(sysMsg.getId());
  410. sysMsgDetail.setReadStatus(Globals.read_status_0);
  411. sysMsgDetail.setReceivedId(userIdList.get(k));
  412. sysMsgDetailEntityList.add(sysMsgDetail);
  413. }
  414. //批量保存
  415. batchSave(sysMsgDetailEntityList);
  416. }
  417. }else if(sysMsg.getReceivedRange().equals(Globals.received_range_2)){
  418. List<String> userIdList=ProjectArrangeCommonMethod.extractIdListByComma(sysMsg.getBusid());
  419. for (int i = 0; i < userIdList.size(); i++) {
  420. SysMsgDetailEntity sysMsgDetail=new SysMsgDetailEntity();
  421. sysMsgDetail.setMsgId(sysMsg.getId());
  422. sysMsgDetail.setReadStatus(Globals.read_status_0);
  423. sysMsgDetail.setReceivedId(userIdList.get(i));
  424. sysMsgDetailEntityList.add(sysMsgDetail);
  425. }
  426. //批量保存
  427. batchSave(sysMsgDetailEntityList);
  428. }
  429. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  430. message = "系统消息添加成功";
  431. }catch(Exception e){
  432. e.printStackTrace();
  433. message = "系统消息添加失败";
  434. j.setSuccess(false);
  435. }
  436. }
  437. j.setMsg(message);
  438. return j;
  439. }
  440. @Override
  441. public AjaxJson saveSysMsgDetail(SysMsgDetailEntity sysMsgDetail)
  442. throws Exception {
  443. String message = null;
  444. AjaxJson j = new AjaxJson();
  445. message = "";
  446. if (StringUtil.isNotEmpty(sysMsgDetail.getId())) {
  447. SysMsgDetailEntity t = get(SysMsgDetailEntity.class, sysMsgDetail.getId());
  448. if(t!=null){
  449. try {
  450. MyBeanUtils.copyBeanNotNull2Bean(sysMsgDetail, t);
  451. saveOrUpdate(t);
  452. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  453. message = "系统消息详细更新成功";
  454. } catch (Exception e) {
  455. e.printStackTrace();
  456. message = "系统消息详细更新失败";
  457. j.setSuccess(false);
  458. }
  459. }else{
  460. try{
  461. save(sysMsgDetail);
  462. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  463. message = "系统消息详细添加成功";
  464. }catch(Exception e){
  465. e.printStackTrace();
  466. message = "系统消息详细添加失败";
  467. j.setSuccess(false);
  468. }
  469. }
  470. } else {
  471. try{
  472. save(sysMsgDetail);
  473. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  474. message = "系统消息详细添加成功";
  475. }catch(Exception e){
  476. e.printStackTrace();
  477. message = "系统消息详细添加失败";
  478. throw new BusinessException(e.getMessage());
  479. }
  480. }
  481. j.setMsg(message);
  482. return j;
  483. }
  484. @Override
  485. public List<String> getUserIdListByOrgId(String orgId){
  486. //根据项目pid获取所有的userid;--
  487. //根据项目id查询所有子节点id
  488. List<String> ChildIdList=userDepartOrgDealServiceI.getChildIdByProjectDepartId(orgId);
  489. UserAndUserPersonnelDto userAndUserPersonnelDto=new UserAndUserPersonnelDto();
  490. userAndUserPersonnelDto.setChildDepartIdList(ChildIdList);
  491. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  492. List<UserAndUserPersonnelDto> listUserAndUserPersonnelDto = arrangeDutyOperateServiceI.getUserAndUserPersonnelNoPage(userAndUserPersonnelDto,authSql);
  493. List<String> userIdList=new ArrayList<String>();
  494. for (int i = 0; i < listUserAndUserPersonnelDto.size(); i++) {
  495. userIdList.add(listUserAndUserPersonnelDto.get(i).getUserid());
  496. }
  497. //根据项目pid获取所有的userid;--
  498. return userIdList;
  499. }
  500. @Override
  501. public AjaxJson doBatchDelSysMsg(String ids) throws Exception {
  502. String message = null;
  503. AjaxJson j = new AjaxJson();
  504. message = "系统消息删除成功";
  505. try{
  506. for(String id:ids.split(",")){
  507. SysMsgEntity sysMsg = systemService.getEntity(SysMsgEntity.class, id);
  508. List<SysMsgDetailEntity> sysMsgDetailEntityList =findByProperty(SysMsgDetailEntity.class,"msgId",id);
  509. String sysMsgDetailIds="";
  510. for (int i = 0; i < sysMsgDetailEntityList.size(); i++) {
  511. if(sysMsgDetailIds.length()!=0){
  512. sysMsgDetailIds+=","+sysMsgDetailEntityList.get(i).getId();
  513. }else{
  514. sysMsgDetailIds=sysMsgDetailEntityList.get(i).getId();
  515. }
  516. }
  517. //批量删除系统消息详细
  518. doBatchDelSysMsgDetail(sysMsgDetailIds);
  519. delete(sysMsg);
  520. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  521. }
  522. }catch(Exception e){
  523. e.printStackTrace();
  524. message = "系统消息删除失败";
  525. throw new BusinessException(e.getMessage());
  526. }
  527. j.setMsg(message);
  528. return j;
  529. }
  530. @Override
  531. public AjaxJson doBatchDelSysMsgDetail(String ids) throws Exception {
  532. String message = null;
  533. AjaxJson j = new AjaxJson();
  534. message = "系统消息详细删除成功";
  535. try{
  536. for(String id:ids.split(",")){
  537. SysMsgDetailEntity sysMsgDetail = systemService.getEntity(SysMsgDetailEntity.class, id);
  538. delete(sysMsgDetail);
  539. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  540. }
  541. }catch(Exception e){
  542. e.printStackTrace();
  543. message = "系统消息详细删除失败";
  544. j.setSuccess(false);
  545. }
  546. j.setMsg(message);
  547. return j;
  548. }
  549. @Override
  550. public List<SysMsgDto> getSysMsgDtoExport(SysMsgDto sysMsgDto,
  551. String authSql) {
  552. return sysMsgMinidao.getSysMsgDtoExport(sysMsgDto, authSql);
  553. }
  554. @Override
  555. public MiniDaoPage<SysMsgDto> getMyMsgDtoPage(SysMsgDto sysMsgDto,
  556. int page, int rows, String authSql) {
  557. // TODO Auto-generated method stub
  558. return sysMsgMinidao.getMyMsgDtoPage(sysMsgDto, page, rows, authSql);
  559. }
  560. @Override
  561. public AjaxJson doBatchPublishSysMsg(String ids) throws Exception {
  562. TSUser tSUser=ResourceUtil.getSessionUser();
  563. String message = null;
  564. AjaxJson j = new AjaxJson();
  565. message = "系统消息发布成功";
  566. try {
  567. for(String id:ids.split(",")){
  568. SysMsgEntity t = systemService.get(SysMsgEntity.class, id);
  569. SysMsgEntity sysMsg=t;
  570. sysMsg.setSendStatus(Globals.send_status_1);
  571. sysMsg.setSendTime(new Date());
  572. sysMsg.setSendId(tSUser.getId());
  573. MyBeanUtils.copyBeanNotNull2Bean(sysMsg, t);
  574. saveOrUpdate(t);
  575. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  576. StringBuffer hql = new StringBuffer(" FROM SysMsgDetailEntity where msgId=? ");
  577. List<SysMsgDetailEntity> sysMsgDetailEntityList = this.findHql(hql.toString(),id);
  578. ArrayList<String> idList = new ArrayList<String>();
  579. for (int i = 0; i < sysMsgDetailEntityList.size(); i++) {
  580. idList.add(sysMsgDetailEntityList.get(i).getReceivedId());
  581. }
  582. //极光推送
  583. pushProcessor.pushCommon(idList,Globals.msg_type_0);
  584. //极光推送
  585. /*PushReq pushreq = new PushReq();
  586. Map<String,String> extrasParam = new HashMap<String, String>();
  587. extrasParam.put("sendReport", "sendReport");
  588. pushreq.setExtras(extrasParam);
  589. pushreq.setAlert(PushMsgContentProcess.PUSH_INSPECTION_ATTENDANCE_YW.value());
  590. ArrayList<String> ls = new ArrayList<String>();
  591. for (int i = 0; i < sysMsgDetailEntityList.size(); i++) {
  592. ls.add(sysMsgDetailEntityList.get(i).getReceivedId());
  593. }
  594. pushreq.setAudiences(ls);
  595. pushProcessor.pushMessage(pushreq);*/
  596. /*PushReq pushreq = new PushReq();
  597. Map<String,String> extrasParam = new HashMap<String, String>();
  598. extrasParam.put("sendReport", "sendReport");
  599. pushreq.setExtras(extrasParam);
  600. pushreq.setAlert(PushMsgContentProcess.PUSH_INSPECTION_ATTENDANCE_YW.value());
  601. ArrayList<String> ls = new ArrayList<String>();
  602. ls.add("4028e4a55fdd331a015fdd36ac9e0001");
  603. pushreq.setAudiences(ls);
  604. pushProcessor.pushMessage(pushreq);*/
  605. }
  606. } catch (Exception e) {
  607. e.printStackTrace();
  608. message = "系统消息发布失败";
  609. j.setSuccess(false);
  610. }
  611. j.setMsg(message);
  612. return j;
  613. }
  614. @Override
  615. public MiniDaoPage<SysMsgDto> getSysMsgDtoPage(SysMsgDto sysMsgDto, int page,
  616. int rows, String authSql) {
  617. // TODO Auto-generated method stub
  618. return sysMsgMinidao.getSysMsgDtoPage(sysMsgDto, page, rows, authSql);
  619. }
  620. /*@Override
  621. public AjaxJson saveSysMsgAndSysMsgDetail(SysMsgEntity sysMsg)
  622. throws Exception {
  623. AjaxJson j = new AjaxJson();
  624. try {
  625. j=saveSysMsg(sysMsg);
  626. } catch (Exception e) {
  627. // TODO Auto-generated catch block
  628. e.printStackTrace();
  629. }
  630. return j;
  631. }*/
  632. }