xiaoddyy123 3 lat temu
rodzic
commit
97818c73b7

+ 8 - 3
ruoyi-ui/src/views/ams/lineCall/index.vue

@@ -63,7 +63,9 @@
               :key="dict.id"
               :label="dict.locationNo"
               :value="dict.id"
-            />
+            >
+              <div>{{ dict.id == dict.zoneId ? dict.locationNo : dict.locationNo + '  ' + (dict.isEmpty == 'Y' ? '' : '*') }}</div>
+            </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="物料" prop="sku" v-if="form.skuTypeFlag !== 'Hidden'">
@@ -132,11 +134,13 @@
         <el-form-item label="终点位置" prop="locationTo" v-if="form.locationToFlag !== 'Hidden'">
           <el-select style="width: 100%" v-model="form.locationTo" placeholder="请选择终点位置" clearable size="small">
             <el-option
-              v-for="dict in locationToCombo"
+              v-for="dict in locationFromCombo"
               :key="dict.id"
               :label="dict.locationNo"
               :value="dict.id"
-            />
+            >
+              <div>{{ dict.id == dict.zoneId ? dict.locationNo : dict.locationNo + '  ' + (dict.isEmpty == 'Y' ? '' : '*') }}</div>
+            </el-option>
           </el-select>
         </el-form-item>
         <div style="cursor: pointer;">
@@ -476,6 +480,7 @@
                 this.open = false;
                 this.subData.length = 0
               } else {
+                this.subData.length = 0
                 this.$modal.msgError(response.msg);
               }
             });

+ 13 - 5
warewms-ams/src/main/java/com/ruoyi/ams/business/BusinessServiceImpl.java

@@ -74,6 +74,7 @@ public class BusinessServiceImpl implements IBusinessService {
 
         BaseLocationInfo locationFrom = null;
         BaseLocationInfo locationTo = null;
+        List<WcsTask> wcsTaskList = new ArrayList<>();
         //查询所属流程
         FlowConfigHeaderVO flowConfigHeaderVO = flowConfigHeaderService.selectFlowConfigHeaderById(agvCallDTO.getId());
         AsnSoStrategy asnSoStrategy = asnSoStrategyMapper.selectAsnSoStrategy();
@@ -100,17 +101,24 @@ public class BusinessServiceImpl implements IBusinessService {
             for (AgvCallDTO agvCall : agvCallDTOList) {
                 invLotLocIdService.initInv(locationFrom.getId().toString(), agvCall.getSku(), Constant.CUSTOMER_ID, agvCall.getQty(), agvCall.getLotattDTO());
             }
+            wcsTaskList.addAll(this.genTask(locationFrom, locationTo, flowConfigHeaderVO));
         } else if (flowConfigHeaderVO.getFlowType().equals("SO")) {
-            //判断库存是否足够
-            locationFrom = this.zoneLocationAllocation(locationFromList, "locationFrom", "SO", asnSoStrategy, agvCallDTO);
-            locationTo = this.zoneLocationAllocation(locationToList, "locationTo", "SO", asnSoStrategy, agvCallDTO);
-
+            for (AgvCallDTO agvCall : agvCallDTOList) {
+                //判断总库存是否足够
+                Double qty = invLotLocIdService.queryInvBySku(agvCall.getSku(), agvCall.getLotattDTO());
+                if (qty < agvCall.getQty()) {
+                    throw new ServiceException("所需库存不够");
+                }
+                locationFrom = this.zoneLocationAllocation(locationFromList, "locationFrom", "SO", asnSoStrategy, agvCall);
+                locationTo = this.zoneLocationAllocation(locationToList, "locationTo", "SO", asnSoStrategy, agvCall);
+                wcsTaskList.addAll(this.genTask(locationFrom, locationTo, flowConfigHeaderVO));
+            }
         } else if (flowConfigHeaderVO.getFlowType().equals("MV")) {
             locationFrom = this.zoneLocationAllocation(locationFromList, "locationFrom", "MV", asnSoStrategy, agvCallDTO);
             locationTo = this.zoneLocationAllocation(locationToList, "locationTo", "MV", asnSoStrategy, agvCallDTO);
+            wcsTaskList.addAll(this.genTask(locationFrom, locationTo, flowConfigHeaderVO));
         }
 
-        List<WcsTask> wcsTaskList = this.genTask(locationFrom, locationTo, flowConfigHeaderVO);
         for (WcsTask wcsTask : wcsTaskList) {
             this.addTask(wcsTask);
         }

+ 1 - 1
warewms-ams/src/main/java/com/ruoyi/ams/inv/service/impl/InvLotLocIdServiceImpl.java

@@ -180,6 +180,6 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
 
     @Override
     public Double queryInvBySku(String sku, LotattDTO lotattDTO) {
-        return null;
+        return invLotLocIdMapper.queryInvBySku(sku, lotattDTO);
     }
 }

+ 2 - 1
warewms-ams/src/main/java/com/ruoyi/ams/lineCall/service/impl/LineCallServiceImpl.java

@@ -10,6 +10,7 @@ import com.ruoyi.base.domain.BaseSku;
 import com.ruoyi.base.service.IBaseLocationInfoService;
 import com.ruoyi.base.service.IBaseLocationZoneService;
 import com.ruoyi.base.service.IBaseSkuService;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -40,7 +41,7 @@ public class LineCallServiceImpl implements ILineCallService {
         LineCallVO lineCallVO = new LineCallVO();
         FlowConfigHeaderVO flowConfigHeaderVO = flowConfigHeaderMapper.selectFlowConfigHeaderById(flowConfigId);
         if (flowConfigHeaderVO == null) {
-            throw new RuntimeException(String.format("ID:%d的流程不存在", flowConfigId));
+            throw new ServiceException(String.format("ID:%d的流程不存在", flowConfigId));
         }
         List<BaseSku> skuList;
         if (!StringUtils.isEmpty(flowConfigHeaderVO.getSkuType())) {