CallBackToOSFService.java 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.kingdee.eas.custom.sendmessage.osf;
  2. import com.alibaba.fastjson.JSON;
  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.bos.metadata.entity.EntityViewInfo;
  8. import com.kingdee.bos.metadata.entity.FilterInfo;
  9. import com.kingdee.bos.metadata.entity.FilterItemInfo;
  10. import com.kingdee.bos.metadata.entity.SelectorItemCollection;
  11. import com.kingdee.bos.metadata.query.util.CompareType;
  12. import com.kingdee.bos.util.BOSUuid;
  13. import com.kingdee.eas.common.EASBizException;
  14. import com.kingdee.eas.custom.logs.IMessageLogs;
  15. import com.kingdee.eas.custom.logs.MessageLogsCollection;
  16. import com.kingdee.eas.custom.logs.MessageLogsFactory;
  17. import com.kingdee.eas.custom.logs.MessageLogsInfo;
  18. import com.kingdee.eas.custom.logs.app.SendStatusEnum;
  19. import com.kingdee.eas.framework.CoreBaseInfo;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.Map;
  23. /**
  24. * description: CallBackToOSFService <br>
  25. * date: 2025/3/3 18:27 <br>
  26. * author: lhbj <br>
  27. * version: 1.0 <br>
  28. */
  29. public class CallBackToOSFService implements IHRMsfService {
  30. @Override
  31. public Object process(Context context, Map<String, Object> map) throws EASBizException, BOSException {
  32. String data = (String) map.get("data");
  33. JSONObject jsonObject = JSON.parseObject(data);
  34. List<Object> list = null;
  35. String type = (String) jsonObject.get("type");
  36. String requestId = BOSUuid.create("1C714FA2").toString();
  37. if ("sms_report".equals(type)) {
  38. list = jsonObject.getJSONArray("sendSmsRecordDtoList");
  39. } else if ("sms_task_report".equals(type)) {
  40. list = jsonObject.getJSONArray("smsDeliverDtoList");
  41. } else if ("sms_deliver".equals(type)) {
  42. list = jsonObject.getJSONArray("sendSmsTaskDto");
  43. }
  44. IMessageLogs iMessageLogs = MessageLogsFactory.getLocalInstance(context);
  45. SelectorItemCollection sic = new SelectorItemCollection();
  46. sic.add("sourceBillId");
  47. sic.add("sourceFunction");
  48. sic.add("id");
  49. sic.add("status");
  50. sic.add("callBackResult");
  51. for(Object entry : list){
  52. JSONObject object = (JSONObject) entry;
  53. int sendRecordId = object.getInteger("sendRecordId");
  54. int sendStatus = object.getInteger("sendStatus");
  55. String reportDate = object.getString("reportDate");
  56. String remark = object.getString("remark");
  57. FilterInfo filterInfo = new FilterInfo();
  58. filterInfo.getFilterItems().add(new FilterItemInfo("sourceBillId",sendRecordId, CompareType.EQUALS));
  59. EntityViewInfo view = EntityViewInfo.getInstance(filterInfo, sic, null);
  60. MessageLogsCollection mlc = iMessageLogs.getMessageLogsCollection(view);
  61. for(int i = 0; i < mlc.size(); i++) {
  62. MessageLogsInfo ml = mlc.get(i);
  63. ml.setString("callBackResult",data);
  64. ml.setStatus(SendStatusEnum.succeed);
  65. switch (sendStatus){
  66. case 0:ml.setSourceFunction(sendStatus+"-待发送");break;
  67. case 1:ml.setSourceFunction(sendStatus+"-已发送");break;
  68. case 2:ml.setSourceFunction(sendStatus+"-发送中");break;
  69. case -1:ml.setSourceFunction(sendStatus+"-发送失败");break;
  70. default:ml.setSourceFunction(sendStatus+"其他");break;
  71. }
  72. iMessageLogs.updatePartial(ml, sic);
  73. }
  74. }
  75. Map<String,String> result = new HashMap<String,String>();
  76. result.put("status","success");
  77. result.put("data",data);
  78. return result;
  79. }
  80. }