合同审核接口修改
合同提交审核接口修改 调整价配置对应字段修改 合同提交erp接口修改 作废接口修改 完结接口修改
This commit is contained in:
@@ -16,6 +16,9 @@ public class DeductRespDTO {
|
|||||||
@Schema(description = "条款主键")
|
@Schema(description = "条款主键")
|
||||||
private Long formulaId;
|
private Long formulaId;
|
||||||
|
|
||||||
|
@Schema(description = "金属元素缩写")
|
||||||
|
private String elementAbbreviation;
|
||||||
|
|
||||||
@Schema(description = "数据项类型(字典:GRD_CFG_TP)")
|
@Schema(description = "数据项类型(字典:GRD_CFG_TP)")
|
||||||
private String configType;
|
private String configType;
|
||||||
|
|
||||||
@@ -25,6 +28,18 @@ public class DeductRespDTO {
|
|||||||
@Schema(description = "调整价")
|
@Schema(description = "调整价")
|
||||||
private BigDecimal gradeAmount;
|
private BigDecimal gradeAmount;
|
||||||
|
|
||||||
|
@Schema(description = "区间方式(字典:STLM_RNG_WY)")
|
||||||
|
private String rangeWay;
|
||||||
|
|
||||||
|
@Schema(description = "上限")
|
||||||
|
private String up;
|
||||||
|
|
||||||
|
@Schema(description = "下限")
|
||||||
|
private String down;
|
||||||
|
|
||||||
|
@Schema(description = "类型(字典:STLM_COEF)")
|
||||||
|
private String type;
|
||||||
|
|
||||||
@Schema(description = "创建时间")
|
@Schema(description = "创建时间")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
}
|
}
|
||||||
@@ -135,11 +135,10 @@ public class ContractController implements BusinessControllerMarker {
|
|||||||
return success(contractService.submitApproval(id));
|
return success(contractService.submitApproval(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
|
||||||
@PostMapping("/approval")
|
@PostMapping("/approval")
|
||||||
@Operation(summary = "合同审批 TODO")
|
@Operation(summary = "合同审批")
|
||||||
@PreAuthorize("@ss.hasPermission('base:contract:approval')")
|
@PreAuthorize("@ss.hasPermission('base:contract:approval')")
|
||||||
public CommonResult<String> approval(@Valid @RequestBody ApprovalReqVO reqVO) {
|
public CommonResult<Boolean> approval(@Valid @RequestBody ApprovalReqVO reqVO) {
|
||||||
return success(contractService.approval(reqVO));
|
return success(contractService.approval(reqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,11 +13,11 @@ public class ApprovalReqVO {
|
|||||||
@NotNull(message = "合同主键ID不能为空")
|
@NotNull(message = "合同主键ID不能为空")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "审核结果(通过:PASS,驳回:REJECT)", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
||||||
@NotBlank(message = "审核结果不能为空")
|
|
||||||
private String auditResult;
|
|
||||||
|
|
||||||
@Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotBlank(message = "审核意见不能为空")
|
@NotBlank(message = "审核意见不能为空")
|
||||||
private String reviewOpinion;
|
private String reviewOpinion;
|
||||||
|
|
||||||
|
@Schema(description = "状态:待推送 WAIT_PUSH,已驳回 REJECTED", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotBlank(message = "审核状态不能为空")
|
||||||
|
private String status;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ public class DeductRespVO {
|
|||||||
@Schema(description = "条款主键")
|
@Schema(description = "条款主键")
|
||||||
private Long formulaId;
|
private Long formulaId;
|
||||||
|
|
||||||
|
@Schema(description = "金属元素缩写")
|
||||||
|
private String elementAbbreviation;
|
||||||
|
|
||||||
@Schema(description = "数据项类型(字典:GRD_CFG_TP)")
|
@Schema(description = "数据项类型(字典:GRD_CFG_TP)")
|
||||||
private String configType;
|
private String configType;
|
||||||
|
|
||||||
@@ -24,6 +27,18 @@ public class DeductRespVO {
|
|||||||
@Schema(description = "调整价")
|
@Schema(description = "调整价")
|
||||||
private BigDecimal gradeAmount;
|
private BigDecimal gradeAmount;
|
||||||
|
|
||||||
|
@Schema(description = "区间方式(字典:STLM_RNG_WY)")
|
||||||
|
private String rangeWay;
|
||||||
|
|
||||||
|
@Schema(description = "上限")
|
||||||
|
private String up;
|
||||||
|
|
||||||
|
@Schema(description = "下限")
|
||||||
|
private String down;
|
||||||
|
|
||||||
|
@Schema(description = "类型(字典:STLM_COEF)")
|
||||||
|
private String type;
|
||||||
|
|
||||||
@Schema(description = "创建时间")
|
@Schema(description = "创建时间")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ public class DeductSaveReqVO {
|
|||||||
@Schema(description = "条款主键")
|
@Schema(description = "条款主键")
|
||||||
private Long formulaId;
|
private Long formulaId;
|
||||||
|
|
||||||
|
@Schema(description = "金属元素缩写")
|
||||||
|
private String elementAbbreviation;
|
||||||
|
|
||||||
@Schema(description = "数据项类型(字典:GRD_CFG_TP)")
|
@Schema(description = "数据项类型(字典:GRD_CFG_TP)")
|
||||||
private String configType;
|
private String configType;
|
||||||
|
|
||||||
@@ -23,4 +26,16 @@ public class DeductSaveReqVO {
|
|||||||
|
|
||||||
@Schema(description = "调整价")
|
@Schema(description = "调整价")
|
||||||
private BigDecimal gradeAmount;
|
private BigDecimal gradeAmount;
|
||||||
|
|
||||||
|
@Schema(description = "区间方式(字典:STLM_RNG_WY)")
|
||||||
|
private String rangeWay;
|
||||||
|
|
||||||
|
@Schema(description = "上限")
|
||||||
|
private String up;
|
||||||
|
|
||||||
|
@Schema(description = "下限")
|
||||||
|
private String down;
|
||||||
|
|
||||||
|
@Schema(description = "类型(字典:STLM_COEF)")
|
||||||
|
private String type;
|
||||||
}
|
}
|
||||||
@@ -34,6 +34,11 @@ public class ContractDeductDO extends BusinessBaseDO {
|
|||||||
*/
|
*/
|
||||||
@TableField("FMU_ID")
|
@TableField("FMU_ID")
|
||||||
private Long formulaId;
|
private Long formulaId;
|
||||||
|
/**
|
||||||
|
* 金属元素缩写(Cu\Au\Ag)
|
||||||
|
*/
|
||||||
|
@TableField("ELEM_ABBR")
|
||||||
|
private String elementAbbreviation;
|
||||||
/**
|
/**
|
||||||
* 数据项类型(字典:GRD_CFG_TP)
|
* 数据项类型(字典:GRD_CFG_TP)
|
||||||
*/
|
*/
|
||||||
@@ -49,4 +54,24 @@ public class ContractDeductDO extends BusinessBaseDO {
|
|||||||
*/
|
*/
|
||||||
@TableField("GRD_AMT")
|
@TableField("GRD_AMT")
|
||||||
private BigDecimal gradeAmount;
|
private BigDecimal gradeAmount;
|
||||||
|
/**
|
||||||
|
* 区间方式(字典:STLM_RNG_WY)
|
||||||
|
*/
|
||||||
|
@TableField("RNG_WY")
|
||||||
|
private String rangeWay;
|
||||||
|
/**
|
||||||
|
* 上限
|
||||||
|
*/
|
||||||
|
@TableField("UP")
|
||||||
|
private String up;
|
||||||
|
/**
|
||||||
|
* 下限
|
||||||
|
*/
|
||||||
|
@TableField("DOWN")
|
||||||
|
private String down;
|
||||||
|
/**
|
||||||
|
* 类型(字典:STLM_COEF)
|
||||||
|
*/
|
||||||
|
@TableField("TP")
|
||||||
|
private String type;
|
||||||
}
|
}
|
||||||
@@ -64,7 +64,7 @@ public interface ContractService {
|
|||||||
* @param reqVO 审批信息
|
* @param reqVO 审批信息
|
||||||
* @return 审批结果
|
* @return 审批结果
|
||||||
*/
|
*/
|
||||||
String approval(@Valid ApprovalReqVO reqVO);
|
Boolean approval(@Valid ApprovalReqVO reqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询不计价规则列表
|
* 查询不计价规则列表
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ import com.zt.plat.module.base.dal.mysql.tmpltp.TmplInscBsnRelMapper;
|
|||||||
import com.zt.plat.module.base.service.tmpltp.TemplateInstanceDataService;
|
import com.zt.plat.module.base.service.tmpltp.TemplateInstanceDataService;
|
||||||
import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
|
import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
|
||||||
import com.zt.plat.module.bpm.api.task.BpmTaskApi;
|
import com.zt.plat.module.bpm.api.task.BpmTaskApi;
|
||||||
import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
import com.zt.plat.module.bpm.api.task.dto.*;
|
||||||
import com.zt.plat.module.bpm.api.task.dto.BpmTaskRespDTO;
|
import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
|
||||||
import com.zt.plat.module.contractorder.api.dto.contract.*;
|
import com.zt.plat.module.contractorder.api.dto.contract.*;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*;
|
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*;
|
||||||
import com.zt.plat.module.contractorder.dal.dataobject.contract.*;
|
import com.zt.plat.module.contractorder.dal.dataobject.contract.*;
|
||||||
@@ -923,6 +923,7 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
newContractMainDO.setStatus(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode());
|
newContractMainDO.setStatus(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode());
|
||||||
} else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(oldContractMainDO.getStatus())
|
} else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(oldContractMainDO.getStatus())
|
||||||
|| DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode().equals(oldContractMainDO.getStatus())) {
|
|| DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode().equals(oldContractMainDO.getStatus())) {
|
||||||
|
// 其它状态编辑后都为“待审核”
|
||||||
newContractMainDO.setStatus(DictEnum.BSE_CTRT_STS_WAIT_AUDIT.getCode());
|
newContractMainDO.setStatus(DictEnum.BSE_CTRT_STS_WAIT_AUDIT.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1040,9 +1041,35 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
|
|
||||||
if (StringUtils.isNotBlank(contractMainDO.getProcessInstanceId())) {
|
if (StringUtils.isNotBlank(contractMainDO.getProcessInstanceId())) {
|
||||||
|
|
||||||
// TODO:待审核状态重新提交审批处理
|
// 获取流程当前审批的任务节点
|
||||||
// 进入审批流程的合同,查询当前审批的任务节点
|
|
||||||
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(contractMainDO.getProcessInstanceId()).getData();
|
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(contractMainDO.getProcessInstanceId()).getData();
|
||||||
|
if (CollectionUtils.isNotEmpty(taskList)) {
|
||||||
|
BpmTaskRespDTO bpmTaskDto = taskList.get(taskList.size() - 1);
|
||||||
|
BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
|
||||||
|
badrDto.setProcessInstanceId(contractMainDO.getProcessInstanceId()); // 流程实例id
|
||||||
|
badrDto.setTaskId(bpmTaskDto.getId()); // 当前审核任务节点id
|
||||||
|
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
||||||
|
|
||||||
|
if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(approvalDetail.getStatus())) {
|
||||||
|
// 如果状态是驳回状态,需要重新创建一个流程实例
|
||||||
|
BpmProcessInstanceCreateReqDTO pidtoNew = new BpmProcessInstanceCreateReqDTO();
|
||||||
|
pidtoNew.setProcessDefinitionKey(ProcessConstants.CONTRACT_APPROVAL_PROCESS);
|
||||||
|
pidtoNew.setBusinessKey(String.valueOf(id));
|
||||||
|
String data = bpmProcessInstanceApi.createProcessInstance(adminUserRespDTO.getId(), pidtoNew).getData();
|
||||||
|
if (StringUtils.isNotBlank(data)) {
|
||||||
|
// 获取流程当前审批的任务节点
|
||||||
|
List<BpmTaskRespDTO> taskListNew = bpmTaskApi.getTaskListByProcessInstanceId(data).getData();
|
||||||
|
contractMainDO.setProcessInstanceId(data);
|
||||||
|
if (CollectionUtils.isNotEmpty(taskListNew)) {
|
||||||
|
BpmTaskRespDTO undoTask = taskListNew.get(taskListNew.size() - 1);
|
||||||
|
contractMainDO.setTaskNodeId(undoTask.getId());
|
||||||
|
}
|
||||||
|
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode());
|
||||||
|
contractMainMapper.updateById(contractMainDO);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// 未进入审批流程的合同,创建审批流程
|
// 未进入审批流程的合同,创建审批流程
|
||||||
@@ -1069,7 +1096,7 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String approval(ApprovalReqVO reqVO) {
|
public Boolean approval(ApprovalReqVO reqVO) {
|
||||||
|
|
||||||
// 合同主键ID
|
// 合同主键ID
|
||||||
Long id = reqVO.getId();
|
Long id = reqVO.getId();
|
||||||
@@ -1086,18 +1113,60 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 合同状态校验
|
// 合同状态校验
|
||||||
if (DictEnum.BSE_CTRT_STS_DRAFT.getCode().equals(contractMainDO.getStatus())
|
if (!(DictEnum.BSE_CTRT_STS_DRAFT.getCode().equals(contractMainDO.getStatus())
|
||||||
|| DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode().equals(contractMainDO.getStatus())
|
|| DictEnum.BSE_CTRT_STS_WAIT_AUDIT.getCode().equals(contractMainDO.getStatus()))) {
|
||||||
|| DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(contractMainDO.getStatus())
|
|
||||||
|| DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus())
|
|
||||||
|| DictEnum.BSE_CTRT_STS_ARCHIVED.getCode().equals(contractMainDO.getStatus())
|
|
||||||
|| DictEnum.BSE_CTRT_STS_DELETED.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());
|
||||||
}
|
}
|
||||||
|
|
||||||
return "";
|
// 获取当前流程正在审批的任务节点
|
||||||
|
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(contractMainDO.getProcessInstanceId()).getData();
|
||||||
|
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
|
||||||
|
|
||||||
|
// 判断是否流程已经通过、驳回
|
||||||
|
BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
|
||||||
|
badrDto.setProcessInstanceId(contractMainDO.getProcessInstanceId()); // 流程实例id
|
||||||
|
badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id
|
||||||
|
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
||||||
|
|
||||||
|
// 更新合同状态,状态需要根据流程的状态进行判断
|
||||||
|
contractMainDO.setReviewOpinion(reqVO.getReviewOpinion());
|
||||||
|
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.NOT_START.getStatus())) {
|
||||||
|
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode());
|
||||||
|
} else if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||||
|
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode());
|
||||||
|
} else if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.APPROVE.getStatus())) {
|
||||||
|
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode());
|
||||||
|
} else if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.REJECT.getStatus())) {
|
||||||
|
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_REJECTED.getCode());
|
||||||
|
} else if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.CANCEL.getStatus())) {
|
||||||
|
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_REJECTED.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ObjectUtils.isNotEmpty(undoTask)) {
|
||||||
|
contractMainDO.setTaskNodeId(undoTask.getId());
|
||||||
|
}
|
||||||
|
contractMainMapper.updateById(contractMainDO);
|
||||||
|
|
||||||
|
// 需要调用bpm 审核接口更新审批中的状态
|
||||||
|
if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(reqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||||
|
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||||
|
BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO();
|
||||||
|
btarDto.setId(undoTask.getId());
|
||||||
|
btarDto.setReason(reqVO.getReviewOpinion());
|
||||||
|
bpmProcessInstanceApi.approveTask(btarDto);
|
||||||
|
}
|
||||||
|
} else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(reqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||||
|
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||||
|
BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO();
|
||||||
|
btrrDto.setId(undoTask.getId());
|
||||||
|
btrrDto.setReason(reqVO.getReviewOpinion());
|
||||||
|
bpmProcessInstanceApi.rejectTask(btrrDto);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1232,148 +1301,7 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
if (contractMainDO != null) {
|
if (contractMainDO != null) {
|
||||||
|
|
||||||
// 生成ERP合同映射表
|
// 生成ERP合同映射表
|
||||||
ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO();
|
ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO);
|
||||||
// 合同主信息表主键:BSE_CTRT_MAIN
|
|
||||||
erpContractVO.setContractMainId(id);
|
|
||||||
// 操作标识:OPTN_ID
|
|
||||||
// 1、先调用009ERP接口查询合同信息
|
|
||||||
ErpContractPageReqVO pageReqVO = new ErpContractPageReqVO();
|
|
||||||
// BUKRS 合同签订主体公司代码 收支方向判断,如果为“支出”,传“ERP甲方公司编码”,反之传“ERP乙方公司编码”
|
|
||||||
// PARTNER 对方客商编号 收支方向判断,如果为“支出”,传“ERP乙方公司编码”,反之传“ERP甲方公司编码”
|
|
||||||
// INEDR 1-借(销售合同),2-贷(采购合同) 收支方向判断,如果为“支出”,传“2”,反之传“1”
|
|
||||||
if (DictEnum.ERP_RCV_DLVY_EXPENSES.getCode().equals(contractMainDO.getDirection())) {
|
|
||||||
pageReqVO.setContractSignNumber(contractMainDO.getSalesCompanyNumber());
|
|
||||||
pageReqVO.setSupplierNumber(contractMainDO.getSalesCompanyNumber());
|
|
||||||
pageReqVO.setContractCategory("2");
|
|
||||||
} else if (DictEnum.ERP_RCV_DLVY_INCOME.getCode().equals(contractMainDO.getDirection())) {
|
|
||||||
pageReqVO.setContractSignNumber(contractMainDO.getSalesCompanyNumber());
|
|
||||||
pageReqVO.setSupplierNumber(contractMainDO.getSalesCompanyNumber());
|
|
||||||
pageReqVO.setContractCategory("1");
|
|
||||||
}
|
|
||||||
// ZHTBH 合同编号 合同编号:CTRT_PPR_NUM
|
|
||||||
pageReqVO.setContractTypeNumber(contractMainDO.getContractPaperNumber());
|
|
||||||
// ZHTMC 合同名称 合同名称:CTRT_NAME
|
|
||||||
pageReqVO.setContractName(contractMainDO.getContractName());
|
|
||||||
PageResult<ErpContractDO> erpContractPage = erpContractService.getErpContractPage(pageReqVO);
|
|
||||||
if (erpContractPage.getTotal() > 0) {
|
|
||||||
// 2、如果009接口返回值中“合同编号”字段存在值,并且与传入的相同,则OPTN_ID值为“1”
|
|
||||||
erpContractVO.setOperationId("1");
|
|
||||||
} else {
|
|
||||||
// 3、如果009接口返回值中“合同编号”字段不存在值,根据合同主键查询映射表中是否存在没有删除的数据,如果有,值为“1”,如果没有,值为“0”
|
|
||||||
ErpContractDO erpContract = erpContractService.getErpContractByMainId(id);
|
|
||||||
if (erpContract != null) {
|
|
||||||
erpContractVO.setOperationId("1");
|
|
||||||
} else {
|
|
||||||
erpContractVO.setOperationId("0");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 合同编号:CTRT_PPR_NUM
|
|
||||||
erpContractVO.setContractPaperNumber(contractMainDO.getContractPaperNumber());
|
|
||||||
// 合同名称:CTRT_NAME
|
|
||||||
erpContractVO.setContractName(contractMainDO.getContractName());
|
|
||||||
// 合同类型编号:CTRT_TP_NUM
|
|
||||||
erpContractVO.setContractTypeNumber(contractMainDO.getConstructionTypeNumber());
|
|
||||||
// 合同类型名称:CTRT_TP_NAME
|
|
||||||
erpContractVO.setContractTypeName(contractMainDO.getConstructionTypeName());
|
|
||||||
// 合同类别:CTRT_CTGR
|
|
||||||
erpContractVO.setContractCategory(contractMainDO.getCategory());
|
|
||||||
// 是否虚拟合同:IS_VRTL_CTRT
|
|
||||||
erpContractVO.setIsVirtualContract(contractMainDO.getContractVirtual());
|
|
||||||
// 客商编号:SPLR_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP乙方公司编码”,反之为“ERP甲方公司编码”
|
|
||||||
// 客商名称:SPLR_NAME 根据合同主表的收支方向判断,如果为“支出”,值为“ERP乙方公司名称”,反之为“ERP甲方公司名称”
|
|
||||||
if (DictEnum.ERP_RCV_DLVY_EXPENSES.getCode().equals(contractMainDO.getDirection())) {
|
|
||||||
erpContractVO.setSupplierNumber(contractMainDO.getErpSalesCompanyNumber());
|
|
||||||
erpContractVO.setSupplierName(contractMainDO.getErpSalesCompanyName());
|
|
||||||
} else if (DictEnum.ERP_RCV_DLVY_INCOME.getCode().equals(contractMainDO.getDirection())) {
|
|
||||||
erpContractVO.setSupplierNumber(contractMainDO.getErpPurchaseCompanyNumber());
|
|
||||||
erpContractVO.setSupplierName(contractMainDO.getErpPurchaseCompanyName());
|
|
||||||
}
|
|
||||||
// 代理方:AGT
|
|
||||||
erpContractVO.setAgent(contractMainDO.getAgent());
|
|
||||||
// 合同实施主体编号:CTRT_IMPL_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP甲方公司编码”,反之为“ERP乙方公司编码”
|
|
||||||
// 合同签订主体编号:CTRT_SGN_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP甲方公司名称”,反之为“ERP乙方公司名称”
|
|
||||||
if (DictEnum.ERP_RCV_DLVY_EXPENSES.getCode().equals(contractMainDO.getDirection())) {
|
|
||||||
erpContractVO.setContractImplementNumber(contractMainDO.getErpPurchaseCompanyNumber());
|
|
||||||
erpContractVO.setContractSignNumber(contractMainDO.getErpPurchaseCompanyName());
|
|
||||||
} else if (DictEnum.ERP_RCV_DLVY_INCOME.getCode().equals(contractMainDO.getDirection())) {
|
|
||||||
erpContractVO.setContractImplementNumber(contractMainDO.getErpSalesCompanyNumber());
|
|
||||||
erpContractVO.setContractSignNumber(contractMainDO.getErpSalesCompanyName());
|
|
||||||
}
|
|
||||||
// 合同签订日期:SGN_DT
|
|
||||||
if (contractMainDO.getSignDate() != null) {
|
|
||||||
erpContractVO.setSignDate(contractMainDO.getSignDate().toLocalDate());
|
|
||||||
}
|
|
||||||
// 合同起始日期:STRT_DT
|
|
||||||
if (contractMainDO.getStartDate() != null) {
|
|
||||||
erpContractVO.setStartDate(contractMainDO.getStartDate().toLocalDate());
|
|
||||||
}
|
|
||||||
// 合同终止日期:STOP_DT
|
|
||||||
if (contractMainDO.getEndDate() != null) {
|
|
||||||
erpContractVO.setStopDate(contractMainDO.getEndDate().toLocalDate());
|
|
||||||
}
|
|
||||||
// 币种编号:CUR
|
|
||||||
erpContractVO.setCurrency(contractMainDO.getCurrency());
|
|
||||||
// 合同总金额(原币-含税):SRC_AMT
|
|
||||||
erpContractVO.setSourceAmount(contractMainDO.getCooAmount());
|
|
||||||
// 合同总金额(本位币-含税):BSC_AMT
|
|
||||||
erpContractVO.setBasicAmount(contractMainDO.getBasicAmount());
|
|
||||||
// 变更后合同总金额(原币-含税):CHG_SRC_AMT
|
|
||||||
erpContractVO.setChangeSourceAmount(contractMainDO.getChangeCooAmount());
|
|
||||||
// 变更后合同总金额(本位币-含税):CHG_BSC_AMT
|
|
||||||
erpContractVO.setChangeBasicAmount(contractMainDO.getChangeBasicAmount());
|
|
||||||
// 合同状态编号:STS_NUM 参照060接口
|
|
||||||
erpContractVO.setStatusNumber(DictEnum.SUBMIT_ERP_CTRT_STS_EF.getCode());
|
|
||||||
// 合同状态名称:STS_NAME 参照060接口
|
|
||||||
erpContractVO.setStatusName(DictEnum.SUBMIT_ERP_CTRT_STS_EF.getLabel());
|
|
||||||
// 是否有预付款:IS_PPYM
|
|
||||||
erpContractVO.setIsPrepayment(contractMainDO.getHasPrepayment());
|
|
||||||
// 预付款比例:PPYM_RTIO
|
|
||||||
erpContractVO.setPrepaymentRatio(contractMainDO.getPrepaymentRatio());
|
|
||||||
// 预付款金额:PPYM_AMT
|
|
||||||
erpContractVO.setPrepaymentAmount(contractMainDO.getPrepaymentAmount());
|
|
||||||
// 履约保证金-变更前(原币):SRC_BFR_BND
|
|
||||||
erpContractVO.setSourceBeforeBond(contractMainDO.getChangeCooAmountDeposit());
|
|
||||||
// 履约保证金-变更前(本位币):BSC_BFR_BND
|
|
||||||
erpContractVO.setBasicBeforeBond(contractMainDO.getChangeBasicAmountDeposit());
|
|
||||||
// 履约保证金-变更后(原币):SRC_AFT_BND
|
|
||||||
erpContractVO.setSourceAfterBond(contractMainDO.getChangeCooAmountDeposit());
|
|
||||||
// 履约保证金-变更后(本位币):BSC_AFT_BND
|
|
||||||
erpContractVO.setBasicAfterBond(contractMainDO.getChangeBasicAmountDeposit());
|
|
||||||
// 是否含质保金:IS_QUA_AMT
|
|
||||||
erpContractVO.setIsQualityassuranceAmount(contractMainDO.getHasQualityAmount());
|
|
||||||
// 质保金比例:QUA_RTIO
|
|
||||||
erpContractVO.setQualityassuranceRatio(contractMainDO.getQualityRatio());
|
|
||||||
// 质保金金额:QUA_AMT
|
|
||||||
erpContractVO.setQualityassuranceAmount(contractMainDO.getQualityAmount());
|
|
||||||
// 是否内部企业:IS_INTL
|
|
||||||
erpContractVO.setIsInternal(contractMainDO.getIsInternal());
|
|
||||||
// 收支性质:NTR
|
|
||||||
erpContractVO.setNature(contractMainDO.getDirection());
|
|
||||||
// 备注信息:RMK
|
|
||||||
erpContractVO.setRemark(contractMainDO.getRemark());
|
|
||||||
// 是否框架合同:IS_FMWK
|
|
||||||
erpContractVO.setIsFramework(contractMainDO.getIsFramework());
|
|
||||||
// 境内/境外:IS_DOM
|
|
||||||
erpContractVO.setIsDomestic(contractMainDO.getIsDomestic());
|
|
||||||
// 达到收款条件金额:PYEE_CND_AMT
|
|
||||||
erpContractVO.setPayeeConditionAmount(contractMainDO.getPayeeConditionAmount());
|
|
||||||
// 建筑服务发生地:ARCH_SVC_PLCE
|
|
||||||
erpContractVO.setArchitectureServicePlace(contractMainDO.getArchitectureServicePlace());
|
|
||||||
|
|
||||||
// 公司编号
|
|
||||||
erpContractVO.setCompanyId(contractMainDO.getCompanyId());
|
|
||||||
// 公司名称
|
|
||||||
erpContractVO.setCompanyName(contractMainDO.getCompanyName());
|
|
||||||
// 部门编号
|
|
||||||
erpContractVO.setDeptId(contractMainDO.getDeptId());
|
|
||||||
// 部门名称
|
|
||||||
erpContractVO.setDeptName(contractMainDO.getDeptName());
|
|
||||||
// 岗位编号
|
|
||||||
erpContractVO.setPostId(contractMainDO.getPostId());
|
|
||||||
// 创建者
|
|
||||||
erpContractVO.setCreatorName(contractMainDO.getCreatorName());
|
|
||||||
// 更新者
|
|
||||||
erpContractVO.setUpdaterName(contractMainDO.getUpdaterName());
|
|
||||||
|
|
||||||
// 调用ERP模块
|
// 调用ERP模块
|
||||||
String erpResult = null;
|
String erpResult = null;
|
||||||
@@ -1535,6 +1463,9 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
contractMainMapper.updateById(contractMainDO);
|
contractMainMapper.updateById(contractMainDO);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 重新提交erp
|
||||||
|
submitErp(ids);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1563,9 +1494,160 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
contractMainMapper.updateById(contractMainDO);
|
contractMainMapper.updateById(contractMainDO);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 重新提交erp
|
||||||
|
submitErp(ids);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) {
|
||||||
|
|
||||||
|
ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO();
|
||||||
|
// 合同主信息表主键:BSE_CTRT_MAIN
|
||||||
|
erpContractVO.setContractMainId(contractMainDO.getId());
|
||||||
|
// 操作标识:OPTN_ID
|
||||||
|
// 1、先调用009ERP接口查询合同信息
|
||||||
|
ErpContractPageReqVO pageReqVO = new ErpContractPageReqVO();
|
||||||
|
// BUKRS 合同签订主体公司代码 收支方向判断,如果为“支出”,传“ERP甲方公司编码”,反之传“ERP乙方公司编码”
|
||||||
|
// PARTNER 对方客商编号 收支方向判断,如果为“支出”,传“ERP乙方公司编码”,反之传“ERP甲方公司编码”
|
||||||
|
// INEDR 1-借(销售合同),2-贷(采购合同) 收支方向判断,如果为“支出”,传“2”,反之传“1”
|
||||||
|
if (DictEnum.ERP_RCV_DLVY_EXPENSES.getCode().equals(contractMainDO.getDirection())) {
|
||||||
|
pageReqVO.setContractSignNumber(contractMainDO.getSalesCompanyNumber());
|
||||||
|
pageReqVO.setSupplierNumber(contractMainDO.getSalesCompanyNumber());
|
||||||
|
pageReqVO.setContractCategory("2");
|
||||||
|
} else if (DictEnum.ERP_RCV_DLVY_INCOME.getCode().equals(contractMainDO.getDirection())) {
|
||||||
|
pageReqVO.setContractSignNumber(contractMainDO.getSalesCompanyNumber());
|
||||||
|
pageReqVO.setSupplierNumber(contractMainDO.getSalesCompanyNumber());
|
||||||
|
pageReqVO.setContractCategory("1");
|
||||||
|
}
|
||||||
|
// ZHTBH 合同编号 合同编号:CTRT_PPR_NUM
|
||||||
|
pageReqVO.setContractTypeNumber(contractMainDO.getContractPaperNumber());
|
||||||
|
// ZHTMC 合同名称 合同名称:CTRT_NAME
|
||||||
|
pageReqVO.setContractName(contractMainDO.getContractName());
|
||||||
|
PageResult<ErpContractDO> erpContractPage = erpContractService.getErpContractPage(pageReqVO);
|
||||||
|
if (erpContractPage.getTotal() > 0) {
|
||||||
|
// 2、如果009接口返回值中“合同编号”字段存在值,并且与传入的相同,则OPTN_ID值为“1”
|
||||||
|
erpContractVO.setOperationId("1");
|
||||||
|
} else {
|
||||||
|
// 3、如果009接口返回值中“合同编号”字段不存在值,根据合同主键查询映射表中是否存在没有删除的数据,如果有,值为“1”,如果没有,值为“0”
|
||||||
|
ErpContractDO erpContract = erpContractService.getErpContractByMainId(contractMainDO.getId());
|
||||||
|
if (erpContract != null) {
|
||||||
|
erpContractVO.setOperationId("1");
|
||||||
|
} else {
|
||||||
|
erpContractVO.setOperationId("0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 合同编号:CTRT_PPR_NUM
|
||||||
|
erpContractVO.setContractPaperNumber(contractMainDO.getContractPaperNumber());
|
||||||
|
// 合同名称:CTRT_NAME
|
||||||
|
erpContractVO.setContractName(contractMainDO.getContractName());
|
||||||
|
// 合同类型编号:CTRT_TP_NUM
|
||||||
|
erpContractVO.setContractTypeNumber(contractMainDO.getConstructionTypeNumber());
|
||||||
|
// 合同类型名称:CTRT_TP_NAME
|
||||||
|
erpContractVO.setContractTypeName(contractMainDO.getConstructionTypeName());
|
||||||
|
// 合同类别:CTRT_CTGR
|
||||||
|
erpContractVO.setContractCategory(contractMainDO.getCategory());
|
||||||
|
// 是否虚拟合同:IS_VRTL_CTRT
|
||||||
|
erpContractVO.setIsVirtualContract(contractMainDO.getContractVirtual());
|
||||||
|
// 客商编号:SPLR_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP乙方公司编码”,反之为“ERP甲方公司编码”
|
||||||
|
// 客商名称:SPLR_NAME 根据合同主表的收支方向判断,如果为“支出”,值为“ERP乙方公司名称”,反之为“ERP甲方公司名称”
|
||||||
|
if (DictEnum.ERP_RCV_DLVY_EXPENSES.getCode().equals(contractMainDO.getDirection())) {
|
||||||
|
erpContractVO.setSupplierNumber(contractMainDO.getErpSalesCompanyNumber());
|
||||||
|
erpContractVO.setSupplierName(contractMainDO.getErpSalesCompanyName());
|
||||||
|
} else if (DictEnum.ERP_RCV_DLVY_INCOME.getCode().equals(contractMainDO.getDirection())) {
|
||||||
|
erpContractVO.setSupplierNumber(contractMainDO.getErpPurchaseCompanyNumber());
|
||||||
|
erpContractVO.setSupplierName(contractMainDO.getErpPurchaseCompanyName());
|
||||||
|
}
|
||||||
|
// 代理方:AGT
|
||||||
|
erpContractVO.setAgent(contractMainDO.getAgent());
|
||||||
|
// 合同实施主体编号:CTRT_IMPL_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP甲方公司编码”,反之为“ERP乙方公司编码”
|
||||||
|
// 合同签订主体编号:CTRT_SGN_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP甲方公司名称”,反之为“ERP乙方公司名称”
|
||||||
|
if (DictEnum.ERP_RCV_DLVY_EXPENSES.getCode().equals(contractMainDO.getDirection())) {
|
||||||
|
erpContractVO.setContractImplementNumber(contractMainDO.getErpPurchaseCompanyNumber());
|
||||||
|
erpContractVO.setContractSignNumber(contractMainDO.getErpPurchaseCompanyName());
|
||||||
|
} else if (DictEnum.ERP_RCV_DLVY_INCOME.getCode().equals(contractMainDO.getDirection())) {
|
||||||
|
erpContractVO.setContractImplementNumber(contractMainDO.getErpSalesCompanyNumber());
|
||||||
|
erpContractVO.setContractSignNumber(contractMainDO.getErpSalesCompanyName());
|
||||||
|
}
|
||||||
|
// 合同签订日期:SGN_DT
|
||||||
|
if (contractMainDO.getSignDate() != null) {
|
||||||
|
erpContractVO.setSignDate(contractMainDO.getSignDate().toLocalDate());
|
||||||
|
}
|
||||||
|
// 合同起始日期:STRT_DT
|
||||||
|
if (contractMainDO.getStartDate() != null) {
|
||||||
|
erpContractVO.setStartDate(contractMainDO.getStartDate().toLocalDate());
|
||||||
|
}
|
||||||
|
// 合同终止日期:STOP_DT
|
||||||
|
if (contractMainDO.getEndDate() != null) {
|
||||||
|
erpContractVO.setStopDate(contractMainDO.getEndDate().toLocalDate());
|
||||||
|
}
|
||||||
|
// 币种编号:CUR
|
||||||
|
erpContractVO.setCurrency(contractMainDO.getCurrency());
|
||||||
|
// 合同总金额(原币-含税):SRC_AMT
|
||||||
|
erpContractVO.setSourceAmount(contractMainDO.getCooAmount());
|
||||||
|
// 合同总金额(本位币-含税):BSC_AMT
|
||||||
|
erpContractVO.setBasicAmount(contractMainDO.getBasicAmount());
|
||||||
|
// 变更后合同总金额(原币-含税):CHG_SRC_AMT
|
||||||
|
erpContractVO.setChangeSourceAmount(contractMainDO.getChangeCooAmount());
|
||||||
|
// 变更后合同总金额(本位币-含税):CHG_BSC_AMT
|
||||||
|
erpContractVO.setChangeBasicAmount(contractMainDO.getChangeBasicAmount());
|
||||||
|
// 合同状态编号:STS_NUM 参照060接口
|
||||||
|
erpContractVO.setStatusNumber(DictEnum.SUBMIT_ERP_CTRT_STS_EF.getCode());
|
||||||
|
// 合同状态名称:STS_NAME 参照060接口
|
||||||
|
erpContractVO.setStatusName(DictEnum.SUBMIT_ERP_CTRT_STS_EF.getLabel());
|
||||||
|
// 是否有预付款:IS_PPYM
|
||||||
|
erpContractVO.setIsPrepayment(contractMainDO.getHasPrepayment());
|
||||||
|
// 预付款比例:PPYM_RTIO
|
||||||
|
erpContractVO.setPrepaymentRatio(contractMainDO.getPrepaymentRatio());
|
||||||
|
// 预付款金额:PPYM_AMT
|
||||||
|
erpContractVO.setPrepaymentAmount(contractMainDO.getPrepaymentAmount());
|
||||||
|
// 履约保证金-变更前(原币):SRC_BFR_BND
|
||||||
|
erpContractVO.setSourceBeforeBond(contractMainDO.getChangeCooAmountDeposit());
|
||||||
|
// 履约保证金-变更前(本位币):BSC_BFR_BND
|
||||||
|
erpContractVO.setBasicBeforeBond(contractMainDO.getChangeBasicAmountDeposit());
|
||||||
|
// 履约保证金-变更后(原币):SRC_AFT_BND
|
||||||
|
erpContractVO.setSourceAfterBond(contractMainDO.getChangeCooAmountDeposit());
|
||||||
|
// 履约保证金-变更后(本位币):BSC_AFT_BND
|
||||||
|
erpContractVO.setBasicAfterBond(contractMainDO.getChangeBasicAmountDeposit());
|
||||||
|
// 是否含质保金:IS_QUA_AMT
|
||||||
|
erpContractVO.setIsQualityassuranceAmount(contractMainDO.getHasQualityAmount());
|
||||||
|
// 质保金比例:QUA_RTIO
|
||||||
|
erpContractVO.setQualityassuranceRatio(contractMainDO.getQualityRatio());
|
||||||
|
// 质保金金额:QUA_AMT
|
||||||
|
erpContractVO.setQualityassuranceAmount(contractMainDO.getQualityAmount());
|
||||||
|
// 是否内部企业:IS_INTL
|
||||||
|
erpContractVO.setIsInternal(contractMainDO.getIsInternal());
|
||||||
|
// 收支性质:NTR
|
||||||
|
erpContractVO.setNature(contractMainDO.getDirection());
|
||||||
|
// 备注信息:RMK
|
||||||
|
erpContractVO.setRemark(contractMainDO.getRemark());
|
||||||
|
// 是否框架合同:IS_FMWK
|
||||||
|
erpContractVO.setIsFramework(contractMainDO.getIsFramework());
|
||||||
|
// 境内/境外:IS_DOM
|
||||||
|
erpContractVO.setIsDomestic(contractMainDO.getIsDomestic());
|
||||||
|
// 达到收款条件金额:PYEE_CND_AMT
|
||||||
|
erpContractVO.setPayeeConditionAmount(contractMainDO.getPayeeConditionAmount());
|
||||||
|
// 建筑服务发生地:ARCH_SVC_PLCE
|
||||||
|
erpContractVO.setArchitectureServicePlace(contractMainDO.getArchitectureServicePlace());
|
||||||
|
|
||||||
|
// 公司编号
|
||||||
|
erpContractVO.setCompanyId(contractMainDO.getCompanyId());
|
||||||
|
// 公司名称
|
||||||
|
erpContractVO.setCompanyName(contractMainDO.getCompanyName());
|
||||||
|
// 部门编号
|
||||||
|
erpContractVO.setDeptId(contractMainDO.getDeptId());
|
||||||
|
// 部门名称
|
||||||
|
erpContractVO.setDeptName(contractMainDO.getDeptName());
|
||||||
|
// 岗位编号
|
||||||
|
erpContractVO.setPostId(contractMainDO.getPostId());
|
||||||
|
// 创建者
|
||||||
|
erpContractVO.setCreatorName(contractMainDO.getCreatorName());
|
||||||
|
// 更新者
|
||||||
|
erpContractVO.setUpdaterName(contractMainDO.getUpdaterName());
|
||||||
|
|
||||||
|
return erpContractVO;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验合同内容
|
* 校验合同内容
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -338,7 +338,7 @@ public class ErpContractServiceImpl implements ErpContractService {
|
|||||||
head.put("DDSKJE", erpContract.getPayeeConditionAmount());
|
head.put("DDSKJE", erpContract.getPayeeConditionAmount());
|
||||||
|
|
||||||
Map<String, Object> req = new HashMap<>();
|
Map<String, Object> req = new HashMap<>();
|
||||||
req.put("head", head);
|
req.put("header", head);
|
||||||
erpSubmitReqDTO.setReq(req);
|
erpSubmitReqDTO.setReq(req);
|
||||||
|
|
||||||
HashMap<String, String> response = erpExternalApi.submitDataToErp(erpSubmitReqDTO);
|
HashMap<String, String> response = erpExternalApi.submitDataToErp(erpSubmitReqDTO);
|
||||||
|
|||||||
Reference in New Issue
Block a user