优化流程生产订单保存逻辑

- 添加调试日志,便于跟踪保存操作流程
- 修改组织编码处理逻辑,支持直接传递编码而非主键- 优化自动投放逻辑,增加日志记录和异常处理
- 修复传入数据异常时的错误提示
This commit is contained in:
张明 2025-06-19 10:19:43 +08:00
parent 9c861128f5
commit 69392ee61c
1 changed files with 13 additions and 10 deletions

View File

@ -15,6 +15,7 @@ import nc.bs.logging.Log;
import nc.jdbc.framework.processor.MapListProcessor;
import nc.util.mmf.framework.base.MMCollectionUtil;
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
import nc.vo.org.OrgVO;
import nc.vo.pub.BusinessException;
import nc.ws.opm.pub.utils.result.APIErrCodeEnum;
import nccloud.api.mmpac.pmo.IAPIPmoMaintainService;
@ -41,6 +42,7 @@ public class PmoResource extends AbstractNCCRestResource {
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString save(Map<String, Object> paramMap) {
logger.debug("=================开始进行流程生产订单的保存操作,交易类型为 保存即审批 审批后自动设置整单投放================");
List<Map<String, Object>> paramList = (List) paramMap.get("data");
PMOAggVO[] insertBills = null;
@ -53,28 +55,29 @@ public class PmoResource extends AbstractNCCRestResource {
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含表头信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
}
IAPIPmoMaintainService serv = (IAPIPmoMaintainService) NCLocator.getInstance().lookup(IAPIPmoMaintainService.class);
insertBills = serv.save(paramList);
// 遍历paramList判断组织是否需要自动投放
for (Map<String, Object> map : paramList) {
Map<String, Object> head = (Map<String, Object>) map.get(HEADTABLE);
if (head == null) continue;
String pk_org = (String) head.get("pk_org");
String orgCode = null;
orgCode = httpPostOtherSys.transferCodeByPk("org_orgs", "code", "pk_org", pk_org);
logger.debug("转换pk_org[" + pk_org + "]为组织编码[" + orgCode + "]");
boolean isIncludeOrg = false;
isIncludeOrg = httpPostOtherSys.checkIfIncludeOrg(orgCode);
String orgCode = pk_org;
// 如果传递的是主键
if (pk_org.length() >= 20) {
throw new BusinessException("传入数据异常'pk_org',参数应该为编码而非主键");
}
logger.debug("传递的组织非主键,为code[" + pk_org + "]");
boolean isIncludeOrg = httpPostOtherSys.checkIfIncludeOrg(orgCode);
logger.debug("检查是否为电缆[" + orgCode + "]返回:" + isIncludeOrg);
if (isIncludeOrg) {
logger.debug("当前检查组织为电缆,进行投放操作");
IPMOBusinessService putService = (IPMOBusinessService) NCLocator.getInstance().lookup(IPMOBusinessService.class);
try {
putService.rowput(insertBills);
logger.info("自动投放完成orgCode=" + orgCode);
logger.info("==================自动投放完成orgCode=" + orgCode);
} catch (Exception e) {
logger.error("自动投放失败orgCode=" + orgCode, e);
logger.error("==================自动投放失败orgCode=" + orgCode, e);
}
}
}
@ -82,7 +85,7 @@ public class PmoResource extends AbstractNCCRestResource {
return ResultMessageUtil.toJSON(insertBills, "流程生产订单保存成功");
}
} catch (Exception e) {
logger.error("流程生产订单保存异常", e);
logger.error("===========================流程生产订单保存异常", e);
return ResultMessageUtil.exceptionToJSON(e);
}
}