提交erp判断逻辑修改:请求参数和返回数据修改

This commit is contained in:
guojunyun
2025-10-22 16:47:31 +08:00
parent a2794fecfb
commit 7c283993a5
3 changed files with 47 additions and 50 deletions

View File

@@ -145,8 +145,8 @@ public class ContractController implements BusinessControllerMarker {
@PostMapping("/submit/erp")
@Operation(summary = "提交ERP")
@PreAuthorize("@ss.hasPermission('base:contract:erp')")
public CommonResult<List<String>> submitErp(@RequestBody List<Long> ids) {
return success(contractService.submitErp(ids));
public CommonResult<JSONObject> submitErp(@RequestParam("id") Long id) {
return success(contractService.submitErp(id));
}
@GetMapping("/list/up-not-relation")

View File

@@ -102,10 +102,10 @@ public interface ContractService {
/**
* 提交ERP
*
* @param ids 合同ID集合
* @return
* @param id 合同ID
* @return 提交结果
*/
List<String> submitErp(List<Long> ids);
JSONObject submitErp(Long id);
/**
* 删除合同

View File

@@ -1317,17 +1317,17 @@ public class ContractServiceImpl implements ContractService {
}
@Override
public List<String> submitErp(List<Long> ids) {
public JSONObject submitErp(Long id) {
List<String> results = new ArrayList<>();
// 遍历合同ID集合
ids.forEach(id -> {
JSONObject result = new JSONObject();
// 查询合同信息
ContractMainDO contractMainDO = contractMainMapper.selectById(id);
if (contractMainDO != null) {
// 合同数据不存在
if (contractMainDO == null) {
throw exception(CONTRACT_NOT_EXISTS);
}
// 合同状态校验
if (!(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(contractMainDO.getStatus())
@@ -1344,28 +1344,25 @@ public class ContractServiceImpl implements ContractService {
// 调用ERP模块
JSONObject erpResult = sendToErp(erpContractVO);
log.info("合同提交ERP结果{}", erpResult);
String result = id
+"-"+erpResult.getBool("success")
+(erpResult.getBool("success") ? "" : "-" + erpResult.getStr("errMsg"));
results.add(result);
result.putOnce("success", erpResult.getBool("success"));
// 更新合同状态
if (erpResult.getBool("success")) {
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode());
contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_FIND.getCode());
contractMainMapper.updateById(contractMainDO);
result.putOnce("data", erpResult.getStr("data"));
} else {
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_PUSH_ERROR.getCode());
contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_RLBK.getCode());
contractMainDO.setCause(erpResult.getStr("errMsg"));
contractMainMapper.updateById(contractMainDO);
}
} else {
results.add(id+"-"+"false"+"-"+CONTRACT_NOT_EXISTS);
}
});
return results;
result.putOnce("data", erpResult.getStr("errMsg"));
}
return result;
}
private JSONObject sendToErp(ErpContractSaveReqVO erpContractVO) {
@@ -1554,10 +1551,10 @@ public class ContractServiceImpl implements ContractService {
// 更新合同
contractMainMapper.updateById(contractMainDO);
});
// 重新提交erp
submitErp(ids);
submitErp(id);
});
return true;
}
@@ -1585,10 +1582,10 @@ public class ContractServiceImpl implements ContractService {
// 更新合同
contractMainMapper.updateById(contractMainDO);
});
// 重新提交erp
submitErp(ids);
submitErp(id);
});
return true;
}