Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit baecefe2
由
LN
编写于
2022-03-23 16:53:09 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
工单结构修改
1 个父辈
5e3d9e49
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
384 行增加
和
224 行删除
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.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/dto/OrderDto.java
src/main/java/com/neotel/smfcore/core/order/rest/bean/dto/OrderItemDto.java
src/main/java/com/neotel/smfcore/core/order/rest/bean/query/OrderQueryCondition.java
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderManagerImpl.java
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
src/main/java/com/neotel/smfcore/core/order/util/OrderFileWatch.java
src/main/java/com/neotel/smfcore/hella/handler/HellaServiceHandler.java
src/main/java/com/neotel/smfcore/hikvision/bean/HikOutInfo.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
查看文件 @
baecefe
...
@@ -832,7 +832,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
...
@@ -832,7 +832,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
for
(
DataLog
dataLog
:
dataLogList
for
(
DataLog
dataLog
:
dataLogList
)
{
)
{
if
(
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
WAIT
))
{
if
(
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
WAIT
))
{
if
((
ObjectUtil
.
isNotEmpty
(
item
.
get
Pn
())
&&
item
.
getPn
().
equals
(
dataLog
.
getPartNumber
()))
||
if
((
ObjectUtil
.
isNotEmpty
(
item
.
get
MaterialNo
())
&&
item
.
getMaterialNo
().
equals
(
dataLog
.
getPartNumber
()))
||
(
ObjectUtil
.
isNotEmpty
(
item
.
getRi
())
&&
item
.
getRi
().
equals
(
dataLog
.
getBarcode
()))
(
ObjectUtil
.
isNotEmpty
(
item
.
getRi
())
&&
item
.
getRi
().
equals
(
dataLog
.
getBarcode
()))
)
)
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
baecefe
...
@@ -91,6 +91,23 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -91,6 +91,23 @@ public class LiteOrderCache implements ITaskListener {
liteOrderMap
.
put
(
order
.
getOrderNo
(),
order
);
liteOrderMap
.
put
(
order
.
getOrderNo
(),
order
);
}
}
public
LiteOrder
findOrderByNo
(
String
orderNo
){
if
(
liteOrderMap
.
containsKey
(
orderNo
)){
return
liteOrderMap
.
get
(
orderNo
);
}
else
{
LiteOrder
order
=
liteOrderManager
.
findByOrderNo
(
orderNo
);
if
(
order
!=
null
){
addOrderToMap
(
order
);;
return
order
;
}
}
return
null
;
}
private
boolean
isProcessTimer
=
false
;
private
boolean
isProcessTimer
=
false
;
public
void
runTimer
(){
public
void
runTimer
(){
...
@@ -130,7 +147,7 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -130,7 +147,7 @@ public class LiteOrderCache implements ITaskListener {
if
(
order
.
isNew
()||
order
.
isTaskFinished
()){
if
(
order
.
isNew
()||
order
.
isTaskFinished
()){
//判断是否到达时间
//判断是否到达时间
Date
curr
=
new
Date
();
Date
curr
=
new
Date
();
if
(
order
.
getSDate
().
before
(
curr
)){
if
(
order
.
getS
tart
Date
().
before
(
curr
)){
//开始自动出库
//开始自动出库
String
result
=
checkOutLiteOrder
(
order
.
getOrderNo
(),
false
);
String
result
=
checkOutLiteOrder
(
order
.
getOrderNo
(),
false
);
if
(!
ObjectUtil
.
isEmpty
(
result
)){
if
(!
ObjectUtil
.
isEmpty
(
result
)){
...
@@ -352,7 +369,7 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -352,7 +369,7 @@ public class LiteOrderCache implements ITaskListener {
orderItem
.
setOutReelCount
(
0
);
orderItem
.
setOutReelCount
(
0
);
liteOrderItemManager
.
save
(
orderItem
);
liteOrderItemManager
.
save
(
orderItem
);
//剩余未出数量
//剩余未出数量
Float
totalNum
=
orderItem
.
get
NeedNum
()
*
cacheOrder
.
getOrderTimes
();
Float
totalNum
=
orderItem
.
get
Qty
()
*
cacheOrder
.
getOrderTimes
();
int
remainNum
=
totalNum
.
intValue
()
-
orderItem
.
getOutNum
();
int
remainNum
=
totalNum
.
intValue
()
-
orderItem
.
getOutNum
();
...
@@ -365,7 +382,7 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -365,7 +382,7 @@ public class LiteOrderCache implements ITaskListener {
int
assignNum
=
0
;
int
assignNum
=
0
;
while
(
assignNum
<
remainNum
)
{
while
(
assignNum
<
remainNum
)
{
Collection
<
String
>
excludePosIds
=
excludePosIds
();
Collection
<
String
>
excludePosIds
=
excludePosIds
();
String
partNumber
=
orderItem
.
get
Pn
();
String
partNumber
=
orderItem
.
get
MaterialNo
();
StoragePos
pos
=
null
;
StoragePos
pos
=
null
;
if
(
cacheOrder
.
getType
()==
2
){
if
(
cacheOrder
.
getType
()==
2
){
...
@@ -391,7 +408,7 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -391,7 +408,7 @@ public class LiteOrderCache implements ITaskListener {
task
.
setSourceId
(
cacheOrder
.
getId
());
task
.
setSourceId
(
cacheOrder
.
getId
());
task
.
setSourceName
(
cacheOrder
.
getOrderNo
());
task
.
setSourceName
(
cacheOrder
.
getOrderNo
());
task
.
setSubSourceId
(
orderItem
.
getId
());
task
.
setSubSourceId
(
orderItem
.
getId
());
task
.
setSubSourceInfo
(
orderItem
.
get
FeederInfo
());
task
.
setSubSourceInfo
(
orderItem
.
get
Station
());
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setLightColor
(
nextColor
.
getRgb
());
task
.
setLightColor
(
nextColor
.
getRgb
());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
...
@@ -506,7 +523,7 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -506,7 +523,7 @@ public class LiteOrderCache implements ITaskListener {
List
<
String
>
availableStorageIds
=
dataCache
.
getAvailableStorageIds
();
List
<
String
>
availableStorageIds
=
dataCache
.
getAvailableStorageIds
();
Collection
<
String
>
excludePosIds
=
excludePosIds
();
Collection
<
String
>
excludePosIds
=
excludePosIds
();
String
partNumber
=
orderItem
.
get
Pn
();
String
partNumber
=
orderItem
.
get
MaterialNo
();
StoragePos
pos
=
null
;
StoragePos
pos
=
null
;
if
(
cacheOrder
.
getType
()==
2
){
if
(
cacheOrder
.
getType
()==
2
){
//RI
//RI
...
@@ -527,7 +544,7 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -527,7 +544,7 @@ public class LiteOrderCache implements ITaskListener {
task
.
setSourceId
(
cacheOrder
.
getId
());
task
.
setSourceId
(
cacheOrder
.
getId
());
task
.
setSourceName
(
cacheOrder
.
getOrderNo
());
task
.
setSourceName
(
cacheOrder
.
getOrderNo
());
task
.
setSubSourceId
(
orderItem
.
getId
());
task
.
setSubSourceId
(
orderItem
.
getId
());
task
.
setSubSourceInfo
(
orderItem
.
get
FeederInfo
());
task
.
setSubSourceInfo
(
orderItem
.
get
Station
());
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setType
(
OP
.
CHECKOUT
);
// task.setLightColor(nextColor.getRgb());
// task.setLightColor(nextColor.getRgb());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
...
...
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
baecefe
...
@@ -99,6 +99,73 @@ public class OrderController {
...
@@ -99,6 +99,73 @@ public class OrderController {
// userService.download(userService.queryAll(criteria), response);
// userService.download(userService.queryAll(criteria), response);
// }
// }
@ApiOperation
(
"查询工单"
)
@GetMapping
@PreAuthorize
(
"@el.check('workOrder')"
)
public
PageData
<
OrderDto
>
query
(
OrderQueryCondition
criteria
,
Pageable
pageable
)
{
User
user
=
userManager
.
findByUserName
(
SecurityUtils
.
getCurrentUsername
());
if
(
user
!=
null
)
{
//数据权限 查找没有权限的组列表
if
(!
user
.
getIsAdmin
())
{
Set
<
String
>
groupIds
=
user
.
getGroups
();
List
<
String
>
excludeSources
=
Lists
.
newArrayList
();
List
<
Group
>
groups
=
groupManager
.
findAll
();
for
(
Group
group
:
groups
)
{
if
(
groupIds
.
contains
(
group
.
getId
())){
continue
;
}
excludeSources
.
add
(
group
.
getGroupName
());
}
// //都没有权限,返回空
// if (ObjectUtils.isEmpty(groupNames)) {
// return new PageData<>(Lists.newArrayList(), 0);
// }
criteria
.
setExcludeSourceList
(
excludeSources
);
}
}
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
if
(
criteria
.
getStatus
()
!=
null
)
{
if
(
criteria
.
getStatus
()
==
1
)
{
query
.
addCriteria
(
Criteria
.
where
(
"status"
).
is
(
LITEORDER_STATUS
.
CLOSED
));
}
else
if
(
criteria
.
getStatus
()
==
2
)
{
query
.
addCriteria
(
Criteria
.
where
(
"status"
).
ne
(
LITEORDER_STATUS
.
CLOSED
));
}
}
PageData
<
LiteOrder
>
orderList
=
liteOrderManager
.
findByPage
(
query
,
pageable
);
PageData
<
OrderDto
>
resultList
=
orderMapper
.
toDto
(
orderList
);
return
resultList
;
}
//
@ApiOperation
(
"工单详情"
)
@GetMapping
(
"/detial"
)
@PreAuthorize
(
"@el.check('workOrder:detial')"
)
@AnonymousAccess
public
OrderDto
detial
(
@RequestParam
(
required
=
false
)
String
id
,
@RequestParam
(
required
=
false
)
String
orderNo
)
{
if
(!
ObjectUtils
.
isEmpty
(
id
))
{
LiteOrder
liteOrder
=
liteOrderManager
.
get
(
id
);
if
(
liteOrder
!=
null
)
{
OrderDto
dto
=
orderMapper
.
toDto
(
liteOrder
);
dto
.
setOrderItems
(
orderItemMapper
.
toDto
(
liteOrder
.
getOrderItems
()));
return
dto
;
}
}
else
if
(!
ObjectUtils
.
isEmpty
(
orderNo
))
{
LiteOrder
liteOrder
=
liteOrderManager
.
findByOrderNo
(
orderNo
);
if
(
liteOrder
!=
null
)
{
OrderDto
dto
=
orderMapper
.
toDto
(
liteOrder
);
dto
.
setOrderItems
(
orderItemMapper
.
toDto
(
liteOrder
.
getOrderItems
()));
return
dto
;
}
}
throw
new
ValidateException
(
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"orderNo"
});
}
@ApiOperation
(
"上传工单"
)
@ApiOperation
(
"上传工单"
)
@PostMapping
(
value
=
"/upload"
)
@PostMapping
(
value
=
"/upload"
)
@AnonymousAccess
@AnonymousAccess
...
@@ -221,73 +288,6 @@ public class OrderController {
...
@@ -221,73 +288,6 @@ public class OrderController {
}
}
}
}
@ApiOperation
(
"查询工单"
)
@GetMapping
@PreAuthorize
(
"@el.check('workOrder')"
)
public
PageData
<
OrderDto
>
query
(
OrderQueryCondition
criteria
,
Pageable
pageable
)
{
User
user
=
userManager
.
findByUserName
(
SecurityUtils
.
getCurrentUsername
());
if
(
user
!=
null
)
{
//数据权限 查找没有权限的组列表
if
(!
user
.
getIsAdmin
())
{
Set
<
String
>
groupIds
=
user
.
getGroups
();
List
<
String
>
excludeSources
=
Lists
.
newArrayList
();
List
<
Group
>
groups
=
groupManager
.
findAll
();
for
(
Group
group
:
groups
)
{
if
(
groupIds
.
contains
(
group
.
getId
())){
continue
;
}
excludeSources
.
add
(
group
.
getGroupName
());
}
// //都没有权限,返回空
// if (ObjectUtils.isEmpty(groupNames)) {
// return new PageData<>(Lists.newArrayList(), 0);
// }
criteria
.
setExcludeSourceList
(
excludeSources
);
}
}
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
if
(
criteria
.
getStatus
()
!=
null
)
{
if
(
criteria
.
getStatus
()
==
1
)
{
query
.
addCriteria
(
Criteria
.
where
(
"status"
).
is
(
LITEORDER_STATUS
.
CLOSED
));
}
else
if
(
criteria
.
getStatus
()
==
2
)
{
query
.
addCriteria
(
Criteria
.
where
(
"status"
).
ne
(
LITEORDER_STATUS
.
CLOSED
));
}
}
PageData
<
LiteOrder
>
orderList
=
liteOrderManager
.
findByPage
(
query
,
pageable
);
PageData
<
OrderDto
>
resultList
=
orderMapper
.
toDto
(
orderList
);
return
resultList
;
}
//
@ApiOperation
(
"工单详情"
)
@GetMapping
(
"/detial"
)
@PreAuthorize
(
"@el.check('workOrder:detial')"
)
@AnonymousAccess
public
OrderDto
detial
(
@RequestParam
(
required
=
false
)
String
id
,
@RequestParam
(
required
=
false
)
String
orderNo
)
{
if
(!
ObjectUtils
.
isEmpty
(
id
))
{
LiteOrder
liteOrder
=
liteOrderManager
.
get
(
id
);
if
(
liteOrder
!=
null
)
{
OrderDto
dto
=
orderMapper
.
toDto
(
liteOrder
);
dto
.
setOrderItems
(
orderItemMapper
.
toDto
(
liteOrder
.
getOrderItems
()));
return
dto
;
}
}
else
if
(!
ObjectUtils
.
isEmpty
(
orderNo
))
{
LiteOrder
liteOrder
=
liteOrderManager
.
findByOrderNo
(
orderNo
);
if
(
liteOrder
!=
null
)
{
OrderDto
dto
=
orderMapper
.
toDto
(
liteOrder
);
dto
.
setOrderItems
(
orderItemMapper
.
toDto
(
liteOrder
.
getOrderItems
()));
return
dto
;
}
}
throw
new
ValidateException
(
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"orderNo"
});
}
@ApiOperation
(
"修改工单数量"
)
@ApiOperation
(
"修改工单数量"
)
@PostMapping
(
value
=
"/updateNum"
)
@PostMapping
(
value
=
"/updateNum"
)
...
@@ -340,7 +340,7 @@ public class OrderController {
...
@@ -340,7 +340,7 @@ public class OrderController {
if
(
param
.
getId
()
==
null
)
{
if
(
param
.
getId
()
==
null
)
{
throw
new
ValidateException
(
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"orderNo"
});
throw
new
ValidateException
(
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"orderNo"
});
}
}
if
(
param
.
getLine
()
==
null
)
{
if
(
param
.
get
Work
Line
()
==
null
)
{
throw
new
ValidateException
(
"smfcore.order.lineCanotNull"
,
"线别不能为空"
);
throw
new
ValidateException
(
"smfcore.order.lineCanotNull"
,
"线别不能为空"
);
}
}
...
@@ -352,89 +352,11 @@ public class OrderController {
...
@@ -352,89 +352,11 @@ public class OrderController {
if
(!
order
.
isNew
())
{
if
(!
order
.
isNew
())
{
throw
new
ValidateException
(
"smfcore.order.cannotUpdateLine"
,
"工单已出库,不能修改线别"
);
throw
new
ValidateException
(
"smfcore.order.cannotUpdateLine"
,
"工单已出库,不能修改线别"
);
}
}
order
.
set
Line
(
param
.
get
Line
());
order
.
set
WorkLine
(
param
.
getWork
Line
());
liteOrderManager
.
save
(
order
);
liteOrderManager
.
save
(
order
);
liteOrderCache
.
addOrderToMap
(
order
);
liteOrderCache
.
addOrderToMap
(
order
);
return
ResultBean
.
newOkResult
(
orderMapper
.
toDto
(
order
));
return
ResultBean
.
newOkResult
(
orderMapper
.
toDto
(
order
));
}
}
// protected Map<String ,List<LiteOrderItem>> handleOrderCsv(String fileName,String fileURL) {
// try {
// fileName=fileName.replace(".csv","");
// log.info("开始更解析上传的工单");
// Map<String ,List<LiteOrderItem>> itemMap=new HashMap<>();
// List<LiteOrderItem> items = Lists.newArrayList();
//
// OrderSetting orderSetting = dataCache.getOrderSetting();
//
// CsvReader csvRead = CsvReader.newReader(fileURL,"PN", orderSetting.getPn());
// int partNumberIndex = csvRead.getIndex("PN", orderSetting.getPn());
// int qtyIndex = csvRead.getIndex("QTY", orderSetting.getQty());
// int feederIndex = csvRead.getIndex("FEEDER", orderSetting.getFeeder());
// int riIndex = csvRead.getIndex("RI",orderSetting.getRi());
// int soIndex = csvRead.getIndex("SO", orderSetting.getSo());
//
// int row = 1;
// int newRowCount = 0;
// int updateRowCount = 0;
//
// while (csvRead.readRecord()) {
// row++;
// String[] lineValues = csvRead.getValues();
// String partNumber = lineValues[partNumberIndex];
// String ri="";
// if(riIndex!=-1){
// ri=lineValues[riIndex];
// }
// if (partNumber.isEmpty()&&ri.isEmpty()) {
// log.warn("行[partNumber=" + partNumber + "]中PN和RI都 为空,此行忽略");
// } else {
// int num = 1;
// if (qtyIndex != -1) {
// String numStr = lineValues[qtyIndex];
// if (Strings.isNotBlank(numStr)) {
// try {
// num = Integer.valueOf(numStr);
// } catch (Exception e) {
// log.error(partNumber + "的数量:" + numStr + " 不是数字,使用1");
// }
// }
// }
// String feeder = "";
// if (feederIndex != -1) {
// feeder = lineValues[feederIndex];
// }
// String so=fileName;
//
// if(soIndex!=-1){
// so=lineValues[soIndex];
// }
// if(!ObjectUtil.isNotEmpty(so)){
// so=fileName;
// }
// LiteOrderItem item = new LiteOrderItem();
// item.setPn(partNumber);
// if(partNumber.isEmpty()){
// item.setNeedReelCount(1);
// }
// item.setNeedNum(num);
//
// item.setFeederInfo(feeder);
// item.setRi(ri);
// if(!itemMap.containsKey(so)){
// itemMap.put(so,new ArrayList<LiteOrderItem>());
// }
// itemMap.get(so).add(item);
//
//
// items.add(item);
// }
// }
// return itemMap;
// } catch (Exception ex) {
// log.error("解析上传的工单出错:" + ex.toString());
// }
// return null;
// }
}
}
src/main/java/com/neotel/smfcore/core/order/rest/bean/dto/OrderDto.java
查看文件 @
baecefe
...
@@ -21,15 +21,34 @@ public class OrderDto implements Serializable {
...
@@ -21,15 +21,34 @@ public class OrderDto implements Serializable {
*/
*/
@ApiModelProperty
(
"工单号"
)
@ApiModelProperty
(
"工单号"
)
private
String
orderNo
;
private
String
orderNo
;
/**
* 当前任务盘数
@ApiModelProperty
(
"工单号/合单号"
)
*/
private
String
jobNo
;
@ApiModelProperty
(
"补料单号,如果有值表示此单为补料单"
)
private
String
replenishmentNo
;
@ApiModelProperty
(
"基地编号"
)
private
String
baseCode
;
@ApiModelProperty
(
"库位"
)
private
String
lgort
;
@ApiModelProperty
(
"产线"
)
private
String
workLine
;
@ApiModelProperty
(
"排程数量"
)
private
Integer
wemng
;
@ApiModelProperty
(
"开工时间"
)
private
Date
startDate
;
@ApiModelProperty
(
"完工时间"
)
private
Date
endDate
;
@ApiModelProperty
(
"当前任务盘数"
)
@ApiModelProperty
(
"当前任务盘数"
)
private
int
taskReelCount
=
0
;
private
int
taskReelCount
=
0
;
/**
* 当前任务已完成盘数
*/
@ApiModelProperty
(
"当前任务已完成盘数"
)
@ApiModelProperty
(
"当前任务已完成盘数"
)
private
int
finishedReelCount
=
0
;
private
int
finishedReelCount
=
0
;
...
@@ -51,9 +70,6 @@ public class OrderDto implements Serializable {
...
@@ -51,9 +70,6 @@ public class OrderDto implements Serializable {
@ApiModelProperty
(
"订单状态"
)
@ApiModelProperty
(
"订单状态"
)
private
int
status
=
LITEORDER_STATUS
.
NEW
;
private
int
status
=
LITEORDER_STATUS
.
NEW
;
/**
* 出库状态, 2表示已完成
*/
@ApiModelProperty
(
"出库状态, 2表示已完成"
)
@ApiModelProperty
(
"出库状态, 2表示已完成"
)
private
boolean
closed
=
false
;
private
boolean
closed
=
false
;
...
@@ -73,14 +89,14 @@ public class OrderDto implements Serializable {
...
@@ -73,14 +89,14 @@ public class OrderDto implements Serializable {
@ApiModelProperty
(
"订单的详细信息"
)
@ApiModelProperty
(
"订单的详细信息"
)
private
List
<
OrderItemDto
>
orderItems
;
private
List
<
OrderItemDto
>
orderItems
;
@ApiModelProperty
(
"建议出仓时间"
)
private
Date
sdate
=
new
Date
();
@ApiModelProperty
(
"创建时间"
)
@ApiModelProperty
(
"创建时间"
)
private
Date
createDate
=
new
Date
();
private
Date
createDate
=
new
Date
();
@ApiModelProperty
(
"工单线别"
)
// @ApiModelProperty("建议出仓时间")
private
String
line
=
""
;
// private Date sdate=new Date();
// @ApiModelProperty("工单线别")
// private String line = "";
}
}
src/main/java/com/neotel/smfcore/core/order/rest/bean/dto/OrderItemDto.java
查看文件 @
baecefe
...
@@ -11,14 +11,23 @@ public class OrderItemDto {
...
@@ -11,14 +11,23 @@ public class OrderItemDto {
@ApiModelProperty
(
value
=
"ID"
)
@ApiModelProperty
(
value
=
"ID"
)
private
String
id
;
private
String
id
;
@ApiModelProperty
(
"物料编
号"
)
@ApiModelProperty
(
value
=
"PN 物料
号"
)
private
String
pn
;
private
String
materialNo
;
@ApiModelProperty
(
"唯一码
"
)
@ApiModelProperty
(
value
=
"站位号
"
)
private
String
ri
;
private
String
station
;
@ApiModelProperty
(
"需求数量"
)
@ApiModelProperty
(
value
=
"需求数量"
)
private
int
needNum
=
0
;
private
Integer
qty
;
@ApiModelProperty
(
value
=
"超发标识[贵重物料](1是不允许超发,0是允许超发)"
)
private
Integer
overFlag
;
@ApiModelProperty
(
value
=
"发料增量"
)
private
Integer
increment
;
@ApiModelProperty
(
value
=
"移动原因"
)
private
String
reason
;
@ApiModelProperty
(
"需求料盘数"
)
@ApiModelProperty
(
"需求料盘数"
)
private
int
needReelCount
=
0
;
private
int
needReelCount
=
0
;
...
@@ -32,11 +41,19 @@ public class OrderItemDto {
...
@@ -32,11 +41,19 @@ public class OrderItemDto {
@ApiModelProperty
(
"订单信息"
)
@ApiModelProperty
(
"订单信息"
)
private
String
orderNo
=
""
;
private
String
orderNo
=
""
;
@ApiModelProperty
(
"站位信息"
)
private
String
feederInfo
=
""
;
@ApiModelProperty
(
"库存信息"
)
@ApiModelProperty
(
"库存信息"
)
@Transient
@Transient
private
int
inventoryNum
=
0
;
private
int
inventoryNum
=
0
;
// @ApiModelProperty("物料编号")
// private String pn;
// @ApiModelProperty("唯一码")
// private String ri;
//
// @ApiModelProperty("需求数量")
// private int needNum = 0;
//
// @ApiModelProperty("站位信息")
// private String feederInfo = "";
}
}
src/main/java/com/neotel/smfcore/core/order/rest/bean/query/OrderQueryCondition.java
查看文件 @
baecefe
...
@@ -11,7 +11,7 @@ import java.util.List;
...
@@ -11,7 +11,7 @@ import java.util.List;
@Data
@Data
public
class
OrderQueryCondition
{
public
class
OrderQueryCondition
{
@QueryCondition
(
blurry
=
"orderNo"
)
@QueryCondition
(
blurry
=
"orderNo
,jobNo,replenishmentNo
"
)
private
String
blurry
;
private
String
blurry
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
)
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
)
...
...
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderManagerImpl.java
查看文件 @
baecefe
...
@@ -69,8 +69,8 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
...
@@ -69,8 +69,8 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
liteOrderItem
=
liteOrderItemManager
.
save
(
liteOrderItem
);
liteOrderItem
=
liteOrderItemManager
.
save
(
liteOrderItem
);
items
.
add
(
liteOrderItem
);
items
.
add
(
liteOrderItem
);
}
}
if
(
liteOrder
.
getSDate
()==
null
){
if
(
liteOrder
.
getS
tart
Date
()==
null
){
liteOrder
.
setS
d
ate
(
new
Date
(
System
.
currentTimeMillis
()));
liteOrder
.
setS
tartD
ate
(
new
Date
(
System
.
currentTimeMillis
()));
}
}
liteOrder
=
save
(
liteOrder
);
liteOrder
=
save
(
liteOrder
);
liteOrder
.
setOrderItems
(
items
);
liteOrder
.
setOrderItems
(
items
);
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
查看文件 @
baecefe
...
@@ -4,6 +4,7 @@ import com.neotel.smfcore.common.base.BasePo;
...
@@ -4,6 +4,7 @@ import com.neotel.smfcore.common.base.BasePo;
import
com.neotel.smfcore.common.utils.StorageConstants
;
import
com.neotel.smfcore.common.utils.StorageConstants
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.order.enums.LITEORDER_STATUS
;
import
com.neotel.smfcore.core.order.enums.LITEORDER_STATUS
;
import
com.neotel.smfcore.hikvision.bean.HikOutInfo
;
import
lombok.Data
;
import
lombok.Data
;
import
org.springframework.data.annotation.Transient
;
import
org.springframework.data.annotation.Transient
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
org.springframework.data.mongodb.core.mapping.Document
;
...
@@ -25,7 +26,8 @@ public class LiteOrder extends BasePo implements Serializable {
...
@@ -25,7 +26,8 @@ public class LiteOrder extends BasePo implements Serializable {
this
.
type
=
2
;
this
.
type
=
2
;
for
(
LiteOrderItem
item
:
for
(
LiteOrderItem
item
:
orderItems
)
{
orderItems
)
{
if
(!
StringUtils
.
isEmpty
(
item
.
getPn
())
&&
(
StringUtils
.
isEmpty
(
item
.
getRi
())))
{
if
(!
StringUtils
.
isEmpty
(
item
.
getMaterialNo
()))
{
// if (!StringUtils.isEmpty(item.getPn()) && (StringUtils.isEmpty(item.getRi()))) {
this
.
type
=
1
;
this
.
type
=
1
;
break
;
break
;
}
}
...
@@ -37,10 +39,42 @@ public class LiteOrder extends BasePo implements Serializable {
...
@@ -37,10 +39,42 @@ public class LiteOrder extends BasePo implements Serializable {
* 需求单号
* 需求单号
*/
*/
private
String
orderNo
;
private
String
orderNo
;
/**
* jobNo String true 工单号/合单号[合并唯一]
*/
private
String
jobNo
;
/**
*replenishmentNo String false 补料单号,如果有值表示此单为补料单[合并唯一]
*/
private
String
replenishmentNo
;
/**
*baseCode String true 基地编号
*/
private
String
baseCode
;
/**
*lgort String true 库位
*/
private
String
lgort
;
/**
*workLine String true 产线
*/
private
String
workLine
;
/**
*wemng Integer true 排程数量
*/
private
Integer
wemng
;
/**
*startDate String true 开工时间
*/
private
Date
startDate
;
/**
/**
*
工单号
*
endDate String true 完工时间
*/
*/
private
String
so
;
private
Date
endDate
;
/**
/**
* 当前任务盘数
* 当前任务盘数
*/
*/
...
@@ -76,12 +110,6 @@ public class LiteOrder extends BasePo implements Serializable {
...
@@ -76,12 +110,6 @@ public class LiteOrder extends BasePo implements Serializable {
* 工单来源
* 工单来源
*/
*/
private
String
source
=
""
;
private
String
source
=
""
;
/**
* 线别,AGV运送时使用此值做为目的地
*/
private
String
line
=
""
;
/**
/**
* 任务完成时间(用于关闭页面显示)
* 任务完成时间(用于关闭页面显示)
*/
*/
...
@@ -104,10 +132,7 @@ public class LiteOrder extends BasePo implements Serializable {
...
@@ -104,10 +132,7 @@ public class LiteOrder extends BasePo implements Serializable {
@Transient
@Transient
private
List
<
LiteOrderItem
>
orderItems
;
private
List
<
LiteOrderItem
>
orderItems
;
/**
* 建议出仓时间
*/
private
Date
sdate
=
new
Date
();
public
void
setClosed
(
boolean
value
){
public
void
setClosed
(
boolean
value
){
this
.
closed
=
value
;
this
.
closed
=
value
;
...
@@ -208,13 +233,51 @@ public class LiteOrder extends BasePo implements Serializable {
...
@@ -208,13 +233,51 @@ public class LiteOrder extends BasePo implements Serializable {
}
}
return
orderTimes
;
return
orderTimes
;
}
}
public
Date
getStartDate
(){
public
Date
getSDate
(){
if
(
startDate
==
null
){
if
(
sdate
==
null
){
return
getCreateDate
();
return
getCreateDate
();
}
}
return
sdate
;
return
startDate
;
}
public
void
UpdateOutInfo
(
HikOutInfo
outInfo
){
//更改工单信息
this
.
setJobNo
(
outInfo
.
getJobNo
());
this
.
setReplenishmentNo
(
outInfo
.
getReplenishmentNo
());
this
.
setBaseCode
(
outInfo
.
getBaseCode
());
this
.
setLgort
(
outInfo
.
getLgort
());
this
.
setWorkLine
(
outInfo
.
getWorkLine
());
this
.
setStartDate
(
outInfo
.
getStartDate
());
this
.
setUpdateDate
(
new
Date
());
this
.
setEndDate
(
outInfo
.
getEndDate
());
this
.
setWemng
(
outInfo
.
getWemng
());
}
}
public
void
addOrderItems
(
LiteOrderItem
item
){
orderItems
.
add
(
item
);
}
// /**
// * 工单号
// */
// private String so;
// /**
// * 线别,AGV运送时使用此值做为目的地
// */
// private String line = "";
// /**
// * 建议出仓时间
// */
// private Date sdate=new Date();
// public Date getSDate(){
// if(sdate==null){
// return getCreateDate();
// }
// return sdate;
// }
}
}
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
查看文件 @
baecefe
...
@@ -9,22 +9,44 @@ import java.io.Serializable;
...
@@ -9,22 +9,44 @@ import java.io.Serializable;
@Data
@Data
@Document
@Document
public
class
LiteOrderItem
extends
BasePo
implements
Serializable
,
Comparable
<
LiteOrderItem
>
{
public
class
LiteOrderItem
extends
BasePo
implements
Serializable
,
Comparable
<
LiteOrderItem
>
{
/**
/**
*
物料编号
*
materialNo String true 物料号[详情]
*/
*/
private
String
pn
;
private
String
materialNo
;
/**
/**
*
唯一码
*
station String true 站位号
*/
*/
private
String
ri
;
private
String
station
;
/**
*qty Integer true 需求数量
*/
private
Integer
qty
;
/**
*overFlag Integer true 超发标识[贵重物料](1是不允许超发,0是允许超发)
*/
private
Integer
overFlag
;
/**
*increment Integer true 发料增量
*/
private
Integer
increment
;
/**
/**
*
总需求数量
*
reason String false 移动原因
*/
*/
private
int
needNum
=
0
;
private
String
reason
;
//
/**
* 唯一码
*/
private
String
ri
;
/**
/**
* 总需求料盘数
* 总需求料盘数
*/
*/
...
@@ -54,29 +76,12 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
...
@@ -54,29 +76,12 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
* 订单信息
* 订单信息
*/
*/
private
String
orderNo
=
""
;
private
String
orderNo
=
""
;
/**
* 站位编号,料架工单出库时,亮灯指引功能排序
*/
private
Integer
slotNum
=
0
;
/**
* 站位信息
*/
private
String
feederInfo
=
""
;
/**
* 库存信息
*/
@Transient
private
int
inventoryNum
=
0
;
/**
/**
* 出库是否满足要求,已出库数量大于需求数量
* 出库是否满足要求,已出库数量大于需求数量
*/
*/
public
boolean
isOutFinished
(){
public
boolean
isOutFinished
(){
return
outNum
-
needNum
>=
0
;
return
outNum
-
qty
>=
0
;
}
}
@Override
@Override
...
@@ -86,4 +91,34 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
...
@@ -86,4 +91,34 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
}
}
return
this
.
getId
().
compareTo
(
o
.
getId
());
return
this
.
getId
().
compareTo
(
o
.
getId
());
}
}
// /**
// * 物料编号 materialNo
// */
// private String pn;
//
//
// /**
// * 总需求数量 qty
// */
// private int needNum = 0;
//
// /**
// * 站位编号,料架工单出库时,亮灯指引功能排序
// */
// private Integer slotNum=0;
//
// /**
// * 站位信息
// */
// private String feederInfo = "";
//
// /**
// * 库存信息
// */
// @Transient
// private int inventoryNum = 0;
}
}
src/main/java/com/neotel/smfcore/core/order/util/OrderFileWatch.java
查看文件 @
baecefe
...
@@ -266,13 +266,13 @@ public class OrderFileWatch {
...
@@ -266,13 +266,13 @@ public class OrderFileWatch {
so
=
fileName
;
so
=
fileName
;
}
}
LiteOrderItem
item
=
new
LiteOrderItem
();
LiteOrderItem
item
=
new
LiteOrderItem
();
item
.
set
Pn
(
partNumber
);
item
.
set
MaterialNo
(
partNumber
);
if
(
partNumber
.
isEmpty
()){
if
(
partNumber
.
isEmpty
()){
item
.
setNeedReelCount
(
1
);
item
.
setNeedReelCount
(
1
);
}
}
item
.
set
NeedNum
(
num
);
item
.
set
Qty
(
num
);
item
.
set
FeederInfo
(
feeder
);
item
.
set
Station
(
feeder
);
item
.
setRi
(
ri
);
item
.
setRi
(
ri
);
if
(!
itemMap
.
containsKey
(
so
)){
if
(!
itemMap
.
containsKey
(
so
)){
itemMap
.
put
(
so
,
new
ArrayList
<
LiteOrderItem
>());
itemMap
.
put
(
so
,
new
ArrayList
<
LiteOrderItem
>());
...
...
src/main/java/com/neotel/smfcore/hella/handler/HellaServiceHandler.java
查看文件 @
baecefe
此文件的差异被折叠,
点击展开。
src/main/java/com/neotel/smfcore/hikvision/bean/HikOutInfo.java
0 → 100644
查看文件 @
baecefe
package
com
.
neotel
.
smfcore
.
hikvision
.
bean
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.util.Date
;
@Getter
@Setter
public
class
HikOutInfo
implements
Serializable
{
/**
* jobNo String true 工单号/合单号[合并唯一]
*/
private
String
jobNo
;
/**
*replenishmentNo String false 补料单号,如果有值表示此单为补料单[合并唯一]
*/
private
String
replenishmentNo
;
/**
*baseCode String true 基地编号
*/
private
String
baseCode
;
/**
*lgort String true 库位
*/
private
String
lgort
;
/**
*workLine String true 产线
*/
private
String
workLine
;
/**
*startDate String true 开工时间
*/
private
Date
startDate
;
/**
*endDate String true 完工时间
*/
private
Date
endDate
;
/**
* materialNo String true 物料号[详情]
*/
private
String
materialNo
;
/**
* station String true 站位号
*/
private
String
station
;
/**
*qty Integer true 需求数量
*/
private
Integer
qty
;
/**
*overFlag Integer true 超发标识[贵重物料](1是不允许超发,0是允许超发)
*/
private
Integer
overFlag
;
/**
*increment Integer true 发料增量
*/
private
Integer
increment
;
/**
*wemng Integer true 排程数量
*/
private
Integer
wemng
;
/**
*reason String false 移动原因
*/
private
String
reason
;
public
LiteOrderItem
crateOrderItem
(
String
orderNo
)
{
LiteOrderItem
item
=
new
LiteOrderItem
();
item
.
setOrderNo
(
orderNo
);
item
.
setStation
(
this
.
getStation
());
item
.
setMaterialNo
(
this
.
getMaterialNo
());
item
.
setQty
(
this
.
getQty
());
item
.
setOverFlag
(
this
.
getOverFlag
());
item
.
setIncrement
(
this
.
getIncrement
());
item
.
setReason
(
this
.
getReason
());
return
item
;
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论