Merge remote-tracking branch 'origin/0731-进项权限修改' into release

release
WangQi 2 years ago
commit 8cbb18208f
  1. 2
      dxhy-base/src/main/java/com/dxhy/base/controller/BaseFpcjController.java
  2. 2
      dxhy-base/src/main/java/com/dxhy/base/service/tdxrecordinvoice/BaseFpdrrzServiceImpl.java
  3. 15
      dxhy-common/src/main/java/com/dxhy/common/constant/TransferContant.java
  4. 2
      dxhy-core/src/main/java/com/dxhy/core/job/service/impl/SupplierRiskServiceImpl.java
  5. 2
      dxhy-core/src/main/resources/mapper/job/ViolationTaxnoDao.xml
  6. 117
      dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java
  7. 2
      dxhy-erp/src/main/java/com/dxhy/erp/service/IReceiptOutService.java
  8. 3
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java
  9. 25
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/InvoiceAuthServiceImpl.java
  10. 25
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java
  11. 3
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/SignSaveInvoiceInfoServiceImpl.java
  12. 2
      dxhy-extend/src/main/resources/mapper/index/ExtDefinitiveStrideYearCopDao.xml

@ -128,7 +128,7 @@ public class BaseFpcjController extends AbstractController {
return ResponseEntity.ok(R.error("购方信息不能为空!"));
}
if (StringUtils.isNotBlank(cjrq)) {
cjrq = DateUtils.getNight(DateUtils.strToDate(cjrq));
// cjrq = DateUtils.getNight(DateUtils.strToDate(cjrq));
pramsMap.put("cjrq", cjrq);
} else {
return ResponseEntity.ok(R.error("采集日期不能为空!"));

@ -146,7 +146,7 @@ public class BaseFpdrrzServiceImpl extends MpBaseServiceImpl<BaseFpdrrzDao, Base
QueryWrapper<BaseTDxRecordInvoice> queryRecord = new QueryWrapper<>();
queryRecord.eq("uuid", uuid);
BaseTDxRecordInvoice rdxRecordInvoice = baseTDxRecordInvoiceDao.selectOne(queryRecord);
if (rdxRecordInvoice.getDkTaxAmount() != null && StringUtils.isNotBlank(rdxRecordInvoice.getDkTaxAmount().toPlainString())){
if (rdxRecordInvoice != null && rdxRecordInvoice.getDkTaxAmount() != null && StringUtils.isNotBlank(rdxRecordInvoice.getDkTaxAmount().toPlainString())){
rzlb.setDkse(rdxRecordInvoice.getDkTaxAmount().toPlainString());
}
if (rdxRecordInvoice != null) {

@ -0,0 +1,15 @@
package com.dxhy.common.constant;
public class TransferContant {
public static final String SUCCESS = "SUCCESS";
public static final String INVOICE_NO_NOT_EXIT = "INVOICE_NO_NOT_EXIT";
public static final String INVOICE_NOT_EXIT = "INVOICE_NOT_EXIT";
public static final String NOT_RZ = "NOT_RZ";
public static final String CANCEL_SUCCESS = "CANCEL_SUCCESS";
}

@ -172,7 +172,7 @@ public class SupplierRiskServiceImpl extends MpBaseServiceImpl<ViolationLogDao,
object.setSYSID("FPXT");
object.setIFYWID("FI870");
object.setBSKEY(UUID.randomUUID().toString().replace("-", ""));
object.setZFILED5("300");
object.setZFILED5("800");
List<SupplierRisk> risks = new ArrayList<>();

@ -15,6 +15,8 @@
where company = #{company}
and org_type = '5'
and del_flag = '0'
and taxno != ''
and taxno is not null
</select>
<select id="selectViolationTaxno" resultType="com.dxhy.core.job.entity.TDxViolationTaxno" databaseId="mysql">
select gf_tax_no,xf_tax_no,xf_name,#{company} as company

@ -2,11 +2,13 @@ package com.dxhy.erp.controller;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.druid.sql.ast.statement.SQLIfStatement;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.dxhy.common.constant.ConfigureConstant;
import com.dxhy.common.constant.ConfigurerInfo;
import com.dxhy.common.constant.DbConstant;
import com.dxhy.common.constant.TransferContant;
import com.dxhy.common.controller.AbstractController;
import com.dxhy.common.datasource.config.DynamicContextHolder;
import com.dxhy.common.enums.RespStatusEnum;
@ -30,6 +32,7 @@ import com.dxhy.erp.utils.HmacSHA1Util;
import com.dxhy.erp.utils.JsonUtils;
import com.dxhy.erp.utils.OpenApiUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
@ -45,6 +48,7 @@ import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author jiaohongyang
@ -1277,47 +1281,57 @@ public class InterfaceController extends AbstractController {
"/po", JSONObject.toJSONString(fpdms),JSONObject.toJSONString(fphms), "transferOut");
transferOutRecord.setBzdh(JSONObject.toJSONString(bzdhs));
for(Map<String ,Object> map:list){
String invoiceCode =(String) map.get("ZFPDM");
String invoiceNo = (String)map.get("ZFPHM");
String uuid = invoiceCode+invoiceNo;
String[] ids = uuid.split(",");
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ);
List<BaseTDxRecordInvoice> invoices = baseIReceiptInvoiceService.selectByUuids(ids);
OutPut outPut = new OutPut();
EsOutPutResp es = new EsOutPutResp();
es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY());
es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY());
es.setZTYPE("S");
es.setZMESSAGE("处理成功");
if(CollectionUtils.isEmpty(invoices)){
es.setZTYPE("E");
es.setZMESSAGE("底账数据不存在");
outPut.setES_OUTPUT(es);
try {
DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE);
requestRecordService.saveFailedRequestRecord(transferOutRecord, 0, JsonUtils.getInstance().toJsonString(outPut),
es.getZMESSAGE());
} catch (Exception e) {
log.error("FI849接口记录保存失败,errormsg:{}",e);
}
return JsonUtils.getInstance().toJsonString(outPut);
}
}
// for(Map<String ,Object> map:list){
// String invoiceCode =(String) map.get("ZFPDM");
// String invoiceNo = (String)map.get("ZFPHM");
// String uuid = invoiceCode+invoiceNo;
// String[] ids = uuid.split(",");
// DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ);
// List<BaseTDxRecordInvoice> invoices = baseIReceiptInvoiceService.selectByUuids(ids);
// OutPut outPut = new OutPut();
// EsOutPutResp es = new EsOutPutResp();
// es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY());
// es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY());
// es.setZTYPE("S");
// es.setZMESSAGE("处理成功");
//
// if(CollectionUtils.isEmpty(invoices)){
// es.setZTYPE("E");
// es.setZMESSAGE("底账数据不存在可转出发票");
// outPut.setES_OUTPUT(es);
//
// try {
// DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE);
// requestRecordService.saveFailedRequestRecord(transferOutRecord, 0, JsonUtils.getInstance().toJsonString(outPut),
// es.getZMESSAGE());
// } catch (Exception e) {
// log.error("FI849接口记录保存失败,errormsg:{}",e);
// }
//
// return JsonUtils.getInstance().toJsonString(outPut);
// }
// }
try{
/**
* 根据金额判断是转入还是转出
*
*
*/
String transfer ="";
List<String> invoiceNoNotExit = Lists.newArrayList();
List<String> invoiceNotExit = Lists.newArrayList();
List<String> notRz = Lists.newArrayList();
List<String> success = Lists.newArrayList();
for(Map<String,Object> map:list) {
String invoiceCode =(String) map.get("ZFPDM");
String invoiceNo = (String)map.get("ZFPHM");
if (StringUtils.isBlank(invoiceNo)){
invoiceNoNotExit.add((String)map.get("ID"));
continue;
}
BigDecimal bigDecimal = (BigDecimal) map.get("JXSZC");
String outReason = (String)map.get("ZZCYY");
String outTaxPeriod = (String)map.get("BUDAT");
@ -1330,20 +1344,21 @@ public class InterfaceController extends AbstractController {
baseInvoiceEditVO.setOutTaxPeriod(outTaxPeriod);
UserInfo userInfo = new UserInfo();
if(bigDecimal.compareTo(BigDecimal.ZERO)==1){
transfer = iReceiptOutService.transfer(erpInvoiceData,baseInvoiceEditVO, userInfo);
transfer = iReceiptOutService.transfer(baseInvoiceEditVO, userInfo);
if (TransferContant.INVOICE_NOT_EXIT.equals(transfer)){
invoiceNotExit.add((String)map.get("ZFPHM"));
}else if (TransferContant.NOT_RZ.equals(transfer)){
notRz.add((String)map.get("ZFPHM"));
}else if (TransferContant.SUCCESS.equals(transfer)){
success.add((String)map.get("ZFPHM"));
}
}else {
BaseReceiptOutCancelEditReqVO baseReceiptOutCancelEditReqVO = new BaseReceiptOutCancelEditReqVO();
baseReceiptOutCancelEditReqVO.setPrimaryKey(uuid);
String s = baseIReceiptInvoiceService.cancelOut(baseReceiptOutCancelEditReqVO);
if(s.equals("取消转出成功")){
OutPut outPut = new OutPut();
EsOutPutResp es = new EsOutPutResp();
es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY());
es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY());
es.setZTYPE("S");
es.setZMESSAGE("处理成功");
outPut.setES_OUTPUT(es);
transfer = JsonUtils.getInstance().toJsonString(outPut);
if(TransferContant.CANCEL_SUCCESS.equals(s)){
success.add((String)map.get("ZFPHM"));
}
}
}
@ -1355,7 +1370,27 @@ public class InterfaceController extends AbstractController {
log.error("FI849接口记录保存失败,errormsg:{}",e);
}
return transfer;
StringBuilder message = new StringBuilder();
if (invoiceNoNotExit.size()>0){
message.append("ID:").append(invoiceNoNotExit).append("的发票未传入发票号码。");
}
if (invoiceNotExit.size()>0){
message.append("发票号码:").append(invoiceNotExit).append("的发票不存在。");
}
if (notRz.size()>0){
message.append("发票号码:").append(notRz).append("的发票未认证。");
}
if (success.size()>0){
message.append("发票号码:").append(success).append("处理成功");
}
OutPut outPut = new OutPut();
EsOutPutResp es = new EsOutPutResp();
es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY());
es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY());
es.setZTYPE("S");
es.setZMESSAGE(message.toString());
outPut.setES_OUTPUT(es);
return JsonUtils.getInstance().toJsonString(outPut);
}catch (Exception e){
log.error("error", e);
OutPut outPut = new OutPut();

@ -10,5 +10,5 @@ import com.dxhy.erp.model.ErpInvoiceData;
*/
public interface IReceiptOutService {
String transfer(ErpInvoiceData erpInvoiceData, BaseInvoiceEditVO baseInvoiceEditVO, UserInfo userInfo);
String transfer(BaseInvoiceEditVO baseInvoiceEditVO, UserInfo userInfo);
}

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.dxhy.common.constant.DbConstant;
import com.dxhy.common.constant.TransferContant;
import com.dxhy.common.datasource.config.DynamicContextHolder;
import com.dxhy.common.enums.JxszcCancelEnum;
import com.dxhy.common.enums.JxszcZtEnum;
@ -68,7 +69,7 @@ public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl<BaseTDxRec
String[] uuids = reqVO.getPrimaryKey().split(",");
excuteCancelWrite(uuids);
return "取消转出成功";
return TransferContant.CANCEL_SUCCESS;
}
/**

@ -22,6 +22,7 @@ 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.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
@ -346,11 +347,14 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl<RecordInvoiceDao,
fplxList.add("14");
fplxList.add("31");
fplxList.add("32");
List<ZDATA> exitList = Lists.newArrayList();
List<String> notExit = Lists.newArrayList();
for (ZDATA zdata1 : zdata) {
log.info("zdata1.getZFPHM()===>{}", zdata1.getZFPHM());
String collect = fplxList.stream().collect(Collectors.joining(","));
if (!collect.contains(convertFpzldm(zdata1.getZFPLX()))) {
log.info("非增值税先不处理:{}", JSON.toJSONString(zdata1));
exitList.add(zdata1);
continue;
}
String fphm = zdata1.getZFPHM();
@ -369,16 +373,18 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl<RecordInvoiceDao,
//没法区分来源是不是销项发票
TdxSaleRecordInvoice tdxSaleRecordInvoice = tdxSaleRecordInvoiceDao.selectByUuid(uuid);
if (recordInvoiceByUuid == null && tDxInvoiceReimburse == null && tdxSaleRecordInvoice == null) {
errorMsg.append("发票号码:" + zdata1.getZFPHM());
notExit.add(zdata1.getZFPHM());
continue;
}
exitList.add(zdata1);
}
if (errorMsg.length() > 1) {
es.setZMESSAGE(errorMsg.toString() + "不存在");
if (exitList.size() ==0) {
es.setZMESSAGE(errorMsg.append("全部处理失败,").append("发票号码").append(notExit).toString() + "不存在");
es.setZTYPE("E");
return es;
}
log.info("zdata={}",zdata);
for (ZDATA zdata1 : zdata) {
log.info("exitList={}",exitList);
for (ZDATA zdata1 : exitList) {
//成功或者失败标识
boolean flag = false;
log.info("zdata1.getZFPHM():{}", zdata1.getZFPHM());
@ -441,9 +447,16 @@ public class InvoiceAuthServiceImpl extends MpBaseServiceImpl<RecordInvoiceDao,
UpdateWrapper updateWrapper = convertRecordInvoice(zdata1,uuid);
tdxSaleRecordInvoiceDao.update(null,updateWrapper);
}
}
//判断是否有底账库不存在发票
if(notExit.size()>0){
es.setZTYPE("E");
errorMsg.append("成功"+exitList.size()+"条,").append("失败"+notExit.size()+"条,").append("失败原因:发票号码:").append(notExit).append("不存在,其余成功");
es.setZMESSAGE(errorMsg.toString());
}else {
es.setZMESSAGE("处理成功"+exitList.size()+"条");
zdataresp.setPROMSG(promsg.toString());
zdataresp.setPROTYP("S");
es.setZMESSAGE("处理成功");
es.setZdata(zdataresp);
}
return es;

@ -2,6 +2,7 @@ package com.dxhy.erp.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dxhy.common.constant.DbConstant;
import com.dxhy.common.constant.TransferContant;
import com.dxhy.common.datasource.config.DynamicContextHolder;
import com.dxhy.common.enums.JxszcCancelEnum;
import com.dxhy.common.enums.JxszcZtEnum;
@ -42,25 +43,21 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl<BaseReceiptOutDao,
@Resource
BaseIReceiptInvoiceService baseIReceiptInvoiceService;
@Override
public String transfer(ErpInvoiceData erpInvoiceData, BaseInvoiceEditVO condVO, UserInfo userInfo) {
OutPut outPut = new OutPut();
EsOutPutResp es = new EsOutPutResp();
es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY());
es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY());
es.setZTYPE("S");
es.setZMESSAGE("处理成功");
public String transfer( BaseInvoiceEditVO condVO, UserInfo userInfo) {
DynamicContextHolder.push("business"+DbConstant.BUSINESS_READ);
String idStr = condVO.getPrimaryKey();
String[] ids = idStr.split(",");
// String[] ids = idStr.split(",");
String[] ids = {idStr};
// first:查询出底账表相关数据
List<BaseTDxRecordInvoice> invoices = baseIReceiptInvoiceService.selectByUuids(ids);
if(CollectionUtils.isEmpty(invoices)){
es.setZTYPE("E");
es.setZMESSAGE("底账数据不存在");
outPut.setES_OUTPUT(es);
return JsonUtils.getInstance().toJsonString(outPut);
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);
@ -85,8 +82,8 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl<BaseReceiptOutDao,
DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE);
excuteTransferWrite(condList, outList);
outPut.setES_OUTPUT(es);
return JsonUtils.getInstance().toJsonString(outPut);
return TransferContant.SUCCESS;
}
/**
* 根据uuids查询进项税转出明细

@ -1,6 +1,5 @@
package com.dxhy.erp.service.impl;
import com.aisinopdf.text.pdf.B;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -328,7 +327,7 @@ public class SignSaveInvoiceInfoServiceImpl extends MpBaseServiceImpl<SignRecord
}
}
invoiceDetail.setTaxRate(rate);
taxRateArr.add(invoiceDetailQuery.getString("taxRate"));
taxRateArr.add(rate);
// if(StringUtils.isNotEmpty(invoiceDetailQuery.getString("taxRate")) && !taxRate.contains(invoiceDetailQuery.getString("taxRate"))) {
// if(i == dataArray.size() -1) {
// taxRate = taxRate + invoiceDetailQuery.getString("taxRate");

@ -51,7 +51,7 @@
<if test="billingDate1 != null">
AND date_format(t.invoice_date,'%Y') = date_format(#{billingDate1},'%Y')
</if>
and date_format(qs_date,'%Y-%m') >= date_format(now(),'%Y-%m')
and date_format(qs_date,'%Y-%m') = date_format(now(),'%Y-%m')
order by t.qs_date desc
</select>

Loading…
Cancel
Save