fix: 开票接口补不到客户或商品税编不报错,放到生成预制发票时校验;生成预制发票时校验成品油混开

release
liufeilong 2 years ago
parent 0eed29e186
commit 0693b9b466
  1. 28
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java
  2. 2
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/AllocateInvoiceInterfaceServiceImplV3.java
  3. 9
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java
  4. 2
      order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java

@ -16,6 +16,8 @@ import com.dxhy.order.baseservice.module.base.service.DrawerInfoService;
import com.dxhy.order.baseservice.module.base.service.RuleSplitService;
import com.dxhy.order.baseservice.module.buyer.model.BuyerEntity;
import com.dxhy.order.baseservice.module.buyer.service.BuyerService;
import com.dxhy.order.baseservice.module.taxclass.dao.TaxClassCodeMapper;
import com.dxhy.order.baseservice.module.taxclass.model.TaxClassCodeEntity;
import com.dxhy.order.baseservice.module.thirdservice.redis.service.RedisService;
import com.dxhy.order.baseservice.module.thirdservice.simsback.service.SimsBackService;
import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService;
@ -127,6 +129,9 @@ public class InvoiceServiceImpl implements InvoiceService {
@Resource
private RuleSplitService ruleSplitService;
@Resource
private TaxClassCodeMapper taxClassCodeMapper;
@Override
@Transactional
@ -134,6 +139,29 @@ public class InvoiceServiceImpl implements InvoiceService {
List<PageInvoiceItem> pageInvoiceItemList = pageInvoiceReq.getPageInvoiceItemList();
//查询数据列表
List<CommonOrderInfo> commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList);
//购方是否为空、税编是否为空校验、成品油混开校验
for(CommonOrderInfo commonOrderInfo:commonOrderInfos){
if(StrUtil.isBlank(commonOrderInfo.getOrderInfo().getGhfNsrsbh()) || StrUtil.isBlank(commonOrderInfo.getOrderInfo().getGhfMc()) ){
return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"购方信息为空,请补全!");
}
String cpy = "";
for(OrderItemInfo orderItemInfo: commonOrderInfo.getOrderItemInfo()){
if(StrUtil.isBlank(orderItemInfo.getSpbm())){
return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"第"+orderItemInfo.getSphxh()+"行商品税编为空,请补全!");
}else {
TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(orderItemInfo.getSpbm());
if(StrUtil.isNotBlank(cpy)){
if(!cpy.equals(taxClassCodeEntity.getCpy())){
return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"成品油和非成品油税编不能混开,请做手动拆分处理!");
}
}else {
cpy = taxClassCodeEntity.getCpy();
}
}
}
}
//客户冻结状态校验、确认智能赋码、单价误差校验
List<Map<String,String>> consumerList = new ArrayList<>();
List<Map<String,String>> confirmList = new ArrayList<>();
List<Map<String,String>> djOverflowList = new ArrayList<>();

@ -1153,7 +1153,7 @@ public class AllocateInvoiceInterfaceServiceImplV3 implements AllocateInvoiceInt
BeanTransitionUtils.transitionOrderBuyerInfo(commonOrderInfo, buyerEntity);
}else {
log.error("{}补全购方信息异常,根据购方编号未查询到购方或者购方税号为空", LOGGER_MSG);
throw new OrderReceiveException(OrderInfoContentEnum.INVOICE_ERROR_CODE_010008K_V3);
//throw new OrderReceiveException(OrderInfoContentEnum.INVOICE_ERROR_CODE_010008K_V3);
}
}

@ -608,10 +608,11 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService {
}
item.setXmmc(spmc);
}else {
errorStr.append(indexStr)
log.error("{}{}",LOGGER_MSG,OrderInfoContentEnum.INVOICE_SPBM_MATCH_NULL.getMessage());
/*errorStr.append(indexStr)
.append(ConfigureConstant.STRING_UNDERLINE)
.append(OrderInfoContentEnum.INVOICE_SPBM_MATCH_NULL.getMessage())
.append("\r\n");
.append("\r\n");*/
}
}
}else {
@ -621,10 +622,10 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService {
// 如果没有找到,记录异常
if (commodityCodeEntity == null) {
log.error("{}根据商品名称查询到的商品为空,商品名称:{}", LOGGER_MSG, item.getXmmc());
errorStr.append(indexStr)
/*errorStr.append(indexStr)
.append(ConfigureConstant.STRING_UNDERLINE)
.append(OrderInfoContentEnum.INVOICE_SPBM_QUERY_NULL.getMessage())
.append("\r\n");
.append("\r\n");*/
} else {
// 如果找到记录,进行赋值匹配
// 判断是否推送了物料的名称、单位、规格型号信息

@ -3501,7 +3501,7 @@ public class BeanTransitionUtils {
ddtxxBO.setYZFP(ConfigureConstant.STRING_0);
ddtxxBO.setORIGINDDH(req.getZJSDH());
ddtxxBO.setKB(ObjectUtil.isNull(req.getITITEM().get(0).getKTYPE())?"":req.getITITEM().get(0).getKTYPE()+(ObjectUtil.isNull(req.getITITEM().get(0).getKNAME())?"":req.getITITEM().get(0).getKNAME()));
//TODO lfl 清单标志怎么处理 这儿要区分农产品和成品油?
//清单标志先赋值成0,没有农产品业务,成品油的人工拆分出来做处理
ddtxxBO.setQDBZ("0");
if(ConfigureConstant.STRING_1.equals(req.getZSFHZ())){
ddtxxBO.setTSCHBZ(ConfigureConstant.STRING_0);

Loading…
Cancel
Save