feature:冲红流程开发

release
高荣琳 2 years ago
parent b4079f431a
commit 816bebd90d
  1. 9
      order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/redis/service/RedisService.java
  2. 23
      order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/redis/service/impl/RedisServiceImpl.java
  3. 115
      order-management-common/src/main/java/com/dxhy/order/model/page/OrderInvoiceInfoVo.java
  4. 17
      order-management-common/src/main/java/com/dxhy/order/model/page/RedInvoiceCheckReqPo.java
  5. 23
      order-management-common/src/main/java/com/dxhy/order/model/page/RedInvoicePreReqPo.java
  6. 14
      order-management-common/src/main/java/com/dxhy/order/model/page/RedInvoiceRespPo.java
  7. 19
      order-management-common/src/main/java/com/dxhy/order/model/page/RedInvoiceStageReqPo.java
  8. 128
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInvoiceController.java
  9. 6
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInvoiceInfoMapper.java
  10. 15
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OrderInvoiceInfoService.java
  11. 128
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java
  12. 73
      order-management-invoice/src/main/resources/mybatis/mapper/OrderInvoiceInfoMapper.xml

@ -1,6 +1,7 @@
package com.dxhy.order.baseservice.module.thirdservice.redis.service;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
@ -166,4 +167,12 @@ public interface RedisService {
* @return
*/
Long getExpire(String key);
void putHashMap(String key,String field,String value);
String pullHashMap(String key,String field);
Map<String, String> pullAllHashMap(String key);
Long delHashMap(String key);
}

@ -4,11 +4,13 @@ import com.dxhy.order.utils.JsonUtils;
import com.dxhy.order.baseservice.module.thirdservice.redis.service.RedisService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@ -198,4 +200,25 @@ public class RedisServiceImpl implements RedisService {
public Long getExpire(String key) {
return redisTemplate.getExpire(key);
}
@Override
public void putHashMap(String key,String field,String value){
redisTemplate.opsForHash().put(key, field, value);
}
@Override
public String pullHashMap(String key,String field){
HashOperations<String, String, String> stringHashOperations = redisTemplate.opsForHash();
return stringHashOperations.get(key, field);
}
@Override
public Map<String, String> pullAllHashMap(String key){
HashOperations<String, String, String> stringHashOperations = redisTemplate.opsForHash();
return stringHashOperations.entries(key);
}
@Override
public Long delHashMap(String key) {
HashOperations<String, String, String> stringHashOperations = redisTemplate.opsForHash();
return stringHashOperations.delete(key);
}
}

@ -0,0 +1,115 @@
package com.dxhy.order.model.page;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class OrderInvoiceInfoVo {
/**
* 订单表id
*/
private String orderInfoId;
/**
* 发票请求流水号
*/
private String fpqqlsh;
/**
* 订单号
*/
private String ddh;
/**
* 发票代码
*/
private String fpdm;
/**
* 发票号码
*/
private String fphm;
/**
* 开票合计金额
*/
private String kphjje;
/**
* 合计不含税金额
*/
private String hjbhsje;
/**
* 开票税额
*/
private String kpse;
/**
* 可冲红金额
* 2019-04-01添加
*/
private String sykchje;
/**
* 剩余可充红不含税金额
* 用于校验
*/
private String sykchbhsje;
/**
* 剩余可充红税额
* 用于校验
*/
private String sykchse;
/**
* 作废标志
*/
private String zfBz;
/**
* 冲红标志
*/
private String chBz;
//==================process=============================
/**
* 发票种类代码
*/
private String fpzlDm;
/**
* 购货方名称
*/
private String ghfMc;
/**
* 购货方纳税人识别号
*/
private String ghfNsrsbh;
/**
* 订单状态
*/
private String ddzt;
/**
* 销货方纳税人识别号
*/
private String xhfNsrsbh;
/**
* 销货方名称
*/
private String xhfMc;
/**
* 报账单号
*/
private String bzdh;
/**
* 系统来源
*/
private String xtly;
/**
* 数据权限ID
*/
private String entId;
private Boolean selected;
}

