删除合同时更新合同状态
合同审核时状态校验 提交erp接口调整
This commit is contained in:
@@ -25,4 +25,5 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode CONTRACT_STATUS_NOT_DELETE = new ErrorCode(1_027_000_010, "{}状态合同不允许删除");
|
ErrorCode CONTRACT_STATUS_NOT_DELETE = new ErrorCode(1_027_000_010, "{}状态合同不允许删除");
|
||||||
ErrorCode CONTRACT_ERP_RCV_DLVY_NOT_EXISTS = new ErrorCode(1_027_000_011, "不存在的收支类型或收支类型为空");
|
ErrorCode CONTRACT_ERP_RCV_DLVY_NOT_EXISTS = new ErrorCode(1_027_000_011, "不存在的收支类型或收支类型为空");
|
||||||
ErrorCode CONTRACT_STATUS_NOT_ARCHIVE = new ErrorCode(1_027_000_012, "{}状态合同不允许归档");
|
ErrorCode CONTRACT_STATUS_NOT_ARCHIVE = new ErrorCode(1_027_000_012, "{}状态合同不允许归档");
|
||||||
|
ErrorCode CONTRACT_STATUS_NOT_SUBMIT_ERP = new ErrorCode(1_027_000_013, "{}状态合同不允许提交ERP");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,11 @@ package com.zt.plat.module.contractorder.enums.contract;
|
|||||||
*/
|
*/
|
||||||
public enum DictEnum {
|
public enum DictEnum {
|
||||||
|
|
||||||
|
/** ERP请求状态 */
|
||||||
|
ERP_REQ_STS_RLBK("失败","RLBK",null),
|
||||||
|
ERP_REQ_STS_RCVG("执行中","RCVG",null),
|
||||||
|
ERP_REQ_STS_FIND("成功","FIND",null),
|
||||||
|
ERP_REQ_STS_WAIT("待上传","WAIT",null),
|
||||||
/** 业务关联类型 */
|
/** 业务关联类型 */
|
||||||
BSE_SYS_REL_TP_ORDER("订单","ORDER",null),
|
BSE_SYS_REL_TP_ORDER("订单","ORDER",null),
|
||||||
BSE_SYS_REL_TP_CONTRACT("合同","CONTRACT",null),
|
BSE_SYS_REL_TP_CONTRACT("合同","CONTRACT",null),
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ public class ContractController implements BusinessControllerMarker {
|
|||||||
@PostMapping("/submit/erp")
|
@PostMapping("/submit/erp")
|
||||||
@Operation(summary = "提交ERP")
|
@Operation(summary = "提交ERP")
|
||||||
@PreAuthorize("@ss.hasPermission('base:contract:erp')")
|
@PreAuthorize("@ss.hasPermission('base:contract:erp')")
|
||||||
public CommonResult<List<String>> submitErp(@RequestBody List<Long> ids) {
|
public CommonResult<Boolean> submitErp(@RequestBody List<Long> ids) {
|
||||||
return success(contractService.submitErp(ids));
|
return success(contractService.submitErp(ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ public interface ContractService {
|
|||||||
* @param ids 合同ID集合
|
* @param ids 合同ID集合
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<String> submitErp(List<Long> ids);
|
Boolean submitErp(List<Long> ids);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除合同
|
* 删除合同
|
||||||
|
|||||||
@@ -54,9 +54,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
@@ -1001,6 +999,9 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
// 删除品位不计价规则
|
// 删除品位不计价规则
|
||||||
contractNotMapper.delete(TableFieldConstants.BSE_CTRT_NT_CTRT_ID, id.toString());
|
contractNotMapper.delete(TableFieldConstants.BSE_CTRT_NT_CTRT_ID, id.toString());
|
||||||
|
|
||||||
|
// 更新合同状态
|
||||||
|
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_DELETED.getCode());
|
||||||
|
contractMainMapper.updateById(contractMainDO);
|
||||||
// 删除合同数据
|
// 删除合同数据
|
||||||
contractMainMapper.deleteById(id);
|
contractMainMapper.deleteById(id);
|
||||||
|
|
||||||
@@ -1113,8 +1114,7 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 合同状态校验
|
// 合同状态校验
|
||||||
if (!(DictEnum.BSE_CTRT_STS_DRAFT.getCode().equals(contractMainDO.getStatus())
|
if (!DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode().equals(contractMainDO.getStatus())) {
|
||||||
|| DictEnum.BSE_CTRT_STS_WAIT_AUDIT.getCode().equals(contractMainDO.getStatus()))) {
|
|
||||||
|
|
||||||
throw exception(CONTRACT_STATUS_NOT_APPROVAL,
|
throw exception(CONTRACT_STATUS_NOT_APPROVAL,
|
||||||
DictEnum.getByCode(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel());
|
DictEnum.getByCode(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel());
|
||||||
@@ -1287,10 +1287,7 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> submitErp(List<Long> ids) {
|
public Boolean submitErp(List<Long> ids) {
|
||||||
|
|
||||||
// 返回结果
|
|
||||||
List<String> result = new ArrayList<>();
|
|
||||||
|
|
||||||
// 遍历合同ID集合
|
// 遍历合同ID集合
|
||||||
ids.forEach(id -> {
|
ids.forEach(id -> {
|
||||||
@@ -1300,24 +1297,39 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
|
|
||||||
if (contractMainDO != null) {
|
if (contractMainDO != null) {
|
||||||
|
|
||||||
|
// 合同状态校验
|
||||||
|
if (!(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(contractMainDO.getStatus())
|
||||||
|
|| DictEnum.BSE_CTRT_STS_VOID.getCode().equals(contractMainDO.getStatus())
|
||||||
|
|| DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus()))) {
|
||||||
|
|
||||||
|
throw exception(CONTRACT_STATUS_NOT_SUBMIT_ERP,
|
||||||
|
DictEnum.getByCode(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel());
|
||||||
|
}
|
||||||
|
|
||||||
// 生成ERP合同映射表
|
// 生成ERP合同映射表
|
||||||
ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO);
|
ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO);
|
||||||
|
|
||||||
// 调用ERP模块
|
// 调用ERP模块
|
||||||
String erpResult = null;
|
Map<Boolean, String> erpResult = sendToErp(erpContractVO);
|
||||||
try {
|
|
||||||
erpResult = erpContractService.submitErp(erpContractVO);
|
|
||||||
} catch (Exception e) {
|
|
||||||
erpResult = e.getMessage();
|
|
||||||
}
|
|
||||||
log.info("合同提交ERP结果:{}", erpResult);
|
log.info("合同提交ERP结果:{}", erpResult);
|
||||||
result.add(id.toString() + ":" + erpResult);
|
|
||||||
} else {
|
} else {
|
||||||
result.add(id.toString() + ":" + CONTRACT_NOT_EXISTS);
|
throw exception(CONTRACT_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return result;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<Boolean, String> sendToErp(ErpContractSaveReqVO erpContractVO) {
|
||||||
|
Map<Boolean, String> erpResult = new HashMap<>();
|
||||||
|
try {
|
||||||
|
String result = erpContractService.submitErp(erpContractVO);
|
||||||
|
erpResult.put(true, result);
|
||||||
|
} catch (Exception e) {
|
||||||
|
erpResult.put(false, e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return erpResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user