From 3859552775fdf2dc25bbf6d4504209acc6c846df Mon Sep 17 00:00:00 2001
From: liulijun <liulijun@hnkhzn.com>
Date: 星期二, 17 三月 2026 09:33:53 +0800
Subject: [PATCH] 增加老厂排程单页面的物料编号缺料变红的显示和去除物料幅宽的小数点

---
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs   |    1 
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs     |   10 +++++
 项目代码/WMS/WMSClient/src/extension/outbound/extend/outSGOrderDetail.vue |   17 ++++++++
 项目代码/WMS/WMSClient/src/views/outbound/outSGOrder.vue                  |   38 +++++++++++++++++++
 4 files changed, 66 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/outSGOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/outSGOrderDetail.vue"
index d9eb0a2..876ead7 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/outSGOrderDetail.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/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涓簍rue/"鏄�"
+      return row.outSGOrderDetailStatus === 3 || 
+             (row.isLackMaterial && (typeof row.isLackMaterial === 'boolean' ? row.isLackMaterial : row.isLackMaterial === '鏄�'));
+    },
   },
 };
 </script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrder.vue"
index c243620..ff2917e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrder.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/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",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs"
index 326e1f1..584a3d3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/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; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs"
index 83ea239..a6bb559 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs"
@@ -94,12 +94,22 @@
                         // 璁剧疆鏄惁缂烘枡锛氬鏋滄湁浠讳綍涓�涓槑缁嗘槸缂烘枡鐘舵�侊紝灏辫缃负true
                         // 寮曠敤WIDESEA_Common.OrderEnum鍛藉悕绌洪棿鏉ヤ娇鐢∣utOrderStatusEnum鏋氫妇
                         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 = "";
                     }
                 }
             }

--
Gitblit v1.9.3