GetBeiSenDataService.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package com.kingdee.eas.custom.webbeisen.service;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.kingdee.bos.BOSException;
  5. import com.kingdee.bos.Context;
  6. import com.kingdee.bos.bsf.service.app.IHRMsfService;
  7. import com.kingdee.eas.common.EASBizException;
  8. import com.kingdee.eas.custom.webbeisen.utils.BeiSenUtils;
  9. import java.io.IOException;
  10. import java.net.URISyntaxException;
  11. import java.text.SimpleDateFormat;
  12. import java.util.*;
  13. public class GetBeiSenDataService implements IHRMsfService {
  14. @Override
  15. public Object process(Context context, Map map) throws EASBizException, BOSException {
  16. String param = map.get("param") == null ? "" : map.get("param").toString();
  17. JSONObject paramJSONObject = JSONObject.parseObject(param);
  18. JSONObject requestBody = new JSONObject();
  19. Integer staffStatus = paramJSONObject.getInteger("staffStatus");
  20. Integer infoCollectionStatus = paramJSONObject.getInteger("infoCollectionStatus");
  21. String isModify = paramJSONObject.getString("isModify");
  22. String endTime = paramJSONObject.getString("endTime");
  23. String startTime = paramJSONObject.getString("startTime");
  24. String batchId = paramJSONObject.getString("batchId");
  25. Integer day = paramJSONObject.getInteger("day");
  26. String staffId = paramJSONObject.getString("staffId");
  27. if (staffId!=null&&!staffId.equals("")){
  28. }else{
  29. if (staffStatus!=null){
  30. requestBody.put("staffStatus",staffStatus);
  31. }
  32. if (infoCollectionStatus!=null){
  33. requestBody.put("infoCollectionStatus",infoCollectionStatus);
  34. }
  35. if (isModify!=null){
  36. requestBody.put("isModify",isModify);
  37. }
  38. if (endTime!=null){
  39. requestBody.put("endTime",endTime);
  40. }
  41. if (startTime!=null){
  42. requestBody.put("startTime",startTime);
  43. }
  44. if (batchId!=null){
  45. requestBody.put("batchId",batchId);
  46. }
  47. if (endTime==null||startTime==null){
  48. if(day==null){
  49. throw new RuntimeException("参数异常endTime,startTime必填 或者填入day");
  50. }else{
  51. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss");
  52. Date date = new Date();
  53. requestBody.put("endTime",format.format(date));
  54. requestBody.put("startTime",getDayBefore(date, day));
  55. }
  56. }
  57. }
  58. BeiSenUtils beiSenUtils = new BeiSenUtils(context);
  59. try {
  60. JSONArray staffIds = new JSONArray();
  61. if (staffId!=null&&!staffId.equals("")){
  62. String[] split = staffId.split(",");
  63. for (int i = 0; i < split.length; i++) {
  64. staffIds.add(split[i]);
  65. }
  66. }else {
  67. staffIds = beiSenUtils.getStaffIds(requestBody);
  68. }
  69. List<String> list = new ArrayList<String>();
  70. list.add("extendInfos");
  71. list.add("fileInfos");
  72. JSONArray staffInfos = beiSenUtils.getStaffInfos(staffIds, list);
  73. return staffInfos;
  74. } catch (IOException e) {
  75. throw new RuntimeException(e);
  76. } catch (URISyntaxException e) {
  77. throw new RuntimeException(e);
  78. }
  79. }
  80. /**
  81. * 获取指定日期前 x 天的日期字符串
  82. *
  83. * @param specifiedDay 指定的日期
  84. * @param x 天数
  85. * @return 指定日期前 x 天的日期字符串,格式为 yyyy-MM-dd
  86. */
  87. public String getDayBefore(Date specifiedDay, int x) {
  88. // 获取 Calendar 实例
  89. Calendar c = Calendar.getInstance();
  90. // 将 Calendar 的时间设置为指定日期
  91. c.setTime(specifiedDay);
  92. // 获取当前日期
  93. int day = c.get(Calendar.DATE);
  94. // 将日期向前移动 x 天
  95. c.set(Calendar.DATE, day - x);
  96. // 将移动后的日期格式化为 yyyy-MM-dd 格式的字符串
  97. String dayBefore = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss").format(c.getTime());
  98. // 返回格式化后的日期字符串
  99. return dayBefore;
  100. }
  101. }