@ -0,0 +1,17 @@
package com.dxhy.order.model.page;
import com.sun.istack.internal.NotNull;
import lombok.Data;
@Data
public class RedInvoiceCheckReqPo {
@NotNull
private String lzbzdh;
@NotNull
private String orderInfoId;
@NotNull
private String xhfNsrsbh;
}

@ -0,0 +1,23 @@
package com.dxhy.order.model.page;
import lombok.Data;
@Data
public class RedInvoicePreReqPo {
/**
* 原发票发票种类
*/
private String yfpFpzl;
/**
* 原发票发票开票日期
*/
private String yfpKprq;
/**
* 冲红原因
*/
private String chyy;
}

@ -0,0 +1,14 @@
package com.dxhy.order.model.page;
import com.dxhy.order.model.OrderItemInfo;
import lombok.Data;
import java.util.List;
@Data
public class RedInvoiceRespPo {
private List<OrderItemInfo> redItemInfoList;
private List<OrderInvoiceInfoVo> orderInvoiceInfos;
}

@ -0,0 +1,19 @@
package com.dxhy.order.model.page;
import com.dxhy.order.model.OrderInvoiceInfo;
import com.dxhy.order.model.OrderItemInfo;
import lombok.Data;
import java.util.List;
@Data
public class RedInvoiceStageReqPo {
//红字勾选明细数据
private List<OrderItemInfo> redItemList;
//蓝字勾选明细数据
private List<OrderItemInfo> blueItemList;
//蓝字勾选发票数据
private OrderInvoiceInfo blueInvoiceInfo;
//红字订单的发票请求流水号
private String fpqqlsh;
}

