Bläddra i källkod

优化点击创建时动画

bjb 5 månader sedan
förälder
incheckning
8b124f3280

+ 6 - 0
app/src/main/java/com/grkj/iscs_mars/can/CanHardwareHelper.kt

@@ -333,6 +333,12 @@ class CanHardwareHelper : IHardwareHelper {
     }
 
     override fun updateKeyRfid(addr: Int, idx: Int, rfid: String) {
+        // 找到非当前钥匙的rfid一样的进行移除
+//        val list = CanHelper.getKeysByRfid(rfid)
+//        list.forEach { key ->
+//            if (key.id == idx) key.rfid = rfid
+//            else key.rfid = ""
+//        }
         CanHelper.getDeviceByNodeId(addr).find { it.id == idx }?.rfid = rfid
     }
 

+ 4 - 0
app/src/main/java/com/grkj/iscs_mars/can/CanHelper.kt

@@ -226,6 +226,10 @@ object CanHelper {
             .find { it.rfid == rfid }
     }
 
+    fun getKeysByRfid(rfid: String): List<DeviceModel.DeviceKey> {
+        return deviceData.flatMap { it.value }.filterIsInstance<DeviceModel.DeviceKey>().filter { it.rfid == rfid }
+    }
+
     /**
      * 根据rfid获取挂锁
      */

+ 1 - 1
app/src/main/java/com/grkj/iscs_mars/view/fragment/WorkshopFragment.kt

@@ -81,7 +81,7 @@ class WorkshopFragment(val changePage: (PageChangeBO) -> Unit) :
                 }
             }
         }
-        val animator = ObjectAnimator.ofFloat(mBinding?.tvCreateTips, "alpha", 0f, 1f)
+        val animator = ObjectAnimator.ofFloat(mBinding?.tvCreateTips, "alpha", 0f, 1f, 1f, 0.8f, 0f)
         animator.addListener(onEnd = {
             mBinding?.tvCreateTips?.visibility = View.INVISIBLE
         })

+ 9 - 75
app/src/main/java/com/grkj/iscs_mars/view/widget/CustomMarkLayerSample.kt

