feat(sip):新增提供给nex的接口

dev_1.0.1
chenh 2026-01-08 09:34:11 +08:00
parent b1cbbec237
commit 7a6abccf2f
6 changed files with 155 additions and 1 deletions

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 -->
<property name="log.path" value="/Users/jiliu/WorkSpace/java/RuoYi/logs" />
<property name="log.path" value="./logs" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />

View File

@ -1,6 +1,7 @@
package com.ruoyi.sip.controller.vue;
import cn.hutool.core.collection.CollUtil;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
@ -8,6 +9,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.ApproveStatusEnum;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.sip.domain.AddToNexReq;
import com.ruoyi.sip.domain.OmsPurchaseOrder;
import com.ruoyi.sip.domain.VendorInfo;
import com.ruoyi.sip.dto.inventory.OmsPurchaseOrderItemDto;
@ -247,4 +249,21 @@ public class OmsPurchaseOrderController extends BaseController
{
return toAjax(omsPurchaseOrderService.deleteOmsPurchaseOrderByIds(ids));
}
/**
*
*/
@Anonymous
@Log(title = "采购单主表", businessType = BusinessType.INSERT)
@PostMapping("/addToNex")
public AjaxResult addToNex(@RequestBody AddToNexReq addToNexReq) {
return success(omsPurchaseOrderService.addToNex(addToNexReq));
}
@Anonymous
@GetMapping("/test")
public String test() {
return "ok";
}
}

View File

@ -0,0 +1,37 @@
package com.ruoyi.sip.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
*
*
* @author ruoyi
*/
@Data
public class AddToNexReq {
private static final long serialVersionUID = 1L;
/** 产品类型 */
private String productType;
/** 产品编码 */
private String productCode;
/** 数量 */
@NotNull(message = "数量不能为空")
private Integer quantity;
/** 价格 */
private BigDecimal price;
/** 税率 */
private BigDecimal taxRate;
/** 税额 */
private BigDecimal taxTotal;
}

View File

@ -0,0 +1,23 @@
package com.ruoyi.sip.domain;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
*
*
* @author ruoyi
*/
@Data
public class AddToNexRes {
/** 采购单id */
private Long PurchaseId;
/** 采购单号(系统生成) */
private String purchaseNo;
}

View File

@ -1,6 +1,9 @@
package com.ruoyi.sip.service;
import java.util.List;
import com.ruoyi.sip.domain.AddToNexReq;
import com.ruoyi.sip.domain.AddToNexRes;
import com.ruoyi.sip.domain.OmsPurchaseOrder;
import com.ruoyi.sip.domain.OmsPurchaseOrderItem;
import com.ruoyi.sip.dto.inventory.OmsPurchaseOrderItemDto;
@ -97,4 +100,6 @@ public interface IOmsPurchaseOrderService
void cancelInnerItem(List<OmsPurchaseOrderItem> omsPurchaseOrderItems);
OmsPurchaseOrder selectOmsPurchaseOrderByNo(String purchaseNo);
AddToNexRes addToNex(AddToNexReq addToNexReq);
}

View File

@ -7,6 +7,7 @@ import java.util.stream.Collectors;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.ApproveStatusEnum;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
@ -19,7 +20,9 @@ import com.ruoyi.sip.flowable.service.TodoCommonTemplate;
import com.ruoyi.sip.flowable.service.TodoService;
import com.ruoyi.sip.mapper.OmsPurchaseOrderItemHistoryMapper;
import com.ruoyi.sip.mapper.OmsPurchaseOrderHistoryMapper;
import com.ruoyi.sip.mapper.VendorInfoMapper;
import com.ruoyi.sip.service.*;
import com.ruoyi.system.mapper.SysUserMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.flowable.engine.ManagementService;
@ -58,6 +61,12 @@ public class OmsPurchaseOrderServiceImpl implements IOmsPurchaseOrderService, To
@Resource
private OmsPurchaseOrderItemHistoryMapper omsPurchaseOrderItemHistoryMapper;
@Resource
private VendorInfoMapper vendorInfoMapper;
@Resource
private SysUserMapper userMapper;
@Autowired
private ICnareaService cnareaService;
@Autowired
@ -536,5 +545,66 @@ public class OmsPurchaseOrderServiceImpl implements IOmsPurchaseOrderService, To
return omsPurchaseOrder;
}
@Override
public AddToNexRes addToNex(AddToNexReq addToNexReq) {
// 新增采购
OmsPurchaseOrder omsPurchaseOrder = new OmsPurchaseOrder();
// 设置采购订单基本信息
omsPurchaseOrder.setBuyerName("紫光汇智信息技术有限公司");
omsPurchaseOrder.setBuyerAddress("重庆市两江新区云杉南路6号涉外商务区B6栋7楼");
// 查询制造商id, 制造商编码P008
VendorInfo vendorInfo = vendorInfoMapper.selectVendorInfoByVendorCode("P008");
omsPurchaseOrder.setVendorId(vendorInfo == null ? null :vendorInfo.getVendorId());
omsPurchaseOrder.setCurrency("RMB");
// 采购员userName=徐心钰
SysUser user = userMapper.selectUserByLoginName("xuxinyu");
omsPurchaseOrder.setPurchaserId(user.getUserId());
omsPurchaseOrder.setPurchaserName(user.getUserName());
omsPurchaseOrder.setPurchaserMobile("");
omsPurchaseOrder.setPurchaserEmail("");
// 入库仓id
omsPurchaseOrder.setWarehouseId(3L);
omsPurchaseOrder.setPayMethod("1");
omsPurchaseOrder.setOwnerId(102L);
omsPurchaseOrder.setOwnerName("叶宇豪");
omsPurchaseOrder.setTotalAmount(new BigDecimal("1000"));
omsPurchaseOrder.setStatus(OmsPurchaseOrder.StatusEnum.WAIT_COMPLETED.getCode()); // 0
omsPurchaseOrder.setApproveStatus(ApproveStatusEnum.WAIT_COMMIT.getCode()); // 0
// 创建采购订单明细项
OmsPurchaseOrderItem orderItem = new OmsPurchaseOrderItem();
orderItem.setProductType(addToNexReq.getProductType());
orderItem.setProductCode(addToNexReq.getProductCode());
orderItem.setQuantity(new BigDecimal(addToNexReq.getQuantity()));
orderItem.setPrice(addToNexReq.getPrice());
orderItem.setTaxRate(addToNexReq.getTaxRate());
orderItem.setTaxTotal(addToNexReq.getTaxTotal());
// 根据传入的参数计算金额
BigDecimal amountTotal = addToNexReq.getPrice() != null && addToNexReq.getQuantity() != null
? addToNexReq.getPrice().multiply(new BigDecimal(addToNexReq.getQuantity()))
: BigDecimal.ZERO;
orderItem.setAmountTotal(amountTotal);
// 设置明细项到订单中
List<OmsPurchaseOrderItem> orderItemList = new ArrayList<>();
orderItemList.add(orderItem);
omsPurchaseOrder.setOmsPurchaseOrderItemList(orderItemList);
// 插入采购订单
int insertResult = insertOmsPurchaseOrder(omsPurchaseOrder);
if(insertResult != 1){
throw new ServiceException("新增采购失败");
}
// 触发线上流程
omsPurchaseOrder.setFlowType(OmsPurchaseOrder.FlowTypeEnum.ONLINE.getCode());
applyForPurchaseOrder(omsPurchaseOrder);
AddToNexRes res = new AddToNexRes();
res.setPurchaseId(omsPurchaseOrder.getId());
res.setPurchaseNo(omsPurchaseOrder.getPurchaseNo());
return res;
}
}