@ -3,6 +3,7 @@ package com.dxhy.order.consumer.modules.order.controller;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.dxhy.order.baseservice.module.base.service.BaseService;
import com.dxhy.order.constant.ConfigureConstant;
import com.dxhy.order.constant.OrderInfoContentEnum;
@ -10,7 +11,13 @@ import com.dxhy.order.constant.OrderInfoEnum;
import com.dxhy.order.constant.OrderManagementConstant;
import com.dxhy.order.consumer.modules.order.model.dto.RewriteBzdhDTO;
import com.dxhy.order.consumer.modules.order.service.OrderBzdhService;
import com.dxhy.order.consumer.modules.order.service.OrderItemInfoService;
import com.dxhy.order.exception.OrderReceiveException;
import com.dxhy.order.model.*;
import com.dxhy.order.model.page.RedInvoiceCheckReqPo;
import com.dxhy.order.model.page.RedInvoicePreReqPo;
import com.dxhy.order.model.page.RedInvoiceRespPo;
import com.dxhy.order.model.page.RedInvoiceStageReqPo;
import com.dxhy.order.model.sk.kp.CommonInvoiceStatus;
import com.dxhy.order.utils.CommonUtils;
import com.dxhy.order.utils.JsonUtils;
@ -28,12 +35,12 @@ import com.dxhy.order.invoice.module.invoice.service.OrderInvoiceInfoService;
import com.dxhy.order.invoice.module.invoice.service.UnifyService;
import com.dxhy.order.invoice.module.invoicespecial.model.SpecialInvoiceReversalEntity;
import com.dxhy.order.invoice.module.invoicespecial.service.SpecialInvoiceReversalService;
import com.dxhy.order.utils.StringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@ -82,6 +89,9 @@ public class OrderInvoiceController {
@Resource
private BaseService baseService;
@Resource
private OrderItemInfoService itemInfoService;
/**
* 异常订单直接开票接口
@ -138,6 +148,122 @@ public class OrderInvoiceController {
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!");
}
}
/**
* 山能定制冲红流程普票负数开具专票的红字申请数电红字确认单
*
* @param
* @return
*/
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程校验的接口")
@PostMapping("/checkRedInvoice")
@SysLog(operation = "冲红流程", operationDesc = "订单开具冲红流程校验", key = "冲红流程")
public R checkRedInvoice(@RequestBody @Validated RedInvoiceCheckReqPo redInvoiceReqPo) {
try {
return orderInvoiceInfoService.checkRedInvoice(redInvoiceReqPo);
} catch (OrderReceiveException e){
return R.error(e.getMessage());
} catch (Exception e) {
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e);
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!");
}
}
/**
* 山能定制冲红流程普票负数开具专票的红字申请数电红字确认单
*
* @param
* @return
*/
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程获取数据的接口")
@PostMapping("/getOrderInvoiceData")
@SysLog(operation = "冲红流程", operationDesc = "订单开具冲红流程校验", key = "冲红流程")
public R getOrderInvoiceData(@RequestBody @Validated RedInvoiceCheckReqPo redInvoiceReqPo) {
try {
RedInvoiceRespPo orderInvoiceData = orderInvoiceInfoService.getOrderInvoiceData(redInvoiceReqPo);
return R.ok().put(OrderManagementConstant.DATA,orderInvoiceData);
} catch (Exception e) {
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e);
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!");
}
}
/**
* 获取蓝字发票明细订单
* @param param
* @return
*/
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程获取发票明细数据的接口")
@PostMapping("/getOrderItemData")
@SysLog(operation = "冲红流程", operationDesc = "冲红流程获取发票明细数据的接口", key = "冲红流程")
public R getOrderItemData(@RequestBody String param) {
try {
JSONObject jsonObject = JSONObject.parseObject(param);
List<OrderItemInfo> orderItemInfos = itemInfoService.selectOrderItemInfoByOrderId(jsonObject.getString("OrderInfoId"), Arrays.asList(jsonObject.getString("xhfNsrsbh")));
return R.ok().put(OrderManagementConstant.DATA,orderItemInfos);
} catch (Exception e) {
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e);
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!");
}
}
/**
* 保存红字明细与蓝字发票的关联关系
* @param
* @return
*/
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程数据暂存接口")
@PostMapping("/stageRedInvoiceData")
@SysLog(operation = "冲红流程", operationDesc = "冲红流程数据暂存接口", key = "冲红流程")
public R stageRedInvoiceData(@RequestBody RedInvoiceStageReqPo redInvoiceSaveReqPo) {
try {
//红字
return orderInvoiceInfoService.stageRedInvoiceData(redInvoiceSaveReqPo);
} catch (Exception e) {
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e);
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!");
}
}
/**
* 生成预制
* @param
* @return
*/
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程生成预览数据接口")
@PostMapping("/generatePreInvoice")
@SysLog(operation = "冲红流程", operationDesc = "冲红流程生成预览数据接口", key = "冲红流程")
public R generatePreInvoice(@RequestBody RedInvoicePreReqPo redInvoicePreReqPo) {
try {
return R.ok();
} catch (Exception e) {
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e);
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!");
}
}
/**
* 发票开具专票冲红申请红字数电申请红字确认单
* @param
* @return
*/
@ApiOperation(value = "冲红流程", notes = "订单开票-冲红流程保存并开具发票")
@PostMapping("/saveInvoiceData")
@SysLog(operation = "冲红流程", operationDesc = "冲红流程保存并开具发票", key = "冲红流程")
public R saveInvoiceData(@RequestBody RedInvoicePreReqPo redInvoicePreReqPo) {
try {
//如果是普通
return R.ok();
} catch (Exception e) {
log.error("{}待开订单开具接口,参数转换异常e:{}", LOGGER_MSG, e);
return R.error().put(OrderManagementConstant.MESSAGE, "未知异常,请联系管理员!");
}
}
/**
* 生成预制发票(非拆分场景)

@ -6,6 +6,7 @@ import com.dxhy.order.model.OrderInvoiceInfo;
import com.dxhy.order.invoice.module.invoice.model.bo.CountInvoiceByMonthBO;
import com.dxhy.order.invoice.module.invoice.model.bo.QueryCountInvoiceBO;
import com.dxhy.order.invoice.module.invoice.model.vo.*;
import com.dxhy.order.model.page.OrderInvoiceInfoVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
@ -248,4 +249,9 @@ public interface OrderInvoiceInfoMapper {
List<String> countInoviceInfo(@Param("orderInfoIds")List<String> orderInfoIds);
List<OrderInvoiceInfo> selectInvoiceInfoByFpqqlshs(@Param("fpqqlshs") List<String> fpqqlshs);
/**
* 根据报账单查询蓝字发票信息
*/
List<OrderInvoiceInfoVo> selectInvoiceInfoByBzdh(@Param("bzdh") String bzdh, @Param("shList") List<String> shList);
}

