소스 검색

对接工序

huhao@jgai.com 1 개월 전
부모
커밋
dc7fb34ebe

+ 6 - 3
entry/src/main/ets/common/constants/CommonConstants.ets

@@ -1,10 +1,13 @@
 import {RobotInfo} from '../../params/RobotsParam'
+import DictValue from '../../viewmodel/DictValue'
+import HashMap from '@ohos.util.HashMap'
+
 export default class CommonConstants {
   static readonly RDB_NAME: string = 'Presentation.db'
   static readonly PRE_NAME: string = 'MyPreferences'
   static AUTH_TOKEN: string = ''
   // 附件地址前缀
-  static FILE_URL_PREFIX: string = 'http://192.168.101.4:9000'
+  static FILE_URL_PREFIX: string = 'http://192.168.1.3:9000'
 
   // 当前登录用户相关信息
   static USER_ID?: number = 1
@@ -62,6 +65,6 @@ export default class CommonConstants {
       lastSelfCheck: '2024/02/16 11:11:34'
     } as RobotInfo,
   ]
-  //万能卡片
-  static readonly CARD_TYPE_DATA: number[] = [3, 1, 5];
+
+  static DICT_DATA: HashMap<string, DictValue[]> = new HashMap<string, DictValue[]>()
 }

+ 1 - 1
entry/src/main/ets/common/util/request/WmsRequest.ets

@@ -11,7 +11,7 @@ import { printError, printRequest, printResponse, handleRes } from './Helps';
 
 // jiaxiaoqiang:这里要改
 //const baseUrl = "http://192.168.1.3:11010/" //chuangke
-const baseUrl = "http://192.168.1.3:8079"//huajing
+const baseUrl = "http://192.168.1.174:8079"//huajing
 // const baseUrl = "http://192.168.1.4:8079/" //chuangke
 const DEBUG = true //
 

+ 1 - 1
entry/src/main/ets/component/NavigationBar.ets

@@ -39,6 +39,6 @@ export struct NavigationBar {
     .height('100%')
     .width('100%')
     .justifyContent(FlexAlign.SpaceEvenly)
-    .alignItems(VerticalAlign.Bottom)
+    .alignItems(VerticalAlign.Top)
   }
 }

+ 134 - 62
entry/src/main/ets/pages/ProcessMaterialKit.ets

@@ -50,84 +50,75 @@ struct ProcessMaterialKit {
       Row() {
         Row().width('41%')
         Row() {
-          Stack() {
-            Circle()
-              .width($r('app.float.virtualSize_19_2'))
-              .height($r('app.float.virtualSize_19_2'))
-              .fill(this.step === 1 ? $r('app.color.0A84FF') : $r('app.color.10FFFFFF'))
-            Text('1')
-              .fontSize($r('app.float.fontSize_12'))
+          Column({space: 5}) {
+            Stack() {
+              Circle()
+                .width($r('app.float.virtualSize_19_2'))
+                .height($r('app.float.virtualSize_19_2'))
+                .fill(this.step === 1 ? $r('app.color.0A84FF') : $r('app.color.10FFFFFF'))
+              Text('1')
+                .fontSize($r('app.float.fontSize_12'))
+                .fontColor(this.step === 1 ? $r('app.color.FFFFFF') : $r('app.color.60FFFFFF'))
+                .fontWeight(FontWeight.Medium)
+            }
+            .width($r('app.float.virtualSize_19_2'))
+            .height($r('app.float.virtualSize_19_2'))
+            Text('选择工序')
+              .fontSize($r('app.float.fontSize_6_4'))
               .fontColor(this.step === 1 ? $r('app.color.FFFFFF') : $r('app.color.60FFFFFF'))
-              .fontWeight(FontWeight.Medium)
+              .fontWeight(FontWeight.Regular)
           }
-          .width($r('app.float.virtualSize_19_2'))
-          .height($r('app.float.virtualSize_19_2'))
-
-          Stack() {
-            Circle()
-              .width($r('app.float.virtualSize_19_2'))
-              .height($r('app.float.virtualSize_19_2'))
-              .fill(this.step === 2 ? $r('app.color.0A84FF') : $r('app.color.10FFFFFF'))
-            Text('2')
-              .fontSize($r('app.float.fontSize_12'))
+          Column({space: 5}) {
+            Stack() {
+              Circle()
+                .width($r('app.float.virtualSize_19_2'))
+                .height($r('app.float.virtualSize_19_2'))
+                .fill(this.step === 2 ? $r('app.color.0A84FF') : $r('app.color.10FFFFFF'))
+              Text('2')
+                .fontSize($r('app.float.fontSize_12'))
+                .fontColor(this.step === 2 ? $r('app.color.FFFFFF') : $r('app.color.60FFFFFF'))
+                .fontWeight(FontWeight.Medium)
+            }
+            .width($r('app.float.virtualSize_19_2'))
+            .height($r('app.float.virtualSize_19_2'))
+            Text('齐套装箱')
+              .fontSize($r('app.float.fontSize_6_4'))
               .fontColor(this.step === 2 ? $r('app.color.FFFFFF') : $r('app.color.60FFFFFF'))
-              .fontWeight(FontWeight.Medium)
+              .fontWeight(FontWeight.Regular)
           }
-          .width($r('app.float.virtualSize_19_2'))
-          .height($r('app.float.virtualSize_19_2'))
-
-          Stack() {
-            Circle()
-              .width($r('app.float.virtualSize_19_2'))
-              .height($r('app.float.virtualSize_19_2'))
-              .fill(this.step === 3 ? $r('app.color.0A84FF') : $r('app.color.10FFFFFF'))
-            Text('3')
-              .fontSize($r('app.float.fontSize_12'))
+          Column({space: 5}) {
+            Stack() {
+              Circle()
+                .width($r('app.float.virtualSize_19_2'))
+                .height($r('app.float.virtualSize_19_2'))
+                .fill(this.step === 3 ? $r('app.color.0A84FF') : $r('app.color.10FFFFFF'))
+              Text('3')
+                .fontSize($r('app.float.fontSize_12'))
+                .fontColor(this.step === 3 ? $r('app.color.FFFFFF') : $r('app.color.60FFFFFF'))
+                .fontWeight(FontWeight.Medium)
+            }
+            .width($r('app.float.virtualSize_19_2'))
+            .height($r('app.float.virtualSize_19_2'))
+            Text('齐套入库')
+              .fontSize($r('app.float.fontSize_6_4'))
               .fontColor(this.step === 3 ? $r('app.color.FFFFFF') : $r('app.color.60FFFFFF'))
-              .fontWeight(FontWeight.Medium)
+              .fontWeight(FontWeight.Regular)
           }
-          .width($r('app.float.virtualSize_19_2'))
-          .height($r('app.float.virtualSize_19_2'))
         }
-        .height('100%')
+        .height('80%')
         .width('18%')
         .justifyContent(FlexAlign.SpaceBetween)
-        Blank()
+        .alignItems(VerticalAlign.Top)
 
+        Blank()
         Row() {
           NavigationBar()
         }
-        .height('100%')
+        .height('80%')
         .width('30%')
       }
+      .height('14.2%')
       .width('100%')
-      .height('5.2%')
-      .alignItems(VerticalAlign.Center)
-      .justifyContent(FlexAlign.Center)
-
-      Row() {
-        Row() {
-          Text('选择工序')
-            .fontSize($r('app.float.fontSize_6_4'))
-            .fontColor(this.step === 1 ? $r('app.color.FFFFFF') : $r('app.color.60FFFFFF'))
-            .fontWeight(FontWeight.Regular)
-          Text('齐套装箱')
-            .fontSize($r('app.float.fontSize_6_4'))
-            .fontColor(this.step === 2 ? $r('app.color.FFFFFF') : $r('app.color.60FFFFFF'))
-            .fontWeight(FontWeight.Regular)
-          Text('齐套入库')
-            .fontSize($r('app.float.fontSize_6_4'))
-            .fontColor(this.step === 3 ? $r('app.color.FFFFFF') : $r('app.color.60FFFFFF'))
-            .fontWeight(FontWeight.Regular)
-        }
-        .height('100%')
-        .width('18%')
-        .justifyContent(FlexAlign.SpaceBetween)
-      }
-      .width('100%')
-      .height('1.4%')
-      .alignItems(VerticalAlign.Center)
-      .justifyContent(FlexAlign.Center)
 
       Column() {
         if (this.step === 1) {
@@ -139,6 +130,87 @@ struct ProcessMaterialKit {
       .height('71%')
       .width('94.8%')
 
+      Row() {
+        if (this.step > 2) {
+          Row () {
+            Text('第一步')
+              .fontSize($r('app.float.fontSize_9_6'))
+              .fontColor($r('app.color.0A84FF'))
+              .fontWeight(FontWeight.Medium)
+          }
+          .height('85%')
+          .width('24.1%')
+          .justifyContent(FlexAlign.Center)
+          .backgroundColor($r('app.color.20FFFFFF'))
+          .borderRadius($r('app.float.fontSize_6_4'))
+          .onClick(()=>{
+            this.step = 1
+          })
+        } else {
+          Row().width('24.1%')
+        }
+        Row().width('1.2%')
+        if (this.step > 1) {
+          Row () {
+            Text('上一步')
+              .fontSize($r('app.float.fontSize_9_6'))
+              .fontColor($r('app.color.0A84FF'))
+              .fontWeight(FontWeight.Medium)
+          }
+          .height('85%')
+          .width('24.1%')
+          .justifyContent(FlexAlign.Center)
+          .backgroundColor($r('app.color.20FFFFFF'))
+          .borderRadius($r('app.float.fontSize_6_4'))
+          .onClick(()=>{
+            this.step -= 1
+          })
+        } else {
+          Row().width('24.1%')
+        }
+
+        Row().width('1.2%')
+
+        if (this.step === 2) {
+          Row () {
+            Text('空箱出库')
+              .fontSize($r('app.float.fontSize_9_6'))
+              .fontColor($r('app.color.0A84FF'))
+              .fontWeight(FontWeight.Medium)
+          }
+          .height('85%')
+          .width('24.1%')
+          .justifyContent(FlexAlign.Center)
+          .backgroundColor($r('app.color.20FFFFFF'))
+          .borderRadius($r('app.float.fontSize_6_4'))
+        } else {
+          Row().width('24.1%')
+        }
+
+        Row().width('1.2%')
+
+        if (this.step < 3) {
+          Row () {
+            Text('下一步')
+              .fontSize($r('app.float.fontSize_9_6'))
+              .fontColor($r('app.color.0A84FF'))
+              .fontWeight(FontWeight.Medium)
+          }
+          .height('85%')
+          .width('24.1%')
+          .justifyContent(FlexAlign.Center)
+          .backgroundColor($r('app.color.20FFFFFF'))
+          .borderRadius($r('app.float.fontSize_6_4'))
+          .onClick(()=>{
+            this.step += 1
+          })
+        } else {
+          Row().width('24.1%')
+        }
+      }
+      .width('94.8%')
+      .height('6.1%')
+      .alignItems(VerticalAlign.Center)
     }
     .width('100%')
     .height('100%')

+ 269 - 11
entry/src/main/ets/view/wms/ProcessMaterialKitOneStep.ets

@@ -1,4 +1,7 @@
+import CommonConstants from '../../common/constants/CommonConstants'
 import WmsRequest from '../../common/util/request/WmsRequest'
+import StationOperationInfo from '../../viewmodel/wms/StationOperationInfo'
+import OperationInfo from '../../viewmodel/wms/OperationInfo'
 import RequestParamModel from '../../viewmodel/wms/RequestParamModel'
 import WorkOrderInfo from '../../viewmodel/wms/WorkOrderInfo'
 
@@ -8,18 +11,134 @@ export struct ProcessMaterialKitOneStep {
   @Link workOrder: WorkOrderInfo
 
   @State workOrderArray: WorkOrderInfo[] = []
+  @State operationArray: StationOperationInfo[] = [
+    {
+      operationVO: [
+        {
+          id: '588',
+          operationCode: 'XFOP-0052',
+          operationName: '领料',
+          operationOp: '',
+          stanType: '10'
+        }
+      ],
+      stanType: '10',
+      stanTypeName: 'tes'
+    },
+    {
+      operationVO: [
+        {
+          id: '536',
+          operationCode: 'XFOP-0015',
+          operationName: '装配',
+          operationOp: '',
+          stanType: '13',
+        }
+      ],
+      stanType: '13'
+    },
+    {
+      operationVO: [
+        {
+          id: '537',
+          operationName: '调试',
+          operationOp: '',
+          stanType: '7',
+        }
+      ],
+      stanType: '7'
+    },
+    {
+      operationVO: [
+        {
+          id: '538',
+          operationCode: 'XFOP-0017',
+          operationName: '装配',
+          operationOp: '',
+          stanType: '13',
+        }
+      ],
+      stanType: '13'
+    },
+    {
+      operationVO: [
+        {
+          id: '540',
+          operationCode: 'XFOP-0019',
+          operationName: '检测',
+          operationOp: '',
+          stanType: '9',
+        },
+        {
+          id: '539',
+          operationCode: 'XFOP-0018',
+          operationName: '调试',
+          operationOp: '',
+          stanType: '9',
+        }
+      ],
+      stanType: '9'
+    },
+    {
+      operationVO: [
+        {
+          id: '541',
+          operationCode: 'XFOP-0020',
+          operationName: '试验',
+          stanType: '7',
+        }
+      ],
+      stanType: '7'
+    }
+  ]
+
 
   @State selectWorkOrder: number = 0
+  @State selectOperations: string[] = []
+
+
+  stationType: string = 'station_type'
 
   async aboutToAppear() {
-    this.workOrderArray = await WmsRequest.post('/api/v1/plan/workOrder/list', {
+    this.workOrderArray = await WmsRequest.post('/api/v1/wms/workOrder/list', {
       //查询未完成的工单
       queryComplete: 0,
     } as RequestParamModel) as WorkOrderInfo[]
     if (this.workOrderArray && this.workOrderArray.length > 0) {
       this.workOrder = this.workOrderArray[0]
       this.selectWorkOrder = 0
+      console.log('hhtest', '----------' + JSON.stringify(this.workOrderArray[0]))
+      this.operationArray = await WmsRequest.post('/api/v1/wms/operation/list', {
+        //查询未完成的工单
+        processRouteId: this.workOrderArray[0]?.processRouteId,
+      } as RequestParamModel) as StationOperationInfo[]
     }
+
+    if (this.operationArray && this.operationArray.length > 0) {
+      // 获取不合格原因的数据字典
+      let dictArray = CommonConstants.DICT_DATA.get(this.stationType);
+      if (!dictArray || dictArray.length <= 0) {
+        dictArray = await WmsRequest.get('/api/v1/sys/dictData/queryByType/' + this.stationType as string, {})
+      }
+      if (!dictArray) {
+        return
+      }
+      for (const element of this.operationArray) {
+        for (const dict of dictArray) {
+          if (element.stanType === dict.dictValue) {
+            element.stanTypeName = dict.dictLabel
+          }
+        }
+      }
+    }
+    console.log('hhtest', '---------------')
+    console.log('hhtest', '---------------')
+    console.log('hhtest', '---------------')
+    console.log('hhtest', '---------------')
+    console.log('hhtest', JSON.stringify(this.operationArray))
+    console.log('hhtest', '---------------')
+    console.log('hhtest', '---------------')
+    console.log('hhtest', '---------------')
   }
 
   build() {
@@ -32,10 +151,10 @@ export struct ProcessMaterialKitOneStep {
             .fontWeight(FontWeight.Medium)
         }
         .height('10%')
-        .width('29.6%')
+        .width('100%')
         .justifyContent(FlexAlign.Center)
 
-        List() {
+        List({space: 5}) {
           ForEach(this.workOrderArray, (item: WorkOrderInfo, index: number) => {
             ListItem() {
               Column() {
@@ -52,12 +171,6 @@ export struct ProcessMaterialKitOneStep {
 
                 Column() {
                   Text('工单编号:' + (item.workOrderCode ? item.workOrderCode : ''))
-                    .fontSize($r('app.float.fontSize_9_6'))
-                    .fontWeight(FontWeight.Medium)
-                    .fontColor($r('app.color.FFFFFF'))
-                    .maxLines(1)
-
-                  Text('工单编号:' + (item.workOrderCode ? item.workOrderCode : ''))
                     .fontSize($r('app.float.fontSize_6_4'))
                     .fontWeight(FontWeight.Lighter)
                     .fontColor($r('app.color.FFFFFF'))
@@ -69,7 +182,7 @@ export struct ProcessMaterialKitOneStep {
                     .fontColor($r('app.color.FFFFFF'))
                     .maxLines(1)
 
-                  Text('齐套进度:' + item.kitCompleteProgress)
+                  Text('齐套进度:' + (item.kitCompleteProgress ? item.kitCompleteProgress : 0) + '%')
                     .fontSize($r('app.float.fontSize_6_4'))
                     .fontWeight(FontWeight.Lighter)
                     .fontColor($r('app.color.FFFFFF'))
@@ -77,10 +190,12 @@ export struct ProcessMaterialKitOneStep {
                 }
                 .height('48.3%')
                 .width('91%')
-                .justifyContent(FlexAlign.SpaceBetween)
+                .alignItems(HorizontalAlign.Start)
+                .justifyContent(FlexAlign.SpaceAround)
               }
               .height('15.4%')
               .width('92.6%')
+              .borderRadius($r('app.float.virtualSize_6_4'))
               .justifyContent(FlexAlign.Start)
               .backgroundColor(this.selectWorkOrder === index ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
             }
@@ -88,8 +203,151 @@ export struct ProcessMaterialKitOneStep {
         }
         .width('100%')
         .height('90%')
+        .alignListItem(ListItemAlign.Center)
+      }
+      .height('100%')
+      .width('29.6%')
+      .borderRadius($r('app.float.virtualSize_6_4'))
+      .justifyContent(FlexAlign.Center)
+      .backgroundColor($r('app.color.10FFFFFF'))
+
+      Column() {
+        Row() {
+          Text('选择工序')
+            .fontSize($r('app.float.fontSize_12'))
+            .fontColor($r('app.color.FFFFFF'))
+            .fontWeight(FontWeight.Medium)
+        }
+        .height('10%')
+        .width('100%')
+        .justifyContent(FlexAlign.Center)
+
+        List() {
+          ForEach(this.operationArray, (item: StationOperationInfo, index: number) => {
+            ListItem() {
+              Column() {
+                Row() {
+                  Row() {
+                    Text(item.stanTypeName ? item.stanTypeName : (item.stanType ? item.stanType : ''))
+                      .fontSize($r('app.float.fontSize_6_4'))
+                      .fontWeight(FontWeight.Lighter)
+                      .fontColor($r('app.color.FFFFFF'))
+                  }
+                  .height('100%')
+                  .width('40%')
+                  .alignItems(VerticalAlign.Center)
+                  .justifyContent(FlexAlign.Start)
+
+                  Column() {
+                    ForEach(item.operationVO, (operation: OperationInfo, index: number) => {
+                      Column() {
+                        Row().height(6)
+                        Row({space: 5}) {
+                          Checkbox()
+                            .select(this.selectOperations.indexOf(operation.id) > -1 ? true : false)
+                            .selectedColor($r('app.color.30D158'))
+                            .width($r('app.float.virtualSize_8'))
+                            .height($r('app.float.virtualSize_8'))
+                            .onChange((value: boolean) => {
+                              if (value) {
+                                if (!this.selectOperations.includes(operation.id)) {
+                                  this.selectOperations.push(operation.id)
+                                }
+                              } else {
+                                if (this.selectOperations.includes(operation.id)) {
+                                  this.selectOperations = this.selectOperations.splice(this.selectOperations.indexOf(operation.id), 1)
+                                }
+                              }
+                              console.log('hhtest', '---' + JSON.stringify(this.selectOperations))
+                            })
+                          Text(operation.operationName ? operation.operationName : '')
+                            .fontSize($r('app.float.fontSize_9_6'))
+                            .fontWeight(FontWeight.Medium)
+                            .fontColor($r('app.color.FFFFFF'))
+                        }
+                        .width('100%')
+                        .height(48)
+                        .padding({left: '6%'})
+                        .backgroundColor(this.selectOperations.indexOf(operation.id) > -1 ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
+                        .borderRadius($r('app.float.virtualSize_6_4'))
+                        .onClick(()=>{
+                          if (this.selectOperations.includes(operation.id)) {
+                            this.selectOperations.splice(this.selectOperations.indexOf(operation.id), 1)
+                          } else {
+                            this.selectOperations.push(operation.id)
+                          }
+                          console.log('hhtest', '---' + JSON.stringify(this.selectOperations))
+                        })
+                        Row().height(6)
+                      }
+                      .justifyContent(FlexAlign.Center)
+                    })
+                  }
+                  .width('60%')
+                  .height('100%')
+                  .justifyContent(FlexAlign.Center)
+                }
+                Divider().vertical(false)
+                  .color($r('app.color.10FFFFFF'))
+                  .width('100%')
+              }
+              .width('92.6%')
+              .height(item.operationVO?.length! * 60)
+            }
+          })
+        }
+        .width('100%')
+        .height('90%')
+        .alignListItem(ListItemAlign.Center)
       }
+      .height('100%')
+      .width('29.6%')
+      .borderRadius($r('app.float.virtualSize_6_4'))
+      .justifyContent(FlexAlign.Center)
+      .backgroundColor($r('app.color.10FFFFFF'))
+
+      Column() {
+        Row() {
+          Text('需求物料')
+            .fontSize($r('app.float.fontSize_12'))
+            .fontColor($r('app.color.FFFFFF'))
+            .fontWeight(FontWeight.Medium)
+        }
+        .height('10%')
+        .width('100%')
+        .justifyContent(FlexAlign.Center)
+
+        List() {
+          ForEach(this.operationArray, (item: StationOperationInfo, index: number) => {
+            ListItem() {
+              Row() {
+                Row() {
+                  Text(item.stanTypeName ? item.stanTypeName : (item.stanType ? item.stanType : ''))
+                    .fontSize($r('app.float.fontSize_9_6'))
+                    .fontWeight(FontWeight.Medium)
+                    .fontColor($r('app.color.FFFFFF'))
+                    .maxLines(1)
+                }
+                .height('100%')
+                .width('91%')
+                .alignItems(VerticalAlign.Bottom)
 
+              }
+              .height(item.operationVO?.length! * 14.5 + '%')
+              .width('92.6%')
+              .justifyContent(FlexAlign.Start)
+              .backgroundColor(this.selectWorkOrder === index ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
+            }
+          })
+        }
+        .width('100%')
+        .height('90%')
+      }
+      .height('100%')
+      .width('29.6%')
+      .borderRadius($r('app.float.virtualSize_6_4'))
+      .justifyContent(FlexAlign.Center)
+      .backgroundColor($r('app.color.10FFFFFF'))
     }
     .width('100%')
     .height('100%')

+ 216 - 0
entry/src/main/ets/view/wms/ProcessMaterialKitTwoStep.ets

@@ -0,0 +1,216 @@
+import CommonConstants from '../../common/constants/CommonConstants'
+import WmsRequest from '../../common/util/request/WmsRequest'
+import OperationInfo from '../../viewmodel/wms/StationOperationInfo'
+import RequestParamModel from '../../viewmodel/wms/RequestParamModel'
+import WorkOrderInfo from '../../viewmodel/wms/WorkOrderInfo'
+
+@Component
+export struct ProcessMaterialKitOneStep {
+
+  @Link workOrder: WorkOrderInfo
+
+  @State workOrderArray: WorkOrderInfo[] = []
+  @State operationArray: OperationInfo[] = []
+
+  @State selectWorkOrder: number = 0
+
+  stationType: string = 'station_type'
+
+  async aboutToAppear() {
+    this.workOrderArray = await WmsRequest.post('/api/v1/plan/workOrder/list', {
+      //查询未完成的工单
+      queryComplete: 0,
+    } as RequestParamModel) as WorkOrderInfo[]
+    if (this.workOrderArray && this.workOrderArray.length > 0) {
+      this.workOrder = this.workOrderArray[0]
+      this.selectWorkOrder = 0
+
+      this.operationArray = await WmsRequest.post('/api/v1/plan/operation/list', {
+        //查询未完成的工单
+        processRouteId: this.workOrderArray[0]?.processRouteId,
+      } as RequestParamModel) as OperationInfo[]
+    }
+
+    if (this.operationArray && this.operationArray.length > 0) {
+      // 获取不合格原因的数据字典
+      let dictArray = CommonConstants.DICT_DATA.get(this.stationType);
+      if (!dictArray || dictArray.length <= 0) {
+        dictArray = await WmsRequest.get('/api/v1/sys/dictData/queryByType/' + this.stationType as string, {})
+      }
+      if (!dictArray) {
+        return
+      }
+      for (const element of this.operationArray) {
+        for (const dict of dictArray) {
+          if (element.stanType === dict.dictValue) {
+            element.stanTypeName = dict.dictLabel
+          }
+        }
+      }
+    }
+  }
+
+  build() {
+    Row() {
+      Row() {
+        Row() {
+          Text('调取料箱')
+            .fontSize($r('app.float.fontSize_12'))
+            .fontColor($r('app.color.FFFFFF'))
+            .fontWeight(FontWeight.Medium)
+        }
+        .height('10%')
+        .width('100%')
+        .justifyContent(FlexAlign.Center)
+
+        List() {
+          ForEach(this.workOrderArray, (item: WorkOrderInfo, index: number) => {
+            ListItem() {
+              Column() {
+                Row() {
+                  Text((item.orderName ? item.orderName : '') + (item.orderCode ? item.orderCode : ''))
+                    .fontSize($r('app.float.fontSize_9_6'))
+                    .fontWeight(FontWeight.Medium)
+                    .fontColor($r('app.color.FFFFFF'))
+                    .maxLines(1)
+                }
+                .height('38%')
+                .width('91%')
+                .alignItems(VerticalAlign.Bottom)
+
+                Column() {
+                  Text('工单编号:' + (item.workOrderCode ? item.workOrderCode : ''))
+                    .fontSize($r('app.float.fontSize_9_6'))
+                    .fontWeight(FontWeight.Medium)
+                    .fontColor($r('app.color.FFFFFF'))
+                    .maxLines(1)
+
+                  Text('工单编号:' + (item.workOrderCode ? item.workOrderCode : ''))
+                    .fontSize($r('app.float.fontSize_6_4'))
+                    .fontWeight(FontWeight.Lighter)
+                    .fontColor($r('app.color.FFFFFF'))
+                    .maxLines(1)
+
+                  Text('下发时间:' + item.updated)
+                    .fontSize($r('app.float.fontSize_6_4'))
+                    .fontWeight(FontWeight.Lighter)
+                    .fontColor($r('app.color.FFFFFF'))
+                    .maxLines(1)
+
+                  Text('齐套进度:' + item.kitCompleteProgress)
+                    .fontSize($r('app.float.fontSize_6_4'))
+                    .fontWeight(FontWeight.Lighter)
+                    .fontColor($r('app.color.FFFFFF'))
+                    .maxLines(1)
+                }
+                .height('48.3%')
+                .width('91%')
+                .justifyContent(FlexAlign.SpaceBetween)
+              }
+              .height('15.4%')
+              .width('92.6%')
+              .justifyContent(FlexAlign.Start)
+              .backgroundColor(this.selectWorkOrder === index ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
+            }
+          })
+        }
+        .width('100%')
+        .height('90%')
+      }
+      .height('100%')
+      .width('29.6%')
+      .borderRadius($r('app.float.virtualSize_6_4'))
+      .justifyContent(FlexAlign.Center)
+      .backgroundColor($r('app.color.10FFFFFF'))
+
+      Row() {
+        Row() {
+          Text('出入库料口操作')
+            .fontSize($r('app.float.fontSize_12'))
+            .fontColor($r('app.color.FFFFFF'))
+            .fontWeight(FontWeight.Medium)
+        }
+        .height('10%')
+        .width('100%')
+        .justifyContent(FlexAlign.Center)
+
+        List() {
+          ForEach(this.operationArray, (item: OperationInfo, index: number) => {
+            ListItem() {
+              Row() {
+                Row() {
+                  Text(item.stanTypeName ? item.stanTypeName : (item.stanType ? item.stanType : ''))
+                    .fontSize($r('app.float.fontSize_9_6'))
+                    .fontWeight(FontWeight.Medium)
+                    .fontColor($r('app.color.FFFFFF'))
+                    .maxLines(1)
+                }
+                .height('100%')
+                .width('91%')
+                .alignItems(VerticalAlign.Bottom)
+
+              }
+              .height(item.operationVO?.length! * 14.5 + '%')
+              .width('92.6%')
+              .justifyContent(FlexAlign.Start)
+              .backgroundColor(this.selectWorkOrder === index ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
+            }
+          })
+        }
+        .width('100%')
+        .height('90%')
+      }
+      .height('100%')
+      .width('29.6%')
+      .borderRadius($r('app.float.virtualSize_6_4'))
+      .justifyContent(FlexAlign.Center)
+      .backgroundColor($r('app.color.10FFFFFF'))
+
+      Row() {
+        Row() {
+          Text('拣选工作台')
+            .fontSize($r('app.float.fontSize_12'))
+            .fontColor($r('app.color.FFFFFF'))
+            .fontWeight(FontWeight.Medium)
+        }
+        .height('10%')
+        .width('100%')
+        .justifyContent(FlexAlign.Center)
+
+        List() {
+          ForEach(this.operationArray, (item: OperationInfo, index: number) => {
+            ListItem() {
+              Row() {
+                Row() {
+                  Text(item.stanTypeName ? item.stanTypeName : (item.stanType ? item.stanType : ''))
+                    .fontSize($r('app.float.fontSize_9_6'))
+                    .fontWeight(FontWeight.Medium)
+                    .fontColor($r('app.color.FFFFFF'))
+                    .maxLines(1)
+                }
+                .height('100%')
+                .width('91%')
+                .alignItems(VerticalAlign.Bottom)
+
+              }
+              .height(item.operationVO?.length! * 14.5 + '%')
+              .width('92.6%')
+              .justifyContent(FlexAlign.Start)
+              .backgroundColor(this.selectWorkOrder === index ? $r('app.color.2030D158') : $r('app.color.20FFFFFF'))
+            }
+          })
+        }
+        .width('100%')
+        .height('90%')
+      }
+      .height('100%')
+      .width('29.6%')
+      .borderRadius($r('app.float.virtualSize_6_4'))
+      .justifyContent(FlexAlign.Center)
+      .backgroundColor($r('app.color.10FFFFFF'))
+    }
+    .width('100%')
+    .height('100%')
+    .justifyContent(FlexAlign.SpaceBetween)
+  }
+}

+ 8 - 0
entry/src/main/ets/viewmodel/DictInfo.ets

@@ -0,0 +1,8 @@
+import DictValue from './DictValue'
+
+export default class DictInfo {
+  // 字典编码
+  dictCode?: string
+  // 字典值
+  list?: DictValue[]
+}

+ 8 - 0
entry/src/main/ets/viewmodel/DictValue.ets

@@ -0,0 +1,8 @@
+export default class DictValue {
+  // 字典标签
+  dictLabel?: string
+  // 字典排序
+  dictSort?: number
+  // 字典值
+  dictValue?: string
+}

+ 12 - 0
entry/src/main/ets/viewmodel/wms/OperationInfo.ets

@@ -0,0 +1,12 @@
+export default class OperationInfo {
+  // 工序id
+  id?: string
+  // 基础工序名称
+  operationName?: string
+  // 工序编码
+  operationCode?: string
+  // 基础工序号
+  operationOp?: string
+  // 工位类型
+  stanType?: string
+}

+ 2 - 0
entry/src/main/ets/viewmodel/wms/RequestParamModel.ets

@@ -16,4 +16,6 @@ export default class RequestParamModel {
   stanCode?:string
   //料箱编号
   vehicleNo?:string
+  // 工艺路线id
+  processRouteId?: number
 }

+ 12 - 0
entry/src/main/ets/viewmodel/wms/StationOperationInfo.ets

@@ -0,0 +1,12 @@
+// 工位工序信息
+import OperationInfo from './OperationInfo'
+
+export default class StationOperationInfo {
+    // 工位类型
+    stanType?: string
+    // 工位类型名称
+    stanTypeName?: string
+    // 工序明细
+    operationVO?: OperationInfo[]
+}
+

+ 2 - 2
entry/src/main/ets/viewmodel/wms/WorkOrderInfo.ets

@@ -1,4 +1,4 @@
-export default class WorkOrderInfo{
+export default class WorkOrderInfo {
   // 工单编码
   workOrderCode?: string
   // 工单id
@@ -22,7 +22,7 @@ export default class WorkOrderInfo{
   // 产线名称
   productLineName?: string
   //工艺路线id
-  processRouteId?: string
+  processRouteId?: number
   // 工艺路线编码
   processRouteCode?: string
   // 工艺路线名称

+ 4 - 0
entry/src/main/resources/base/element/font.json

@@ -79,6 +79,10 @@
     {
       "name": "virtualSize_22_4",
       "value": "33.6vp"
+    },
+    {
+      "name": "virtualSize_8",
+      "value": "12vp"
     }
   ]
 }