package com.vincent.rsf.server.api.service.impl;
|
|
import com.vincent.rsf.framework.exception.CoolException;
|
import com.vincent.rsf.server.api.entity.enums.OrderType;
|
import com.vincent.rsf.server.manager.entity.PurchaseItem;
|
import com.vincent.rsf.server.manager.service.PurchaseItemService;
|
import com.vincent.rsf.server.manager.service.PurchaseService;
|
import com.vincent.rsf.server.system.constant.SerialRuleCode;
|
import com.vincent.rsf.server.api.controller.params.Order;
|
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
|
import com.vincent.rsf.server.api.service.ErpApiService;
|
import com.vincent.rsf.server.manager.entity.Purchase;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @author Ryan
|
* @version 1.0
|
* @title ErpApiServiceImpl
|
* @description
|
* @create 2025/3/4 16:27
|
*/
|
@Service("erpApiService")
|
public class ErpApiServiceImpl implements ErpApiService {
|
|
@Autowired
|
private PurchaseService purchaseService;
|
|
@Autowired
|
private PurchaseItemService purchaseItemService;
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public boolean syncPurchasee(List<Order> orders) {
|
if (orders.isEmpty()) {
|
throw new CoolException("单据内容不能为空!!");
|
}
|
orders.forEach(ors -> {
|
Purchase purchase = new Purchase();
|
BeanUtils.copyProperties(ors, purchase);
|
String wkVal = SerialRuleUtils.generateRuleCode(SerialRuleCode.PURCHASE_CODE, purchase);
|
purchase.setCode(wkVal)
|
.setType(OrderType.ORDER_PURCHASE_IN.type);
|
if (!purchaseService.save(purchase)) {
|
throw new CoolException("采购单据保存失败");
|
}
|
//判断子列表不为空
|
if (!ors.getChildren().isEmpty()) {
|
ArrayList<PurchaseItem> list = new ArrayList<>();
|
ors.getChildren().forEach(orderItem -> {
|
PurchaseItem item = new PurchaseItem();
|
BeanUtils.copyProperties(orderItem, item);
|
item.setPurchaseId(purchase.getId());
|
list.add(item);
|
});
|
if (!purchaseItemService.saveBatch(list)) {
|
throw new CoolException("采购单明细保存失败!!");
|
}
|
}
|
});
|
|
return true;
|
}
|
|
}
|