Browse Source

入库码盘

andy 2 years ago
parent
commit
ff2bd28eaf

+ 19 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/asn/WmsDocAsnHeaderController.java

@@ -4,10 +4,11 @@ import java.util.Date;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
-import com.alibaba.fastjson.JSON;
 import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
+import com.ruoyi.ams.asn.form.StockForm;
 import com.ruoyi.base.service.SysIdsequenceService;
 import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.utils.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -154,9 +155,26 @@ public class WmsDocAsnHeaderController extends BaseController {
         return AjaxResult.success("", docAsnHeader);
     }
 
+    //根据asnNo查询明细
     @GetMapping(value = "/queryDocAsnDetails/{asnNo}")
     public AjaxResult queryDocAsnDetails(@PathVariable("asnNo") String asnNo) {
         List<WmsDocAsnDetails> wmsDocAsnDetails = wmsDocAsnHeaderService.queryWmsDocAsnDetails(asnNo);
         return AjaxResult.success("", wmsDocAsnDetails);
     }
+
+    //码盘入库单号查询
+    @GetMapping(value = "/queryDocAsnByNo/{asnNo}")
+    public AjaxResult queryDocAsnByNo(@PathVariable("asnNo") String asnNo) {
+        WmsDocAsnHeader header = wmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
+        return AjaxResult.success("", header);
+    }
+
+    @PostMapping("/stock")
+    @Log(title = "码盘", businessType = BusinessType.INSERT)
+    public AjaxResult stock(@RequestBody StockForm stockForm) {
+        if (stockForm.getStockTag().equals("Y") && StringUtils.isEmpty(stockForm.getOrderNo())) {
+            return AjaxResult.error("码盘备货必须输入出库单号");
+        }
+        return wmsDocAsnHeaderService.doStock(stockForm);
+    }
 }

+ 19 - 0
warewms-ams/src/main/java/com/ruoyi/ams/asn/form/LotattForm.java

@@ -0,0 +1,19 @@
+package com.ruoyi.ams.asn.form;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: andy.qu
+ * Date: 2022/10/24
+ * Description:
+ */
+@Getter
+@Setter
+public class LotattForm {
+    //批次属性id
+    private String lotattId;
+    //批次属性值
+    private String lotattValue;
+}

+ 24 - 0
warewms-ams/src/main/java/com/ruoyi/ams/asn/form/StockForm.java

@@ -0,0 +1,24 @@
+package com.ruoyi.ams.asn.form;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: andy.qu
+ * Date: 2022/10/24
+ * Description:
+ */
+@Data
+public class StockForm {
+    private String asnNo;
+    private String orderNo;
+    //是否备货
+    private String stockTag;
+    //是否满托
+    private String fullTag;
+    //托盘编号
+    private String palletNo;
+    private List<StockInfoForm> stockInfoFormList;
+}

+ 21 - 0
warewms-ams/src/main/java/com/ruoyi/ams/asn/form/StockInfoForm.java

@@ -0,0 +1,21 @@
+package com.ruoyi.ams.asn.form;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: andy.qu
+ * Date: 2022/10/24
+ * Description:
+ */
+@Data
+public class StockInfoForm {
+    private String skuSn;
+    private String sku;
+    private String desc;
+    private String model;
+    private String qty;
+    List<LotattForm> lotattList;
+}

+ 10 - 0
warewms-ams/src/main/java/com/ruoyi/ams/asn/service/IWmsDocAsnHeaderService.java

@@ -4,6 +4,8 @@ import java.util.List;
 
 import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
 import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
+import com.ruoyi.ams.asn.form.StockForm;
+import com.ruoyi.common.core.domain.AjaxResult;
 
 /**
  * 入库单Service接口
@@ -82,4 +84,12 @@ public interface IWmsDocAsnHeaderService
      * @return
      */
      List<WmsDocAsnDetails> queryWmsDocAsnDetails(String asnNo);
+
+    /**
+     * 码盘
+     * @param stockForm
+     * @return
+     */
+     AjaxResult doStock(StockForm stockForm);
+
 }

+ 57 - 34
warewms-ams/src/main/java/com/ruoyi/ams/asn/service/impl/WmsDocAsnHeaderServiceImpl.java

@@ -1,9 +1,18 @@
 package com.ruoyi.ams.asn.service.impl;
 
