diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml index 860080b7..54a1f2ed 100644 --- a/ruoyi-admin/src/main/resources/logback.xml +++ b/ruoyi-admin/src/main/resources/logback.xml @@ -1,7 +1,7 @@ - + diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java index 4d322c98..f5c4c8e6 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/vue/OmsPurchaseOrderController.java @@ -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"; + } + } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/AddToNexReq.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/AddToNexReq.java new file mode 100644 index 00000000..d08e5eaa --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/AddToNexReq.java @@ -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; +} + diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/AddToNexRes.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/AddToNexRes.java new file mode 100644 index 00000000..d0e7dff2 --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/AddToNexRes.java @@ -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; + +} + diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java index 3dd0f28b..60755fae 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java @@ -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 omsPurchaseOrderItems); OmsPurchaseOrder selectOmsPurchaseOrderByNo(String purchaseNo); + + AddToNexRes addToNex(AddToNexReq addToNexReq); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java index fe0cfd18..6997184f 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java @@ -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 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; + } }