Bom: 修改 BOM 保存逻辑

-增加排除用户和金思维 MES 同步组织的判断逻辑
- 对不同情况执行相应的保存处理逻辑
- 优化异常处理,确保错误信息正确记录
This commit is contained in:
maolei 2025-06-19 14:58:28 +08:00
parent 3a39c9d9c7
commit 27aefc328d
1 changed files with 54 additions and 2 deletions

View File

@ -199,9 +199,61 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
}
return ResultMessageUtil.toJSON(newAggVOList.toArray(new AggBomVO[0]), "100999",
"BOM保存提交成功部分成功部分失败", true);
}else{
ExceptionUtils.wrappBusinessException("未匹配到符合条件的三方注册用户账号【"+userCode+"】,请检查!!!");
} else {
try {
IHttpPostOtherSys httpPostOtherSys = NCLocator.getInstance().lookup(IHttpPostOtherSys.class);
// 检查当前用户是否为排除用户
if (httpPostOtherSys.checkIfExcludeUser()) {
// 排除用户直接跳过同步处理执行普通保存逻辑
for (AggBomVO aggvo : commitAggvoList) {
result = service.insertBom(new AggBomVO[] { aggvo });
newAggVOList.add(result[0]);
}
return ResultMessageUtil.toJSON(newAggVOList.toArray(new AggBomVO[0]), "BOM保存成功(排除用户)");
}
// 检查当前组织是否属于金思维MES同步组织(电缆组织)
String currentOrgCode = this.orgCodeFlag;
boolean isIncludeOrg = httpPostOtherSys.checkIfIncludeOrg(currentOrgCode);
if (isIncludeOrg) {
// 属于金思维MES同步组织执行特殊处理逻辑
for (AggBomVO aggvo : commitAggvoList) {
result = service.insertCommitBomWithParam(new AggBomVO[] { aggvo }, true, true);
newAggVOList.add(result[0]);
}
return ResultMessageUtil.toJSON(newAggVOList.toArray(new AggBomVO[0]), "BOM保存成功(金思维MES同步组织)");
} else {
// 不属于金思维MES同步组织执行默认处理逻辑
for (AggBomVO aggvo : commitAggvoList) {
try {
result = service.insertCommitBomWithParam_RequiresNew(new AggBomVO[] { aggvo }, true, true);
newAggVOList.add(result[0]);
} catch (Exception e) {
if (e.getMessage() != null) {
if (e.getMessage().length() > 100) {
aggvo.getParent().setAttributeValue("hvdef2", e.getMessage().substring(0, 100));
} else {
aggvo.getParent().setAttributeValue("hvdef2",
e.getMessage().substring(0, e.getMessage().length() - 1));
}
} else {
Throwable unmarsh = ExceptionUtils.unmarsh(e);
aggvo.getParent().setAttributeValue("hvdef2", "异常" + unmarsh.getMessage());
}
newAggVOList.add(aggvo);
}
}
return ResultMessageUtil.toJSON(newAggVOList.toArray(new AggBomVO[0]), "100999",
"BOM保存提交成功部分成功部分失败", true);
}
} catch (BusinessException e) {
// HTTP工具类调用失败时回退到原有的异常处理
ExceptionUtils.wrappBusinessException("HTTP工具类判断失败" + e.getMessage() + ",未匹配到符合条件的三方注册用户账号【"+userCode+"】,请检查!!!");
}
}
} else {
return ResultMessageUtil.exceptionToJSON("BOM保存失败,新增不允许单据状态自由或者空和审批通过同时存在", "999");
}