feat: 生成预制发票

release
liufeilong 2 years ago
parent 3ca1431596
commit 70f70c131b
  1. 2
      order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java
  2. 6
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/InvoiceService.java
  3. 38
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java
  4. 15
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInvoiceController.java
  5. 1
      order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java

@ -160,7 +160,7 @@ public enum OrderInfoContentEnum {
ORDER_MERGE_FPLX_DIFFERENT_ERROR("9608", "所选订单发票类型不一致,不允许合并"), ORDER_MERGE_FPLX_DIFFERENT_ERROR("9608", "所选订单发票类型不一致,不允许合并"),
ORDER_MERGE_SKSB_DIFFERENT_ERROR("9608", "所选订单税控设备类型不一致,不允许合并"), ORDER_MERGE_SKSB_DIFFERENT_ERROR("9608", "所选订单税控设备类型不一致,不允许合并"),
ORDER_MERGE_DDH_DIFFERENT_ERROR("9608", "所选结算单号不一致,不允许合并"), ORDER_MERGE_DDH_DIFFERENT_ERROR("96081", "所选结算单号不一致,不允许合并"),
ORDER_MERGE_GFXX_DIFFERENT_ERROR("9609", "所选订单购方信息不一致,不允许合并"), ORDER_MERGE_GFXX_DIFFERENT_ERROR("9609", "所选订单购方信息不一致,不允许合并"),

@ -18,6 +18,12 @@ import java.util.Map;
*/ */
public interface InvoiceService { public interface InvoiceService {
/**
* 生成预制发票
* @param pageInvoiceReq
* @return
*/
R preInvoice(PageInvoiceReq pageInvoiceReq);
/** /**
* 根据id查询数据开票 * 根据id查询数据开票
* *

@ -114,6 +114,44 @@ public class InvoiceServiceImpl implements InvoiceService {
private TaxSpecialPolicyUtil taxSpecialPolicyUtil; private TaxSpecialPolicyUtil taxSpecialPolicyUtil;
@Override
public R preInvoice(PageInvoiceReq pageInvoiceReq) {
List<PageInvoiceItem> pageInvoiceItemList = pageInvoiceReq.getPageInvoiceItemList();
//查询数据列表
List<CommonOrderInfo> commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList);
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 {
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();
processInfo.setYzfp(ConfigureConstant.STRING_1);
orderProcessService.updateOrderProcessInfoByProcessId(processInfo,null);
}else if(orderSplit.size() > 1){
List<CommonOrderInfo> commonOrderInfoSaveResults = new ArrayList<>();
try {
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
public R batchInvoiceById(PageInvoiceReq pageInvoiceReq) { public R batchInvoiceById(PageInvoiceReq pageInvoiceReq) {

@ -131,6 +131,21 @@ public class OrderInvoiceController {
} }
} }
/**
* 生成预制发票(非拆分场景)
* @param pageInvoiceReq
* @return
*/
@PostMapping("/preInvoice")
public R preInvoice(@RequestBody PageInvoiceReq pageInvoiceReq) {
try {
return invoiceService.preInvoice(pageInvoiceReq);
} catch (Exception e) {
log.error("{}生成预制发票异常e:{}", LOGGER_MSG, e);
return R.error().put(OrderManagementConstant.MESSAGE, e.getMessage());
}
}
/** /**
* 订单编辑后开票 * 订单编辑后开票
* 优税小助手调用 * 优税小助手调用

@ -3487,6 +3487,7 @@ public class BeanTransitionUtils {
ddtxxBO.setBZDH(req.getZBZDH()); ddtxxBO.setBZDH(req.getZBZDH());
ddtxxBO.setXTLY(isinput.getSYSID()); ddtxxBO.setXTLY(isinput.getSYSID());
ddtxxBO.setGSDM(req.getBUKRS()); ddtxxBO.setGSDM(req.getBUKRS());
ddtxxBO.setENTID(deptEntity.getDeptId());
ddtxxBO.setBHZT(ConfigureConstant.STRING_0); ddtxxBO.setBHZT(ConfigureConstant.STRING_0);
ddtxxBO.setYGXM(req.getPENAM()); ddtxxBO.setYGXM(req.getPENAM());
ddtxxBO.setKPPZH(req.getZKPPZH()); ddtxxBO.setKPPZH(req.getZKPPZH());

Loading…
Cancel
Save