add:页面国际化

This commit is contained in:
2025-12-05 09:26:00 +08:00
parent c1e82b3ddc
commit de009fadbb
52 changed files with 6581 additions and 624 deletions

View File

@@ -17,7 +17,7 @@ import java.util.Map;
* @Date 2023/11/13 09:36
*/
public class InitLocaleResolver implements LocaleResolver {
public static Map<String,String> Language_Country = MapOf.of("in","in-ID","en","en-US","zh","zh-CN");
public static Map<String,String> Language_Country = org.nl.common.utils.MapOf.of("in","in-ID","en","en-US","zh","zh-CN","jp","jp-JP");
@Override
public Locale resolveLocale(HttpServletRequest request) {
String header = request.getHeader("Accept-Language");

View File

@@ -71,6 +71,10 @@ public class SysMenu implements Serializable {
* 菜单标题
*/
private String in_title;
/**
* 菜单标题
*/
private String jp_title;
/**
* 组件名称

View File

@@ -44,6 +44,7 @@ public class MenuDto extends BaseDTO implements Serializable {
private String title;
private String zh_title;
private String en_title;
private String jp_title;
private String in_title;
private Integer menu_sort;
@@ -106,6 +107,7 @@ public class MenuDto extends BaseDTO implements Serializable {
String in = "in";
String en = "en";
String zh = "zh";
String jp = "jp";
if (in.equals(local)){
return in_title;
@@ -116,6 +118,9 @@ public class MenuDto extends BaseDTO implements Serializable {
if (zh.equals(local)){
return zh_title;
}
if (jp.equals(local)){
return jp_title;
}
return title;
}
}

View File

@@ -229,6 +229,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
menu.setEn_title(resources.getEn_title());
menu.setZh_title(resources.getZh_title());
menu.setIn_title(resources.getIn_title());
menu.setJp_title(resources.getJp_title());
menu.setHidden(resources.getHidden());
menu.setComponent_name(resources.getComponent_name());
menu.setPermission(resources.getPermission());
@@ -363,6 +364,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
menuDto.setEn_title(entity.getEn_title());
menuDto.setIn_title(entity.getIn_title());
menuDto.setZh_title(entity.getZh_title());
menuDto.setJp_title(entity.getJp_title());
menuDto.setMenu_id(entity.getMenu_id());
menuDto.setType(entity.getType());
menuDto.setPermission(entity.getPermission());

View File

@@ -0,0 +1,37 @@
package org.nl.wms.bigscreen_manage.controller;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.bigscreen_manage.service.BigScreenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/bigScreen")
@Slf4j
public class BigScreenController {
@Autowired
private BigScreenService bigScreenService;
@GetMapping("/getReportData")
@Log("获取报表数据")
@SaIgnore
public ResponseEntity<Object> getReportData() {
try {
JSONObject result = bigScreenService.getReportData();
return new ResponseEntity<>(result, HttpStatus.OK);
} catch (Exception e) {
log.error("获取报表数据失败", e);
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}

View File

@@ -0,0 +1,12 @@
package org.nl.wms.bigscreen_manage.service;
import com.alibaba.fastjson.JSONObject;
public interface BigScreenService {
/**
* 获取报表数据
* @return 报表数据JSON对象包含统计数据和历史数据
*/
JSONObject getReportData();
}

View File

@@ -0,0 +1,170 @@
package org.nl.wms.bigscreen_manage.service.impl;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.wms.bigscreen_manage.service.BigScreenService;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class BigScreenServiceImpl implements BigScreenService {
@Autowired
private ISchBaseTaskService iSchBaseTaskService;
@Override
public JSONObject getReportData() {
JSONObject result = new JSONObject();
// 1. 构建统计数据
JSONObject stats = new JSONObject();
// 总任务数
QueryWrapper<SchBaseTask> taskWrapper = new QueryWrapper<>();
taskWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
;
stats.put("totalTasks", iSchBaseTaskService.count(taskWrapper));
// 总完成任务数
QueryWrapper<SchBaseTask> finishTaskWrapper = new QueryWrapper<>();
finishTaskWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.eq(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
;
stats.put("totalfinishTasks", iSchBaseTaskService.count(finishTaskWrapper));
// 总取消任务数
QueryWrapper<SchBaseTask> cancelTaskWrapper = new QueryWrapper<>();
cancelTaskWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.eq(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
;
stats.put("totalcancelTasks", iSchBaseTaskService.count(cancelTaskWrapper));
// 总未完成任务数
QueryWrapper<SchBaseTask> unfinishTaskWrapper = new QueryWrapper<>();
unfinishTaskWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
;
stats.put("totalunfinishTasks", iSchBaseTaskService.count(unfinishTaskWrapper));
// 今日任务数
QueryWrapper<SchBaseTask> todayTaskWrapper = new QueryWrapper<>();
todayTaskWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.ge(SchBaseTask::getCreate_time, DateUtil.beginOfDay(DateUtil.date()))
.le(SchBaseTask::getCreate_time, DateUtil.endOfDay(DateUtil.date()));
int todayTasks = iSchBaseTaskService.count(todayTaskWrapper);
stats.put("todayTasks", todayTasks);
// 昨日任务数(计算日环比)
QueryWrapper<SchBaseTask> yesterdayTaskWrapper = new QueryWrapper<>();
yesterdayTaskWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.eq(SchBaseTask::getTask_status,TaskStatus.FINISHED.getCode())
.ge(SchBaseTask::getCreate_time, DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.date(), -1)))
.le(SchBaseTask::getCreate_time, DateUtil.endOfDay(DateUtil.offsetDay(DateUtil.date(), -1)));
int yesterdayTasks = iSchBaseTaskService.count(yesterdayTaskWrapper);
double dayOnDay = yesterdayTasks > 0 ? ((double)(todayTasks - yesterdayTasks) / yesterdayTasks) * 100 : 0;
stats.put("dayOnDay", NumberUtil.round(dayOnDay, 1));
// 今日完成任务数
QueryWrapper<SchBaseTask> todayFinshTaskWrapper = new QueryWrapper<>();
todayFinshTaskWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.eq(SchBaseTask::getTask_status,TaskStatus.FINISHED.getCode())
.ge(SchBaseTask::getCreate_time, DateUtil.beginOfDay(DateUtil.date()))
.le(SchBaseTask::getCreate_time, DateUtil.endOfDay(DateUtil.date()));
stats.put("todayfinishTasks", iSchBaseTaskService.count(todayFinshTaskWrapper));
// 今日未完成任务数
QueryWrapper<SchBaseTask> todayUnFinshTaskWrapper = new QueryWrapper<>();
todayUnFinshTaskWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.lt(SchBaseTask::getTask_status,TaskStatus.FINISHED.getCode())
.ge(SchBaseTask::getCreate_time, DateUtil.beginOfDay(DateUtil.date()))
.le(SchBaseTask::getCreate_time, DateUtil.endOfDay(DateUtil.date()));
stats.put("todayunfinishTasks", iSchBaseTaskService.count(todayUnFinshTaskWrapper));
// 今日完成任务数
QueryWrapper<SchBaseTask> todayCancelTaskWrapper = new QueryWrapper<>();
todayCancelTaskWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.eq(SchBaseTask::getTask_status,TaskStatus.CANCELED.getCode())
.ge(SchBaseTask::getCreate_time, DateUtil.beginOfDay(DateUtil.date()))
.le(SchBaseTask::getCreate_time, DateUtil.endOfDay(DateUtil.date()));
stats.put("todaycancelTasks", iSchBaseTaskService.count(todayCancelTaskWrapper));
// 月均任务数(简单计算:总任务数/12
// int totalTasks = iSchBaseTaskService.count(taskWrapper);
// stats.put("monthlyAvg", Math.round((double)totalTasks / 12));
result.put("stats", stats);
// 2. 构建历史数据最近7天
List<JSONObject> historyList = new ArrayList<>();
DateTime dateTime = DateUtil.offsetDay(DateUtil.date(), -6);
List<String> dateList = DateUtil.rangeToList(dateTime, DateUtil.date(), DateField.DAY_OF_YEAR).stream()
.map(DateTime::toString)
.map(row -> row.substring(0, 10))
.collect(Collectors.toList());
for (String date : dateList) {
JSONObject item = new JSONObject();
item.put("date", date);
// 查询该日完成任务数
QueryWrapper<SchBaseTask> finshWrapper = new QueryWrapper<>();
finshWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.eq(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
.ge(SchBaseTask::getCreate_time, DateUtil.parse(date + " 00:00:00"))
.le(SchBaseTask::getCreate_time, DateUtil.parse(date + " 23:59:59"));
item.put("finishTask", iSchBaseTaskService.count(finshWrapper));
// 查询该日取消任务数
QueryWrapper<SchBaseTask> cancelWrapper = new QueryWrapper<>();
cancelWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.eq(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
.ge(SchBaseTask::getCreate_time, DateUtil.parse(date + " 00:00:00"))
.le(SchBaseTask::getCreate_time, DateUtil.parse(date + " 23:59:59"));
item.put("cancelTask", iSchBaseTaskService.count(cancelWrapper));
// 其他搬运任务数
QueryWrapper<SchBaseTask> unfinishWrapper = new QueryWrapper<>();
unfinishWrapper.lambda()
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code(""))
.lt(SchBaseTask::getTask_status,TaskStatus.FINISHED.getCode())
.ge(SchBaseTask::getCreate_time, DateUtil.parse(date + " 00:00:00"))
.le(SchBaseTask::getCreate_time, DateUtil.parse(date + " 23:59:59"));
item.put("unFinishTask", iSchBaseTaskService.count(unfinishWrapper));
// 计算总数
int finishTask = iSchBaseTaskService.count(finshWrapper);
int cancelTask = iSchBaseTaskService.count(cancelWrapper);
int unFinishTask = iSchBaseTaskService.count(unfinishWrapper);
item.put("total", finishTask + cancelTask + unFinishTask);
historyList.add(item);
}
result.put("historyList", historyList);
return result;
}
}

View File

@@ -165,9 +165,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
//已分配过二次分配点位
if (StringUtils.isNotBlank(baseTask.getResponse_param())) {
if ("1".equals(type) && baseTask.getResponse_param().equals(PackageInfoIvtEnum.IS_SEND.code("取货是"))) {
if ("1".equals(type) && baseTask.getResponse_param().equals(PackageInfoIvtEnum.IS_ALLOCATE.code("取货是"))) {
return baseTask.getPoint_code1();
} else if ("2".equals(type) && baseTask.getResponse_param().equals(PackageInfoIvtEnum.IS_SEND.code("放货是"))) {
} else if ("2".equals(type) && baseTask.getResponse_param().equals(PackageInfoIvtEnum.IS_ALLOCATE.code("放货是"))) {
return baseTask.getPoint_code2();
}
}

View File

@@ -310,18 +310,18 @@ public class PdaTaskServiceImpl implements PdaTaskService {
String group_id = org.nl.common.utils.IdUtil.getStringId();
List<String> list = new ArrayList<>();
List<GroupPlatedtl> groupPlatedtls = new ArrayList<>();
int qty = 0;
float qty = 0.0f;
for (int i = 0; i < data.size(); i++) {
JSONObject jsonObject = data.getJSONObject(i);
String container_code = jsonObject.getString("container_code");
qty += jsonObject.getIntValue("qty");
qty += jsonObject.getFloatValue("qty");
GroupPlatedtl groupPlatedtlBuilder = GroupPlatedtl.builder()
.groupdtl_id(org.nl.common.utils.IdUtil.getStringId())
.group_id(group_id)
.pcsn(jsonObject.getString("pcsn"))
.container_code(container_code)
.storagevehicle_code(vehicleCode)
.qty(jsonObject.getIntValue("qty"))
.qty(jsonObject.getFloatValue("qty"))
.material_code(mdMeMaterialbase.getMaterial_code())
.material_name(mdMeMaterialbase.getMaterial_name())
.measure_unit_id(measure_unit_id)
@@ -382,7 +382,7 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override
public JSONObject getNextRegions() {
List<String> regions = Arrays.asList("E1", "E2", "DKB", "KTP");
List<String> regions = Arrays.asList("E1", "E2", "DKB", "KTP","WFPFZQ");
List<SchBaseRegion> list = regionMapper.selectList(new LambdaQueryWrapper<SchBaseRegion>().in(SchBaseRegion::getRegion_code, regions));
List<JSONObject> ja = new ArrayList<>();
list.forEach(region -> {

View File

@@ -93,18 +93,18 @@ public class GroupController {
String group_id = org.nl.common.utils.IdUtil.getStringId();
List<String> list = new ArrayList<>();
List<GroupPlatedtl> groupPlatedtls = new ArrayList<>();
int qty = 0;
float qty = 0.0f;
for (int i = 0; i < rows.size(); i++) {
JSONObject jsonObject = rows.get(i);
String container_code = jsonObject.getString("container_code");
qty += jsonObject.getIntValue("qty");
qty += jsonObject.getFloatValue("qty");
GroupPlatedtl groupPlatedtlBuilder = GroupPlatedtl.builder()
.groupdtl_id(org.nl.common.utils.IdUtil.getStringId())
.group_id(group_id)
.pcsn(jsonObject.getString("pcsn"))
.container_code(container_code)
.storagevehicle_code(vehicleCode)
.qty(jsonObject.getIntValue("qty"))
.qty(jsonObject.getFloatValue("qty"))
.material_code(mdMeMaterialbase.getMaterial_code())
.material_name(mdMeMaterialbase.getMaterial_name())
.measure_unit_id(measure_unit_id)

View File

@@ -60,7 +60,7 @@ public class GroupPlate implements Serializable {
/**
* 组盘数量
*/
private int qty;
private float qty;
/**
* 冻结数量

View File

@@ -67,7 +67,7 @@ public class GroupPlatedtl implements Serializable {
/**
* 组盘数量
*/
private int qty;
private float qty;
/**
* 冻结数量

View File

@@ -226,6 +226,17 @@
AND (point_type = '1' OR point_type = '2' OR point_type = '3')
AND is_used = 1
AND point_status = "1"
<if test="region_code = 'WFPFZQ'">
AND 0 = (
SELECT COUNT(1) FROM sch_base_point p2
WHERE
p2.point_status = '2'
AND p2.row_num = p.row_num
AND p2.col_num <![CDATA[<]]> p.col_num
AND p2.point_type = '1'
AND p2.region_code = 'WFPFZQ'
)
</if>
ORDER BY in_order_seq asc
</select>
<select id="getSamePoints" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">

View File

@@ -138,6 +138,10 @@ public class NETXLTask extends AbstractTask {
//设置等待点
task.setPoint_code2(point.getParent_point_code());
task.setPoint_code3(point.getPoint_code());
} else if ("WFPFZQ".equals(regionCode)){
//设置等待点
task.setPoint_code2(point.getParent_point_code());
task.setPoint_code3(point.getPoint_code());
} else {
task.setPoint_code2(point.getPoint_code());
}
@@ -217,6 +221,13 @@ public class NETXLTask extends AbstractTask {
}
}
return null;
} else if ("WFPFZQ".equals(regionCode)) {
List<SchBasePoint> points = netxlMapper.findNextPoint(regionCode);
if (CollectionUtils.isEmpty(points)) {
throw new BadRequestException("外放品放置区没有空闲的点位!");
}
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
return points.get(0);
} else {
//E1
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));

View File

@@ -1,9 +1,12 @@
package org.nl.wms.sch.tasks.netxl.mapper;
import org.apache.ibatis.annotations.Param;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import java.util.List;
public interface NETXLMapper {
List<SchBasePoint> findPointForNETXL(List<String> nextRegionStrs,String regionCode);
List<SchBasePoint> findNextPoint(@Param("regionCode") String regionCode);
}

View File

@@ -24,4 +24,34 @@
ORDER BY
p.in_order_seq ASC
</select>
<select id="findNextPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint"
parameterType="java.lang.String">
SELECT * FROM sch_base_point p1
WHERE
p1.point_status = '1'
AND p1.point_type = '1'
AND p1.is_used= '1'
AND 0 = (
SELECT COUNT(*)
FROM sch_base_task
WHERE (point_code1 = p1.point_code
OR point_code2 = p1.point_code
OR point_code3 = p1.point_code
OR point_code4 = p1.point_code
)
AND task_status <![CDATA[<]]> '5'
AND is_delete = '0'
)
AND p1.region_code = 'WFPFZQ'
AND 0 = (
SELECT COUNT(1) FROM sch_base_point p2
WHERE
p2.point_status = '2'
AND p2.row_num = p1.row_num
AND p2.col_num <![CDATA[<]]> p1.col_num
AND p2.point_type = '1'
AND p2.region_code = 'WFPFZQ'
)
ORDER BY p1.in_order_seq ASC
</select>
</mapper>

View File

@@ -7,7 +7,7 @@ lucene:
path: C:\lucene2\index
spring:
profiles:
active: prod
active: dev
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
messages:
@@ -280,3 +280,10 @@ sa-token:
password:
# 连接超时时间
timeout: 10s
i18n:
location: D:\workspace\fengtianDL_lms\fengtianDL_lms\nladmin-system\nlsso-server\src\main\resources\language\i18n
supported-languages:
- zh
- en
- jp
fallback-to-classpath: true

View File

@@ -0,0 +1,771 @@
var config = {
"language": "English",
"platform": {
"title": "WMS System"
},
"system": {
"exception": "System exception, please contact administrator",
"paramException": "Parameter exception, please check input parameters",
"resultException": "Request result does not exist",
"dataException": "Data exception, data does not exist",
"dataExceptionArg": "Data exception, %s data does not exist",
"dataDuplicationArg": "Data duplication, %s already exists in the system",
"dataFormat": "Data exception, data is incorrect",
"activatArg": "%s has not been activated in the system",
"operation": "Operation failed",
"error_param_undefined": "【%s】corresponding type 【%d】is undefined",
"per_auth": "Permission already assigned, cannot delete",
"error_isNull": "Data does not exist: %s",
"dept_has": "Department has associated users, cannot delete",
"user_not_exist": "User does not exist",
"password_error": "Incorrect password",
"account_not_activated": "Account not activated",
"vehicle_already_in_storage": "Carrier code: %s already exists in storage, please verify the data!",
"no_available_location": "No available storage location",
"detail_already_allocated": "Current detail has already been allocated a storage location",
"no_allocated_location": "This detail has not been allocated a storage location, please allocate first",
"main_table_status_must_be_allocated": "Main table status must be allocated!",
"no_task_allocation_detail": "No allocation detail found for the task",
"no_inbound_bill_detail": "No inbound bill detail record found",
"no_inbound_bill": "No inbound bill found",
"no_location_in_warehouse": "No storage locations in this warehouse area",
"no_vehicle_info": "No carrier number information",
"no_suitable_location": "No suitable storage location found",
"no_available_warehouse_area": "No available warehouse area found",
"cannot_select_suitable_warehouse_area": "Cannot select suitable warehouse area",
"captcha_config_error": "Verification code configuration error! Check LoginCodeEnum for correct configuration",
"available_quantity_cannot_be_negative": "Available quantity cannot be negative, please check the change quantity! Current available quantity is 【%s】, current change quantity is 【%s】",
"operation_failed": "Operation failed",
"local_ip": "Local IP address:"
},
"business": {
"InvReminder": "Current allocation strategy, %s has no available locations",
"loginPassword": "Login failed, incorrect account or password",
"accountUse": "Login failed, account not enabled"
},
"common": {
'home': 'Dashboard',
'Layout_setting': 'Layout Setting',
'Personal_center': 'Personal Center',
'Log_out': 'Log Out',
'Personal_information': 'Personal Information',
'username': 'UserName',
'name': 'Name',
'phone': 'Phone Number',
'phone2': 'Phone',
'sex': 'Sex',
'sex_male': 'Male',
'sex_female': 'Female',
'email': 'E-mail',
'Security_settings': 'Security Settings',
'Save_settings': 'Save Settings',
'Reset_settings': 'Reset Settings',
'Change_password': 'Change Password',
'New_password': 'New Password',
'Old_password': 'Old Password',
'Verify_password': 'Verify Password',
'User_information': 'User Information',
'Operation_log': 'Operation Log',
'action': 'Action',
'IP_source': 'IP Source',
'Browser': 'Browser',
'Request_time': 'Request Time',
'Creation_date': 'Creation Date',
'account': 'Account',
'password': 'Password',
'verification_code': 'Code',
'login_rm': 'Remember Me',
'login': 'Login',
'login_ing': 'Logging in...',
'Create': 'Create',
'Update': 'Update',
'Delete': 'Delete',
'More': 'More',
'Export': 'Export',
'Editors': 'Editor',
'SelectAll': 'SelectAll',
'Query': 'Query',
'Reset': 'Reset',
'Confirm': 'Confirm',
'Cancel': 'Cancel',
'Yes': 'YES',
'No': 'NO',
'Success': 'success',
'Fail': 'fail',
'Please_select': 'Please Select',
'Operation_success': 'Successful operation',
'Upload_success': 'Upload Success',
'Operate': 'Operate',
'Refresh': 'Refresh',
'Closes': 'Close',
'Closes_l': 'Close Left',
'Closes_r': 'Close Right',
'Closes_o': 'Close Other',
'Closes_a': 'Close All',
'Theme_style_setting': 'Theme Style Setting',
'Theme_color': 'Theme Color',
'System_layout_configuration': 'System Layout Configuration',
'Open': 'Open',
'Fixation': 'Fixation',
'Display': 'Display',
'Dynamic_titles': 'Dynamic Titles',
'crudTip': 'Are you sure to delete this data?',
'startDate': 'StartDate',
'endDate': 'EndDate',
'moreMenu': 'MoreMenu',
'browses': 'browse',
'fz': 'Full screen zoom',
'submit': 'Submit Success',
'add': 'Add Success',
'edit': 'Edit Success',
'del': 'Delete Success',
'close': 'Confirm Close',
'save': 'Save Success',
'datas': 'Data',
'Tips': 'Tips',
'Tip1': 'Confirm to delete the selected {count} pieces of data?',
'Tip3': 'User name not used as login',
'Tip4': 'Mobile phone number cannot be duplicate',
'Tip5': 'Please enter a phone number',
'Tip6': 'Please enter the correct 11 digit phone number',
'Tip7': 'Drag and drop the excel file here or',
'Tip8': 'The two passwords are different',
'Tip9': 'Please enter your password again',
'Tip10': 'Please enter your old password',
'Tip11': 'Please enter your new password',
'Tip12': '{min} to {max} characters in length',
'Tip13': 'Are you sure to log out and exit the system?',
'Tip14': 'WebSocket connection error',
'Tip15': 'Please enter an icon name',
'Tip16': 'NOT NULL',
'Tip17': 'Please enter what you are searching for',
'loading': 'loading...',
'Tip18': 'select date time',
'Tip19': 'Are you sure to delete the selected data?',
'Tip20': 'The login has expired,please log in again!',
"name": "Name",
"import": "import",
"export": "export",
"create_name": "Created By",
"create_time": "Creation Time",
"update_name": "Modified By",
"remark": "Remark",
"is_used": "Activated",
"is_delete": "Deleted",
"create_mode": "Creation Method",
"input_optname": "Prepared By",
"input_time": "Preparation Time",
"update_optname": "Modified By",
"update_time": "Modification Time",
"dis_optname": "Allocated By",
"dis_time": "Allocation Time",
"confirm_optname": "Confirmed By",
"confirm_time": "Confirmation Time",
"bill_code": "Document Number",
"bill_type": "Document Type",
"biz_date": "Business Date",
"bill_status": "Document Status",
"zh_name": "Chinese Name",
"in_name": "Indonesian Name",
"en_name": "English Name",
"ext_id": "External ID",
"request_param_cannot_be_empty": "Request parameters cannot be empty",
"yes": "Yes",
"no": "No",
"user_info_get_fail": "Failed to get user information",
"operation_success": "Operation successful",
"inputCodeOrName": "input code or name"
},
"upload": {
"load_text1": "Drag file here or",
"load_text2": "click to upload",
"load_text3": "Only Excel files can be uploaded, and no larger than 10MB",
"load_text4": "File is too large, please upload files smaller than 10MB~",
"load_text5": "Only one Excel file can be uploaded!"
},
"gateway": {
"picking_point_not_exist": "The picking point you entered does not exist, please enter 1207 or 1210 picking point!",
"create_task_fail_empty": "Failed to create task: returned task information is empty, application parameters are",
"apply_task_fail": "Task application failed, application parameters are",
"check_error_log": "Please check the error log"
},
"md_me_materialbase": {
"material_code": "Material Code",
"material_name": "Material Name",
"product_series_name": "Product Series",
"material_spec": "Material Specification",
"material_model": "Material Model"
},
"md_pb_classstandard": {
"class_code": "Class Code",
"class_name": "Class Name",
"class_desc": "Class Description",
"parent_class_id": "Parent Class ID"
},
"md_pb_measureunit": {
"unit_code": "Code",
"unit_name": "Name",
"qty_precision": "Data Precision",
"qty_unit_id": "Base Measurement Unit",
"qty_unit_name": "Unit Name"
},
"md_pb_storagevehicleinfo": {
"storagevehicle_code": "Carrier Code",
"storagevehicle_name": "Carrier Name",
"one_code": "Barcode",
"two_code": "QR Code",
"storagevehicle_type": "Carrier Type",
"vehicle_width": "Carrier Width",
"vehicle_long": "Carrier Length",
"vehicle_height": "Carrier Height",
"weigth": "Pallet Weight",
"overstruct_type": "Does Carrier Exceed Location",
"occupystruct_qty": "Number of Occupied Locations",
"ext_id": "External ID"
},
"sch_base_point": {
"point_code": "Point Code",
"point_name": "Point Name",
"region_code": "Region Code",
"region_name": "Region Name",
"point_type": "Point Type",
"point_status": "Point Status",
"vehicle_type": "Carrier Type",
"vehicle_code": "Carrier Code",
"vehicle_qty": "Carrier Quantity",
"in_order_seq": "Inbound Sequence",
"out_order_seq": "Outbound Sequence",
"in_empty_seq": "Empty Carrier Inbound Sequence",
"out_empty_seq": "Empty Carrier Outbound Sequence",
"parent_point_code": "Parent Point Code",
"ext_point_code": "External Point Code",
"ing_task_code": "Task Code Being Executed",
"is_has_workder": "Generate Order",
"workshop_code": "Workshop Code",
"is_auto": "Auto"
},
"sch_base_region": {
"region_code": "Region Code",
"region_name": "Region Name",
"point_type_explain": "Point Type Description",
"point_status_explain": "Point Status Description",
"is_has_workder": "Generate Order",
"order_seq": "Sequence",
"workshop_code": "Workshop Code"
},
"sch_base_task": {
"task_code": "Task Code",
"task_status": "Task Status",
"config_code": "Configuration Code",
"point_code1": "Point 1",
"point_code2": "Point 2",
"point_code3": "Point 3",
"point_code4": "Point 4",
"group_id": "Group ID",
"vehicle_type": "Carrier Type",
"vehicle_qty": "Carrier Quantity",
"vehicle_code": "Carrier Code",
"vehicle_code2": "Carrier Code 2",
"handle_status": "Processing Status",
"car_no": "License Plate Number",
"task_group_id": "Task Group ID",
"task_group_seq": "Task Group Sequence",
"finished_type": "Task Completion Type",
"create_mode": "Creation Method",
"request_param": "Create Task Request Parameters",
"response_param": "Issue Task Request Parameters",
"workshop_code": "Workshop Code",
"ext_group_data": "Additional Group Information",
"priority": "ACS Priority"
},
"sch_base_taskconfig": {
"config_code": "Configuration Code",
"config_name": "Configuration Name",
"route_plan_code": "Route Planning Code",
"task_qf_type": "Task Pick/Drop Type",
"acs_task_type": "ACS Task Type",
"task_name": "Task Name",
"task_type": "Task Type",
"task_direction": "Task Direction",
"priority": "Priority",
"task_create_max_num": "Maximum Number of Tasks Allowed to Create",
"task_issue_max_num": "Maximum Number of Tasks Allowed to Issue",
"is_auto_issue": "Auto Issue",
"start_region_str": "Start Region Configuration",
"next_region_str": "End Region Configuration",
"start_point_pre": "Start Point Prefix",
"next_region_pre": "End Region Prefix",
"is_check_workorder": "Check Work Order",
"is_check_start_lock": "Evaluate Start Point Lock",
"is_immediate_create": "Create Immediately",
"is_check_next_lock": "Evaluate End Point Lock",
"is_start_auto": "Start Point Auto",
"is_next_auto": "End Point Auto",
"is_lock_start": "Lock Start Point",
"is_lock_next": "Lock End Point",
"request_param": "Create Task Request Parameters",
"response_param": "Issue Task Request Parameters",
"is_group_congrol_issue_seq": "Control Issue Sequence by Group",
"unfinish_notify_time": "Task Unfinished Notification Time",
"sql_param": "SQL Configuration",
"workshop_code": "Workshop Code"
},
"st_ivt_bsrealstorattr": {
"stor_code": "Warehouse Code",
"stor_name": "Warehouse Name",
"simple_name": "Warehouse Abbreviation",
"stor_capacity": "Warehouse Capacity",
"total_area": "Total Area",
"stor_type_scode": "Warehouse Nature",
"is_virtualstore": "Is Virtual Warehouse",
"is_semi_finished": "Is Semi-finished Product Warehouse",
"is_materialstore": "Is Raw Material Warehouse",
"is_productstore": "Is Finished Product Warehouse",
"is_attachment": "Is Accessory Warehouse",
"is_reversed": "Allow Returns",
"is_mvout_auto_cfm": "Auto Confirm Transfer Out Business",
"is_mvin_auto_cfm": "Auto Confirm Transfer In Business",
"area": "Area",
"storea_ddress": "Warehouse Address",
"principal": "Person in Charge",
"office_phone": "Office Phone",
"mobile_no": "Mobile Number",
"order_index": "Display Order",
"whstate_scode": "Status",
"base_class_id": "Material Basic Classification",
"sysownerid": "Owner ID",
"sysdeptid": "Department ID",
"syscompanyid": "Company ID",
"ext_id": "External ID",
"depart_name": "Department Name",
"company_name": "Company Name"
},
"st_ivt_checkdtl": {
"seq_no": "Detail Sequence",
"sect_code": "Inventory Area",
"struct_code": "Inventory Location",
"checkpoint_code": "Inventory Station",
"storagevehicle_code": "Storage Carrier Code",
"material_id": "Material ID",
"pcsn": "Batch",
"base_qty": "Inventory Quantity",
"status": "Status",
"is_down": "Issued",
"fac_qty": "Inventory Count Quantity",
"check_result": "Inventory Result",
"check_optname": "Inventory Person",
"check_time": "Inventory Time",
"remark": "Detail Remark",
"check_code": "Inventory Document Number",
"check_type": "Inventory Document Type",
"stor_name": "Warehouse Name",
"dtl_num": "Detail Quantity",
"create_mode": "Creation Method"
},
"st_ivt_iostor": {
"stor_code": "Warehouse Code",
"sect_date": "Date",
"quality_scode": "Quality Type",
"start_num": "Opening Quantity",
"in_num": "Inbound Quantity",
"out_num": "Outbound Quantity",
"total_qty": "Total Quantity",
"total_weight": "Total Weight",
"io_type": "In/Out Type",
"detail_count": "Detail Quantity",
"seq_no": "Detail Sequence",
"work_status": "Execution Status",
"task_id": "Task ID",
"storagevehicle_code": "Storage Carrier Code",
"is_issued": "Issued",
"plan_qty": "Planned Quantity",
"real_qty": "Actual Quantity",
"point_code": "In/Out Point ID",
"assign_qty": "Allocated Quantity",
"unassign_qty": "Unallocated Quantity",
"mol_code": "Loss Document Number",
"mol_inv_type": "Loss Document Type",
"mol_type": "Loss Type",
"turnout_sect_code": "Transfer Out Area Code",
"turnout_struct_code": "Transfer Out Location Code",
"turnin_sect_code": "Transfer In Area Code",
"turnin_struct_code": "Transfer In Location Code"
},
"structWarning": {
"safe_qty_lower_limit": "Safety Stock Lower Limit",
"safe_qty_upper_limit": "Safety Stock Upper Limit",
"cron": "Expression",
"notify_type": "Notification Type",
"overdue_days": "Overdue Days",
"safe_days": "Safety Days",
"is_read": "Read",
"current_qty": "Current Quantity"
},
"strategy": {
"sect_code": "Warehouse Area",
"strategy": "Rule",
"strategy_type": "1 Inbound Strategy 2 Outbound Strategy",
"description": "Description",
"strategy_code": "Strategy Code",
"strategy_name": "Strategy Name",
"class_type": "Processing Type",
"param": "Processing Class",
"ban": "Prohibit Operation",
"form_data": "Restriction Parameters"
},
"code_rule": {
"current_value": "Current Value"
},
"dept": {
"dept_id": "ID",
"pid": "Parent Department",
"sub_count": "Sub-department Count",
"name": "Name",
"zh_name": "Chinese Name",
"in_name": "Indonesian Name",
"en_name": "English Name",
"dept_sort": "Sort",
"is_used": "Status",
"create_name": "Created By",
"update_name": "Updated By",
"create_time": "Creation Date",
"update_time": "Update Time",
"code": "Department Code",
"ext_id": "External ID"
},
"dict": {
"dict_type": "Dictionary Type",
"dict_sort": "Sequence",
"label": "Dictionary Label",
"value": "Dictionary Value",
"para1": "Parameter 1",
"para2": "Parameter 2",
"para3": "Parameter 3"
},
"menu": {
"home": "home",
"menu_id": "Menu ID",
"pid": "Parent Menu ID",
"sub_count": "Sub-menu Count",
"type": "Menu Type",
"system_type": "Belonging System",
"category": "Menu Category",
"title": "Menu Title",
"en_title": "English Title",
"in_title": "Indonesian Title",
"zh_title": "Chinese Title",
"component_name": "Component Name",
"component": "Component",
"menu_sort": "Sort",
"icon": "Icon",
"path": "Path",
"iframe": "Is External Link",
"cache": "Is Cached",
"hidden": "Is Hidden",
"permission": "Permission",
"is_pc": "Is PC Menu"
},
"param": {
"code": "Code",
"name": "Name",
"zh_name": "Name",
"en_name": "English Name",
"in_name": "Indonesian Name",
"value": "Value"
},
"user": {
"user_id": "User ID",
"username": "Login Account",
"password": "Password",
"is_admin": "Is Administrator Account",
"person_name": "Full Name",
"zh_person_name": "Chinese Full Name",
"en_person_name": "English Full Name",
"in_person_name": "Indonesian Full Name",
"gender": "Gender",
"zh_gender": "Chinese Gender",
"en_gender": "English Gender",
"phone": "Phone",
"email": "Email",
"avatar_name": "Avatar Path",
"avatar_path": "Actual Avatar Path",
"extperson_id": "External Person ID",
"extuser_id": "External User ID",
"pwd_reset_user_id": "Password Reset By",
"pwd_reset_time": "Password Reset Time"
},
"basedata_manage": {
"same_warehouse_numbers": "Duplicate warehouse numbers exist",
"deleted_or_without_permission_operation_failed": "Deleted or no permission, operation failed!",
"same_supplier_code": "Duplicate supplier codes exist",
"current_device_code_already_exists": "Current device code already exists 【%s】",
"current_supplier_code_already_exists": "Current supplier code already exists 【%s】",
"current_cust_code_already_exists": "Current customer code already exists 【%s】",
"current_material_code_already_exists": "Current material code already exists 【%s】",
"current_sorting_code_already_exists": "Current classification code already exists 【%s】",
"current_unit_code_already_exists": "Current measurement unit code already exists 【%s】",
"unit_code_not_exists": "Measurement unit code 【%s】 does not exist!",
"current_vehicle_group_plate_info_exists": "Current carrier group plate information already exists",
"parents_cannot_be_oneself": "Parent cannot be itself",
"material_information_not_exists": "Material information 【%s】 does not exist!",
"storage_vehicle_code_already_exists": "Current carrier code already exists 【%s】",
"vehicle_type_no_dict_config": "This carrier type %s has no dictionary value configured",
"storage_vehicle_not_exist": "Carrier with code 【%s】 does not exist!",
"parent_class_code_invalid": "Please enter correct parent node code!",
"sect_code_already_exists": "Duplicate area codes in the same warehouse",
"struct_code_not_exist": "Structure code 【%s】 does not exist",
"sect_no_io_rule": "Area 【%s】 has no inbound/outbound strategy configured",
"strategy_no_available_struct": "Strategy 【%s】 has no available storage locations, total of %d locations queried",
"sect_no_in_rule": "Area 【%s】 has no inbound strategy configured",
},
"sch_manage": {
"task_already_completed": "This task is already completed!",
"task_already_cancelled": "This task is already cancelled!",
"task_not_exists": "This task does not exist",
"only_cancel_generating_tasks": "Can only cancel generating tasks!",
"task_status_must_be_create_to_cancel": "Task status must be 'created' to cancel task",
"same_point_code_exists": "Duplicate point codes exist",
"data_empty": "Data is empty!",
"task_config_already_exists": "Task configuration 【%s】 already exists!",
"start_and_end_region_cannot_be_empty": "Start region and end region cannot both be empty!",
"tray_cannot_be_empty": "Tray cannot be empty"
},
"decision_manage": {
"location_list_empty": "Storage location list is empty",
"strategy_type_error": "Strategy type error",
"no_available_location": "Current allocation strategy has no available storage locations",
"no_available_location_same_block_num": "Current allocation strategy sameBlockNum has no available storage locations",
"no_available_aisle": "No available aisle found",
"strategy_name_already_exists": "Strategy with same name already exists 【%s】",
"strategy_no_instance": "Start failed, current strategy 【%s】 has no corresponding instance information",
"alley_ave_no_available_location": "Balancing strategy result: Carrier code: 【%s】 current allocation strategy has no available storage locations",
"fifo_rule_inventory_shortage": "Current outbound strategy: FIFO, inventory allocation failed, reason: insufficient inventory!",
"depth_priority_location_not_found": " Depth priority strategy: Get deep location with stock and shallow location without stock: Carrier code: 【%s】 failed to get location, number of locations for this strategy is 0!",
"limit_storage_vehicle_not_exist": "Limit strategy: Current carrier information does not exist: 【%s】 does not exist",
"limit_storage_location_not_found": "Limit strategy: Carrier code: 【%s】 failed to get location, number of locations for this height level is 0!"
},
"task": {
"status": {
"created": "Created",
"applied": "Applied",
"created_completed": "Creation Completed",
"issued": "Issued",
"executing": "Executing",
"completed": "Completed",
"cancelled": "Cancelled",
"unfinished": "Unfinished"
}
,
"created_desc": "Create Task",
"applied_desc": "Apply Task",
"create_completed_desc": "Create Completed Task",
"issued_desc": "Issue Task",
"executing_desc": "Executing Task",
"completed_desc": "Complete Task",
"cancelled_desc": "Cancelled Task",
"unfinished_desc": "Unfinished Task"
},
"bind": {
"type": {
"unbind": "Unbind",
"bind": "Bind",
"no_operation": "No Operation"
}
},
"vehicle": {
"type": {
"empty_pallet": "Empty Pallet",
"empty_container": "Empty Container"
}
},
"base_data": {
"type_not_defined": "Corresponding type 【%s】 is undefined"
},
"pm_manage": {
"no_such_unit_info": "No such measurement unit information",
"no_such_warehouse_info": "No such warehouse information",
"form_type_param_cannot_be_empty": "Form type parameter cannot be empty",
"current_bill_already_merged": "Current document has been merged, resubmission not allowed:【%s】",
"current_bill_is_new_merged_bill": "Current document is a new merged document, resubmission not allowed:【%s】",
"current_bill_is_not_new_merged_bill": "Current document is not a new merged document, submission not allowed:【%s】"
},
"warehouse_manage": {
"main_table_status_must_be_generate": "Main table status must be generated!",
"no_cancel_outbound_alloc_dtl": "No cancellable outbound allocation details exist",
"no_selected_outbound_point": "No outbound point selected",
"no_selected_floor": "No floor selected",
"no_related_outbound_bill": "No related outbound bill found",
"no_alloc_dtl_to_set": "Currently no allocation details to set",
"main_table_status_must_be_allocated": "Main table status must be allocated!",
"cannot_force_confirm_with_unfinished_tasks": "Cannot force confirm with unfinished tasks!",
"no_alloc_dtl_for_task": "No allocation detail found for the task",
"no_dtl_found": "No detail found",
"vehicle_already_in_storage": "Carrier code: 【%s】 already exists in storage, please verify the data!",
"detail_already_allocated_location": "Current detail has already been allocated a storage location",
"no_available_location": "No available storage location",
"detail_not_allocated_location": "This detail has not been allocated a storage location, please allocate first",
"cannot_find_allocation_detail_for_task": "No allocation detail found for the task",
"cannot_find_inbound_detail_record": "No inbound bill detail record found",
"cannot_find_inbound_order": "No inbound order found",
"no_location_in_sector": "No storage locations in this warehouse area",
"no_carrier_info": "No carrier number information",
"cannot_find_suitable_location": "No suitable storage location found",
"cannot_find_available_sector": "No available warehouse area found",
"cannot_select_suitable_sector": "Cannot select suitable warehouse area",
"outbill_qty_zero": "Quantity cannot be zero",
"outbill_sect_empty": "Allocation warehouse area cannot be empty",
"outbill_not_found": "Cannot find outbound bill information",
"outbill_no_details": "Current order has no allocatable outbound details",
"outbill_no_cancelable_details": "No cancellable outbound allocation details exist",
"outbill_allocated": "Fully allocated, unallocated quantity is 0",
"storagevehicle_no_inventory": "Current carrier 【%s】 has no related material batch inventory, please check data!",
"frozen_quantity_cannot_be_negative": "Frozen quantity cannot be negative, please check the change quantity! Current frozen quantity is 【%s】, current change quantity is 【%d】",
},
"pda_manage": {
"change_type_cannot_be_empty": "Change type cannot be empty!",
"carrier_code_cannot_be_empty": "Carrier code cannot be empty!",
"material_id_cannot_be_empty": "Material ID cannot be empty!",
"unit_id_cannot_be_empty": "Measurement unit ID cannot be empty!",
"unit_name_cannot_be_empty": "Measurement unit name cannot be empty!",
"change_qty_cannot_be_empty": "Change quantity cannot be empty!",
"carrier_already_has_inventory": "Current carrier already has inventory materials, please check data!",
"material_info_cannot_be_empty": "Material information cannot be empty!",
"vehicle_info_cannot_be_empty": "Carrier information cannot be empty!",
"vehicle_already_has_group_plate_info": "Carrier code: 【%s】 already has group plate information, please verify the data!",
"vehicle_already_in_storage": "Carrier code: 【%s】 already exists in storage:【%d】, please verify the data!",
"dtllist_cannot_be_empty": "dtlList cannot be empty",
"vehicle_not_group_plated": "This carrier is not group plated, please check!",
"vehicle_not_in_group_plate_status": "This carrier is not in group plate status, please check!",
"point_not_exists": "Point does not exist:【%s】",
"no_materials_available_for_storage": "Currently no materials available for storage!",
"move_in_location_cannot_be_empty": "Move-in location cannot be empty!",
"material_detail_cannot_be_empty": "Material detail cannot be empty!",
"vehicle_not_exist_in_system": "Carrier does not exist in the system!",
"move_in_location_not_exist_in_system": "Move-in location does not exist in the system!",
"location_and_vehicle_code_cannot_be_empty": "Location code and carrier code cannot both be empty!",
"vehicle_code_empty": "Carrier code cannot be empty",
"point_code_empty": "Point code cannot be empty",
"point_not_found": "Point 【%s】 does not exist",
"point_already_binded": "Point 【%s】 is already bound to carrier 【%d】",
"vehicle_already_binded": "Carrier 【%s】 is already bound to point 【%d】",
"point_no_vehicle_need_unbind": "Point 【%s】 has no bound carrier 【%d】, no need to unbind",
"start_point_not_exist": "Start point does not exist",
"end_point_not_exist": "End point does not exist",
"site_code_empty": "Point code cannot be empty",
"site_not_exist": "Point 【%s】 does not exist"
},
"acs": {
"connection_failed": "ACS connection failed"
},
"status": {
"published": "Published",
"unpublished": "Unpublished",
"started": "Started",
"stopped": "Stopped",
"production_in": "Production Inbound",
"purchase_in": "Purchase Inbound",
"other_in": "Other Inbound",
"production_out": "Production Outbound",
"sales_out": "Sales Outbound",
"other_out": "Other Outbound",
"generated": "Generated",
"allocated": "Allocated",
"type_not_defined": "Corresponding type 【%s】 is undefined",
"code_not_defined_r": "Corresponding code 【%s】 has no R data defined",
"code_not_defined_x": "Corresponding code 【%s】 has no x data defined",
"node_completed": "Node Completed",
"abnormal_completed": "Abnormally Completed",
"manual_in": "Manual Inbound",
"material_out": "Material Outbound",
"manual_out": "Manual Outbound",
"move_storage": "Move Storage",
"abnormal_move": "Abnormal Move",
"inventory": "Inventory",
"transfer": "Transfer",
"inventory_loss": "Inventory Loss",
"inventory_profit": "Inventory Profit",
"physical_inventory": "Physical Inventory",
"receipt_notice": "Receipt Notice",
"sales_order": "Sales Order",
"production_inbound": "Production Inbound",
"purchase_inbound": "Purchase Inbound",
"sales_return_inbound": "Sales Return Inbound",
"purchase_return_outbound": "Purchase Return Outbound",
"subcontract_material_list": "Subcontract Material List",
"production_material_list": "Production Material List",
"production_picking": "Production Picking",
"simple_production_picking": "Simple Production Picking",
"transfer_outbound": "Transfer Outbound",
"other_outbound": "Other Outbound",
"lowest": "Lowest Priority",
"normal": "Normal Priority",
"higher": "Higher Priority",
"urgent": "Urgent Priority",
"warehouse": "Warehouse Task",
"agv_task": "AGV Task",
"ctu_task": "CTU Task",
"third_floor_ctu": "Third Floor CTU",
"xian_gong": "Xian Gong System",
"hairou_ctu": "HaiRou CTU",
"hikvision_ctu": "Hikvision CTU",
"inbound": "Inbound",
"outbound": "Outbound",
"in_out_bound": "In/Out Bound",
"first_floor_workshop": "First Floor Workshop",
"second_floor_workshop": "Second Floor Workshop",
"third_floor_workshop": "Third Floor Workshop",
"main_storage_picking_platform": "Main Storage Picking Platform",
"first_floor_io_conveyor": "First Floor I/O Conveyor",
"second_floor_io_conveyor": "Second Floor I/O Conveyor",
"second_floor_ctu_shelf_docking": "Second Floor CTU Shelf Docking Position",
"second_floor_agv_production_line_docking": "Second Floor AGV Production Line Docking Position",
"second_floor_empty_shelf_buffer": "Second Floor Empty Shelf Buffer",
"pallet_warehouse": "Pallet Warehouse",
"container_warehouse": "Container Warehouse",
"virtual_warehouse": "Virtual Warehouse",
"second_floor_ctu_buffer": "Second Floor CTU Buffer",
"second_floor_shelf_buffer": "Second Floor Shelf Buffer",
"ascending": "Ascending",
"descending": "Descending",
"unbind": "Unbind",
"bind": "Bind",
"no_operation": "No Operation",
"empty_tray": "Empty Tray",
"empty_container": "Empty Container",
"start": "Start",
"pause": "Pause",
"completed": "Completed",
"force_completed": "Force Completed",
"cancelled": "Cancelled"
},
"error": {
"param_undefined": "Parameter 【%s】 undefined 【%s】",
"ParamExist": "Parameter 【%s】 already exists",
"Update": "Update failed",
"Detele": "Delete failed",
"NullPoint": "Null pointer exception",
"SystemAuthError": "System authorization error",
"File_3": "File upload failed",
"isNull": "Parameter 【%s】 cannot be empty",
"Send": "Send failed"
},
"role": {
"Check_1": "Role name cannot be empty",
"level": "Role level"
},
"quartz": {
"ip_different": "Local IP 【%s】 differs from scheduler IP 【%s】",
"create_job_failure": "Failed to create scheduled task"
},
"system_manage": {
"username_password_error": "Incorrect username or password",
"account_not_activated": "Account not activated",
"param_empty": "Parameters cannot be empty",
"code_rule_not_exist": "Missing configuration related to 【%s】",
"menu_no_permission": "No menu permission",
"current_business_executing": "Current business: 【%s】 is being executed, please try again later"
},
"login": {
"childError": "Child node menu cannot be set as directory"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff