AgentPayCloseTast.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package fi.cas.task;
  2. import com.alibaba.druid.support.logging.Log;
  3. import com.alibaba.druid.support.logging.LogFactory;
  4. import fi.cas.opplugin.PayBillToolUtil;
  5. import kd.bos.context.RequestContext;
  6. import kd.bos.dataentity.entity.DynamicObject;
  7. import kd.bos.exception.KDException;
  8. import kd.bos.orm.query.QCP;
  9. import kd.bos.orm.query.QFilter;
  10. import kd.bos.schedule.executor.AbstractTask;
  11. import kd.bos.servicehelper.BusinessDataServiceHelper;
  12. import kd.bos.servicehelper.operation.SaveServiceHelper;
  13. import org.json.JSONObject;
  14. import java.util.Map;
  15. /**
  16. * 定时任务关闭付款单据。如果有核心状态为支付处理全部成功,未关闭的数据。调用关闭接口。
  17. */
  18. public class AgentPayCloseTast extends AbstractTask {
  19. private static final Log log = LogFactory.getLog(AgentPayCloseTast.class);
  20. @Override
  21. public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
  22. //获取要查询的数据。状态为已审批,支付状态为支付中。核心状态为支付处理全部成功
  23. QFilter filter = new QFilter("billstatus", QCP.equals, "C");
  24. filter.and("nckd_paystatus", QCP.equals, "B");
  25. filter.and("nckd_hxzt", QCP.equals, "Q");
  26. Map<Object, DynamicObject> payinfos = BusinessDataServiceHelper.loadFromCache("cas_agentpaybill", new QFilter[] {filter});
  27. DynamicObject jkpzxx = BusinessDataServiceHelper.loadSingle("nckd_jkpzxx",new QFilter[]{new QFilter("number","=","paytozfqz")});
  28. String servername = jkpzxx.getString("nckd_servername");
  29. String port = jkpzxx.getString("nckd_port");
  30. for (DynamicObject dataEntity : payinfos.values()) {
  31. //调用接口查询付款状态
  32. String bodyxml = PayBillToolUtil.createSingleAgentPaymentRequest_3(dataEntity);
  33. String billNum = dataEntity.getString("billno");
  34. log.info("单据号:"+billNum+"传入参数"+bodyxml);
  35. JSONObject cbsReturnJson =PayBillToolUtil.socketServiceAgent(servername,port,bodyxml,"ACHRDATE");
  36. log.info("单据号:"+billNum+"返回参数"+cbsReturnJson.toString());
  37. //存入日志表
  38. PayBillToolUtil.saveAgentlog(dataEntity,bodyxml,cbsReturnJson.toString(),"4");
  39. if(cbsReturnJson==null||cbsReturnJson.get("Message")==null){
  40. }else{
  41. JSONObject headinfo = cbsReturnJson.getJSONObject("Message").getJSONObject("HeadInfo");
  42. if(headinfo!=null){
  43. String errcode =headinfo.getString("errorcode");
  44. if ("000000".equals(errcode)) {
  45. //已关闭,修改单据支付状态为已关闭,核心状态为结束
  46. dataEntity.set("nckd_paystatus","C");
  47. dataEntity.set("nckd_hxzt","W");
  48. SaveServiceHelper.update(new DynamicObject[]{dataEntity});
  49. }
  50. }
  51. }
  52. }
  53. }
  54. }