Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 1523e274
由
zshaohui
编写于
2024-12-05 12:18:56 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.差异料功能提交
1 个父辈
9e7940a2
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
338 行增加
和
16 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.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/system/service/manager/IDataLogManager.java
src/main/java/com/neotel/smfcore/core/system/service/manager/impl/DataLogManagerImpl.java
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/bean/DifferentMaterial.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/DifferenceReelController.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/InnerBoxRestController.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/VirtualRestController.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/util/PreWarningItemCache.java
src/main/resources/config/application.yml
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
1523e27
...
...
@@ -334,6 +334,7 @@ public class LiteOrderCache {
liteOrderItem
.
setOutReelCount
(
liteOrderItem
.
getOutReelCount
()
+
1
);
liteOrderItem
.
setTotalOutNum
(
liteOrderItem
.
getTotalOutNum
()
+
task
.
getNum
());
liteOrderItem
.
setTotalOutReelCount
(
liteOrderItem
.
getTotalOutReelCount
()
+
1
);
liteOrderItem
.
setOutPn
(
task
.
getPartNumber
());
liteOrderItem
=
liteOrderItemManager
.
save
(
liteOrderItem
);
}
liteOrderItems
.
add
(
liteOrderItem
);
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
查看文件 @
1523e27
...
...
@@ -152,6 +152,9 @@ public class LiteOrder extends BasePo implements Serializable {
private
Date
finishDate
;
private
boolean
differenceReq
=
false
;
public
void
setClosed
(
boolean
value
){
this
.
closed
=
value
;
if
(
value
){
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
查看文件 @
1523e27
...
...
@@ -220,6 +220,13 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
private
Date
issuanceDate
;
/**
* 发料pn
*/
private
String
outPn
;
private
String
station
;
/**
* 出库是否满足要求,已出库数量大于需求数量
*/
public
boolean
isOutFinished
(){
...
...
src/main/java/com/neotel/smfcore/core/system/service/manager/IDataLogManager.java
查看文件 @
1523e27
...
...
@@ -20,4 +20,6 @@ public interface IDataLogManager extends IBaseManager<DataLog> {
int
countBySourceName
(
String
barcodeStr
,
String
orderNo
);
int
countByQuery
(
Query
subSourceId
);
DataLog
findOne
(
Query
with
);
}
src/main/java/com/neotel/smfcore/core/system/service/manager/impl/DataLogManagerImpl.java
查看文件 @
1523e27
...
...
@@ -129,4 +129,9 @@ public class DataLogManagerImpl implements IDataLogManager {
public
int
countByQuery
(
Query
query
)
{
return
dataLogDao
.
countByQuery
(
query
);
}
@Override
public
DataLog
findOne
(
Query
query
)
{
return
dataLogDao
.
findOne
(
query
);
}
}
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
查看文件 @
1523e27
...
...
@@ -10,16 +10,20 @@ import com.neotel.smfcore.common.exception.ApiException;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.HttpHelper
;
import
com.neotel.smfcore.common.utils.JsonUtil
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.api.listener.BaseSmfApiListener
;
import
com.neotel.smfcore.core.api.listener.DefaultSmfApiListener
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.enums.OP
;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.system.service.manager.IDataLogManager
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.custom.lizhen.agvBox.bean.GrLabel
;
import
com.neotel.smfcore.custom.lizhen.innerBox.bean.PreWarningItem
;
...
...
@@ -27,6 +31,9 @@ import com.neotel.smfcore.custom.lizhen.innerBox.util.PreWarningItemCache;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Service
;
...
...
@@ -45,6 +52,9 @@ public class LizhenApi extends DefaultSmfApiListener {
@Autowired
private
DataCache
dataCache
;
@Autowired
private
IDataLogManager
dataLogManager
;
@Value
(
"${api.fetchGRUrl}"
)
private
String
fetchGRUrl
;
...
...
@@ -72,6 +82,15 @@ public class LizhenApi extends DefaultSmfApiListener {
@Value
(
"${api.getInDateUrl}"
)
private
String
getInDateUrl
=
""
;
@Value
(
"${api.save2DReelInfoUrl}"
)
private
String
save2DReelInfoUrl
=
""
;
@Value
(
"${api.commonGIRecordUrl}"
)
private
String
commonGIRecordUrl
=
""
;
@Value
(
"${api.commonRMRecordUrl}"
)
private
String
commonRMRecordUrl
=
""
;
@PostConstruct
public
void
init
(){
fetchGRUrl
=
dataCache
.
getConfigCache
(
"fetchGRUrl"
,
fetchGRUrl
);
...
...
@@ -298,10 +317,19 @@ public class LizhenApi extends DefaultSmfApiListener {
*/
@Override
public
void
inTaskStatusChange
(
String
inNotifyUrl
,
DataLog
task
)
{
if
(!
task
.
isFinished
()){
return
;
if
(
task
.
isFinished
()){
//DataLog oldTask = dataLogManager.findOne(new Query(Criteria.where("barcode").is(task.getBarcode()).and("type").is(OP.CHECKOUT)
// .and("status").is(OP_STATUS.FINISHED.name()).and("createDate").lte(new Date())).with(Sort.by(Sort.Direction.DESC, "createDate")));
//if (oldTask == null) {
// log.info(task.getBarcode()+"为新料,调用save2ReelInfo接口");
reelInToTower
(
task
);
// } else {
// log.info(task.getBarcode()+"为旧料,调用RMRecord接口");
reelReturnTower
(
task
);
// }
}
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
/*Map<String, Object> dataMap = new HashMap<>();
dataMap.put("pickingid", "");
dataMap.put("wo", "");
dataMap.put("reelno", task.getBarcode());
...
...
@@ -326,7 +354,7 @@ public class LizhenApi extends DefaultSmfApiListener {
} catch (ApiException e) {
e.printStackTrace();
log.info(barcode.getBarcode()+"保存物料异常:"+e.getMessage());
}
}
*/
}
/**
...
...
@@ -338,7 +366,11 @@ public class LizhenApi extends DefaultSmfApiListener {
@Override
public
void
outTaskStatusChange
(
String
outNotifyUrl
,
DataLog
task
)
{
if
(
task
.
getBarcode
().
startsWith
(
"CS"
)
if
(
task
.
isFinished
())
{
reelOutFromTower
(
task
);
}
/* if (task.getBarcode().startsWith("CS")
|| task.getBarcode().startsWith("CM")
|| task.getBarcode().startsWith("CB")) {
return;
...
...
@@ -391,7 +423,7 @@ public class LizhenApi extends DefaultSmfApiListener {
e.printStackTrace();
log.info(task.getBarcode() + "保存物料异常:" + e.getMessage());
}
}
}
*/
}
...
...
@@ -632,6 +664,110 @@ public class LizhenApi extends DefaultSmfApiListener {
}
}
private
void
reelInToTower
(
DataLog
task
)
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"pickingid"
,
""
);
dataMap
.
put
(
"wo"
,
""
);
dataMap
.
put
(
"reelno"
,
task
.
getBarcode
());
dataMap
.
put
(
"ipn"
,
task
.
getPartNumber
());
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
task
.
getBarcode
());
if
(
barcode
!=
null
)
{
dataMap
.
put
(
"qty"
,
barcode
.
getAmount
());
dataMap
.
put
(
"datecode"
,
barcode
.
getDateCode
());
dataMap
.
put
(
"lot"
,
barcode
.
getBatch
());
dataMap
.
put
(
"vendor"
,
barcode
.
getProvider
());
dataMap
.
put
(
"batch"
,
""
);
dataMap
.
put
(
"vendorcode"
,
barcode
.
getProviderNumber
());
}
dataMap
.
put
(
"werks"
,
"W339"
);
dataMap
.
put
(
"reelid"
,
""
);
String
param
=
JsonUtil
.
toJsonStr
(
Arrays
.
asList
(
dataMap
));
log
.
info
(
barcode
.
getBarcode
()+
"保存物料入参为:"
+
param
+
"地址为:"
+
save2DReelInfoUrl
);
try
{
String
result
=
HttpHelper
.
postJson
(
save2DReelInfoUrl
,
Arrays
.
asList
(
dataMap
));
log
.
info
(
barcode
.
getBarcode
()+
"保存物料出参为:"
+
result
);
}
catch
(
ApiException
e
)
{
e
.
printStackTrace
();
log
.
info
(
barcode
.
getBarcode
()
+
"保存物料异常:"
+
e
.
getMessage
());
}
}
private
void
reelReturnTower
(
DataLog
oldTask
)
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"line"
,
oldTask
.
getLine
());
dataMap
.
put
(
"reel_id"
,
oldTask
.
getBarcode
());
//dataMap.put("rm_type", 2);
//Storage storage = dataCache.getStorageById(oldTask.getStorageId());
//if (storage.isVirtual()) {
dataMap
.
put
(
"rm_type"
,
2
);
//}
dataMap
.
put
(
"ipn"
,
oldTask
.
getPartNumber
());
dataMap
.
put
(
"qty"
,
oldTask
.
getNum
());
dataMap
.
put
(
"vendor_name"
,
oldTask
.
getProvider
());
dataMap
.
put
(
"date_code"
,
oldTask
.
getDateCode
());
dataMap
.
put
(
"lot"
,
oldTask
.
getBatchId
());
dataMap
.
put
(
"create_empno"
,
StringUtils
.
isEmpty
(
SecurityUtils
.
getLoginUsername
())
?
"虚拟仓"
:
SecurityUtils
.
getLoginUsername
());
Date
date
=
new
Date
();
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
);
format
.
setTimeZone
(
TimeZone
.
getTimeZone
(
"UTC"
));
// 设置为UTC时间
String
nowDateStr
=
format
.
format
(
date
);
dataMap
.
put
(
"create_time"
,
nowDateStr
);
String
param
=
JsonUtil
.
toJsonStr
(
Arrays
.
asList
(
dataMap
)
+
"地址为:"
+
commonRMRecordUrl
);
log
.
info
(
oldTask
.
getBarcode
()
+
"调用退料接口:"
+
param
);
try
{
String
result
=
HttpHelper
.
postJson
(
commonRMRecordUrl
,
Arrays
.
asList
(
dataMap
));
log
.
info
(
oldTask
.
getBarcode
()
+
"退料出参为:"
+
result
);
}
catch
(
ApiException
e
)
{
e
.
printStackTrace
();
log
.
info
(
oldTask
.
getBarcode
()
+
"退料异常:"
+
e
.
getMessage
());
}
}
private
void
reelOutFromTower
(
DataLog
task
)
{
List
<
Map
<
String
,
Object
>>
paramList
=
new
ArrayList
<>();
Storage
storage
=
null
;
for
(
Storage
stor
:
dataCache
.
getAllStorage
().
values
())
{
if
(
stor
.
isVirtual
()){
storage
=
stor
;
break
;
}
}
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"line"
,
task
.
getLine
());
paramMap
.
put
(
"mc_id"
,
storage
.
getName
());
paramMap
.
put
(
"reel_id"
,
task
.
getBarcode
());
paramMap
.
put
(
"ipn"
,
task
.
getPartNumber
());
paramMap
.
put
(
"qty"
,
task
.
getNum
());
//发料类型(0:智能仓1:虚拟仓2:物料预警3:手动发料)
int
type
=
0
;
if
(
StringUtils
.
isNotEmpty
(
task
.
getSourceId
()))
{
type
=
2
;
}
else
{
if
(
storage
.
isVirtual
())
{
type
=
1
;
}
else
{
type
=
3
;
}
}
paramMap
.
put
(
"gi_type"
,
type
);
paramMap
.
put
(
"create_empno"
,
StringUtils
.
isEmpty
(
task
.
getCreator
())
?
"System"
:
task
.
getCreator
());
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
);
paramMap
.
put
(
"create_time"
,
sdf
.
format
(
task
.
getCreateDate
()));
paramList
.
add
(
paramMap
);
log
.
info
(
"出库通知入参为:"
+
JSON
.
toJSONString
(
paramList
)+
"地址为:"
+
commonGIRecordUrl
);
try
{
String
result
=
HttpHelper
.
postJson
(
commonGIRecordUrl
,
paramList
);
log
.
info
(
task
.
getBarcode
()
+
"出入库通知返回结果为:"
+
result
);
}
catch
(
ApiException
e
)
{
e
.
printStackTrace
();
log
.
error
(
task
.
getBarcode
()
+
"出入库通知异常:"
+
e
.
getMessage
());
}
}
@Override
public
boolean
isForThisApi
(
String
apiName
)
{
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/bean/DifferentMaterial.java
0 → 100644
查看文件 @
1523e27
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
innerBox
.
bean
;
import
lombok.Data
;
@Data
public
class
DifferentMaterial
{
/**
* wo;//工单
* mc;//机台
* ipn;//物料
* zone;//站位
* gidLineSide;//线_Line_面
*/
private
String
mo
;
private
String
mc
;
private
String
ipn
;
private
String
zone
;
private
String
gidLineSide
;
/*
[
{
"wo": "030000248583",
"mc": "NPM-2",
"ipn": "377S00070",
"zone": "1-07-L",
"gidLineSide": "A05-5FRF-01_1A_B"
},
{
"wo": "030000248583",
"mc": "NPM-2",
"ipn": "117S00069$YA0A01B5",
"zone": "1-08-L",
"gidLineSide": "A05-5FRF-01_1A_B"
},
{
"wo": "030000248583",
"mc": "NPM-2",
"ipn": "N/A",
"zone": "1-10",
"gidLineSide": "A05-5FRF-01_1B_T"
}
]
*/
}
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/DifferenceReelController.java
0 → 100644
查看文件 @
1523e27
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
innerBox
.
rest
;
import
com.alibaba.fastjson.JSONObject
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderManager
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
com.neotel.smfcore.custom.lizhen.innerBox.bean.DifferentMaterial
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Slf4j
@RestController
public
class
DifferenceReelController
{
@Autowired
private
ILiteOrderManager
liteOrderManager
;
@Autowired
private
LiteOrderCache
liteOrderCache
;
@ApiOperation
(
"工单差异料上传"
)
@RequestMapping
(
"/api/Mes/differenceReel"
)
@AnonymousAccess
public
synchronized
String
differenceReel
(
@RequestBody
List
<
DifferentMaterial
>
differentMaterialList
)
{
log
.
info
(
"收到mes的差异料数据为:"
+
JSONObject
.
toJSONString
(
differentMaterialList
));
List
<
LiteOrderItem
>
itemList
=
new
ArrayList
<>();
for
(
DifferentMaterial
differentMaterial
:
differentMaterialList
)
{
String
mo
=
differentMaterial
.
getMo
();
String
mc
=
differentMaterial
.
getMc
();
String
ipn
=
differentMaterial
.
getIpn
();
if
(
StringUtils
.
isEmpty
(
ipn
)){
continue
;
}
String
zone
=
differentMaterial
.
getZone
();
String
gidLineSide
=
differentMaterial
.
getGidLineSide
();
String
[]
gidLineSideS
=
gidLineSide
.
split
(
"_"
);
if
(
gidLineSideS
.
length
<
3
){
return
gidLineSide
+
"格式不正确"
;
}
String
line
=
gidLineSideS
[
0
];
String
side
=
gidLineSideS
[
2
];
LiteOrderItem
item
=
new
LiteOrderItem
();
item
.
setMo
(
mo
);
item
.
setMachineName
(
mc
);
item
.
setPn
(
ipn
);
item
.
setStation
(
zone
);
item
.
setTableNo
(
zone
);
item
.
setLine
(
line
);
item
.
setSide
(
side
);
item
.
setNeedNum
(
1
);
item
.
setNeedReelCount
(
1
);
itemList
.
add
(
item
);
}
if
(
itemList
!=
null
&&
!
itemList
.
isEmpty
()){
Map
<
String
,
List
<
LiteOrderItem
>>
itemMap
=
itemList
.
stream
().
collect
(
Collectors
.
groupingBy
(
LiteOrderItem:
:
getLine
));
for
(
String
line
:
itemMap
.
keySet
())
{
List
<
LiteOrderItem
>
item
=
itemMap
.
get
(
line
);
LiteOrder
liteOrder
=
new
LiteOrder
();
liteOrder
.
setOrderNo
(
System
.
currentTimeMillis
()+
"差异料"
);
liteOrder
.
setLine
(
line
);
liteOrder
.
setTotalTaskReelCount
(
item
.
size
());
liteOrder
.
setOrderItems
(
item
);
liteOrder
.
setDifferenceReq
(
true
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
}
}
return
""
;
}
}
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/InnerBoxRestController.java
查看文件 @
1523e27
...
...
@@ -574,7 +574,7 @@ public class InnerBoxRestController {
//判断料号是否一致
String
partNumber
=
codeBean
.
getBarcode
().
getPartNumber
();
if
(!
orderItem
.
getPn
().
equal
s
(
partNumber
))
{
if
(!
orderItem
.
getPn
().
contain
s
(
partNumber
))
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"请核实手动补料的料号:"
+
partNumber
+
"与工单需求料号:"
+
orderItem
.
getPn
()
+
"是否一致"
);
}
...
...
@@ -603,6 +603,7 @@ public class InnerBoxRestController {
dataLog
.
setNum
(
barcode
.
getAmount
());
dataLog
.
setType
(
OP
.
CHECKOUT
);
dataLog
.
setExtendType
(
ExtendType
.
MANUAL_FEEDING
);
//手动喂料
dataLog
.
setLine
(
liteOrder
.
getLine
());
//dataLog.setPosName("人工");
//判断虚拟仓有没有,如果有,则删除库位
...
...
@@ -679,7 +680,7 @@ public class InnerBoxRestController {
}
boolean
hasItem
=
false
;
for
(
LiteOrderItem
orderItem
:
order
.
getOrderItems
())
{
if
(
barcode
.
getPartNumber
().
equals
(
orderItem
.
getPn
()))
{
if
(
orderItem
.
getPn
().
contains
(
barcode
.
getPartNumber
()))
{
//判断供应商是否相同
if
(
StringUtils
.
isNotBlank
(
orderItem
.
getBrand
()))
{
if
(!
barcode
.
getProvider
().
equals
(
orderItem
.
getBrand
()))
{
...
...
@@ -703,9 +704,13 @@ public class InnerBoxRestController {
dataLog
.
setSubSourceId
(
orderItem
.
getId
());
dataLog
.
setPartNumber
(
barcode
.
getPartNumber
());
dataLog
.
setProviderNumber
(
barcode
.
getProviderNumber
());
dataLog
.
setProvider
(
barcode
.
getProvider
());
dataLog
.
setDateCode
(
barcode
.
getDateCode
());
dataLog
.
setNum
(
barcode
.
getAmount
());
dataLog
.
setBatchInfo
(
barcode
.
getBatch
());
dataLog
.
setType
(
OP
.
CHECKOUT
);
dataLog
.
setExtendType
(
ExtendType
.
MANUAL_FEEDING
);
//手动喂料
dataLog
.
setLine
(
order
.
getLine
());
//dataLog.setPosName("人工");
//判断虚拟仓有没有,如果有,则删除库位
...
...
@@ -898,7 +903,7 @@ public class InnerBoxRestController {
}
}
//resultMap.put("barcode", dataLog.getBarcode());
resultMap
.
put
(
"pn"
,
liteOrderItem
.
getPn
());
resultMap
.
put
(
"pn"
,
liteOrderItem
.
get
Out
Pn
());
resultMap
.
put
(
"station"
,
liteOrderItem
.
getTableNo
());
resultMap
.
put
(
"side"
,
liteOrderItem
.
getSide
());
resultMap
.
put
(
"hSerial"
,
liteOrder
.
getOrderNo
());
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/VirtualRestController.java
查看文件 @
1523e27
...
...
@@ -90,7 +90,7 @@ public class VirtualRestController {
@ApiOperation
(
"虚拟入库"
)
@RequestMapping
(
"/virtual/putIn"
)
public
synchronized
ResultBean
putIn
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
public
ResultBean
putIn
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
String
posName
=
paramMap
.
get
(
"posName"
);
String
code
=
paramMap
.
get
(
"code"
);
String
newCode
=
code
.
toUpperCase
();
...
...
@@ -185,7 +185,7 @@ public class VirtualRestController {
@ApiOperation
(
"执行过的工单信息"
)
@RequestMapping
(
"/getNoFinishedOrder"
)
@RequestMapping
(
"/
virtual/
getNoFinishedOrder"
)
@AnonymousAccess
private
ResultBean
getNoFinishedOrder
()
{
List
<
LiteOrderItem
>
results
=
new
ArrayList
<>();
...
...
@@ -208,6 +208,12 @@ public class VirtualRestController {
@RequestMapping
(
"/vitual/checkout"
)
private
ResultBean
checkout
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
String
code
=
paramMap
.
get
(
"code"
);
String
line
=
paramMap
.
get
(
"line"
);
if
(
StringUtils
.
isEmpty
(
line
)){
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"线体不能为空"
);
}
String
newCode
=
code
.
toUpperCase
();
//开始解析code
CodeBean
codeBean
=
codeResolve
.
resolveSingleCode
(
"=1x1="
+
newCode
);
...
...
@@ -231,6 +237,11 @@ public class VirtualRestController {
}
else
{
dataLog
.
setExtendType
(
ExtendType
.
STORAGE_CHECKOUT
);
//手动出库
}
dataLog
.
setLine
(
line
);
dataLog
.
setDateCode
(
barcode
.
getDateCode
());
dataLog
.
setProvider
(
barcode
.
getProvider
());
dataLog
.
setProviderNumber
(
barcode
.
getProviderNumber
());
dataLog
.
setBatchId
(
barcode
.
getBatch
());
barcodeManager
.
delete
(
barcode
);
taskService
.
updateFinishedTask
(
dataLog
);
taskService
.
removeFinishedTask
(
dataLog
);
...
...
@@ -246,6 +257,11 @@ public class VirtualRestController {
dataLog
.
setProviderNumber
(
barcode
.
getProviderNumber
());
dataLog
.
setNum
(
barcode
.
getAmount
());
dataLog
.
setType
(
OP
.
CHECKOUT
);
dataLog
.
setLine
(
line
);
dataLog
.
setDateCode
(
barcode
.
getDateCode
());
dataLog
.
setProvider
(
barcode
.
getProvider
());
//dataLog.setProviderNumber(barcode.getProviderNumber());
dataLog
.
setBatchId
(
barcode
.
getBatch
());
//dataLog.setPosName("人工");
dataLog
.
setExtendType
(
ExtendType
.
MANUAL_CHECKOUT
);
//手动出库
taskService
.
updateFinishedTask
(
dataLog
);
...
...
@@ -382,7 +398,7 @@ public class VirtualRestController {
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
error
(
"导入失败:"
+
e
.
getMessage
()
);
log
.
error
(
"导入失败:"
,
e
);
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"导入失败:"
+
e
.
getMessage
());
}
return
ResultBean
.
newOkResult
(
null
);
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/util/PreWarningItemCache.java
查看文件 @
1523e27
...
...
@@ -18,6 +18,7 @@ import org.springframework.data.mongodb.core.query.Query;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.concurrent.CopyOnWriteArrayList
;
import
java.util.stream.Collectors
;
...
...
@@ -76,6 +77,9 @@ public class PreWarningItemCache {
if
(
queueItemList
==
null
||
queueItemList
.
isEmpty
())
{
return
;
}
queueItemList
=
queueItemList
.
stream
().
sorted
(
Comparator
.
comparing
(
PreWarningItem
::
getCreateDate
)).
collect
(
Collectors
.
toList
());
for
(
PreWarningItem
preWarningItem
:
queueItemList
)
{
String
itemLine
=
preWarningItem
.
getLine
();
if
(
Strings
.
isNotBlank
(
itemLine
))
{
...
...
@@ -142,6 +146,7 @@ public class PreWarningItemCache {
orderItem
.
setReel
(
item
.
getReel
());
orderItem
.
setBrand
(
item
.
getBrand
());
orderItems
.
add
(
orderItem
);
log
.
info
(
"生成的工单号为:"
+
liteOrder
.
getOrderNo
()+
",对应的id为:"
+
orderItem
.
getWarningItemId
());
}
}
if
(
orderItems
!=
null
&&
!
orderItems
.
isEmpty
())
{
...
...
@@ -182,7 +187,7 @@ public class PreWarningItemCache {
for
(
int
i
=
0
;
i
<
items
.
size
();
i
++)
{
PreWarningItem
item
=
items
.
get
(
i
);
Query
q
=
new
Query
();
Criteria
c
=
Criteria
.
where
(
"pn"
).
is
(
item
.
getPartnumber
()).
and
(
"warningItemId"
).
is
(
item
.
getItemId
());
Criteria
c
=
Criteria
.
where
/*("pn").is(item.getPartnumber()).and*/
(
"warningItemId"
).
is
(
item
.
getItemId
());
List
<
LiteOrderItem
>
orderItems
=
liteOrderItemManager
.
findByQuery
(
q
.
addCriteria
(
c
));
if
(
orderItems
!=
null
&&
!
orderItems
.
isEmpty
())
{
newItems
=
newItems
.
stream
().
filter
(
t
->
!
t
.
getItemId
().
equals
(
item
.
getItemId
())).
collect
(
Collectors
.
toList
());
...
...
src/main/resources/config/application.yml
查看文件 @
1523e27
...
...
@@ -5,9 +5,9 @@ api:
name
:
Lizhen
inCheckUrl
:
batchCheckUrl
:
outNotifyUrl
:
outNotifyUrl
:
1
outNotifyUrlPK
:
inNotifyUrl
:
inNotifyUrl
:
1
fetchOrderUrl
:
barcodeInfoUrl
:
fetchGRUrl
:
...
...
@@ -18,6 +18,12 @@ api:
plant
:
werks
:
outerFactory
:
#入库
save2DReelInfoUrl
:
http://10.68.27.68:8002/SmtAutoWH/Save2DReelInfo
#发料
commonGIRecordUrl
:
http://10.68.27.69:8002/Sct/CommonGIRecord
#退料
commonRMRecordUrl
:
http://10.68.27.68:8002/Sct/CommonRMRecord
#缺料预警对应的地址
lizhen
:
...
...
@@ -84,5 +90,5 @@ app:
type
:
"
"
menu
:
show
:
imDetailsReport,feeding,virWarehous
show
:
hide
:
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论