feat: 生成预制发票冻结客户校验

release
liufeilong 2 years ago
parent 166639357b
commit c0e5cbb2a4
  1. 3
      order-management-base-service/src/main/resources/mybatis/mapper/BuyerMapper.xml
  2. 67
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java
  3. 34
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java

@ -759,9 +759,6 @@
and rownum <=10 and rownum <=10
</if> </if>
</if> </if>
<if test="status != null and status != ''">
and status = #{status,jdbcType=VARCHAR}
</if>
</where> </where>
</select> </select>

@ -11,6 +11,8 @@ import com.dxhy.order.baseservice.config.BaseServiceConfig;
import com.dxhy.order.baseservice.module.base.model.DrawerInfoEntity; import com.dxhy.order.baseservice.module.base.model.DrawerInfoEntity;
import com.dxhy.order.baseservice.module.base.service.BaseService; import com.dxhy.order.baseservice.module.base.service.BaseService;
import com.dxhy.order.baseservice.module.base.service.DrawerInfoService; import com.dxhy.order.baseservice.module.base.service.DrawerInfoService;
import com.dxhy.order.baseservice.module.buyer.model.BuyerEntity;
import com.dxhy.order.baseservice.module.buyer.service.BuyerService;
import com.dxhy.order.baseservice.module.thirdservice.redis.service.RedisService; 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.simsback.service.SimsBackService;
import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService;
@ -113,43 +115,58 @@ public class InvoiceServiceImpl implements InvoiceService {
@Resource @Resource
private TaxSpecialPolicyUtil taxSpecialPolicyUtil; private TaxSpecialPolicyUtil taxSpecialPolicyUtil;
@Resource
private BuyerService buyerService;
@Override @Override
public R preInvoice(PageInvoiceReq pageInvoiceReq) { public R preInvoice(PageInvoiceReq pageInvoiceReq) {
List<PageInvoiceItem> pageInvoiceItemList = pageInvoiceReq.getPageInvoiceItemList(); List<PageInvoiceItem> pageInvoiceItemList = pageInvoiceReq.getPageInvoiceItemList();
//查询数据列表 //查询数据列表
List<CommonOrderInfo> commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList); List<CommonOrderInfo> commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList);
StringBuffer errorMsg = new StringBuffer();
commonOrderInfos.stream().forEach(f -> { commonOrderInfos.stream().forEach(f -> {
String terminalCode = simsBackService.getTerminalCode(f.getOrderInfo().getXhfNsrsbh(), f.getOrderInfo().getEntId()); BuyerEntity buyerEntity = buyerService.queryBuyerInfoByxhfNsrsbhAndBuyerCode(f.getOrderInfo().getXhfNsrsbh(), f.getOrderInfo().getGhfId());
List<CommonOrderInfo> originalCommonOrderInfo = new ArrayList<>(); if(ConfigureConstant.STRING_0.equals(buyerEntity.getStatus())){
originalCommonOrderInfo.add(f); errorMsg.append("【结算单号】:").append(f.getOrderInfo().getDdh()).append(",【客户】:").append(f.getOrderInfo().getGhfMc()).append(";\r");
List<CommonOrderInfo> orderSplit = new ArrayList<>();
// 订单超限额拆分
try {
orderSplit = generateReadyOpenOrderService.orderSplit(originalCommonOrderInfo, terminalCode, pageInvoiceReq.getUserId());
log.info("{},{}生成预制发票拆分结果:{}",LOGGER_MSG,f.getOrderInfo().getDdh(),JsonUtils.getInstance().toJsonString(orderSplit));
} catch (OrderSplitException e) {
log.error("{}生成预制发票拆分异常:",LOGGER_MSG,e);
} }
if(orderSplit.size() == 1){ });
OrderProcessInfo processInfo = f.getProcessInfo(); if(errorMsg.length()>0){
processInfo.setYzfp(ConfigureConstant.STRING_1); errorMsg.append("被冻结,不允许开票!");
orderProcessService.updateOrderProcessInfoByProcessId(processInfo,null); return R.error(errorMsg.toString());
}else if(orderSplit.size() > 1){ }else {
List<CommonOrderInfo> commonOrderInfoSaveResults = new ArrayList<>(); commonOrderInfos.stream().forEach(f -> {
String terminalCode = simsBackService.getTerminalCode(f.getOrderInfo().getXhfNsrsbh(), f.getOrderInfo().getEntId());
List<CommonOrderInfo> originalCommonOrderInfo = new ArrayList<>();
originalCommonOrderInfo.add(f);
List<CommonOrderInfo> orderSplit = new ArrayList<>();
// 订单超限额拆分
try { try {
commonOrderInfoSaveResults = generateReadyOpenOrderService.saveOrderSplitInfo(orderSplit); orderSplit = generateReadyOpenOrderService.orderSplit(originalCommonOrderInfo, terminalCode, pageInvoiceReq.getUserId());
} catch (OrderReceiveException e) { log.info("{},{}生成预制发票拆分结果:{}",LOGGER_MSG,f.getOrderInfo().getDdh(),JsonUtils.getInstance().toJsonString(orderSplit));
log.error("{}生成预制发票拆分后保存异常:",LOGGER_MSG,e); } catch (OrderSplitException e) {
log.error("{}生成预制发票拆分异常:",LOGGER_MSG,e);
} }
commonOrderInfoSaveResults.stream().forEach(s -> { if(orderSplit.size() == 1){
OrderProcessInfo processInfo = s.getProcessInfo(); OrderProcessInfo processInfo = f.getProcessInfo();
processInfo.setYzfp(ConfigureConstant.STRING_1); processInfo.setYzfp(ConfigureConstant.STRING_1);
orderProcessService.updateOrderProcessInfoByProcessId(processInfo,null); orderProcessService.updateOrderProcessInfoByProcessId(processInfo,null);
}); }else if(orderSplit.size() > 1){
} List<CommonOrderInfo> commonOrderInfoSaveResults = new ArrayList<>();
}); try {
return R.ok("生成预制发票成功,请到发票处理页面查看"); commonOrderInfoSaveResults = generateReadyOpenOrderService.saveOrderSplitInfo(orderSplit);
} catch (OrderReceiveException e) {
log.error("{}生成预制发票拆分后保存异常:",LOGGER_MSG,e);
}
commonOrderInfoSaveResults.stream().forEach(s -> {
OrderProcessInfo processInfo = s.getProcessInfo();
processInfo.setYzfp(ConfigureConstant.STRING_1);
orderProcessService.updateOrderProcessInfoByProcessId(processInfo,null);
});
}
});
return R.ok("生成预制发票成功,请到发票处理页面查看");
}
} }
@Override @Override

@ -1560,16 +1560,38 @@ public class OrderInfoServiceImpl implements OrderInfoService {
@Override @Override
public R fillRedMessage(Map<String, String> param) { public R fillRedMessage(Map<String, String> param) {
StringBuffer errorMsg = new StringBuffer();
String orderInfoId = param.get("orderInfoId"); String orderInfoId = param.get("orderInfoId");
String yfpDm = param.get("yfpDm"); String yfpDm = param.get("yfpDm");
String yfpHm = param.get("yfpHm"); String yfpHm = param.get("yfpHm");
String hzxxbbh = param.get("hzxxbbh"); String hzxxbbh = param.get("hzxxbbh");
OrderInfo orderInfo = orderInfoService.selectOrderInfoByOrderId(orderInfoId, null); OrderInfo redOrderInfo = orderInfoService.selectOrderInfoByOrderId(orderInfoId, null);
orderInfo.setYfpDm(yfpDm); if(StringUtils.isNotBlank(yfpDm) && StringUtils.isNotBlank(yfpHm)){
orderInfo.setYfpHm(yfpHm); OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(yfpDm, yfpHm, null);
orderInfo.setHzxxbbh(hzxxbbh); if(ObjectUtil.isNull(orderInvoiceInfo)){
orderInfoService.updateOrderInfoByOrderId(orderInfo,null); errorMsg.append("所填原蓝票代码、号码在系统中不存在,请检查;\n");
return R.ok(); }else {
//TODO lfl 校验逻辑待补充
}
}else if(StringUtils.isNotBlank(hzxxbbh)){
SpecialInvoiceReversalEntity specialInvoiceReversalEntity = specialInvoiceReversalService.selectSpecialInvoiceReversalBySubmitCode(hzxxbbh);
if(ObjectUtil.isNull(specialInvoiceReversalEntity)){
errorMsg.append("所填红字信息表编号在系统中不存在,请检查\n");
}else {
}
}
if(errorMsg.length()>0){
return R.error(errorMsg.toString());
}else {
OrderInfo orderInfo = orderInfoService.selectOrderInfoByOrderId(orderInfoId, null);
orderInfo.setYfpDm(yfpDm);
orderInfo.setYfpHm(yfpHm);
orderInfo.setHzxxbbh(hzxxbbh);
orderInfoService.updateOrderInfoByOrderId(orderInfo,null);
return R.ok();
}
} }
private PageKySlRsp getDefaultKySlList(OrderInfoEnum orderInfoEnum){ private PageKySlRsp getDefaultKySlList(OrderInfoEnum orderInfoEnum){

Loading…
Cancel
Save