@ -1,14 +1,15 @@
package com.dxhy.order.invoice.module.invoice.service;
import com.dxhy.order.model.CommonOrderInvoiceAndOrderMxInfo;
import com.dxhy.order.model.InvoiceCount;
import com.dxhy.order.model.OrderInvoiceInfo;
import com.dxhy.order.model.PageUtils;
import com.dxhy.order.exception.OrderReceiveException;
import com.dxhy.order.model.*;
import com.dxhy.order.baseservice.module.thirdservice.rabbitmq.model.RabbitMqCommonInvoice;
import com.dxhy.order.invoice.module.invoice.model.FileDownLoad;
import com.dxhy.order.invoice.module.invoice.model.bo.QueryCountInvoiceBO;
import com.dxhy.order.invoice.module.invoice.model.vo.*;
import com.dxhy.order.model.page.RedInvoiceCheckReqPo;
import com.dxhy.order.model.page.RedInvoiceRespPo;
import com.dxhy.order.model.page.RedInvoiceStageReqPo;
import org.apache.ibatis.annotations.Param;
import java.io.File;
@ -284,5 +285,11 @@ public interface OrderInvoiceInfoService {
String signInvoicePrint(String excelFile, List<String> ids) throws Exception;
List<String> countInoviceInfo(@Param("orderInfoIds")List<String> orderInfoIds);
R checkRedInvoice(RedInvoiceCheckReqPo redInvoiceReqPo) throws OrderReceiveException;
RedInvoiceRespPo getOrderInvoiceData(RedInvoiceCheckReqPo redInvoiceReqPo);
R stageRedInvoiceData(RedInvoiceStageReqPo redInvoiceSaveReqPo);
}

