增加老厂排程单页面的物料编号缺料变红的显示和去除物料幅宽的小数点

增加老厂排程单页面的物料编号缺料变红的显示和去除物料幅宽的小数点
已修改4个文件
66 ■■■■■ 文件已修改
项目代码/WMS/WMSClient/src/extension/outbound/extend/outSGOrderDetail.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSClient/src/views/outbound/outSGOrder.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WMS/WMSClient/src/extension/outbound/extend/outSGOrderDetail.vue
@@ -92,6 +92,17 @@
                  {{ getDictionary(scoped.row, item) }}
                </el-tag>
              </div>
              <div v-else>
                <!-- ç‰©æ–™ç¼–号列特殊处理,缺料时显示红色 -->
                <span v-if="item.prop == 'materialNo'" :style="{color: isMaterialShortage(scoped.row) ? 'red' : ''}">
                  {{ scoped.row[item.prop] }}
                </span>
                <!-- å…¶ä»–普通列 -->
                <span v-else>
                  {{ scoped.row[item.prop] }}
                </span>
              </div>
            </template>
          </el-table-column>
        </el-table>
@@ -426,6 +437,12 @@
      }
      return ''; // é»˜è®¤æ— é¢œè‰²
    },
    isMaterialShortage(row) {
      // åˆ¤æ–­ç‰©æ–™æ˜¯å¦ç¼ºæ–™ï¼Œä¸Žä¸»é¡µé¢é€»è¾‘保持一致
      // æ˜Žç»†çŠ¶æ€ä¸º3表示缺料,或isLackMaterial为true/"是"
      return row.outSGOrderDetailStatus === 3 ||
             (row.isLackMaterial && (typeof row.isLackMaterial === 'boolean' ? row.isLackMaterial : row.isLackMaterial === '是'));
    },
  },
};
</script>
ÏîÄ¿´úÂë/WMS/WMSClient/src/views/outbound/outSGOrder.vue
@@ -144,6 +144,36 @@
          type: "string",
          width: 160,
          align: "left",
          formatter: (row) => {
            const materialNos = row.materialNos;
            if (!materialNos) return materialNos;
            // æž„建物料缺料状态映射
            const lackStatusMap = new Map();
            // æ³¨æ„ï¼šå­—段名已经被转换为驼峰命名法
            const statusField = row.materialLackStatus;
            if (statusField) {
              const statusPairs = statusField.split(',');
              statusPairs.forEach(pair => {
                const [materialNo, isLack] = pair.split(':');
                lackStatusMap.set(materialNo.trim(), isLack.trim() === 'true');
              });
            }
            // å¤„理物料编号,根据状态设置颜色
            const materialList = materialNos.split('/');
            const formattedMaterials = materialList.map(materialNo => {
              const trimmedMaterialNo = materialNo.trim();
              const isLack = lackStatusMap.get(trimmedMaterialNo) || false;
              if (isLack) {
                return `<span style="color: red;">${trimmedMaterialNo}</span>`;
              }
              return trimmedMaterialNo;
            });
            return formattedMaterials.join('/');
          }
        },
        {
          field: "materialWides",
@@ -151,6 +181,13 @@
          type: "string",
          width: 100,
          align: "left",
          formatter: (row) => {
            const value = row.materialWides;
            if (value && typeof value === 'string') {
              return value.replace(/\.\d+$/, '');
            }
            return value;
          }
        },
        {
          field: "isLackMaterial",
@@ -244,6 +281,7 @@
          align: "left",
          edit: { type: "string" },
          required: true,
        },
        {
          field: "xqLen",
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs
@@ -95,5 +95,6 @@
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(Dt_OutSGOrderDetail.OutSGOrderId), nameof(Id))]
        public List<Dt_OutSGOrderDetail> Details { get; set; }
        public string MaterialLackStatus { get; set; }
    }
}
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs
@@ -94,12 +94,22 @@
                        // è®¾ç½®æ˜¯å¦ç¼ºæ–™ï¼šå¦‚果有任何一个明细是缺料状态,就设置为true
                        // å¼•用WIDESEA_Common.OrderEnum命名空间来使用OutOrderStatusEnum枚举
                        order.IsLackMaterial = details.Any(d => d.OutSGOrderDetailStatus == 3); // 3是缺料状态的枚举值
                        // ç”Ÿæˆç‰©æ–™ç¼ºæ–™çŠ¶æ€å­—ç¬¦ä¸²ï¼šç‰©æ–™ç¼–å·:状态,物料编号:状态
                        var materialLackStatus = new List<string>();
                        foreach (var detail in details)
                        {
                            var isLack = detail.OutSGOrderDetailStatus == 3;
                            materialLackStatus.Add($"{detail.MaterialNo}:{isLack.ToString().ToLower()}");
                        }
                        order.MaterialLackStatus = string.Join(",", materialLackStatus);
                    }
                    else
                    {
                        order.MaterialNos = "";
                        order.MaterialWides = "";
                        order.IsLackMaterial = false;
                        order.MaterialLackStatus = "";
                    }
                }
            }