GetBeiSenDataService.java 5.3 KB

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