zs
2025-05-16 0999b36321bac9e303b547b55c35b91d1546f1c4
添加库存操作逻辑
已修改4个文件
47 ■■■■■ 文件已修改
HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDrawer.tsx 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/hiawms_web/src/widgets/WmsStoreInfo/Controllers/WmsPlaceDrawer.tsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDrawer.tsx
@@ -77,22 +77,22 @@
        { max: 50, message: '长度不能超过50个字符', trigger: 'blur' },
      ],
    },
    {
      label: '物料名称',
      prop: 'materialName',
      el: 'input',
      placeholder: '请输入物料名称',
    },
    // {
    //   label: '物料名称',
    //   prop: 'materialName',
    //   el: 'input',
    //   placeholder: '请输入物料名称',
    // },
    // 容器信息
    {
      label: '容器编号',
      prop: 'containerNo',
      el: 'input',
      placeholder: '请输入容器编号',
      rules: [
        { required: true, message: '物料编号不能为空', trigger: 'blur' },
        { max: 50, message: '长度不能超过50个字符', trigger: 'blur' },
      ],
      // rules: [
      //   { required: true, message: '物料编号不能为空', trigger: 'blur' },
      //   { max: 50, message: '长度不能超过50个字符', trigger: 'blur' },
      // ],
    },
    // 库存信息
    {
HIAWms/hiawms_web/src/widgets/WmsStoreInfo/Controllers/WmsPlaceDrawer.tsx
@@ -27,6 +27,7 @@
   */
  const initiateData: Ref<Record<string, any>> = ref({})
  const formData = ref<Record<string, any>>({})
  const areas = ref([])
  // ref
  const formRef = ref()
@@ -160,6 +161,7 @@
          ...attrs,
        })
      },
      width: '100%',
      placeholder: '最大库存数',
      rules: [
        { required: true, message: '是否空托不能为空', trigger: 'change' },
@@ -277,6 +279,7 @@
    updateFormItemOptions('emptyContainer', yesNoData)
    const areaList = await getAreaAreaDataList()
    areas.value = areaList
    updateFormAreaOptions('areaCode', areaList)
    if (current.value) {
@@ -303,12 +306,13 @@
      formData.value = {
        storageTypeNo: 1, // 货位类型
        placeStatus: 1, // 货位状态
        areaCode: areaList[0], // 所在库区
        areaCode: areaList[0].areaNo, // 所在库区
        aisle: 1, // 巷道
        layerNo: 1, // 层
        islock: 0, // 是否锁定
        isDisabled: false, // 是否禁用
        emptyContainer: 0, // 是否空托
        maxStockNumber: 100,
      }
      updateCheckData()
    }
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
@@ -240,7 +240,7 @@
                {
                    var record = new WmsInOutStockRecord
                    {
                        TaskNo = input.TaskNo,
                        TaskNo = string.IsNullOrEmpty(input.OrderNo) ? "Task_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") : input.OrderNo,
                        OrderNo = input.OrderNo,
                        StockType = StockTypeEnum.Move,
                        ContainerNo = item.ContainerNo,
@@ -316,7 +316,7 @@
                {
                    var record = new WmsInOutStockRecord
                    {
                        TaskNo = input.TaskNo,
                        TaskNo = string.IsNullOrEmpty(input.OrderNo) ? "Task_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") : input.OrderNo,
                        OrderNo = input.OrderNo,
                        StockType = StockTypeEnum.Move,
                        ContainerNo = item.ContainerNo,
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
@@ -186,15 +186,19 @@
        {
            throw new UserFriendlyException("物料信息不存在");
        }
        var palceInfo = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo);
        var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo);
        //if (container == null)
        //{
        //    throw new UserFriendlyException("托盘信息不存在");
        //}
        input.ContainerNo = string.IsNullOrEmpty(input.ContainerNo) ? "TP_" + DateTime.Now.ToString("yyMMddHHmmssfff") : input.ContainerNo;
        var wmsmaterialstock = ObjectMapper.Map<WmsMaterialStockCreateDto, WmsMaterialStock>(input);
        input.MapExtraPropertiesTo(wmsmaterialstock, MappingPropertyDefinitionChecks.None);
        wmsmaterialstock.MaterialId = Guid.NewGuid().ToString("N");
        wmsmaterialstock.MaterialNo = material.MaterialNo;
        wmsmaterialstock.MaterialName = material.MaterialName;
        wmsmaterialstock.ContainerStatus = ContainerStatusEnum.KUWEI;
@@ -227,7 +231,12 @@
        var wmsmaterialstockList = await _wmsmaterialstockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.PlaceNo });
        if (wmsmaterialstockList.Count > 0)
        {
            if (wmsmaterialstockList[0].MaterialNo != input.MaterialNo)
            if(wmsmaterialstock.StorageTypeNo == PlaceTypeEnum.YUANLIAOKUWEI)
            {
                wmsmaterialstock.ContainerNo = wmsmaterialstockList[0].ContainerNo;
                input.ContainerNo = wmsmaterialstockList[0].ContainerNo;
            }
            if (wmsmaterialstockList[0].MaterialNo != material.MaterialNo)
            {
                throw new UserFriendlyException("当前库位已存放别的物料");
            }
@@ -256,7 +265,7 @@
            // 添加库存记录
            var record = new WmsInOutStockRecord
            {
                TaskNo = input.TaskNo,
                TaskNo = string.IsNullOrEmpty(input.OrderNo) ? "Task_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") : input.OrderNo,
                OrderNo = input.OrderNo,
                StockType = StockTypeEnum.InBound,
                ContainerNo = stock.ContainerNo,
@@ -693,8 +702,8 @@
    protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialStockCreateOrUpdateDtoBase input)
    {
        Check.NotNull(input, nameof(input));
        Check.NotNullOrWhiteSpace(input.MaterialNo, "编号", WmsMaterialStockConsts.MaxCodeLength);
        Check.NotNullOrWhiteSpace(input.MaterialName, "名称", WmsMaterialStockConsts.MaxNameLength);
        //Check.NotNullOrWhiteSpace(input.MaterialNo, "编号", WmsMaterialStockConsts.MaxCodeLength);
        //Check.NotNullOrWhiteSpace(input.MaterialName, "名称", WmsMaterialStockConsts.MaxNameLength);
        Check.Length(input.Remark, "备注", WmsMaterialStockConsts.MaxRemarkLength);
        return Task.CompletedTask;
    }