Compare commits
2 Commits
9f392d2142
...
fa5be651bc
| Author | SHA1 | Date |
|---|---|---|
|
|
fa5be651bc | |
|
|
eeb4f20546 |
|
|
@ -66,11 +66,19 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
|||
"nnum", "nastnum", "nplanputastnum", "nplanputnum", "nmmastnum", "nmmnum",
|
||||
"ninastnum", "ninnum"
|
||||
));
|
||||
// ±íÍ·-·Òë×Ö¶Î
|
||||
private Set<String> headTransferFields = new HashSet<>(Arrays.asList(
|
||||
"pk_org", "cplanfactoryid", "approver", "billmaker", "creator"
|
||||
));
|
||||
// 表体-定义数值类型字段列表
|
||||
Set<String> bodyNumFields = new HashSet<>(Arrays.asList(
|
||||
private Set<String> bodyNumFields = new HashSet<>(Arrays.asList(
|
||||
"nnum", "nastnum", "nplanputastnum", "nplanputnum", "nmmastnum", "nmmnum",
|
||||
"ninastnum", "ninnum"
|
||||
));
|
||||
// ±íÌå-·Òë×Ö¶Î
|
||||
private Set<String> bodyTransferFields = new HashSet<>(Arrays.asList(
|
||||
"pk_org", "cmaterialvid", "cunitid", "castunitid", "cdeptid", "mocloser", "cinwarehouseid", "vbdef31"
|
||||
));
|
||||
|
||||
|
||||
@Override
|
||||
|
|
@ -197,7 +205,7 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
|||
}
|
||||
|
||||
|
||||
private SQLParameter buildHeadParameters(PMOHeadVO pmoHeadVO, boolean isUpdate) {
|
||||
private SQLParameter buildHeadParameters(PMOHeadVO pmoHeadVO, boolean isUpdate) throws BusinessException {
|
||||
SQLParameter headParams = new SQLParameter();
|
||||
|
||||
if (isUpdate) {
|
||||
|
|
@ -210,6 +218,8 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
|||
Object value = pmoHeadVO.getAttributeValue(column);
|
||||
if (headNumFields.contains(column)) {
|
||||
value = skipNullForNumber(value);
|
||||
} else if (headTransferFields.contains(column)) {
|
||||
value = transferHeadFields(column, value);
|
||||
} else {
|
||||
value = skipNull(value);
|
||||
}
|
||||
|
|
@ -241,7 +251,7 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
|||
return headParams;
|
||||
}
|
||||
|
||||
private SQLParameter buildBodyParameters(PMOItemVO item, PMOHeadVO pmoHeadVO, boolean isUpdate) {
|
||||
private SQLParameter buildBodyParameters(PMOItemVO item, PMOHeadVO pmoHeadVO, boolean isUpdate) throws BusinessException {
|
||||
SQLParameter bodyParams = new SQLParameter();
|
||||
|
||||
if (isUpdate) {
|
||||
|
|
@ -257,6 +267,8 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
|||
// 数值字段需要特殊处理空值
|
||||
if (bodyNumFields.contains(column)) {
|
||||
value = skipNullForNumber(value);
|
||||
} else if (bodyTransferFields.contains(column)) {
|
||||
value = transferBodyFields(column, value);
|
||||
} else {
|
||||
value = skipNull(value);
|
||||
}
|
||||
|
|
@ -277,6 +289,8 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
|||
// 数值字段需要特殊处理空值
|
||||
if (bodyNumFields.contains(column)) {
|
||||
value = skipNullForNumber(value);
|
||||
} else if (bodyTransferFields.contains(column)) {
|
||||
value = transferBodyFields(column, value);
|
||||
} else {
|
||||
value = skipNull(value);
|
||||
}
|
||||
|
|
@ -352,7 +366,60 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
|||
NCCForUAPLogger.debug("gyIms-PMO-bodySql = " + bodySql);
|
||||
}
|
||||
}
|
||||
// logger.error("gyIms-PMO-res = " + result);
|
||||
}
|
||||
|
||||
private String transferHeadFields(String column, Object value) throws BusinessException {
|
||||
String result = "";
|
||||
if (value == null) {
|
||||
return "";
|
||||
}
|
||||
String userSql = " select user_code from sm_user where dr = 0 and cuserid = '[value]' ";
|
||||
if ("approver".equals(column) || "billmaker".equals(column) || "creator".equals(column)) {
|
||||
userSql = userSql.replace("[value]", value.toString());
|
||||
result = (String) baseDAO.executeQuery(userSql, new ColumnProcessor());
|
||||
} else if ("pk_org".equals(column)) {
|
||||
String sql = " select code from org_factory where nvl(dr,0) = 0 and pk_factory = '[value]' ";
|
||||
sql = sql.replace("[value]", value.toString());
|
||||
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
|
||||
} else if ("cplanfactoryid".equals(column)) {
|
||||
String sql = " select code from org_orgs where nvl(dr,0) = 0 and pk_org = '[value]' ";
|
||||
sql = sql.replace("[value]", value.toString());
|
||||
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private String transferBodyFields(String column, Object value) throws BusinessException {
|
||||
String result = "";
|
||||
if (value == null || "".equals(value) || "~".equals(value)) {
|
||||
return "";
|
||||
}
|
||||
String userSql = " select user_code from sm_user where dr = 0 and cuserid = '[value]' ";
|
||||
if ("mocloser".equals(column)) {
|
||||
userSql = userSql.replace("[value]", value.toString());
|
||||
result = (String) baseDAO.executeQuery(userSql, new ColumnProcessor());
|
||||
} else if ("pk_org".equals(column)) {
|
||||
String sql = " select code from org_orgs where nvl(dr,0) = 0 and pk_org = '[value]' ";
|
||||
sql = sql.replace("[value]", value.toString());
|
||||
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
|
||||
} else if ("cmaterialvid".equals(column)) {
|
||||
String sql = " select code from bd_material where nvl(dr,0) = 0 and pk_material = '[value]' ";
|
||||
sql = sql.replace("[value]", value.toString());
|
||||
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
|
||||
} else if ("cunitid".equals(column) || "castunitid".equals(column)) {
|
||||
String sql = " select code from bd_measdoc where nvl(dr,0) = 0 and pk_measdoc = '[value]' ";
|
||||
sql = sql.replace("[value]", value.toString());
|
||||
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
|
||||
} else if ("cdeptid".equals(column)) {
|
||||
String sql = " select code from org_dept where nvl(dr,0) = 0 and pk_dept = '[value]' ";
|
||||
sql = sql.replace("[value]", value.toString());
|
||||
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
|
||||
} else if ("cinwarehouseid".equals(column) || "vbdef31".equals(column)) {
|
||||
String sql = " select code from bd_stordoc where nvl(dr,0) = 0 and pk_stordoc = '[value]' ";
|
||||
sql = sql.replace("[value]", value.toString());
|
||||
result = (String) baseDAO.executeQuery(sql, new ColumnProcessor());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue