升级作废申报
This commit is contained in:
parent
65fcfb8fac
commit
68467fbe46
|
|
@ -1,6 +1,6 @@
|
|||
package com.engine.salary.entity.taxdeclaration.response;
|
||||
|
||||
import com.engine.salary.entity.taxagent.response.SzyhResponseHead;
|
||||
import com.engine.salary.entity.taxpayment.response.BaseResponse;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -14,10 +14,7 @@ import java.util.Map;
|
|||
* @version 1.0
|
||||
**/
|
||||
@Data
|
||||
public class CancelDeclareFeedbackResponse {
|
||||
|
||||
//接口状态")
|
||||
private SzyhResponseHead head;
|
||||
public class CancelDeclareFeedbackResponse extends BaseResponse {
|
||||
|
||||
//接口状态")
|
||||
private Map<String, Object> body;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.engine.salary.remote.tax.client;
|
||||
|
||||
import com.engine.salary.constant.SzyhApiConstant;
|
||||
import com.engine.salary.entity.taxdeclaration.response.CancelDeclareFeedbackResponse;
|
||||
import com.engine.salary.entity.taxdeclaration.response.UpdateDeclareResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
|
@ -16,24 +17,34 @@ import java.util.Map;
|
|||
* @version 1.0
|
||||
**/
|
||||
@Slf4j
|
||||
public class DeclareClient extends TaxBaseClient{
|
||||
public class DeclareClient extends TaxBaseClient {
|
||||
public DeclareClient(Long taxAgentId) {
|
||||
super(taxAgentId);
|
||||
}
|
||||
|
||||
|
||||
public CancelDeclareFeedbackResponse cancel(Map<String, Object> requestParam, Map<String, String> responseParam) {
|
||||
String url = apiConfig.getHost() + SzyhApiConstant.CANCEL_DECLARE;
|
||||
String requestId = request(url, requestParam);
|
||||
|
||||
String feedbackUrl = apiConfig.getHost() + SzyhApiConstant.CANCEL_DECLARE_FEEDBACK;
|
||||
responseParam.put("requestId", requestId);
|
||||
return response(feedbackUrl, responseParam, CancelDeclareFeedbackResponse.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更正申报
|
||||
*
|
||||
* @param requestParam
|
||||
*/
|
||||
public UpdateDeclareResponse correct(Map<String, Object> requestParam){
|
||||
public UpdateDeclareResponse correct(Map<String, Object> requestParam) {
|
||||
String url = apiConfig.getHost() + SzyhApiConstant.UPDATE_DECLARE;
|
||||
String requestId = request(url, requestParam);
|
||||
String feedbackUrl = apiConfig.getHost() + SzyhApiConstant.UPDATE_DECLARE_FEEDBACK;
|
||||
|
||||
Map<String, String> map = new HashMap<>(1);
|
||||
map.put("requestId", requestId);
|
||||
return response(feedbackUrl, map, UpdateDeclareResponse.class);
|
||||
String feedbackUrl = apiConfig.getHost() + SzyhApiConstant.UPDATE_DECLARE_FEEDBACK;
|
||||
Map<String, String> responseParam = new HashMap<>(1);
|
||||
responseParam.put("requestId", requestId);
|
||||
return response(feedbackUrl, responseParam, UpdateDeclareResponse.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ public interface TaxDeclareRecordService {
|
|||
*
|
||||
* @param id
|
||||
*/
|
||||
void cancelDeclare(Long id, Integer reportType);
|
||||
void cancelDeclare(Long id, Integer reportType,TaxDeclarationRateDTO taxDeclarationRate);
|
||||
|
||||
/**
|
||||
* 获取作废反馈
|
||||
|
|
|
|||
|
|
@ -873,9 +873,10 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
|
|||
}
|
||||
|
||||
@Override
|
||||
public void cancelDeclare(Long id, Integer reportType) {
|
||||
public void cancelDeclare(Long id, Integer reportType, TaxDeclarationRateDTO taxDeclarationRate) {
|
||||
TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id);
|
||||
TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord();
|
||||
Long taxAgentId = taxDeclareRecord.getTaxAgentId();
|
||||
|
||||
TaxDeclareStatusPO declareStatus = getTaxDeclareStatusService(user).getTaxDeclareStatus(id, reportType);
|
||||
// 更正申报成功后不能作废
|
||||
|
|
@ -886,8 +887,6 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
|
|||
if (!Objects.equals(declareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_SUCCESS_NO_PAY.getValue()) && !Objects.equals(declareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_SUCCESS_UNPAID.getValue())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156497, "只有申报成功,无需缴款/申报成功,未缴款的状态才能作废"));
|
||||
}
|
||||
// 供应商信息
|
||||
TaxDeclarationApiConfigPO apiConfig = taxDeclareRequest.getTaxDeclarationApiConfig();
|
||||
// 注册的企业信息-->请求参数
|
||||
Map<String, Object> requestParam = taxDeclareRequest.getRequestParam();
|
||||
// 税款所属期
|
||||
|
|
@ -895,26 +894,29 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
|
|||
// 申报类型
|
||||
requestParam.put("sblx", reportType + "");
|
||||
// 作废银联缴款凭证
|
||||
// taxPaymentServiceFactory.get(TaxPaymentServiceTypeEnum.WITHHOLDING_VOUCHER.getValue()).cancelWithholdingVoucher(apiConfig, taxDeclareRecord, requestParam);
|
||||
// ServiceUtil.getService(TaxPaymentWithholdingVoucherServiceImpl.class, user).cancelWithholdingVoucher(apiConfig, taxDeclareRecord, requestParam);
|
||||
// 是否清空所得
|
||||
requestParam.put("sfqksd", "0");
|
||||
// 请求
|
||||
String reqJson = JsonUtil.toJsonString(requestParam);
|
||||
String url = apiConfig.getHost() + SzyhApiConstant.CANCEL_DECLARE;
|
||||
Map<String, String> params = new HashMap<>(1);
|
||||
Map<String, String> header = SingnatureData.initHeader(params, apiConfig.getAppKey(), apiConfig.getAppSecret());
|
||||
String res = HttpUtil.doPost(url, header, reqJson, HttpUtil.JSON_TYPE);
|
||||
log.info("作废申报返回数据:" + res);
|
||||
DeclareTaxResponse declareTaxResponse = JsonUtil.parseObject(res, DeclareTaxResponse.class);
|
||||
if (Objects.isNull(declareTaxResponse) || Objects.isNull(declareTaxResponse.getHead())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156449, "服务异常"));
|
||||
|
||||
Map<String, String> responseParam = new HashMap<>();
|
||||
responseParam.put("reportType",reportType + "");
|
||||
DeclareClient declareClient = new DeclareClient(taxAgentId);
|
||||
CancelDeclareFeedbackResponse cancelDeclareFeedbackResponse = declareClient.cancel(requestParam,responseParam);
|
||||
|
||||
// 作废是否成功
|
||||
CancelDeclareStatusEnum cancelDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(SalaryEntityUtil.getIntValue(cancelDeclareFeedbackResponse.getBody().get("fkztbj"), 10), CancelDeclareStatusEnum.class);
|
||||
if (cancelDeclareStatusEnum == CancelDeclareStatusEnum.CANCEL_FAIL) {
|
||||
String feedbackBody = Util.null2String(cancelDeclareFeedbackResponse.getBody().get("fknr")).replace("\\", "");
|
||||
List<String> errorMsgList = JsonUtil.parseList(feedbackBody, Map.class).stream().map(e -> Util.null2String(e.get("msg"))).collect(Collectors.toList());
|
||||
taxDeclarationRate.setStatus(false).setMsg(SalaryI18nUtil.getI18nLabel(156508, "作废失败:") + StringUtils.join(errorMsgList, ","));
|
||||
}
|
||||
if (!Objects.equals(declareTaxResponse.getHead().getCode(), SzyhApiConstant.SUCCESS_CODE)) {
|
||||
throw new SalaryRunTimeException(declareTaxResponse.getHead().getMsg());
|
||||
TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(SalaryEntityUtil.getIntValue(cancelDeclareFeedbackResponse.getBody().get("sbztbj"), 1), TaxDeclareStatusEnum.class);
|
||||
if (taxDeclareStatusEnum == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156509, "服务异常,接口返回数据有误"));
|
||||
}
|
||||
// 更新个税申报状态
|
||||
declareStatus.setTaxDeclareStatus(TaxDeclareStatusEnum.DECLARE_CANCELLING.getValue());
|
||||
declareStatus.setRequestId(declareTaxResponse.getBody().getRequestId());
|
||||
|
||||
//更新个税申报状态
|
||||
declareStatus.setTaxDeclareStatus(taxDeclareStatusEnum.getValue());
|
||||
getTaxDeclareStatusService(user).updateTaxDeclareStatus(declareStatus, true);
|
||||
|
||||
// 记录日志
|
||||
|
|
|
|||
|
|
@ -523,7 +523,7 @@ public class TaxDeclareRecordWrapper extends Service {
|
|||
@Override
|
||||
public void execute() {
|
||||
try {
|
||||
getTaxDeclareRecordService(user).cancelDeclare(id, param.getReportType());
|
||||
getTaxDeclareRecordService(user).cancelDeclare(id, param.getReportType(),taxDeclarationRate);
|
||||
taxDeclarationRate.setFinish(true);
|
||||
} catch (SalaryRunTimeException e) {
|
||||
taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage());
|
||||
|
|
|
|||
Loading…
Reference in New Issue