CancelDeclareService.java 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package com.kingdee.eas.custom.compensation.service;
  2. import java.io.IOException;
  3. import java.math.BigDecimal;
  4. import java.sql.SQLException;
  5. import java.util.ArrayList;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. import org.apache.log4j.Logger;
  11. import com.alibaba.fastjson.JSONObject;
  12. import com.fasterxml.jackson.databind.ObjectMapper;
  13. import com.kingdee.bos.BOSException;
  14. import com.kingdee.bos.Context;
  15. import com.kingdee.bos.bsf.service.app.IHRMsfService;
  16. import com.kingdee.bos.dao.IObjectPK;
  17. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  18. import com.kingdee.bos.metadata.entity.EntityViewInfo;
  19. import com.kingdee.bos.metadata.entity.FilterInfo;
  20. import com.kingdee.bos.metadata.entity.FilterItemInfo;
  21. import com.kingdee.bos.metadata.entity.SelectorItemCollection;
  22. import com.kingdee.bos.metadata.query.util.CompareType;
  23. import com.kingdee.bos.util.BOSUuid;
  24. import com.kingdee.eas.basedata.person.IPerson;
  25. import com.kingdee.eas.basedata.person.PersonFactory;
  26. import com.kingdee.eas.basedata.person.PersonInfo;
  27. import com.kingdee.eas.common.EASBizException;
  28. import com.kingdee.eas.custom.shuiyou.interfacelog.LogInfoFactory;
  29. import com.kingdee.eas.custom.shuiyou.interfacelog.LogInfoInfo;
  30. import com.kingdee.eas.custom.shuiyou.task.MessageResult;
  31. import com.kingdee.eas.custom.shuiyou.utils.ClientProxyFactoryUtils;
  32. import com.kingdee.eas.util.app.DbUtil;
  33. import com.kingdee.jdbc.rowset.IRowSet;
  34. import com.kingdee.shr.compensation.TaxDeclareStatusEnum;
  35. import com.kingdee.shr.compensation.app.incomeTax.TaxPersonRecordFactory;
  36. import com.kingdee.shr.compensation.app.incomeTax.TaxPersonRecordInfo;
  37. import com.kingdee.shr.compensation.app.tax.IIncomeTaxDeclar;
  38. import com.kingdee.shr.compensation.app.tax.ITaxDeclaration;
  39. import com.kingdee.shr.compensation.app.tax.IncomeTaxDeclarCollection;
  40. import com.kingdee.shr.compensation.app.tax.IncomeTaxDeclarFactory;
  41. import com.kingdee.shr.compensation.app.tax.IncomeTaxDeclarInfo;
  42. import com.kingdee.shr.compensation.app.tax.TaxDeclarationCollection;
  43. import com.kingdee.shr.compensation.app.tax.TaxDeclarationFactory;
  44. import com.kingdee.shr.compensation.app.tax.TaxDeclarationInfo;
  45. import com.kingdee.shr.compensation.app.tax.TaxUnitInfo;
  46. import com.kingdee.shr.compensation.app.tax.base.ITaxIncomeItem;
  47. import com.kingdee.shr.compensation.app.tax.base.TaxIncomeItemFactory;
  48. import com.kingdee.shr.compensation.app.tax.base.TaxIncomeItemInfo;
  49. import cn.com.servyou.dto.ApiResponse;
  50. import cn.com.servyou.dto.declare.Feedback;
  51. import cn.com.servyou.rmi.client.ClientProxyFactory;
  52. import cn.com.servyou.service.DeclarationRequest;
  53. /**
  54. * 撤销申报
  55. * @author coyle
  56. *
  57. */
  58. public class CancelDeclareService implements IHRMsfService {
  59. Logger logger = Logger.getLogger("com.kingdee.eas.custom.compensation.service.CancelDeclareService");
  60. public Object process(Context context, Map map) throws EASBizException, BOSException {
  61. //接口日志实体
  62. LogInfoInfo logInfo = new LogInfoInfo();
  63. //入口
  64. logInfo.setEntrance(this.getClass().getName());
  65. logInfo.setBizDate(new Date());
  66. Map resMap = new HashMap();
  67. logger.error("CancelDeclareService----------OSF----Start");
  68. JSONObject paramData = JSONObject.parseObject((String) map.get("paramData"));
  69. logger.error("paramData--------" + paramData);
  70. String requestId = paramData.getString("requestId");
  71. JSONObject param = paramData.getJSONObject("param");
  72. logger.error("requestId--------" + requestId);
  73. logger.error("param--------" + param);
  74. ObjectMapper mapper = new ObjectMapper();
  75. try {
  76. //客户端代理工厂
  77. ClientProxyFactory clientProxyFactory = ClientProxyFactoryUtils.getClientProxyFactory();
  78. //算税请求接口
  79. DeclarationRequest declarationRequest = clientProxyFactory.getDeclarationRequest();
  80. //申报数据反馈 requestId:请求Id reportType:申报所得类型[1:综合所得;2:分类所得;3:非居民所得;4:限售股所得]
  81. ApiResponse<Feedback> feedback = declarationRequest.getCancelFeedback(requestId, "1");
  82. logInfo.setInterfaceAddress("/gateway/iit/report/getCancelFeedback");//接口地址
  83. logInfo.setInterfaceName("getCancelFeedback");//接口名
  84. logger.error("getCancelFeedback--------" + mapper.writeValueAsString(feedback));
  85. String status = feedback.getHead().getStatus();
  86. Feedback body = null;
  87. if ("N".equals(status)) {
  88. //请求失败响应
  89. String msg = feedback.getHead().getMsg();
  90. return MessageResult.FAILED(msg);
  91. } else {
  92. //调用成功
  93. //请求id
  94. body = feedback.getBody();
  95. logInfo.setOutParameter(mapper.writeValueAsString(body));//回参
  96. LogInfoFactory.getLocalInstance(context).addnew(logInfo);
  97. saveTaxDeclaration(context, param);
  98. }
  99. return MessageResult.SUCCESS(mapper.writeValueAsString(body));
  100. } catch (IOException e) {
  101. e.printStackTrace();
  102. logInfo.setErrorInfo(e.getMessage());//错误信息
  103. LogInfoFactory.getLocalInstance(context).save(logInfo);
  104. //throw new BOSException(e);
  105. return MessageResult.ERROR(e.getMessage());
  106. }
  107. }
  108. /**
  109. * 保存个税申报结果
  110. *
  111. * @param param
  112. */
  113. public void saveTaxDeclaration(Context ctx, JSONObject param) throws BOSException, EASBizException {
  114. logger.error("saveTaxDeclaration------------------");
  115. //个税申报ID
  116. String taxDeclarId = param.getString("taxDeclarId");
  117. //个税申报批次号
  118. String taxDeclarBatchNo = param.getString("taxDeclarBatchNo");
  119. IIncomeTaxDeclar iIncomeTaxDeclar = IncomeTaxDeclarFactory.getLocalInstance(ctx);
  120. IncomeTaxDeclarCollection incomeTaxDeclarCollection = iIncomeTaxDeclar.getIncomeTaxDeclarCollection("where batchNo = '" + taxDeclarBatchNo + "'");
  121. SelectorItemCollection updateSic = new SelectorItemCollection();
  122. updateSic.add("isCancelled");
  123. if (incomeTaxDeclarCollection.size() > 0) {
  124. IncomeTaxDeclarInfo incomeTaxDeclarInfo = incomeTaxDeclarCollection.get(0);
  125. incomeTaxDeclarInfo.setIsCancelled(1);
  126. iIncomeTaxDeclar.updatePartial(incomeTaxDeclarInfo, updateSic);
  127. }
  128. }
  129. }