销项发票提交

release
王琦 2 years ago
parent e0c1fdeba5
commit 85a3d65edb
  1. 8
      dxhy-common/src/main/java/com/dxhy/common/utils/DateUtils.java
  2. 2
      dxhy-erp/src/main/java/com/dxhy/erp/entity/sdny/SdnyTDxSaleRecordInvoice.java
  3. 109
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ImageSubmitServiceImpl.java

@ -10,6 +10,9 @@ import java.util.*;
*/
@SuppressWarnings({"AlibabaLowerCamelCaseVariableNaming", "AlibabaUndefineMagicConstant"})
public class DateUtils {
public static final String YYYYMMDD = "yyyyMMdd";
/**
* 获取现在时间,这个好用
*
@ -128,6 +131,11 @@ public class DateUtils {
return formatter.format(dateDate);
}
public static String dateToStr(java.util.Date dateDate, String format) {
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(dateDate);
}
/**
* 日期格式化到月份
*

@ -854,4 +854,6 @@ public class SdnyTDxSaleRecordInvoice implements Serializable {
@TableField(exist = false)
private List<SdnyTDxRecordInvoiceDetailSales> detailList;
@TableField(exist = false)
private String sort;
}

@ -1,21 +1,26 @@
package com.dxhy.erp.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.dxhy.common.constant.DbConstant;
import com.dxhy.common.datasource.config.DynamicContextHolder;
import com.dxhy.common.enums.FplxEnum;
import com.dxhy.common.utils.DateUtils;
import com.dxhy.common.utils.R;
import com.dxhy.erp.dao.*;
import com.dxhy.erp.entity.sdny.*;
import com.dxhy.erp.service.ImageSubmitService;
import com.dxhy.erp.service.SdnyTDxRecordInvoiceDetailSalesService;
import com.dxhy.erp.utils.Constant;
import com.dxhy.erp.utils.JsonUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@ -43,7 +48,7 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
public R salesInvoiceSubmit(SNRequestObject params) {
List<String> uuidList = new ArrayList<>();
Map<String, SNInvoice> paramsInvoiceMap = new HashMap<>();
params.getInvoiceInfoList().stream().forEach(item->{
params.getInvoiceInfoList().stream().forEach(item -> {
String uuid = (StringUtils.isBlank(item.getInvoiceCode()) ? "" : item.getInvoiceCode()) + item.getInvoiceNumber();
uuidList.add(uuid);
paramsInvoiceMap.put(uuid, item);
@ -57,16 +62,16 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
}
if (invoicesList.size() != uuidList.size()) {
StringBuffer msg = new StringBuffer();
Map<String, SdnyTDxRecordInvoice> invoiceMap = invoicesList.stream().collect(Collectors.toMap(SdnyTDxRecordInvoice::getUuid, v->v));
uuidList.stream().forEach(uuid->{
Map<String, SdnyTDxRecordInvoice> invoiceMap = invoicesList.stream().collect(Collectors.toMap(SdnyTDxRecordInvoice::getUuid, v -> v));
uuidList.stream().forEach(uuid -> {
if (!invoiceMap.containsKey(uuid)) {
SNInvoice invoice = paramsInvoiceMap.get(uuid);
String errorMsg = "发票代码:"+invoice.getInvoiceCode()+",发票号码:"+invoice.getInvoiceNumber()+";";
String errorMsg = "发票代码:" + invoice.getInvoiceCode() + ",发票号码:" + invoice.getInvoiceNumber() + ";";
msg.append(errorMsg);
}
});
String errorMsg = msg.toString();
return R.error(500, "未查询到如下发票,请重新查验"+errorMsg);
return R.error(500, "未查询到如下发票,请重新查验" + errorMsg);
}
DynamicContextHolder.push(DbConstant.DETAIL_WRITE);
@ -74,7 +79,7 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
detailQueryWrapper.in("uuid", uuidList);
List<SdnyTDxRecordInvoiceDetail> detailList = detailDao.selectList(detailQueryWrapper);
Map<String, List<SdnyTDxRecordInvoiceDetail>> detailiMap = new HashMap<>();
detailList.stream().forEach(item->{
detailList.stream().forEach(item -> {
List<SdnyTDxRecordInvoiceDetail> list = null;
if (detailiMap.containsKey(item.getUuid())) {
list = detailiMap.get(item.getUuid());
@ -86,19 +91,19 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
detailiMap.put(item.getUuid(), list);
}
});
invoicesList.stream().forEach(item->{
invoicesList.stream().forEach(item -> {
item.setImageId(params.getImageId());
item.setBzdh(params.getBillNum());
item.setBzr(params.getJbrUserName());
});
List<SdnyTDxSaleRecordInvoice> salesInvoiceList = new ArrayList<>();
invoicesList.stream().forEach(invoice->{
invoicesList.stream().forEach(invoice -> {
DynamicContextHolder.push(DbConstant.BUSINESS_WRITE);
SdnyTDxSaleRecordInvoice saleRecordInvoice = sdnyTDxSaleRecordInvoiceDao.selectOne(new QueryWrapper<SdnyTDxSaleRecordInvoice>().eq("uuid", invoice.getUuid()));
List<SdnyTDxRecordInvoiceDetailSales> salesDetailList = new ArrayList<>();
detailiMap.get(invoice.getUuid()).stream().forEach(item->{
detailiMap.get(invoice.getUuid()).stream().forEach(item -> {
SdnyTDxRecordInvoiceDetailSales salesDetail = JsonUtils.getInstance().parseObject(JSONObject.toJSONString(item), SdnyTDxRecordInvoiceDetailSales.class);
salesDetail.setId(null);
salesDetailList.add(salesDetail);
@ -121,6 +126,7 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
sdnyTDxSaleRecordInvoiceDao.updateById(saleRecordInvoice);
}
saleRecordInvoice.setDetailList(salesDetailList);
saleRecordInvoice.setSort(paramsInvoiceMap.get(invoice.getUuid()).getSort());
salesInvoiceList.add(saleRecordInvoice);
});
@ -134,14 +140,93 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
/**
* 推送SAP
*
* @param invoiceList
* @param flag true提交 false撤回
* @param flag true提交 false撤回
* @return
*/
public R pushSap(List<SdnyTDxSaleRecordInvoice> invoiceList, Boolean flag) {
public R pushSap(List<SdnyTDxSaleRecordInvoice> invoiceList, SNRequestObject params) {
String dt = DateUtil.now();
List<ZData> zDataList = new ArrayList<>();
invoiceList.stream().forEach(item -> {
String invoiceType = FplxEnum.getSapFplxdm(item.getInvoiceType());
if (StringUtils.isBlank(invoiceType)) {
throw new RuntimeException("推送SAP失败,推导发票类型错误,发票代码:"+item.getInvoiceCode()+",发票代码:"+item.getInvoiceNo());
}
ZData zdata = new ZData();
zdata.setZFPDM(StringUtils.isBlank(item.getInvoiceCode())?"":item.getInvoiceCode());
zdata.setZFPHM(item.getInvoiceNo());
zdata.setZFPLX(invoiceType);
zdata.setZXFBM(item.getXfTaxNo());
zdata.setZGFBH(item.getGfTaxNo());
zdata.setZHSJE(item.getTaxAmount().toPlainString());
zdata.setZBHSJE_DIF("0");
zdata.setZZSE_DIF("0");
zdata.setZHSJE_DIF("0");
zdata.setZZBZ(item.getRemark());
zdata.setZFPZT("0");
zdata.setZKPRQ(DateUtils.dateToStr(item.getInvoiceDate(),DateUtils.YYYYMMDD));
zdata.setMANDT(params.getClientNum());
zdata.setZGFMC(item.getGfName());
zdata.setZGFSH(item.getGfTaxNo());
zdata.setZXFMC(item.getXfName());
zdata.setZXFSH(item.getXfTaxNo());
zdata.setZTID(StringUtils.isBlank(item.getInvoiceCode())?"":item.getInvoiceCode()+item.getInvoiceNo()+invoiceType);
zdata.setZJYM(item.getCheckCode());
zdata.setZGFZH(item.getGfBankAndNo());
zdata.setZGFDH(item.getGfAddressAndPhone());
zdata.setZXFDH(item.getXfAddressAndPhone());
zdata.setZXFZH(item.getXfBankAndNo());
zdata.setZPJLY("1");
zdata.setZYGC(params.getJbrUserNum());
zdata.setZYHM(params.getJbrUserName());
zdata.setZQM("opentext");
zdata.setZGSDM(params.getCompCode());
if(!StringUtils.isBlank(params.getBillNum())){
zdata.setZYWDJ(params.getBillNum());
zdata.setZYWZT("1");
zdata.setZBZDH(params.getBillNum());
}else{
zdata.setZYWZT("0");
}
zdata.setZPJZT("2");
zdata.setZCJSJ(dt);
zdata.setZCJR(params.getJbrUserNum());
zdata.setZGXSJ(dt);
zdata.setZGXR(params.getJbrUserNum());
zdata.setZCYZT("1");
zdata.setZCYJG("查验成功");
zdata.setZCYRQ(dt);
zdata.setZBHSJE_Y(item.getInvoiceAmount().toPlainString());
zdata.setZZSE_Y(item.getTaxAmount().toPlainString());
zdata.setZHSJE_Y(item.getTotalAmount().toPlainString());
zdata.setZBHSJE(item.getInvoiceAmount().toPlainString());
zdata.setFPYXBH(params.getImageId());
zdata.setIMG_ID(params.getImageId());
zdata.setSORT(String.valueOf(item.getSort()));
BigDecimal taxRate = BigDecimal.ZERO;
for (SdnyTDxRecordInvoiceDetailSales detail : item.getDetailList()) {
}
});
S4Request request = S4Request.builder()
.SYSID("FPXT")
.IFYWID("FI889")
.BSKEY(params.getBillNum())
.ZORG(params.getCompCode())
.ZFILED4(params.getImageId())
.ZFILED5(params.getClientNum()).build();
return R.success();
}
/**
* 处理税率
* @param taxRate
* @return
*/
public BigDecimal getTaxRate(String taxRate) {
}
}

Loading…
Cancel
Save