feat(pmo): 同步IMS审批后增加字段翻译功能
- 增加表头和表体的翻译字段定义- 在构建参数时增加对翻译字段的处理逻辑
This commit is contained in:
parent
9401a7b4be
commit
eeb4f20546
|
|
@ -66,11 +66,19 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
||||||
"nnum", "nastnum", "nplanputastnum", "nplanputnum", "nmmastnum", "nmmnum",
|
"nnum", "nastnum", "nplanputastnum", "nplanputnum", "nmmastnum", "nmmnum",
|
||||||
"ninastnum", "ninnum"
|
"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",
|
"nnum", "nastnum", "nplanputastnum", "nplanputnum", "nmmastnum", "nmmnum",
|
||||||
"ninastnum", "ninnum"
|
"ninastnum", "ninnum"
|
||||||
));
|
));
|
||||||
|
// ±íÌå-·Òë×Ö¶Î
|
||||||
|
private Set<String> bodyTransferFields = new HashSet<>(Arrays.asList(
|
||||||
|
"pk_org", "cmaterialvid", "cunitid", "castunitid", "cdeptid", "mocloser", "cinwarehouseid", "vbdef31"
|
||||||
|
));
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@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();
|
SQLParameter headParams = new SQLParameter();
|
||||||
|
|
||||||
if (isUpdate) {
|
if (isUpdate) {
|
||||||
|
|
@ -210,6 +218,8 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
||||||
Object value = pmoHeadVO.getAttributeValue(column);
|
Object value = pmoHeadVO.getAttributeValue(column);
|
||||||
if (headNumFields.contains(column)) {
|
if (headNumFields.contains(column)) {
|
||||||
value = skipNullForNumber(value);
|
value = skipNullForNumber(value);
|
||||||
|
} else if (headTransferFields.contains(column)) {
|
||||||
|
value = transferHeadFields(column, value);
|
||||||
} else {
|
} else {
|
||||||
value = skipNull(value);
|
value = skipNull(value);
|
||||||
}
|
}
|
||||||
|
|
@ -241,7 +251,7 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
||||||
return headParams;
|
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();
|
SQLParameter bodyParams = new SQLParameter();
|
||||||
|
|
||||||
if (isUpdate) {
|
if (isUpdate) {
|
||||||
|
|
@ -257,6 +267,8 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
||||||
// 数值字段需要特殊处理空值
|
// 数值字段需要特殊处理空值
|
||||||
if (bodyNumFields.contains(column)) {
|
if (bodyNumFields.contains(column)) {
|
||||||
value = skipNullForNumber(value);
|
value = skipNullForNumber(value);
|
||||||
|
} else if (bodyTransferFields.contains(column)) {
|
||||||
|
value = transferBodyFields(column, value);
|
||||||
} else {
|
} else {
|
||||||
value = skipNull(value);
|
value = skipNull(value);
|
||||||
}
|
}
|
||||||
|
|
@ -277,6 +289,8 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
||||||
// 数值字段需要特殊处理空值
|
// 数值字段需要特殊处理空值
|
||||||
if (bodyNumFields.contains(column)) {
|
if (bodyNumFields.contains(column)) {
|
||||||
value = skipNullForNumber(value);
|
value = skipNullForNumber(value);
|
||||||
|
} else if (bodyTransferFields.contains(column)) {
|
||||||
|
value = transferBodyFields(column, value);
|
||||||
} else {
|
} else {
|
||||||
value = skipNull(value);
|
value = skipNull(value);
|
||||||
}
|
}
|
||||||
|
|
@ -352,7 +366,60 @@ public class AfterApproveSyncImsRule implements IRule<PMOAggVO> {
|
||||||
NCCForUAPLogger.debug("gyIms-PMO-bodySql = " + bodySql);
|
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