Merge branch 'release' of http://192.168.12.182/invoice/pt into 0602L

release
yishiqihuasheng 2 years ago
commit e79eac94ad
  1. 4
      dxhy-base/src/main/java/com/dxhy/base/service/invoicecheck/BaseInvoiceManualCheckServiceImpl.java
  2. 9
      dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java
  3. 2
      dxhy-erp/src/main/java/com/dxhy/erp/model/ZDATA.java
  4. 86
      dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java
  5. 112
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java

@ -225,9 +225,9 @@ public class BaseInvoiceManualCheckServiceImpl extends MpBaseServiceImpl<BaseTDx
// String dkzt= dictdetaServcice.queryDictName(DictConstant.INACCOUNT_STATUS,pageList.get(i).getInAccountStatus());
// pageList.get(i).setInAccountStatus(dkzt);
// vo.setInAccountStatus(dkzt);
vo.setSelect(true);
if (!"1".equals(pageList.get(i).getAuthStatus())) {
vo.setSelect(false);
if ("1".equals(pageList.get(i).getAuthStatus())) {
vo.setSelect(true);
}
log.info("手工勾选查询返回对象VO {}",vo);

@ -606,18 +606,13 @@ public class SDNYMainProcessController extends AbstractController {
} else {
object.setZFILED5(environment);
}
// object.setZFILED5(environment);
List<SAPInvoiceInfo> sapInvoiceInfos = new ArrayList<>();
if (invoiceInfoList != null && invoiceInfoList.size() > 0) {
for (SNInvoice invoice : invoiceInfoList) {
String fplxdm = "";
String snFplx = "";
// if (invoice.getPurchaserTaxNo() == null || "".equals(invoice.getPurchaserTaxNo())){
// invoice.setPurchaserTaxNo(taxno);
// }
// if (invoice.getPurchaserName() == null || "".equals(invoice.getPurchaserName())){
// invoice.setPurchaserName(taxname);
// }
result = snPushCheckRecordService.updateInvoicePoll(company, taxno, reimburse, invoice, fplxdm, imageId, compCode);
//价税分离判断

@ -36,4 +36,6 @@ public class ZDATA {
private String BELNR;
@JsonProperty(value = "BUDAT")
private String BUDAT;
@JsonProperty(value = "XXBS")
private String XXBS;
}

@ -11,6 +11,7 @@ import com.dxhy.common.enums.FplxEnum;
import com.dxhy.common.enums.SNFplxEnum;
import com.dxhy.common.util.InvoiceUtil;
import com.dxhy.common.util.StringHelper;
import com.dxhy.common.utils.R;
import com.dxhy.common.vo.UserInfo;
import com.dxhy.erp.dao.*;
import com.dxhy.erp.entity.*;
@ -30,6 +31,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@ -95,6 +97,12 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
@Resource
private SysDeptDao sysDeptDao;
@Resource
private SNPushCheckRecordService snPushCheckRecordService;
@Resource
private SignSaveInvoiceInfoService signSaveInvoiceInfoService;
@Resource
private TdxPlatformCheckLogService platformCheckLogService;
@ -451,8 +459,8 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
jsonObject.put("tonnage", invoiceData.get("dw"));
jsonObject.put("limitPeople", invoiceData.get("xcrs"));
String taxRate = "";
if (invoiceData.get("sl")==null||StringUtils.isBlank(invoiceData.get("sl").toString())||
"免税".equals(invoiceData.get("sl").toString())|| "不征税".equals(invoiceData.get("sl").toString()) || "***".equals(invoiceData.get("sl").toString())) {
if (invoiceData.get("sl") == null || StringUtils.isBlank(invoiceData.get("sl").toString()) ||
"免税".equals(invoiceData.get("sl").toString()) || "不征税".equals(invoiceData.get("sl").toString()) || "***".equals(invoiceData.get("sl").toString())) {
taxRate = "0";
jsonObject.put("taxRate", taxRate);
} else {
@ -615,14 +623,19 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
InvoiceInfo invoiceInfo = convertToInvoiceInfo(invoice);
log.info("进行价税分离的发票信息为:{}", invoiceInfo);
ServiceResult<InvoiceInfo> invoiceResult = new ServiceResult<>();
boolean flag = false;
//0523晚成伟提出新需求,客运汽车票必须实名才可以进行价税分离
if(SNFplxEnum.KYQCP.getFplxDm().equals(fplxdm)){
if(StringUtils.isEmpty(invoice.getRiderName()) || StringUtils.isEmpty(invoice.getIdcardNo())){
if (SNFplxEnum.KYQCP.getFplxDm().equals(fplxdm)) {
if (StringUtils.isEmpty(invoice.getRiderName()) || StringUtils.isEmpty(invoice.getIdcardNo())) {
log.info("非实名的实名客票 不需要做价税分离");
}
flag = true;
invoiceResult.setMsg("ok");
invoiceResult.setResult(true);
}else {
}
}
if(!flag) {
invoiceResult = this.valoremTaxCount(invoiceInfo, "Y");
InvoiceInfo data = invoiceResult.getData();
if (data != null) {
@ -637,6 +650,7 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
}
}
if (!"ok".equals(invoiceResult.getMsg()) && !"0000".equals(invoiceResult.getMsg())) {
log.info("价税分离失败:{}", invoiceResult.getMsg());
return invoiceResult.getMsg();
@ -675,6 +689,62 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
if ("01".equals(fplxdm) || "02".equals(fplxdm) || "03".equals(fplxdm) || "04".equals(fplxdm)
|| "08".equals(fplxdm) || "10".equals(fplxdm) || "11".equals(fplxdm) || "14".equals(fplxdm)
|| "15".equals(fplxdm) || "31".equals(fplxdm) || "32".equals(fplxdm)) {
DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE);
String fpdm = invoice.getInvoiceCode();
String fphm = invoice.getInvoiceNumber();
QueryWrapper<BaseTDxRecordInvoice> recordWrapper = new QueryWrapper<>();
if (StringUtils.isEmpty(fpdm)) {
recordWrapper.eq("uuid", fphm);
} else {
recordWrapper.eq("uuid", fpdm + fphm);
}
BaseTDxRecordInvoice update = baseTDxRecordInvoiceDao.selectOne(recordWrapper);
Map<String, String> pramsMap = new HashMap<>();
JSONObject checkInvoiceResult = null;
//如果提交的发票信息在底账库不存在,则重新补充查验,插入数据库中.
if (update == null) {
try {
//传入的参数为:{billingDate=2023-04-24, totalAmount=9708.74, purchaserTaxNo=91370000MA3RD38A9Q, invoiceNumber=02014197, invoiceType=10100,
// invoiceCode=3700222130, checkCode=}
pramsMap.put("invoiceCode", fpdm);
pramsMap.put("invoiceNumber", fphm);
if (StringUtils.isNotEmpty(invoice.getBillingDate())) {
String billingDate = invoice.getBillingDate().replaceAll("-", "");
pramsMap.put("billingDate", billingDate);
}
if("31".equals(invoice.getInvoiceType()) || "32".equals(invoice.getInvoiceType())){
pramsMap.put("totalAmount", invoice.getAmountTax());
}else{
pramsMap.put("totalAmount", invoice.getTotalAmount());
}
pramsMap.put("purchaserTaxNo", invoice.getPurchaserTaxNo());
if("31".equals(invoice.getInvoiceType()) || "32".equals(invoice.getInvoiceType())){
pramsMap.put("invoiceType", "21");
}else {
pramsMap.put("invoiceType", invoice.getInvoiceType());
}
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap);
log.info("补充查验结果为:{}", checkInvoiceResult);
} catch (Exception e) {
e.printStackTrace();
log.error("补充查验失败,errormsg:{}", e.getMessage());
}
if (!checkInvoiceResult.containsKey("code")) {
if (!checkInvoiceResult.containsKey("cyjg")) {
checkInvoiceResult.put("invoiceNo", checkInvoiceResult.getString("invoiceNumber"));
log.info("补充查验的结果为:{}", checkInvoiceResult);
signSaveInvoiceInfoService.saveQueryInvoiceResult(checkInvoiceResult, "", "1", "business");
}
}
}
DynamicContextHolder.push(DbConstant.BASICS_WRITE);
//可查验发票,已入库,更新票池
Integer integer = this.pushInvoiceToRecordInvoice2(invoice, imageId, compCode);
log.info("可查验发票,更新底账库完成");
@ -720,10 +790,10 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
log.info("uuid={}", uuid);
reimburse.setSelectId(uuid);
if (StringHelper.isNotBlank(invoice.getTaxRate())){
if (StringHelper.isNotBlank(invoice.getTaxRate())) {
reimburse.setTaxRate(invoice.getTaxRate());
reimburse.setTaxCode(getTaxCode(invoice.getTaxRate()));
}else {
} else {
reimburse.setTaxRate("0%");
reimburse.setTaxCode(getTaxCode(reimburse.getTaxRate()));
}

@ -10,6 +10,7 @@ import com.dxhy.common.datasource.config.DynamicContextHolder;
import com.dxhy.common.enums.FplxEnum;
import com.dxhy.common.enums.ReturnCodeEnum;
import com.dxhy.common.service.impl.MpBaseServiceImpl;
import com.dxhy.common.util.DateOrderUtil;
import com.dxhy.common.util.StringHelper;
import com.dxhy.common.util.pojo.Authorize;
import com.dxhy.common.util.pojo.GlobalInfo;
@ -20,8 +21,11 @@ import com.dxhy.erp.model.auth.InterfaceCode;
import com.dxhy.erp.service.InvoiceAuthService;
import com.dxhy.erp.service.TDxInvoiceReimburseService;
import com.dxhy.erp.utils.CheckUtils;
import com.dxhy.erp.utils.DateUtil;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -30,6 +34,7 @@ import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author dxhy
@ -342,11 +347,15 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl<RecordInvoiceDao,
fplxList.add("31");
fplxList.add("32");
for(ZDATA zdata1:zdata){
log.info("zdata1.getZFPHM()===>{}",zdata1.getZFPHM().length());
log.info("zdata1.getZFPHM()===>{}",zdata1.getZFPHM());
String collect = fplxList.stream().collect(Collectors.joining(","));
if(!collect.contains(convertFpzldm(zdata1.getZFPLX()))){
log.info("非增值税先不处理:{}",JSON.toJSONString(zdata1));
continue;
}
String fphm = zdata1.getZFPHM();
if (StringHelper.isNotBlank(fphm) && fphm.length() > 8 && !("26".equals(zdata1.getZFPLX()) || "27".equals(zdata1.getZFPLX()))){
fphm = fphm.substring(fphm.length() - 8);
if (org.apache.commons.lang3.StringUtils.isNotBlank(fphm) && fphm.length() > 8 && !("26".equals(zdata1.getZFPLX()) || "27".equals(zdata1.getZFPLX()))){
fphm = fphm.replace(zdata1.getZFPDM(),"");
log.info("非全电但是号码");
}
log.info("发票号码{}",fphm);
@ -372,32 +381,21 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl<RecordInvoiceDao,
for(ZDATA zdata1:zdata){
//成功或者失败标识
boolean flag = false;
log.info("zdata1.getZFPHM(){}",zdata1.getZFPHM().length());
log.info("zdata1.getZFPHM():{}",zdata1.getZFPHM());
String fphm = zdata1.getZFPHM();
if (StringHelper.isNotBlank(fphm) && fphm.length() > 8 && !("26".equals(zdata1.getZFPLX()) || "27".equals(zdata1.getZFPLX()))){
fphm = fphm.substring(fphm.length() - 8);
if (org.apache.commons.lang3.StringUtils.isNotBlank(fphm) && fphm.length() > 8 && !("26".equals(zdata1.getZFPLX()) || "27".equals(zdata1.getZFPLX()))){
fphm = fphm.replace(zdata1.getZFPDM(),"");
log.info("非全电但是号码");
}
log.info("发票号码{}",fphm);
String uuid = zdata1.getZFPDM()+fphm;
//销项标识
String xxbs = zdata1.getXXBS();
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ);
if(fplxList.contains(zdata1.getZFPLX())){
if(fplxList.contains(zdata1.getZFPLX()) && !"X".equalsIgnoreCase(xxbs)){
TdxRecordInvoice recordInvoiceByUuid = tDxrecordInvoiceDao.getRecordInvoiceByUuid(uuid);
if(recordInvoiceByUuid!=null){
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.eq("uuid",uuid);
//凭证号
updateWrapper.set("sn_voucher_number",zdata1.getBELNR());
//凭证过账日期
updateWrapper.set("posting_time",zdata1.getBUDAT());
//账期
updateWrapper.set("account_period",zdata1.getBUDAT().substring(0,7));
//报账单号
updateWrapper.set("bzdh",zdata1.getZBZDH());
//入账状态
updateWrapper.set("inaccount_status",zdata1.getZYWZT());
updateWrapper.set("comp_code",zdata1.getZGSDM());
updateWrapper.set("bzr",zdata1.getZJBRT());
UpdateWrapper updateWrapper = convertRecordInvoice(zdata1,uuid);
DynamicContextHolder.push("business"+DbConstant.BUSINESS_WRITE);
int update = tDxrecordInvoiceDao.update(null, updateWrapper);
if(update>0){
@ -420,34 +418,16 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl<RecordInvoiceDao,
}
}
}else {
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.eq("uuid",uuid);
//凭证号
updateWrapper.set("sn_voucher_number",zdata1.getBELNR());
//凭证过账日期
updateWrapper.set("posting_time",zdata1.getBUDAT());
//账期
updateWrapper.set("account_period",zdata1.getBUDAT().substring(0,7));
//报账单号
updateWrapper.set("bzdh",zdata1.getZBZDH());
//入账状态
updateWrapper.set("inaccount_status",zdata1.getZYWZT());
updateWrapper.set("comp_code",zdata1.getZGSDM());
updateWrapper.set("bzr",zdata1.getZJBRT());
UpdateWrapper updateWrapper = convertRecordInvoice(zdata1,uuid);
DynamicContextHolder.push("business"+DbConstant.BUSINESS_WRITE);
tDxInvoiceReimburseService.getBaseMapper().update(null,updateWrapper);
}
if ("X".equalsIgnoreCase(xxbs)){
DynamicContextHolder.push("business"+DbConstant.BUSINESS_WRITE);
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.set("sn_voucher_number",zdata1.getBELNR());
updateWrapper.set("posting_time",zdata1.getBUDAT());
updateWrapper.set("account_period",zdata1.getBUDAT().substring(0,7));
updateWrapper.set("bzdh",zdata1.getZBZDH());
updateWrapper.set("inaccount_status",zdata1.getZYWZT());
updateWrapper.set("comp_code",zdata1.getZGSDM());
updateWrapper.set("bzr",zdata1.getZJBRT());
updateWrapper.eq("uuid",uuid);
UpdateWrapper updateWrapper = convertRecordInvoice(zdata1,uuid);
tdxSaleRecordInvoiceDao.update(null,updateWrapper);
}
if(!flag){
promsg.append("票据号码:"+zdata1.getZFPHM()+"绑定成功! ");
}
@ -459,6 +439,25 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl<RecordInvoiceDao,
return es;
}
public UpdateWrapper convertRecordInvoice(ZDATA zdata,String uuid){
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.set("sn_voucher_number",zdata.getBELNR());
try {
DateTime parse = DateTime.parse(zdata.getBUDAT());
updateWrapper.set("posting_time",zdata.getBUDAT());
//账期
updateWrapper.set("account_period",zdata.getBUDAT().substring(0,7));
} catch (Exception e) {
log.error("时间转换异常:{}",e);
}
updateWrapper.set("bzdh",zdata.getZBZDH());
updateWrapper.set("inaccount_status",zdata.getZYWZT());
updateWrapper.set("comp_code",zdata.getZGSDM());
updateWrapper.set("bzr",zdata.getZJBRT());
updateWrapper.eq("uuid",uuid);
return updateWrapper;
}
public ReturnStateInfo getCheckData(List<Map<String, Object>> authStateList, Integer contentRows) {
ReturnStateInfo run = new ReturnStateInfo();
if (contentRows == null || authStateList.size() != contentRows) {
@ -532,9 +531,26 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl<RecordInvoiceDao,
}
public static void main(String[] args) {
String d="2023";
String substring = d.substring(0, 7);
System.out.println(substring);
Date date = DateUtil.strToDate("0000-00-00");
DateTime parse1 = DateTime.parse("2012-12-01");
Date date11 = parse1.toDate();
HashMap<Object, Object> map = Maps.newHashMap();
map.put("1","3");
try {
DateTime parse = DateTime.parse("0000-00-00");
map.put("2","3");
Date date1 = parse.toDate();
String s = parse.toString("yyyy-MM-dd ");
System.out.println("");
} catch (Exception e) {
// throw new RuntimeException(e);
}
map.put("3","3");
System.out.println();
// String d="2023";
// String substring = d.substring(0, 7);
// System.out.println(substring);
}

Loading…
Cancel
Save