MessageLogsListHandler.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.kingdee.eas.custom.sendmessage.handler;
  2. import com.kingdee.bos.BOSException;
  3. import com.kingdee.bos.Context;
  4. import com.kingdee.eas.common.EASBizException;
  5. import com.kingdee.eas.custom.logs.IMessageLogs;
  6. import com.kingdee.eas.custom.logs.MessageLogsCollection;
  7. import com.kingdee.eas.custom.logs.MessageLogsFactory;
  8. import com.kingdee.eas.custom.logs.MessageLogsInfo;
  9. import com.kingdee.eas.framework.CoreBaseCollection;
  10. import com.kingdee.eas.util.ToolUtils;
  11. import com.kingdee.shr.base.syssetting.context.SHRContext;
  12. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  13. import com.kingdee.shr.base.syssetting.web.handler.ListHandler;
  14. import com.kingdee.util.StringUtils;
  15. import org.springframework.ui.ModelMap;
  16. import javax.servlet.http.HttpServletRequest;
  17. import javax.servlet.http.HttpServletResponse;
  18. import java.io.IOException;
  19. import java.nio.file.Files;
  20. import java.nio.file.Path;
  21. import java.nio.file.Paths;
  22. import java.util.HashMap;
  23. import java.util.Map;
  24. public class MessageLogsListHandler extends ListHandler {
  25. /**
  26. * 作废链接
  27. * @param request
  28. * @param response
  29. * @param modelMap
  30. * @throws SHRWebException
  31. * @throws BOSException
  32. */
  33. public void cancelLinkAction (HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
  34. throws SHRWebException, BOSException, EASBizException {
  35. Context ctx = SHRContext.getInstance().getContext();
  36. String billIds = StringUtils.cnulls(request.getParameter("validIds"));
  37. Map<String, Object> resultMap = new HashMap ();
  38. if(StringUtils.isEmpty(billIds)){
  39. // resultMap.put("successCount", 0);
  40. // resultMap.put("message", "选择的数据为空!");
  41. writeErrorData("选择的数据为空!");
  42. }
  43. //字符串转数组
  44. String[] billIdArr = billIds.split(",");
  45. IMessageLogs localInstance = MessageLogsFactory.getLocalInstance(ctx);
  46. MessageLogsCollection msgLogsCol = localInstance.getMessageLogsCollection("where id in ("+ ToolUtils.aryToStr(billIdArr)+")");
  47. //for循环作废
  48. CoreBaseCollection coreBaseCollection = new CoreBaseCollection();
  49. for (int i = 0; i < msgLogsCol.size(); i++) {
  50. MessageLogsInfo messageLogsInfo = msgLogsCol.get(i);
  51. if(exeCancel(messageLogsInfo)){
  52. messageLogsInfo.setIsVaild(false);
  53. coreBaseCollection.add(messageLogsInfo);
  54. }
  55. }
  56. if(coreBaseCollection.size() > 0){
  57. localInstance.updateBatchData(coreBaseCollection);
  58. resultMap.put("successCount", coreBaseCollection.size());
  59. resultMap.put("message", "处理成功"+coreBaseCollection.size()+"条数据!");
  60. }
  61. writeSuccessData(resultMap);
  62. }
  63. /**
  64. * 执行作废
  65. */
  66. private boolean exeCancel(MessageLogsInfo msgLogsInfo){
  67. if( msgLogsInfo.isIsVaild() ){
  68. String dirName = msgLogsInfo.getUrldir();
  69. String fileName = msgLogsInfo.getFileName();
  70. // 删除硬盘上urldir文件夹下的fileName文件
  71. if (!StringUtils.isEmpty(dirName) && !StringUtils.isEmpty(fileName)) {
  72. String home = System.getProperty("EAS_HOME"); // 获取 EAS 根目录
  73. String fileDir = home + "/server/deploy/easweb.ear/shr_web.war/tmp/electronicAttachment/" + dirName;
  74. // 尝试删除文件
  75. Path filePath = Paths.get(fileDir, fileName);
  76. try {
  77. Files.deleteIfExists(filePath); // 删除文件,如果文件存在
  78. return true; // 返回成功状态
  79. } catch (IOException e) {
  80. e.printStackTrace();
  81. }
  82. }
  83. }
  84. return false; // 如果未成功执行作废或文件未找到,
  85. }
  86. }