Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit e6e4df6f
由
zshaohui
编写于
2025-07-08 13:50:38 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.工单批量出库,批量执行
2.工单出库逻辑修改
1 个父辈
8926170a
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
84 行增加
和
30 行删除
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
src/main/java/com/neotel/smfcore/core/order/rest/bean/query/OrderQueryCondition.java
src/main/java/com/neotel/smfcore/core/system/bean/OrderSetting.java
src/main/java/com/neotel/smfcore/core/system/rest/SettingsController.java
src/main/java/com/neotel/smfcore/core/system/rest/bean/query/TaskQueryCondition.java
src/main/resources/messages.properties
src/main/resources/messages_en_US.properties
src/main/resources/messages_ja_JP.properties
src/main/resources/messages_zh_CN.properties
src/main/resources/messages_zh_TW.properties
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
查看文件 @
e6e4df6
...
@@ -45,7 +45,7 @@ public class DataInitManager {
...
@@ -45,7 +45,7 @@ public class DataInitManager {
MainTimer
mainTimer
;
MainTimer
mainTimer
;
//@Value("${menu.show}")
//@Value("${menu.show}")
private
String
[]
menuShowList
=
new
String
[]{
"commonIn"
,
"returnIn"
,
"cutIn"
,
"elecKanban"
};
private
String
[]
menuShowList
=
new
String
[]{
"commonIn"
,
"returnIn"
,
"cutIn"
,
"elecKanban"
,
"orderSetting"
};
//@Value("${menu.hide}")
//@Value("${menu.hide}")
private
String
[]
menuHideList
=
new
String
[]{
"singleDiskWarehousing"
};
private
String
[]
menuHideList
=
new
String
[]{
"singleDiskWarehousing"
};
...
@@ -167,6 +167,9 @@ public class DataInitManager {
...
@@ -167,6 +167,9 @@ public class DataInitManager {
addNewFunctionMenu
(
orderM
,
new
ArrayList
<
Menu
>(),
1
,
"productionLineReple"
,
"产线补料"
,
1
,
"productionLineReple"
,
"system/productionLineReple/index"
,
""
,
0
,
"orderShortageSheet"
,
functionMenuMap
);
addNewFunctionMenu
(
orderM
,
new
ArrayList
<
Menu
>(),
1
,
"productionLineReple"
,
"产线补料"
,
1
,
"productionLineReple"
,
"system/productionLineReple/index"
,
""
,
0
,
"orderShortageSheet"
,
functionMenuMap
);
addNewFunctionMenu
(
orderM
,
new
ArrayList
<
Menu
>(),
1
,
"productionLineOut"
,
"补料料盘出库"
,
1
,
"productionLineOut"
,
"system/productionLineOut/index"
,
""
,
0
,
"orderShortageSheet"
,
functionMenuMap
);
addNewFunctionMenu
(
orderM
,
new
ArrayList
<
Menu
>(),
1
,
"productionLineOut"
,
"补料料盘出库"
,
1
,
"productionLineOut"
,
"system/productionLineOut/index"
,
""
,
0
,
"orderShortageSheet"
,
functionMenuMap
);
//new Menu(new ArrayList<Menu>(), 1, "orderSetting", "工单设置", 1, "orderSetting", "system/orderSetting/index", "", 0, "sysSet");
addNewFunctionMenu
(
orderM
,
new
ArrayList
<
Menu
>(),
1
,
"orderSetting"
,
"工单设置"
,
2
,
"orderSetting"
,
"system/orderSetting/index"
,
""
,
0
,
"orderSetting"
,
functionMenuMap
);
//MSD管理:MSD库存.MSD追溯性.MSD设置
//MSD管理:MSD库存.MSD追溯性.MSD设置
Menu
msd
=
Menu
.
CreatePMenu
(
"MSD管理"
,
20
,
"msd"
,
2
,
"MSD"
,
null
);
Menu
msd
=
Menu
.
CreatePMenu
(
"MSD管理"
,
20
,
"msd"
,
2
,
"MSD"
,
null
);
addNewFunctionMenu
(
msd
,
new
ArrayList
<
Menu
>(),
1
,
"msdManage"
,
"MSD库存"
,
1
,
"msdManage"
,
"neolight/msdManage/index"
,
""
,
0
,
"MSDManager"
,
functionMenuMap
);
addNewFunctionMenu
(
msd
,
new
ArrayList
<
Menu
>(),
1
,
"msdManage"
,
"MSD库存"
,
1
,
"msdManage"
,
"neolight/msdManage/index"
,
""
,
0
,
"MSDManager"
,
functionMenuMap
);
...
@@ -215,7 +218,7 @@ public class DataInitManager {
...
@@ -215,7 +218,7 @@ public class DataInitManager {
// //物联网:共享文件夹
// //物联网:共享文件夹
// Menu pMenuWulian = Menu.CreatePMenu("物联网", 30, "internet", 2, "interMenu");
// Menu pMenuWulian = Menu.CreatePMenu("物联网", 30, "internet", 2, "interMenu");
// Menu orderSet = new Menu(new ArrayList<Menu>(), 1, "orderSetting", "
共享文件夹
", 1, "orderSetting", "system/orderSetting/index", "", 0, "sysSet");
// Menu orderSet = new Menu(new ArrayList<Menu>(), 1, "orderSetting", "
工单设置
", 1, "orderSetting", "system/orderSetting/index", "", 0, "sysSet");
// orderSet.setHidden(true);
// orderSet.setHidden(true);
// menus.addAll(createMenus(pMenuWulian, orderSet));
// menus.addAll(createMenus(pMenuWulian, orderSet));
...
@@ -255,7 +258,7 @@ public class DataInitManager {
...
@@ -255,7 +258,7 @@ public class DataInitManager {
"reelOut"
,
"orderSheet"
,
"orderShortageOut"
,
"orderShortageSheet"
,
"productionLineReple"
,
"productionLineOut"
,
"reelOut"
,
"orderSheet"
,
"orderShortageOut"
,
"orderShortageSheet"
,
"productionLineReple"
,
"productionLineOut"
,
"componentParts"
,
"barcode"
,
"barcodeSetting"
,
"taskLog"
,
"message"
,
"interfaceException"
,
"componentParts"
,
"barcode"
,
"barcodeSetting"
,
"taskLog"
,
"message"
,
"interfaceException"
,
"bunker"
,
"storagePos"
,
"bunker"
,
"storagePos"
,
"peoples"
,
"role"
,
"about"
"peoples"
,
"role"
,
"about"
,
"orderSetting"
};
};
}
}
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
e6e4df6
...
@@ -26,8 +26,10 @@ import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
...
@@ -26,8 +26,10 @@ import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import
com.neotel.smfcore.core.storage.rest.mapstruct.SafetyInventoryMapper
;
import
com.neotel.smfcore.core.storage.rest.mapstruct.SafetyInventoryMapper
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.bean.OrderSetting
;
import
com.neotel.smfcore.core.system.listener.ITaskListener
;
import
com.neotel.smfcore.core.system.listener.ITaskListener
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.service.po.Settings
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.hikvision.HikApi
;
import
com.neotel.smfcore.hikvision.HikApi
;
import
com.neotel.smfcore.hikvision.bean.HikOrderInfo
;
import
com.neotel.smfcore.hikvision.bean.HikOrderInfo
;
...
@@ -441,6 +443,8 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -441,6 +443,8 @@ public class LiteOrderCache implements ITaskListener {
return
"smfcore.order.out.maxOrder"
;
return
"smfcore.order.out.maxOrder"
;
}
}
OrderSetting
orderSetting
=
dataCache
.
getOrderSetting
();
// 出库策略(系统判断逻辑由上到下依次满足):
// 出库策略(系统判断逻辑由上到下依次满足):
//①湿敏超期物料所在仓位锁定,不允许备料;
//①湿敏超期物料所在仓位锁定,不允许备料;
//②贵重物料,不允许超发,按实际需求发料;
//②贵重物料,不允许超发,按实际需求发料;
...
@@ -522,13 +526,13 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -522,13 +526,13 @@ public class LiteOrderCache implements ITaskListener {
//产线补料出库,补料逻辑:单盘最大5000 需求补料1000,按照满足需求最少料盘补料,补料需求6000时首发最大盘第二盘发满足需求最小盘
//产线补料出库,补料逻辑:单盘最大5000 需求补料1000,按照满足需求最少料盘补料,补料需求6000时首发最大盘第二盘发满足需求最小盘
outPosList
=
pickRepleReels
(
outPosNameList
,
posList
,
targetNum
);
outPosList
=
pickRepleReels
(
outPosNameList
,
posList
,
targetNum
);
}
else
{
}
else
{
if
(
orderItem
.
getWemng
()
>
200
)
{
if
(
orderItem
.
getWemng
()
>
orderSetting
.
getOrderNum
()
||
posList
.
size
()
>
orderSetting
.
getInventoryNum
()
)
{
// 2.1、订单数量>200;
// 2.1、订单数量>200;
// 2.1.1 散盘:整盘=3:7(比例可调,物料数量)
// 2.1.1 散盘:整盘=3:7(比例可调,物料数量)
// 2.1.2 整盘数量=需求数量*整盘占比/最小包装(四舍五入)
// 2.1.2 整盘数量=需求数量*整盘占比/最小包装(四舍五入)
// 2.1.3 剩余发散盘,优先取散盘(由多到少发送),
// 2.1.3 剩余发散盘,优先取散盘(由多到少发送),
// 散盘不满足情况下补充整盘
// 散盘不满足情况下补充整盘
outPosList
=
pickBigOrderReels
(
pn
,
outPosNameList
,
posList
,
targetNum
);
outPosList
=
pickBigOrderReels
(
pn
,
outPosNameList
,
posList
,
targetNum
,
orderSetting
.
getNotFullNum
()
);
}
else
{
}
else
{
//2.2、订单数量≤200;(料盘最少原则)
//2.2、订单数量≤200;(料盘最少原则)
...
@@ -790,7 +794,7 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -790,7 +794,7 @@ public class LiteOrderCache implements ITaskListener {
* @param targetNum
* @param targetNum
* @return
* @return
*/
*/
private
List
<
StoragePos
>
pickBigOrderReels
(
String
pn
,
Set
<
String
>
outPosNameList
,
List
<
StoragePos
>
posList
,
int
targetNum
)
{
private
List
<
StoragePos
>
pickBigOrderReels
(
String
pn
,
Set
<
String
>
outPosNameList
,
List
<
StoragePos
>
posList
,
int
targetNum
,
int
notFullNum
)
{
List
<
String
>
excludePosNameList
=
new
ArrayList
<>(
outPosNameList
);
List
<
String
>
excludePosNameList
=
new
ArrayList
<>(
outPosNameList
);
List
<
StoragePos
>
outPosList
=
new
ArrayList
<>();
List
<
StoragePos
>
outPosList
=
new
ArrayList
<>();
...
@@ -827,26 +831,32 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -827,26 +831,32 @@ public class LiteOrderCache implements ITaskListener {
//挑选散盘
//挑选散盘
log
.
info
(
"开始挑选散盘料,剩余需求"
+
targetNum
);
log
.
info
(
"开始挑选散盘料,剩余需求"
+
targetNum
);
//已挑选的散盘数量
//已挑选的散盘数量
int
notWholeReelCount
=
0
;
while
(
true
)
{
while
(
true
)
{
//取散盘
List
<
StoragePos
>
notWholePosList
=
findNotWholePosList
(
excludePosNameList
,
posList
,
targetNum
,
oneReelNum
,
pn
,
notFullNum
);
StoragePos
outPos
=
pickNotWholeReel
(
excludePosNameList
,
posList
,
targetNum
,
oneReelNum
);
if
(
notWholePosList
==
null
||
notWholePosList
.
size
()
<=
0
)
{
if
(
outPos
==
null
)
{
break
;
break
;
}
else
{
}
log
.
info
(
"挑选到批次["
+
outPos
.
getBarcode
().
getBatch
()
+
"]的散盘物料:"
+
outPos
.
getBarcode
().
getBarcode
()
+
" 数量:"
+
outPos
.
getBarcode
().
getAmount
());
if
(
notWholePosList
.
size
()
>=
notFullNum
)
{
outPosList
.
add
(
outPos
);
StoragePos
outPos
=
pickWholeReel
(
excludePosNameList
,
posList
,
targetNum
,
oneReelNum
);
excludePosNameList
.
add
(
outPos
.
getPosName
());
if
(
outPos
==
null
)
{
targetNum
=
targetNum
-
outPos
.
getBarcode
().
getAmount
();
if
(
targetNum
<=
0
)
{
break
;
break
;
}
else
{
log
.
info
(
"挑选批次["
+
outPos
.
getBarcode
().
getBatch
()
+
"]的整盘物料:"
+
outPos
.
getBarcode
().
getBarcode
()
+
" 数量:"
+
outPos
.
getBarcode
().
getAmount
());
outPosList
.
add
(
outPos
);
excludePosNameList
.
add
(
outPos
.
getPosName
());
targetNum
=
targetNum
-
outPos
.
getBarcode
().
getAmount
();
}
}
notWholeReelCount
=
notWholeReelCount
+
1
;
}
else
{
if
(
notWholeReelCount
>=
5
)
{
for
(
StoragePos
outPos
:
notWholePosList
)
{
log
.
info
(
pn
+
"的散盘已挑选5盘,跳出"
);
log
.
info
(
"挑选到批次["
+
outPos
.
getBarcode
().
getBatch
()
+
"]的散盘物料:"
+
outPos
.
getBarcode
().
getBarcode
()
+
" 数量:"
+
outPos
.
getBarcode
().
getAmount
());
break
;
outPosList
.
add
(
outPos
);
excludePosNameList
.
add
(
outPos
.
getPosName
());
targetNum
=
targetNum
-
outPos
.
getBarcode
().
getAmount
();
}
}
}
}
if
(
targetNum
<=
0
)
{
break
;
}
}
}
if
(
targetNum
>
0
)
{
if
(
targetNum
>
0
)
{
log
.
info
(
"剩余需求"
+
targetNum
+
"开始补充最合适的盘"
);
log
.
info
(
"剩余需求"
+
targetNum
+
"开始补充最合适的盘"
);
...
@@ -970,4 +980,33 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -970,4 +980,33 @@ public class LiteOrderCache implements ITaskListener {
}
}
return
outPos
;
return
outPos
;
}
}
private
List
<
StoragePos
>
findNotWholePosList
(
List
<
String
>
excludePosNameList
,
List
<
StoragePos
>
posList
,
int
targetNum
,
int
oneReelNum
,
String
pn
,
int
notFullNum
)
{
List
<
StoragePos
>
storagePosList
=
new
ArrayList
<>();
while
(
true
)
{
if
(
storagePosList
!=
null
&&
!
storagePosList
.
isEmpty
())
{
for
(
StoragePos
pos
:
storagePosList
)
{
excludePosNameList
.
add
(
pos
.
getPosName
());
}
}
//取散盘
StoragePos
outPos
=
pickNotWholeReel
(
excludePosNameList
,
posList
,
targetNum
,
oneReelNum
);
if
(
outPos
==
null
)
{
break
;
}
else
{
log
.
info
(
"挑选到批次["
+
outPos
.
getBarcode
().
getBatch
()
+
"]的散盘物料:"
+
outPos
.
getBarcode
().
getBarcode
()
+
" 数量:"
+
outPos
.
getBarcode
().
getAmount
());
storagePosList
.
add
(
outPos
);
targetNum
=
targetNum
-
outPos
.
getBarcode
().
getAmount
();
if
(
targetNum
<=
0
)
{
break
;
}
if
(
storagePosList
!=
null
&&
storagePosList
.
size
()
>=
notFullNum
)
{
log
.
info
(
pn
+
"的散盘已挑选5盘,跳出"
);
break
;
}
}
}
return
storagePosList
;
}
}
}
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
e6e4df6
此文件的差异被折叠,
点击展开。
src/main/java/com/neotel/smfcore/core/order/rest/bean/query/OrderQueryCondition.java
查看文件 @
e6e4df6
...
@@ -32,6 +32,9 @@ public class OrderQueryCondition {
...
@@ -32,6 +32,9 @@ public class OrderQueryCondition {
//状态,0=所有,1=已关闭,2=未关闭,3=出库中
//状态,0=所有,1=已关闭,2=未关闭,3=出库中
private
Integer
status
;
private
Integer
status
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
IN
,
propName
=
"orderNo"
)
private
List
<
String
>
idList
;
//
//
// @QueryCondition(type=QueryCondition.Type.IN,propName = "status")
// @QueryCondition(type=QueryCondition.Type.IN,propName = "status")
// private List<Integer> statusList ;
// private List<Integer> statusList ;
...
...
src/main/java/com/neotel/smfcore/core/system/bean/OrderSetting.java
查看文件 @
e6e4df6
...
@@ -34,4 +34,10 @@ public class OrderSetting implements Serializable {
...
@@ -34,4 +34,10 @@ public class OrderSetting implements Serializable {
*/
*/
@ApiModelProperty
(
"料架亮灯方式,0=全部亮灯,1=亮灯指引,默认0"
)
@ApiModelProperty
(
"料架亮灯方式,0=全部亮灯,1=亮灯指引,默认0"
)
public
Integer
shelfLightType
=
0
;
public
Integer
shelfLightType
=
0
;
private
Integer
inventoryNum
=
3
;
private
Integer
orderNum
=
200
;
private
Integer
notFullNum
=
5
;
}
}
src/main/java/com/neotel/smfcore/core/system/rest/SettingsController.java
查看文件 @
e6e4df6
...
@@ -126,7 +126,7 @@ public class SettingsController {
...
@@ -126,7 +126,7 @@ public class SettingsController {
public
ResultBean
updateOrderSetting
(
@RequestBody
OrderSetting
orderSetting
)
{
public
ResultBean
updateOrderSetting
(
@RequestBody
OrderSetting
orderSetting
)
{
// String type=map.get("checkOutType");
// String type=map.get("checkOutType");
if
(
orderSetting
.
getPn
()==
null
){
/*
if(orderSetting.getPn()==null){
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"PN"});
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"PN"});
}
}
if(orderSetting.getFeeder()==null){
if(orderSetting.getFeeder()==null){
...
@@ -157,7 +157,7 @@ public class SettingsController {
...
@@ -157,7 +157,7 @@ public class SettingsController {
throw new ValidateException("smfcore.enterCorrectFolder", "请输入正确的文件夹" );
throw new ValidateException("smfcore.enterCorrectFolder", "请输入正确的文件夹" );
}
}
}
}
}
}
*/
dataCache
.
updateCache
(
Constants
.
CACHE_OrderSetting
,
orderSetting
);
dataCache
.
updateCache
(
Constants
.
CACHE_OrderSetting
,
orderSetting
);
log
.
info
(
"更改工单设置:"
+
Constants
.
CACHE_OrderSetting
+
"="
+
orderSetting
.
toString
());
log
.
info
(
"更改工单设置:"
+
Constants
.
CACHE_OrderSetting
+
"="
+
orderSetting
.
toString
());
...
...
src/main/java/com/neotel/smfcore/core/system/rest/bean/query/TaskQueryCondition.java
查看文件 @
e6e4df6
...
@@ -39,7 +39,7 @@ public class TaskQueryCondition {
...
@@ -39,7 +39,7 @@ public class TaskQueryCondition {
private
String
operator
;
private
String
operator
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
,
propName
=
"updateDate"
)
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
,
propName
=
"updateDate"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd
HH:mm:ss
"
)
private
BetweenData
<
Date
>
updateDate
;
private
BetweenData
<
Date
>
updateDate
;
@QueryCondition
@QueryCondition
...
...
src/main/resources/messages.properties
查看文件 @
e6e4df6
...
@@ -146,7 +146,7 @@ smfcore.solderPasteKanban=\u8BBE\u5907\u6982\u89C8
...
@@ -146,7 +146,7 @@ smfcore.solderPasteKanban=\u8BBE\u5907\u6982\u89C8
smfcore.solderPasteManage
=
\u
5E93
\u
5B58
smfcore.solderPasteManage
=
\u
5E93
\u
5B58
smfcore.solderPasteData
=
\u
8FFD
\u
6EAF
\u6027
smfcore.solderPasteData
=
\u
8FFD
\u
6EAF
\u6027
smfcore.solderPasteSetting
=
\u
8BBE
\u
7F6E
smfcore.solderPasteSetting
=
\u
8BBE
\u
7F6E
smfcore.orderSetting
=
\u5
171\u
4EAB
\u6587\u
4EF6
\u5939
smfcore.orderSetting
=
\u
5
DE5
\u5355\u
8BBE
\u
7F6E
smfcore.enterCorrectFolder
=
\u
8BF7
\u
8F93
\u5165\u
6B63
\u
786E
\u7684\u6587\u
4EF6
\u5939
smfcore.enterCorrectFolder
=
\u
8BF7
\u
8F93
\u5165\u
6B63
\u
786E
\u7684\u6587\u
4EF6
\u5939
smfcore.taskHasEnd
=
\u
4EFB
\u
52A1{0}
\u
5DF2
\u
53D6
\u
6D88
\u6216\u
5DF2
\u
7ED3
\u
675F
smfcore.taskHasEnd
=
\u
4EFB
\u
52A1{0}
\u
5DF2
\u
53D6
\u
6D88
\u6216\u
5DF2
\u
7ED3
\u
675F
smfcore.virtual.notFound
=
\u
672A
\u
627E
\u5230\u
865A
\u
62DF
\u
4ED3
smfcore.virtual.notFound
=
\u
672A
\u
627E
\u5230\u
865A
\u
62DF
\u
4ED3
...
@@ -262,6 +262,7 @@ smfcore.orderShortage.statusError=\u64CD\u4F5C\u5931\u8D25\uFF0C{0}\u975E\u5DE5\
...
@@ -262,6 +262,7 @@ smfcore.orderShortage.statusError=\u64CD\u4F5C\u5931\u8D25\uFF0C{0}\u975E\u5DE5\
smfcore.orderSheet.taskNotEnd
=
\u
64CD
\u
4F5C
\u5931\u
8D25
\u
FF0C
\u
5DE5
\u5355\u
51FA
\u
5E93
\u
4EFB
\u
52A1[{0}][{1}}]
\u
8FD8
\u
672A
\u
7ED3
\u
675F
smfcore.orderSheet.taskNotEnd
=
\u
64CD
\u
4F5C
\u5931\u
8D25
\u
FF0C
\u
5DE5
\u5355\u
51FA
\u
5E93
\u
4EFB
\u
52A1[{0}][{1}}]
\u
8FD8
\u
672A
\u
7ED3
\u
675F
smfcore.orderSheet.end.error
=
\u
64CD
\u
4F5C
\u5931\u
8D25
\u
FF0C
\u
5DE5
\u5355
{0}
\u
8FD8
\u
672A
\u
51FA
\u
5E93
\u
5B8C
\u6210
smfcore.orderSheet.end.error
=
\u
64CD
\u
4F5C
\u5931\u
8D25
\u
FF0C
\u
5DE5
\u5355
{0}
\u
8FD8
\u
672A
\u
51FA
\u
5E93
\u
5B8C
\u6210
smfcore.order.noBind
=
\u
64CD
\u
4F5C
\u5931\u
8D25
\u
FF0C
\u
8BF7
\u5148\u
4E3A
\u
5DE5
\u5355
{0}
\u
7ED1
\u
5B9A
\u
7BB1
\u
5B50
smfcore.order.noBind
=
\u
64CD
\u
4F5C
\u5931\u
8D25
\u
FF0C
\u
8BF7
\u5148\u
4E3A
\u
5DE5
\u5355
{0}
\u
7ED1
\u
5B9A
\u
7BB1
\u
5B50
smfcore.order.choose
=
\u
8BF7
\u9009\u
62E9
\u
5DE5
\u5355
#smfcore.order.out.short=\u5DE5\u5355\u51FA\u5E93\u5931\u8D25\uFF0C\u5DE5\u5355\u7F3A\u6599
#smfcore.order.out.short=\u5DE5\u5355\u51FA\u5E93\u5931\u8D25\uFF0C\u5DE5\u5355\u7F3A\u6599
...
...
src/main/resources/messages_en_US.properties
查看文件 @
e6e4df6
...
@@ -149,7 +149,7 @@ smfcore.solderPasteKanban=Equipment Overview
...
@@ -149,7 +149,7 @@ smfcore.solderPasteKanban=Equipment Overview
smfcore.solderPasteManage
=
Inventory
smfcore.solderPasteManage
=
Inventory
smfcore.solderPasteData
=
Traceability
smfcore.solderPasteData
=
Traceability
smfcore.solderPasteSetting
=
Setting
smfcore.solderPasteSetting
=
Setting
smfcore.orderSetting
=
Shared Folder
smfcore.orderSetting
=
Work Order Settings
smfcore.enterCorrectFolder
=
Please enter the correct folder
smfcore.enterCorrectFolder
=
Please enter the correct folder
smfcore.taskHasEnd
=
Task {0} has been cancelled or has ended
smfcore.taskHasEnd
=
Task {0} has been cancelled or has ended
smfcore.virtual.notFound
=
No virtual warehouse found
smfcore.virtual.notFound
=
No virtual warehouse found
...
@@ -253,4 +253,4 @@ smfcore.safetyInventory.supplementReel=Number of additional plates
...
@@ -253,4 +253,4 @@ smfcore.safetyInventory.supplementReel=Number of additional plates
smfcore.safetyInventory.amount
=
Amount
smfcore.safetyInventory.amount
=
Amount
smfcore.component.storeError
=
Please enter the correct stock, minimum stock <= safety stock <= maximum stock
smfcore.component.storeError
=
Please enter the correct stock, minimum stock <= safety stock <= maximum stock
smfcore.user.group.error
=
Group [{0}] has been assigned to operator [{1}]
smfcore.user.group.error
=
Group [{0}] has been assigned to operator [{1}]
smfcore.order.choose
=
Please select a ticket
src/main/resources/messages_ja_JP.properties
查看文件 @
e6e4df6
...
@@ -148,7 +148,7 @@ smfcore.solderPasteKanban=\u6A5F\u5668\u6982\u8981
...
@@ -148,7 +148,7 @@ smfcore.solderPasteKanban=\u6A5F\u5668\u6982\u8981
smfcore.solderPasteManage
=
\u
30A4
\u
30F3
\u
30D9
\u
30F3
\u
30C8
\u
30EA
\u
30FC
smfcore.solderPasteManage
=
\u
30A4
\u
30F3
\u
30D9
\u
30F3
\u
30C8
\u
30EA
\u
30FC
smfcore.solderPasteData
=
\u9061\u
53CA
smfcore.solderPasteData
=
\u9061\u
53CA
smfcore.solderPasteSetting
=
\u
8A2D
\u
5B9A
smfcore.solderPasteSetting
=
\u
8A2D
\u
5B9A
smfcore.orderSetting
=
\u
5171\u6709\u
30D5
\u
30A9
\u
30EB
\u
30C0
\u
30FC
smfcore.orderSetting
=
\u
4F5C
\u
696D
\u6307\u
793A
\u
66F8
\u
8A2D
\u
5B9A
smfcore.enterCorrectFolder
=
\u
6B63
\u3057\u3044\u
30D5
\u
30A9
\u
30EB
\u
30C0
\u3092\u5165\u
529B
\u3057\u3066\u
304F
\u3060\u3055\u3044
smfcore.enterCorrectFolder
=
\u
6B63
\u3057\u3044\u
30D5
\u
30A9
\u
30EB
\u
30C0
\u3092\u5165\u
529B
\u3057\u3066\u
304F
\u3060\u3055\u3044
smfcore.taskHasEnd=
\u
30BF
\u
30B9
\u
30AF{0}
\u
304C
\u
30AD
\u
30E3
\u
30F3
\u
30BB
\u
30EB
\u3055\u
308C
\u
305F
\u
304B
\u
7D42
\u
4E86
\u3057\u
305F
smfcore.taskHasEnd=
\u
30BF
\u
30B9
\u
30AF{0}
\u
304C
\u
30AD
\u
30E3
\u
30F3
\u
30BB
\u
30EB
\u3055\u
308C
\u
305F
\u
304B
\u
7D42
\u
4E86
\u3057\u
305F
smfcore.virtual.notFound
=
\u
30D0
\u
30FC
\u
30C1
\u
30E3
\u
30EB
\u
30A6
\u
30A8
\u
30A2
\u
30CF
\u
30A6
\u
30B9
\u
304C
\u
898B
\u3064\u
304B
\u
308A
\u
307E
\u
305B
\u3093
smfcore.virtual.notFound
=
\u
30D0
\u
30FC
\u
30C1
\u
30E3
\u
30EB
\u
30A6
\u
30A8
\u
30A2
\u
30CF
\u
30A6
\u
30B9
\u
304C
\u
898B
\u3064\u
304B
\u
308A
\u
307E
\u
305B
\u3093
...
@@ -252,4 +252,4 @@ smfcore.safetyInventory.supplementReel=\u8FFD\u52A0\u30D7\u30EC\u30FC\u30C8\u679
...
@@ -252,4 +252,4 @@ smfcore.safetyInventory.supplementReel=\u8FFD\u52A0\u30D7\u30EC\u30FC\u30C8\u679
smfcore.safetyInventory.amount
=
\u6578\u
91CF
smfcore.safetyInventory.amount
=
\u6578\u
91CF
smfcore.component.storeError
=
\u
6B63
\u3057\u3044\u5728\u
5EAB
\u3092\u5165\u
529B
\u3057\u3066\u
304F
\u3060\u3055\u3044\u3001\u6700\u
5C0F
\u5728\u
5EAB
\u2266\u
5B89
\u5168\u5728\u
5EAB
\u2266\u6700\u5927\u5728\u
5EAB
smfcore.component.storeError
=
\u
6B63
\u3057\u3044\u5728\u
5EAB
\u3092\u5165\u
529B
\u3057\u3066\u
304F
\u3060\u3055\u3044\u3001\u6700\u
5C0F
\u5728\u
5EAB
\u2266\u
5B89
\u5168\u5728\u
5EAB
\u2266\u6700\u5927\u5728\u
5EAB
smfcore.user.group.error
=
\u
30B0
\u
30EB
\u
30FC
\u
30D7[{0}]
\u
304C
\u
30AA
\u
30DA
\u
30EC
\u
30FC
\u
30BF[{1}]
\u
306B
\u5272\u
308A
\u
5F53
\u3066\u3089\u
308C
\u
307E
\u3057\u
305F
\u3002
smfcore.user.group.error
=
\u
30B0
\u
30EB
\u
30FC
\u
30D7[{0}]
\u
304C
\u
30AA
\u
30DA
\u
30EC
\u
30FC
\u
30BF[{1}]
\u
306B
\u5272\u
308A
\u
5F53
\u3066\u3089\u
308C
\u
307E
\u3057\u
305F
\u3002
smfcore.order.choose
=
\u
30C1
\u
30B1
\u
30C3
\u
30C8
\u3092\u9078\u
629E
\u3057\u3066\u
304F
\u3060\u3055\u3044
src/main/resources/messages_zh_CN.properties
查看文件 @
e6e4df6
...
@@ -148,7 +148,7 @@ smfcore.solderPasteKanban=\u8BBE\u5907\u6982\u89C8
...
@@ -148,7 +148,7 @@ smfcore.solderPasteKanban=\u8BBE\u5907\u6982\u89C8
smfcore.solderPasteManage
=
\u
5E93
\u
5B58
smfcore.solderPasteManage
=
\u
5E93
\u
5B58
smfcore.solderPasteData
=
\u
8FFD
\u
6EAF
\u6027
smfcore.solderPasteData
=
\u
8FFD
\u
6EAF
\u6027
smfcore.solderPasteSetting
=
\u
8BBE
\u
7F6E
smfcore.solderPasteSetting
=
\u
8BBE
\u
7F6E
smfcore.orderSetting
=
\u5
171\u
4EAB
\u6587\u
4EF6
\u5939
smfcore.orderSetting
=
\u
5
DE5
\u5355\u
8BBE
\u
7F6E
smfcore.enterCorrectFolder
=
\u
8BF7
\u
8F93
\u5165\u
6B63
\u
786E
\u7684\u6587\u
4EF6
\u5939
smfcore.enterCorrectFolder
=
\u
8BF7
\u
8F93
\u5165\u
6B63
\u
786E
\u7684\u6587\u
4EF6
\u5939
smfcore.taskHasEnd
=
\u
4EFB
\u
52A1{0}
\u
5DF2
\u
53D6
\u
6D88
\u6216\u
5DF2
\u
7ED3
\u
675F
smfcore.taskHasEnd
=
\u
4EFB
\u
52A1{0}
\u
5DF2
\u
53D6
\u
6D88
\u6216\u
5DF2
\u
7ED3
\u
675F
smfcore.virtual.notFound
=
\u
672A
\u
627E
\u5230\u
865A
\u
62DF
\u
4ED3
smfcore.virtual.notFound
=
\u
672A
\u
627E
\u5230\u
865A
\u
62DF
\u
4ED3
...
@@ -252,3 +252,4 @@ smfcore.safetyInventory.supplementReel=\u8865\u5145\u76D8\u6570
...
@@ -252,3 +252,4 @@ smfcore.safetyInventory.supplementReel=\u8865\u5145\u76D8\u6570
smfcore.safetyInventory.amount
=
\u6700\u
5C0F
\u5305\u
88C5
smfcore.safetyInventory.amount
=
\u6700\u
5C0F
\u5305\u
88C5
smfcore.component.storeError
=
\u
8BF7
\u
8F93
\u5165\u
6B63
\u
786E
\u7684\u
5E93
\u
5B58
\u
FF0C
\u6700\u
5C0F
\u
5E93
\u
5B58<=
\u
5B89
\u5168\u
5E93
\u
5B58<=
\u6700\u5927\u
5E93
\u
5B58
smfcore.component.storeError
=
\u
8BF7
\u
8F93
\u5165\u
6B63
\u
786E
\u7684\u
5E93
\u
5B58
\u
FF0C
\u6700\u
5C0F
\u
5E93
\u
5B58<=
\u
5B89
\u5168\u
5E93
\u
5B58<=
\u6700\u5927\u
5E93
\u
5B58
smfcore.user.group.error
=
\u
7EC4[{0}]
\u
5DF2
\u
7ECF
\u5206\u
914D
\u
7ED9
\u
64CD
\u
4F5C
\u5458
[{1}]
smfcore.user.group.error
=
\u
7EC4[{0}]
\u
5DF2
\u
7ECF
\u5206\u
914D
\u
7ED9
\u
64CD
\u
4F5C
\u5458
[{1}]
smfcore.order.choose
=
\u
8BF7
\u9009\u
62E9
\u
5DE5
\u5355
\ No newline at end of file
\ No newline at end of file
src/main/resources/messages_zh_TW.properties
查看文件 @
e6e4df6
...
@@ -148,7 +148,7 @@ smfcore.solderPasteKanban=\u8A2D\u5099\u6982\u89BD
...
@@ -148,7 +148,7 @@ smfcore.solderPasteKanban=\u8A2D\u5099\u6982\u89BD
smfcore.solderPasteManage
=
\u
5EAB
\u
5B58
smfcore.solderPasteManage
=
\u
5EAB
\u
5B58
smfcore.solderPasteData
=
\u
8FFD
\u
6EAF
\u6027
smfcore.solderPasteData
=
\u
8FFD
\u
6EAF
\u6027
smfcore.solderPasteSetting
=
\u
8A2D
\u
7F6E
smfcore.solderPasteSetting
=
\u
8A2D
\u
7F6E
smfcore.orderSetting
=
\u5
171\u
4EAB
\u6587\u
4EF6
\u
593
E
smfcore.orderSetting
=
\u
5
DE5
\u
55AE
\u
8A2D
\u
7F6
E
smfcore.enterCorrectFolder
=
\u
8ACB
\u
8F38
\u5165\u
6B63
\u
78BA
\u7684\u6587\u
4EF6
\u
593E
smfcore.enterCorrectFolder
=
\u
8ACB
\u
8F38
\u5165\u
6B63
\u
78BA
\u7684\u6587\u
4EF6
\u
593E
smfcore.taskHasEnd
=
\u
4EFB
\u
52D9{0}
\u
5DF2
\u
53D6
\u
6D88
\u6216\u
5DF2
\u
7D50
\u
675F
smfcore.taskHasEnd
=
\u
4EFB
\u
52D9{0}
\u
5DF2
\u
53D6
\u
6D88
\u6216\u
5DF2
\u
7D50
\u
675F
smfcore.virtual.notFound
=
\u
672A
\u
627E
\u5230\u
865B
\u
64EC
\u5009
smfcore.virtual.notFound
=
\u
672A
\u
627E
\u5230\u
865B
\u
64EC
\u5009
...
@@ -252,3 +252,4 @@ smfcore.safetyInventory.supplementReel=\u88DC\u5145\u76E4\u6578
...
@@ -252,3 +252,4 @@ smfcore.safetyInventory.supplementReel=\u88DC\u5145\u76E4\u6578
smfcore.safetyInventory.amount
=
\u6700\u
5C0F
\u5305\u
88DD
smfcore.safetyInventory.amount
=
\u6700\u
5C0F
\u5305\u
88DD
smfcore.component.storeError
=
\u
8ACB
\u
8F38
\u5165\u
6B63
\u
78BA
\u7684\u
5EAB
\u
5B58
\u
FF0C
\u6700\u
5C0F
\u
5EAB
\u
5B58<=
\u
5B89
\u5168\u
5EAB
\u
5B58<=
\u6700\u5927\u
5EAB
\u
5B58
smfcore.component.storeError
=
\u
8ACB
\u
8F38
\u5165\u
6B63
\u
78BA
\u7684\u
5EAB
\u
5B58
\u
FF0C
\u6700\u
5C0F
\u
5EAB
\u
5B58<=
\u
5B89
\u5168\u
5EAB
\u
5B58<=
\u6700\u5927\u
5EAB
\u
5B58
smfcore.user.group.error
=
\u
7D44[{0}]
\u
5DF2
\u
7D93
\u5206\u
914D
\u
7D66
\u
64CD
\u
4F5C
\u
54E1[{1}]
smfcore.user.group.error
=
\u
7D44[{0}]
\u
5DF2
\u
7D93
\u5206\u
914D
\u
7D66
\u
64CD
\u
4F5C
\u
54E1[{1}]
smfcore.order.choose
=
\u
8ACB
\u9078\u
64C7
\u
5DE5
\u
55AE
\ No newline at end of file
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论