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
3a4830b3
Commit
3a4830b3
authored
Aug 02, 2024
by
liuyang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://git.pseer.com:8800/platform/hg-smart
into dev-ly
parents
8e2514c7
91b55b68
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
522 additions
and
92 deletions
+522
-92
InventTypeDetailEnum.java
...n/java/com/baosight/hggp/common/InventTypeDetailEnum.java
+4
-0
HGCG003.java
src/main/java/com/baosight/hggp/hg/cg/domain/HGCG003.java
+2
-1
HGCG003B.java
src/main/java/com/baosight/hggp/hg/cg/domain/HGCG003B.java
+17
-1
ServiceHGCG003.java
.../java/com/baosight/hggp/hg/cg/service/ServiceHGCG003.java
+98
-27
ServiceHGCG003B.java
...java/com/baosight/hggp/hg/cg/service/ServiceHGCG003B.java
+81
-30
HGCG003A.xml
src/main/java/com/baosight/hggp/hg/cg/sql/HGCG003A.xml
+3
-0
ServiceHGPZ005.java
.../java/com/baosight/hggp/hg/pz/service/ServiceHGPZ005.java
+20
-0
ServiceHGZL001B.java
...java/com/baosight/hggp/hg/zl/service/ServiceHGZL001B.java
+1
-1
HGCG003.js
src/main/webapp/HG/CG/HGCG003.js
+122
-7
HGCG003.jsp
src/main/webapp/HG/CG/HGCG003.jsp
+31
-12
HGCG003B.js
src/main/webapp/HG/CG/HGCG003B.js
+129
-1
HGCG003B.jsp
src/main/webapp/HG/CG/HGCG003B.jsp
+14
-12
No files found.
src/main/java/com/baosight/hggp/common/InventTypeDetailEnum.java
View file @
3a4830b3
...
...
@@ -80,6 +80,10 @@ public enum InventTypeDetailEnum {
return
new
Integer
[]{
COMPONENT
.
code
,
SEMI_FINISHED_PRODUCT
.
code
,
RAW
.
code
,
CONSUMABLE
.
code
};
}
public
static
Integer
[]
getProdTypeSix
(){
return
new
Integer
[]{
CONSUMABLE
.
code
};
}
public
static
EiBlock
generatorEiBlock
()
{
EiBlock
block
=
new
EiBlock
(
"invent_type_detail_block_id"
);
List
<
Map
<
String
,
Object
>>
rows
=
new
ArrayList
<
Map
<
String
,
Object
>>()
{{
...
...
src/main/java/com/baosight/hggp/hg/cg/domain/HGCG003.java
View file @
3a4830b3
...
...
@@ -20,7 +20,7 @@ import com.baosight.iplat4j.core.util.StringUtils;
*/
public
class
HGCG003
extends
DaoEPBase
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
public
static
final
String
FIELD_ID
=
"id"
;
public
static
final
String
FIELD_ACCOUNT_CODE
=
"accountCode"
;
/* 企业编码*/
...
...
@@ -110,6 +110,7 @@ public class HGCG003 extends DaoEPBase {
public
static
final
String
UPDATE
=
"HGCG003.update"
;
public
static
final
String
DELETE
=
"HGCG003.delete"
;
public
static
final
String
MAX_ID
=
"HGCG003.maxId"
;
public
static
final
String
UPDATE_STATUS
=
"HGCG003.updateStatus"
;
private
Long
id
=
new
Long
(
0
);
private
String
accountCode
=
" "
;
/* 企业编码*/
...
...
src/main/java/com/baosight/hggp/hg/cg/domain/HGCG003B.java
View file @
3a4830b3
...
...
@@ -66,6 +66,7 @@ public class HGCG003B extends DaoEPBase {
public
static
final
String
FIELD_PUR_USER_ID
=
"purUserId"
;
/* 采购员*/
public
static
final
String
FIELD_PUR_USER_NAME
=
"purUserName"
;
/* 采购员名称*/
public
static
final
String
FIELD_IS_INVOICING
=
"isInvoicing"
;
/*是否开票 0否 1是*/
public
static
final
String
FIELD_SOURCE
=
"source"
;
/* 数据来源 根据采购数据来源小代码 目前0默认采购合同,1手动录入*/
public
static
final
String
COL_ID
=
"ID"
;
public
static
final
String
COL_ACCOUNT_CODE
=
"ACCOUNT_CODE"
;
/* 企业编码*/
...
...
@@ -158,7 +159,7 @@ public class HGCG003B extends DaoEPBase {
private
String
purUserName
=
" "
;
/* 采购员名称*/
private
Integer
isInvoicing
=
0
;
/*是否开票 0-否 1-是*/
private
Integer
source
;
/* 数据来源 根据采购数据来源小代码 目前0默认采购合同,1手动录入*/
/**
* initialize the metadata.
*/
...
...
@@ -359,9 +360,14 @@ public class HGCG003B extends DaoEPBase {
eiColumn
=
new
EiColumn
(
FIELD_PUR_USER_NAME
);
eiColumn
.
setDescName
(
"采购员名称"
);
eiMetadata
.
addMeta
(
eiColumn
);
eiColumn
=
new
EiColumn
(
FIELD_IS_INVOICING
);
eiColumn
.
setDescName
(
"是否开票"
);
eiMetadata
.
addMeta
(
eiColumn
);
eiColumn
=
new
EiColumn
(
FIELD_SOURCE
);
eiColumn
.
setDescName
(
"数据来源"
);
eiMetadata
.
addMeta
(
eiColumn
);
}
/**
...
...
@@ -997,6 +1003,14 @@ public class HGCG003B extends DaoEPBase {
this
.
isInvoicing
=
isInvoicing
;
}
public
Integer
getSource
()
{
return
source
;
}
public
void
setSource
(
Integer
source
)
{
this
.
source
=
source
;
}
/**
* get the value from Map.
*
...
...
@@ -1047,6 +1061,7 @@ public class HGCG003B extends DaoEPBase {
setPurUserId
(
StringUtils
.
defaultIfEmpty
(
StringUtils
.
toString
(
map
.
get
(
FIELD_PUR_USER_ID
)),
purUserId
));
setPurUserName
(
StringUtils
.
defaultIfEmpty
(
StringUtils
.
toString
(
map
.
get
(
FIELD_PUR_USER_NAME
)),
purUserName
));
setIsInvoicing
(
NumberUtils
.
toInteger
(
StringUtils
.
toString
(
map
.
get
(
FIELD_IS_INVOICING
)),
isInvoicing
));
setSource
(
NumberUtils
.
toInteger
(
StringUtils
.
toString
(
map
.
get
(
FIELD_SOURCE
)),
source
));
}
/**
...
...
@@ -1098,6 +1113,7 @@ public class HGCG003B extends DaoEPBase {
map
.
put
(
FIELD_PUR_USER_ID
,
StringUtils
.
toString
(
purUserId
,
eiMetadata
.
getMeta
(
FIELD_PUR_USER_ID
)));
map
.
put
(
FIELD_PUR_USER_NAME
,
StringUtils
.
toString
(
purUserName
,
eiMetadata
.
getMeta
(
FIELD_PUR_USER_NAME
)));
map
.
put
(
FIELD_IS_INVOICING
,
StringUtils
.
toString
(
isInvoicing
,
eiMetadata
.
getMeta
(
FIELD_IS_INVOICING
)));
map
.
put
(
FIELD_SOURCE
,
StringUtils
.
toString
(
source
,
eiMetadata
.
getMeta
(
FIELD_SOURCE
)));
return
map
;
}
...
...
src/main/java/com/baosight/hggp/hg/cg/service/ServiceHGCG003.java
View file @
3a4830b3
...
...
@@ -10,24 +10,23 @@ import com.baosight.hggp.hg.cg.tools.HGCGTools;
import
com.baosight.hggp.hg.cg.utils.HGCGUtils
;
import
com.baosight.hggp.hg.constant.HGConstant
;
import
com.baosight.hggp.hg.constant.HGSqlConstant
;
import
com.baosight.hggp.hg.kc.tools.HGKCTools
;
import
com.baosight.hggp.hg.sc.domain.HGSC009
;
import
com.baosight.hggp.hg.sj.domain.HGSJ002
;
import
com.baosight.hggp.hg.xs.domain.Company
;
import
com.baosight.hggp.util.AssertUtils
;
import
com.baosight.hggp.util.CommonMethod
;
import
com.baosight.hggp.util.EiInfoUtils
;
import
com.baosight.hggp.util.LogUtils
;
import
com.baosight.hggp.util.MapUtils
;
import
com.baosight.hggp.util.ObjectUtils
;
import
com.baosight.hggp.hg.xs.domain.User
;
import
com.baosight.hggp.util.*
;
import
com.baosight.iplat4j.core.ei.EiBlock
;
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.resource.I18nMessages
;
import
com.baosight.iplat4j.core.service.impl.ServiceBase
;
import
com.baosight.iplat4j.ed.util.SequenceGenerator
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.util.Arrays
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -51,6 +50,7 @@ public class ServiceHGCG003 extends ServiceBase {
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
INVENT_RECORD_BLOCK_ID
));
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
SPEC_NAME_BLOCK_ID
));
EiInfoUtils
.
addBlock
(
inInfo
,
"roleCompany"
,
UserSessionUtils
.
getRoleCompany
(),
Company
.
class
);
EiInfoUtils
.
addBlock
(
inInfo
,
"userByCompany"
,
UserSessionUtils
.
getUserByCompany
(
UserSessionUtils
.
getAccountCode
()),
User
.
class
);
inInfo
.
addBlock
(
EiConstant
.
resultBlock
).
addBlockMeta
(
new
HGCG003
().
eiMetadata
);
}
catch
(
Exception
e
)
{
LogUtils
.
setDetailMsg
(
inInfo
,
e
,
"初始化失败"
);
...
...
@@ -87,15 +87,27 @@ public class ServiceHGCG003 extends ServiceBase {
public
EiInfo
save
(
EiInfo
inInfo
)
{
try
{
List
<
HGCG003
>
fCg003s
=
MapUtils
.
toDaoEPBase
(
inInfo
,
HGCG003
.
class
);
// 采购收货DB数据
Map
<
String
,
HGCG003
>
dbCg003Map
=
HGCGUtils
.
HgCg003
.
lockGetDataEp
(
fCg003s
);
// 采购合同DB数据
Map
<
String
,
HGCG002A
>
dbCg002AMap
=
HGCGUtils
.
HgCg002
.
lockGetData
(
ObjectUtils
.
listEpKey
(
fCg003s
,
HGCG003
.
FIELD_CONTRACT_NO
));
// 数据校验
this
.
checkSaveData
(
fCg003s
,
dbCg003Map
);
// 保存数据
this
.
saveData
(
fCg003s
,
dbCg003Map
,
dbCg002AMap
);
// 写入数据
for
(
int
i
=
0
;
i
<
fCg003s
.
size
();
i
++)
{
HGCG003
hgcg003
=
fCg003s
.
get
(
i
);
if
(
hgcg003
.
getId
()
==
null
||
hgcg003
.
getId
()
==
0
)
{
// 修改数据
this
.
saveData
(
hgcg003
);
}
else
{
DaoUtils
.
update
(
HGCG003
.
UPDATE
,
hgcg003
);
}
}
// 合同过来的数据不让修改
// // 采购收货DB数据
// Map<String, HGCG003> dbCg003Map = HGCGUtils.HgCg003.lockGetDataEp(fCg003s);
// // 采购合同DB数据
// Map<String, HGCG002A> dbCg002AMap = HGCGUtils.HgCg002.lockGetData(
// ObjectUtils.listEpKey(fCg003s, HGCG003.FIELD_CONTRACT_NO));
// // 数据校验
// this.checkEditData(fCg003s, dbCg003Map);
// // 修改数据
// this.editData(fCg003s, dbCg003Map, dbCg002AMap);
inInfo
=
this
.
query
(
inInfo
);
inInfo
.
setStatus
(
EiConstant
.
STATUS_DEFAULT
);
inInfo
.
setMsg
(
"操作成功!本次对["
+
fCg003s
.
size
()
+
"]条数据保存成功!"
);
...
...
@@ -105,13 +117,23 @@ public class ServiceHGCG003 extends ServiceBase {
return
inInfo
;
}
private
void
saveData
(
HGCG003
hgcg003
)
{
// 新增数据
hgcg003
.
setReceiveNo
(
SequenceGenerator
.
getNextSequence
(
HGConstant
.
SequenceId
.
CG_RECEIVE_NO
));
hgcg003
.
setStatus
(
HGConstant
.
CgReceiveStatus
.
S_0
);
hgcg003
.
setDeleteFlag
(
DeleteFlagEnum
.
UN_REMOVE
.
getCode
());
hgcg003
.
setSource
(
HGConstant
.
CgSource
.
SDLR
);
hgcg003
.
setReceiveDate
(
DateUtils
.
formatShort
(
hgcg003
.
getReceiveDate
()));
DaoUtils
.
insert
(
HGCG003
.
INSERT
,
hgcg003
);
}
/**
* 数据校验
*
* @param fCg003s
* @param dbCg003Map
*/
private
void
check
Save
Data
(
List
<
HGCG003
>
fCg003s
,
Map
<
String
,
HGCG003
>
dbCg003Map
)
{
private
void
check
Edit
Data
(
List
<
HGCG003
>
fCg003s
,
Map
<
String
,
HGCG003
>
dbCg003Map
)
{
// 查询合同信息
List
<
String
>
contractNos
=
ObjectUtils
.
listEpKey
(
dbCg003Map
.
values
(),
HGCG003
.
FIELD_CONTRACT_NO
);
Map
<
String
,
HGCG002A
>
dbCg002AMap
=
HGCGTools
.
HgCg002
.
map
(
contractNos
);
...
...
@@ -135,13 +157,13 @@ public class ServiceHGCG003 extends ServiceBase {
}
/**
* 数据
保存
* 数据
修改,修改合同数据
*
* @param fCg003s
* @param dbCg003Map
* @param dbCg002AMap
*/
private
void
save
Data
(
List
<
HGCG003
>
fCg003s
,
Map
<
String
,
HGCG003
>
dbCg003Map
,
Map
<
String
,
HGCG002A
>
dbCg002AMap
)
{
private
void
edit
Data
(
List
<
HGCG003
>
fCg003s
,
Map
<
String
,
HGCG003
>
dbCg003Map
,
Map
<
String
,
HGCG002A
>
dbCg002AMap
)
{
for
(
HGCG003
fCg003
:
fCg003s
)
{
String
receiveNo
=
fCg003
.
getReceiveNo
();
String
contractNo
=
fCg003
.
getContractNo
();
...
...
@@ -213,9 +235,10 @@ public class ServiceHGCG003 extends ServiceBase {
HGCG003
dbCg003
=
dbCg003Map
.
get
(
receiveNo
);
dbCg003
.
setDeleteFlag
(
DeleteFlagEnum
.
REMOVE
.
getCode
());
DaoUtils
.
update
(
HGCG003
.
DELETE
,
dbCg003
);
// 更新合同状态
HGCGTools
.
HgCg002
.
updateReceive
(
dbCg002AMap
.
get
(
contractNo
),
dbCg003
.
getReceiveQty
().
negate
());
if
(
fCg003
.
getSource
().
intValue
()
==
HGConstant
.
CgSource
.
DEFAULT
){
// 更新合同状态
HGCGTools
.
HgCg002
.
updateReceive
(
dbCg002AMap
.
get
(
contractNo
),
dbCg003
.
getReceiveQty
().
negate
());
}
}
//子表修改
List
<
Long
>
cg003Ids
=
fCg003s
.
stream
().
map
(
o
->
o
.
getId
()).
collect
(
Collectors
.
toList
());
...
...
@@ -225,10 +248,14 @@ public class ServiceHGCG003 extends ServiceBase {
Map
<
Long
,
HGCG002B
>
dbCg002BMap
=
HGCGUtils
.
HgCg002B
.
lockGetData
(
ObjectUtils
.
listEpKey
(
fCg003Bs
,
HGCG003B
.
FIELD_CONTRACT_DETAIL_ID
));
for
(
HGCG003B
fCg003B
:
fCg003Bs
)
{
HGCG003
hgcg003
=
fCg003s
.
stream
().
filter
(
o
->
o
.
getId
().
compareTo
(
fCg003B
.
getPrimaryId
())
==
0
).
findAny
().
orElse
(
null
);
fCg003B
.
setDeleteFlag
(
DeleteFlagEnum
.
REMOVE
.
getCode
());
DaoUtils
.
update
(
HGCG003B
.
DELETE
,
fCg003B
);
// 更新合同状态
HGCGTools
.
HgCg002B
.
updateReceive
(
dbCg002BMap
.
get
(
fCg003B
.
getContractDetailId
()),
fCg003B
.
getReceiveQty
().
negate
());
//数据来源为合同的才需要更新合同状态
if
(
Objects
.
nonNull
(
hgcg003
)
&&
hgcg003
.
getSource
().
intValue
()
==
HGConstant
.
CgSource
.
DEFAULT
){
// 更新合同状态
HGCGTools
.
HgCg002B
.
updateReceive
(
dbCg002BMap
.
get
(
fCg003B
.
getContractDetailId
()),
fCg003B
.
getReceiveQty
().
negate
());
}
}
}
}
...
...
@@ -291,4 +318,48 @@ public class ServiceHGCG003 extends ServiceBase {
}
}
/**
* 修改状态
*/
@OperationLogAnnotation
(
operModul
=
"采购收货"
,
operType
=
"确认收货"
,
operDesc
=
"修改状态操作"
)
public
EiInfo
updateStatus
(
EiInfo
inInfo
){
int
i
=
0
;
try
{
HGCG003
hgcg003
=
new
HGCG003
();
EiBlock
eiBlock
=
inInfo
.
getBlock
(
EiConstant
.
resultBlock
);
for
(
i
=
0
;
i
<
eiBlock
.
getRowCount
();
i
++)
{
Map
<?,
?>
map
=
eiBlock
.
getRow
(
i
);
hgcg003
.
fromMap
(
map
);
HGCG003
old
=
HGCGTools
.
HgCg003
.
get
(
hgcg003
.
getId
());
hgcg003
.
setReceiveNo
(
old
.
getReceiveNo
());
DaoUtils
.
update
(
HGCG003
.
UPDATE_STATUS
,
hgcg003
);
this
.
putInStorageData
(
old
);
}
inInfo
.
setStatus
(
EiConstant
.
STATUS_SUCCESS
);
inInfo
.
setMsgByKey
(
"ep.1000"
,
new
String
[]{
String
.
valueOf
(
i
),
I18nMessages
.
getText
(
"label.update"
,
"修改"
)});
}
catch
(
PlatException
e
)
{
e
.
printStackTrace
();
inInfo
.
setStatus
(
EiConstant
.
STATUS_FAILURE
);
ErrorCodeUtils
.
handleUpdateException
(
inInfo
,
i
,
e
);
logError
(
"修改失败"
,
e
.
getMessage
());
return
inInfo
;
}
return
inInfo
;
}
private
void
putInStorageData
(
HGCG003
hgcg003
)
{
List
<
HGCG003B
>
hgcg003BList
=
HGCGTools
.
HgCg003B
.
listByPrimaryId
(
hgcg003
.
getId
());
AssertUtils
.
isTrue
(
CollectionUtils
.
isEmpty
(
hgcg003BList
),
String
.
format
(
"收货单明细[%s]为空"
,
hgcg003
.
getReceiveNo
()));
hgcg003BList
.
forEach
(
o
->{
Map
<
String
,
Object
>
paramDetailMap
=
new
HashMap
<>();
paramDetailMap
.
put
(
HGCG003B
.
FIELD_ID
,
o
.
getId
());
paramDetailMap
.
put
(
HGCG003B
.
FIELD_STATUS
,
HGConstant
.
CgReceiveStatus
.
S_2
);
paramDetailMap
.
put
(
HGCG003B
.
FIELD_DELIVER_QTY
,
0
);
paramDetailMap
.
put
(
HGCG003B
.
FIELD_DEPOSIT_QTY
,
o
.
getReceiveQty
());
DaoUtils
.
update
(
HGSqlConstant
.
HgCg003B
.
UPDATE_CONFIRM
,
paramDetailMap
);
//采购入库
HGKCTools
.
HgKc001
.
putInStorageData
(
o
.
getId
());
});
}
}
src/main/java/com/baosight/hggp/hg/cg/service/ServiceHGCG003B.java
View file @
3a4830b3
...
...
@@ -2,6 +2,7 @@ package com.baosight.hggp.hg.cg.service;
import
com.baosight.hggp.aspect.annotation.OperationLogAnnotation
;
import
com.baosight.hggp.common.DdynamicEnum
;
import
com.baosight.hggp.common.InventTypeDetailEnum
;
import
com.baosight.hggp.core.dao.DaoUtils
;
import
com.baosight.hggp.core.enums.DeleteFlagEnum
;
import
com.baosight.hggp.core.security.UserSessionUtils
;
...
...
@@ -10,17 +11,17 @@ import com.baosight.hggp.hg.cg.tools.HGCGTools;
import
com.baosight.hggp.hg.cg.utils.HGCGUtils
;
import
com.baosight.hggp.hg.constant.HGConstant
;
import
com.baosight.hggp.hg.constant.HGSqlConstant
;
import
com.baosight.hggp.hg.pz.domain.HGPZ004
;
import
com.baosight.hggp.hg.pz.domain.HGPZ005
;
import
com.baosight.hggp.hg.xs.domain.Company
;
import
com.baosight.hggp.util.*
;
import
com.baosight.iplat4j.core.ei.EiConstant
;
import
com.baosight.iplat4j.core.ei.EiInfo
;
import
com.baosight.iplat4j.core.service.impl.ServiceBase
;
import
com.baosight.iplat4j.ed.util.SequenceGenerator
;
import
java.math.BigDecimal
;
import
java.util.Arrays
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
/**
* @author:songx
...
...
@@ -42,6 +43,11 @@ public class ServiceHGCG003B extends ServiceBase {
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
SUP_RECORD_BLOCK_ID
));
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
INVENT_RECORD_BLOCK_ID
));
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
SPEC_NAME_BLOCK_ID
));
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
INVENT_RECORD_BOX_BLOCK_ID
),
new
HashMap
<
String
,
Object
>(){{
put
(
HGPZ005
.
FIELD_STATUS
,
1
);
put
(
HGPZ004
.
FIELD_INVENT_TYPE_DETAILS
,
InventTypeDetailEnum
.
getProdTypeSix
());
}},
false
);
EiInfoUtils
.
addBlock
(
inInfo
,
"roleCompany"
,
UserSessionUtils
.
getRoleCompany
(),
Company
.
class
);
inInfo
.
addBlock
(
EiConstant
.
resultBlock
).
addBlockMeta
(
new
HGCG003B
().
eiMetadata
);
}
catch
(
Exception
e
)
{
...
...
@@ -77,19 +83,35 @@ public class ServiceHGCG003B extends ServiceBase {
public
EiInfo
save
(
EiInfo
inInfo
)
{
try
{
List
<
HGCG003B
>
fCg003Bs
=
MapUtils
.
toDaoEPBase
(
inInfo
,
HGCG003B
.
class
);
// 采购收货DB数据
Map
<
Long
,
HGCG003B
>
dbCg003BMap
=
HGCGUtils
.
HgCg003B
.
lockGetDataEp
(
fCg003Bs
);
HGCG003
cg003
=
HGCGTools
.
HgCg003
.
get
(
fCg003Bs
.
get
(
0
).
getPrimaryId
());
// 采购合同DB数据
Map
<
String
,
HGCG002A
>
dbCg002AMap
=
HGCGUtils
.
HgCg002
.
lockGetData
(
ObjectUtils
.
listEpKey
(
fCg003Bs
,
HGCG003B
.
FIELD_CONTRACT_NO
));
// 采购合同明细DB数据
Map
<
Long
,
HGCG002B
>
dbCg002BMap
=
HGCGUtils
.
HgCg002B
.
lockGetData
(
ObjectUtils
.
listEpKey
(
fCg003Bs
,
HGCG003B
.
FIELD_CONTRACT_DETAIL_ID
));
// 数据校验
this
.
checkSaveData
(
fCg003Bs
,
dbCg003BMap
,
cg003
);
// 保存数据
this
.
saveData
(
fCg003Bs
,
dbCg003BMap
,
dbCg002AMap
,
cg003
,
dbCg002BMap
);
if
(
cg003
.
getSource
().
intValue
()
==
HGConstant
.
CgSource
.
DEFAULT
){
// 采购收货DB数据
Map
<
Long
,
HGCG003B
>
dbCg003BMap
=
HGCGUtils
.
HgCg003B
.
lockGetDataEp
(
fCg003Bs
);
// 采购合同DB数据
Map
<
String
,
HGCG002A
>
dbCg002AMap
=
HGCGUtils
.
HgCg002
.
lockGetData
(
ObjectUtils
.
listEpKey
(
fCg003Bs
,
HGCG003B
.
FIELD_CONTRACT_NO
));
// 采购合同明细DB数据
Map
<
Long
,
HGCG002B
>
dbCg002BMap
=
HGCGUtils
.
HgCg002B
.
lockGetData
(
ObjectUtils
.
listEpKey
(
fCg003Bs
,
HGCG003B
.
FIELD_CONTRACT_DETAIL_ID
));
// 数据校验
this
.
checkEditData
(
fCg003Bs
,
dbCg003BMap
,
cg003
);
// 保存数据
this
.
editData
(
fCg003Bs
,
dbCg003BMap
,
dbCg002AMap
,
cg003
,
dbCg002BMap
);
}
else
{
// 写入数据
for
(
int
i
=
0
;
i
<
fCg003Bs
.
size
();
i
++)
{
HGCG003B
hgcg003B
=
fCg003Bs
.
get
(
i
);
if
(
hgcg003B
.
getId
()
==
null
||
hgcg003B
.
getId
()
==
0
)
{
// 修改数据
this
.
saveData
(
hgcg003B
,
cg003
);
}
else
{
this
.
updateData
(
hgcg003B
);
}
}
//修改主表信息
updateCg003Pur
(
cg003
);
}
inInfo
=
this
.
query
(
inInfo
);
inInfo
.
setStatus
(
EiConstant
.
STATUS_DEFAULT
);
inInfo
.
setMsg
(
"操作成功!本次对["
+
fCg003Bs
.
size
()
+
"]条数据保存成功!"
);
...
...
@@ -105,7 +127,7 @@ public class ServiceHGCG003B extends ServiceBase {
* @param dbCg003Map
* @param cg003
*/
private
void
check
Save
Data
(
List
<
HGCG003B
>
fCg003Bs
,
Map
<
Long
,
HGCG003B
>
dbCg003Map
,
HGCG003
cg003
)
{
private
void
check
Edit
Data
(
List
<
HGCG003B
>
fCg003Bs
,
Map
<
Long
,
HGCG003B
>
dbCg003Map
,
HGCG003
cg003
)
{
// 查询合同信息
List
<
String
>
contractNos
=
ObjectUtils
.
listEpKey
(
dbCg003Map
.
values
(),
HGCG003
.
FIELD_CONTRACT_NO
);
Map
<
String
,
HGCG002A
>
dbCg002AMap
=
HGCGTools
.
HgCg002
.
map
(
contractNos
);
...
...
@@ -136,7 +158,7 @@ public class ServiceHGCG003B extends ServiceBase {
* @param cg003
* @param dbCg002BMap
*/
private
void
save
Data
(
List
<
HGCG003B
>
fCg003Bs
,
Map
<
Long
,
HGCG003B
>
dbCg003BMap
,
Map
<
String
,
HGCG002A
>
dbCg002AMap
,
HGCG003
cg003
,
Map
<
Long
,
HGCG002B
>
dbCg002BMap
)
{
private
void
edit
Data
(
List
<
HGCG003B
>
fCg003Bs
,
Map
<
Long
,
HGCG003B
>
dbCg003BMap
,
Map
<
String
,
HGCG002A
>
dbCg002AMap
,
HGCG003
cg003
,
Map
<
Long
,
HGCG002B
>
dbCg002BMap
)
{
for
(
HGCG003B
fCg003B
:
fCg003Bs
)
{
// 计算重量
fCg003B
.
setReceiveWeight
(
fCg003B
.
getReceiveQty
().
multiply
(
fCg003B
.
getReceiveUnitWeight
()));
...
...
@@ -156,6 +178,25 @@ public class ServiceHGCG003B extends ServiceBase {
updateCg003Pur
(
cg003
);
}
private
void
saveData
(
HGCG003B
hgcg003B
,
HGCG003
cg003
)
{
// 新增数据
hgcg003B
.
setPrimaryId
(
cg003
.
getId
());
hgcg003B
.
setReceiveNo
(
cg003
.
getReceiveNo
());
hgcg003B
.
setStatus
(
HGConstant
.
CgReceiveStatus
.
S_0
);
hgcg003B
.
setDeleteFlag
(
DeleteFlagEnum
.
UN_REMOVE
.
getCode
());
hgcg003B
.
setReceiveDate
(
DateUtils
.
formatShort
(
cg003
.
getReceiveDate
()));
hgcg003B
.
setCompanyCode
(
cg003
.
getCompanyCode
());
hgcg003B
.
setCompanyName
(
cg003
.
getCompanyName
());
hgcg003B
.
setDepCode
(
cg003
.
getDepCode
());
hgcg003B
.
setAccountCode
(
cg003
.
getAccountCode
());
DaoUtils
.
insert
(
HGCG003B
.
INSERT
,
hgcg003B
);
}
private
void
updateData
(
HGCG003B
hgcg003B
)
{
// 新增数据
DaoUtils
.
update
(
HGCG003B
.
UPDATE
,
hgcg003B
);
}
private
void
updateCg003Pur
(
HGCG003
cg003
)
{
List
<
HGCG003B
>
queryCG003Bs
=
HGCGTools
.
HgCg003B
.
listByPrimaryId
(
cg003
.
getId
());
//修改主表信息
...
...
@@ -225,19 +266,29 @@ public class ServiceHGCG003B extends ServiceBase {
* @param dbCg002BMap
*/
private
void
removeData
(
List
<
HGCG003B
>
fCg003Bs
,
Map
<
Long
,
HGCG003B
>
dbCg003bMap
,
Map
<
String
,
HGCG002A
>
dbCg002AMap
,
HGCG003
cg003
,
Map
<
Long
,
HGCG002B
>
dbCg002BMap
)
{
for
(
HGCG003B
fCg003B
:
fCg003Bs
)
{
HGCG003B
dbCg003B
=
dbCg003bMap
.
get
(
fCg003B
.
getId
());
dbCg003B
.
setDeleteFlag
(
DeleteFlagEnum
.
REMOVE
.
getCode
());
DaoUtils
.
update
(
HGCG003B
.
DELETE
,
dbCg003B
);
// 更新合同状态
HGCGTools
.
HgCg002B
.
updateReceive
(
dbCg002BMap
.
get
(
fCg003B
.
getContractDetailId
()),
dbCg003B
.
getReceiveQty
().
negate
());
//数据来源为合同的
if
(
cg003
.
getSource
().
intValue
()
==
HGConstant
.
CgSource
.
DEFAULT
){
for
(
HGCG003B
fCg003B
:
fCg003Bs
)
{
HGCG003B
dbCg003B
=
dbCg003bMap
.
get
(
fCg003B
.
getId
());
dbCg003B
.
setDeleteFlag
(
DeleteFlagEnum
.
REMOVE
.
getCode
());
DaoUtils
.
update
(
HGCG003B
.
DELETE
,
dbCg003B
);
// 更新合同状态
HGCGTools
.
HgCg002B
.
updateReceive
(
dbCg002BMap
.
get
(
fCg003B
.
getContractDetailId
()),
dbCg003B
.
getReceiveQty
().
negate
());
}
List
<
HGCG002
>
hgcg002List
=
new
LinkedList
<>();
dbCg002AMap
.
forEach
((
k
,
v
)->{
hgcg002List
.
add
(
v
);
});
//根据子表明细刷新合同主表信息
HGCGTools
.
HgCg002
.
updateContractPrimary
(
hgcg002List
);
}
else
{
//手工录入的
for
(
HGCG003B
fCg003B
:
fCg003Bs
)
{
HGCG003B
dbCg003B
=
dbCg003bMap
.
get
(
fCg003B
.
getId
());
dbCg003B
.
setDeleteFlag
(
DeleteFlagEnum
.
REMOVE
.
getCode
());
DaoUtils
.
update
(
HGCG003B
.
DELETE
,
dbCg003B
);
}
}
List
<
HGCG002
>
hgcg002List
=
new
LinkedList
<>();
dbCg002AMap
.
forEach
((
k
,
v
)->{
hgcg002List
.
add
(
v
);
});
//根据子表明细刷新合同主表信息
HGCGTools
.
HgCg002
.
updateContractPrimary
(
hgcg002List
);
//修改主表信息
updateCg003Pur
(
cg003
);
}
...
...
src/main/java/com/baosight/hggp/hg/cg/sql/HGCG003A.xml
View file @
3a4830b3
...
...
@@ -440,6 +440,9 @@
<isNotEmpty
prepend=
" AND "
property=
"status"
>
b.STATUS = #status#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"source"
>
b.SOURCE = #source#
</isNotEmpty>
<include
refid=
"idCondition"
/>
<dynamic
prepend=
"ORDER BY"
>
<isNotEmpty
property=
"orderBy"
>
...
...
src/main/java/com/baosight/hggp/hg/pz/service/ServiceHGPZ005.java
View file @
3a4830b3
...
...
@@ -302,6 +302,26 @@ public class ServiceHGPZ005 extends ServiceBase {
}
/**
* 下拉框 (不默认状态)
*
* @param inInfo
* @return
*/
@OperationLogAnnotation
(
operModul
=
"存货档案"
,
operType
=
"查询"
,
operDesc
=
"下拉框(耗材)"
)
public
EiInfo
queryInventCodeProdTypeSixBox
(
EiInfo
inInfo
)
{
try
{
List
<
DdynamicEnum
>
list
=
new
ArrayList
<>();
list
.
add
(
DdynamicEnum
.
INVENT_RECORD_BOX_BLOCK_ID
);
inInfo
.
setCell
(
EiConstant
.
queryBlock
,
ACConstants
.
ROW_CODE_0
,
HGPZ004
.
FIELD_INVENT_TYPE_DETAILS
,
InventTypeDetailEnum
.
getProdTypeSix
());
inInfo
.
setCell
(
EiConstant
.
queryBlock
,
ACConstants
.
ROW_CODE_0
,
HGPZ005
.
FIELD_STATUS
,
1
);
CommonMethod
.
initBlock
(
inInfo
,
list
,
EiInfoUtils
.
getFirstRow
(
inInfo
),
false
);
}
catch
(
Exception
e
)
{
LogUtils
.
setDetailMsg
(
inInfo
,
e
,
"查询规格失败"
);
}
return
inInfo
;
}
/**
* 下拉框
*
* @param inInfo
...
...
src/main/java/com/baosight/hggp/hg/zl/service/ServiceHGZL001B.java
View file @
3a4830b3
...
...
@@ -67,7 +67,7 @@ public class ServiceHGZL001B extends ServiceEPBase {
public
EiInfo
query
(
EiInfo
inInfo
)
{
try
{
Map
queryMap
=
EiInfoUtils
.
getFirstRow
(
inInfo
);
queryMap
.
put
(
HGCG003B
.
FIELD_S
TATUS
,
HGConstant
.
CgReceiveStatus
.
S_0
);
queryMap
.
put
(
HGCG003B
.
FIELD_S
OURCE
,
HGConstant
.
CgSource
.
DEFAULT
);
inInfo
=
super
.
query
(
inInfo
,
HGCG003B
.
QUERY_BY_QUALITY_TESTING
,
new
HGCG003B
());
}
catch
(
Exception
e
)
{
LogUtils
.
setDetailMsg
(
inInfo
,
e
,
"查询失败"
);
...
...
src/main/webapp/HG/CG/HGCG003.js
View file @
3a4830b3
$
(
function
()
{
var
companyCodeBox
=
__eiInfo
.
getBlock
(
"roleCompany"
).
getMappedRows
();
var
userByCompany
=
__eiInfo
.
getBlock
(
"userByCompany"
).
getMappedRows
();
IPLATUI
.
EFGrid
=
{
"result"
:
{
exportGrid
:
false
,
// 隐藏右侧自定义导出按钮
...
...
@@ -15,21 +16,89 @@ $(function () {
let
template
=
''
;
if
(
!
isBlank
(
item
.
id
)){
template
+=
'<a style="cursor: pointer;display: inline-flex;justify-content: center;margin:auto 5px" '
+
'onclick="showDetail('
+
item
.
id
+
', '
+
item
.
status
+
')" >详情</a>'
;
+
'onclick="showDetail('
+
item
.
id
+
', '
+
item
.
status
+
', '
+
item
.
source
+
')" >详情</a>'
;
}
if
(
item
.
status
==
0
&&
item
.
source
==
1
)
{
template
+=
'<a style="cursor: pointer;display: inline-flex;justify-content: center;margin:auto 5px" '
+
'onclick="updateStatus('
+
item
.
id
+
',2)" >确认收货</a>'
;
}
return
template
;
}
},
{
field
:
"companyCode"
,
title
:
"公司编码"
,
template
:
function
(
dataItem
)
{
for
(
let
i
=
0
;
i
<
companyCodeBox
.
length
;
i
++
)
{
if
(
companyCodeBox
[
i
][
'companyCode'
]
===
dataItem
[
'companyCode'
])
{
return
companyCodeBox
[
i
][
'companyCode'
];
}
}
return
dataItem
[
"companyCode"
];
}
},
{
field
:
"purUserName"
,
template
:
function
(
dataItem
)
{
for
(
let
i
=
0
;
i
<
userByCompany
.
length
;
i
++
)
{
let
purUserName
=
dataItem
[
'purUserName'
];
if
(
purUserName
){
if
(
userByCompany
[
i
][
'userName'
]
===
purUserName
.
userName
)
{
return
userByCompany
[
i
][
'userName'
];
}
}
}
return
dataItem
[
"purUserName"
];
},
editor
:
function
(
container
,
options
)
{
let
inInfo
=
new
EiInfo
();
inInfo
.
set
(
"inqu_status-0-companyCode"
,
options
.
model
[
"companyCode"
]);
inInfo
.
set
(
"field"
,
options
.
field
);
EiCommunicator
.
send
(
"HGSC001"
,
"userByCompanyComboBox"
,
inInfo
,
{
onSuccess
:
function
(
ei
)
{
userByCompany
=
ei
.
getBlock
(
"userByCompany"
).
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
:
userByCompany
,
minLength
:
0
,
dataTextField
:
"userName"
,
dataValueField
:
"userName"
,
optionLabelTemplate
:
"[#:loginName#]#:userName#-#:depName#"
,
valueTemplate
:
"[#:loginName#]#:userName#-#:depName#"
,
template
:
"[#:loginName#]#:userName#-#:depName#"
,
filter
:
"contains"
});
}
}
],
beforeEdit
:
function
(
e
)
{
let
item
=
e
.
model
;
if
(
item
.
status
!=
'0'
){
//只有合同生成的不能编辑
if
(
item
.
source
===
'0'
){
e
.
preventDefault
();
}
},
loadComplete
:
function
(
grid
)
{
// 确认
$
(
"#CONFIRM"
).
on
(
"click"
,
confirm
);
// change事件
grid
.
dataSource
.
bind
(
"change"
,
function
(
e
)
{
supCodeChange
(
e
);
if
(
e
.
field
==
"companyCode"
)
{
for
(
let
i
=
0
;
i
<
companyCodeBox
.
length
;
i
++
)
{
if
(
companyCodeBox
[
i
][
'companyCode'
]
===
e
.
items
[
0
][
'companyCode'
])
{
resultGrid
.
setCellValue
(
e
.
items
[
0
],
"companyName"
,
companyCodeBox
[
i
][
'companyName'
]);
}
}
}
});
},
onSave
:
function
(
e
)
{
// 阻止后台请求,使用自定义
...
...
@@ -105,8 +174,16 @@ let save = function () {
return
;
}
for
(
let
i
=
0
;
i
<
rows
.
length
;
i
++
)
{
if
(
!
isPositiveNumber
(
rows
[
i
][
'receiveQty'
]))
{
message
(
"勾选的第"
+
(
i
+
1
)
+
"行收货数量必须大于0"
);
if
(
isBlank
(
rows
[
i
][
'companyCode'
]))
{
message
(
"勾选的第"
+
(
i
+
1
)
+
"行公司编号名称不能为空"
);
return
;
}
if
(
isBlank
(
rows
[
i
][
'supCode'
]))
{
message
(
"勾选的第"
+
(
i
+
1
)
+
"行供应商名称不能为空"
);
return
;
}
if
(
isBlank
(
rows
[
i
][
'purUserName'
]))
{
message
(
"勾选的第"
+
(
i
+
1
)
+
"行采购员不能为空"
);
return
;
}
}
...
...
@@ -172,16 +249,54 @@ let selectContractCallback = function () {
JSColorbox
.
close
();
}
/**
* 供应商变更
*/
let
supCodeChange
=
function
(
e
)
{
if
(
e
.
field
!=
"supCode"
)
{
return
;
}
let
item
=
e
.
items
[
0
];
let
supRecordRows
=
__eiInfo
.
blocks
.
sup_record_block_id
.
rows
;
for
(
let
k
=
0
;
k
<
resultGrid
.
getCheckedRowsIndex
()
+
1
;
k
++
)
{
for
(
let
i
=
0
;
i
<
supRecordRows
.
length
;
i
++
)
{
if
(
supRecordRows
[
i
][
1
]
===
item
.
supCode
)
{
let
supName
=
supRecordRows
[
i
][
0
];
resultGrid
.
setCellValue
(
item
,
'supName'
,
supName
==
null
?
""
:
supName
);
return
;
}
}
}
}
/**
* 显示详情
*/
function
showDetail
(
id
,
status
)
{
function
showDetail
(
id
,
status
,
source
)
{
JSColorbox
.
open
({
href
:
"HGCG003B?methodName=initLoad&inqu_status-0-primaryId="
+
id
+
"&status="
+
status
,
href
:
"HGCG003B?methodName=initLoad&inqu_status-0-primaryId="
+
id
+
"&status="
+
status
+
"&source="
+
source
,
title
:
"<div style='text-align: center;'>详情</div>"
,
width
:
"80%"
,
height
:
"80%"
,
});
}
function
updateStatus
(
id
,
status
)
{
let
inEiInfo
=
new
EiInfo
();
inEiInfo
.
set
(
"result-0-id"
,
id
);
inEiInfo
.
set
(
"result-0-status"
,
status
);
EiCommunicator
.
send
(
'HGCG003'
,
'updateStatus'
,
inEiInfo
,
{
onSuccess
(
response
)
{
NotificationUtil
(
response
.
msg
);
query
();
},
onFail
(
errorMessage
,
status
,
e
)
{
NotificationUtil
(
"执行失败!"
,
"error"
);
}
},
{
async
:
false
}
);
}
src/main/webapp/HG/CG/HGCG003.jsp
View file @
3a4830b3
...
...
@@ -17,6 +17,7 @@
<EF:EFCodeOption
codeName=
"hggp.hgcg.receiveStatus"
/>
</EF:EFSelect>
</div>
<div
class=
"row"
>
<EF:EFSelect
cname=
"公司名称"
blockId=
"inqu_status"
ename=
"companyCode"
row=
"0"
colWidth=
"3"
filter=
"contains"
optionLabel=
"全部"
defultValue=
""
>
...
...
@@ -26,6 +27,12 @@
filter=
"contains"
optionLabel=
"全部"
defultValue=
""
>
<EF:EFOptions
blockId=
"sup_record_block_id"
textField=
"textField"
valueField=
"valueField"
/>
</EF:EFSelect>
<EF:EFSelect
cname=
"数据来源"
blockId=
"inqu_status"
ename=
"source"
row=
"0"
colWidth=
"3"
optionLabel=
"全部"
defultValue=
""
>
<EF:EFCodeOption
codeName=
"hggp.hpcg.receiveSource"
/>
</EF:EFSelect>
</div>
<div>
<EF:EFDateSpan
startCname=
"创建时间(从)"
endCname=
"至"
blockId=
"inqu_status"
startName=
"createdTimeFrom"
endName=
"createdTimeTo"
row=
"0"
role=
"datetime"
format=
"yyyy-MM-dd HH:mm:ss"
ratio=
"3:3"
satrtRatio=
"4:8"
endRatio=
"4:8"
readonly=
"true"
>
...
...
@@ -34,20 +41,32 @@
</EF:EFRegion>
<EF:EFRegion
id=
"result"
title=
"明细信息"
>
<EF:EFGrid
blockId=
"result"
autoDraw=
"override"
isFloat=
"true"
checkMode=
"row"
>
<EF:EFGrid
blockId=
"result"
autoDraw=
"override"
isFloat=
"true"
checkMode=
"row"
copyToAdd=
"false"
>
<EF:EFColumn
ename=
"id"
cname=
"内码"
hidden=
"true"
/>
<EF:EFColumn
ename=
"operator"
cname=
"操作"
locked=
"true"
enable=
"false"
width=
"80"
align=
"center"
/>
<EF:EFColumn
ename=
"companyCode"
cname=
"公司编码"
enable=
"false"
width=
"100"
align=
"center"
hidden=
"true"
/>
<EF:EFColumn
ename=
"companyName"
cname=
"公司名称"
enable=
"false"
width=
"130"
align=
"center"
/>
<EF:EFColumn
ename=
"receiveDate"
cname=
"收货日期"
enable=
"false"
width=
"100"
align=
"center"
editType=
"date"
dateFormat=
"yyyy-MM-dd"
parseFormats=
"['yyyyMMdd']"
/>
<EF:EFColumn
ename=
"operator"
cname=
"操作"
locked=
"true"
enable=
"false"
width=
"120"
align=
"center"
/>
<EF:EFComboColumn
ename=
"source"
cname=
"数据来源"
enable=
"false"
width=
"80"
align=
"center"
>
<EF:EFCodeOption
codeName=
"hggp.hpcg.receiveSource"
/>
</EF:EFComboColumn>
<EF:EFComboColumn
ename=
"companyCode"
cname=
"公司编码"
columnTemplate=
"#=companyName#"
itemTemplate=
"#=companyName#"
textField=
"companyName"
valueField=
"companyCode"
maxLength=
"16"
readonly=
"false"
width=
"100"
required=
"true"
align=
"center"
filter=
"contains"
sort=
"true"
>
<EF:EFOptions
blockId=
"roleCompany"
textField=
"companyName"
valueField=
"companyCode"
/>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"companyName"
cname=
"公司名称"
width=
"120"
enable=
"false"
readonly=
"true"
align=
"center"
/>
<EF:EFColumn
ename=
"receiveDate"
cname=
"收货日期"
width=
"100"
align=
"center"
editType=
"date"
dateFormat=
"yyyy-MM-dd"
parseFormats=
"['yyyyMMdd']"
required=
"true"
/>
<EF:EFColumn
ename=
"receiveNo"
cname=
"收货单号"
enable=
"false"
width=
"120"
align=
"center"
/>
<EF:EFComboColumn
ename=
"status"
cname=
"状态"
enable=
"false"
width=
"80"
align=
"center"
>
<EF:EFCodeOption
codeName=
"hggp.hgcg.receiveStatus"
/>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"supCode"
cname=
"供应商编码"
enable=
"false"
width=
"100"
align=
"center"
hidden=
"true"
/>
<EF:EFColumn
ename=
"supName"
cname=
"供应商名称"
enable=
"false"
width=
"100"
align=
"center"
/>
<EF:EFColumn
ename=
"purUserName"
cname=
"采购员"
enable=
"false"
width=
"100"
align=
"center"
/>
<EF:EFComboColumn
ename=
"supCode"
cname=
"供应商名称"
width=
"120"
align=
"left"
defaultValue=
""
filter=
"contains"
required=
"true"
>
<EF:EFOptions
blockId=
"sup_record_block_id"
valueField=
"valueField"
textField=
"textField"
/>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"supName"
cname=
"供应商名称"
enable=
"false"
width=
"100"
align=
"center"
hidden=
"true"
/>
<EF:EFColumn
ename=
"purUserName"
cname=
"采购员"
width=
"100"
align=
"center"
required=
"true"
/>
<EF:EFColumn
ename=
"receiveQty"
cname=
"收货数量"
enable=
"false"
width=
"120"
align=
"right"
format=
"{0:N0}"
/>
<EF:EFColumn
ename=
"deliverQty"
cname=
"退货数量"
enable=
"false"
width=
"120"
align=
"right"
format=
"{0:N0}"
/>
<EF:EFColumn
ename=
"depositQty"
cname=
"入库数量"
enable=
"false"
width=
"120"
align=
"right"
format=
"{0:N0}"
/>
...
...
@@ -58,8 +77,8 @@
editType=
"datetime"
parseFormats=
"['yyyyMMddHHmmss']"
/>
</EF:EFGrid>
</EF:EFRegion>
<EF:EFRegion
title=
"提示"
>
<span
style=
"color: red"
>
1."待确认"状态时,仅能修改收货数量。
</span><br/
>
</EF:EFRegion
>
<
%
--
<
EF:EFRegion
title=
"提示"
>
--%
>
<
%
--
<
span
style=
"color: red"
>
1."待确认"状态时,仅能修改收货数量。
</span><br/>
--%
>
<
%
--
</
EF:EFRegion
>
--%
>
</EF:EFPage>
src/main/webapp/HG/CG/HGCG003B.js
View file @
3a4830b3
$
(
function
()
{
var
inventRecordBoxBlockId
=
__eiInfo
.
getBlock
(
"invent_record_box_block_id"
).
getMappedRows
();
IPLATUI
.
EFGrid
=
{
"result"
:
{
exportGrid
:
false
,
// 隐藏右侧自定义导出按钮
...
...
@@ -8,14 +8,117 @@ $(function () {
pageSizes
:
[
20
,
50
,
70
,
100
],
},
columns
:
[
{
field
:
"inventCode"
,
template
:
function
(
item
)
{
let
template
=
item
.
inventCode
;
if
(
item
.
inventCode
){
for
(
let
i
=
0
;
i
<
inventRecordBoxBlockId
.
length
;
i
++
){
if
(
item
.
inventCode
===
inventRecordBoxBlockId
[
i
][
'valueField'
]){
template
=
inventRecordBoxBlockId
[
i
][
'valueField'
];
}
else
{
template
=
item
.
inventCode
;
}
}
}
return
template
;
},
editor
:
function
(
container
,
options
)
{
let
inInfo
=
new
EiInfo
();
inInfo
.
set
(
"field"
,
options
.
field
);
let
dataSource
=
inventRecordBoxBlockId
;
EiCommunicator
.
send
(
"HGPZ005"
,
"queryInventCodeProdTypeSixBox"
,
inInfo
,
{
onSuccess
:
function
(
ei
)
{
dataSource
=
ei
.
getBlock
(
"invent_record_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
:
"valueField"
,
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
();
return
$
(
"#inqu_status-0-primaryId"
).
val
();
}
}
],
beforeEdit
:
function
(
e
)
{
var
status
=
$
(
"#status"
).
val
();
if
(
status
!=
'0'
){
e
.
preventDefault
();
}
var
source
=
$
(
"#source"
).
val
();
if
(
source
===
'0'
){
//选择合同的明细不能修改存货信息
for
(
let
i
=
0
;
i
<
e
.
sender
.
columns
.
length
;
i
++
)
{
//指定的列不让修改
if
(
e
.
sender
.
columns
[
i
][
"name"
]
===
"inventCode"
)
{
e
.
sender
.
columns
[
i
][
"enable"
]
=
false
;
e
.
sender
.
columns
[
i
][
"readonly"
]
=
true
;
}
if
(
e
.
sender
.
columns
[
i
][
"name"
]
===
"price"
)
{
e
.
sender
.
columns
[
i
][
"enable"
]
=
false
;
}
}
}
},
loadComplete
:
function
(
grid
)
{
// 此grid对象
grid
.
dataSource
.
bind
(
"change"
,
function
(
e
)
{
//数量发生变化进行计算
if
(
e
.
field
===
"receiveQty"
){
if
(
e
.
items
[
0
].
receiveUnitWeight
!=
null
){
let
receiveWeight
=
e
.
items
[
0
].
receiveQty
*
e
.
items
[
0
].
receiveUnitWeight
;
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'receiveWeight'
,
receiveWeight
);
}
if
(
e
.
items
[
0
].
price
!=
null
){
let
amount
=
e
.
items
[
0
].
receiveQty
*
e
.
items
[
0
].
price
;
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'amount'
,
amount
);
}
}
if
(
e
.
field
===
"price"
){
if
(
e
.
items
[
0
].
receiveQty
!=
null
){
let
amount
=
e
.
items
[
0
].
receiveQty
*
e
.
items
[
0
].
price
;
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'amount'
,
amount
);
}
}
if
(
e
.
field
===
"inventCode"
)
{
for
(
let
i
=
0
;
i
<
inventRecordBoxBlockId
.
length
;
i
++
)
{
if
(
inventRecordBoxBlockId
[
i
][
'valueField'
]
===
e
.
items
[
0
].
inventCode
)
{
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'inventName'
,
inventRecordBoxBlockId
[
i
][
'textField'
])
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'inventTypeDetail'
,
inventRecordBoxBlockId
[
i
][
'param1Field'
])
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'spec'
,
inventRecordBoxBlockId
[
i
][
'param4Field'
])
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'material'
,
inventRecordBoxBlockId
[
i
][
'param5Field'
])
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'unit'
,
inventRecordBoxBlockId
[
i
][
'param6Field'
])
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'length'
,
inventRecordBoxBlockId
[
i
][
'param7Field'
])
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'width'
,
inventRecordBoxBlockId
[
i
][
'param8Field'
])
resultGrid
.
setCellValue
(
e
.
items
[
0
],
'thick'
,
inventRecordBoxBlockId
[
i
][
'param9Field'
])
//系数
let
coefficient
=
inventRecordBoxBlockId
[
i
][
'param10Field'
]
calUnitWeight
(
e
.
items
[
0
],
e
.
items
[
0
].
length
,
e
.
items
[
0
].
width
,
e
.
items
[
0
].
thick
,
coefficient
);
break
}
}
}
})
},
onSave
:
function
(
e
)
{
// 阻止后台请求,使用自定义
...
...
@@ -44,6 +147,20 @@ $(window).load(function () {
query
();
initInventCode
();
var
status
=
$
(
"#status"
).
val
();
if
(
status
!=
'0'
){
$
(
".k-grid-add"
).
hide
();
$
(
".k-grid-save-changes"
).
hide
();
$
(
".k-grid-cancel-changes"
).
hide
();
$
(
".k-grid-delete"
).
hide
();
}
else
{
//合同选择的存货不让新增、删除
var
source
=
$
(
"#source"
).
val
();
if
(
source
===
'0'
){
$
(
".k-grid-save-changes"
).
hide
();
}
}
});
/**
...
...
@@ -115,3 +232,14 @@ let remove = function () {
}
});
}
let
calUnitWeight
=
function
(
item
,
length
,
width
,
thick
,
coefficient
)
{
let
l
=
Number
(
length
)
||
1
;
let
w
=
Number
(
width
)
||
1
;
let
t
=
Number
(
thick
)
||
1
;
let
amount
=
(
l
*
w
*
t
)
>
1
?
l
*
w
*
t
*
Number
(
coefficient
)
/
100000
:
0
;
//item['amount'] = amount.toString();
resultGrid
.
setCellValue
(
item
,
'receiveUnitWeight'
,
amount
);
resultGrid
.
setCellValue
(
item
,
'receiveWeight'
,
item
.
receiveQty
*
amount
);
}
src/main/webapp/HG/CG/HGCG003B.jsp
View file @
3a4830b3
...
...
@@ -9,6 +9,7 @@
<EF:EFRegion
id=
"inqu"
title=
"查询条件"
>
<EF:EFInput
ename=
"inqu_status-0-primaryId"
cname=
"主表id"
colWidth=
"3"
type=
"hidden"
/>
<EF:EFInput
ename=
"status"
cname=
"状态"
colWidth=
"3"
type=
"hidden"
/>
<EF:EFInput
ename=
"source"
cname=
"数据来源"
colWidth=
"3"
type=
"hidden"
/>
<div
class=
"row"
>
<EF:EFSelect
cname=
"存货编号"
blockId=
"inqu_status"
ename=
"inventCode"
row=
"0"
colWidth=
"3"
filter=
"contains"
optionLabel=
"全部"
defultValue=
""
template=
"[#=valueField#]#=textField#"
>
...
...
@@ -20,34 +21,35 @@
<EF:EFRegion
id=
"result"
title=
"明细信息"
>
<EF:EFGrid
blockId=
"result"
autoDraw=
"override"
isFloat=
"true"
checkMode=
"row"
>
<EF:EFColumn
ename=
"id"
cname=
"内码"
hidden=
"true"
/>
<EF:EFColumn
ename=
"primaryId"
cname=
"主表id"
enable=
"false"
width=
"100"
align=
"center"
hidden=
"true"
/>
<EF:EFColumn
ename=
"companyCode"
cname=
"公司编码"
enable=
"false"
width=
"100"
align=
"center"
hidden=
"true"
/>
<EF:EFColumn
ename=
"companyName"
cname=
"公司名称"
enable=
"false"
width=
"130"
align=
"center"
/>
<EF:EFColumn
ename=
"receiveDate"
cname=
"收货日期"
enable=
"false"
width=
"100"
align=
"center"
editType=
"date"
dateFormat=
"yyyy-MM-dd"
parseFormats=
"['yyyyMMdd']"
/>
<EF:EFColumn
ename=
"receiveNo"
cname=
"收货单号"
enable=
"false"
width=
"120"
align=
"center"
/>
<EF:EFComboColumn
ename=
"status"
cname=
"状态"
enable=
"false"
width=
"80"
align=
"center"
>
<EF:EFCodeOption
codeName=
"hggp.hgcg.receiveStatus"
/>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"inventCode"
required=
"true"
cname=
"存货编号"
/>
<EF:EFColumn
ename=
"inventName"
cname=
"存货名称"
width=
"120"
align=
"center"
enable=
"false"
readonly=
"true"
required=
"true"
/>
<EF:EFColumn
ename=
"inventTypeDetail"
cname=
"存货类型大类"
hidden=
"true"
/>
<EF:EFColumn
ename=
"inventCode"
cname=
"存货编码"
enable=
"false"
width=
"100"
align=
"center"
/>
<EF:EFColumn
ename=
"inventName"
cname=
"存货名称"
enable=
"false"
width=
"100"
align=
"center"
/>
<EF:EFColumn
ename=
"specId"
cname=
"规格ID"
enable=
"false"
width=
"100"
align=
"center"
hidden=
"true"
/>
<EF:EFColumn
ename=
"spec"
cname=
"规格"
enable=
"false"
width=
"120"
align=
"center"
/>
<EF:EFColumn
ename=
"receiveQty"
cname=
"收货数量"
width=
"120"
align=
"right"
format=
"{0:N0}"
required=
"true"
/>
<EF:EFColumn
ename=
"deliverQty"
cname=
"退货数量"
enable=
"false"
width=
"120"
align=
"right"
format=
"{0:N0}"
/>
<EF:EFColumn
ename=
"depositQty"
cname=
"入库数量"
enable=
"false"
width=
"120"
align=
"right"
format=
"{0:N0}"
/>
<EF:EFColumn
ename=
"receiveWeight"
cname=
"收货重量"
enable=
"false"
width=
"120"
align=
"right"
format=
"{0:N3}"
/>
<EF:EFColumn
ename=
"price"
cname=
"单价"
width=
"80"
align=
"right"
format=
"{0:N3}"
enable=
"false"
/>
<EF:EFColumn
ename=
"receiveUnitWeight"
cname=
"收货单重"
enable=
"false"
width=
"120"
align=
"right"
format=
"{0:N3}"
hidden=
"true"
/>
<EF:EFColumn
ename=
"price"
cname=
"单价"
width=
"80"
align=
"right"
format=
"{0:N3}"
required=
"true"
/>
<EF:EFColumn
ename=
"amount"
cname=
"金额"
enable=
"false"
width=
"80"
align=
"right"
format=
"{0:N3}"
/>
<EF:EFColumn
ename=
"material"
cname=
"材质"
enable=
"false"
width=
"80"
align=
"center"
/>
<EF:EFColumn
ename=
"unit"
cname=
"单位"
enable=
"false"
width=
"80"
align=
"center"
/>
<EF:EFColumn
ename=
"length"
cname=
"长(MM)"
enable=
"false"
width=
"80"
align=
"right"
format=
"{0:N3}"
/>
<EF:EFColumn
ename=
"width"
cname=
"宽(MM)"
enable=
"false"
width=
"80"
align=
"right"
format=
"{0:N3}"
/>
<EF:EFColumn
ename=
"thick"
cname=
"厚(MM)"
enable=
"false"
width=
"80"
align=
"right"
format=
"{0:N3}"
/>
<EF:EFComboColumn
ename=
"status"
cname=
"状态"
enable=
"false"
width=
"80"
align=
"center"
>
<EF:EFCodeOption
codeName=
"hggp.hgcg.receiveStatus"
/>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"createdName"
cname=
"创建人"
enable=
"false"
width=
"100"
align=
"center"
/>
<EF:EFColumn
ename=
"createdTime"
cname=
"创建时间"
enable=
"false"
width=
"140"
align=
"center"
editType=
"datetime"
parseFormats=
"['yyyyMMddHHmmss']"
/>
<EF:EFColumn
ename=
"companyCode"
cname=
"公司编码"
enable=
"false"
width=
"100"
align=
"center"
hidden=
"true"
/>
<EF:EFColumn
ename=
"companyName"
cname=
"公司名称"
enable=
"false"
width=
"130"
align=
"center"
hidden=
"true"
/>
<EF:EFColumn
ename=
"receiveDate"
cname=
"收货日期"
enable=
"false"
width=
"100"
align=
"center"
editType=
"date"
dateFormat=
"yyyy-MM-dd"
parseFormats=
"['yyyyMMdd']"
hidden=
"true"
/>
<EF:EFColumn
ename=
"receiveNo"
cname=
"收货单号"
enable=
"false"
width=
"120"
align=
"center"
hidden=
"true"
/>
<EF:EFColumn
ename=
"primaryId"
cname=
"主表id"
enable=
"false"
width=
"100"
align=
"center"
hidden=
"true"
/>
</EF:EFGrid>
</EF:EFRegion>
...
...
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