@ -6,6 +6,8 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.client.config.common.ConfigConstants;
import com.dxhy.base.file.common.ExcelReadContext;
import com.dxhy.base.file.handle.ExcelExportHandle;
import com.dxhy.order.baseservice.config.BaseServiceConfig;
@ -20,6 +22,7 @@ import com.dxhy.order.baseservice.module.thirdservice.simsback.service.SimsBackS
import com.dxhy.order.baseservice.module.thirdservice.user.model.DeptEntity;
import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService;
import com.dxhy.order.constant.*;
import com.dxhy.order.exception.OrderReceiveException;
import com.dxhy.order.invoice.config.InvoiceConfig;
import com.dxhy.order.invoice.module.invoice.dao.*;
import com.dxhy.order.invoice.module.invoice.model.FileDownLoad;
@ -38,6 +41,10 @@ import com.dxhy.order.invoice.utils.HttpInvoiceRequestUtilQd;
import com.dxhy.order.invoice.utils.PDFExportUtil;
import com.dxhy.order.invoice.utils.generateinvoice.PdfProducer;
import com.dxhy.order.model.*;
import com.dxhy.order.model.page.OrderInvoiceInfoVo;
import com.dxhy.order.model.page.RedInvoiceCheckReqPo;
import com.dxhy.order.model.page.RedInvoiceRespPo;
import com.dxhy.order.model.page.RedInvoiceStageReqPo;
import com.dxhy.order.model.qd.QdFileDownloadRequest;
import com.dxhy.order.model.qd.QdFileDownloadResponse;
import com.dxhy.order.model.queue.CommonTsMqData;
@ -129,6 +136,8 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
@Qualifier("asyncExecutor")
private Executor voucherTaskExecutor;
private static final String KEY_PREFIX = "order:red:";
/**
* 作用
@ -1493,5 +1502,124 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
return orderInvoiceInfoMapper.countInoviceInfo(orderInfoIds);
}
@Override
public R checkRedInvoice(RedInvoiceCheckReqPo redInvoiceReqPo) throws OrderReceiveException{
//根据报账单查询蓝字数据
RedInvoiceRespPo orderInvoiceData = this.getOrderInvoiceData(redInvoiceReqPo);
List<OrderInvoiceInfoVo> orderInvoiceInfos = orderInvoiceData.getOrderInvoiceInfos();
//查询报账单是否存在
if(orderInvoiceInfos.size() == 0){
return R.error("根据报账单号未查询到订单");//改为常量
}
//todo 根据蓝字报账单调用SAP接口查询SAP状态,是否允许冲红 明慧开发
//根据orderinfoId,查询红字订单信息
OrderInfo orderInfo = orderInfoMapper.selectOrderInfoByOrderId(redInvoiceReqPo.getOrderInfoId(), Arrays.asList(redInvoiceReqPo.getXhfNsrsbh()));
if(orderInfo == null){
return R.error("当前红冲订单查询为空");
}
String xhfXx = (StringUtils.isNotBlank(orderInfo.getXhfNsrsbh()) ? orderInfo.getXhfNsrsbh() : "")
+ (StringUtils.isNotBlank(orderInfo.getXhfMc()) ? orderInfo.getXhfMc() : "");
String lzXhfXx = (StringUtils.isNotBlank(orderInvoiceInfos.get(0).getXhfNsrsbh()) ? orderInvoiceInfos.get(0).getXhfNsrsbh() : "")
+ (StringUtils.isNotBlank(orderInvoiceInfos.get(0).getXhfMc()) ? orderInvoiceInfos.get(0).getXhfMc() : "");
String ghfXx = (StringUtils.isNotBlank(orderInfo.getGhfNsrsbh()) ? orderInfo.getGhfNsrsbh() : "")
+ (StringUtils.isNotBlank(orderInfo.getGhfMc()) ? orderInfo.getGhfMc() : "");
String lzGhfXx = (StringUtils.isNotBlank(orderInvoiceInfos.get(0).getGhfNsrsbh()) ? orderInvoiceInfos.get(0).getGhfNsrsbh() : "")
+ (StringUtils.isNotBlank(orderInvoiceInfos.get(0).getGhfMc()) ? orderInvoiceInfos.get(0).getGhfMc() : "");
//购销方是否一致
if(!xhfXx.equals(lzXhfXx) ){
return R.error("负数订单的销方信息与对应蓝字报账单号不一致");//改为常量
}
if(!ghfXx.equals(lzGhfXx)){
return R.error("负数订单的购方信息与对应蓝字报账单号不一致");//改为常量
}
//校验发票种类是否一致
if(!orderInfo.getFpzlDm().equals(orderInvoiceInfos.get(0).getFpzlDm())){
return R.error("负数订单的发票种类与对应蓝字报账单号不一致");//改为常量
}
//比较金额(发票剩余金额、如果是专票的话需要加上红字申请的金额、如果是数电票的话需要调用接口查询红字查询)
return R.ok();
}
/**
* 根据报账单查询蓝字数据
* 根据请求流水号查询红字明细
* @return
*/
@Override
public RedInvoiceRespPo getOrderInvoiceData(RedInvoiceCheckReqPo redInvoiceReqPo) {
RedInvoiceRespPo redInvoiceRespPo = new RedInvoiceRespPo();
List<OrderInvoiceInfoVo> orderInvoiceInfoVos = orderInvoiceInfoMapper.selectInvoiceInfoByBzdh(redInvoiceReqPo.getLzbzdh(), Arrays.asList(redInvoiceReqPo.getXhfNsrsbh()));
List<OrderItemInfo> orderItemInfos = orderItemInfoMapper.selectOrderItemInfoByOrderId(redInvoiceReqPo.getOrderInfoId(), Arrays.asList(redInvoiceReqPo.getXhfNsrsbh()));
//是否允许勾选,发票状态
orderInvoiceInfoVos.stream().map(t->{
Boolean selected = true;
t.setDdzt("开具成功");//枚举
if(OrderInfoEnum.ORDER_STATUS_0.getKey().equals(t.getDdzt())
||OrderInfoEnum.ORDER_STATUS_1.getKey().equals(t.getDdzt())
||OrderInfoEnum.ORDER_STATUS_2.getKey().equals(t.getDdzt())
||OrderInfoEnum.ORDER_STATUS_3.getKey().equals(t.getDdzt())
){
t.setDdzt("未开具");//枚举
selected = false;
}
if(OrderInfoEnum.ORDER_STATUS_4.getKey().equals(t.getDdzt())){
t.setDdzt("开具中");//枚举
selected = false;
}
if(OrderInfoEnum.ORDER_STATUS_5.getKey().equals(t.getDdzt()) &&
(ConfigureConstant.STRING_1.equals(t.getZfBz())
|| ConfigureConstant.STRING_2.equals(t.getZfBz()))
){
t.setDdzt("已作废");//枚举
selected = false;
}
if(OrderInfoEnum.ORDER_STATUS_5.getKey().equals(t.getDdzt()) &&
(ConfigureConstant.STRING_1.equals(t.getChBz())
|| ConfigureConstant.STRING_2.equals(t.getChBz())
|| ConfigureConstant.STRING_3.equals(t.getChBz()))
){
t.setDdzt("已冲红");//枚举
selected = false;
}
//
if(OrderInfoEnum.ORDER_STATUS_5.getKey().equals(t.getDdzt()) &&
(ConfigureConstant.STRING_4.equals(t.getChBz())
|| ConfigureConstant.STRING_5.equals(t.getChBz())
|| ConfigureConstant.STRING_6.equals(t.getChBz()))
){
t.setDdzt("部分冲红");//枚举
}
t.setSelected(selected);
return t;
}).collect(Collectors.toList());
redInvoiceRespPo.setOrderInvoiceInfos(orderInvoiceInfoVos);
redInvoiceRespPo.setRedItemInfoList(orderItemInfos);
return redInvoiceRespPo;
}
@Override
public R stageRedInvoiceData(RedInvoiceStageReqPo redInvoiceSaveReqPo){
//存储redis map结构,map外层key是红字fpqqlsh,内层是发票号码+发票代码,将整体发票报文存储在value里
OrderInvoiceInfo blueInvoiceInfo = redInvoiceSaveReqPo.getBlueInvoiceInfo();
String key = KEY_PREFIX + redInvoiceSaveReqPo.getFpqqlsh();
String innerKey = blueInvoiceInfo.getFpdm() + blueInvoiceInfo.getFphm();
//组装发票报文
//金额、数量、税额跟跟换为负数,折扣行要与被折扣行合并
//校验重复提交数据覆盖问题
redisService.putHashMap(key,innerKey, JSONObject.toJSONString(redInvoiceSaveReqPo));
return R.ok();
}
}

