进项税转出修改设置整体成功和失败

release
路明慧 2 years ago
parent 4e863aa69e
commit 46be2cb67e
  1. 69
      dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java
  2. 2
      dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java
  3. 10
      dxhy-erp/src/main/java/com/dxhy/erp/service/IReceiptOutService.java
  4. 2
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java
  5. 39
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java

@ -1259,7 +1259,7 @@ public class InterfaceController extends AbstractController {
}
}
public String transferOut(ErpInvoiceData erpInvoiceData){
public String transferOuts(ErpInvoiceData erpInvoiceData){
String zdata = erpInvoiceData.getIS_INPUT().getZDATA();
List<Map> list = JSON.parseArray(zdata, Map.class);
@ -1414,12 +1414,69 @@ public class InterfaceController extends AbstractController {
}
public static void main(String[] args) {
String request = "{\"IS_INPUT\":{\"SYSID\":\"SAP\",\"IFYWID\":\"FI849\",\"SAPKEY\":\"GXC0612212150025\",\"ZFILED1\":\"FI\",\"ZFILED5\":850,\"ZDATA\":\"[{\\\"MANDT\\\":\\\"850\\\",\\\"ZBZDH\\\":\\\"GXC0612212150025\\\",\\\"ZFPDM\\\":\\\"\\\",\\\"ZFPHM\\\":\\\"\\\",\\\"JXSZC\\\":495.15,\\\"ZZCYY\\\":\\\"\\\",\\\"BUDAT\\\":\\\"2022-12-15\\\"}]\"}}";
public String transferOut(@RequestBody ErpInvoiceData erpInvoiceData){
try {
//转化实体
String zdata = erpInvoiceData.getIS_INPUT().getZDATA();
List<ZDATAN> zdatans = JSONObject.parseArray(zdata, ZDATAN.class);
//返回结果实体
OutPut outPut = new OutPut();
EsOutPutResp es = new EsOutPutResp();
es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY());
es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY());
ErpInvoiceData erpInvoiceData = JSON.parseObject(request, ErpInvoiceData.class);
System.out.println(erpInvoiceData);
}
//校验发票号码
boolean allMatch = zdatans.stream().allMatch(e -> StringUtils.isNotBlank(e.getZFPHM()));
//号码存在为空直接返回错误
if (!allMatch) {
es.setZTYPE("E");
es.setZMESSAGE("发票号码不能为空");
outPut.setES_OUTPUT(es);
log.info("进项税转出传入发票存在没有发票号码发票");
return JsonUtils.getInstance().toJsonString(outPut);
}
StringBuilder uuids = new StringBuilder();
zdatans.forEach(e -> uuids.append(e.getZFPDM() == null ? "" : e.getZFPDM()).append(e.getZFPHM()));
//根据uuid查询发票
String[] ids = uuids.toString().split(",");
List<BaseTDxRecordInvoice> tDxRecordInvoices = baseIReceiptInvoiceService.selectByUuids(ids);
if (tDxRecordInvoices == null || tDxRecordInvoices.size() == 0 || tDxRecordInvoices.size() != ids.length) {
es.setZTYPE("E");
es.setZMESSAGE("发票在发票系统中不存在");
outPut.setES_OUTPUT(es);
log.info("进项税转出传入发票在发票系统中不存在");
return JsonUtils.getInstance().toJsonString(outPut);
}
List<BaseTDxRecordInvoice> collect = tDxRecordInvoices.stream().filter(e -> "0".equals(e.getRzhYesorno())).collect(Collectors.toList());
if (collect.size() > 0) {
es.setZTYPE("E");
es.setZMESSAGE("发票未认证不可转出");
outPut.setES_OUTPUT(es);
log.info("进项税转出传入发票存在未认证发票");
return JsonUtils.getInstance().toJsonString(outPut);
}
//进项税转出或者取消转出
UserInfo userInfo = getUserInfo();
iReceiptOutService.transferOrcancelOut(zdatans,userInfo);
es.setZTYPE("Y");
es.setZMESSAGE("操作成功");
log.info("进项税转出成功");
return JsonUtils.getInstance().toJsonString(es);
}catch (Exception e){
e.printStackTrace();
log.error("error", e.getMessage());
OutPut outPut = new OutPut();
EsOutPutResp es = new EsOutPutResp();
es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY());
es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY());
es.setZTYPE("E");
es.setZMESSAGE("系统内部错误");
outPut.setES_OUTPUT(es);
return JsonUtils.getInstance().toJsonString(outPut);
}
}
}

@ -31,6 +31,6 @@ public interface BaseIReceiptInvoiceService {
* 请求参数
* @return 返回结果
*/
String cancelOut(BaseReceiptOutCancelEditReqVO reqVO);
String cancelOut(BaseReceiptOutCancelEditReqVO reqVO) throws Exception;
}

