From ad425472cedb1e81c5dc17280d0c9ede5d6e4c23 Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Mon, 15 Sep 2025 15:03:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E5=85=A5=E5=BA=93=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E5=85=A5=E5=BA=93=E5=AD=90=E5=8D=95=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/InStockinController.java | 5 ++- .../in/stockin/domain/vo/InstockInVo.java | 30 ++++++++++++++ .../in/stockin/service/IInStockinService.java | 9 ++++ .../service/impl/InStockinServiceImpl.java | 41 +++++++++++++++++++ 4 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/in/stockin/domain/vo/InstockInVo.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/controller/InStockinController.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/controller/InStockinController.java index d5ff0ef..b7d457e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/controller/InStockinController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/controller/InStockinController.java @@ -8,6 +8,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.in.stockin.domain.InStockin; +import com.ruoyi.in.stockin.domain.vo.InstockInVo; import com.ruoyi.in.stockin.service.IInStockinService; import com.ruoyi.in.stockinfinish.service.IInStockinFinishService; import jakarta.servlet.http.HttpServletResponse; @@ -79,9 +80,9 @@ public class InStockinController extends BaseController @PreAuthorize("@ss.hasPermi('in:stockIn:add')") @Log(title = "入库单据", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody InStockin inStockin) + public AjaxResult add(@RequestBody InstockInVo instockInVo) { - return toAjax(inStockinService.insertInStockin(inStockin)); + return inStockinService.insertInStockin(instockInVo); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/domain/vo/InstockInVo.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/domain/vo/InstockInVo.java new file mode 100644 index 0000000..f52b4f2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/domain/vo/InstockInVo.java @@ -0,0 +1,30 @@ +package com.ruoyi.in.stockin.domain.vo; + +import com.ruoyi.bas.BasProduct.domain.BasProduct; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class InstockInVo { + + @NotNull + private String warehouseId; + + @NotNull + private String supplierNo; + + @NotNull + private String inType; + + + private List productVoList; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/IInStockinService.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/IInStockinService.java index e51e691..214dd1d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/IInStockinService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/IInStockinService.java @@ -2,6 +2,7 @@ package com.ruoyi.in.stockin.service; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.in.stockin.domain.InStockin; +import com.ruoyi.in.stockin.domain.vo.InstockInVo; import java.util.List; @@ -37,6 +38,14 @@ public interface IInStockinService */ public int insertInStockin(InStockin inStockin); + /** + * 新增入库单据 + * + * @param inStockin 入库单据 + * @return 结果 + */ + public AjaxResult insertInStockin(InstockInVo inStockin); + /** * 修改入库单据 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/impl/InStockinServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/impl/InStockinServiceImpl.java index b451b73..c6d24b1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/impl/InStockinServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockin/service/impl/InStockinServiceImpl.java @@ -1,10 +1,17 @@ package com.ruoyi.in.stockin.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import com.ruoyi.bas.BasProduct.domain.BasProduct; +import com.ruoyi.bas.basJobId.service.IBasJobIdService; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.in.stockin.domain.InStockin; +import com.ruoyi.in.stockin.domain.vo.InstockInVo; import com.ruoyi.in.stockin.mapper.InStockinMapper; import com.ruoyi.in.stockin.service.IInStockinService; import com.ruoyi.in.stockindetail.domain.InStockinDetail; @@ -28,6 +35,8 @@ public class InStockinServiceImpl implements IInStockinService private InStockinMapper inStockinMapper; @Autowired private IInStockinDetailService iInStockinDetailService; + @Autowired + private IBasJobIdService iBasJobIdService; /** * 查询入库单据 @@ -66,6 +75,38 @@ public class InStockinServiceImpl implements IInStockinService return inStockinMapper.insertInStockin(inStockin); } + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult insertInStockin(InstockInVo inStockinVo) { + List productVoList = inStockinVo.getProductVoList(); + if (CollUtil.isEmpty(productVoList)){ + return AjaxResult.error("物料不能为空"); + } + + InStockin inStockin = new InStockin(); + inStockin.setStockinGuid(iBasJobIdService.getJobId("RKD")); + inStockin.setStockinId(iBasJobIdService.getJobId("RKD")); + inStockin.setCreateDate(DateUtil.formatDateTime(DateUtil.date())); + inStockin.setCreateManId(Convert.toStr(SecurityUtils.getUserId())); + inStockin.setDepartmentNo(Convert.toStr(SecurityUtils.getDeptId())); + inStockin.setSupplierNo(inStockinVo.getSupplierNo()); + inStockin.setInType(inStockinVo.getInType()); + inStockin.setWarehouseId(inStockinVo.getWarehouseId()); + inStockin.setStatus("1"); + inStockinMapper.insertInStockin(inStockin); + for (int i = 1; i <= productVoList.size(); i++) { + BasProduct basProduct = productVoList.get(i-1); + InStockinDetail inStockinDetail = new InStockinDetail(); + BeanUtil.copyProperties(basProduct,inStockinDetail); + inStockinDetail.setStockinGuid(inStockin.getStockinGuid()); + inStockinDetail.setStockinDetailId(inStockin.getStockinId()+"-"+i); + inStockinDetail.setStockinId(inStockin.getStockinId()); + iInStockinDetailService.insertInStockinDetail(inStockinDetail); + } + + return AjaxResult.success(); + } + /** * 修改入库单据 *