+import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
+
+import com.ruoyi.ams.asn.form.StockForm;
+import com.ruoyi.ams.asn.form.StockInfoForm;
+import com.ruoyi.common.core.domain.AjaxResult;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
 import java.util.ArrayList;
+import java.util.Map;
+
 import com.ruoyi.common.utils.StringUtils;
 import org.springframework.transaction.annotation.Transactional;
 import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
@@ -13,37 +22,34 @@ import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
 
 /**
  * 入库单Service业务层处理
- * 
+ *
  * @author ruoyi
  * @date 2022-10-12
  */
 @Service
-public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService 
-{
+public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
     @Autowired
     private WmsDocAsnHeaderMapper wmsDocAsnHeaderMapper;
 
     /**
      * 查询入库单
-     * 
+     *
      * @param asnNo 入库单主键
      * @return 入库单
      */
     @Override
-    public WmsDocAsnHeader selectWmsDocAsnHeaderByAsnNo(String asnNo)
-    {
+    public WmsDocAsnHeader selectWmsDocAsnHeaderByAsnNo(String asnNo) {
         return wmsDocAsnHeaderMapper.selectWmsDocAsnHeaderByAsnNo(asnNo);
     }
 
     /**
      * 查询入库单列表
-     * 
+     *
      * @param wmsDocAsnHeader 入库单
      * @return 入库单
      */
     @Override
-    public List<WmsDocAsnHeader> selectWmsDocAsnHeaderList(WmsDocAsnHeader wmsDocAsnHeader)
-    {
+    public List<WmsDocAsnHeader> selectWmsDocAsnHeaderList(WmsDocAsnHeader wmsDocAsnHeader) {
         return wmsDocAsnHeaderMapper.selectWmsDocAsnHeaderList(wmsDocAsnHeader);
     }
 
@@ -54,10 +60,9 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
      * @return 入库单
      */
     @Override
-    public WmsDocAsnHeader selectWmsDocAsnHeaderByModel(WmsDocAsnHeader wmsDocAsnHeader)
-    {
+    public WmsDocAsnHeader selectWmsDocAsnHeaderByModel(WmsDocAsnHeader wmsDocAsnHeader) {
         List<WmsDocAsnHeader> list = wmsDocAsnHeaderMapper.selectWmsDocAsnHeaderList(wmsDocAsnHeader);
-        if (list!=null && list.size()>0) {
+        if (list != null && list.size() > 0) {
             return list.get(0);
         } else {
             return null;
@@ -66,14 +71,13 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
 
     /**
      * 新增入库单
-     * 
+     *
      * @param wmsDocAsnHeader 入库单
      * @return 结果
      */
     @Transactional
     @Override
-    public int insertWmsDocAsnHeader(WmsDocAsnHeader wmsDocAsnHeader)
-    {
+    public int insertWmsDocAsnHeader(WmsDocAsnHeader wmsDocAsnHeader) {
         int rows = wmsDocAsnHeaderMapper.insertWmsDocAsnHeader(wmsDocAsnHeader);
         insertWmsDocAsnDetails(wmsDocAsnHeader);
         return rows;
@@ -81,14 +85,13 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
 
     /**
      * 修改入库单
-     * 
+     *
      * @param wmsDocAsnHeader 入库单
      * @return 结果
      */
     @Transactional
     @Override
-    public int updateWmsDocAsnHeader(WmsDocAsnHeader wmsDocAsnHeader)
-    {
+    public int updateWmsDocAsnHeader(WmsDocAsnHeader wmsDocAsnHeader) {
         wmsDocAsnHeaderMapper.deleteWmsDocAsnDetailsByAsnNo(wmsDocAsnHeader.getAsnNo());
         insertWmsDocAsnDetails(wmsDocAsnHeader);
         return wmsDocAsnHeaderMapper.updateWmsDocAsnHeader(wmsDocAsnHeader);
@@ -96,28 +99,26 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
 
     /**
      * 批量删除入库单
-     * 
+     *
      * @param asnNos 需要删除的入库单主键
      * @return 结果
      */
     @Transactional
     @Override
-    public int deleteWmsDocAsnHeaderByAsnNos(String[] asnNos)
-    {
+    public int deleteWmsDocAsnHeaderByAsnNos(String[] asnNos) {
         wmsDocAsnHeaderMapper.deleteWmsDocAsnDetailsByAsnNos(asnNos);
         return wmsDocAsnHeaderMapper.deleteWmsDocAsnHeaderByAsnNos(asnNos);
     }
 
     /**
      * 删除入库单信息
-     * 
+     *
      * @param asnNo 入库单主键
      * @return 结果
      */
     @Transactional
     @Override
-    public int deleteWmsDocAsnHeaderByAsnNo(String asnNo)
-    {
+    public int deleteWmsDocAsnHeaderByAsnNo(String asnNo) {
         wmsDocAsnHeaderMapper.deleteWmsDocAsnDetailsByAsnNo(asnNo);
         return wmsDocAsnHeaderMapper.deleteWmsDocAsnHeaderByAsnNo(asnNo);
     }
@@ -126,7 +127,7 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
     public int insertWmsDocAsnDetails(WmsDocAsnDetails wmsDocAsnDetails) {
         List<WmsDocAsnDetails> detailsList = new ArrayList<>();
         long lineNo = wmsDocAsnHeaderMapper.selectLineNo(wmsDocAsnDetails.getAsnNo());
-        wmsDocAsnDetails.setAsnLineNo(lineNo+1);
+        wmsDocAsnDetails.setAsnLineNo(lineNo + 1);
         detailsList.add(wmsDocAsnDetails);
         return wmsDocAsnHeaderMapper.batchWmsDocAsnDetails(detailsList);
     }
@@ -136,27 +137,49 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
         return wmsDocAsnHeaderMapper.selectWmsDocDetails(asnNo);
     }
 
+    @Transactional
+    @Override
+    public AjaxResult doStock(StockForm stockForm) {
+        Long STAGE01 = 999999L;
+        //产品条码属于出入库单
+        if (stockForm.getStockTag().equals("Y") && StringUtils.isEmpty(stockForm.getOrderNo())) {
+            return AjaxResult.error("备货必须选择出库单号");
+        }
+        String asnNo = stockForm.getAsnNo();
+
+        WmsDocAsnHeader asnHeader = wmsDocAsnHeaderMapper.selectWmsDocAsnHeaderByAsnNo(asnNo);
+        if (asnHeader == null) {
+            return AjaxResult.error("入库单号不存在");
+        }
+        Map<String, BigDecimal> asnDetailsMap = new HashMap<>();
+        List<WmsDocAsnDetails> asnDetails = asnHeader.getWmsDocAsnDetailsList();
+        for (WmsDocAsnDetails w : asnDetails) {
+            asnDetailsMap.put(w.getSku(), w.getExpectedQty());
+        }
+        List<StockInfoForm> stockInfoForms = stockForm.getStockInfoFormList();
+        for (StockInfoForm s : stockInfoForms) {
+
+        }
+        return null;
+    }
+
     /**
      * 新增入库单体信息
-     * 
+     *
      * @param wmsDocAsnHeader 入库单对象
      */
-    public void insertWmsDocAsnDetails(WmsDocAsnHeader wmsDocAsnHeader)
-    {
+    public void insertWmsDocAsnDetails(WmsDocAsnHeader wmsDocAsnHeader) {
         List<WmsDocAsnDetails> wmsDocAsnDetailsList = wmsDocAsnHeader.getWmsDocAsnDetailsList();
         String asnNo = wmsDocAsnHeader.getAsnNo();
-        if (StringUtils.isNotNull(wmsDocAsnDetailsList))
-        {
+        if (StringUtils.isNotNull(wmsDocAsnDetailsList)) {
             List<WmsDocAsnDetails> list = new ArrayList<WmsDocAsnDetails>();
-            for (WmsDocAsnDetails wmsDocAsnDetails : wmsDocAsnDetailsList)
-            {
+            for (WmsDocAsnDetails wmsDocAsnDetails : wmsDocAsnDetailsList) {
                 wmsDocAsnDetails.setAsnNo(asnNo);
                 wmsDocAsnDetails.setExpectedQtyEach(wmsDocAsnDetails.getExpectedQty());
                 wmsDocAsnDetails.setReceivedQtyEach(wmsDocAsnDetails.getReceivedQty());
                 list.add(wmsDocAsnDetails);
             }
-            if (list.size() > 0)
-            {
+            if (list.size() > 0) {
                 wmsDocAsnHeaderMapper.batchWmsDocAsnDetails(list);
             }
         }