@ -2,7 +2,13 @@ package com.dxhy.erp.service;
import com.dxhy.common.vo.UserInfo;
import com.dxhy.erp.entity.BaseInvoiceEditVO;
import com.dxhy.erp.entity.BaseTDxRecordInvoice;
import com.dxhy.erp.model.ErpInvoiceData;
import com.dxhy.erp.model.ZDATAN;
import org.junit.jupiter.api.parallel.Execution;
import java.util.List;
import java.util.concurrent.ExecutionException;
/**
* @Author wangzhikun
@ -10,5 +16,7 @@ import com.dxhy.erp.model.ErpInvoiceData;
*/
public interface IReceiptOutService {
String transfer(BaseInvoiceEditVO baseInvoiceEditVO, UserInfo userInfo);
String transfer(BaseInvoiceEditVO baseInvoiceEditVO, UserInfo userInfo) throws Exception;
String transferOrcancelOut(List<ZDATAN> zdatans,UserInfo userInfo) throws Exception;
}

@ -63,7 +63,7 @@ public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl<BaseTDxRec
* @return 返回结果
*/
@Override
public String cancelOut(BaseReceiptOutCancelEditReqVO reqVO) {
public String cancelOut(BaseReceiptOutCancelEditReqVO reqVO) throws Exception{
DynamicContextHolder.push("business"+ DbConstant.BUSINESS_WRITE);
String[] uuids = reqVO.getPrimaryKey().split(",");

@ -14,9 +14,7 @@ import com.dxhy.erp.dao.BaseReceiptOutDao;
import com.dxhy.erp.entity.BaseInvoiceEditVO;
import com.dxhy.erp.entity.BaseTDxRecordInvoice;
import com.dxhy.erp.entity.BaseTDxRecordInvoiceOut;
import com.dxhy.erp.model.ErpInvoiceData;
import com.dxhy.erp.model.EsOutPutResp;
import com.dxhy.erp.model.OutPut;
import com.dxhy.erp.model.*;
import com.dxhy.erp.service.BaseIReceiptInvoiceService;
import com.dxhy.erp.service.IReceiptOutService;
import com.dxhy.erp.utils.JsonUtils;
@ -43,7 +41,7 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl<BaseReceiptOutDao,
@Resource
BaseIReceiptInvoiceService baseIReceiptInvoiceService;
@Override
public String transfer( BaseInvoiceEditVO condVO, UserInfo userInfo) {
public String transfer( BaseInvoiceEditVO condVO, UserInfo userInfo) throws Exception{
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ);
String idStr = condVO.getPrimaryKey();
@ -52,13 +50,7 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl<BaseReceiptOutDao,
// first:查询出底账表相关数据
List<BaseTDxRecordInvoice> invoices = baseIReceiptInvoiceService.selectByUuids(ids);
if(CollectionUtils.isEmpty(invoices)){
return TransferContant.INVOICE_NOT_EXIT;
}
invoices = invoices.stream().filter(e -> !"0".equals(e.getRzhYesorno())).collect(Collectors.toList());
if(CollectionUtils.isEmpty(invoices)){
return TransferContant.NOT_RZ;
}
// second:根据uuids查询出转出明细并转为map,key=uuid ,value=转出明细
List<BaseTDxRecordInvoiceOut> outs = listByUuids(ids);
Map<String, BaseTDxRecordInvoiceOut> outMap =
@ -80,11 +72,34 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl<BaseReceiptOutDao,
outList.add(e);
});
DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE);
excuteTransferWrite(condList, outList);
return TransferContant.SUCCESS;
}
@Override
@Transactional(rollbackFor = Exception.class)
public String transferOrcancelOut(List<ZDATAN> zdatans,UserInfo userInfo) throws Exception{
String result = "";
for (ZDATAN zdata : zdatans) {
//转出税额大于1则是转出
if (zdata.getJXSZC().compareTo(BigDecimal.ZERO)==1){
BaseInvoiceEditVO baseInvoiceEditVO = new BaseInvoiceEditVO();
baseInvoiceEditVO.setPrimaryKey(zdata.getZFPDM()==null?"":zdata.getZFPDM()+zdata.getZFPHM());
baseInvoiceEditVO.setOutReason(zdata.getZZCYY());
baseInvoiceEditVO.setOutTax(zdata.getJXSZC().toPlainString());
baseInvoiceEditVO.setOutStatus("1");
baseInvoiceEditVO.setOutTaxPeriod(zdata.getBUDAT());
this.transfer(baseInvoiceEditVO,userInfo);
}else {//转出税额小于0取消转出
BaseReceiptOutCancelEditReqVO baseReceiptOutCancelEditReqVO = new BaseReceiptOutCancelEditReqVO();
baseReceiptOutCancelEditReqVO.setPrimaryKey(zdata.getZFPDM()==null?"":zdata.getZFPDM()+zdata.getZFPHM());
baseIReceiptInvoiceService.cancelOut(baseReceiptOutCancelEditReqVO);
}
}
return TransferContant.SUCCESS;
}
/**
* 根据uuids查询进项税转出明细
*

Loading…
Cancel
Save