Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
hp-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
hp-smart
Commits
c980b372
Commit
c980b372
authored
Jan 24, 2024
by
宋祥
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.其他出库单逻辑开发
parent
02f40c81
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
526 additions
and
17 deletions
+526
-17
HPSqlConstant.java
...ain/java/com/baosight/hpjx/hp/constant/HPSqlConstant.java
+12
-0
ServiceHPKC007.java
.../java/com/baosight/hpjx/hp/kc/service/ServiceHPKC007.java
+2
-2
ServiceHPKC007A.java
...java/com/baosight/hpjx/hp/kc/service/ServiceHPKC007A.java
+123
-0
HPKC010.xml
src/main/java/com/baosight/hpjx/hp/kc/sql/HPKC010.xml
+17
-2
HPKCTools.java
src/main/java/com/baosight/hpjx/hp/kc/tools/HPKCTools.java
+45
-0
MapUtils.java
src/main/java/com/baosight/hpjx/util/MapUtils.java
+151
-0
ObjectUtils.java
src/main/java/com/baosight/hpjx/util/ObjectUtils.java
+3
-2
HPKC006.jsp
src/main/webapp/HP/KC/HPKC006.jsp
+3
-4
HPKC007.js
src/main/webapp/HP/KC/HPKC007.js
+26
-0
HPKC007.jsp
src/main/webapp/HP/KC/HPKC007.jsp
+8
-7
HPKC007A.js
src/main/webapp/HP/KC/HPKC007A.js
+69
-0
HPKC007A.jsp
src/main/webapp/HP/KC/HPKC007A.jsp
+67
-0
No files found.
src/main/java/com/baosight/hpjx/hp/constant/HPSqlConstant.java
View file @
c980b372
...
@@ -49,6 +49,18 @@ public class HPSqlConstant {
...
@@ -49,6 +49,18 @@ public class HPSqlConstant {
}
}
/**
/**
* HPKC010 SQL 定义
*
* @author:songx
* @date:2024/1/20,16:45
*/
public
class
HPKC010
{
// 锁
public
static
final
String
LOCK
=
"HPKC010.lock"
;
}
/**
* HPPZ010 SQL 定义
* HPPZ010 SQL 定义
*
*
* @author:songx
* @author:songx
...
...
src/main/java/com/baosight/hpjx/hp/kc/service/ServiceHPKC007.java
View file @
c980b372
...
@@ -46,8 +46,8 @@ public class ServiceHPKC007 extends ServiceBase {
...
@@ -46,8 +46,8 @@ public class ServiceHPKC007 extends ServiceBase {
public
EiInfo
initLoad
(
EiInfo
inInfo
)
{
public
EiInfo
initLoad
(
EiInfo
inInfo
)
{
try
{
try
{
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
WH_RECORD_BLOCK_ID
),
null
);
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
WH_RECORD_BLOCK_ID
),
null
);
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
MATERIAL_RECORD
_BLOCK_ID
),
null
);
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
INVENT_NAME
_BLOCK_ID
),
null
);
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
INVENT_SPEC_BLOCK_ID
),
null
);
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
INVENT_SPEC_BLOCK_ID
),
null
,
false
);
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
SPEC_NAME_BLOCK_ID
),
null
,
false
);
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
SPEC_NAME_BLOCK_ID
),
null
,
false
);
inInfo
.
addBlock
(
EiConstant
.
resultBlock
).
addBlockMeta
(
new
HPKC007
().
eiMetadata
);
inInfo
.
addBlock
(
EiConstant
.
resultBlock
).
addBlockMeta
(
new
HPKC007
().
eiMetadata
);
}
catch
(
PlatException
e
)
{
}
catch
(
PlatException
e
)
{
...
...
src/main/java/com/baosight/hpjx/hp/kc/service/ServiceHPKC007A.java
0 → 100644
View file @
c980b372
package
com
.
baosight
.
hpjx
.
hp
.
kc
.
service
;
import
com.baosight.hpjx.common.DdynamicEnum
;
import
com.baosight.hpjx.core.dao.DaoUtils
;
import
com.baosight.hpjx.hp.kc.domain.HPKC007
;
import
com.baosight.hpjx.hp.kc.domain.HPKC010
;
import
com.baosight.hpjx.hp.kc.tools.HPKCTools
;
import
com.baosight.hpjx.util.AssertUtils
;
import
com.baosight.hpjx.util.BeanUtils
;
import
com.baosight.hpjx.util.CommonMethod
;
import
com.baosight.hpjx.util.DateUtils
;
import
com.baosight.hpjx.util.EiInfoUtils
;
import
com.baosight.hpjx.util.LogUtils
;
import
com.baosight.hpjx.util.MapUtils
;
import
com.baosight.hpjx.util.ObjectUtils
;
import
com.baosight.iplat4j.core.ei.EiConstant
;
import
com.baosight.iplat4j.core.ei.EiInfo
;
import
com.baosight.iplat4j.core.exception.PlatException
;
import
com.baosight.iplat4j.core.service.impl.ServiceEPBase
;
import
com.baosight.iplat4j.core.web.threadlocal.UserSession
;
import
java.math.BigDecimal
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* 其他出库单挑选库存
*
* @author:songx
* @date:2022/7/11,11:08
*/
public
class
ServiceHPKC007A
extends
ServiceEPBase
{
/**
* 初始化
*
* @param inInfo
* @return
*/
@Override
public
EiInfo
initLoad
(
EiInfo
inInfo
)
{
try
{
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
WH_RECORD_BLOCK_ID
),
null
);
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
INVENT_NAME_BLOCK_ID
),
null
);
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
INVENT_SPEC_BLOCK_ID
),
null
,
false
);
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
SPEC_NAME_BLOCK_ID
),
null
,
false
);
inInfo
.
addBlock
(
EiConstant
.
resultBlock
).
addBlockMeta
(
new
HPKC010
().
eiMetadata
);
}
catch
(
Exception
e
)
{
LogUtils
.
setDetailMsg
(
inInfo
,
e
,
"初始化失败"
);
}
return
inInfo
;
}
/**
* 查询数据列表
*
* @param inInfo
* @return
*/
@Override
public
EiInfo
query
(
EiInfo
inInfo
)
{
try
{
Map
queryRow
=
EiInfoUtils
.
getFirstRow
(
inInfo
);
inInfo
=
super
.
query
(
inInfo
,
HPKC010
.
QUERY
,
new
HPKC010
());
}
catch
(
Exception
e
)
{
LogUtils
.
setDetailMsg
(
inInfo
,
e
,
"查询失败"
);
}
return
inInfo
;
}
/**
* 生成出库单
*
* @param inInfo
* @return
*/
public
EiInfo
select
(
EiInfo
inInfo
)
{
try
{
List
<
Map
>
resultRows
=
inInfo
.
getBlock
(
EiConstant
.
resultBlock
).
getRows
();
// 库存ID
List
<
Long
>
ids
=
ObjectUtils
.
listKey
(
resultRows
,
"id"
);
// 行锁
HPKCTools
.
lockKc010
(
ids
);
// 获取库存信息
Map
<
Long
,
HPKC010
>
dbKc010Map
=
HPKCTools
.
mapKc010
(
ids
);
// 状态校验
for
(
Map
row
:
resultRows
)
{
Long
id
=
MapUtils
.
getLong
(
row
,
"id"
);
HPKC010
dbKc010
=
dbKc010Map
.
get
(
id
);
AssertUtils
.
isNull
(
dbKc010
,
"库存号["
+
id
+
"]不存在!"
);
// 校验数量
BigDecimal
applyAmount
=
MapUtils
.
getBigDecimal
(
row
,
"applyAmount"
);
AssertUtils
.
isGt
(
applyAmount
,
dbKc010
.
getAmount
(),
"库存号["
+
id
+
"]可用数量不足!"
);
BigDecimal
applyWeight
=
MapUtils
.
getBigDecimal
(
row
,
"applyWeight"
);
AssertUtils
.
isGt
(
applyWeight
,
dbKc010
.
getWeight
(),
"库存号["
+
id
+
"]可用重量不足!"
);
}
// 生成出库单
for
(
Map
row
:
resultRows
)
{
BigDecimal
applyAmount
=
MapUtils
.
getBigDecimal
(
row
,
"applyAmount"
);
BigDecimal
applyWeight
=
MapUtils
.
getBigDecimal
(
row
,
"applyWeight"
);
Long
kcId
=
MapUtils
.
getLong
(
row
,
"id"
);
HPKC010
dbKc010
=
dbKc010Map
.
get
(
kcId
);
HPKC007
kc007
=
BeanUtils
.
copy
(
dbKc010
,
HPKC007
.
class
);
kc007
.
setReceiptDate
(
DateUtils
.
shortDate
());
kc007
.
setAmount
(
applyAmount
);
kc007
.
setWeight
(
applyWeight
);
kc007
.
setRemark
(
""
);
DaoUtils
.
insert
(
HPKC007
.
INSERT
,
kc007
);
// 修改库存数量
HPKCTools
.
updateStock
(
kc007
.
getWhCode
(),
kc007
.
getInventRecordId
(),
kc007
.
getAmount
().
negate
(),
kc007
.
getWeight
().
negate
());
}
}
catch
(
Exception
e
)
{
LogUtils
.
setDetailMsg
(
inInfo
,
e
,
"生成出库单失败"
);
}
return
inInfo
;
}
}
src/main/java/com/baosight/hpjx/hp/kc/sql/HPKC010.xml
View file @
c980b372
...
@@ -64,6 +64,9 @@
...
@@ -64,6 +64,9 @@
</sql>
</sql>
<sql
id=
"customCondition"
>
<sql
id=
"customCondition"
>
<isNotEmpty
prepend=
" AND "
property=
"ids"
>
ID IN
<iterate
close=
")"
open=
"("
conjunction=
","
property=
"ids"
>
#ids[]#
</iterate>
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"spec"
>
<isNotEmpty
prepend=
" AND "
property=
"spec"
>
<isEqual
property=
"spec"
compareValue=
"无规格"
>
<isEqual
property=
"spec"
compareValue=
"无规格"
>
INVENT_RECORD_ID IN (SELECT ID FROM ${hpjxSchema}.T_HPPZ006 WHERE SPEC = '')
INVENT_RECORD_ID IN (SELECT ID FROM ${hpjxSchema}.T_HPPZ006 WHERE SPEC = '')
...
@@ -95,6 +98,7 @@
...
@@ -95,6 +98,7 @@
FROM hpjx.T_HPKC010
FROM hpjx.T_HPKC010
WHERE 1=1
WHERE 1=1
<include
refid=
"condition"
/>
<include
refid=
"condition"
/>
<include
refid=
"customCondition"
/>
</select>
</select>
<select
id=
"count"
resultClass=
"int"
>
<select
id=
"count"
resultClass=
"int"
>
...
@@ -104,8 +108,6 @@
...
@@ -104,8 +108,6 @@
<include
refid=
"customCondition"
/>
<include
refid=
"customCondition"
/>
</select>
</select>
<insert
id=
"insert"
>
<insert
id=
"insert"
>
INSERT INTO hpjx.T_HPKC010 (
INSERT INTO hpjx.T_HPKC010 (
COMPANY_CODE,
<!-- 企业编码 预留 -->
COMPANY_CODE,
<!-- 企业编码 预留 -->
...
@@ -143,4 +145,17 @@
...
@@ -143,4 +145,17 @@
WHERE ID = #id#
WHERE ID = #id#
AND VERSION = #version#
AND VERSION = #version#
</update>
</update>
<!-- 行锁 -->
<update
id=
"lock"
>
UPDATE ${hpjxSchema}.T_HPKC010
SET CREATED_TIME = CREATED_TIME
WHERE 1=1
<isNotEmpty
prepend=
" AND "
property=
"id"
>
ID = #id#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"ids"
>
ID IN
<iterate
close=
")"
open=
"("
conjunction=
","
property=
"ids"
>
#ids[]#
</iterate>
</isNotEmpty>
</update>
</sqlMap>
</sqlMap>
src/main/java/com/baosight/hpjx/hp/kc/tools/HPKCTools.java
View file @
c980b372
...
@@ -4,6 +4,7 @@ import com.baosight.hpjx.core.dao.DaoBase;
...
@@ -4,6 +4,7 @@ import com.baosight.hpjx.core.dao.DaoBase;
import
com.baosight.hpjx.hp.constant.HPSqlConstant
;
import
com.baosight.hpjx.hp.constant.HPSqlConstant
;
import
com.baosight.hpjx.hp.kc.domain.HPKC006
;
import
com.baosight.hpjx.hp.kc.domain.HPKC006
;
import
com.baosight.hpjx.hp.kc.domain.HPKC007
;
import
com.baosight.hpjx.hp.kc.domain.HPKC007
;
import
com.baosight.hpjx.hp.kc.domain.HPKC010
;
import
com.baosight.iplat4j.core.ei.EiConstant
;
import
com.baosight.iplat4j.core.ei.EiConstant
;
import
com.baosight.iplat4j.core.ei.EiInfo
;
import
com.baosight.iplat4j.core.ei.EiInfo
;
import
com.baosight.iplat4j.core.exception.PlatException
;
import
com.baosight.iplat4j.core.exception.PlatException
;
...
@@ -111,6 +112,50 @@ public class HPKCTools {
...
@@ -111,6 +112,50 @@ public class HPKCTools {
}
}
/**
/**
* 查询库存信息
*
* @param ids
* @return
*/
public
static
List
<
HPKC010
>
listKc010
(
List
<
Long
>
ids
)
{
if
(
CollectionUtils
.
isEmpty
(
ids
))
{
return
null
;
}
Map
queryMap
=
new
HashMap
();
queryMap
.
put
(
"ids"
,
ids
);
return
DaoBase
.
getInstance
().
query
(
HPKC010
.
QUERY
,
queryMap
);
}
/**
* 查询库存信息
*
* @param ids
* @return
*/
public
static
Map
<
Long
,
HPKC010
>
mapKc010
(
List
<
Long
>
ids
)
{
List
<
HPKC010
>
results
=
listKc010
(
ids
);
if
(
CollectionUtils
.
isEmpty
(
results
))
{
return
null
;
}
return
results
.
stream
().
collect
(
Collectors
.
toMap
(
HPKC010:
:
getId
,
item
->
item
));
}
/**
* 锁
*
* @param ids
* @return
*/
public
static
void
lockKc010
(
List
<
Long
>
ids
)
{
if
(
CollectionUtils
.
isEmpty
(
ids
))
{
return
;
}
Map
queryMap
=
new
HashMap
();
queryMap
.
put
(
"ids"
,
ids
);
DaoBase
.
getInstance
().
update
(
HPSqlConstant
.
HPKC010
.
LOCK
,
queryMap
);
}
/**
* 更新库存
* 更新库存
*
*
* @param whCode
* @param whCode
...
...
src/main/java/com/baosight/hpjx/util/MapUtils.java
0 → 100644
View file @
c980b372
package
com
.
baosight
.
hpjx
.
util
;
import
org.apache.commons.lang3.StringUtils
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author:songx
* @date:2021/7/24,14:45
*/
public
class
MapUtils
extends
org
.
apache
.
commons
.
collections
.
MapUtils
{
/**
* 获取字符串
*
* @param map
* @param key
* @return
*/
public
static
String
getString
(
final
Map
map
,
final
Object
key
)
{
if
(
map
!=
null
)
{
Object
answer
=
map
.
get
(
key
);
if
(
answer
!=
null
)
{
return
answer
.
toString
();
}
}
return
""
;
}
/**
* 获取字符串
*
* @param map
* @param key
* @return
*/
public
static
String
getStringIgnoreCase
(
final
Map
map
,
final
Object
key
)
{
if
(
map
==
null
||
key
==
null
)
{
return
null
;
}
Object
answer
=
map
.
get
(
key
.
toString
().
toLowerCase
());
if
(
answer
==
null
)
{
answer
=
map
.
get
(
key
.
toString
().
toUpperCase
());
}
return
answer
!=
null
?
answer
.
toString
()
:
null
;
}
/**
* 获取字段串,为空时返回空格字符串
*
* @param map
* @param key
* @return
*/
public
static
String
getEmpty
(
final
Map
map
,
final
Object
key
)
{
if
(
map
==
null
)
{
return
" "
;
}
Object
answer
=
map
.
get
(
key
);
return
ObjectUtils
.
toEmptyString
(
answer
);
}
/**
* 获取集合
*
* @param map
* @param key
* @return
*/
public
static
<
T
>
List
<
T
>
getList
(
final
Map
map
,
final
Object
key
)
{
if
(
map
==
null
)
{
return
null
;
}
Object
answer
=
map
.
get
(
key
);
if
(
answer
==
null
)
{
return
null
;
}
else
if
(
answer
instanceof
String
[])
{
return
Arrays
.
asList
((
T
[])
answer
);
}
else
if
(
answer
instanceof
List
)
{
return
(
List
<
T
>)
answer
;
}
else
{
return
null
;
}
}
/**
* 获取字段串,为空时返回空格字符串
*
* @param map
* @param key
* @return
*/
public
static
BigDecimal
getBigDecimal
(
final
Map
map
,
final
Object
key
)
{
return
getBigDecimal
(
map
,
key
,
null
);
}
/**
* 获取字段串,为空时返回空格字符串
*
* @param map
* @param key
* @return
*/
public
static
BigDecimal
getBigDecimal
(
final
Map
map
,
final
Object
key
,
final
Integer
scale
)
{
if
(
map
==
null
)
{
return
null
;
}
Object
answer
=
map
.
get
(
key
);
if
(
answer
==
null
||
StringUtils
.
isBlank
(
answer
.
toString
()))
{
return
null
;
}
BigDecimal
result
;
if
(
answer
instanceof
BigDecimal
)
{
result
=
(
BigDecimal
)
answer
;
}
else
{
result
=
new
BigDecimal
(
answer
.
toString
());
}
if
(
scale
!=
null
)
{
result
=
result
.
setScale
(
scale
,
RoundingMode
.
HALF_UP
);
}
return
result
;
}
/**
* 复制map对象
*
* @param paramsMap 被拷贝对象
* @explain 将paramsMap中的键值对全部拷贝到resultMap中;
* paramsMap中的内容不会影响到resultMap(深拷贝)
*/
public
static
Map
copy
(
Map
paramsMap
)
{
Map
resultMap
=
new
HashMap
();
if
(
paramsMap
==
null
)
{
return
resultMap
;
}
Iterator
it
=
paramsMap
.
entrySet
().
iterator
();
while
(
it
.
hasNext
())
{
Map
.
Entry
entry
=
(
Map
.
Entry
)
it
.
next
();
Object
key
=
entry
.
getKey
();
resultMap
.
put
(
key
,
paramsMap
.
get
(
key
)
!=
null
?
paramsMap
.
get
(
key
)
:
""
);
}
return
resultMap
;
}
}
src/main/java/com/baosight/hpjx/util/ObjectUtils.java
View file @
c980b372
...
@@ -2,6 +2,7 @@ package com.baosight.hpjx.util;
...
@@ -2,6 +2,7 @@ package com.baosight.hpjx.util;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.poi.ss.formula.functions.T
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -95,8 +96,8 @@ public class ObjectUtils extends org.apache.commons.lang.ObjectUtils {
...
@@ -95,8 +96,8 @@ public class ObjectUtils extends org.apache.commons.lang.ObjectUtils {
* @param keyName
* @param keyName
* @return
* @return
*/
*/
public
static
List
<
String
>
listKey
(
List
<
Map
>
items
,
String
keyName
)
{
public
static
<
T
>
List
<
T
>
listKey
(
List
<
Map
>
items
,
String
keyName
)
{
return
items
.
stream
().
map
(
item
->
MapUtils
.
getString
(
item
,
keyName
)).
collect
(
Collectors
.
toList
());
return
items
.
stream
().
map
(
item
->
(
T
)
item
.
get
(
keyName
)).
collect
(
Collectors
.
toList
());
}
}
}
}
src/main/webapp/HP/KC/HPKC006.jsp
View file @
c980b372
...
@@ -49,16 +49,16 @@
...
@@ -49,16 +49,16 @@
<EF:EFCodeOption
codeName=
"hpjx.hpkc.inventType"
/>
<EF:EFCodeOption
codeName=
"hpjx.hpkc.inventType"
/>
</EF:EFComboColumn>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"inventCode"
cname=
"存货名称"
width=
"120"
align=
"center"
required=
"true"
/>
<EF:EFColumn
ename=
"inventCode"
cname=
"存货名称"
width=
"120"
align=
"center"
required=
"true"
/>
<EF:EFColumn
ename=
"inventRecordId"
cname=
"规格"
width=
"120"
align=
"center"
/>
<EF:EFColumn
ename=
"inventRecordId"
cname=
"规格"
width=
"120"
align=
"center"
required=
"true"
/>
<EF:EFColumn
ename=
"amount"
cname=
"数量"
format=
"{0:N3}"
maxLength=
"20"
width=
"100"
align=
"right"
<EF:EFColumn
ename=
"amount"
cname=
"数量"
format=
"{0:N3}"
maxLength=
"20"
width=
"100"
align=
"right"
sumType=
"all"
required=
"true"
/>
sumType=
"all"
required=
"true"
/>
<EF:EFColumn
ename=
"weight"
cname=
"重量"
format=
"{0:N3}"
maxLength=
"20"
width=
"100"
align=
"right"
<EF:EFColumn
ename=
"weight"
cname=
"重量"
format=
"{0:N3}"
maxLength=
"20"
width=
"100"
align=
"right"
sumType=
"all"
required=
"true"
/>
sumType=
"all"
required=
"true"
/>
<EF:EFColumn
ename=
"
notes"
cname=
"备注"
width=
"100
"
/>
<EF:EFColumn
ename=
"
remark"
cname=
"备注"
width=
"150"
maxLength=
"255
"
/>
<EF:EFColumn
ename=
"createdBy"
cname=
"创建人"
enable=
"false"
width=
"100"
align=
"center"
/>
<EF:EFColumn
ename=
"createdBy"
cname=
"创建人"
enable=
"false"
width=
"100"
align=
"center"
/>
<EF:EFColumn
ename=
"createdTime"
cname=
"创建时刻"
enable=
"false"
width=
"140"
align=
"center"
<EF:EFColumn
ename=
"createdTime"
cname=
"创建时刻"
enable=
"false"
width=
"140"
align=
"center"
editType=
"datetime"
parseFormats=
"['yyyyMMddHHmmss']"
/>
editType=
"datetime"
parseFormats=
"['yyyyMMddHHmmss']"
/>
</EF:EFGrid>
</EF:EFGrid>
</EF:EFRegion>
</EF:EFRegion>
</EF:EFPage>
</EF:EFPage>
\ No newline at end of file
src/main/webapp/HP/KC/HPKC007.js
View file @
c980b372
...
@@ -55,6 +55,9 @@ $(function() {
...
@@ -55,6 +55,9 @@ $(function() {
// 查询
// 查询
$
(
"#QUERY"
).
on
(
"click"
,
query
);
$
(
"#QUERY"
).
on
(
"click"
,
query
);
// 挑选库存
$
(
"#SELECT_STOCK"
).
on
(
"click"
,
selectStock
);
});
});
/**
/**
...
@@ -88,3 +91,26 @@ $(window).load(function () {
...
@@ -88,3 +91,26 @@ $(window).load(function () {
let
query
=
function
()
{
let
query
=
function
()
{
resultGrid
.
dataSource
.
page
(
1
);
// 点击查询按钮,从第1页开始查询
resultGrid
.
dataSource
.
page
(
1
);
// 点击查询按钮,从第1页开始查询
}
}
/**
* 挑选库存
*/
let
selectStock
=
function
()
{
JSColorbox
.
open
({
href
:
"HPKC007A?methodName=initLoad"
,
title
:
"<div style='text-align: center;'>库存查询</div>"
,
width
:
"90%"
,
height
:
"80%"
,
callbackName
:
selectStockCallback
});
}
/**
* 挑选库存回调
*/
let
selectStockCallback
=
function
()
{
// 刷新页面
query
();
// 关闭弹窗
JSColorbox
.
close
();
}
src/main/webapp/HP/KC/HPKC007.jsp
View file @
c980b372
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
<div
class=
"row"
>
<div
class=
"row"
>
<EF:EFSelect
cname=
"存货名称"
ename=
"inqu_status-0-inventCode"
colWidth=
"3"
filter=
"contains"
defultValue=
""
>
<EF:EFSelect
cname=
"存货名称"
ename=
"inqu_status-0-inventCode"
colWidth=
"3"
filter=
"contains"
defultValue=
""
>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFOptions
blockId=
"
material_record
_block_id"
textField=
"textField"
valueField=
"valueField"
/>
<EF:EFOptions
blockId=
"
invent_name
_block_id"
textField=
"textField"
valueField=
"valueField"
/>
</EF:EFSelect>
</EF:EFSelect>
<EF:EFSelect
ename=
"inqu_status-0-spec"
cname=
"规格"
colWidth=
"3"
filter=
"contains"
defultValue=
""
>
<EF:EFSelect
ename=
"inqu_status-0-spec"
cname=
"规格"
colWidth=
"3"
filter=
"contains"
defultValue=
""
>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFOption
label=
"全部"
value=
""
/>
...
@@ -39,17 +39,18 @@
...
@@ -39,17 +39,18 @@
<EF:EFColumn
ename=
"otherOuterNo"
cname=
"出库单号"
enable=
"false"
width=
"130"
align=
"center"
/>
<EF:EFColumn
ename=
"otherOuterNo"
cname=
"出库单号"
enable=
"false"
width=
"130"
align=
"center"
/>
<EF:EFColumn
ename=
"receiptDate"
cname=
"单据日期"
editType=
"date"
dateFormat=
"yyyy-MM-dd"
<EF:EFColumn
ename=
"receiptDate"
cname=
"单据日期"
editType=
"date"
dateFormat=
"yyyy-MM-dd"
parseFormats=
"['yyyyMMdd']"
width=
"90"
align=
"center"
required=
"true"
/>
parseFormats=
"['yyyyMMdd']"
width=
"90"
align=
"center"
required=
"true"
/>
<EF:EFComboColumn
ename=
"whCode"
cname=
"仓库编码"
width=
"120"
columnTemplate=
"#=textField#"
<EF:EFComboColumn
ename=
"whCode"
cname=
"仓库编码"
enable=
"false"
width=
"120"
itemTemplate=
"#=textField#"
blockName=
"wh_record_block_id"
columnTemplate=
"#=textField#"
itemTemplate=
"#=textField#"
blockName=
"wh_record_block_id"
textField=
"textField"
valueField=
"valueField"
textField=
"textField"
valueField=
"valueField"
align=
"center"
filter=
"contains"
required=
"true"
>
align=
"center"
filter=
"contains"
>
</EF:EFComboColumn>
</EF:EFComboColumn>
<EF:EFComboColumn
ename=
"inventType"
cname=
"存货类型"
width=
"100"
align=
"center"
required=
"true
"
<EF:EFComboColumn
ename=
"inventType"
cname=
"存货类型"
enable=
"false"
width=
"100"
align=
"center
"
columnTemplate=
"#=valueField#-#=textField#"
itemTemplate=
"#=valueField#-#=textField#"
>
columnTemplate=
"#=valueField#-#=textField#"
itemTemplate=
"#=valueField#-#=textField#"
>
<EF:EFCodeOption
codeName=
"hpjx.hpkc.inventType"
/>
<EF:EFCodeOption
codeName=
"hpjx.hpkc.inventType"
/>
</EF:EFComboColumn>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"inventCode"
cname=
"存货名称"
width=
"120"
align=
"center"
required=
"true
"
/>
<EF:EFColumn
ename=
"inventCode"
cname=
"存货名称"
enable=
"false"
width=
"120"
align=
"center
"
/>
<EF:EFColumn
ename=
"inventRecordId"
cname=
"规格"
width=
"120"
align=
"center"
/>
<EF:EFColumn
ename=
"inventRecordId"
cname=
"规格"
enable=
"false"
width=
"120"
align=
"center"
/>
<EF:EFColumn
ename=
"amount"
cname=
"数量"
format=
"{0:N3}"
maxLength=
"20"
width=
"100"
align=
"right"
<EF:EFColumn
ename=
"amount"
cname=
"数量"
format=
"{0:N3}"
maxLength=
"20"
width=
"100"
align=
"right"
sumType=
"all"
required=
"true"
/>
sumType=
"all"
required=
"true"
/>
<EF:EFColumn
ename=
"weight"
cname=
"重量"
format=
"{0:N3}"
maxLength=
"20"
width=
"100"
align=
"right"
<EF:EFColumn
ename=
"weight"
cname=
"重量"
format=
"{0:N3}"
maxLength=
"20"
width=
"100"
align=
"right"
...
...
src/main/webapp/HP/KC/HPKC007A.js
0 → 100644
View file @
c980b372
$
(
function
()
{
IPLATUI
.
EFGrid
=
{
"result"
:
{
columns
:
[],
dataBound
:
function
()
{
}
}
};
$
(
"#ef_form_head"
).
hide
();
// 查询
$
(
"#QUERY"
).
on
(
"click"
,
query
);
// 选择
$
(
"#BTN_SELECT"
).
on
(
"click"
,
select
);
});
/**
* 页面加载时执行
*/
$
(
window
).
load
(
function
()
{
// 初始化查询
query
();
});
/**
* 查询
*/
var
query
=
function
(
e
)
{
resultGrid
.
dataSource
.
page
(
1
);
};
/**
* 选择库存
*/
let
select
=
function
()
{
let
rows
=
resultGrid
.
getCheckedRows
();
if
(
rows
.
length
<
1
)
{
message
(
"请选择数据"
)
return
;
}
for
(
let
i
=
0
;
i
<
rows
.
length
;
i
++
)
{
let
applyAmount
=
rows
[
i
][
'applyAmount'
];
let
amount
=
rows
[
i
][
'amount'
];
if
(
isBlank
(
applyAmount
)
||
!
isNumber
(
applyAmount
)
||
!
(
applyAmount
>
0
))
{
message
(
"第"
+
(
i
+
1
)
+
"行申请数量必须是大于0的数"
);
return
;
}
if
(
parseFloat
(
applyAmount
)
>
parseFloat
(
amount
))
{
message
(
"第"
+
(
i
+
1
)
+
"行申请数量不能大于库存数量"
);
return
;
}
}
JSUtils
.
confirm
(
"确定对勾选中的["
+
rows
.
length
+
"]条数据生成出库单吗? "
,
{
ok
:
function
()
{
JSUtils
.
submitGridsData
(
"result"
,
"HPKC007A"
,
"select"
,
true
,
function
(
e
)
{
var
status
=
e
.
getStatus
();
if
(
status
!==
-
1
)
{
parent
.
JSColorbox
.
setValueCallback
();
}
}
);
}
});
}
src/main/webapp/HP/KC/HPKC007A.jsp
0 → 100644
View file @
c980b372
<!DOCTYPE html>
<
%@
page
contentType=
"text/html; charset=UTF-8"
%
>
<
%@
taglib
uri=
"http://java.sun.com/jsp/jstl/core"
prefix=
"c"
%
>
<
%@
taglib
prefix=
"EF"
tagdir=
"/WEB-INF/tags/EF"
%
>
<c:set
var=
"ctx"
value=
"${pageContext.request.contextPath}"
/>
<EF:EFPage
title=
"库存查询"
>
<EF:EFRegion
id=
"inqu"
title=
"查询区域"
type=
"query"
>
<div
class=
"row"
>
<EF:EFDatePicker
cname=
"单据日期"
ename=
"inqu_status-0-receiptDate"
colWidth=
"3"
role=
"date"
format=
"yyyy-MM-dd"
readonly=
"true"
/>
<EF:EFInput
cname=
"入库单号"
ename=
"inqu_status-0-otherEnterNo"
colWidth=
"3"
/>
<EF:EFSelect
cname=
"仓库名称"
ename=
"inqu_status-0-whCode"
colWidth=
"3"
filter=
"contains"
>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFOptions
blockId=
"wh_record_block_id"
textField=
"textField"
valueField=
"valueField"
/>
</EF:EFSelect>
<EF:EFSelect
cname=
"存货类型"
ename=
"inqu_status-0-inventType"
colWidth=
"3"
filter=
"contains"
template=
"#=valueField#-#=textField#"
valueTemplate=
"#=valueField#-#=textField#"
>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFCodeOption
codeName=
"hpjx.hpkc.inventType"
/>
</EF:EFSelect>
</div>
<div
class=
"row"
>
<EF:EFSelect
cname=
"存货名称"
ename=
"inqu_status-0-inventCode"
colWidth=
"3"
filter=
"contains"
>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFOptions
blockId=
"invent_name_block_id"
textField=
"textField"
valueField=
"valueField"
/>
</EF:EFSelect>
<EF:EFSelect
ename=
"inqu_status-0-spec"
cname=
"规格"
colWidth=
"3"
filter=
"contains"
>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFOptions
blockId=
"spec_name_block_id"
textField=
"textField"
valueField=
"valueField"
/>
</EF:EFSelect>
</div>
</EF:EFRegion>
<EF:EFRegion
id=
"result"
title=
"记录集"
>
<EF:EFGrid
blockId=
"result"
autoDraw=
"override"
checkMode=
"row"
>
<EF:EFColumn
ename=
"id"
cname=
"库存ID"
enable=
"false"
width=
"60"
align=
"center"
/>
<EF:EFComboColumn
ename=
"whCode"
cname=
"仓库名称"
enable=
"false"
width=
"120"
align=
"center"
columnTemplate=
"#=textField#"
itemTemplate=
"#=textField#"
blockName=
"wh_record_block_id"
textField=
"textField"
valueField=
"valueField"
>
</EF:EFComboColumn>
<EF:EFComboColumn
ename=
"inventType"
cname=
"存货类型"
enable=
"false"
width=
"100"
align=
"center"
columnTemplate=
"#=valueField#-#=textField#"
itemTemplate=
"#=valueField#-#=textField#"
>
<EF:EFCodeOption
codeName=
"hpjx.hpkc.inventType"
/>
</EF:EFComboColumn>
<EF:EFComboColumn
ename=
"inventCode"
cname=
"存货名称"
enable=
"false"
width=
"120"
align=
"center"
columnTemplate=
"#=textField#"
itemTemplate=
"#=textField#"
blockName=
"invent_name_block_id"
textField=
"textField"
valueField=
"valueField"
>
</EF:EFComboColumn>
<EF:EFComboColumn
ename=
"inventRecordId"
cname=
"规格"
enable=
"false"
width=
"120"
align=
"center"
columnTemplate=
"#=textField#"
itemTemplate=
"#=textField#"
blockName=
"invent_spec_block_id"
textField=
"textField"
valueField=
"valueField"
>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"applyAmount"
cname=
"申请数量"
width=
"120"
align=
"right"
format=
"{0:N3}"
required=
"true"
/>
<EF:EFColumn
ename=
"applyWeight"
cname=
"申请重量"
width=
"120"
align=
"right"
format=
"{0:N3}"
required=
"true"
/>
<EF:EFColumn
ename=
"amount"
cname=
"库存数量"
enable=
"false"
width=
"120"
align=
"right"
format=
"{0:N3}"
sumType=
"all"
/>
<EF:EFColumn
ename=
"weight"
cname=
"库存重量"
enable=
"false"
width=
"120"
align=
"right"
format=
"{0:N3}"
sumType=
"all"
/>
<EF:EFColumn
ename=
"remark"
cname=
"备注"
enable=
"false"
width=
"150"
/>
</EF:EFGrid>
</EF:EFRegion>
</EF:EFPage>
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