@ -222,6 +222,31 @@
<result column="totalkpse" jdbcType="VARCHAR" property="totalkpse"/>
</resultMap>
<resultMap id="queryBzdhInvoiceResultMap" type="com.dxhy.order.model.page.OrderInvoiceInfoVo">
<result column="order_info_id" jdbcType="VARCHAR" property="orderInfoId"/>
<result column="fpqqlsh" jdbcType="VARCHAR" property="fpqqlsh"/>
<result column="ddh" jdbcType="VARCHAR" property="ddh"/>
<result column="bzdh" jdbcType="VARCHAR" property="bzdh"/>
<result column="ddzt" jdbcType="VARCHAR" property="ddzt"/>
<result column="fpzldm" jdbcType="VARCHAR" property="fpzlDm"/>
<result column="xhf_nsrsbh" jdbcType="VARCHAR" property="xhfNsrsbh"/>
<result column="xhf_mc" jdbcType="VARCHAR" property="xhfMc"/>
<result column="ghf_nsrsbh" jdbcType="VARCHAR" property="ghfNsrsbh"/>
<result column="ghf_mc" jdbcType="VARCHAR" property="ghfMc"/>
<result column="ent_id" jdbcType="VARCHAR" property="entId"/>
<result column="xtly" jdbcType="VARCHAR" property="xtly"/>
<result column="fpdm" jdbcType="VARCHAR" property="fpdm"/>
<result column="fphm" jdbcType="VARCHAR" property="fphm"/>
<result column="kphjje" jdbcType="VARCHAR" property="kphjje"/>
<result column="kpse" jdbcType="VARCHAR" property="kpse"/>
<result column="hjbhsje" jdbcType="VARCHAR" property="hjbhsje"/>
<result column="sykchje" jdbcType="VARCHAR" property="sykchje"/>
<result column="sykchbhsje" jdbcType="VARCHAR" property="sykchbhsje"/>
<result column="sykchse" jdbcType="VARCHAR" property="sykchse"/>
<result column="zf_bz" jdbcType="VARCHAR" property="zfBz"/>
<result column="ch_bz" jdbcType="VARCHAR" property="chBz"/>
</resultMap>
<resultMap id="countInvoiceByMonthResultMap" type="com.dxhy.order.invoice.module.invoice.model.bo.CountInvoiceByMonthBO">
<result column="dm" jdbcType="VARCHAR" property="dm"/>
<result column="zcount" jdbcType="VARCHAR" property="zcount"/>
@ -2261,4 +2286,52 @@
</foreach>
AND ( oii.zf_bz = '0' OR oii.ch_bz = '0' )
</select>
<select id="selectInvoiceInfoByBzdh" resultMap="queryBzdhInvoiceResultMap">
SELECT
op.order_info_id,
op.fpqqlsh,
op.ddh,
op.bzdh,
op.ddzt,
op.fpzldm,
op.xhf_nsrsbh,
op.xhf_mc,
op.ghf_nsrsbh,
op.ghf_mc,
op.ent_id,
op.xtly,
oii.fpdm,
oii.fphm,
oii.kphjje,
oii.kpse,
oii.hjbhsje,
oii.sykchje,
oii.sykchbhsje,
oii.sykchse,
oii.zf_bz,
oii.ch_bz
FROM
order_invoice_info oii INNER INTO order_process_info op ON oii.order_info_id = op.order_info_id
WHERE
op.bzdh = #{bzdh,jdbcType=VARCHAR}
<if test="shList != null and shList.size() == 0">
and xhf_nsrsbh = ''
</if>
<if test="shList != null and shList.size() == 1">
and xhf_nsrsbh =
<foreach collection="shList" index="index" item="item">
#{item}
</foreach>
</if>
<if test="shList != null and shList.size() > 1">
and xhf_nsrsbh in
<foreach collection="shList" index="index" item="item"
open="(" separator="," close=")">
#{item}
</foreach>
</if>
AND op.order_status = '0'
</select>
</mapper>

Loading…
Cancel
Save