@@ -79,88 +79,17 @@ class CustomMarkLayerSample @JvmOverloads constructor(
             val labelTop = goal[1] - height / 2f - horizontalPadding / 2f
             val labelRight = goal[0] + width / 2f + horizontalPadding * 2f
             val labelBottom = goal[1] + height / 2f + horizontalPadding / 2f
-
-            if (sx > labelLeft && sx < labelRight && sy > labelTop && sy < labelBottom) {
+            Log.d("Map Click Point", "x[$labelLeft, $labelRight] y[$labelTop, $labelBottom] ($sx, $sy)")
+            if (sx > labelLeft && sy > labelTop && sx < labelRight && sy < labelBottom) {
                 num = i
                 btnIndex = -1
                 isClickMark = true
                 isClickIcon = false
                 break
             }
-
-            // ===== 命中 2:上方最多 3 个 icon(与 onDraw 同公式)=====
-            val list = point.ticketList.take(3)
-            if (list.isEmpty()) continue
-
-            // icon 顶点的屏幕 Y(与 onDraw 保持)
-            val iconTopY = goal[1] - height / 2f - horizontalPadding / 2f - 10f - mBitmapSize
-
-            for (j in list.indices) {
-                // 与 onDraw 的水平排布保持一致
-                val ticketX = when {
-                    list.size % 2 == 0 -> { // 偶数
-                        if (j + 1 <= list.size / 2) {
-                            goal[0] - mBitmapSize * (list.size / 2 - j)
-                        } else {
-                            goal[0] + mBitmapSize * (j - list.size / 2)
-                        }
-                    }
-
-                    else -> { // 奇数
-                        if (j + 1 <= list.size / 2) {
-                            goal[0] - mBitmapSize * (list.size / 2 - j + 0.5f)
-                        } else {
-                            goal[0] + mBitmapSize * (j - list.size / 2 - 0.5f)
-                        }
-                    }
-                }
-
-                // icon 的屏幕矩形(顶点与 onDraw 对齐)
-                val iconLeft = ticketX
-                val iconTop = iconTopY
-                val iconRight = ticketX + mBitmapSize
-                val iconBottom = iconTopY + mBitmapSize
-
-                // 命中 2.1:点击到图标本体(用圆形或矩形都行,这里圆形更贴合视觉)
-                val iconCx = (iconLeft + iconRight) / 2f
-                val iconCy = (iconTop + iconBottom) / 2f
-                val dx = sx - iconCx
-                val dy = sy - iconCy
-                val r = mBitmapSize / 2f
-                val hitIcon = (dx * dx + dy * dy) <= (r * r)
-
-                if (hitIcon) {
-                    num = i
-                    btnIndex = j
-                    isClickMark = true
-                    isClickIcon = true
-                    break
-                }
-
-                val badgeSize = mBitmapSize * 0.9f
-                val gap = horizontalPadding
-
-                val iconCenterX = iconLeft + mBitmapSize / 2f
-
-                val badgeBottom = iconTop - gap
-                val badgeTop = badgeBottom - badgeSize
-                val badgeLeft = iconCenterX - badgeSize / 2f
-                val badgeRight = iconCenterX + badgeSize / 2f
-
-                val hitBadge =
-                    sx > badgeLeft && sx < badgeRight && sy > badgeTop && sy < badgeBottom
-                if (hitBadge) {
-                    num = i
-                    btnIndex = j
-                    isClickMark = true
-                    isClickIcon = false
-                    break
-                }
-            }
-
             if (isClickMark) break
         }
-        if (listener != null && isClickMark && event.pointerCount == 1) {
+        if (listener != null && isClickMark) {
             listener!!.markIsClick(num, btnIndex, isClickIcon)
             mapView.refreshWorld()
         }
@@ -212,7 +141,12 @@ class CustomMarkLayerSample @JvmOverloads constructor(
                     paint.color = Color.parseColor("#FFFFFF")
                     // 绘制个数
                     val numW = paint.measureText("${point.ticketList.size}")
-                    canvas.drawText("${point.ticketList.size}", cx - (numW / 2) - horizontalPadding, goal[1] + height / 2 - paint.fontMetrics.descent, paint)
+                    canvas.drawText(
+                        "${point.ticketList.size}",
+                        cx - (numW / 2) - horizontalPadding,
+                        goal[1] + height / 2 - paint.fontMetrics.descent,
+                        paint
+                    )
                     // 绘制岗位
                     canvas.drawText(point.name, (goal[0] - width / 2) - horizontalPadding, goal[1] + height / 2 - paint.fontMetrics.descent, paint)
                 }

+ 1 - 1
app/src/main/res/layout/fragment_workshop.xml

@@ -67,7 +67,7 @@
             android:id="@+id/tv_create_tips"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:background="@drawable/common_btn_blue_bg"
+            android:background="@color/main_color_dark"
             android:paddingHorizontal="10dp"
             android:paddingVertical="15dp"
             android:text="@string/guide_create_job"

+ 51 - 51
app/src/main/res/values-en/strings.xml

@@ -3,11 +3,11 @@
 
     <string name="common_net_dis">Please check your network connection and try again!</string>
     <string name="common_net_download">Please check your network connection and download URL, then try again!</string>
-    <string name="common_download_erro_notag">Download failed! Please check the file storage location and try again</string>
+    <string name="common_download_erro_notag">Download failed! Please check the file storage location and try again!</string>
     <string name="common_token_expired">Token expired, please login again!</string>
     <string name="common_net_timeout">Network request timeout, please check your network connection and try again!</string>
 
-    <string name="title_bar_current_work_ticket_num">Current Jobs: %d</string>
+    <string name="title_bar_current_work_ticket_num">Current WOs: %d</string>
     <string name="home_page">Home</string>
 
     <string name="enter_system">Enter System</string>
@@ -18,34 +18,34 @@
 
     <string name="selectable_input_prefix">*</string>
 
-    <string name="sop_number">Job Number</string>
-    <string name="sop_name">Job Name</string>
-    <string name="sop_type">Job Type</string>
+    <string name="sop_number">SOP Number</string>
+    <string name="sop_name">SOP Name</string>
+    <string name="sop_type">SOP Type</string>
     <string name="start_time">Start Time</string>
     <string name="end_time">End Time</string>
     <string name="current_time">Current Time</string>
-    <string name="current_sop_number">Current Job Count</string>
+    <string name="current_sop_number">Current SOP Count</string>
 
     <string name="ble_no_device_found">No devices found</string>
     <string name="ble_connecting">Connecting, please wait...</string>
     <string name="ble_connect_fail">Connection failed, please try again!</string>
     <string name="ble_disconnect">Connection disconnected, please try again!</string>
 
-    <string name="ticket_code_is_null">Please enter Job number</string>
-    <string name="ticket_name_is_null">Please enter Job name</string>
+    <string name="ticket_code_is_null">Please enter WO number</string>
+    <string name="ticket_name_is_null">Please enter WO name</string>
     <string name="work_shop_is_null">Please select workshop</string>
     <string name="work_area_is_null">Please select work area</string>
     <string name="sop_is_null">Please select SOP</string>
-    <string name="ticket_type_is_null">Please select Job type</string>
+    <string name="ticket_type_is_null">Please select WO type</string>
 
     <string name="login_tip">Please enter username/password or swipe card to login</string>
     <string name="please_input_account">Please enter account</string>
     <string name="please_input_password">Please enter password</string>
     <string name="account_or_password_error">Incorrect username or password</string>
     <string name="device_is_initializing">Initializing device...</string>
-    <string name="create_ticket">Create Job</string>
-    <string name="current_tickets">Current Jobs</string>
-    <string name="history_tickets">Job History</string>
+    <string name="create_ticket">Create WO</string>
+    <string name="current_tickets">Current WOs</string>
+    <string name="history_tickets">WO History</string>
     <string name="please_login">Please login</string>
 
     <string name="exit">Exit</string>
@@ -55,14 +55,14 @@
     <string name="on_process">In Progress</string>
     <string name="ready_to_unlock">Ready to Unlock</string>
     <string name="finished">Finished</string>
-    <string name="key_return_confirm_tip">Job not completed, confirm to return key?</string>
-    <string name="ticket_id_is_null">Job ID cannot be empty</string>
+    <string name="key_return_confirm_tip">WO not completed, confirm to return key?</string>
+    <string name="ticket_id_is_null">WO ID cannot be empty</string>
     <string name="lock_is_not_enough">Insufficient locks</string>
     <string name="key_is_not_enough">Insufficient keys</string>
     <string name="no_available_key">No available keys</string>
     <string name="get_key_info_fail">Failed to get key information</string>
 
-    <string name="ticket_is_finished">Job completed</string>
+    <string name="ticket_is_finished">WO completed</string>
     <string name="ticket_is_locker_part_finished">Locker part completed</string>
     <string name="ticket_is_colocker_part_finished">group lock member part completed</string>
 
@@ -70,16 +70,16 @@
 
     <string name="make_sure_to_colock">Confirm to group lock?</string>
     <string name="make_sure_to_unlock">Confirm to unlock?</string>
-    <string name="key_return_tip">Job not completed, key return prohibited</string>
+    <string name="key_return_tip">WO not completed, key return prohibited</string>
     <string name="key_return_force_tip">The work order has not been completed. Do you want to force data upload</string>
 
     <!--  Presentation Page  -->
     <string name="presentation_select_sop">Select SOP</string>
     <string name="presentation_select_workshop">Select Workshop</string>
     <string name="presentation_select_line">Select Production Line</string>
-    <string name="presentation_ticket_name">Job Name</string>
-    <string name="presentation_ticket_number">Job Number</string>
-    <string name="presentation_ticket_type">Job Type</string>
+    <string name="presentation_ticket_name">WO Name</string>
+    <string name="presentation_ticket_number">WO Number</string>
+    <string name="presentation_ticket_type">WO Type</string>
     <string name="presentation_segregation_point">Isolation Point</string>
     <string name="presentation_person_lock">Locker</string>
     <string name="presentation_person_lock_together">group lock member</string>
@@ -90,8 +90,8 @@
     <string name="presentation_hint_line">Please select production line</string>
     <string name="presentation_hint_sop">Please select...</string>
     <string name="presentation_hint_name">Please select</string>
-    <string name="presentation_hint_number">Please enter Job number</string>
-    <string name="presentation_hint_type">Please select Job type</string>
+    <string name="presentation_hint_number">Please enter WO number</string>
+    <string name="presentation_hint_type">Please select WO type</string>
     <string name="presentation_hint_point">Please enter isolation point</string>
     <string name="presentation_hint_locker">Select Locker</string>
     <string name="presentation_hint_together">Please enter group lock member</string>
@@ -102,13 +102,13 @@
 
 
     <!--  Design  -->
-    <string name="loto">Smart Lockout Cabinet</string>
-    <string name="app_title">Intelligent LOTO</string>
-    <string name="job_management">Jobs</string>
+    <string name="loto">Intelligent Lockout Cabinet</string>
+    <string name="app_title">Intelligent Lockout</string>
+    <string name="job_management">Works</string>
     <string name="settings">Settings</string>
     <string name="workshop">Workstation</string>
     <string name="technology_sop">Process SOP</string>
-    <string name="job_execution">Job Execution</string>
+    <string name="job_execution">WO Execution</string>
     <string name="repair">Repair</string>
     <string name="pre_maintenance">PM</string>
     <string name="change_shifts">Shift Handover</string>
@@ -127,8 +127,8 @@
     <string name="power_isolation_way">Energy Isolation Method</string>
     <string name="notice_worker">Notify Personnel</string>
     <string name="shutdown">Shutdown Operation</string>
-    <string name="lock_and_hang_a_sign">Lockout Tagout</string>
-    <string name="ensure_power_isolation">Energy Isolation Verification</string>
+    <string name="lock_and_hang_a_sign">Lockout</string>
+    <string name="ensure_power_isolation">Verify Energy Isolation</string>
     <string name="check_before_unlocking">Pre-Unlock Check</string>
     <string name="unlock_and_restore_switch">Unlock and Restore Switch</string>
     <string name="login_face">Face Login</string>
@@ -141,7 +141,7 @@
     <string name="login">Login</string>
     <string name="current_sop">Current SOP: %s</string>
     <string name="machinery_pic">Technology Diagram</string>
-    <string name="lock_station">LOTO Station</string>
+    <string name="lock_station">Lockout Station</string>
     <string name="locker">Locker</string>
     <string name="colocker">Group Lock Member</string>
     <string name="select">Select</string>
@@ -152,7 +152,7 @@
     <string name="effect">Function</string>
     <string name="switch_status">Device State</string>
     <string name="lock_status">Lock Status</string>
-    <string name="ready_to_colock">Pending Group Lock</string>
+    <string name="ready_to_colock">Pending G-Lock</string>
     <string name="ready_to_colock_sample">Pending G-Lock</string>
     <string name="colocked">Group Locked</string>
     <string name="colocked_sample">G-Locked</string>
@@ -166,17 +166,17 @@
     <string name="please_select_locker">Please select locker</string>
     <string name="has_locked">Locked</string>
     <string name="action_confirm_shut_down">Confirm to perform shutdown operation?</string>
-    <string name="action_confirm_lock">Confirm to perform lockout tagout?</string>
+    <string name="action_confirm_lock">Confirm to perform lockout?</string>
     <string name="action_confirm_power_isolation">Confirm to verify energy isolation?</string>
     <string name="action_confirm_check_before_unlocking">Confirm to perform pre-unlock check?</string>
     <string name="action_confirm_restore">Confirm to unlock and restore switch?</string>
-    <string name="action_confirm_finish_ticket">Other Jobs still lock isolation points, confirm to finish?</string>
+    <string name="action_confirm_finish_ticket">Other WOs still lock isolation points, confirm to finish?</string>
     <string name="logout">Logout</string>
     <string name="cancel">Cancel</string>
     <string name="cancel_countdown">Cancel (%d seconds)</string>
     <string name="confirm_to_colock">Confirm %s to group lock?</string>
     <string name="confirm_to_uncolock">Confirm %s to remove group lock?</string>
-    <string name="not_involved_in_ticket">You are not involved in this Job</string>
+    <string name="not_involved_in_ticket">You are not involved in this WO</string>
     <string name="you_are_not_locker_tip">You are not the locker, cannot perform this operation</string>
     <string name="open_all_docks">Open All Docks</string>
     <string name="close_all_docks">Close All Docks</string>
@@ -221,7 +221,7 @@
     <string name="exception_report_level_hint">Please select severity level</string>
     <string name="exception_report_hardware_key">Key number:</string>
     <string name="exception_report_hardware_lock">Lock number:</string>
-    <string name="exception_report_hardware_job_card">Job card number:</string>
+    <string name="exception_report_hardware_job_card">Card number:</string>
     <string name="exception_report_hardware_rfid_point">Rfid number:</string>
     <string name="exception_report_description">Exception Description:</string>
     <string name="fingerprint_config">Fingerprint Settings</string>
@@ -250,24 +250,24 @@
     <string name="face_delete_confirm_tip">Confirm to delete face data?</string>
     <string name="my_face">My Face</string>
     <string name="loading_msg_return_key_start">Connecting to key, please wait...</string>
-    <string name="loading_msg_get_ticket_status_start">Reading Job from key</string>
+    <string name="loading_msg_get_ticket_status_start">Reading work order from key</string>
     <string name="key_return_success">Key returned successfully</string>
-    <string name="continue_the_ticket">Please continue to complete the Job</string>
+    <string name="continue_the_ticket">Please continue to complete the work order</string>
     <string name="can_not_lock_in_current_step">Locking not allowed at current step</string>
     <string name="take_out_rest_locks">Please take out remaining unlocked padlocks</string>
     <string name="take_out_key">Please take out the key</string>
-    <string name="ticket_is_starting">Starting Job...</string>
+    <string name="ticket_is_starting">Starting work order...</string>
     <string name="system_is_processing">System processing...</string>
     <string name="take_out_lock_tip">Please take locks from open dock, %d remaining</string>
     <string name="take_out_key_tip">Please take the key from open key dock</string>
     <string name="data_is_uploading">Uploading data...</string>
     <string name="waiting_for_allocating_worker">Waiting to assign workers</string>
     <string name="waiting_for_shutting_down">Waiting to perform shutdown</string>
-    <string name="waiting_for_hanging_a_sign">Waiting to perform lockout tagout</string>
+    <string name="waiting_for_hanging_a_sign">Waiting to perform lockout</string>
     <string name="waiting_for_power_isolation">Waiting to verify energy isolation</string>
     <string name="waiting_for_checking_before_unlocking">Waiting to perform pre-unlock check</string>
     <string name="waiting_for_restoring_switch_before_unlocking">Waiting to restore switch before unlocking</string>
-    <string name="waiting_for_finishing">Waiting to finish current job</string>
+    <string name="waiting_for_finishing">Waiting to finish current work order</string>
     <string name="allocating_worker_tip">Please assign locker and group lock member</string>
     <string name="please_go_locking">Please have locker perform locking operation</string>
     <string name="please_return_key_after_locking">Please have locker return the key after locking</string>
@@ -280,15 +280,15 @@
     <string name="face_can_not_process">Face engine activation failed, recognition unavailable</string>
     <string name="face_detected_do_login">Face detected, logging in...</string>
     <string name="current_step_can_not_be_process">Current step cannot be processed temporarily</string>
-    <string name="no_permission_to_handle">You do not have permission for this Job</string>
+    <string name="no_permission_to_handle">You do not have permission for this work order</string>
     <string name="can_not_change_locker">Cannot change locker currently</string>
     <string name="please_add_at_least_colockers">Please add at least %1$d colockers</string>
     <string name="can_not_change_colocker">Cannot change group lock member currently</string>
     <string name="is_processing_please_wait">Processing, please wait...</string>
     <string name="doing_login">Logging in...</string>
-    <string name="start_to_send_ticket">Starting to issue Job...</string>
-    <string name="sending_ticket">Issuing Job...</string>
-    <string name="send_ticket_fail">Failed to issue Job</string>
+    <string name="start_to_send_ticket">Starting to issue work order...</string>
+    <string name="sending_ticket">Issuing work order...</string>
+    <string name="send_ticket_fail">Failed to issue work order</string>
     <string name="login_method_tip">● Scan Card to login directly.</string>
     <string name="use_default_cabinet_id">Will use default CabinetId</string>
     <string name="please_set_url">Please enter URL, empty will use default</string>
@@ -320,7 +320,7 @@
     <string name="icon">Icons</string>
     <string name="ticket_name">Ticket Name</string>
     <string name="check">View</string>
-    <string name="ticket_processing">Jobs In Progress</string>
+    <string name="ticket_processing">Work orders In Progress</string>
     <string name="has_no_point_can_unlock">has no point can unlock</string>
     <string name="all_point_already_locked">all point already locked</string>
     <string name="please_done_lock_action_and_colock_action">Please done lock action and colock action</string>
@@ -340,8 +340,8 @@
     <string name="take_one_more_key_hint">I have already taken out the key, would you like to take out another one</string>
     <string name="current_user_does_not_have_the_authority_to_colock">The current user does not have the authority to colock</string>
     <string name="current_user_does_not_have_the_authority_to_unlock_colock">The current user does not have the authority to unlock colock</string>
-    <string name="all_point_have_other_job_not_finish">all point have other job not finish,do you want to continue?</string>
-    <string name="lock_is_not_enough_stop_issue_ticket">The current cabinet padlock is insufficient, please wait for other jobs to return the padlock.</string>
+    <string name="all_point_have_other_job_not_finish">all point have other work order not finish,do you want to continue?</string>
+    <string name="lock_is_not_enough_stop_issue_ticket">The current cabinet padlock is insufficient, please wait for other work orders to return the padlock.</string>
     <string name="ticket_lost">作业票数据丢失啦!</string>
     <string name="current_ticket_report_lock_take_exception_tip">current ticket report lock take exception, please return lock</string>
     <string name="please_input_exception_reason">please input exception reason</string>
@@ -363,8 +363,8 @@
     <string name="key_exception_tag">Key is tag for exception</string>
     <string name="slot_exception_tag">Slot is tag for exception</string>
     <string name="lock_exception_tag">Lock is tag for exception</string>
-    <string name="job_already_finished">job already finished</string>
-    <string name="ticket_data_error">job ticket data error</string>
+    <string name="job_already_finished">work order already finished</string>
+    <string name="ticket_data_error">work order ticket data error</string>
     <string name="card_invalid">This card is invalid</string>
     <string name="lock_nfc_not_correct">该nfc无对应的挂锁信息</string>
     <string name="only_one_person_allowed">Only one person allowed</string>
@@ -404,11 +404,11 @@
     <string name="ticket_get_failed">Ticket get failed,Please reposition the key</string>
     <string name="ticket_not_finish_can_not_return_lock">The padlock is not allowed to be returned if the work ticket is not completed</string>
     <string name="lock_is_not_enough_check_issue_ticket">%1$d padlocks can be distributed to the current cabinet. Please obtain the remaining padlocks from other cabinets or wait for other operations to return Padlock, \nAre you sure to perform operation?</string>
-    <string name="lock_is_empty_stop_issue_ticket">There is no padlock available for the current cabinet. Please obtain the padlock from other cabinets or wait for other jobs to return the padlock.</string>
-    <string name="lock_enough_but_key_not_enough">The current cabinet can distribute %1$d padlocks. Please obtain keys from other cabinets or wait for other jobs to return the keys. \nAre you sure you want to perform the operation?</string>
+    <string name="lock_is_empty_stop_issue_ticket">There is no padlock available for the current cabinet. Please obtain the padlock from other cabinets or wait for other work orders to return the padlock.</string>
+    <string name="lock_enough_but_key_not_enough">The current cabinet can distribute %1$d padlocks. Please obtain keys from other cabinets or wait for other work orders to return the keys. \nAre you sure you want to perform the operation?</string>
     <string name="key_not_enough_wait_or_take_on_another">There is no key available for distribution in the current cabinet. Please obtain the key from other cabinets or wait for other operations to return the key.</string>
     <string name="key_power_low_wait_or_take_on_another">The current power of the cabinet key is low. Please wait for 15 minutes or get it from another cabinet.</string>
-    <string name="lock_enough_but_key_enough_but_key_power_down">The current cabinet can distribute %1$d padlocks but The current power of the cabinet key is low. Please obtain keys from other cabinets or wait for other jobs to return the keys. \nAre you sure you want to perform the operation?</string>
+    <string name="lock_enough_but_key_enough_but_key_power_down">The current cabinet can distribute %1$d padlocks but The current power of the cabinet key is low. Please obtain keys from other cabinets or wait for other work orders to return the keys. \nAre you sure you want to perform the operation?</string>
     <string name="show_point_list">Show</string>
     <string name="hide_point_list">Hide</string>
     <string name="switch_id">ID:%1$s</string>
@@ -435,7 +435,7 @@
     <string name="common_go_settings">Setup</string>
     <string name="select_group_locker">Select Group Member</string>
     <string name="confirm_personal">Verify Personnel</string>
-    <string name="job_progress">Job Progress</string>
+    <string name="job_progress">Work Order Progress</string>
     <string name="lock_info">Lockout Info</string>
     <string name="together_info">Group Lock Info</string>
     <string name="guide_create_job">Click a workstation on the map to create.</string>