fix: 作废推动问题修复;驳回状态更新问题修复;冲红信息校验

release
liufeilong 2 years ago
parent 3f2ed6db66
commit 73145eaab8
  1. 4
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java
  2. 92
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java
  3. 6
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/InterfaceServiceImplV6.java
  4. 182
      order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java

@ -243,7 +243,9 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
} else if (OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_2.getKey().equals(commonTsMqData.getPushType())) {
//推送作废数据
ZfTsMqData zfTsMqData = commonTsMqData.getZfTsMqData();
OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(zfTsMqData.getFpdm(), zfTsMqData.getFphm(), null);
commonTsMqData.setNsrsbh(orderInvoiceInfo.getXhfNsrsbh());
commonPush(commonTsMqData);

@ -28,6 +28,7 @@ import com.dxhy.order.consumer.modules.order.model.bo.YwlxCountTotalBO;
import com.dxhy.order.consumer.modules.order.service.*;
import com.dxhy.order.consumer.modules.validate.service.ValidateOrderInfoService;
import com.dxhy.order.consumer.openapi.service.CommonInterfaceService;
import com.dxhy.order.consumer.utils.BeanTransitionUtils;
import com.dxhy.order.consumer.utils.PageDataDealUtil;
import com.dxhy.order.consumer.utils.TaxSpecialPolicyUtil;
import com.dxhy.order.exception.OrderReceiveException;
@ -38,6 +39,8 @@ import com.dxhy.order.invoice.module.invoice.model.PageSld;
import com.dxhy.order.invoice.module.invoice.model.bo.QueryTaxpayerInfoRequestBO;
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.dao.SpecialInvoiceReversalItemMapper;
import com.dxhy.order.invoice.module.invoicespecial.dao.SpecialInvoiceReversalMapper;
import com.dxhy.order.invoice.module.invoicespecial.model.SpecialInvoiceReversalEntity;
import com.dxhy.order.invoice.module.invoicespecial.service.SpecialInvoiceReversalService;
import com.dxhy.order.model.*;
@ -142,6 +145,12 @@ public class OrderInfoServiceImpl implements OrderInfoService {
@Resource
private UnifyService unifyService;
@Resource
private SpecialInvoiceReversalItemMapper specialInvoiceReversalItemMapper;
@Resource
private SpecialInvoiceReversalMapper specialInvoiceReversalMapper;
@Override
public PageUtils selectOrderInfo(Map<String, Object> map, List<String> shList, List<String> entList) {
return orderProcessService.selectOrderInfo(map, shList, entList);
@ -1588,19 +1597,43 @@ public class OrderInfoServiceImpl implements OrderInfoService {
String yfpDm = param.get("yfpDm");
String yfpHm = param.get("yfpHm");
String hzxxbbh = param.get("hzxxbbh");
OrderInfo redOrderInfo = orderInfoService.selectOrderInfoByOrderId(orderInfoId, null);
//OrderInfo redOrderInfo = orderInfoService.selectOrderInfoByOrderId(orderInfoId, null);
if(StringUtils.isNotBlank(yfpDm) && StringUtils.isNotBlank(yfpHm)){
OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(yfpDm, yfpHm, null);
if(ObjectUtil.isNull(orderInvoiceInfo)){
errorMsg.append("所填原蓝票代码、号码在系统中不存在,请检查;\n");
}else {
//TODO lfl 校验逻辑待补充
CommonOrderInfo commonOrderInfoN = orderInfoService.getCommonOrderInfoAll(orderInfoId, null);
OrderInvoiceInfo orderInvoiceInfoY = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(yfpDm, yfpHm, null);
CommonOrderInfo commonOrderInfoY = orderInfoService.getCommonOrderInfoAll(orderInvoiceInfoY.getOrderInfoId(),null);
Map<String, String> compareMap = compareOrderAndHzxxb(commonOrderInfoN,commonOrderInfoY);
if(!"0000".equals(compareMap.get("code").toString())){
errorMsg.append(compareMap.get("msg").toString()+"\n");
}
}
}else if(StringUtils.isNotBlank(hzxxbbh)){
SpecialInvoiceReversalEntity specialInvoiceReversalEntity = specialInvoiceReversalService.selectSpecialInvoiceReversalBySubmitCode(hzxxbbh);
if(ObjectUtil.isNull(specialInvoiceReversalEntity)){
errorMsg.append("所填红字信息表编号在系统中不存在,请检查\n");
}else {
Set<String> hzxxbbhSet = new HashSet<>();
hzxxbbhSet.add(hzxxbbh);
CommonOrderInfo commonOrderInfoN = orderInfoService.getCommonOrderInfoAll(orderInfoId, null);
List<SpecialInvoiceReversalItem> specialInvoiceReversalItems = specialInvoiceReversalItemMapper.selectItemListBySpecialInvoiceReversalId(specialInvoiceReversalEntity.getId());
CommonOrderInfo hzxxbCommonOrderInfo = BeanTransitionUtils.transitionCommonOrderInfoFromHzxxb(specialInvoiceReversalEntity, specialInvoiceReversalItems);
if(hzxxbQd(new ArrayList<>(hzxxbbhSet))){
//红字信息表带清单
Map<String, String> compareMap = compareOrderAndHzxxbQd(commonOrderInfoN, hzxxbCommonOrderInfo);
if(!"0000".equals(compareMap.get("code").toString())){
errorMsg.append(compareMap.get("msg").toString()+"\n");
}
}else {
Map<String, String> compareMap = compareOrderAndHzxxb(commonOrderInfoN, hzxxbCommonOrderInfo);
if(!"0000".equals(compareMap.get("code").toString())){
errorMsg.append(compareMap.get("msg").toString()+"\n");
}
}
}
}
@ -1809,4 +1842,59 @@ public class OrderInfoServiceImpl implements OrderInfoService {
return returnMap;
}
/**
* 判断红字信息表是否存在清单
*
* @param hzxxbbhList
* @return
*/
private Boolean hzxxbQd(List<String> hzxxbbhList) {
Boolean b = false;
for (String f : hzxxbbhList) {
SpecialInvoiceReversalEntity query = new SpecialInvoiceReversalEntity();
query.setXxbbh(f);
SpecialInvoiceReversalEntity specialInvoiceReversalEntity = specialInvoiceReversalMapper.selectSpecialInvoiceReversal(query);
List<SpecialInvoiceReversalItem> specialInvoiceReversalItems = specialInvoiceReversalItemMapper.selectItemListBySpecialInvoiceReversalId(specialInvoiceReversalEntity.getId());
if(specialInvoiceReversalItems.size() == 1 && ConfigureConstant.XJZSXHQD.equals(specialInvoiceReversalItems.get(0).getXmmc())){
b = true;
break;
}
}
return b;
}
/**
* 校验红字信息表否在销项系统中存在 并且状态是不是审核通过
* @param hzxxbbhList
* @return
*/
private Map<String,String> checkHzxxb(List<String> hzxxbbhList) {
StringBuffer errorMsg = new StringBuffer();
Map<String,String> returnMap = new HashMap<>();
returnMap.put("code","0000");
returnMap.put("msg","success");
hzxxbbhList.stream().forEach(f -> {
SpecialInvoiceReversalEntity query = new SpecialInvoiceReversalEntity();
query.setXxbbh(f);
SpecialInvoiceReversalEntity reversalByXxbbh = specialInvoiceReversalMapper.selectSpecialInvoiceReversal(query);
if(ObjectUtil.isNotNull(reversalByXxbbh)){
if(!OrderInfoEnum.SPECIAL_INVOICE_STATUS_TZD0000.getKey().equals(reversalByXxbbh.getStatusCode()) &&
!OrderInfoEnum.SPECIAL_INVOICE_STATUS_01.getKey().equals(reversalByXxbbh.getStatusCode()) &&
!OrderInfoEnum.SPECIAL_INVOICE_STATUS_04.getKey().equals(reversalByXxbbh.getStatusCode())){
errorMsg.append("红字信息表[").append(f).append("]状态不是审核通过|无需确认|购销双方已确认;");
}
if(OrderInfoEnum.INVOICE_STATUS_1.getKey().equals(reversalByXxbbh.getKpzt()) || OrderInfoEnum.INVOICE_STATUS_2.getKey().equals(reversalByXxbbh.getKpzt())){
errorMsg.append("红字信息表[").append(f).append("]已经开票成功或正在开票中;");
}
}else {
errorMsg.append("红字信息表[").append(f).append("]不存在;");
}
});
if(errorMsg.length() > 0){
returnMap.put("code","9999");
returnMap.put("msg",errorMsg.toString());
}
return returnMap;
}
}

@ -154,8 +154,10 @@ public class InterfaceServiceImplV6 implements InterfaceServiceV6 {
pageRequestList.add(pageRequestVO);
R back = orderInvoiceController.updateOrderStatus(pageRequestList, "back");
if("0000".equals(back.get(OrderManagementConstant.CODE))){
orderProcessInfo.setBhzt(ConfigureConstant.STRING_1);
int i = orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(orderProcessInfo, null);
OrderProcessInfo updateOrderProcessInfo = new OrderProcessInfo();
updateOrderProcessInfo.setId(orderProcessInfo.getId());
updateOrderProcessInfo.setBhzt(ConfigureConstant.STRING_1);
int i = orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(updateOrderProcessInfo, null);
esOutput.setZTYPE(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey());
esOutput.setZMESSAGE("驳回状态更新成功");
}else{

@ -35,6 +35,7 @@ import com.dxhy.order.consumer.openapi.protocol.v6.order.QdTxxBO;
import com.dxhy.order.exception.OrderReceiveException;
import com.dxhy.order.invoice.module.fangge.protocol.invoice.FgCommonOrderHeadBO;
import com.dxhy.order.invoice.module.fangge.protocol.invoice.FgOrderInvoiceItemBO;
import com.dxhy.order.invoice.module.invoicespecial.model.SpecialInvoiceReversalEntity;
import com.dxhy.order.model.*;
import com.dxhy.order.model.c48.cpy.*;
import com.dxhy.order.model.c48.sld.SldInvoiceRollPloRequest;
@ -3573,4 +3574,185 @@ public class BeanTransitionUtils {
poCommonResponseParam.setES_OUTPUT(esOutput);
return poCommonResponseParam;
}
/**
* 红字信息表转订单
* @param specialInvoiceReversalEntity , specialInvoiceReversalItems
* @return
*/
public static CommonOrderInfo transitionCommonOrderInfoFromHzxxb(SpecialInvoiceReversalEntity specialInvoiceReversalEntity, List<SpecialInvoiceReversalItem> specialInvoiceReversalItems) {
CommonOrderInfo commonOrderInfo = new CommonOrderInfo();
OrderInfo orderInfo = transitionOrderInfoFromHzxxb(specialInvoiceReversalEntity);
List<OrderItemInfo> orderItemInfos = transitionOrderItemInfoFromHzxxb(specialInvoiceReversalItems,specialInvoiceReversalEntity.getXhfNsrsbh());
/**
* 默认开票项目为明细行首行数据
*/
orderInfo.setKpxm(orderItemInfos.get(0).getXmmc());
commonOrderInfo.setOrderInfo(orderInfo);
commonOrderInfo.setOrderItemInfo(orderItemInfos);
return commonOrderInfo;
}
/**
* 红字信息主表信息转OrderInfo
* @param ddtxx
* @return
*/
public static OrderInfo transitionOrderInfoFromHzxxb(SpecialInvoiceReversalEntity ddtxx) {
OrderInfo orderInfo = new OrderInfo();
orderInfo.setFpqqlsh(ddtxx.getId());
//如果订单号为空的话, 自动生成20位的订单号
orderInfo.setDdh(RandomUtil.randomNumbers(12));
//orderInfo.setThdh(ddtxx.getTHDH());
//orderInfo.setGhfId(ddtxx.getGMFBM());
orderInfo.setDdlx("0");
Date ddrq = new Date();
orderInfo.setDdrq(ddrq);
orderInfo.setDsptbm("");
orderInfo.setNsrsbh(ddtxx.getXhfNsrsbh());
orderInfo.setNsrmc(ddtxx.getXhfMc());
orderInfo.setNsrdzdah(ddtxx.getXhfNsrsbh());
orderInfo.setSwjgDm("");
// TODO: 2018/10/25 代开标志默认为0
orderInfo.setDkbz("0");
/**
* 外层进行补全,使用明细行第一行商品名称作为开票项目
*/
orderInfo.setKpxm("");
orderInfo.setBbmBbh(ddtxx.getBmbbbh());
orderInfo.setXhfMc(ddtxx.getXhfMc());
orderInfo.setXhfNsrsbh(ddtxx.getXhfNsrsbh());
orderInfo.setXhfDz(ddtxx.getXhfDz());
orderInfo.setXhfDh(ddtxx.getXhfDh());
// TODO: 2018/10/25 前期使用银行字段存储银行帐号
if (StringUtils.isNotBlank(ddtxx.getXhfYh())) {
orderInfo.setXhfYh(ddtxx.getXhfYh());
}
if (StringUtils.isNotBlank(ddtxx.getXhfZh())) {
orderInfo.setXhfZh(ddtxx.getXhfZh());
}
orderInfo.setGhfQylx(ddtxx.getGhfqylx());
//orderInfo.setGhfSf(ddtxx.getGMFSF());
orderInfo.setGhfMc(ddtxx.getGhfMc());
orderInfo.setGhfNsrsbh(ddtxx.getGhfNsrsbh());
orderInfo.setGhfDz(ddtxx.getGhfDz());
orderInfo.setGhfDh(ddtxx.getGhfDh());
// TODO: 2018/10/25 前期使用银行字段存储银行帐号
if (StringUtils.isNotBlank(ddtxx.getGhfYh())) {
orderInfo.setGhfYh(ddtxx.getGhfYh());
}
if (StringUtils.isNotBlank(ddtxx.getGhfZh())) {
orderInfo.setGhfZh(ddtxx.getGhfZh());
}
//orderInfo.setGhfSj(ddtxx.getGMFSJH());
//orderInfo.setGhfEmail(ddtxx.getGMFDZYX());
orderInfo.setHyDm("");
orderInfo.setHyMc("");
orderInfo.setKpr(ddtxx.getKpr());
orderInfo.setSkr(ddtxx.getSkr());
orderInfo.setFhr(ddtxx.getFhr());
//orderInfo.setKplx(ddtxx.getKPLX());
orderInfo.setFpzlDm(ddtxx.getFpzlDm());
orderInfo.setYfpDm(ddtxx.getYfpDm());
orderInfo.setYfpHm(ddtxx.getYfpHm());
orderInfo.setChyy(ddtxx.getChyy());
//orderInfo.setTschbz(ddtxx.getTSCHBZ());
orderInfo.setHzxxbbh(ddtxx.getXxbbh());
// TODO: 2018/10/25 操作代码默认为10
orderInfo.setCzdm("10");
orderInfo.setQdBz(ddtxx.getQdbz());
//orderInfo.setQdXmmc(ddtxx.getQDXMMC());
orderInfo.setKphjje(ddtxx.getKphjje());
orderInfo.setHjbhsje(ddtxx.getHjbhsje());
orderInfo.setHjse(ddtxx.getHjse());
//orderInfo.setStatementNo(ddtxx.getSettlementNo());
if (StringUtils.isNotBlank(ddtxx.getKphjje())) {
orderInfo.setKphjje(DecimalCalculateUtil.decimalFormatToString(String.valueOf(ddtxx.getKphjje()), 2));
}
if (StringUtils.isNotBlank(ddtxx.getHjbhsje())) {
orderInfo.setHjbhsje(DecimalCalculateUtil.decimalFormatToString(String.valueOf(ddtxx.getHjbhsje()), 2));
}
if (StringUtils.isNotBlank(ddtxx.getHjse())) {
orderInfo.setHjse(DecimalCalculateUtil.decimalFormatToString(String.valueOf(ddtxx.getHjse()), 2));
}
// TODO: 2018/10/25 后期考虑添加以下字段:门店号,业务类型,推送地址
orderInfo.setMdh("");
orderInfo.setYwlx("");
/**
* 外层进行补全,使用最外层的数据进行填充
*/
orderInfo.setKpjh("");
orderInfo.setSld("");
orderInfo.setSldMc("");
//orderInfo.setTqm(ddtxx.getTQM());
//orderInfo.setSfcf(ddtxx.getSFCF());
//orderInfo.setBz(ddtxx.getBZ());
orderInfo.setCreateTime(new Date());
orderInfo.setUpdateTime(new Date());
//orderInfo.setByzd1(ddtxx.getBYZD1());
//orderInfo.setByzd2(ddtxx.getBYZD2());
//orderInfo.setByzd3(ddtxx.getBYZD3());
//orderInfo.setByzd4(ddtxx.getBYZD4());
//orderInfo.setByzd5(ddtxx.getBYZD5());
//orderInfo.setDeptId(ddtxx.getDEPTID());
return orderInfo;
}
/**
* 红字信息表明细转OrderItemInfo
* @param specialInvoiceReversalItemList , xhfNsrsbh
* @return
*/
public static List<OrderItemInfo> transitionOrderItemInfoFromHzxxb(List<SpecialInvoiceReversalItem> specialInvoiceReversalItemList,String xhfNsrsbh) {
List<OrderItemInfo> orderItemInfos = new ArrayList<>();
for (int i = 0; i < specialInvoiceReversalItemList.size(); i++) {
OrderItemInfo orderItemInfo = new OrderItemInfo();
SpecialInvoiceReversalItem orderInvoiceItem = specialInvoiceReversalItemList.get(i);
orderItemInfo.setSphxh(String.valueOf(i + 1));
//orderItemInfo.setSpId(orderInvoiceItem.getSPID());
orderItemInfo.setXmmc(orderInvoiceItem.getXmmc());
orderItemInfo.setXmdw(ObjectUtil.isNull(orderInvoiceItem.getXmdw()) ? "":orderInvoiceItem.getXmdw());
orderItemInfo.setGgxh(ObjectUtil.isNull(orderInvoiceItem.getGgxh()) ? "":orderInvoiceItem.getGgxh());
orderItemInfo.setXmdj(ObjectUtil.isNull(orderInvoiceItem.getXmdj()) ? "":orderInvoiceItem.getXmdj());
orderItemInfo.setXmsl(ObjectUtil.isNull(orderInvoiceItem.getXmsl()) ? "":orderInvoiceItem.getXmsl());
orderItemInfo.setHsbz(orderInvoiceItem.getHsbz());
//orderItemInfo.setFphxz(ObjectUtil.isNull(orderInvoiceItem.getFphxz()) ? "0":orderInvoiceItem.getFphxz());
orderItemInfo.setFphxz("0");
orderItemInfo.setSpbm(orderInvoiceItem.getSpbm());
orderItemInfo.setZxbm(orderInvoiceItem.getZxbm());
orderItemInfo.setYhzcbs(orderInvoiceItem.getYhzcbs());
orderItemInfo.setLslbs(orderInvoiceItem.getLslbs());
orderItemInfo.setZzstsgl(orderInvoiceItem.getZzstsgl());
orderItemInfo.setKce(orderInvoiceItem.getKce());
orderItemInfo.setXmje(orderInvoiceItem.getXmje());
orderItemInfo.setSl(orderInvoiceItem.getSl());
orderItemInfo.setSe(orderInvoiceItem.getSe());
orderItemInfo.setXhfNsrsbh(xhfNsrsbh);
orderItemInfo.setWcje("0.00");
//orderItemInfo.setByzd1(orderInvoiceItem.getBYZD1());
//orderItemInfo.setByzd2(orderInvoiceItem.getBYZD2());
//orderItemInfo.setByzd3(orderInvoiceItem.getBYZD3());
orderItemInfo.setCreateTime(new Date());
orderItemInfos.add(orderItemInfo);
}
return orderItemInfos;
}
}

Loading…
Cancel
Save