GetPreDeductConfirmFeedBack.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package com.kingdee.eas.custom.shuiyou.six.osf;
  2. import cn.hutool.json.JSONArray;
  3. import cn.hutool.json.JSONObject;
  4. import cn.hutool.json.JSONUtil;
  5. import com.google.common.collect.Lists;
  6. import com.kingdee.bos.BOSException;
  7. import com.kingdee.bos.Context;
  8. import com.kingdee.bos.bsf.service.app.IHRMsfService;
  9. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  10. import com.kingdee.bos.metadata.entity.SelectorItemCollection;
  11. import com.kingdee.bos.metadata.entity.SelectorItemInfo;
  12. import com.kingdee.bos.util.BOSUuid;
  13. import com.kingdee.eas.common.EASBizException;
  14. import com.kingdee.eas.custom.shuiyou.task.*;
  15. import com.kingdee.eas.custom.shuiyou.uitls.ISYUtilsFacade;
  16. import com.kingdee.eas.custom.shuiyou.uitls.SYUtilsFacadeFactory;
  17. import com.kingdee.eas.custom.shuiyou.uitls.URLConfigEnum;
  18. import com.kingdee.eas.util.app.DbUtil;
  19. import com.kingdee.shr.dydeploy.web.executeSql.ExceptionUtils;
  20. import org.apache.log4j.Logger;
  21. import java.util.List;
  22. import java.util.Map;
  23. /**
  24. * 왱뇜츰데횅훰럽웩
  25. * description: GetPreDeductConfirmFeedBack <br>
  26. * date: 2024/8/29 15:02 <br>
  27. * author: lhbj <br>
  28. * version: 1.0 <br>
  29. */
  30. public class GetPreDeductConfirmFeedBack implements IHRMsfService {
  31. private static final Logger LOG = Logger.getLogger(GetPreDeductConfirmFeedBack.class);
  32. @Override
  33. public Object process(Context context, Map map) throws EASBizException, BOSException {
  34. ITask iTask = TaskFactory.getLocalInstance(context);
  35. ISYUtilsFacade facade = SYUtilsFacadeFactory.getLocalInstance(context);
  36. //삿혤헝헹써벎
  37. TaskInfo taskInfo=null;
  38. String paramData = (String) map.get("paramData");
  39. MessageResult messageResult=null;
  40. try {
  41. Map<String, Object> config = facade.getConfig();
  42. String url = config.get("ip") + URLConfigEnum.GETPREDEDUCTCONFIRMFEEDBACK_VALUE;
  43. JSONObject paramMap = JSONUtil.parseObj(paramData);
  44. //삿혤눈흙훨蛟id
  45. String preTaskId = (String) paramMap.get("parent_taskid");
  46. SelectorItemCollection sc = new SelectorItemCollection();
  47. sc.add(new SelectorItemInfo("id"));
  48. sc.add(new SelectorItemInfo("url"));
  49. sc.add(new SelectorItemInfo("requestId"));
  50. sc.add(new SelectorItemInfo("requestType"));
  51. sc.add(new SelectorItemInfo("requestParam.id"));
  52. sc.add(new SelectorItemInfo("requestParam.paramContent"));
  53. sc.add(new SelectorItemInfo("requestResult.id"));
  54. sc.add(new SelectorItemInfo("requestResult.resultContent"));
  55. sc.add(new SelectorItemInfo("requestState"));
  56. sc.add(new SelectorItemInfo("state"));
  57. sc.add(new SelectorItemInfo("name"));
  58. sc.add(new SelectorItemInfo("osfServiceName"));
  59. sc.add(new SelectorItemInfo("number"));
  60. sc.add(new SelectorItemInfo("taskPre.id"));
  61. sc.add(new SelectorItemInfo("taskPre.state"));
  62. sc.add(new SelectorItemInfo("taskPre.requestState"));
  63. taskInfo = iTask.getTaskInfo(new ObjectUuidPK(preTaskId),sc);
  64. String result = facade.get(url,paramData);
  65. JSONObject resultMap = JSONUtil.parseObj(result);
  66. JSONObject head = resultMap.getJSONObject("head");
  67. JSONObject body = resultMap.getJSONObject("body");
  68. String code = head.getStr("code");
  69. if ("00000000".equals(code)) {
  70. TaskRequestParamInfo requestParamInfo = taskInfo.getRequestParam();
  71. String paramCon = requestParamInfo.getParamContent();
  72. JSONObject json = JSONUtil.parseObj(paramCon);
  73. JSONArray kczglb=json.getJSONArray("kczglb");
  74. List<String[]> listUp = Lists.newArrayList();
  75. StringBuilder sqler = new StringBuilder();
  76. sqler.append(" update T_HR_STaxDirectDeduction set FSATE='20' where fid in ( ");
  77. sqler.append(" select tdd.fid from T_HR_STaxDirectDeduction tdd ");
  78. sqler.append(" left join T_HR_STaxPersonRecordEntry tpre on tpre.fid=tdd.FTAXPERSONRECORDENTRYID ");
  79. sqler.append(" left join T_HR_STaxPersonRecord tpr on tpr.fid=tpre.FBILLID ");
  80. sqler.append(" left join T_HR_STaxUnitDeduction tud on tud.fid=tdd.FTAXUNITDEDUCTIONID ");
  81. sqler.append(" where tpre.fid is not null and tud.FTAXUNITID = tpre.FTAXUNITID and tpr.FCARDNUMBER=?)");
  82. for(int i=0;i<kczglb.size();i++){
  83. JSONObject kczgl = kczglb.getJSONObject(i);
  84. String zzhm = kczgl.getStr("zzhm");
  85. String[] param = new String[1];
  86. param[0]=zzhm;
  87. listUp.add(param);
  88. }
  89. if (!listUp.isEmpty()) {
  90. DbUtil.executeBatch(context, sqler.toString(), listUp);
  91. }
  92. JSONArray jsonArray = body.getJSONArray("kcqrsblb");
  93. List<String[]> list = Lists.newArrayList();
  94. for(int i=0;i<jsonArray.size();i++){
  95. JSONObject obj = jsonArray.getJSONObject(i);
  96. String zzhm = obj.getStr("zzhm");
  97. String sbyy = obj.getStr("sbyy");
  98. String[] param = new String[2];
  99. param[0]=(sbyy);
  100. param[1]=(zzhm);
  101. list.add(param);
  102. }
  103. StringBuilder sql = new StringBuilder();
  104. sql.append(" update T_HR_STaxDirectDeduction set FSATE='30',FERRORMSG_L2=? where fid in ( ");
  105. sql.append(" select tdd.fid from T_HR_STaxDirectDeduction tdd ");
  106. sql.append(" left join T_HR_STaxPersonRecordEntry tpre on tpre.fid=tdd.FTAXPERSONRECORDENTRYID ");
  107. sql.append(" left join T_HR_STaxPersonRecord tpr on tpr.fid=tpre.FBILLID ");
  108. sql.append(" left join T_HR_STaxUnitDeduction tud on tud.fid=tdd.FTAXUNITDEDUCTIONID ");
  109. sql.append(" where tpre.fid is not null and tud.FTAXUNITID = tpre.FTAXUNITID and tpr.FCARDNUMBER=?)");
  110. if (!list.isEmpty()) {
  111. DbUtil.executeBatch(context, sql.toString(), list);
  112. }
  113. messageResult=MessageResult.SUCCESS(result);
  114. }else if("00000004".equals(head.getStr("code"))) {
  115. messageResult = MessageResult.AGAIN();
  116. }else {
  117. messageResult = MessageResult.FAILED(result);
  118. }
  119. }catch (Exception e){
  120. e.printStackTrace();
  121. messageResult = MessageResult.ERROR(ExceptionUtils.getStackTrace(e));
  122. }
  123. return messageResult;
  124. }
  125. }