Forráskód Böngészése

更新备货测试修改

k 2 éve
szülő
commit
0004503cc7

+ 1 - 1
ruoyi-admin/src/test/java/com/ruoyi/admin/test/base/WarehouseTest.java

@@ -377,7 +377,7 @@ public class WarehouseTest {
             erpOrderList.setOrderState(detail.getdEdi06());
             erpOrderList.setCreateUser("TEST");
             erpOrderList.setStockId(detail.getdEdi05());
-            erpOrderList.setVaild("X");
+            erpOrderList.setValid("X");
             if(Integer.parseInt(detail.getdEdi07()) == 5){
 
             }else {

+ 1 - 1
ruoyi-ui/src/views/wms/allocation/index.vue

@@ -117,7 +117,7 @@
       </el-table-column>
       <el-table-column label="lotnum" align="center" prop="lotnum" />
       <!--<el-table-column label="叫料待检事务id" align="center" prop="callTransactionId" />-->
-      <el-table-column label="创建时间" align="center" prop="createDate" width="180">
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createDate, '{y}-{m}-{d}') }}</span>
         </template>

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

@@ -740,7 +740,7 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
             details.setExpectedQtyEach(erpOrder.getQty());
             details.setCreateTime(new Date());
             details.setCreateBy("ERP");
-            details.setdEdi04(erpOrder.getVaild());         //单据状态
+            details.setdEdi04(erpOrder.getValid());         //单据状态
             details.setdEdi05(erpOrder.getStockId());       //仓库编号
             details.setdEdi06(erpOrder.getOrderState());    //是否扫描完成
             details.setdEdi07(orderNo);    //项次

+ 64 - 9
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/UpdateOrderStockingProcessImpl.java

@@ -16,6 +16,7 @@ import com.ruoyi.ams.order.service.UpdateOrderStockingProcess;
 import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.service.IBaseLocationInfoService;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -116,7 +117,7 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
             }
         }
         // 是否作废
-        if (erpOrderList.get(0).getVaild().equalsIgnoreCase("X")) {
+        if (erpOrderList.get(0).getValid().equalsIgnoreCase("X")) {
             return documentVoided(orderNo);
         }
         // 转换ERP单据为WMS明细
@@ -129,9 +130,46 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
         updateQuantityAndStatusOfDocuments(markerListMap);
         // 更新库存
         updateInventory(markerListMap);
+        // 更新备货之后,检查哪些托盘上有非备货的库存,并且更新到备货单备注中
+        Set<String> palletsEndNotInStocks = checkThePalletIsNotInStock(orderNo);
+        StringBuilder builder = new StringBuilder();
+        for (String palletsEndNotInStock : palletsEndNotInStocks) {
+            builder.append(palletsEndNotInStock).append(",");
+        }
+        recordRemark(orderNo, builder.toString() + "需要呼出重组!");
         return AjaxResult.success();
     }
 
