Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xnr-interface
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
heli_wms
xnr-interface
Commits
a4d2f116
Commit
a4d2f116
authored
Nov 30, 2019
by
tank.li@mushiny.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
启动+当前任务信息
parent
a018cdd7
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
93 additions
and
26 deletions
+93
-26
InboundController.java
...va/com/mushiny/heli/xnr/controller/InboundController.java
+1
-1
InboundService.java
...ain/java/com/mushiny/heli/xnr/service/InboundService.java
+66
-17
Sql_Table.java
src/main/java/com/mushiny/heli/xnr/service/Sql_Table.java
+23
-7
WMSService.java
src/main/java/com/mushiny/heli/xnr/service/WMSService.java
+3
-1
No files found.
src/main/java/com/mushiny/heli/xnr/controller/InboundController.java
View file @
a4d2f116
...
...
@@ -38,7 +38,7 @@ public class InboundController {
String
factory
=
CommonUtils
.
parseString
(
"factory"
,
data
);
String
section
=
CommonUtils
.
parseString
(
"section"
,
data
);
String
entryId
=
CommonUtils
.
parseString
(
"entryId"
,
data
);
//货架的货位
//货架的货位
P0000008AA01
String
containerId
=
CommonUtils
.
parseString
(
"containerId"
,
data
);
MessageDTO
dto
=
this
.
inboundService
.
store
(
skuId
,
stored
,
containerId
,
factory
,
section
,
entryId
);
return
ResponseEntity
.
ok
(
dto
);
...
...
src/main/java/com/mushiny/heli/xnr/service/InboundService.java
View file @
a4d2f116
...
...
@@ -120,10 +120,10 @@ public class InboundService {
}
Map
item
=
items
.
get
(
0
);
String
mID
=
CommonUtils
.
parseString
(
"ID"
,
item
);
//货位信息
Map
data
=
invs
.
get
(
0
);
String
uid
=
CommonUtils
.
parseString
(
"ID"
,
data
);
List
<
Map
>
lists
=
this
.
jdbcRepository
.
queryBySql
(
Sql_Table
.
SQL_QUERY_INV_SKU
,
mID
,
uid
);
List
<
Map
>
lists
=
this
.
jdbcRepository
.
queryBySql
(
Sql_Table
.
SQL_QUERY_INV_SKU
,
uid
,
mID
);
//是否存在记录
if
(
lists
.
isEmpty
()){
BaseBpo
baseBpo
=
new
BaseBpo
();
...
...
@@ -135,7 +135,7 @@ public class InboundService {
baseBpo
.
addKV
(
"UNITLOAD_ID"
,
uid
);
baseBpo
.
addKV
(
"RESERVED_AMOUNT"
,
0
);
baseBpo
.
addKV
(
"CLIENT_ID"
,
factory
);
baseBpo
.
addKV
(
"WAREHOUSE_ID"
,
section
);
baseBpo
.
addKV
(
"WAREHOUSE_ID"
,
factory
);
//TODO
this
.
jdbcRepository
.
insertBusinessObject
(
baseBpo
);
//end of 新增记录
}
else
{
...
...
@@ -242,7 +242,7 @@ public class InboundService {
//成功
MessageDTO
dto
=
MessageDTO
.
success
();
//查询是否为空
if
(
!
isLocked
(
stationName
)){
if
(
isLocked
(
stationName
)){
dto
.
setCODE
(
1
);
dto
.
setMESSAGE
(
"工作站被锁定或不存在,无法启动上架任务!"
);
return
dto
;
...
...
@@ -287,12 +287,13 @@ public class InboundService {
baseBpo
.
addKV
(
"ENTRYID"
,
entryId
);
baseBpo
.
addKV
(
"ENTRYPOSITIONID"
,
CommonUtils
.
parseString
(
"ID"
,
map
));
baseBpo
.
addKV
(
"POD_ID"
,
storageLocation
.
getPodId
());
baseBpo
.
addKV
(
"SKUID"
,
skuId
);
baseBpo
.
addKV
(
"POD_FACE"
,
storageLocation
.
getPodFace
());
baseBpo
.
addKV
(
"POD_LOCATE"
,
storageLocation
.
getLocate
());
baseBpo
.
addKV
(
"WORKSTATION_ID"
,
stationName
);
baseBpo
.
addKV
(
"PODINDEX"
,
storageLocation
.
getPodIndex
());
baseBpo
.
addKV
(
"AMOUNT"
,
CommonUtils
.
parseString
(
"AMOUNT"
,
map
));
baseBpo
.
addKV
(
"STATE"
,
Sql_Table
.
AVAILABLE
);
baseBpo
.
addKV
(
"STATE"
,
Sql_Table
.
NEW
);
baseBpo
.
addKV
(
"WAREHOUSE_ID"
,
CommonUtils
.
parseString
(
"WAREHOUSE_ID"
,
map
));
baseBpo
.
addKV
(
"SECTION_ID"
,
CommonUtils
.
parseString
(
"SECTION_ID"
,
map
));
//插入货架搬运任务 指令
...
...
@@ -326,7 +327,7 @@ public class InboundService {
String
podId
=
CommonUtils
.
parseString
(
"POD_ID"
,
map
);
String
workStation
=
CommonUtils
.
parseString
(
"WORKSTATION_ID"
,
map
);
List
<
Map
>
orderPosition
=
this
.
jdbcRepository
.
queryBySql
(
Sql_Table
.
SQL_QUERY_PODORDERS
,
podId
,
Sql_Table
.
AVAILABLE
);
,
podId
,
Sql_Table
.
NEW
);
//New Available Finish 没有Process
BaseBpo
baseBpo
=
new
BaseBpo
();
baseBpo
.
setTable
(
"RCS_TRIP"
);
String
tripId
=
CommonUtils
.
genUUID
();
...
...
@@ -339,12 +340,12 @@ public class InboundService {
baseBpo
.
addKV
(
"SECTION_ID"
,
CommonUtils
.
parseString
(
"SECTION_ID"
,
map
));
this
.
jdbcRepository
.
insertBusinessObject
(
baseBpo
);
//序号生成 从1开始
Map
<
String
,
Integer
>
index
=
this
.
genIndexMap
();
//
Map<String,Integer> index = this.genIndexMap();
for
(
int
j
=
0
;
j
<
orderPosition
.
size
();
j
++)
{
//如果存在RCS_TRIPPOSITION就不要再创建
Map
podOrder
=
orderPosition
.
get
(
j
);
String
needFace
=
CommonUtils
.
parseString
(
"POD_FACE"
,
map
);
int
sameFaceIndex
=
index
.
get
(
needFace
);
//
int sameFaceIndex = index.get(needFace);
String
tripPositionID
;
List
<
Map
>
tripPositions
=
existTripPosition
(
workStation
,
podId
,
needFace
);
if
(
tripPositions
.
isEmpty
())
{
...
...
@@ -364,9 +365,10 @@ public class InboundService {
}
Map
newValue
=
new
HashMap
();
newValue
.
put
(
"STATE"
,
Sql_Table
.
FINISH
);
//生成就结束了 是不是执行完看TRIPPOSITION_ID
newValue
.
put
(
"STATE"
,
Sql_Table
.
AVAILABLE
);
//生成就结束了 是不是执行完看TRIPPOSITION_ID
newValue
.
put
(
"TRIPPOSITION_ID"
,
tripPositionID
);
newValue
.
put
(
"TRIPPOSITION_ID"
,
tripPositionID
);
CommonUtils
.
modifyUselessInfo
(
newValue
);
Map
con
=
new
HashMap
();
con
.
put
(
"ID"
,
CommonUtils
.
parseString
(
"ID"
,
podOrder
));
...
...
@@ -386,7 +388,7 @@ public class InboundService {
}
private
List
<
Map
>
existTripPosition
(
String
workStation
,
String
podId
,
String
needFace
)
{
List
<
Map
>
datas
=
this
.
jdbcRepository
.
queryBy
Key
(
Sql_Table
.
SQL_QUERY_TRIPPOSITION
,
List
<
Map
>
datas
=
this
.
jdbcRepository
.
queryBy
Sql
(
Sql_Table
.
SQL_QUERY_TRIPPOSITION
,
needFace
,
workStation
,
podId
);
return
datas
;
}
...
...
@@ -444,11 +446,11 @@ public class InboundService {
Map
newValue
=
new
HashMap
();
newValue
.
put
(
"VERSION"
,
version
+
1
);
newValue
.
put
(
"ISCALLPOD"
,
Boolean
.
TRUE
);
newValue
.
put
(
"OPEATOR_ID"
,
"LISI"
);
newValue
.
put
(
"STAION_NAME"
,
"stowPod"
);
newValue
.
put
(
"OPE
R
ATOR_ID"
,
"LISI"
);
newValue
.
put
(
"STA
T
ION_NAME"
,
"stowPod"
);
Map
con
=
new
HashMap
();
con
.
put
(
"
WORKSTATION_
ID"
,
stationId
);
con
.
put
(
"ID"
,
stationId
);
con
.
put
(
"VERSION"
,
version
);
int
count
=
this
.
jdbcRepository
.
updateRecords
(
Sql_Table
.
TABLE_MD_WORKSTATION
,
newValue
,
con
);
...
...
@@ -486,16 +488,22 @@ public class InboundService {
return
dto
;
}
List
<
Map
>
datas
=
this
.
jdbcRepository
.
queryBySql
(
Sql_Table
.
SQL_QUERY_CURRENTPODTASK
,
Sql_Table
.
AVAILABLE
,
Sql_Table
.
PROCESS
,
Sql_Table
.
PROCESS
,
stationName
);
List
<
Map
>
datas
=
this
.
jdbcRepository
.
queryBySql
(
Sql_Table
.
SQL_QUERY_CURRENTPOD
,
stationName
);
//先找再工作站的货架
if
(
datas
.
isEmpty
()){
dto
.
put
(
"CODE"
,
1
);
dto
.
put
(
"MSG"
,
"没有找到当前在工作站的货架"
);
return
dto
;
}
//MD_POD.ID, MD_POD.POD_INDEX, MD_POD.TOWARD, MD_WORKSTATION.WORKING_FACE_ORIENTATION
Map
data
=
datas
.
get
(
0
);
Integer
pod_toward
=
CommonUtils
.
parseInteger
(
"TOWARD"
,
data
);
Integer
pod_index
=
CommonUtils
.
parseInteger
(
"POD_INDEX"
,
data
);
Integer
wsFace
=
CommonUtils
.
parseInteger
(
"WORKING_FACE_ORIENTATION"
,
data
);
String
podId
=
CommonUtils
.
parseString
(
"ID"
,
data
);
String
face
=
getFace
(
wsFace
,
pod_toward
);
/*`ID` varchar(255) NOT NULL,
`ENTRYID` varchar(255) NOT NULL,
`ENTRYPOSITIONID` varchar(255) NOT NULL,
...
...
@@ -505,7 +513,15 @@ public class InboundService {
`POD_LOCATE` varchar(255) NOT NULL,
`PODINDEX` int(11) DEFAULT NULL COMMENT '货架编号',
`STATE` varchar(255) COMMENT '状态',*/
String
skuId
=
CommonUtils
.
parseString
(
"SKUID"
,
data
);
//拼接后去找有没有要拣的任务单 WMS_INBOUND_PODORDER 根据 货架 面
List
<
Map
>
podTask
=
this
.
jdbcRepository
.
queryBySql
(
Sql_Table
.
SQL_QUERY_PODORDRTASK
,
podId
,
face
);
if
(
podTask
.
isEmpty
()){
dto
.
put
(
"CODE"
,
1
);
dto
.
put
(
"MSG"
,
"当前货架:POD:"
+
pod_index
+
" 没有上架任务,请释放"
);
return
dto
;
}
Map
podOrder
=
podTask
.
get
(
0
);
String
skuId
=
CommonUtils
.
parseString
(
"SKUID"
,
podOrder
);
List
<
Map
>
skus
=
this
.
jdbcRepository
.
queryBySql
(
Sql_Table
.
SQL_QUERYITEM_BYSKUNO
,
skuId
);
if
(
skus
.
isEmpty
()){
dto
.
put
(
"CODE"
,
1
);
...
...
@@ -514,9 +530,42 @@ public class InboundService {
}
Map
sku
=
skus
.
get
(
0
);
data
.
put
(
"SKUNAME"
,
CommonUtils
.
parseString
(
"NAME"
,
sku
));
data
.
putAll
(
podOrder
);
return
data
;
}
//ABCD 从上往下看
private
static
String
getFace
(
Integer
wsFace
,
Integer
pod_toward
)
{
if
(
wsFace
%
90
!=
0
||
pod_toward
%
90
!=
0
){
return
"A"
;
//默认A面
}
switch
(
pod_toward
){
case
0
:
return
"CDAB"
.
charAt
(
wsFace
/
90
)
+
""
;
case
90
:
return
"BCDA"
.
charAt
(
wsFace
/
90
)
+
""
;
case
180
:
return
"ABCD"
.
charAt
(
wsFace
/
90
)
+
""
;
default
:
return
"DABC"
.
charAt
(
wsFace
/
90
)+
""
;
//270
}
}
public
static
void
main
(
String
[]
args
)
{
/*System.out.println(getFace(0,0));
System.out.println(getFace(90,0));
System.out.println(getFace(180,0));
System.out.println(getFace(270,0));
System.out.println(getFace(0,90));
System.out.println(getFace(90,90));
System.out.println(getFace(180,90));
System.out.println(getFace(270,90));
System.out.println(getFace(0,180));
System.out.println(getFace(90,180));
System.out.println(getFace(180,180));
System.out.println(getFace(270,180));
System.out.println(getFace(0,270));
System.out.println(getFace(90,270));
System.out.println(getFace(180,270));
System.out.println(getFace(270,270));*/
}
public
Map
prePodTask
(
String
stationName
)
{
Map
dto
=
new
HashMap
();
...
...
src/main/java/com/mushiny/heli/xnr/service/Sql_Table.java
View file @
a4d2f116
...
...
@@ -39,12 +39,13 @@ public interface Sql_Table {
String
PROCESS
=
"Process"
;
String
ERROR
=
"Error"
;
String
AVAILABLE
=
"Available"
;
String
TABLE_INV_STOCKUNIT
=
"TABLE_INV_STOCKUNIT"
;
String
SQL_QUERYITEM_BYSKUNO
=
"SELECT * FROM MD_ITEMATA, MD_ITEMDATA_SKUNO "
+
"WHERE MD_ITEMATA.ITEM_NO = MD_ITEMDATA_SKUNO.ITEM_NO AND SKU_NO = ?"
;
String
TABLE_MD_ITEMDATA_SKUNO
=
"TABLE_MD_ITEMDATA_SKUNO"
;
String
TABLE_INV_STOCKUNIT
=
"INV_STOCKUNIT"
;
String
SQL_QUERYITEM_BYSKUNO
=
"SELECT * FROM MD_ITEMDATA, MD_ITEMDATA_SKUNO "
+
"WHERE MD_ITEMDATA.ITEM_NO = MD_ITEMDATA_SKUNO.ITEM_NO "
+
"AND MD_ITEMDATA_SKUNO.SKU_NO = ?"
;
String
TABLE_MD_ITEMDATA_SKUNO
=
"MD_ITEMDATA_SKUNO"
;
String
SQL_QUERY_WORKSTATION
=
"SELECT * FROM MD_WORKSTATION WHERE ID=?"
;
String
SQL_QUERY_INBOUND_POSITION
=
"SELECT * FROM WMS_INBOUND_POSITION WHERE ENTRYID=?"
;
String
SQL_QUERY_INBOUND_POSITION
=
"SELECT * FROM WMS_INBOUND_
ORDER
POSITION WHERE ENTRYID=?"
;
String
SQL_QUERYSTORAGELOCATION_BYSKU
=
"SELECT MD_STORAGELOCATION.* \n"
+
"FROM MD_STORAGELOCATION,INV_UNITLOAD, INV_STOCKUNIT, MD_ITEMDATA, MD_ITEMDATA_SKUNO \n"
+
"WHERE INV_STOCKUNIT.ITEMDATA_ID=MD_ITEMDATA.ID \n"
+
...
...
@@ -53,8 +54,9 @@ public interface Sql_Table {
"AND MD_ITEMDATA.ITEM_NO=MD_ITEMDATA_SKUNO.ITEM_NO \n"
+
"AND MD_ITEMDATA_SKUNO.SKU_NO=? AND POD_ID IS NOT NULL LIMIT 1"
;
String
WMS_INBOUND_PODORDER
=
"WMS_INBOUND_PODORDER"
;
String
SQL_QUERY_PODS
=
"SELECT DISTINCT POD_ID FROM WMS_INBOUND_PODORDER"
+
" WHERE PODID NOT IN (SELECT POD_ID FROM RCS_TRIP WHERE TRIP_TYPE=? AND TRIP_STATE=?) "
+
String
SQL_QUERY_PODS
=
"SELECT DISTINCT POD_ID,WORKSTATION_ID,WAREHOUSE_ID,SECTION_ID "
+
" FROM WMS_INBOUND_PODORDER"
+
" WHERE POD_ID NOT IN (SELECT POD_ID FROM RCS_TRIP WHERE TRIP_TYPE=? AND TRIP_STATE=?) "
+
" LIMIT 10"
;
String
SQL_QUERY_RUNNINGPODS
=
"SELECT DISTINCT POD_ID "
+
"FROM RCS_TRIP WHERE TRIP_TYPE=? AND TRIP_STATE=? "
+
...
...
@@ -73,4 +75,18 @@ public interface Sql_Table {
"AND RCS_TRIPPOSITION.POD_USING_FACE=?\n"
+
"AND RCS_TRIP.WORKSTATION_ID=? "
+
"AND RCS_TRIP.POD_ID=? limit 1"
;
String
SQL_QUERY_CURRENTPOD
=
"SELECT MD_POD.ID, MD_POD.POD_INDEX, MD_POD.TOWARD, \n"
+
" MD_WORKSTATION.WORKING_FACE_ORIENTATION, \n"
+
" MD_POD.PLACEMARK FROM MD_POD, MD_WORKSTATION \n"
+
" WHERE MD_POD.PLACEMARK = MD_WORKSTATION.STOPPOINT \n"
+
" AND MD_WORKSTATION.ID = ?"
;
String
SQL_QUERY_PODORDRTASK
=
"select WMS_INBOUND_PODORDER.* from WMS_INBOUND_PODORDER, WMS_INBOUND_ORDERPOSITION \n"
+
" where WMS_INBOUND_PODORDER.ENTRYPOSITIONID = WMS_INBOUND_ORDERPOSITION.ID\n"
+
" and WMS_INBOUND_PODORDER.STATE = 'Available' \n"
+
" and WMS_INBOUND_PODORDER.POD_ID=? and WMS_INBOUND_PODORDER.POD_FACE=?\n"
+
" OrDER BY WMS_INBOUND_PODORDER.CREATED_DATE DESC limit 1"
;
String
NEW
=
"New"
;
}
src/main/java/com/mushiny/heli/xnr/service/WMSService.java
View file @
a4d2f116
...
...
@@ -107,10 +107,11 @@ public class WMSService {
public
static
final
String
ITEM_GROUP
=
"fd335ce3-1b83-4819-81d9-34f8aa5a2139"
;
public
static
final
String
HANDLING_UNIT_ID
=
"d7599399-3da6-478c-b14d-60e6be6ef11e"
;
public
void
syncItem
(
ItemDTO
itemDTO
)
{
List
<
Map
>
skus
=
this
.
jdbcRepository
.
queryBySql
(
Sql_Table
.
SQL_QUERYITEM_BYSKUNO
,
itemDTO
.
getSKUID
());
List
<
Map
>
rows
=
this
.
jdbcRepository
.
queryBySql
(
Sql_Table
.
SQL_QUERYITEM_BYID
,
itemDTO
.
getSKUID
());
if
(
skus
.
isEmpty
()
||
rows
.
isEmpty
()){
if
(
skus
.
isEmpty
()
&&
rows
.
isEmpty
()){
//新建一条
BaseBpo
baseBpo
=
new
BaseBpo
();
baseBpo
.
setTable
(
Sql_Table
.
TABLE_MD_ITEMDATA
);
...
...
@@ -128,6 +129,7 @@ public class WMSService {
baseBpo2
.
addKV
(
"CLIENT_ID"
,
itemDTO
.
getFACTORY
()).
addKV
(
"ITEM_NO"
,
itemDTO
.
getSKUID
()).
addKV
(
"SKU_NO"
,
itemDTO
.
getSKUID
());
baseBpo2
.
addKV
(
"ID"
,
CommonUtils
.
genUUID
());
this
.
jdbcRepository
.
insertBusinessObject
(
baseBpo
);
this
.
jdbcRepository
.
insertBusinessObject
(
baseBpo2
);
}
else
{
//根据ID更新 ID暂定跟SKU_NO ITEM_NO 一样
BaseBpo
baseBpo
=
new
BaseBpo
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment