GetQuerySpecialAmountFeedback.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package com.kingdee.eas.custom.shuiyou.six.osf;
  2. import cn.hutool.core.util.StrUtil;
  3. import cn.hutool.json.JSONArray;
  4. import cn.hutool.json.JSONObject;
  5. import cn.hutool.json.JSONUtil;
  6. import com.google.common.collect.Maps;
  7. import com.kingdee.bos.BOSException;
  8. import com.kingdee.bos.Context;
  9. import com.kingdee.bos.bsf.service.app.IHRMsfService;
  10. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  11. import com.kingdee.bos.metadata.entity.EntityViewInfo;
  12. import com.kingdee.bos.metadata.entity.SelectorItemCollection;
  13. import com.kingdee.bos.metadata.entity.SelectorItemInfo;
  14. import com.kingdee.bos.rabbitmq.guava.Lists;
  15. import com.kingdee.eas.common.EASBizException;
  16. import com.kingdee.eas.custom.shuiyou.task.ITask;
  17. import com.kingdee.eas.custom.shuiyou.task.TaskCollection;
  18. import com.kingdee.eas.custom.shuiyou.task.TaskFactory;
  19. import com.kingdee.eas.custom.shuiyou.task.TaskInfo;
  20. import com.kingdee.eas.util.app.DbUtil;
  21. import com.kingdee.jdbc.rowset.IRowSet;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * description: GetQuerySpecialAmountFeedback <br>
  26. * date: 2024/9/9 16:03 <br>
  27. * author: lhbj <br>
  28. * version: 1.0 <br>
  29. */
  30. public class GetQuerySpecialAmountFeedback implements IHRMsfService {
  31. @Override
  32. public Object process(Context context, Map map) throws EASBizException, BOSException {
  33. //获取请求结果
  34. String result = (String) map.get("result");
  35. //获取请求参数
  36. String paramData = (String) map.get("paramData");
  37. JSONObject paramMap = JSONUtil.parseObj(paramData);
  38. //获取传入任务id
  39. String preTaskId = paramMap.getStr("preTaskId");
  40. String skssq = paramMap.getStr("skssq");
  41. SelectorItemCollection sc = new SelectorItemCollection();
  42. sc.add(new SelectorItemInfo("id"));
  43. sc.add(new SelectorItemInfo("url"));
  44. sc.add(new SelectorItemInfo("requestId"));
  45. sc.add(new SelectorItemInfo("requestType"));
  46. sc.add(new SelectorItemInfo("requestParam.id"));
  47. sc.add(new SelectorItemInfo("requestParam.paramContent"));
  48. ITask iTask = TaskFactory.getLocalInstance(context);
  49. TaskInfo taskInfo = iTask.getTaskInfo(new ObjectUuidPK(preTaskId),sc);
  50. JSONObject paramContent = JSONUtil.parseObj(taskInfo.getRequestParam().getParamContent());
  51. String taxPersonRecordEntryIDS = paramContent.getStr("taxPersonRecordEntryIDS");
  52. JSONObject resultMap = JSONUtil.parseObj(result);
  53. JSONObject head = resultMap.getJSONObject("head");
  54. JSONObject body = resultMap.getJSONObject("body");
  55. String code = head.getStr("code");
  56. if("00000000".equals(code)){
  57. Map<String,List<String>> sql_param = Maps.newHashMap();
  58. JSONArray ryxxlb = body.getJSONArray("ryxxlb");
  59. for(int i=0;i<ryxxlb.size();i++){
  60. JSONObject ryxx = ryxxlb.getJSONObject(i);
  61. StringBuilder sql = new StringBuilder();
  62. sql.append("update T_HR_STAXCALINITDETAIL set ");
  63. List<String> paramList = Lists.newArrayList();
  64. for(Map.Entry<String,Object> entry : ryxx.entrySet()){
  65. String key =entry.getKey();
  66. Object value =entry.getValue();
  67. String field = this.getFieldByNumber(context,key);
  68. if(StrUtil.isNotBlank(field)) {
  69. paramList.add(StrUtil.toString(value));
  70. sql.append(field+"=?,");
  71. }
  72. }
  73. String zzhm = ryxx.getStr("zzhm");
  74. sql=sql.delete(sql.length()-1,sql.length());
  75. //select * from T_BD_Person where FIDCARDNO=''
  76. sql.append(" where ");
  77. sql_param.put(sql.toString(),paramList);
  78. }
  79. }
  80. return null;
  81. }
  82. protected String getFieldByNumber(Context context,String number){
  83. String sql = "select ('T'||FIELDSN) fieldName,fname_L2 from T_HR_STaxItem where FSIMPLENAME=?";
  84. try {
  85. IRowSet rs = DbUtil.executeQuery(context, sql, new String[]{number});
  86. if (rs.next()) {
  87. return rs.getString("fieldName");
  88. }
  89. }catch (Exception e){
  90. e.printStackTrace();
  91. }
  92. return null;
  93. }
  94. }