+    /**
+     * 更新备货之后,检查哪些托盘上有非备货的库存
+     *
+     * @param orderNo
+     * @return 托盘号
+     */
+    private Set<String> checkThePalletIsNotInStock(String orderNo) {
+        Set<String> palletsEnd = new HashSet<>();
+        Set<String> pallets = new HashSet<>();
+        InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom();
+        invLocIdSearchFrom.setLotatt14(orderNo);
+        List<InvLotLocIdLotattVO> invLotLocIdLotattVOList = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
+        for (InvLotLocIdLotattVO invLotLocIdLotattVO : invLotLocIdLotattVOList) {
+            pallets.add(invLotLocIdLotattVO.getLotatt07());
+        }
+        for (String pallet : pallets) {
+            InvLocIdSearchFrom invLocIdSearch = new InvLocIdSearchFrom();
+            invLocIdSearchFrom.setLotatt07(pallet);
+            List<InvLotLocIdLotattVO> invLotLocIdLotattList = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearch);
+            for (InvLotLocIdLotattVO invLotLocIdLotattVO : invLotLocIdLotattList) {
+                if (invLotLocIdLotattVO.getQty().compareTo(invLotLocIdLotattVO.getQtyallocated()) != 0
+                        || StringUtils.isEmpty(invLotLocIdLotattVO.getLotatt14())) {
+                    palletsEnd.add(pallet);
+                }
+            }
+        }
+
+        return palletsEnd;
+    }
+
     /**
      * 变更出库明细和单头
      *
@@ -356,7 +394,7 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
         headerUpdate.setOrderStatus(orderStatus);
         headerUpdate.setRemark("已发生更新备货流程!");
         wmsDocOrderHeaderService.updateWmsDocOrderHeader(headerUpdate);
-        recordChangeData(orderNo, "增加:" + JSON.toJSONString(value));
+        recordChangeData(orderNo, "减少:" + JSON.toJSONString(value));
         return AjaxResult.success();
     }
 
@@ -391,14 +429,14 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
             InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom();
             invLocIdSearchFrom.setLotatt14(orderNo);
             invLocIdSearchFrom.setSku(details.getSku());
-            invLocIdSearchFrom.setZoneId(Constant.ZONE_TYPE.ZONE_INV.getValue().toString());
-            // 查出仓储区
-            List<InvLotLocIdLotattVO> idLotattVOListInv = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
             invLocIdSearchFrom.setZoneId(Constant.ZONE_TYPE.ZONE_VIRTUAL.getValue().toString());
             // 查出虚拟区
             List<InvLotLocIdLotattVO> idLotattVOListVir = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
-            if (idLotattVOListVir.size() > 0) {
-                idLotattVOListInv.addAll(idLotattVOListVir);
+            invLocIdSearchFrom.setZoneId(Constant.ZONE_TYPE.ZONE_INV.getValue().toString());
+            // 查出仓储区
+            List<InvLotLocIdLotattVO> idLotattVOListInv = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
+            if (idLotattVOListInv.size() > 0) {
+                idLotattVOListVir.addAll(idLotattVOListInv);
             }
             for (InvLotLocIdLotattVO invLotLocId : idLotattVOListInv) {
                 if (qtyOrdered.compareTo(BigDecimal.ZERO.doubleValue()) == 0) {
@@ -421,7 +459,7 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
                     lotLocIdUpdate.setQtyallocated(new BigDecimal(qtyallocated).subtract(new BigDecimal(qtyOrdered)));
                     qtyOrdered = BigDecimal.ZERO.doubleValue();
 
-                }else {
+                } else {
                     lotLocIdUpdate.setQtyallocated(BigDecimal.ZERO);
                     // 修改lotatt14为空
                     invLotAttService.updateInvLotAttLotatt14IsNull(invLotLocId.getLotnum());
@@ -583,7 +621,7 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
             details.setQtyPacked(BigDecimal.ZERO);
             details.setQtyPackedEach(BigDecimal.ZERO);
             details.setSku(erpOrder.getIma01()); //品号
-            details.setdEdi04(erpOrder.getVaild());//单据状态
+            details.setdEdi04(erpOrder.getValid());//单据状态
             details.setdEdi05(erpOrder.getStockId());//仓库编号
             details.setdEdi06(erpOrder.getOrderState());//是否扫描完成
             details.setdEdi07(erpOrderNo); //项次
@@ -596,6 +634,23 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
         return detailsArrayList;
     }
 
+    /**
+     * 记录单头备注
+     *
+     * @param orderNo
+     */
+    public void recordRemark(String orderNo, String data) {
+        String record = "";
+        WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectDocOrderHeaderByOrderNo(orderNo);
+        if (wmsDocOrderHeader.getRemark() != null) {
+            record = wmsDocOrderHeader.getRemark();
+        }
+        WmsDocOrderHeader headerUpdate = new WmsDocOrderHeader();
+        headerUpdate.setOrderNo(orderNo);
+        headerUpdate.setRemark(record + "--" + data);
+        wmsDocOrderHeaderService.updateWmsDocOrderHeader(headerUpdate);
+    }
+
     /**
      * 记录变更数据到单头
      *

+ 1 - 1
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/WmsDocOrderHeaderServiceImpl.java

@@ -1713,7 +1713,7 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
                 details.setQtyPacked(BigDecimal.ZERO);
                 details.setQtyPackedEach(BigDecimal.ZERO);
                 details.setSku(erpOrder.getIma01());            //品号
-                details.setdEdi04(erpOrder.getVaild());         //单据状态
+                details.setdEdi04(erpOrder.getValid());         //单据状态
                 details.setdEdi05(erpOrder.getStockId());       //仓库编号
                 details.setdEdi06(erpOrder.getOrderState());    //是否扫描完成
                 details.setdEdi07(erpOrderNo);    //项次