Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
hg-smart
Overview
Overview
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
platform
hg-smart
Commits
99214463
Commit
99214463
authored
Jul 09, 2024
by
江和松
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
生产领料、其他出库增加修改主表的校验
parent
9a462646
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
243 additions
and
1 deletions
+243
-1
ServiceHGKC007.java
.../java/com/baosight/hggp/hg/kc/service/ServiceHGKC007.java
+2
-0
ServiceHGKC008.java
.../java/com/baosight/hggp/hg/kc/service/ServiceHGKC008.java
+14
-0
HGKC010.xml
src/main/java/com/baosight/hggp/hg/kc/sql/HGKC010.xml
+3
-0
HGKCTools.java
src/main/java/com/baosight/hggp/hg/kc/tools/HGKCTools.java
+66
-0
HGKC007A.js
src/main/webapp/HG/KC/HGKC007A.js
+157
-0
HGKC007A.jsp
src/main/webapp/HG/KC/HGKC007A.jsp
+1
-1
No files found.
src/main/java/com/baosight/hggp/hg/kc/service/ServiceHGKC007.java
View file @
99214463
...
...
@@ -153,6 +153,8 @@ public class ServiceHGKC007 extends ServiceBase {
*/
private
void
modify
(
HGKC007
hgkc007
)
throws
Exception
{
DaoUtils
.
update
(
HGKC007
.
UPDATE
,
hgkc007
);
//同时修改子表的仓库数据、公司数据
HGKCTools
.
HgKc007A
.
updateWhCodeByPrimaryId
(
hgkc007
);
}
/**
...
...
src/main/java/com/baosight/hggp/hg/kc/service/ServiceHGKC008.java
View file @
99214463
package
com
.
baosight
.
hggp
.
hg
.
kc
.
service
;
import
com.baosight.hggp.common.DdynamicEnum
;
import
com.baosight.hggp.common.InventTypeDetailEnum
;
import
com.baosight.hggp.core.dao.DaoUtils
;
import
com.baosight.hggp.core.security.UserSessionUtils
;
import
com.baosight.hggp.hg.constant.HGConstant
;
...
...
@@ -8,8 +9,10 @@ import com.baosight.hggp.hg.kc.domain.HGKC008;
import
com.baosight.hggp.hg.kc.domain.HGKC008A
;
import
com.baosight.hggp.hg.kc.tools.HGKCTools
;
import
com.baosight.hggp.hg.kc.utils.HGKCUtils
;
import
com.baosight.hggp.hg.pz.domain.HGPZ004
;
import
com.baosight.hggp.hg.xs.domain.Company
;
import
com.baosight.hggp.util.*
;
import
com.baosight.hggp.util.contants.ACConstants
;
import
com.baosight.iplat4j.core.ei.EiBlock
;
import
com.baosight.iplat4j.core.ei.EiConstant
;
import
com.baosight.iplat4j.core.ei.EiInfo
;
...
...
@@ -47,6 +50,15 @@ public class ServiceHGKC008 extends ServiceBase {
public
EiInfo
query
(
EiInfo
inInfo
)
{
try
{
inInfo
=
super
.
query
(
inInfo
,
HGKC008
.
QUERY
,
new
HGKC008
());
//移动端需要主表查询
String
whCode
=
inInfo
.
getCellStr
(
EiConstant
.
queryBlock
,
ACConstants
.
ROW_CODE_0
,
HGKC008A
.
FIELD_WH_CODE
);
Map
map
=
new
HashMap
();
map
.
put
(
HGKC008A
.
FIELD_ACCOUNT_CODE
,
UserSessionUtils
.
getAccountCode
());
map
.
put
(
HGKC008A
.
FIELD_WH_CODE
,
whCode
);
map
.
put
(
HGPZ004
.
FIELD_INVENT_TYPE_DETAILS
,
InventTypeDetailEnum
.
getInentTypeThree
());
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
INVENT_TYPE_BOX_BLOCK_ID
,
DdynamicEnum
.
INVENT_CODE_BOX_BLOCK_ID
),
map
,
false
);
inInfo
.
setStatus
(
EiConstant
.
STATUS_DEFAULT
);
}
catch
(
PlatException
e
)
{
LogUtils
.
setDetailMsg
(
inInfo
,
e
,
"查询失败"
);
...
...
@@ -78,6 +90,8 @@ public class ServiceHGKC008 extends ServiceBase {
this
.
checkSaveData
(
hgkc008
);
if
(
Objects
.
nonNull
(
hgkc008
.
getId
())&&
hgkc008
.
getId
()!=
0
){
DaoUtils
.
update
(
HGKC008
.
UPDATE
,
hgkc008
);
//同时修改子表的仓库数据、公司数据
HGKCTools
.
HgKc008A
.
updateWhCodeByReceiveId
(
hgkc008
);
}
else
{
//生成生产领料编号
hgkc008
.
setApplyCode
(
SequenceGenerator
.
getNextSequence
(
HGConstant
.
SequenceId
.
RECEIVE_CODE
));
...
...
src/main/java/com/baosight/hggp/hg/kc/sql/HGKC010.xml
View file @
99214463
...
...
@@ -98,6 +98,9 @@
<isNotEmpty
prepend=
" AND "
property=
"inventTypeDetails"
>
INVENT_TYPE_DETAIL IN
<iterate
close=
")"
open=
"("
conjunction=
","
property=
"inventTypeDetails"
>
#inventTypeDetails[]#
</iterate>
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"inventCodes"
>
INVENT_CODE IN
<iterate
close=
")"
open=
"("
conjunction=
","
property=
"inventCodes"
>
#inventCodes[]#
</iterate>
</isNotEmpty>
</sql>
<sql
id=
"idCondition"
>
...
...
src/main/java/com/baosight/hggp/hg/kc/tools/HGKCTools.java
View file @
99214463
...
...
@@ -752,6 +752,30 @@ public class HGKCTools {
List
<
HGKC007A
>
results
=
DaoBase
.
getInstance
().
query
(
HGKC007A
.
QUERY
,
paramMap
);
return
results
;
}
public
static
List
<
HGKC007A
>
updateWhCodeByPrimaryId
(
HGKC007
kc007
)
{
Map
paramMap
=
new
HashMap
();
paramMap
.
put
(
"primaryId"
,
kc007
.
getId
());
List
<
HGKC007A
>
results
=
DaoBase
.
getInstance
().
query
(
HGKC007A
.
QUERY
,
paramMap
);
results
.
forEach
(
o
->{
o
.
setWhName
(
kc007
.
getWhName
());
o
.
setWhCode
(
kc007
.
getWhCode
());
o
.
setCompanyCode
(
kc007
.
getCompanyCode
());
o
.
setCompanyName
(
kc007
.
getCompanyName
());
o
.
setProjCode
(
kc007
.
getProjCode
());
o
.
setProjName
(
kc007
.
getProjName
());
});
if
(!
CollectionUtil
.
isEmpty
(
results
)){
List
<
String
>
inventCodes
=
results
.
stream
().
map
(
o
->
o
.
getInventCode
()).
collect
(
Collectors
.
toList
());
List
<
HGKC010
>
kc010List
=
HGKCTools
.
HgKc010
.
getListByBussiness
(
kc007
.
getCompanyCode
(),
kc007
.
getWhCode
(),
inventCodes
);
results
.
forEach
(
o
->{
HGKC010
kc010
=
kc010List
.
stream
().
filter
(
k
->
k
.
getInventCode
().
equals
(
o
.
getInventCode
())).
findAny
().
orElse
(
null
);
AssertUtils
.
isTrue
(
Objects
.
isNull
(
kc010
),
"仓库("
+
kc007
.
getWhCode
()+
"|"
+
kc007
.
getWhName
()+
"),不存在存货信息:("
+
o
.
getInventCode
()+
"|"
+
o
.
getInventName
()+
")"
);
});
DaoUtils
.
updateBatch
(
HGKC007A
.
UPDATE
,
results
);
}
return
results
;
}
}
...
...
@@ -798,6 +822,31 @@ public class HGKCTools {
return
results
;
}
public
static
List
<
HGKC008A
>
updateWhCodeByReceiveId
(
HGKC008
kc008
)
{
Map
paramMap
=
new
HashMap
();
paramMap
.
put
(
"receiveId"
,
kc008
.
getId
());
List
<
HGKC008A
>
results
=
DaoBase
.
getInstance
().
query
(
HGKC008A
.
QUERY
,
paramMap
);
results
.
forEach
(
o
->{
o
.
setWhName
(
kc008
.
getWhName
());
o
.
setWhCode
(
kc008
.
getWhCode
());
o
.
setCompanyCode
(
kc008
.
getCompanyCode
());
o
.
setCompanyName
(
kc008
.
getCompanyName
());
o
.
setProjCode
(
kc008
.
getProjCode
());
o
.
setProjName
(
kc008
.
getProjName
());
});
if
(!
CollectionUtil
.
isEmpty
(
results
)){
List
<
String
>
inventCodes
=
results
.
stream
().
map
(
o
->
o
.
getInventCode
()).
collect
(
Collectors
.
toList
());
List
<
HGKC010
>
kc010List
=
HGKCTools
.
HgKc010
.
getListByBussiness
(
kc008
.
getCompanyCode
(),
kc008
.
getWhCode
(),
inventCodes
);
results
.
forEach
(
o
->{
HGKC010
kc010
=
kc010List
.
stream
().
filter
(
k
->
k
.
getInventCode
().
equals
(
o
.
getInventCode
())).
findAny
().
orElse
(
null
);
AssertUtils
.
isTrue
(
Objects
.
isNull
(
kc010
),
"仓库("
+
kc008
.
getWhCode
()+
"|"
+
kc008
.
getWhName
()+
"),不存在存货信息:("
+
o
.
getInventCode
()+
"|"
+
o
.
getInventName
()+
")"
);
});
DaoUtils
.
updateBatch
(
HGKC008A
.
UPDATE
,
results
);
}
return
results
;
}
}
/**
...
...
@@ -861,6 +910,23 @@ public class HGKCTools {
}
/**
* @param companyCode
* @param whCode
* @param inventCodes
*/
public
static
List
<
HGKC010
>
getListByBussiness
(
String
companyCode
,
String
whCode
,
List
<
String
>
inventCodes
)
{
AssertUtils
.
isEmpty
(
companyCode
,
"公司编码不能为空"
);
AssertUtils
.
isEmpty
(
whCode
,
"仓库编码不能为空"
);
AssertUtils
.
isEmpty
(
inventCodes
,
"物料编码不能为空"
);
Map
paramMap
=
new
HashMap
();
paramMap
.
put
(
"companyCode"
,
companyCode
);
paramMap
.
put
(
"whCode"
,
whCode
);
paramMap
.
put
(
"inventCodes"
,
inventCodes
);
List
<
HGKC010
>
results
=
DaoBase
.
getInstance
().
query
(
HGKC010
.
QUERY
,
paramMap
);
return
results
;
}
/**
* 查询
*
* @param ids
...
...
src/main/webapp/HG/KC/HGKC007A.js
View file @
99214463
...
...
@@ -14,6 +14,81 @@ $(function () {
},
columns
:
[
{
field
:
"inventCode"
,
template
:
function
(
item
)
{
let
template
=
""
;
if
(
item
.
inventCode
){
for
(
let
i
=
0
;
i
<
inventRecordBoxBlocks
.
length
;
i
++
){
if
(
item
.
inventCode
===
inventRecordBoxBlocks
[
i
][
'valueField'
]){
item
.
inventName
=
inventRecordBoxBlocks
[
i
][
'textField'
];
template
=
inventRecordBoxBlocks
[
i
][
'valueField'
];
}
}
}
return
item
.
inventCode
;
},
editor
:
function
(
container
,
options
)
{
var
input
=
$
(
'<input />'
);
input
.
attr
(
"name"
,
options
.
field
);
input
.
attr
(
"id"
,
options
.
field
);
input
.
appendTo
(
container
);
input
.
kendoDropDownList
({
dataSource
:
inventRecordBoxBlocks
,
minLength
:
0
,
dataTextField
:
"textField"
,
dataValueField
:
"valueField"
,
optionLabelTemplate
:
"[#:valueField#]#:textField#[#:param3Field#]"
,
valueTemplate
:
"[#:valueField#]#:textField#[#:param3Field#]"
,
template
:
"[#:valueField#]#:textField#[#:param3Field#]"
,
filter
:
"contains"
});
}
},
{
field
:
"prdtSpec"
,
template
:
function
(
item
)
{
let
template
=
""
;
if
(
item
.
prdtSpec
){
for
(
let
i
=
0
;
i
<
specBoxBlocks
.
length
;
i
++
){
if
(
item
.
prdtSpec
===
specBoxBlocks
[
i
][
'valueField'
]){
template
=
specBoxBlocks
[
i
][
'valueField'
];
}
}
}
return
item
.
prdtSpec
;
},
editor
:
function
(
container
,
options
)
{
let
inInfo
=
new
EiInfo
();
inInfo
.
set
(
"inqu_status-0-whCode"
,
options
.
model
[
"whCode"
]);
inInfo
.
set
(
"inqu_status-0-companyCode"
,
options
.
model
[
"companyCode"
]);
inInfo
.
set
(
"inqu_status-0-inventType"
,
options
.
model
[
"inventType"
]);
inInfo
.
set
(
"inqu_status-0-inventCode"
,
options
.
model
[
"inventCode"
]);
inInfo
.
set
(
"field"
,
options
.
field
);
let
dataSource
;
EiCommunicator
.
send
(
"HGKC010"
,
"querySpecBox"
,
inInfo
,
{
onSuccess
:
function
(
ei
)
{
dataSource
=
ei
.
getBlock
(
"spec_box_block_id"
).
getMappedRows
();
},
onFail
:
function
(
ei
)
{
}
},
{
async
:
false
});
var
input
=
$
(
'<input />'
);
input
.
attr
(
"name"
,
options
.
field
);
input
.
attr
(
"id"
,
options
.
field
);
input
.
appendTo
(
container
);
input
.
kendoDropDownList
({
dataSource
:
dataSource
,
minLength
:
0
,
dataTextField
:
"textField"
,
dataValueField
:
"valueField"
,
optionLabelTemplate
:
"[#:valueField#]#:textField#"
,
valueTemplate
:
"[#:valueField#]#:textField#"
,
template
:
"[#:valueField#]#:textField#"
,
filter
:
"contains"
});
}
},
{
field
:
"primaryId"
,
template
:
function
(
item
)
{
item
[
'primaryId'
]
=
$
(
"#inqu_status-0-primaryId"
).
val
();
...
...
@@ -37,6 +112,88 @@ $(function () {
loadComplete
:
function
(
grid
)
{
// 此grid对象
grid
.
dataSource
.
bind
(
"change"
,
function
(
e
)
{
var
item
=
e
.
items
[
0
];
//数量计算
if
(
e
.
field
==
"invQty"
)
{
if
(
item
.
invQty
&&
item
.
invUnitWeight
){
let
totalWeight
=
item
.
invQty
*
item
.
invUnitWeight
;
resultGrid
.
setCellValue
(
item
,
'invWeight'
,
totalWeight
)
}
if
(
item
.
price
&&
item
.
invQty
){
let
totalAmount
=
item
.
price
*
item
.
invQty
;
resultGrid
.
setCellValue
(
item
,
'amount'
,
totalAmount
)
}
loadChange
(
grid
,
e
,
"price"
);
}
//单价计算
if
(
e
.
field
==
"price"
)
{
if
(
item
.
price
&&
item
.
invQty
){
let
totalAmount
=
item
.
price
*
item
.
invQty
;
resultGrid
.
setCellValue
(
item
,
'amount'
,
totalAmount
)
}
}
if
(
e
.
field
==
"inventType"
)
{
//选择后,先加载此方法,再加载属性中的方法,所以存货类型加载时,先修改存货编号下拉框的查询
let
inInfo
=
new
EiInfo
();
inInfo
.
set
(
"inqu_status-0-whCode"
,
item
.
whCode
);
inInfo
.
set
(
"inqu_status-0-companyCode"
,
item
.
companyCode
);
inInfo
.
set
(
"inqu_status-0-inventType"
,
item
.
inventType
);
EiCommunicator
.
send
(
"HGKC010"
,
"queryInventCodeBox"
,
inInfo
,
{
onSuccess
:
function
(
ei
)
{
inventRecordBoxBlocks
=
ei
.
getBlock
(
"invent_code_box_block_id"
).
getMappedRows
();
},
onFail
:
function
(
ei
)
{
}
},
{
async
:
false
});
resultGrid
.
setCellValue
(
item
,
'inventCode'
,
""
)
resultGrid
.
setCellValue
(
item
,
'inventName'
,
""
)
resultGrid
.
setCellValue
(
item
,
'prdtSpecId'
,
""
)
resultGrid
.
setCellValue
(
item
,
'prdtSpec'
,
""
)
resultGrid
.
setCellValue
(
item
,
'prdtLength'
,
""
)
resultGrid
.
setCellValue
(
item
,
'prdtWidth'
,
""
)
resultGrid
.
setCellValue
(
item
,
'prdtThick'
,
""
)
resultGrid
.
setCellValue
(
item
,
'invQty'
,
""
)
resultGrid
.
setCellValue
(
item
,
'invUnitWeight'
,
""
)
resultGrid
.
setCellValue
(
item
,
'invWeight'
,
""
)
loadChange
(
grid
,
e
,
"inventCode"
);
}
if
(
e
.
field
==
"inventCode"
)
{
for
(
let
i
=
0
;
i
<
inventRecordBoxBlocks
.
length
;
i
++
){
if
(
item
.
inventCode
===
inventRecordBoxBlocks
[
i
][
'valueField'
]){
resultGrid
.
setCellValue
(
item
,
'inventType'
,
inventRecordBoxBlocks
[
i
][
'param1Field'
]);
resultGrid
.
setCellValue
(
item
,
'inventName'
,
inventRecordBoxBlocks
[
i
][
'textField'
]);
resultGrid
.
setCellValue
(
item
,
'prdtSpecId'
,
inventRecordBoxBlocks
[
i
][
'param2Field'
]);
resultGrid
.
setCellValue
(
item
,
'prdtSpec'
,
inventRecordBoxBlocks
[
i
][
'param3Field'
]);
resultGrid
.
setCellValue
(
item
,
'prdtLength'
,
inventRecordBoxBlocks
[
i
][
'param4Field'
]);
resultGrid
.
setCellValue
(
item
,
'prdtWidth'
,
inventRecordBoxBlocks
[
i
][
'param5Field'
]);
resultGrid
.
setCellValue
(
item
,
'prdtThick'
,
inventRecordBoxBlocks
[
i
][
'param6Field'
]);
resultGrid
.
setCellValue
(
item
,
'invQty'
,
inventRecordBoxBlocks
[
i
][
'param7Field'
]);
resultGrid
.
setCellValue
(
item
,
'invUnitWeight'
,
inventRecordBoxBlocks
[
i
][
'param8Field'
]);
resultGrid
.
setCellValue
(
item
,
'invWeight'
,
inventRecordBoxBlocks
[
i
][
'param9Field'
]);
resultGrid
.
setCellValue
(
item
,
'inventTypeDetail'
,
inventRecordBoxBlocks
[
i
][
'param10Field'
]);
break
}
}
loadChange
(
grid
,
e
,
"price"
);
}
if
(
e
.
field
==
"prdtSpec"
)
{
for
(
let
i
=
0
;
i
<
specBoxBlocks
.
length
;
i
++
){
if
(
item
.
prdtSpec
===
specBoxBlocks
[
i
][
'valueField'
]){
resultGrid
.
setCellValue
(
item
,
'prdtLength'
,
specBoxBlocks
[
i
][
'param1Field'
])
resultGrid
.
setCellValue
(
item
,
'prdtWidth'
,
specBoxBlocks
[
i
][
'param2Field'
])
resultGrid
.
setCellValue
(
item
,
'prdtThick'
,
specBoxBlocks
[
i
][
'param3Field'
])
resultGrid
.
setCellValue
(
item
,
'invQty'
,
specBoxBlocks
[
i
][
'param4Field'
])
resultGrid
.
setCellValue
(
item
,
'invUnitWeight'
,
specBoxBlocks
[
i
][
'param5Field'
])
resultGrid
.
setCellValue
(
item
,
'invWeight'
,
specBoxBlocks
[
i
][
'param6Field'
])
resultGrid
.
setCellValue
(
item
,
'prdtSpecId'
,
specBoxBlocks
[
i
][
'param7Field'
])
break
}
}
resultGrid
.
setCellValue
(
item
,
'price'
,
""
)
resultGrid
.
setCellValue
(
item
,
'amount'
,
""
)
loadChange
(
grid
,
e
,
"invQty"
);
}
});
},
onSave
:
function
(
e
)
{
...
...
src/main/webapp/HG/KC/HGKC007A.jsp
View file @
99214463
...
...
@@ -38,7 +38,7 @@
<EF:EFColumn
ename=
"inventTypeDetail"
cname=
"存货类型大类"
hidden=
"true"
/>
<EF:EFColumn
ename=
"inventCode"
cname=
"存货编码"
width=
"220"
align=
"center"
required=
"true"
readonly=
"true"
/>
<EF:EFColumn
ename=
"inventName"
cname=
"存货名称"
width=
"160"
align=
"center"
required=
"true"
enable=
"false"
/>
<EF:EFColumn
ename=
"prdtSpec"
cname=
"规格"
width=
"120"
align=
"center"
enable=
"
true"
required=
"true"
/>
<EF:EFColumn
ename=
"prdtSpec"
cname=
"规格"
width=
"120"
align=
"center"
enable=
"
false"
required=
"false"
/>
<EF:EFColumn
ename=
"inventRecordId"
cname=
"规格id"
width=
"120"
align=
"center"
required=
"true"
enable=
"false"
hidden=
"true"
/>
<EF:EFColumn
ename=
"prdtLength"
cname=
"长(MM)"
enable=
"false"
width=
"80"
align=
"right"
format=
"{0:N3}"
/>
<EF:EFColumn
ename=
"prdtWidth"
cname=
"宽(MM)"
enable=
"false"
width=
"80"
align=
"right"
format=
"{0:N3}"
/>
...
...
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