diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java index a954c619..e092e68d 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java @@ -1260,4 +1260,17 @@ public class SDNYMainProcessController extends AbstractController { } return ZCYJG; } + + /** + * 查验发票 + */ + @PostMapping("/refresh") + @ResponseBody + @SysLog("发票查验") + public String refreshDetailData(@RequestBody Map pramsMap) throws Exception { + log.info("接口请求的参数为:{}",pramsMap); + String result = snPushCheckRecordService.getRecords(pramsMap); + return result; + } + } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java b/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java index 55649758..953f3ec5 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java @@ -185,4 +185,8 @@ public interface TdxRecordInvoiceDao extends BaseMapper { void saveInvoiceAccount(TdxInvoiceAccount invoice); void deleteByuuid(@Param("uuids") String[] uuids); + + List selectRecords(@Param("pramsMap") Map pramsMap); + + void updateTaxRate(@Param("pramsMap") Map pramsMap); } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java index 6b0cd5df..2661ea5f 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java @@ -4,7 +4,9 @@ import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; @@ -40,6 +42,7 @@ import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * 与山东能源交互数据主类 @@ -88,12 +91,18 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { @Resource private TDxInvoiceReimburseDao invoiceReimburseDao; + @Resource + private TdxRecordInvoiceDao tdxRecordInvoiceDao; + @Resource private BaseTDxRecordInvoiceDao baseTDxRecordInvoiceDao; @Resource private TDxInvoiceReimburseService tDxInvoiceReimburseService; + @Resource + private BaseTDxRecordInvoiceDetailDao baseTDxRecordInvoiceDetailDao; + @Resource private SysDeptDao sysDeptDao; @@ -270,6 +279,48 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter { return queryInvoiceResult; } + public String getRecords(Map pramsMap) { + DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE); + QueryWrapper recordWrapper = new QueryWrapper<>(); + List uuids = tdxRecordInvoiceDao.selectRecords(pramsMap); + log.info("获取的uuid为{}",uuids); + + for (String uuid: uuids) { + boolean flag = false; + QueryWrapper detailWrapper = new QueryWrapper<>(); + detailWrapper.eq("uuid", uuid); + DynamicContextHolder.push("business" + DbConstant.DETAIL_READ); + List details = baseTDxRecordInvoiceDetailDao.selectList(detailWrapper); + DynamicContextHolder.push("business" + DbConstant.BUSINESS_READ); + + log.info("获取到的明细为:{}",details); + String taxRate = ""; + for(BaseTDxRecordInvoiceDetail detail : details){ + //获取明细信息 更新主表税率 + if(StringUtils.isNotEmpty(detail.getTaxRate())){ + if(flag){ + if(!taxRate.contains(detail.getTaxRate())) { + taxRate = taxRate + "," + detail.getTaxRate(); + } + }else{ + if(!taxRate.contains(detail.getTaxRate())) { + taxRate = taxRate + detail.getTaxRate(); + } + flag = true; + } + } + } + log.info("获取的数据明细taxRate为={}",taxRate); + Map updateParam = new HashMap<>(); + updateParam.put("taxRate",taxRate); + updateParam.put("uuid",uuid); + + tdxRecordInvoiceDao.updateTaxRate(updateParam); + } + return "ok"; + } + + public JSONObject singleCheckInvoice(Map pramsMap) throws Exception { //1.封装查验参数 diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java index 3db85952..c401c8c6 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java @@ -71,7 +71,7 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl condList = setPartInvoiceByType(invoices, condVO, userInfo); List outList = new ArrayList<>(); - // fourth:对比流水明细,区分底账表list中需要update或者insert的数据 + // fourth:对比流水明细,区分底账表list中需要update或者insert数据的 invoices.forEach(invoice -> { BaseTDxRecordInvoiceOut e = new BaseTDxRecordInvoiceOut(); if (outMap.containsKey(invoice.getUuid())) { diff --git a/dxhy-erp/src/main/resources/mapper/TdxRecordInvoiceDao.xml b/dxhy-erp/src/main/resources/mapper/TdxRecordInvoiceDao.xml index d1484bce..6684881f 100644 --- a/dxhy-erp/src/main/resources/mapper/TdxRecordInvoiceDao.xml +++ b/dxhy-erp/src/main/resources/mapper/TdxRecordInvoiceDao.xml @@ -688,5 +688,17 @@ + + + + update t_dx_record_invoice + set tax_rate = #{pramsMap.taxRate} + where uuid = #{pramsMap.uuid} + +